opengl: use the correct visual when creating glxpixmaps

Huw D M Davies h.davies1 at physics.ox.ac.uk
Fri Dec 16 09:28:39 CST 2005


        Huw Davies <huw at codeweavers.com>
        Get the visual for the GLXPixmap from the current pixel format.
-- 
Huw Davies
huw at codeweavers.com

diff --git a/dlls/x11drv/opengl.c b/dlls/x11drv/opengl.c
index 7660b0e..242e694 100644
--- a/dlls/x11drv/opengl.c
+++ b/dlls/x11drv/opengl.c
@@ -588,13 +588,17 @@ XID create_glxpixmap(X11DRV_PDEVICE *phy
     XVisualInfo *vis;
     XVisualInfo template;
     int num;
+    GLXFBConfig *cfgs;
 
     wine_tsx11_lock();
-    template.visualid = XVisualIDFromVisual(visual);
+    cfgs = pglXGetFBConfigs(gdi_display, DefaultScreen(gdi_display), &num);
+    pglXGetFBConfigAttrib(gdi_display, cfgs[physDev->current_pf - 1], GLX_VISUAL_ID, (int *)&template.visualid);
+
     vis = XGetVisualInfo(gdi_display, VisualIDMask, &template, &num);
 
     ret = pglXCreateGLXPixmap(gdi_display, vis, physDev->bitmap->pixmap);
     XFree(vis);
+    XFree(cfgs);
     wine_tsx11_unlock(); 
     TRACE("return %lx\n", ret);
     return ret;



More information about the wine-patches mailing list