Having spent a good while trying to get my OpenGL screensaver working on a dozen client boxes I find this from Intels Embedded Graphics FAQ:
OpenGL* 3D screensavers run slowly.
Hardware acceleration for OpenGL* screensavers is not enabled in the graphics drivers because of potential compatibility issues with a number of third party OpenGL screensavers. Running the screensavers in software mode should reduce the possibility of system lockups or crashes while these screen savers are enabled. This should not prevent these screen savers from running, but slow rendering speed may be seen. This does not affect OpenGL-based games or general applications.
This is expected behavior. "
So there you go. Expected Behaviour!
I can just see myself wasting a lot of time on a problem like that. Thanks for the heads up.
How does it detect that the application is a screensaver and force it into software? You can probably work around it so that it can’t?
I did implement a screensaver without using screensave.lib or anything once. You can just look at the command-line arguments to decide what behaviour to adopt and use the given HWND as parent for a new window in preview mode. Something like that.
screensaver.lib is just a wrapper that writes the WinMain function for you, I don’t think that the detection has anything to do with it.
If I’m not mistaken, there is a function in the win32 API to determine if a screensaver is running. The driver is propably using this during context creation.
Yeah, some Getsystemsomething does, that’s probably it.
This flu makes me stupid an even impulsive! The latter is quite unlike me.