From 3f35fbbf668dab4c1a572f77a0912f4b7c8d857c Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 17 Mar 2005 01:48:11 +0000 Subject: Fix the handling of zero-sized output parameters (i.e., those with type 'GLvoid *'). This fixes the GLX protocol for glGetProgramStringARB. This fixes bugzilla #2747. Remove the 'ignore="true"' from glVertexAttrib4bvARB. This fixes bugzilla #2746. --- src/glx/x11/indirect.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/glx/x11/indirect.c') diff --git a/src/glx/x11/indirect.c b/src/glx/x11/indirect.c index 4d564c12d5..aafc7ab589 100644 --- a/src/glx/x11/indirect.c +++ b/src/glx/x11/indirect.c @@ -6756,6 +6756,19 @@ __indirect_glActiveStencilFaceEXT(GLenum face) if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } } +#define X_GLrop_VertexAttrib4bvARB 4230 +void +__indirect_glVertexAttrib4bvARB(GLuint index, const GLbyte * v) +{ + __GLXcontext * const gc = __glXGetCurrentContext(); + const GLuint cmdlen = 12; + emit_header(gc->pc, X_GLrop_VertexAttrib4bvARB, cmdlen); + (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); + (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); + gc->pc += cmdlen; + if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } +} + #define X_GLrop_VertexAttrib4ivARB 4231 void __indirect_glVertexAttrib4ivARB(GLuint index, const GLint * v) @@ -7058,7 +7071,7 @@ __indirect_glGetProgramStringARB(GLenum target, GLenum pname, GLvoid * string) GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramStringARB, cmdlen); (void) memcpy((void *)(pc + 0), (void *)(&target), 4); (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 0, string, GL_TRUE); + (void) __glXReadReply(dpy, 1, string, GL_TRUE); UnlockDisplay(dpy); SyncHandle(); } return; -- cgit v1.2.3