aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/glx/indirect_program.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-12-22 13:12:15 +0100
committermarha <marha@users.sourceforge.net>2013-12-22 13:16:58 +0100
commit1d03b6f684ab1ea6772f00058605a9ebb2910628 (patch)
tree8b393bd59900eba6aa9010cab9e714922cac2536 /xorg-server/glx/indirect_program.c
parent5567cf1befbda64f2dc6fae1d337567cd984b46e (diff)
parentc81020559f329a516191927222b3698ba7370aca (diff)
downloadvcxsrv-1d03b6f684ab1ea6772f00058605a9ebb2910628.tar.gz
vcxsrv-1d03b6f684ab1ea6772f00058605a9ebb2910628.tar.bz2
vcxsrv-1d03b6f684ab1ea6772f00058605a9ebb2910628.zip
Merge remote-tracking branch 'origin/released'
* origin/released: libxtrans fontconfig glproto libX11 libxcb xcbproto mesa xserver pixman xkeyboard-config git update 22 Dec 2013 Conflicts: mesalib/include/GL/glext.h mesalib/src/mesa/drivers/dri/common/dri_util.c mesalib/src/mesa/drivers/dri/swrast/swrast.c xorg-server/damageext/damageext.c xorg-server/dix/dispatch.c xorg-server/glx/glxdriswrast.c xorg-server/glx/indirect_dispatch.c xorg-server/glx/indirect_dispatch_swap.c xorg-server/glx/indirect_program.c xorg-server/glx/render2.c xorg-server/glx/render2swap.c xorg-server/hw/xwin/glx/gen_gl_wrappers.py xorg-server/hw/xwin/glx/glthunk.c xorg-server/hw/xwin/glx/indirect.c xorg-server/include/os.h xorg-server/present/present_request.c
Diffstat (limited to 'xorg-server/glx/indirect_program.c')
-rw-r--r--xorg-server/glx/indirect_program.c59
1 files changed, 30 insertions, 29 deletions
diff --git a/xorg-server/glx/indirect_program.c b/xorg-server/glx/indirect_program.c
index 17204c17d..9a648b745 100644
--- a/xorg-server/glx/indirect_program.c
+++ b/xorg-server/glx/indirect_program.c
@@ -46,23 +46,14 @@
#include "glthread.h"
#include "dispatch.h"
-static int DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
- unsigned get_programiv_offset,
- unsigned get_program_string_offset, Bool do_swap);
-
/**
* Handle both types of glGetProgramString calls.
- *
- * This single function handles both \c glGetProgramStringARB and
- * \c glGetProgramStringNV. The dispatch offsets for the functions to use
- * for \c glGetProgramivARB and \c glGetProgramStringARB are passed in by the
- * caller. These can be the offsets of either the ARB versions or the NV
- * versions.
*/
-int
+static int
DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
- unsigned get_programiv_offset,
- unsigned get_program_string_offset, Bool do_swap)
+ PFNGLGETPROGRAMIVARBPROC get_programiv,
+ PFNGLGETPROGRAMSTRINGARBPROC get_program_string,
+ Bool do_swap)
{
xGLXVendorPrivateWithReplyReq *const req =
(xGLXVendorPrivateWithReplyReq *) pc;
@@ -89,19 +80,13 @@ DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
/* The value of the GL_PROGRAM_LENGTH_ARB and GL_PROGRAM_LENGTH_NV
* enumerants is the same.
*/
- CALL_by_offset(GET_DISPATCH(),
- (void (GLAPIENTRYP) (GLuint, GLenum, GLint *)),
- get_programiv_offset,
- (target, GL_PROGRAM_LENGTH_ARB, &compsize));
+ get_programiv(target, GL_PROGRAM_LENGTH_ARB, &compsize);
if (compsize != 0) {
__GLX_GET_ANSWER_BUFFER(answer, cl, compsize, 1);
__glXClearErrorOccured();
- CALL_by_offset(GET_DISPATCH(),
- (void (GLAPIENTRYP) (GLuint, GLenum, GLubyte *)),
- get_program_string_offset,
- (target, pname, (GLubyte *) answer));
+ get_program_string(target, pname, (GLubyte *) answer);
}
if (__glXErrorOccured()) {
@@ -124,27 +109,43 @@ DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc,
int
__glXDisp_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, _gloffset_GetProgramivARB,
- _gloffset_GetProgramStringARB, False);
+ PFNGLGETPROGRAMIVARBPROC get_program =
+ __glGetProcAddress("glGetProgramivARB");
+ PFNGLGETPROGRAMSTRINGARBPROC get_program_string =
+ __glGetProcAddress("glGetProgramStringARB");
+
+ return DoGetProgramString(cl, pc, get_program, get_program_string, False);
}
int
__glXDispSwap_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, _gloffset_GetProgramivARB,
- _gloffset_GetProgramStringARB, True);
+ PFNGLGETPROGRAMIVARBPROC get_program =
+ __glGetProcAddress("glGetProgramivARB");
+ PFNGLGETPROGRAMSTRINGARBPROC get_program_string =
+ __glGetProcAddress("glGetProgramStringARB");
+
+ return DoGetProgramString(cl, pc, get_program, get_program_string, True);
}
int
__glXDisp_GetProgramStringNV(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, _gloffset_GetProgramivNV,
- _gloffset_GetProgramStringNV, False);
+ PFNGLGETPROGRAMIVARBPROC get_program =
+ __glGetProcAddress("glGetProgramivARB");
+ PFNGLGETPROGRAMSTRINGARBPROC get_program_string =
+ __glGetProcAddress("glGetProgramStringARB");
+
+ return DoGetProgramString(cl, pc, get_program, get_program_string, False);
}
int
__glXDispSwap_GetProgramStringNV(struct __GLXclientStateRec *cl, GLbyte * pc)
{
- return DoGetProgramString(cl, pc, _gloffset_GetProgramivNV,
- _gloffset_GetProgramStringNV, True);
+ PFNGLGETPROGRAMIVARBPROC get_program =
+ __glGetProcAddress("glGetProgramivARB");
+ PFNGLGETPROGRAMSTRINGARBPROC get_program_string =
+ __glGetProcAddress("glGetProgramStringARB");
+
+ return DoGetProgramString(cl, pc, get_program, get_program_string, True);
}