summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/xlib/xlib.c
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2010-01-20 10:02:15 +0800
committerChia-I Wu <olvaffe@gmail.com>2010-01-20 10:02:15 +0800
commit5e8240320ac39a3e8984054bc300743725312741 (patch)
treefa9575a5d33bbb524c549558e2dcf9bae9aca9eb /src/gallium/winsys/xlib/xlib.c
parent1658f80153b84d7d7f0bebeaaf89f9850f782923 (diff)
parentd8299af4ab6fe4b334292e3b6e69e4331c05d86f (diff)
Merge remote branch 'origin/opengl-es-v2'
Diffstat (limited to 'src/gallium/winsys/xlib/xlib.c')
-rw-r--r--src/gallium/winsys/xlib/xlib.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/gallium/winsys/xlib/xlib.c b/src/gallium/winsys/xlib/xlib.c
index 13117712c2..541ea7ae35 100644
--- a/src/gallium/winsys/xlib/xlib.c
+++ b/src/gallium/winsys/xlib/xlib.c
@@ -105,3 +105,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 */