gallium/xlib: Fix missing symbols when GLX_INDIRECT_RENDERING is defined.
authorChia-I Wu <olvaffe@gmail.com>
Thu, 15 Oct 2009 10:25:24 +0000 (18:25 +0800)
committerBrian Paul <brianp@vmware.com>
Fri, 6 Nov 2009 03:03:57 +0000 (20:03 -0700)
When GLX_INDIRECT_RENDERING is defined, some symbols are used in
libglapi.a but are not defined.  Define them through the help of
glapitemp.h.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
src/gallium/winsys/xlib/xlib.c

index 163cc8863cb6f3117d1f87ce480956d6f5234a13..bf2fb230eb4f0439f54a10191928a48266913ea3 100644 (file)
@@ -112,3 +112,33 @@ extern void (*linker_foo(const unsigned char *procName))()
 {
    return glXGetProcAddress(procName);
 }
+
+
+/**
+ * When GLX_INDIRECT_RENDERING is defined, some symbols are missing in
+ * libglapi.a.  We need to define them here.
+ */
+#ifdef GLX_INDIRECT_RENDERING
+
+#define GL_GLEXT_PROTOTYPES
+#include "GL/gl.h"
+#include "glapi/glapi.h"
+#include "glapi/dispatch.h"
+
+#if defined(USE_MGL_NAMESPACE)
+#define NAME(func)  mgl##func
+#else
+#define NAME(func)  gl##func
+#endif
+
+#define DISPATCH(FUNC, ARGS, MESSAGE)          \
+   CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+#define RETURN_DISPATCH(FUNC, ARGS, MESSAGE)   \
+   return CALL_ ## FUNC(GET_DISPATCH(), ARGS);
+
+/* skip normal ones */
+#define _GLAPI_SKIP_NORMAL_ENTRY_POINTS
+#include "glapi/glapitemp.h"
+
+#endif /* GLX_INDIRECT_RENDERING */