3

I'd like to know if it is possible to create a Windows program to invert all display colors by tweaking the video adapter directly, just like MacOS does in its "black-on-white mode".

I am a C++ Windows developer and I have a degenerative disease on my retina called Retinitis Pigmentosa, which makes me very sensitive to glare and bright colors. The High Contrast schemes offered by Windows are not an option. It just does not work. When selected, most apps (event Microsoft's) ignores it, ending up rendering black text on black background!. Apple's approach of just flipping the bits of every color is simple, fast and very effective. I understand that the Macintosh has the advantage of dealing with a limited and controlled set of video adapters, whereas Windows is supposed to deal with any kind that provides the compatible driver.

I see this project split in two layers: one to deal with video card detection and keyboard shortcut management and another to actually tweak the video adapter; having some sort of hardware abstraction layer in between. Each video adapter may take a different technique to accomplish the desired effect. I'd like to support, at least, NVIDIA, ATI and Intel adapters.

After a lot of googling on the subject, I'm frustrated. Information on video card programing and device driver development are scarce and arcane.

Is what I'm trying to accomplish possible, at all? Could anyone point me in the right direction?

My intention is to create a free tool to help people with similar eye disorders.

I would be very grateful for any help!

mpm
  • 213
  • 3
  • 6
  • Are you sure that video cards don't already support what you're looking for? For nvidia gpu I know you can just apply black and white mode, hue rotation, gamma correction, etc. in the driver control panel. Is this for personal use, or are you actually looking to release something to the public? – Tim Mar 14 '12 at 04:20
  • I've learned that NVIDIA has this capability, but I need to tweak the video parameters via some sort of API, not the GUI tool – mpm Mar 14 '12 at 12:35
  • If you're using Window 7, the functionality is already built into the OS - although perhaps not in the most obvious place! - start Magnifier, set it to magnify with a factor of 1 (so no actual magnification), and then select the "Turn on color inversion" option. More details [here](http://www.wikihow.com/Invert-Colors-on-Windows-7). – BrendanMcK Mar 15 '12 at 08:32
  • Thanks, but the built-in magnifier makes the screen refresh rate too slow, specially in fullscreen mode or with more than one monitor. – mpm Mar 24 '12 at 14:45

1 Answers1

0

I'd dig towards color profiles, they existed since early windows versions.

Codeguard
  • 7,787
  • 2
  • 38
  • 41