Wednesday, January 23, 2008

The GLX Renderer ++

ref_glx.so is linked against standard OpenGL libraries instead of Mesa. This allows Quake II to run on
other 3D hardware that is supported by other OpenGL implementations. At this time, I dont' know of any
OpenGL implementations that support hardware other than 3Dfx, but this renderer ensures that when they
appear, we'll be able to play Quake II with them.
Use of the GLX interface also removes GL Quake II's dependency on SVGAlib for keyboard and mouse
input.
This is a GLX application, and as such, must be run from X.
You can use this client with Mesa/3Dfx if you install Mesa and Glide as explained in the previous section,
then set the $MESA_GLX_FX environment variable to "fullscreen" before you run quake2:
export MESA_GLX_FX=fullscreen
./quake2 +set vid_ref glx +set _windowed_mouse 1
Why the +set _windowed_mouse 1 option? Remember that this is an X application which happens to
use your 3Dfx card. Even though the display takes up your entire screen, Quake II is stil running in a
window. This means that if you're not very careful, you could move the mouse pointer outside the Quake II
window, and Quake II will suddenly stop responding to mouse and keyboard input. +set
_windowed_mouse 1 avoids this problem by telling quake2 to grab the mouse and not let it move
outside its window.