QCRenderer
A base class for low-level rendering.
Declaration
class QCRendererOverview
A QCRenderer class is designed for low-level rendering of Quartz Composer compositions. This is the class to use if you want to be in charge of rendering a composition to a specific OpenGL context—either using the NSOpenGLContext class or a CGLContextObj object. QCRenderer also allows you to load, play, and control a composition.
To render a composition to a specific OpenGL context:
Create an instance of
QCRendererusing one of the initialization methods, such as init(openGLContext:pixelFormat:file:).Render frames by calling the method render(atTime:arguments:)
If you use double buffering in OpenGL, you must swap the OpenGL buffers.
Release the renderer when you no longer need it.
This code snippet shows how to implement these tasks:
NSOpenGLContext* context = [myNSOpenGLView openGLContext];
NSOpenGLPixelFormat* format = [myNSOpenGLView pixelFormat];
NSString* path = @"/Users/MyName/MyComposition.qtz";
QCRenderer* myRenderer;
// Create a Quartz Composer renderer.
myRenderer = [[QCRenderer alloc] initWithOpenGLContext:context
pixelFormat:format
file:path];
// Render the first 10 seconds of the composition with steps of 1/25s.
for(double t = 0.0; t <= 10.0; t += 1.0/25.0)
{
[myRenderer renderAtTime:t arguments:nil];
[context flushBuffer]; //Required on double-buffered contexts
}
// Clean up
[renderer release];Topics
Creating and Initializing a Renderer
init(composition:colorSpace:)init(openGLContext:pixelFormat:file:)init(cglContext:pixelFormat:colorSpace:composition:)init(offScreenWith:colorSpace:composition:)