My Carbon application uses AGL contexts to draw. I adapted the
PBufferRenderer sample code to let me use pass in the AGL context's
underlying CGL context rather than an NSOpenGLContext. My adaptation
uses CGLTexImagePBuffer to get the texture into my CGL (AGL, really)
context. This works for drawing, but the QCRenderer's animation only
updates every couple of seconds and then takes up to and over a
second to glFlush or glFinish. The times in between these very long
times it seems as though the QCRenderer doesn't do anything at all.
Timing for the in-between renderings are usually in this range:
QCRenderer renderAtTime: 615 us
glFlush: 83 us
glFinish: 10 us (I added the glFinish, but it doesn't seem to help
anyway)
The texture's content is unchanged in this case, the composition
looks like it is paused.
Contrast this to the numbers that the rendering takes when the
texture actually does change:
QCRenderer renderAtTime: 1108 us
glFlush: 68 us
glFinish: 467806 us
Needless to say, I'd be much happier if I could get the QCRenderer to
distribute its load more evenly. The OpenGL Driver Monitor shows
increased paging (Texture Page On Data (Non-AGP); this is on a
MacBook Pro), but that still doesn't explain why the QCRenderer only
appears to update my texture at all every couple of seconds, or why
glFinish only choses to actually do something every once in a blue
moon. What am I doing wrong?