XZOOM(1X)XZOOM(1X)NAMExzoom - magnify part of the screen, with fast updates
SYNOPSISxzoom [ -display displayname ] [ -mag mag [ mag ] ] [ -x ] [ -y ] [ -xy
] [ -geometry geometry ] [ -source geometry ]
OPTIONS-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 magniications 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 sepa‐
rately (by use of -geometry ) then an error is reported.
DESCRIPTION
Xzoom displays in its window a magnified area of the X11 display. The
user can interactively change the zoomed area, the window size, magni‐
fication (optionally different magnification for X and Y axes) or
rotate or mirror the image.
COMMANDS
Once xzoom has started the user can enter simple commands using the
keyboard.
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 but‐
ton 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.
DISPLAYS
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 magni‐
fication is 2 both in X and Y axes. If the image is stretched differ‐
ently 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 mag‐
nification values.
PERFORMANCE
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 magnifica‐
tion 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).
SEE ALSO
xmag.1x.
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.
BUGS
† 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
commands.
† 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.
† The Ximage data is accessed directly, in a way which may not be por‐
table. Xzoom will not run with display depth other than 8 bits per
pixel.
† 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 magnifica‐
tion 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 win‐
dow 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.
AUTHOR
Itai Nahshon
XZOOM(1X)