Scali said:
Yes, as I say, in OpenGL my Radeon doesn't get anywhere near the performance level it gets in Direct3D.
You mean it's slower in Doom 3 than in Battle of Proxycon or what?
You don't write OpenGL code. Is that correct? So how do you judge?
Scali said:
As for bugs like alt-tab... those happen because OpenGL is not integrated with the OS at all. The OS doesn't know that you have an exclusive fullscreen application... You just hack the desktop resolution into the one you see fit, then draw all over it. Direct3D/DirectDraw solve this in a much nicer way. You also get problems with gamma correction and such. If OpenGL crashes, the desktop is not reset, so you're stuck with the resolution and gamma settings for the game on your desktop.
Now that's the most stupid point you could have made. OpenGL contexts are
bound to a window. You can't have a (visible) OpenGL context without a window (even if it's the "desktop" window, but that's extremely bad practice, of course). There's your Windows integration!
Fullscreen OpenGL is done by switching resolution (ChangeDisplaySettings - GDI!), opening a WS_POPUP window of sorts that covers the whole screen (GDI!) and attaching a context to it.
Reacting to ALT+TAB, window resizing, minification etc is a matter of catching and handling the relevant window messages. Windows integration!
Btw, an OpenGL context is never "lost" *snickers*.
The only OpenGL thing that matters which you can have without a window is an offscreen PBuffer context for R2T stuff.
Gamma: SetDeviceGammaRamp(hdc) works perfectly fine for me, and has done so for ages. Hey, wait a minute, that's another GDI function. Yet more Windows integration!
If an app
sets the ramp, it is its obvious responsibility to set it back. That's why you have issues with crashing applications because they are terminated before getting a chance to restore desktop gamma. Btw, restoring desktop gamma yourself is no biggie on ATI drivers (nor S3 drivers nor Kyro drivers, for that matter). Only NVIDIA drivers suck in this respect because they insist that whatever gamma ramp was left hanging around by a crashed app is exactly "gamma=1.0".
And now, if you will, please tell me how a DirectX Graphics fullscreen device integrates with Windows in your well informed opinion
Scali said:
Stuff like that really annoys me.
Your own imagination annoys you? Ouch.