glReadPixels gets an overlapping window

I am using glReadPixels to get a piece of frame buffer of my viewport. It returned with a partially overlapping window from other application. It happens on one of my graphics card(WildCat4110) but not others. I understand this is because glReadPixels implemented on the graphic card does not save those obscured areas to an offscreen buffer therefore glReadPixels cannot get a complete image of viewport. Does anyone know a way to query the gaphics card whether it supports offscreen buffer? Thanks

I don’t think there is what you are looking for. However I stongly believe may cad apps out there treat the pixel formats with PFD_SWAP_COPY that way. If you read the spec for this there is nothing that promises offscreen buffers, just that swap won’t kill anything in the back buffer. But like I said many popular cad apps seem to treat this incorrectly.

I figure cards that export this bit in their pixel format do it via offscreen buffers or they would show corruption in these apps. So I guess it’s up to you as to whether you want to be wrong with them, or do things correctly.


you should look for WGL_ARB_pbuffer or GLX_SGIX_pbuffer extensions. So you can render to an offscreen buffer without troubles.