Implement D3D SetGammaRamp
Posted: Sat Apr 09, 2011 3:22 pm
I can send the patch for this if the maintainers are interested.
SetGammaRamp is the function that all windows commercial games use to set gamma correction. It relies on a hardware capability implemented on 99% of the current GPUs. Sure there are some really old gpus that don't support it, but if it's good enough for Blizzard Entertainment it's good enough for you.
Ogre3D doesn't implement that because there's no OpenGL equivalent. The thing is that you *really* want to use that because other solutions are either too complicated (full transformation of all your textures, shaders, vertex colours) or have a performance hit (compositor). Crippling the D3D version of the game (which let's face it, it's the important one) just because you can't do the same in OpenGL is not nice. It forces you include the D3D headers and link against D3D directly in your app, ugh! And you guys are always telling us that doing direct3d calls is missing the point of ogre and that we should never do it, but you don't give us access to essential features like this, what's up with that, ogre team?
So, can we have this, pleeease? You don't even have to do anything, I will send the patch. Just let me know how you would like it implemented if you feel it necessary (in what class to place the call, etc). The function would call SetGammaRamp in D3D and do nothing on OpenGL.
SetGammaRamp is the function that all windows commercial games use to set gamma correction. It relies on a hardware capability implemented on 99% of the current GPUs. Sure there are some really old gpus that don't support it, but if it's good enough for Blizzard Entertainment it's good enough for you.
Ogre3D doesn't implement that because there's no OpenGL equivalent. The thing is that you *really* want to use that because other solutions are either too complicated (full transformation of all your textures, shaders, vertex colours) or have a performance hit (compositor). Crippling the D3D version of the game (which let's face it, it's the important one) just because you can't do the same in OpenGL is not nice. It forces you include the D3D headers and link against D3D directly in your app, ugh! And you guys are always telling us that doing direct3d calls is missing the point of ogre and that we should never do it, but you don't give us access to essential features like this, what's up with that, ogre team?
So, can we have this, pleeease? You don't even have to do anything, I will send the patch. Just let me know how you would like it implemented if you feel it necessary (in what class to place the call, etc). The function would call SetGammaRamp in D3D and do nothing on OpenGL.