oglsnoop - magnify and report on the screen under the mouse pointer
oglsnoop is a program for viewing the color, depth and stencil values of
windows on the desktop. It displays these values graphically as well as
numerically in its window. oglsnoop can be used to determine the Visual
and Colormap that a given window is using. It can view both the Front and
Back buffers of Double Buffered windows and allows you to visualize the
Depth and Stencil Buffers using a grey scale display.
oglsnoop has an Information dialog to view information about the window
currently being watched and an Advanced dialog for controlling the visual
mapping of depth values to grey scale color ranges. Most key information
is displayed in the oglsnoop title bar for quick reference.
The oglsnoop title bar displays the following information....
A number defining the magnification factor of the image.
Color Index shows CI and True Color shows RGBA.
SINGLE for single buffered visuals and DOUBLE for double
Visual ID Visual Id as a hexadecimal number. These equate to the
numbers in glxinfo's output.
Blank indicates the Color buffer, D for Depth and S for
F for the front buffer and B for back. If the current
window isn't double buffered then nothing will be
In the bottom of the oglsnoop window is a bar that displays the values
for the current pixel. When oglsnoop is following the mouse then these
values represent the pixel at the current pointer position. When you have
grabbed a window then these values represent the pixel at the currently
grabbed window position. The represented values are X and Y coordinates,
Red Green Blue and Alpha color values in hex, Depth value in the range
0.0 -> 1.0, Stencil value in the range 0 -> maximum stencil value, and
the Color Index value. All values shown are for the current pixel. The X
and Y coordinates are relative to the Upper Left Corner of the display
when in Normal Mode and the Lower Left Corner of the grabbed window when
in Grab Mode.
The Mode menu contains a radio box for selecting the current buffer to
display. Available choices are Color, Depth and Stencil. Although values
are read from all buffers at the current pixel position only one of the
buffers can be displayed visually at a time.
The Option menu contains controls that affect what is currently
displayed. The Snoop toggle turns on/off the display of the current pixel
values. The ABGR toggle reverses the display of color values from RGBA to
ABGR. The Grid toggle brings up a grid that is overlaid on the oglsnoop
window. This can be useful for counting pixels. The Information... button
brings up an Information dialog that displays more information about the
current window. The Advanced... button brings up an Advanced dialog that
allows you to modify the Depth and Stencil ranges being displayed.
The Advanced dialog is only useful when viewing the Depth or Stencil
buffers. When you are viewing a Depth or Stencil buffer the range of
values is mapped to the color range to display grey scale equivalents of
the values. When the automatic toggles are set the ranges are calculated
on the fly. If the automatic toggle is not set then you can change the
way that depth or stencil values are mapped to color values. The Minimum
sliders control the percent of the available ranges that map to white
(ie. since Depth always ranges for 0.1 to 1.0 a Minimum Depth Setting of
90 would mean that depth values of 0.9 map to white ). The Maximum
sliders control the percent of the available ranges that map to black
(ie. a Maximum Depth setting of 100 would mean that depth values of 1.0
would map to black ). The scale is then linearly mapped from the Minimum
to the Maximum along the given color resolution. If the Minimum and
Maximum sliders are reversed (.ie Minimum is set to 100 and Maximum is
set to 90 ), then the grey scale values are reversed (ie. a Depth value
of 1.0 now maps to White and a Depth value of 0.9 maps to Black ) or Near
things are dark and far things are light.
The View menu contains controls that affect how information is read. The
Zoom++ and Zoom-- buttons increase and decrease the zoom factor by one
each time. The current zoom factor is displayed in the title bar. The
Grab Window button activates the grab mechanism which allows you to
select a window to watch regardless of where the mouse pointer is. When
in Grab Mode if the mouse is placed over the oglsnoop window then you can
use the arrow keys to navigate around the currently grabbed window. The X
and Y coordinates displayed will be relative to the Lower Left Corner of
the grabbed window. To leave Grab Mode and go back to Normal Mode just
click on the Grab Window Button again ( it we be labeled as Ungrab Window
if you are in Grab Mode ). If oglsnoop is unable to grab a window
successfully it will remain in Normal Mode. The last button on the View
menu is the Read Back Buffer button. When this toggle is set then the
back buffer is read instead of the front on double buffered windows.
Along with the menus most functions can be accessed with the keyboard.
The following is the list of keymappings...
1-9 set zoom factor
0 set zoom factor to 10
d set zoom factor to 30
m go to next display mode (ie. Color -> Depth -> Stencil )
b toggle back buffer reading on/off
g grab/ungrab window
s toggle snoop mode
r reverse color display ABGR -> RGBA
+ increase zoom factor by 1
- decrease zoom factor by 1
The oglsnoop window can be resized to display a larger or smaller area.
When the oglsnoop window is not iconified it can use up to 30% of the
available cpu, so it might be wise to iconify it when you aren't using
oglsnoop only views the top most window under the current mouse position.
Often this window is an overlay which is above the main graphics window.
If a window is using a Visual which isn't OpenGL compatible then oglsnoop
will not be able to grab this window and likewise won't be able to read
depth, stencil or Color Index values from it.
If a window is using a Visual that has Depth and Stencil buffers
associated with it then oglsnoop will display depth and stencil values
even though these values may be garbage.
When first entering a window or after moving a grabbed window you may
need to cause the window to be redrawn for the proper values to be read
from the window.
PPPPaaaaggggeeee 3333 [ Back ]