# Togl Stereo Modes

## Contents

- none
- native
- anaglyph
- cross-eye
- wall-eye
- dti
- row interleaved
- left eye
- right eye
- sgioldstyle

There are lots of stereo modes in Togl because there are many ways to draw stereo with different tradeoffs. All of the stereo modes are chosen with the `-stereo` configuration option. All of the non-native stereo techniques are software-only and can be changed at anytime.

When using a non-native stereo mode, the OpenGL `glDrawBuffer`, `glClear`, `glFrustum`, and `glOrtho` calls should be replaced with the Togl Tcl or C versions for seemless stereo rendering.

The various stereo modes are:

`none` or "" or any false boolean value
  Turn off stereo.
`native` or any true boolean value
  Use native OpenGL hardware accelerated stereo (single- or double-buffered for both the left and the right eyes). Each eye is drawn at full window resolution which gives the best stereo image. This mode requires support from the graphics driver and is typically only supported on workstation-class graphics cards, e.g., NVidia Quadro, ATI FireGL, Matrix Parhelia, 3DLabs Wildcat graphics cards and SGI workstations. The video refresh rate is changed automatically by the windowing system except on SGI workstations. Developers for SGI workstations can either switch the video manually with `/usr/gfx/setmon` or `/usr/bin/X11/xsetmon`, or use the autostereo package.

  Currently, there is a limitation that a togl widget can not be reconfigured in or out of the native stereo mode. And if/when it is supported, some graphics drivers might not allow it.

`anaglyph`
  Draw the left eye in the red part of the color buffer and the right eye in the blue and green parts. Designed to be viewed with inexpensive red-blue or red-cyan glasses. Works best with gray scale and non-saturated color images.
`cross-eye`
  Draw right eye image on the left half of screen, and draw left eye image on the right half of screen. So each eye is drawn at less than half of the window resolution.
`wall-eye`
  Draw left eye image on the left half of the screen, and draw right eye image on the right half of the screen. So each eye is drawn at less than half of the window resolution.
`dti`
  Designed for DTI displays. If you look at the window unassisted, you'll see horizonally squished images with the left eye image on the left, and right eye image on the right. So each eye is drawn at half of the window resolution.
`row interleaved`
  Designed for VRex, Zalman, and Hyundai displays. Where the right eye is on the even scanlines and the left is on the odd ones. Requires that there be a stencil buffer and uses the most significant stencil bit. Changes to the stencil state should be placed within glPushAttrib(GL_STENCIL_BUFFER_BIT) and glPopAttrib() calls.
`left eye`
  Only draw left eye view at full resolution.
`right eye`
  Only draw right eye view at full resolution.
`sgioldstyle`
  Support older-style SGI stereo where you lose half of the vertical resolution. This uses the SGIStereo X extension, that is only available on SGI workstations, to tell the X server to duplicate non-stereo windows into both eyes. This option only works when the monitor has been changed to the one of the `str_top`, `str_bot`, or `str_rect` video output modes.