diff options
author | marha <marha@users.sourceforge.net> | 2013-12-22 13:12:15 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-12-22 13:16:58 +0100 |
commit | 1d03b6f684ab1ea6772f00058605a9ebb2910628 (patch) | |
tree | 8b393bd59900eba6aa9010cab9e714922cac2536 /xorg-server/glx/indirect_program.c | |
parent | 5567cf1befbda64f2dc6fae1d337567cd984b46e (diff) | |
parent | c81020559f329a516191927222b3698ba7370aca (diff) | |
download | vcxsrv-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.c | 59 |
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); } |