Some notes on Mesa, OpenGL, glut, and Linux

This page last revised March 24, 1999.

What are these things, anyway?

OK, OpenGL is a graphical API which facilitates 3D rendering. It's a great package, and one which appears to be taking over as the de facto standard (quite justifiably, in my opinion). OpenGL is often bundled as a software/hardware package; the hardware consisting of a graphics card. (The OpenGL software is then developed specifically to match the characteristics of the respective graphics card.)

OpenGL was developed at Silicon Graphics; it was an outgrowth of SGI's earlier IrisGL API. The IrisGL API was proprietary, and could only be run on SGI equipment, but the OpenGL API was published as an "open" standard, and SGI encouraged the implementation of OpenGL on all platforms.

So what is Mesa? Well, Mesa is the software package that enables me and you to do programming for OpenGL without the OpenGL package. Mesa is a software API which simulates almost all of the OpenGL capabilities, without OpenGL actually being present or required. Likewise, you don't need a specific graphics card to use Mesa. Best of all, Mesa is free!

glut is a toolkit (which works with either OpenGL, or Mesa) which provides a limited level of event driven I/O functions (e.g, keyboard and mouse input controls). glut also simplifies a lot of the window handling routines under the X window system. I like glut a lot because its availability negates the need for me to work with Motif or the X intrinsics package (both of which I find somewhat daunting). glut does not provide the flexibility or power of Motif, but it's easy to learn.

Which packages were used for these programs?

All of my work has been done with Mesa, not OpenGL. (Someday, maybe I'll work on a "true" OpenGL platform.) Nevertheless, any limitations (OpenGL will generally perform faster than Mesa, and Mesa does not implement all of the OpenGL functions) have been quite acceptable to me.

In addition, I've utilized glut.

So what's the problem?

Quite simply, beware of how you set up these packages. Mesa was pretty simple to set up; I just utilized the RedHat rpm installation method (I've been running RedHat 4.2). I thought that the rpm package for glut would also install without a hitch, but found out otherwise. My recommendation: Install glut from scratch, using the downloadable tarred/gzipped source (glut.tar.Z) from the Silicon Graphics ftp site In my opinion, the glut distributions which are typically provided with Linux distributions (including Slackware, and RedHat 5.0 also) are broken; go to the source.

Where can I find out more?

More information about Mesa, OpenGL, and glut can be found at SGI's list of OpenGL links (check it out; there's a ton of information.)

Back to Mike Dinolfo's welcome screen