From 6b93e1f5ff39c6ac5b0d97d4245aeac9113eed8b Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 3 Dec 2013 13:11:09 -0500 Subject: [PATCH] glx: Convert non-generated function pointer thunking Same concept as the generated code conversion. Signed-off-by: Adam Jackson Reviewed-by: Jon TURNEY --- glx/indirect_program.c | 34 ++++++++++++++++++++++++---------- glx/render2.c | 12 ++++++++++-- glx/render2swap.c | 12 ++++++++++-- 3 files changed, 44 insertions(+), 14 deletions(-) diff --git a/glx/indirect_program.c b/glx/indirect_program.c index db22d84..fa4a240 100644 --- a/glx/indirect_program.c +++ b/glx/indirect_program.c @@ -104,29 +104,43 @@ DoGetProgramString(struct __GLXclientStateRec *cl, GLbyte * pc, int __glXDisp_GetProgramStringARB(struct __GLXclientStateRec *cl, GLbyte * pc) { - return DoGetProgramString(cl, pc, glGetProgramivARB, - glGetProgramStringARB, 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, glGetProgramivARB, - glGetProgramStringARB, 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, (PFNGLGETPROGRAMIVARBPROC)glGetProgramivNV, - (PFNGLGETPROGRAMSTRINGARBPROC)glGetProgramStringNV, - 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, (PFNGLGETPROGRAMIVARBPROC)glGetProgramivNV, - (PFNGLGETPROGRAMSTRINGARBPROC)glGetProgramStringNV, - True); + PFNGLGETPROGRAMIVARBPROC get_program = + __glGetProcAddress("glGetProgramivARB"); + PFNGLGETPROGRAMSTRINGARBPROC get_program_string = + __glGetProcAddress("glGetProgramStringARB"); + + return DoGetProgramString(cl, pc, get_program, get_program_string, True); } diff --git a/glx/render2.c b/glx/render2.c index 5a2f482..8d9b5f4 100644 --- a/glx/render2.c +++ b/glx/render2.c @@ -231,13 +231,21 @@ __glXDisp_DrawArrays(GLbyte * pc) glEdgeFlagPointer(stride, (const GLboolean *) pc); break; case GL_SECONDARY_COLOR_ARRAY: + { + PFNGLSECONDARYCOLORPOINTERPROC SecondaryColorPointerEXT = + __glGetProcAddress("glSecondaryColorPointerEXT"); glEnableClientState(GL_SECONDARY_COLOR_ARRAY); - glSecondaryColorPointerEXT(numVals, datatype, stride, pc); + SecondaryColorPointerEXT(numVals, datatype, stride, pc); break; + } case GL_FOG_COORD_ARRAY: + { + PFNGLFOGCOORDPOINTERPROC FogCoordPointerEXT = + __glGetProcAddress("glFogCoordPointerEXT"); glEnableClientState(GL_FOG_COORD_ARRAY); - glFogCoordPointerEXT(datatype, stride, pc); + FogCoordPointerEXT(datatype, stride, pc); break; + } default: break; } diff --git a/glx/render2swap.c b/glx/render2swap.c index e6f73b8..6ed364f 100644 --- a/glx/render2swap.c +++ b/glx/render2swap.c @@ -353,13 +353,21 @@ __glXDispSwap_DrawArrays(GLbyte * pc) glEdgeFlagPointer(stride, (const GLboolean *) pc); break; case GL_SECONDARY_COLOR_ARRAY: + { + PFNGLSECONDARYCOLORPOINTERPROC SecondaryColorPointerEXT = + __glGetProcAddress("glSecondaryColorPointerEXT"); glEnableClientState(GL_SECONDARY_COLOR_ARRAY); - glSecondaryColorPointerEXT(numVals, datatype, stride, pc); + SecondaryColorPointerEXT(numVals, datatype, stride, pc); break; + } case GL_FOG_COORD_ARRAY: + { + PFNGLFOGCOORDPOINTERPROC FogCoordPointerEXT = + __glGetProcAddress("glFogCoordPointerEXT"); glEnableClientState(GL_FOG_COORD_ARRAY); - glFogCoordPointerEXT(datatype, stride, pc); + FogCoordPointerEXT(datatype, stride, pc); break; + } default: break; } -- 2.7.4