Mesa (7.9): apple: Build darwin using applegl rather than indirect

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Tue Jun 14 06:22:51 UTC 2011


Module: Mesa
Branch: 7.9
Commit: 9cbc705e83f31929fbcf4b0b582e14e0f0242e7f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9cbc705e83f31929fbcf4b0b582e14e0f0242e7f

Author: Jeremy Huddleston <jeremyhu at apple.com>
Date:   Sun Jun  5 18:50:55 2011 -0400

apple: Build darwin using applegl rather than indirect

This reverts portions of 6849916170c0275c13510251a7b217c20f2b993e that caused
the darwin config to fail to build due to missing implementations in that
commit.

See https://bugs.freedesktop.org/show_bug.cgi?id=29162

Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
(cherry picked from commit 1885cf27c9c4642a049c60a8236cb84735cb9eba)

---

 src/glx/glxclient.h |   12 ++++++++++++
 src/glx/glxcmds.c   |    4 ++++
 src/glx/glxext.c    |    7 ++++---
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index 897fb74..0c99024 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -776,7 +776,19 @@ GarbageCollectDRIDrawables(struct glx_screen *psc);
 
 extern __GLXDRIdrawable *
 GetGLXDRIDrawable(Display *dpy, GLXDrawable drawable);
+#endif
+
+#ifdef GLX_USE_APPLEGL
+extern struct glx_screen *
+applegl_create_screen(int screen, struct glx_display * priv);
+
+extern struct glx_context *
+applegl_create_context(struct glx_screen *psc,
+			struct glx_config *mode,
+			struct glx_context *shareList, int renderType);
 
+extern int
+applegl_create_display(struct glx_display *display);
 #endif
 
 extern struct glx_context dummyContext;
diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c
index 0d41fe0..55fdeb6 100644
--- a/src/glx/glxcmds.c
+++ b/src/glx/glxcmds.c
@@ -228,10 +228,14 @@ CreateContext(Display * dpy, int generic_id,
       return NULL;
 
    gc = NULL;
+#ifdef GLX_USE_APPLEGL
+   gc = applegl_create_context(psc, config, shareList, renderType);
+#else
    if (allowDirect && psc->vtable->create_context)
       gc = psc->vtable->create_context(psc, config, shareList, renderType);
    if (!gc)
       gc = indirect_create_context(psc, config, shareList, renderType);
+#endif
    if (!gc)
       return NULL;
 
diff --git a/src/glx/glxext.c b/src/glx/glxext.c
index c75c9bf..d9560cd 100644
--- a/src/glx/glxext.c
+++ b/src/glx/glxext.c
@@ -764,11 +764,12 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv)
 	 psc = (*priv->driswDisplay->createScreen) (i, priv);
 #endif
 #if defined(GLX_USE_APPLEGL)
-      if (psc == NULL && priv->appleglDisplay)
-	 psc = (*priv->appleglDisplay->createScreen) (i, priv);
-#endif
+      if (psc == NULL)
+         psc = applegl_create_screen(i, priv);
+#else
       if (psc == NULL)
 	 psc = indirect_create_screen(i, priv);
+#endif
       priv->screens[i] = psc;
    }
    SyncHandle();




More information about the mesa-commit mailing list