The specs say that reading data from graphics context’s areas which are not exposed, result in undefined values.
In English, you cannot expect correct data from areas which are overlapped by another window, pushed out of the desktop etc.
So minimized windows don’t deliver anything. [Aha, saw the post in the other forum. It’s the other way round.
If you know the window handle of the other program’s window displaying the content to be snapped you could get the HDC and probaply the OpenGL rendercontext from there. But this is highly unlikely to work for OpenGL. But it will work with GDI on everthing you see on the desktop.]
For the performance of glReadPixels: The perfomance may be driver version dependent. Always try the newest release (~5.30).
Another thing is, that 16 bits color res needs more conversions than 32 bits. Though it’s twice the data to be read in 32 bits without conversions.
Another method you could try (works only for the the front buffer) would be a GDI BitBlt to a device independent bitmap in host memory. That should be pretty fast.
[This message has been edited by Relic (edited 07-27-2000).]