[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    WGL: fix usage of non-GLX visual in glXCreateContext
From:       Roderick Colenbrander <thunderbird2k () gmail ! com>
Date:       2009-07-31 20:55:25
Message-ID: c8485d470907311355s6f25604fj7bf33552f4418cfb () mail ! gmail ! com
[Download RAW message or body]

Hi,

We should not expect that the default Wine visual supports GLX, use
glXChooseVisual instead. This should fix bug 19570.

Regards,
Roderick Colenbrander

["0002-We-should-not-expect-that-the-default-visual-support.patch" (text/x-diff)]

From 72f1dc239dc76f323288304aa902c97f343fca9e Mon Sep 17 00:00:00 2001
From: Roderick Colenbrander <thunderbird2k@gmail.com>
Date: Fri, 31 Jul 2009 22:50:36 +0200
Subject: [PATCH] We should not expect that the default visual supports GLX. This \
caused some issues by XQuartz which they fixed but nonetheless we are violating the \
GLX standard, so use glXChooseVisual instead.

---
 dlls/winex11.drv/opengl.c |    9 ++-------
 1 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
index b2cf82a..4e4a3a0 100644
--- a/dlls/winex11.drv/opengl.c
+++ b/dlls/winex11.drv/opengl.c
@@ -275,15 +275,12 @@ MAKE_FUNCPTR(glFlush)
 static BOOL infoInitialized = FALSE;
 static BOOL X11DRV_WineGL_InitOpenglInfo(void)
 {
-
     int screen = DefaultScreen(gdi_display);
     Window win = RootWindow(gdi_display, screen);
     const char* str;
-    Visual *visual;
-    XVisualInfo template;
     XVisualInfo *vis;
-    int num;
     GLXContext ctx = NULL;
+    int attribList[] = {GLX_RGBA, GLX_DOUBLEBUFFER, None};
 
     if (infoInitialized)
         return TRUE;
@@ -291,9 +288,7 @@ static BOOL X11DRV_WineGL_InitOpenglInfo(void)
 
     wine_tsx11_lock();
 
-    visual = DefaultVisual(gdi_display, screen);
-    template.visualid = XVisualIDFromVisual(visual);
-    vis = XGetVisualInfo(gdi_display, VisualIDMask, &template, &num);
+    vis = pglXChooseVisual(gdi_display, screen, attribList);
     if (vis) {
         WORD old_fs = wine_get_fs();
         /* Create a GLX Context. Without one we can't query GL information */
-- 
1.6.0.4





[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic