XMACHTEN.GLX(n) MachTen Programmer’s Manual XMACHTEN.GLX(n)

TenonGLServer - Conix OpenGL Extension for XMachTen

This manual page documents the Conix GLX extension for the
XMachTen X server. The OpenGL extension is implemented
in conformance with version 1.2 of the GLX protocol as
defined by Silicon Graphics, Inc. This manual page
documents only issues specific to the GLX extension - for
more general information regarding the MachTen X server
see the XMachTen man page.

The TenonGLServer module, if present, is automatically
loaded by the XMachTen server on startup. This module
must be present in the Macintosh Extensions folder for the
GLX extension to intialize, and is usually located in the
"Conix OpenGL" folder.

Immediately after startup, TenonGLServer searches the Mac-
intosh extensions folder for OpenGL renderers and evalu-
ates their capabilities. If no suitable renderers are
found, the GLX extension is essentially disabled and will
refuse all rendering requests from a GLX client, but the X
server will otherwise function properly.

The Conix OpenGL distribution includes six OpenGL
renderers that support typical Macintosh systems at 8, 15,
and 24 bit color depths. Other OpenGL renderers with
advanced capabilities may be added to the system by simply
placing the new renderers in the Macintosh Extensions
folder. The TenonGLServer module will automatically
choose renderers with higher performance over the
standard renderers if they are available.

The OpenGL rederers used by TenonGLServer are not speci-
fic to MachTen; they are the same renderers that are used
by Conix OpenGL for the Macintosh, so any renderer that
works with Conix OpenGL for the Macintosh will work with
Conix OpenGL for MachTen.

The TenonGLServe module conforms to version 1.2 of the GLX
protocol, so no special considerations are required to use
the server with local or remote GLX clients. However, GLX
clients can benefit by taking advantage of the wider
visual selection of the TenonGLServer module in a way that
is still fully portable.

The TenonGLServer module has ten TrueColor visuals for
each supported color depth. These visuals differ in
whether or not an alpha buffer is present, and in the
sizes of their depth and accumulation buffers. An appli-
cation can choose between these visuals by first obtaining
a list of all TrueColor visuals from the server, and then
using the the glXGetConfig command to discover the buffer
sizes of each visual. This method is preferable to simply
using glXChooseVisual because glXChooseVisual will always
select the largest available depth and accumulation
buffers if non-zero size is requested. Since the buffers
reside in the X server’s memory, Using a larger depth or
accumulation buffer than necessary will consume memory

Although all TrueColor visuals will report non-zero sizes
for depth, accumulation, stencil, and auxilliary buffers,
none of these buffers are allocated until they are actu-
ally used by the client. Thus, the choice of visual will
only effect the memory consumption of the buffers that are

When a GLX client (using Conix libGL) starts up on the
same machine as the Conix XMachTen server, it will
attempt to use a local communication protocol to connect
directly to an OpenGL renderer and bypass the X server
entirely. For this to happen the client library must be
of the same version as the server, the DISPLAY environment
variable must be set to ":0.0", and the "direct" argument
to glXCreateContext must be set to True. The local commu-
nication protocol is significantly faster than communicat-
ing through X.

glXChooseVisual(3), glXCreateContext(3), glXGetConfig(3)

X Version 11 Release 6 2