0

Background

I'm developing an application for desktop computers that needs to magnify the current desktop programmatically. It must only display the magnified area.

The language being used is C++, and I'm currently running Ubuntu, but in the future it will work for other platforms.

Current Approach

For the current approach, a Rendering Window (RW) is used . For each rendering iterationg, it is first minimized, and the desktop image is acquired (screenshot) via XGetImage (X11):

XImage *image = XGetImage(xDisplay, RootWindow(xDisplay, DefaultScreen(xDisplay)), 0, 0, screenWidth, screenHeight, AllPlanes, ZPixmap);

The image is then processed in order to provide zoom area, and the RW is maximized and rendered.

This approach, even without the zoom processing, takes long due to the minimization and maximization processes, and does not allow real time execution.

Question

How can one render a real time magnified version of the current desktop?

Zooming libraries can be suggested, but they must be efficient, that is, must not consume much processing, and allow full zoom area control via code, that is, it must NOT require a mouse/keyboard.

Special Notes

As the main focus for this app is Linux compatibility, answers regarding Windows will be appreciated (like a how-to of the Magnification-API), but not accepted as correct answer.

roalz
  • 2,699
  • 3
  • 25
  • 42
Daniel Carvalho
  • 473
  • 1
  • 5
  • 17
  • Surely this is just a case of applying a BitBlt (or similar) with a scaling factor? Or am I completely missing the problem? – Mats Petersson May 03 '15 at 22:57
  • The copying of the data is easy, and can be accomplished in many ways (including BitBlt), but what I really want is a way/library to programatically render a portion of the screen, like Compiz' Ezoom plugin (although I don't want to use it, as a lot of things must be installed). Basically, what I want is offscreen rendering before the zoom region is finally rendered as the desktop. – Daniel Carvalho May 03 '15 at 23:02
  • Is there a real pressing need for new screen magnifiers? Don't 20 or 30 existing ones fill the niche already? – n. m. could be an AI Mar 30 '17 at 08:59
  • The application is not a screen magnifier, but it needs to magnify the screen during execution. You can check the idea [here](http://sibgrapi.sid.inpe.br/col/sid.inpe.br/sibgrapi/2015/07.22.14.06/doc/monocular-gaze-tracking.pdf) (page 4). – Daniel Carvalho Apr 09 '17 at 16:45

0 Answers0