Joined: 17 Apr 2008, 09:36 Posts: 93
|
The author of MWC wrote back;
Thanks for your email.
MCW uses some Windows API (application programming interface) to adjust the colors, basically a couple functions to set the gamma ramp lookup table. It works well within Windows, and a number of games (specifically OpenGL based games). However, support within Direct3D games become dependent on the video drivers to "care" about this lookup table and to carry the settings over into what is rendered through Direct3D. Support in that regard has typically been kept, but it does get broken from time to time by the video card driver developers.
The other issue is that the video card drivers themselves have their own color correction support built in, and often that correction takes precedence over the Windows gamma ramp tables. I have an option in MCW to "apply fix to override driver level color correction", which attempts to workaround some video card driver implementations. It does this by setting the gamma ramp table twice, with two different profiles. Oddly, that has worked decent as a workaround for the video card driver implementations, but may do nothing to help in your case.
In the long run, new methods other than the gamma ramp table may be needed to be used to support games. I haven't dug into it too much, but it may be possible to modify the Direct3D drawing surface being used by a game (unless Windows security prevents it). Otherwise, I would be looking at utilizing the APIs available in each video card driver. I know ATI does a good job of providing a programming interface to their drivers, so I wouldn't expect it to be difficult to get things working well on an ATI based video card. I haven't looked at nVidia yet, but I would imagine they have something similar available. Of course, going that route also means you have to build against a number of video card manufactures' programming interfaces (APIs), and support multiple versions and changes to those APIs, which gets to be a pain. This is why I think it might be better to bring pressure on the video card developers to keep proper support for the Windows gamma ramp API, so existing software doesn't break.
Back when Vista came out, Microsoft broke support for the gamma ramp API, requiring application to ask for permission before it could be used. This basically broken all the calibration software out there that wasn't written for Vista, and virtually all the OpenGL based games (as far as color correction built into the games). Later, Microsoft backed down on the security so everything worked as it did before. Some of the video card manufactures also built in workarounds into the video card drivers because of how slow Microsoft was in dealing with it.
There's no universal fix, but there are generally workarounds. I am a gamer myself, so I would certainly attempt to get things working within games if I can.
Mike
|
|