I’m doing offscreen rendering by creating a hidden window using CreateWindowEx() and then copying the result to a block of memory using glReadPixels.
The data is then used for image processing, texturing and saving to file. It’s Windows only and works fine on modern hardware (ATI + nVidia) that I’ve tried but on older gfx cards or cards with old drivers the glReadPixels call always returns an image of the Windows desktop instead of what should have been rendered into the hidden window.
I need it to work on this legacy hardware but don’t want to render to a DIB bitmap because that would revert to unaccelerated OpenGL 1.1.
Is the desktop’s framebuffer shared with the offscreen window on some hardware and if so is there any way to use a seperate hidden window for rendering (with a different rendering context of course)?
I could use pbuffers but would rather allow this to work with hardware that does not support them and I can’t use FBO’s or Mesa3D.