Sophie

Sophie

distrib > Mageia > 1 > i586 > by-pkgid > dc23a8de81ef060af5d6032a03300d09 > files > 5

compiz-0.8.6-3.mga1.src.rpm

From 6d2cb3af3e83fa1512cd80e7dffc01844d40caec Mon Sep 17 00:00:00 2001
From: Colin Guthrie <git@colin.guthr.ie>
Date: Thu, 2 Oct 2008 20:33:21 +0100
Subject: [PATCH 504/505] Also check for tfp in server extensions

---
 src/screen.c |   30 ++++++++++++++++++++----------
 1 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/screen.c b/src/screen.c
index acfaa6e..cb96945 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -1625,7 +1625,7 @@ addScreen (CompDisplay *display,
     Window		 *children;
     unsigned int	 nchildren;
     int			 defaultDepth, nvisinfo, nElements, value, i;
-    const char		 *glxExtensions, *glExtensions;
+    const char		 *glxExtensions, *glxServerExtensions, *glExtensions;
     XSetWindowAttributes attrib;
     GLfloat		 globalAmbient[]  = { 0.1f, 0.1f,  0.1f, 0.1f };
     GLfloat		 ambientLight[]   = { 0.0f, 0.0f,  0.0f, 0.0f };
@@ -1879,20 +1879,30 @@ addScreen (CompDisplay *display,
 	return FALSE;
     }
 
-    s->ctx = glXCreateContext (dpy, visinfo, NULL, !indirectRendering);
-    if (!s->ctx)
+    glxExtensions = glXQueryExtensionsString (dpy, screenNum);
+    glxServerExtensions = glXQueryServerString (dpy, screenNum, GLX_EXTENSIONS);
+    if (!strstr (glxExtensions, "GLX_EXT_texture_from_pixmap"))
     {
-	compLogMessage ("core", CompLogLevelFatal, "glXCreateContext failed");
-	XFree (visinfo);
+        if (!strstr (glxServerExtensions, "GLX_EXT_texture_from_pixmap"))
+        {
+            compLogMessage ("core", CompLogLevelFatal,
+                            "GLX_EXT_texture_from_pixmap is missing");
+            XFree (visinfo);
 
-	return FALSE;
+            return FALSE;
+        }
+        else
+        {
+            indirectRendering = 1;
+            strictBinding = 1;
+        }
     }
 
-    glxExtensions = glXQueryExtensionsString (dpy, screenNum);
-    if (!strstr (glxExtensions, "GLX_EXT_texture_from_pixmap"))
+    s->ctx = glXCreateContext (dpy, visinfo, NULL, !indirectRendering);
+    if (!s->ctx)
     {
 	compLogMessage ("core", CompLogLevelFatal,
-			"GLX_EXT_texture_from_pixmap is missing");
+			"glXCreateContext failed");
 	XFree (visinfo);
 
 	return FALSE;
-- 
1.6.1.2