Cannot enable OpenGL quadbuffer stereo mode on Linux

Hello.

I’m using SDL-1.2 on Linux box with Quadro 4 XGL. Quadro has the VESA 3pin
stereo port, and I attached the stereo shutter glasses to the card. Codes
written with GLUT could drive those glasses correctly, but SDL couldn’t even
when SDL_GL_SetAttribute(SDL_GL_STEREO, 1) was called.

With some testing programs, finally I found that OpenGL stereo quadbuffer mode
would be enabled in case that glXMakeCurrent() is called properly after
glXCreateContext(). I know SDL_SetVideoMode() does call X11_GL_MakeCurrent(),
but I don’t know the reason why it doesn’t work.

Quick hack follows. This patch works fine with SDL-1.2.7.

banb

— SDL-1.2.7/src/video/x11/SDL_x11gl.c.ste 2004-02-19 02:22:09.000000000 +0900
+++ SDL-1.2.7/src/video/x11/SDL_x11gl.c 2004-05-31 13:25:04.375053196 +0900
@@ -126,7 +126,6 @@

if( this->gl_config.stereo ) {
	attribs[i++] = GLX_STEREO;
  •   attribs[i++] = this->gl_config.stereo;
    

    }

    if( this->gl_config.multisamplebuffers ) {
    @@ -212,6 +211,13 @@
    return -1;
    }

  • if ( ! this->gl_data->glXMakeCurrent(GFX_Display,
  •                                    SDL_Window, glx_context) ) {
    
  •   SDL_SetError("Unable to make GL context current");
    
  •   return -1;
    
  • }
  • XSync( GFX_Display, False );+
    gl_active = 1;
    #else
    SDL_SetError(“X11 driver not configured with OpenGL”);