Vista and OpenGL Screenshot

Hello,
I made a program for XP which takes screenshots of the screen.

Now to take the screenshot I used (in VB6):
GetDesktopWindow
GetWindowDC
CreateCompatibleDC
CreateCompatibleBitmap

Now under XP this works and gets the image on the screen every time, But now with vista it takes black screenshots when in a game running with openGL (DirectX is ok…).

Its like this on serval PC’s with updated video drivers, So do you have any suggestions? maybe another way to petch the on screen image?

Thanks ahead for any reply!

Read this: http://www.opengl.org/pipeline/article/vol003_7/
and the links at the bottom.
GDI operations on OpenGL windows do not work under Vista. GDI is rendered to a separate surface and that’s probably what you captured.
It probably works with the so “Wow!” desktop compositor disabled (Aero scheme off). :wink:

glReadPixels if you own the source :slight_smile:

I guess that FRAPS hijacks the swapbuffers to do glReadPixels under the hood.

I forgot to say:
In classic mode (scheme/theme), when Aero is off, the screenshots are all black (with aero I just get a cornor of the titlebar and everything else is black).

If you wanna see what I mean try capturing a OpenGL full screen game (I havent tried it with a application or a windowed game because it does’nt matter for me) with printscreen and pasting it to MSPaint or some other software.

I don’t own the source, and I already read that article.

But I wanna find another way instead of hooking to the OpenGL application and reading\saving the front buffer since its complicated for me now (need to know C++).

Can I get the image on the screen from the monitor driver or display driver - somthing?

Any suggestions ?

Can I get the image on the screen from the monitor driver or display driver - somthing?
Use FRAPS, you may use if unregistered (with limitations).

If you wanna see what I mean try capturing a OpenGL full screen game with printscreen and pasting it to MSPaint or some other software.
Usually the printscreen key doesn’t work for fullscreen 3D applications (sometimes not even windowed) - this didn’t even work in XP for most apps.

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