I have a problem with copying parts of the backbuffer to a texture with windows overlapping certain regions. all windows are getting into my texture as well, both glReadBuffer/glCopySubTexture2d.
Is there any way to somehow mess around with pixel ownership test without the use of render targets?
No. The GL spec states that the contents of a region that is occluded by another window is undefined. Use pbuffers or, preferably, framebuffer objects.
On some newer NVidia cards (8800 for example) the pixel ownership test is ignored and the full frame is rasterized. But I wouldn’t depend on it, it may disappear with the next driver version. Heck, it could even be a bug.
I would guess, that this is due to Vista support, where all windows are rendered off-screen, anyway. Of course on XP/Linux you shouldn’t count on it, FBOs are clearly the best solution, in general.
Indeed. Though i always thought that would be “optional” anyway, i mean it doesn’t have any benefits, it simply allowed for easier implementations on early systems, plus some speed-up.
Maybe it could be deprecated in the impatiently awaited OpenGL 3.1 (what would that actually be? 1.8?).
I actually thought its already omitted until i tried it out on Quadro FX cards. And even then it turned out to be different in next driver version, where it copied pixels without the ownership test.
one last question (hopefully) about ownership test on Vista machines. anyone had experienced problems on vista?
i will check previous problem i had with QuadroFX card on XP, this time on Vista and post the results (though its driver depended and vista drivers are slightly different).