Accessing mesa's OpenGL 2.1 features
I'm on a fairly fresh and up-to-date Debian/Lenny install
on a Thinkpad X40.
If I run some OpenGL code in an "OSMesa" context,
glGetString(GL_VERSION) returns "2.1 Mesa 7.0.4", and
glGetString(GL_EXTENSIONS) shows various "shader" extensions,
and "offscreen mesa" will run my GLSL code and render it correctly into
a memory buffer. Fantastic!
If I try and run the same code in a GLUT-created context, GL_VERSION
gives "1.3 Mesa 7.0.4" and I don't see any shader extensions and calling
e.g glCreateShader fails, having triggered a "Mesa 7.0.4 implementation
error: User called no-op dispatch function (an unsupported extension
function?)" message. I get the same sort of problem running the code in
a Qt QGLWidget.
How can I get mesa to provide it's nifty OpenGL 2.0+ features for stuff
rendering to the screen ? Or is there some missing bit of GLX-mesa
plumbing which means it's not possible (yet) ?
Thanks for any help
For what it's worth, "apt-show-versions -r -p mesa" gives:
libgl1-mesa-dev/lenny uptodate 7.0.3-5
libgl1-mesa-dri/lenny uptodate 7.0.3-5
libgl1-mesa-glx/lenny uptodate 7.0.3-5
libglu1-mesa/lenny uptodate 7.0.3-5
libglu1-mesa-dev/lenny uptodate 7.0.3-5
libosmesa6/lenny uptodate 7.0.3-5
libosmesa6-dev/lenny uptodate 7.0.3-5
mesa-common-dev/lenny uptodate 7.0.3-5
mesa-utils/lenny uptodate 7.0.3-5