---
title: "outputImageProviderFromTexture(withPixelFormat:pixelsWide:pixelsHigh:name:flipped:releaseCallback:releaseContext:colorSpace:shouldColorMatch:)"
framework: quartz
role: symbol
role_heading: Instance Method
path: "quartz/qcplugincontext/outputimageproviderfromtexture(withpixelformat:pixelswide:pixelshigh:name:flipped:releasecallback:releasecontext:colorspace:shouldcolormatch:)"
---

# outputImageProviderFromTexture(withPixelFormat:pixelsWide:pixelsHigh:name:flipped:releaseCallback:releaseContext:colorSpace:shouldColorMatch:)

Returns an image provider from an OpenGL texture.

## Declaration

```swift
func outputImageProviderFromTexture(withPixelFormat format: String!, pixelsWide width: Int, pixelsHigh height: Int, name: GLuint, flipped: Bool, releaseCallback callback: QCPlugInTextureReleaseCallback!, releaseContext context: UnsafeMutableRawPointer!, colorSpace: CGColorSpace!, shouldColorMatch colorMatch: Bool) -> Any!
```

## Parameters

- `format`: The pixel format of the texture. This must be compatible with the color space.
- `width`: The width, in bytes, of the texture.
- `height`: The height, in bytes, of the texture.
- `name`: An OpenGL texture of type GL_TEXTURE_RECTANGLE_EXT that is valid on the Quartz Composer OpenGL context. Your application must make sure that the texture exists for the life cycle of the image provider.
- `flipped`: doc://com.apple.documentation/documentation/Swift/true to have Quartz Composer flip the contents of the texture vertically.
- `callback`: The release callback. Your callback must use this type definition: typedef void (*QCPlugInTextureReleaseCallback)(CGLContextObj cgl_ctx, GLuint name, void* context); If you name your callback function MyQCPlugInTextureReleaseCallback, you would declare it like this: void MyQCPlugInTextureReleaseCallback (CGLContextObj cgl_ctx, GLuint name, void* context); Quartz Composer invokes your callback when the memory buffer is no longer needed. The callback can be called from any thread at any time
- `context`: The context to pass to the release callback.
- `colorSpace`: The color space of the texture. This must be compatible with the pixel format.
- `colorMatch`: A Boolean that specifies whether Quartz Composer should color match the texture. Pass doc://com.apple.documentation/documentation/Swift/false if the texture is a mask or gradient or should not be color matched for some other reason. Otherwise, pass doc://com.apple.documentation/documentation/Swift/true.

## Return Value

Return Value An image provider.

## Discussion

Discussion You must not modify the texture until the release callback is invoked.

## See Also

### Getting an Image Provider

- [outputImageProviderFromBuffer(withPixelFormat:pixelsWide:pixelsHigh:baseAddress:bytesPerRow:releaseCallback:releaseContext:colorSpace:shouldColorMatch:)](quartz/qcplugincontext/outputimageproviderfrombuffer(withpixelformat:pixelswide:pixelshigh:baseaddress:bytesperrow:releasecallback:releasecontext:colorspace:shouldcolormatch:).md)
