Provided by: xzoom_0.3-23_i386 bug


       xzoom - magnify part of the screen, with fast updates


       xzoom [ -display displayname ] [ -mag mag [ mag ] ] [ -x ] [ -y ] [ -xy
       ] [ -geometry geometry ] [ -source geometry ]


       -display displayname | -d displayname
            The name of the display to use (not very useful).

       -mag mag [ mag ]
            What magnification to use. If two number  arguments  are  supplied
            the  first is used for X magnifications and the second is used for
            Y magnification.  Magnification should be greater than 0.

       -x   Mirror horizontally.

       -y   Mirror vertically.

       -xy | -z
            Exchange X and Y axes before any magnification is performed.

       -geometry geometry | =geometry
            Size and position xzoom's window.

       -source geometry
            Size and position the initial source area which is magnified.  The
            dimensions of this area are multiplied by the magnification to get
            the  size  of  xzoom's  window.  If  these  dimensions  are  given
            separately (by use of -geometry ) then an error is reported.


       Xzoom  displays in its window a magnified area of the X11 display.  The
       user can  interactively  change  the  zoomed  area,  the  window  size,
       magnification  (optionally different magnification for X and Y axes) or
       rotate or mirror the image.


       Once xzoom has started the user can enter  simple  commands  using  the

       q    quit.

       +    increase magnification value by 1.

       -    decrease magnification value by 1.

       w    next + or - command only affect X magnification.

       h    next + or - command only affect Y magnification.

       x    mirror the display image horizontally.

       y    mirror the display image vertically.

       z    rotate the displayed image 90 degrees counter-clockwise.

       arrow keys
            scroll  the zoomed area 1 pixel in the direction of the arrow.  if
            the control key is pressed the zoomed area will scroll 10 pixels.

       d    sets the delay between frame updates.  Built-in  delays  are  200,
            100, 50, 10 and 0 ms.

       g    toggle grid on and off.

       Mouse buttons
            To  set  the  location  of  the magnified are click the left mouse
            button inside xzoom's window and then move  it  (keep  the  button
            pressed) to the place which you want to see magnified.

            Xzoom allow you to resize it's window at any time.

            When xzoom is iconified it simply waits to get deiconified.


       Xzoom uses the window's title bar to inform the user about it's status.
       Normally the title  says  something  like  xzoom  x2  which  means  the
       magnification  is  2  both  in X and Y axes.  If the image is stretched
       differently on the X and Y axes the title will say  xzoom  X  2;  Y  4.
       Negative numbers mean reflection.  If the image is rotated by 90 or 270
       degrees the title will show <=> between the X and Y values.

       When d is depressed the title will display  the  new  delay  value  for
       approximately  2  seconds  and  then  revert  to the default display of
       magnification values.


       Xzoom is fast enough to display  enlarged  or  mirrored  animations  in
       small windows. On my 486 DX2-66 and Cirrus Logic CL-GD5428 display card
       (attached to Vesa local bus) update of a 256x256 window magnified by  2
       (ie,  source  rect  is  128x128)  takes  approximately 30 ms. This time
       varies,  off  course  when  a  different  size  window   or   different
       magnification  is  used.   If we chose 50 ms between updates we can get
       about 12.5 frames per second and still let an animation program do it's
       work.  It is possible to compile xzoom without X shared memory support.
       In that case window update may be about 3 times slower (if we are using
       a local display, using LAN is a different story).


       I  got the motivation for writing xzoom after I saw a similar WindowsNT
       program, zoomin working. It started just as a test for X11 performance.
       I  don't  have  the fancy menus and scrollbar like zoomin but I do have
       all their features (and more) accessible from the keyboard.


       † The maximum internal built in delay (see command d above) was set  to
       200  ms. Xzoom completes the delay before polling the X event queue for
       the next command. Larger delays would feel like poor response  to  user

       †  For  best  performance  the shared memory extension for X11 is used.
       Xzoom will fail if it is compiled to use XSHM and its display is not on
       the local host.

       †  Xzoom is given with no warranty. It was tested only under Linux with
       Xfree86 release 3.1.2 (X11R6).

       † Some strange behavior may occur if the requested magnified area falls
       beyond   the   borders   of  the  screen.  Example  is  when  you  have
       magnification of 1 and a window whose width is greater than the  height
       of  the  screen  and you want 90 degrees rotation. In that case part of
       the window will not get updated.

       † The frame used to mark the zoomed area may corrupt  the  contents  of
       other  windows  if they are modified when the frame is visible.  If you
       don't like it disable the -DFRAME option when compiling xzoom.


       Itai Nahshon