diff options
author | Adam Jackson <ajax@redhat.com> | 2013-07-10 10:00:46 -0400 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2013-10-29 12:29:16 -0400 |
commit | be6680967a479eedbcab2fe1718c5f981e1029c7 (patch) | |
tree | 9a7105fc1eea53f136b13ec355a3c425aaf25a6f /glx/single2.c | |
parent | 8aacf47e1778d8b72811b025a82452b933d3c1f2 (diff) |
glx: convert to direct GL dispatch (v2)
We now expect to be linked against something that provides the GL API,
instead of manually grubbing about in the DRI driver's dispatch table.
Since the GLX we expose calls GL functions that are meant to be looked
up dynamically, also add a way to thunk through to GetProcAddress.
This includes a refresh of the generated sources, which requires a
correspondingly new Mesa.
The GetProcAddress stubs are at the moment merely enough to make this
link against Mesa 9.2, but should really be provided for everything not
in the OpenGL 1.2 ABI.
v2: Explicitly hide the GetProcAddress stubs so we can't conflict with
libGL symbols; fix leading tab/space issues [anholt]
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'glx/single2.c')
-rw-r--r-- | glx/single2.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/glx/single2.c b/glx/single2.c index 9597d29fe..53b661d20 100644 --- a/glx/single2.c +++ b/glx/single2.c @@ -41,10 +41,6 @@ #include "glxext.h" #include "indirect_dispatch.h" #include "unpack.h" -#include "glapitable.h" -#include "glapi.h" -#include "glthread.h" -#include "dispatch.h" int __glXDisp_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc) @@ -72,7 +68,7 @@ __glXDisp_FeedbackBuffer(__GLXclientState * cl, GLbyte * pc) } cx->feedbackBufSize = size; } - CALL_FeedbackBuffer(GET_DISPATCH(), (size, type, cx->feedbackBuf)); + glFeedbackBuffer(size, type, cx->feedbackBuf); cx->hasUnflushedCommands = GL_TRUE; return Success; } @@ -100,7 +96,7 @@ __glXDisp_SelectBuffer(__GLXclientState * cl, GLbyte * pc) } cx->selectBufSize = size; } - CALL_SelectBuffer(GET_DISPATCH(), (size, cx->selectBuf)); + glSelectBuffer(size, cx->selectBuf); cx->hasUnflushedCommands = GL_TRUE; return Success; } @@ -123,10 +119,10 @@ __glXDisp_RenderMode(__GLXclientState * cl, GLbyte * pc) pc += __GLX_SINGLE_HDR_SIZE; newMode = *(GLenum *) pc; - retval = CALL_RenderMode(GET_DISPATCH(), (newMode)); + retval = glRenderMode(newMode); /* Check that render mode worked */ - CALL_GetIntegerv(GET_DISPATCH(), (GL_RENDER_MODE, &newModeCheck)); + glGetIntegerv(GL_RENDER_MODE, &newModeCheck); if (newModeCheck != newMode) { /* Render mode change failed. Bail */ newMode = newModeCheck; @@ -219,7 +215,7 @@ __glXDisp_Flush(__GLXclientState * cl, GLbyte * pc) return error; } - CALL_Flush(GET_DISPATCH(), ()); + glFlush(); cx->hasUnflushedCommands = GL_FALSE; return Success; } @@ -237,7 +233,7 @@ __glXDisp_Finish(__GLXclientState * cl, GLbyte * pc) } /* Do a local glFinish */ - CALL_Finish(GET_DISPATCH(), ()); + glFinish(); cx->hasUnflushedCommands = GL_FALSE; /* Send empty reply packet to indicate finish is finished */ @@ -346,7 +342,7 @@ DoGetString(__GLXclientState * cl, GLbyte * pc, GLboolean need_swap) pc += __GLX_SINGLE_HDR_SIZE; name = *(GLenum *) (pc + 0); - string = (const char *) CALL_GetString(GET_DISPATCH(), (name)); + string = (const char *) glGetString(name); client = cl->client; if (string == NULL) |