Project Flimag: Introduction
What is it?
Flimag (pronounced fly mag), the fast and lightweight magnifier is a screen magnifier for Windows. Right now it is just an idea.
What is so special about it?
Flimag is intended to be different than e.g. ZoomText and MAGic. Its main purpose is to be fast, responsive and compatible, providing a lightweight alternative for people who just needs a basic full-screen magnifier that is fast and works well with other applications.
Why not use what is available?
The big magnifiers out there certainly have many nice features, but they are slow, doesn’t keep up well with new technology, require immense system resources, and in addition to that they might disable graphics acceleration and maybe even secondary cores on multi-core systems. The architecture they use is old: There should be better options today.
How will Flimag do it?
The big magnifiers out there use custom device drivers they hook in between the GDI and the graphics driver, and I intend to stay away from that. I have not yet decided on a replacement, but right now I am looking at using hardware overlays. Doing so would have the benefits of very little overhead and working hardware acceleration (since that is what it uses anyway).
In what language will Flimag be written?
Probably C#.
Will Flimag be open-source?
Yes!
When will the development start?
Yes folks, this is the hard one. I have already been thinking about this project for about a year now, so who knows. Every now and then I am experimenting with something related to this, and that is the way it is going to be for a bit longer, until I feel I know enough about the underlying technology.
Do you have ideas? Suggestions?
Know the Windows API?
Know a lot about DirectX/OpenGL?
Contact me!

Hardware overlays are not a good way because 1) Not all video cards support overlays 2) Most video cards only support YUV overlays. You’ll have to do a software conversion from RGB to YUV which will kill performance. The best way is to use a transparent window with opacity set to 255 and Blit into it. It also works regardless of whether your graphics card supports overlays or not.
Comment av Anonymous — Apr 22, 2008 kl. 05:17
Yes, that’s the approach I’m trying for right now. I hope the performance is sufficient. However when not using a layered window I get this recursive graphical effect. After blitting it captures that region (which should be invisible to it) and blits it, and so on.
Comment av Daniel — Apr 22, 2008 kl. 20:07
Yes, there are some open source magnifiers which use this approach already. DesktopZoom is one.
http://users.telenet.be/littlegems/MySoft/Index.html
Comment av Anonymous — Apr 23, 2008 kl. 03:24
That’s true. But I find the performance of DesktopZoom too poor. The movement is kind of jaggy, so I don’t know if this approach is really optimal.
Comment av Daniel — Apr 23, 2008 kl. 08:31