We welcome external involvement. SGI has created, maintained and
extended the Sample Implementation for many years - but we think that we
can do even better by working together with open source developers.
If you're interested in getting involved in this project
we recommend joining the mailing list,
looking at the source code, and discussing your interests
with other developers on the mailing list.
There are several ways to access the source:
a tarball containing the checked-out CVS repository.
the source tree.
- Via CVS. First, set CVSROOT to
Next, cvs login to the oss.sgi.com CVS server.
The password is cvs.
Finally, checkout the project via
cvs checkout projects/ogl-sample/main
Note that all of these methods only give read access to the repository.
Please email patches to the mailing list for now; as significant
contributors come to need direct write access to the repository, we'll
set that up on a case-by-case basis.
Because the Sample Implementation is a large and complicated piece of
code, we expect it may take some time for people to get up to speed. We
also have suggestions for some smaller projects that don't require deep
knowledge of writing hardware drivers, but will be very useful. For
- Port the SI to non-X and/or non-Linux/Unix environments. The
build environment is structured around GNU Make, Perl, and
other standard tools, so it should be straightforward to move
the basic build process to new environments. Actually making
the SI work with window systems other than X will probably
require implementing a "glue" API similar to GLX, or
at least doing extensive modification of the GLX source code.
- Move the man pages to a more modern format (e.g. SGML, XML,
etc.) and use standard tools for converting this format to HTML
and Unix man pages, instead of the archaic custom format and
toolchain we use now. The XFree86 toolchain would probably be
best for this purpose.
- The .spec files provide a very detailed machine-readable
description of the functions and enumerants defined by the
OpenGL API and its numerous extensions. These files are
already used in many ways, such as header file generation, libGL
dispatch table generation, and GLX protocol encoding/decoding
and dispatch within the X server. There are probably a number of
other interesting uses for this information, and we encourage
people to experiment with the generator scripts and surprise us
with something cool, such as...
- One possible use of the spec files would be as part of a
project to extend xmon (the X protocol stream monitor) to
understand GLX protocol. xmon is not part of the SI - it's a
standard X11 utility. However, the availability of the spec
files and the GLX encoder/decoder source (much of which is also
automatically generated from the spec files) make this project
feasible, and it would be very useful for debugging indirect