Contents

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

Returns an image provider from an OpenGL texture.

Declaration

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:

    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 False if the texture is a mask or gradient or should not be color matched for some other reason. Otherwise, pass True.

Return Value

An image provider.

Discussion

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

See Also

Getting an Image Provider