summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2012-07-31 16:58:41 -0700
committerIan Romanick <[email protected]>2012-08-08 10:06:26 -0700
commit99fee476a102be898a1a093c037e06382f90a5b9 (patch)
tree80a730afe812f5324804a1b3884483cade03771e
parentf5dffb7e36487ff8a012725aaf78a4b7d3169102 (diff)
glx: Don't use glapitable.h at all
When --enable-shared-glapi is used, all non-ABI entries in the table are lies. Avoiding the use of glapitable.h avoids the lies. The only entries used in this code are entries that are ABI. For these, the ABI offset can be used directly. Since this code is in src/glx, it can't use src/mesa/main/dispatch.h to get the pretty names for these offsets. Signed-off-by: Ian Romanick <[email protected]>
-rw-r--r--src/glx/glxclient.h1
-rw-r--r--src/glx/single2.c7
-rw-r--r--src/glx/singlepix.c8
-rw-r--r--src/mapi/glapi/gen/glX_proto_send.py5
4 files changed, 14 insertions, 7 deletions
diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h
index f8ae450f09c..91577a81c2d 100644
--- a/src/glx/glxclient.h
+++ b/src/glx/glxclient.h
@@ -51,7 +51,6 @@
#include <stdint.h>
#endif
#include "GL/glxproto.h"
-#include "glapi/glapitable.h"
#include "glxconfig.h"
#include "glxhash.h"
#if defined( PTHREADS )
diff --git a/src/glx/single2.c b/src/glx/single2.c
index 259c4fec1ff..d422d9dcf1a 100644
--- a/src/glx/single2.c
+++ b/src/glx/single2.c
@@ -35,7 +35,6 @@
#include "glxextensions.h"
#include "indirect.h"
#include "indirect_vertex_array.h"
-#include "glapitable.h"
#include "glapi.h"
#ifdef USE_XCB
#include <xcb/xcb.h>
@@ -943,7 +942,11 @@ glAreTexturesResidentEXT(GLsizei n, const GLuint * textures,
struct glx_context *const gc = __glXGetCurrentContext();
if (gc->isDirect) {
- return GET_DISPATCH()->AreTexturesResident(n, textures, residences);
+ const _glapi_proc *const table = (_glapi_proc *) GET_DISPATCH();
+ PFNGLARETEXTURESRESIDENTEXTPROC p =
+ (PFNGLARETEXTURESRESIDENTEXTPROC) table[332];
+
+ return p(n, textures, residences);
}
else {
struct glx_context *const gc = __glXGetCurrentContext();
diff --git a/src/glx/singlepix.c b/src/glx/singlepix.c
index d8a71664d05..3c06f8d2150 100644
--- a/src/glx/singlepix.c
+++ b/src/glx/singlepix.c
@@ -30,7 +30,6 @@
#include "packsingle.h"
#include "indirect.h"
-#include "glapitable.h"
#include "glapi.h"
#include "glthread.h"
#include <GL/glxproto.h>
@@ -117,8 +116,11 @@ void gl_dispatch_stub_GetSeparableFilterEXT (GLenum target, GLenum format,
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
if (gc->isDirect) {
- GET_DISPATCH()->GetSeparableFilter(target, format, type,
- row, column, span);
+ const _glapi_proc *const table = (_glapi_proc *) GET_DISPATCH();
+ PFNGLGETSEPARABLEFILTEREXTPROC p =
+ (PFNGLGETSEPARABLEFILTEREXTPROC) table[359];
+
+ p(target, format, type, row, column, span);
return;
}
else
diff --git a/src/mapi/glapi/gen/glX_proto_send.py b/src/mapi/glapi/gen/glX_proto_send.py
index b90b1674428..ca3a7905605 100644
--- a/src/mapi/glapi/gen/glX_proto_send.py
+++ b/src/mapi/glapi/gen/glX_proto_send.py
@@ -423,7 +423,10 @@ __indirect_get_proc_address(const char *name)
print ''
print '#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)'
print ' if (gc->isDirect) {'
- print ' %sGET_DISPATCH()->%s(%s);' % (ret_string, func.name, func.get_called_parameter_string())
+ print ' const _glapi_proc *const table = GET_DISPATCH();'
+ print ' PFNGL%sPROC p =' % (name.upper())
+ print ' (PFNGL%sPROC) table[%d];' % (name.upper(), func.offset)
+ print ' %sp(%s);' % (ret_string, func.get_called_parameter_string())
print ' } else'
print '#endif'
print ' {'