Redraw problems with AGL_BUFFER_RECT

I’ve scoured docs and Google for an answer, with no luck, so I’m hoping someone here can help. I’m trying to build a window with the appearance of an OpenGL control in it (i.e. that doesn’t take up the entire window) with normal HIToolbox controls surrounding it. I’m using AGL_BUFFER_RECT to constrict rendering to a portion of the window; however, it appears that the controls surrounding the region will not redraw unless they receive explicit user input (clicking, etc). I’ve tried using HIViewSetNeedsDisplay(), on both the content view of the window and the individual controls, but to no effect.

I’m guessing that AGL is kindly marking the entire window as redrawn on aglSwapBuffers(), even though AGL_BUFFER_RECT is restricting rendering to only a portion. Why HIViewSetNeedsDisplay() still wouldn’t work though is beyond me.

Has anyone had luck using AGL_BUFFER_RECT to render AGL to something other than a full window? I’m using 10.3.4 (haven’t braved 10.3.5 yet).

Thanks in advance for any help

Buffer rect alone isn’t enough, you need to use glScissor command as well. Don’t forget to readjust your viewport accordingly also.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.