You could potentially do something with Video4Linux to cause a portion of the framebuffer to be displayed using a hardware overlay. This would require a driver that has Xv and Video4Linux support and a real hardware overlay with on-the-fly scaling (i.e doesn't require a temporary output)
The upside is that it would be automatic without any CPU intervention. anything XFree draws in the framebuffer would automatically be scaled real-time by the overlay. You would just need to reposition the overlay when the panning was needed. or, You could use Xv in a more conventional manner (no video4linux) and just read the framebuffer contents via a memory map and do an XvShmPutImage to get the scaled up version on-screen. Some hardware probably has issues with mmap reading of the FB while rendering so your mileage may vary. -Matt -----Original Message----- From: Mark Vojkovich [mailto:[EMAIL PROTECTED] Sent: Tuesday, March 11, 2003 12:59 PM To: [EMAIL PROTECTED] Subject: Re: DGA Example Code for Screen Magnification Prog DGA is for fullscreen games and such and takes over the screen making the rest of the server think it's switched away do another VT. DGA is mutually exclusive with normal server operation so it can't be used magnify normal server operation. Most hardware can display resolutions as low as 320x240. Isn't that low enough resolutions for you? In a dual head configuration with Xinerama, one head could display a blowup of the other screen. I haven't tried it but one should be able to have a client that tracks mouse motion on the screen and adjusts the viewport position of the blownup screen through the vidmode extension. Mark. On Tue, 11 Mar 2003, Kieran O'Sullivan wrote: > I am writing an Xlib based screen magnification program for X called > BlindPenguin (http://www.blindpenguin.org). In great wisdon of great > folly I have dicided to use DGA to write this program. > I am looking for DGA code examples I have looked at the dga prog which > changes your screen colour, but i need more. freshmeat.net has one or two > games which use DGA and I'm hoping someone here has something? > > Setting the mode lines in XF86Config isn't really an option for a person > with my sight level unless it is possible to set a Mode line which will > make the screen 8 times its normal size. > > BACKGROUND INFORMATION > The issue is this any X magnification program that I have seen draws the > magnified area on a window I DO NOT WANT TO DO THIS. I want to write a > program, which zooms in like a video camera on a particular part of the > screen what will happen is that the magnified area of the screen will fill > the entire screen, in simple terms the magnified area will be re-drawn with > more pixels to fill the screen. However the X server and clients shouldn't > care about this in-fact they shouldn't know. Basically there are 2 screens > 1 is the screen that the X server creates and the other is the screen that > the user sees. As I move the mouse around the X server moves it on the real > screen but the user sees the magnified screen moving. To use the video camera > analogy again imagine a person walking around a room using the view finder > of a video camera turned up to full zoom to see. Their coordinates would > change relative to the objects in the room but they would see things much > larger than they are. > > > _______________________________________________ > Devel mailing list > [EMAIL PROTECTED] > http://XFree86.Org/mailman/listinfo/devel > _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel
