Mesa (master): egl: try harder for eglGetProcAddress()

Alan Hourihane alanh at kemper.freedesktop.org
Thu Mar 19 15:37:36 UTC 2009


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

Author: Alan Hourihane <alanh at vmware.com>
Date:   Thu Mar 19 15:34:45 2009 +0000

egl: try harder for eglGetProcAddress()

---

 src/egl/drivers/glx/egl_glx.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/src/egl/drivers/glx/egl_glx.c b/src/egl/drivers/glx/egl_glx.c
index 3db63a9..e2b3b4f 100644
--- a/src/egl/drivers/glx/egl_glx.c
+++ b/src/egl/drivers/glx/egl_glx.c
@@ -797,7 +797,20 @@ GLX_eglSwapBuffers(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw)
 static _EGLProc
 GLX_eglGetProcAddress(const char *procname)
 {
-   return (_EGLProc)glXGetProcAddress((const GLubyte *)procname);   
+   /* This is a bit of a hack to get at the gallium/Mesa state tracker
+    *     * function st_get_proc_address().  This will probably change at
+    *         * some point.
+    *             */
+   _EGLProc (*get_proc_addr)(const char *procname);
+   get_proc_addr = dlsym(NULL, "st_get_proc_address");
+   if (get_proc_addr)
+      return get_proc_addr(procname);
+
+   get_proc_addr = glXGetProcAddress((const GLubyte *)procname);
+   if (get_proc_addr)
+      return get_proc_addr(procname);
+
+   return (_EGLProc)dlsym(NULL, procname);
 }
 
 




More information about the mesa-commit mailing list