----Message d'origine---- >De: "Wino Rojo" <[EMAIL PROTECTED]> >A: [email protected] >Date: Tue, 23 May 2006 18:12:36 -0400 >Sujet: Fix for the BadMatch error (bug #4945) > >Hi, > >I'v found a way to fix my problem with wglShareLists - BadMatch error >(X_GLXMakeCurrent) (see bug #4945). > >In X11DRV_setup_opengl_visual() (x11drv/opengl.c), I've changed this line: > >int dblBuf[] = {GLX_RGBA,GLX_DEPTH_SIZE, 16, GLX_STENCIL_SIZE, 8, >GLX_DOUBLEBUFFER, None}; > >to this: > >int dblBuf[] = {GLX_RGBA,GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, 8, >GLX_ALPHA_SIZE, 8, GLX_DOUBLEBUFFER, None}; > >That is, I choose a visual with a depth size of 24 *and* I also need to set >the alpha size to 8. With this small change, I can use my 3d app without >problems > >Does anybody see a problem with this fix?
I aggree. The problem is that will break for cards who don't support 24-32 bits frame buffers. You must add a fallback for 16 bits : - try GLX_RGBA,GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, 8, GLX_DOUBLEBUFFER - if failed try GLX_RGBA,GLX_DEPTH_SIZE, 16, GLX_STENCIL_SIZE, 8, GLX_DOUBLEBUFFER - if failed try GLX_RGBA,GLX_DEPTH_SIZE, 16, GLX_DOUBLEBUFFER > >Thanks, > >Wino Raphael
