diff options
author | Jon Turney <jon.turney@dronecode.org.uk> | 2016-11-17 14:03:31 +0000 |
---|---|---|
committer | Jon Turney <jon.turney@dronecode.org.uk> | 2016-11-17 14:03:31 +0000 |
commit | 7caad0c878e11d22a63377319dd317e2bab30280 (patch) | |
tree | 7cdce74ab195c7ee89d64d8e6f1853526749baf0 /glx | |
parent | 7e5c9bdf73e4185ac4cf7f044da0793a5cc3e62c (diff) | |
parent | 3876fa25317449e95c8b44b0abfda72e91828a7d (diff) |
Merge branch 'cygwin-patches-for-1.19' into cygwin-release-1.19xserver-cygwin-1.19.0-1
Diffstat (limited to 'glx')
-rw-r--r-- | glx/indirect_dispatch.c | 109 | ||||
-rw-r--r-- | glx/indirect_dispatch.h | 24 | ||||
-rw-r--r-- | glx/indirect_dispatch_swap.c | 149 | ||||
-rw-r--r-- | glx/indirect_size_get.c | 28 | ||||
-rw-r--r-- | glx/indirect_size_get.h | 3 | ||||
-rw-r--r-- | glx/indirect_table.c | 27 | ||||
-rw-r--r-- | glx/rensize.c | 1 |
7 files changed, 310 insertions, 31 deletions
diff --git a/glx/indirect_dispatch.c b/glx/indirect_dispatch.c index 24784e693..b5e00e1ab 100644 --- a/glx/indirect_dispatch.c +++ b/glx/indirect_dispatch.c @@ -4035,6 +4035,99 @@ __glXDisp_DrawBuffers(GLbyte * pc) DrawBuffers(n, (const GLenum *) (pc + 4)); } +int +__glXDisp_GetVertexAttribdv(__GLXclientState * cl, GLbyte * pc) +{ + PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv = + __glGetProcAddress("glGetVertexAttribdv"); + xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; + int error; + __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); + + pc += __GLX_VENDPRIV_HDR_SIZE; + if (cx != NULL) { + const GLenum pname = *(GLenum *) (pc + 4); + + const GLuint compsize = __glGetVertexAttribdv_size(pname); + GLdouble answerBuffer[200]; + GLdouble *params = + __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, + sizeof(answerBuffer), 8); + + if (params == NULL) + return BadAlloc; + __glXClearErrorOccured(); + + GetVertexAttribdv(*(GLuint *) (pc + 0), pname, params); + __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0); + error = Success; + } + + return error; +} + +int +__glXDisp_GetVertexAttribfv(__GLXclientState * cl, GLbyte * pc) +{ + PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv = + __glGetProcAddress("glGetVertexAttribfv"); + xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; + int error; + __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); + + pc += __GLX_VENDPRIV_HDR_SIZE; + if (cx != NULL) { + const GLenum pname = *(GLenum *) (pc + 4); + + const GLuint compsize = __glGetVertexAttribfv_size(pname); + GLfloat answerBuffer[200]; + GLfloat *params = + __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, + sizeof(answerBuffer), 4); + + if (params == NULL) + return BadAlloc; + __glXClearErrorOccured(); + + GetVertexAttribfv(*(GLuint *) (pc + 0), pname, params); + __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0); + error = Success; + } + + return error; +} + +int +__glXDisp_GetVertexAttribiv(__GLXclientState * cl, GLbyte * pc) +{ + PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv = + __glGetProcAddress("glGetVertexAttribiv"); + xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; + int error; + __GLXcontext *const cx = __glXForceCurrent(cl, req->contextTag, &error); + + pc += __GLX_VENDPRIV_HDR_SIZE; + if (cx != NULL) { + const GLenum pname = *(GLenum *) (pc + 4); + + const GLuint compsize = __glGetVertexAttribiv_size(pname); + GLint answerBuffer[200]; + GLint *params = + __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, + sizeof(answerBuffer), 4); + + if (params == NULL) + return BadAlloc; + __glXClearErrorOccured(); + + GetVertexAttribiv(*(GLuint *) (pc + 0), pname, params); + __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0); + error = Success; + } + + return error; +} + void __glXDisp_VertexAttrib1dv(GLbyte * pc) { @@ -5125,3 +5218,19 @@ __glXDisp_ActiveStencilFaceEXT(GLbyte * pc) __glGetProcAddress("glActiveStencilFaceEXT"); ActiveStencilFaceEXT(*(GLenum *) (pc + 0)); } + +void +__glXDisp_BindFramebufferEXT(GLbyte * pc) +{ + PFNGLBINDFRAMEBUFFEREXTPROC BindFramebufferEXT = + __glGetProcAddress("glBindFramebufferEXT"); + BindFramebufferEXT(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); +} + +void +__glXDisp_BindRenderbufferEXT(GLbyte * pc) +{ + PFNGLBINDRENDERBUFFEREXTPROC BindRenderbufferEXT = + __glGetProcAddress("glBindRenderbufferEXT"); + BindRenderbufferEXT(*(GLenum *) (pc + 0), *(GLuint *) (pc + 4)); +} diff --git a/glx/indirect_dispatch.h b/glx/indirect_dispatch.h index 536be60ac..8f8b5ae22 100644 --- a/glx/indirect_dispatch.h +++ b/glx/indirect_dispatch.h @@ -116,6 +116,10 @@ extern _X_HIDDEN void __glXDisp_LightModeliv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_LightModeliv(GLbyte * pc); extern _X_HIDDEN void __glXDisp_VertexAttribs1dvNV(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_VertexAttribs1dvNV(GLbyte * pc); +extern _X_HIDDEN int __glXDisp_GetVertexAttribfv(struct __GLXclientStateRec *, + GLbyte *); +extern _X_HIDDEN int __glXDispSwap_GetVertexAttribfv(struct __GLXclientStateRec + *, GLbyte *); extern _X_HIDDEN void __glXDisp_Normal3bv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_Normal3bv(GLbyte * pc); extern _X_HIDDEN int __glXDisp_VendorPrivate(struct __GLXclientStateRec *, @@ -413,6 +417,10 @@ extern _X_HIDDEN void __glXDisp_TexGenfv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_TexGenfv(GLbyte * pc); extern _X_HIDDEN void __glXDisp_VertexAttrib4dvNV(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_VertexAttrib4dvNV(GLbyte * pc); +extern _X_HIDDEN int __glXDisp_GetVertexAttribiv(struct __GLXclientStateRec *, + GLbyte *); +extern _X_HIDDEN int __glXDispSwap_GetVertexAttribiv(struct __GLXclientStateRec + *, GLbyte *); extern _X_HIDDEN void __glXDisp_DrawBuffers(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_DrawBuffers(GLbyte * pc); extern _X_HIDDEN int __glXDisp_CreateContextWithConfigSGIX(struct @@ -552,6 +560,8 @@ extern _X_HIDDEN void __glXDisp_MultiTexCoord1sv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1sv(GLbyte * pc); extern _X_HIDDEN void __glXDisp_RasterPos3sv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_RasterPos3sv(GLbyte * pc); +extern _X_HIDDEN void __glXDisp_BindFramebufferEXT(GLbyte * pc); +extern _X_HIDDEN void __glXDispSwap_BindFramebufferEXT(GLbyte * pc); extern _X_HIDDEN void __glXDisp_PushAttrib(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_PushAttrib(GLbyte * pc); extern _X_HIDDEN int __glXDisp_DestroyPbuffer(struct __GLXclientStateRec *, @@ -676,6 +686,8 @@ extern _X_HIDDEN int __glXDisp_GetTexParameteriv(struct __GLXclientStateRec *, GLbyte *); extern _X_HIDDEN int __glXDispSwap_GetTexParameteriv(struct __GLXclientStateRec *, GLbyte *); +extern _X_HIDDEN void __glXDisp_VertexAttribs4dvNV(GLbyte * pc); +extern _X_HIDDEN void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc); extern _X_HIDDEN void __glXDisp_VertexAttrib3sv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_VertexAttrib3sv(GLbyte * pc); extern _X_HIDDEN int __glXDisp_IsQuery(struct __GLXclientStateRec *, GLbyte *); @@ -776,8 +788,6 @@ extern _X_HIDDEN void __glXDisp_ColorMaterial(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_ColorMaterial(GLbyte * pc); extern _X_HIDDEN void __glXDisp_VertexAttribs1svNV(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_VertexAttribs1svNV(GLbyte * pc); -extern _X_HIDDEN void __glXDisp_VertexAttrib1fvNV(GLbyte * pc); -extern _X_HIDDEN void __glXDispSwap_VertexAttrib1fvNV(GLbyte * pc); extern _X_HIDDEN int __glXDisp_GetSeparableFilter(struct __GLXclientStateRec *, GLbyte *); extern _X_HIDDEN int __glXDispSwap_GetSeparableFilter(struct __GLXclientStateRec @@ -803,6 +813,10 @@ extern _X_HIDDEN int __glXDispSwap_RenderLarge(struct __GLXclientStateRec *, GLbyte *); extern _X_HIDDEN void __glXDisp_PolygonOffset(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_PolygonOffset(GLbyte * pc); +extern _X_HIDDEN int __glXDisp_GetVertexAttribdv(struct __GLXclientStateRec *, + GLbyte *); +extern _X_HIDDEN int __glXDispSwap_GetVertexAttribdv(struct __GLXclientStateRec + *, GLbyte *); extern _X_HIDDEN void __glXDisp_Normal3dv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_Normal3dv(GLbyte * pc); extern _X_HIDDEN void __glXDisp_Lightf(GLbyte * pc); @@ -960,6 +974,8 @@ extern _X_HIDDEN void __glXDisp_CopyTexImage1D(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_CopyTexImage1D(GLbyte * pc); extern _X_HIDDEN void __glXDisp_RasterPos2dv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_RasterPos2dv(GLbyte * pc); +extern _X_HIDDEN void __glXDisp_VertexAttrib1fvNV(GLbyte * pc); +extern _X_HIDDEN void __glXDispSwap_VertexAttrib1fvNV(GLbyte * pc); extern _X_HIDDEN void __glXDisp_Fogiv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_Fogiv(GLbyte * pc); extern _X_HIDDEN void __glXDisp_EndQuery(GLbyte * pc); @@ -1010,6 +1026,8 @@ extern _X_HIDDEN void __glXDisp_MultiTexCoord1iv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_MultiTexCoord1iv(GLbyte * pc); extern _X_HIDDEN void __glXDisp_Vertex2fv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_Vertex2fv(GLbyte * pc); +extern _X_HIDDEN void __glXDisp_BindRenderbufferEXT(GLbyte * pc); +extern _X_HIDDEN void __glXDispSwap_BindRenderbufferEXT(GLbyte * pc); extern _X_HIDDEN void __glXDisp_Vertex3sv(GLbyte * pc); extern _X_HIDDEN void __glXDispSwap_Vertex3sv(GLbyte * pc); extern _X_HIDDEN int __glXDisp_GetQueryObjectiv(struct __GLXclientStateRec *, @@ -1156,8 +1174,6 @@ extern _X_HIDDEN int __glXDisp_GetConvolutionFilterEXT(struct extern _X_HIDDEN int __glXDispSwap_GetConvolutionFilterEXT(struct __GLXclientStateRec *, GLbyte *); -extern _X_HIDDEN void __glXDisp_VertexAttribs4dvNV(GLbyte * pc); -extern _X_HIDDEN void __glXDispSwap_VertexAttribs4dvNV(GLbyte * pc); extern _X_HIDDEN int __glXDisp_GetTexGenfv(struct __GLXclientStateRec *, GLbyte *); extern _X_HIDDEN int __glXDispSwap_GetTexGenfv(struct __GLXclientStateRec *, diff --git a/glx/indirect_dispatch_swap.c b/glx/indirect_dispatch_swap.c index 7ebcc6330..b2c0b39e4 100644 --- a/glx/indirect_dispatch_swap.c +++ b/glx/indirect_dispatch_swap.c @@ -3847,8 +3847,8 @@ __glXDispSwap_MultiTexCoord1dv(GLbyte * pc) #endif glMultiTexCoord1dvARB((GLenum) bswap_ENUM(pc + 8), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 1)); + (const GLdouble *) + bswap_64_array((uint64_t *) (pc + 0), 1)); } void @@ -3871,8 +3871,8 @@ void __glXDispSwap_MultiTexCoord1sv(GLbyte * pc) { glMultiTexCoord1svARB((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 1)); + (const GLshort *) + bswap_16_array((uint16_t *) (pc + 4), 1)); } void @@ -3886,8 +3886,8 @@ __glXDispSwap_MultiTexCoord2dv(GLbyte * pc) #endif glMultiTexCoord2dvARB((GLenum) bswap_ENUM(pc + 16), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 2)); + (const GLdouble *) + bswap_64_array((uint64_t *) (pc + 0), 2)); } void @@ -3910,8 +3910,8 @@ void __glXDispSwap_MultiTexCoord2sv(GLbyte * pc) { glMultiTexCoord2svARB((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 2)); + (const GLshort *) + bswap_16_array((uint16_t *) (pc + 4), 2)); } void @@ -3925,8 +3925,8 @@ __glXDispSwap_MultiTexCoord3dv(GLbyte * pc) #endif glMultiTexCoord3dvARB((GLenum) bswap_ENUM(pc + 24), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 3)); + (const GLdouble *) + bswap_64_array((uint64_t *) (pc + 0), 3)); } void @@ -3949,8 +3949,8 @@ void __glXDispSwap_MultiTexCoord3sv(GLbyte * pc) { glMultiTexCoord3svARB((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 3)); + (const GLshort *) + bswap_16_array((uint16_t *) (pc + 4), 3)); } void @@ -3964,8 +3964,8 @@ __glXDispSwap_MultiTexCoord4dv(GLbyte * pc) #endif glMultiTexCoord4dvARB((GLenum) bswap_ENUM(pc + 32), - (const GLdouble *) bswap_64_array((uint64_t *) (pc + 0), - 4)); + (const GLdouble *) + bswap_64_array((uint64_t *) (pc + 0), 4)); } void @@ -3988,8 +3988,8 @@ void __glXDispSwap_MultiTexCoord4sv(GLbyte * pc) { glMultiTexCoord4svARB((GLenum) bswap_ENUM(pc + 0), - (const GLshort *) bswap_16_array((uint16_t *) (pc + 4), - 4)); + (const GLshort *) + bswap_16_array((uint16_t *) (pc + 4), 4)); } void @@ -4451,6 +4451,105 @@ __glXDispSwap_DrawBuffers(GLbyte * pc) DrawBuffers(n, (const GLenum *) bswap_32_array((uint32_t *) (pc + 4), 0)); } +int +__glXDispSwap_GetVertexAttribdv(__GLXclientState * cl, GLbyte * pc) +{ + PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv = + __glGetProcAddress("glGetVertexAttribdv"); + xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; + int error; + __GLXcontext *const cx = + __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error); + + pc += __GLX_VENDPRIV_HDR_SIZE; + if (cx != NULL) { + const GLenum pname = (GLenum) bswap_ENUM(pc + 4); + + const GLuint compsize = __glGetVertexAttribdv_size(pname); + GLdouble answerBuffer[200]; + GLdouble *params = + __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, + sizeof(answerBuffer), 8); + + if (params == NULL) + return BadAlloc; + __glXClearErrorOccured(); + + GetVertexAttribdv((GLuint) bswap_CARD32(pc + 0), pname, params); + (void) bswap_64_array((uint64_t *) params, compsize); + __glXSendReplySwap(cl->client, params, compsize, 8, GL_FALSE, 0); + error = Success; + } + + return error; +} + +int +__glXDispSwap_GetVertexAttribfv(__GLXclientState * cl, GLbyte * pc) +{ + PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv = + __glGetProcAddress("glGetVertexAttribfv"); + xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; + int error; + __GLXcontext *const cx = + __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error); + + pc += __GLX_VENDPRIV_HDR_SIZE; + if (cx != NULL) { + const GLenum pname = (GLenum) bswap_ENUM(pc + 4); + + const GLuint compsize = __glGetVertexAttribfv_size(pname); + GLfloat answerBuffer[200]; + GLfloat *params = + __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, + sizeof(answerBuffer), 4); + + if (params == NULL) + return BadAlloc; + __glXClearErrorOccured(); + + GetVertexAttribfv((GLuint) bswap_CARD32(pc + 0), pname, params); + (void) bswap_32_array((uint32_t *) params, compsize); + __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0); + error = Success; + } + + return error; +} + +int +__glXDispSwap_GetVertexAttribiv(__GLXclientState * cl, GLbyte * pc) +{ + PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv = + __glGetProcAddress("glGetVertexAttribiv"); + xGLXVendorPrivateReq *const req = (xGLXVendorPrivateReq *) pc; + int error; + __GLXcontext *const cx = + __glXForceCurrent(cl, bswap_CARD32(&req->contextTag), &error); + + pc += __GLX_VENDPRIV_HDR_SIZE; + if (cx != NULL) { + const GLenum pname = (GLenum) bswap_ENUM(pc + 4); + + const GLuint compsize = __glGetVertexAttribiv_size(pname); + GLint answerBuffer[200]; + GLint *params = + __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, + sizeof(answerBuffer), 4); + + if (params == NULL) + return BadAlloc; + __glXClearErrorOccured(); + + GetVertexAttribiv((GLuint) bswap_CARD32(pc + 0), pname, params); + (void) bswap_32_array((uint32_t *) params, compsize); + __glXSendReplySwap(cl->client, params, compsize, 4, GL_FALSE, 0); + error = Success; + } + + return error; +} + void __glXDispSwap_VertexAttrib1dv(GLbyte * pc) { @@ -5695,3 +5794,21 @@ __glXDispSwap_ActiveStencilFaceEXT(GLbyte * pc) __glGetProcAddress("glActiveStencilFaceEXT"); ActiveStencilFaceEXT((GLenum) bswap_ENUM(pc + 0)); } + +void +__glXDispSwap_BindFramebufferEXT(GLbyte * pc) +{ + PFNGLBINDFRAMEBUFFEREXTPROC BindFramebufferEXT = + __glGetProcAddress("glBindFramebufferEXT"); + BindFramebufferEXT((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4)); +} + +void +__glXDispSwap_BindRenderbufferEXT(GLbyte * pc) +{ + PFNGLBINDRENDERBUFFEREXTPROC BindRenderbufferEXT = + __glGetProcAddress("glBindRenderbufferEXT"); + BindRenderbufferEXT((GLenum) bswap_ENUM(pc + 0), + (GLuint) bswap_CARD32(pc + 4)); +} diff --git a/glx/indirect_size_get.c b/glx/indirect_size_get.c index 7e81e6288..d3ab42999 100644 --- a/glx/indirect_size_get.c +++ b/glx/indirect_size_get.c @@ -603,7 +603,11 @@ __glGetBooleanv_size(GLenum e) case GL_OCCLUSION_TEST_RESULT_HP: case GL_LIGHT_MODEL_COLOR_CONTROL: case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB: +/* case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH:*/ case GL_RESET_NOTIFICATION_STRATEGY_ARB: +/* case GL_MAX_DEBUG_GROUP_STACK_DEPTH: */ +/* case GL_DEBUG_GROUP_STACK_DEPTH: */ +/* case GL_MAX_LABEL_LENGTH: */ case GL_CURRENT_FOG_COORD: case GL_FOG_COORDINATE_ARRAY_TYPE: case GL_FOG_COORDINATE_ARRAY_STRIDE: @@ -749,8 +753,11 @@ __glGetBooleanv_size(GLenum e) /* case GL_MAX_SAMPLES_EXT:*/ case GL_MAX_SERVER_WAIT_TIMEOUT: case GL_MAX_DEBUG_MESSAGE_LENGTH_ARB: +/* case GL_MAX_DEBUG_MESSAGE_LENGTH:*/ case GL_MAX_DEBUG_LOGGED_MESSAGES_ARB: +/* case GL_MAX_DEBUG_LOGGED_MESSAGES:*/ case GL_DEBUG_LOGGED_MESSAGES_ARB: +/* case GL_DEBUG_LOGGED_MESSAGES:*/ case GL_RASTER_POSITION_UNCLIPPED_IBM: return 1; case GL_SMOOTH_POINT_SIZE_RANGE: @@ -928,7 +935,9 @@ __glGetPointerv_size(GLenum e) { switch (e) { case GL_DEBUG_CALLBACK_FUNCTION_ARB: +/* case GL_DEBUG_CALLBACK_FUNCTION:*/ case GL_DEBUG_CALLBACK_USER_PARAM_ARB: +/* case GL_DEBUG_CALLBACK_USER_PARAM:*/ return 1; default: return 0; @@ -1105,6 +1114,23 @@ __glGetQueryiv_size(GLenum e) } _X_INTERNAL PURE FASTCALL GLint +__glGetVertexAttribdv_size(GLenum e) +{ + switch (e) { + case GL_VERTEX_PROGRAM_ARB: + case GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB: + case GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB: + case GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB: + case GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB: + case GL_CURRENT_VERTEX_ATTRIB_ARB: + case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB: + return 1; + default: + return 0; + } +} + +_X_INTERNAL PURE FASTCALL GLint __glGetProgramivARB_size(GLenum e) { switch (e) { @@ -1216,5 +1242,7 @@ ALIAS(Fogiv, Fogfv) ALIAS(GetMinmaxParameteriv, GetMinmaxParameterfv) ALIAS(PointParameteriv, PointParameterfv) ALIAS(GetQueryObjectuiv, GetQueryObjectiv) + ALIAS(GetVertexAttribfv, GetVertexAttribdv) + ALIAS(GetVertexAttribiv, GetVertexAttribdv) #undef PURE #undef FASTCALL diff --git a/glx/indirect_size_get.h b/glx/indirect_size_get.h index 5af11d378..e6d010f49 100644 --- a/glx/indirect_size_get.h +++ b/glx/indirect_size_get.h @@ -83,6 +83,9 @@ extern _X_INTERNAL PURE FASTCALL GLint __glGetMinmaxParameteriv_size(GLenum); extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryObjectiv_size(GLenum); extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryObjectuiv_size(GLenum); extern _X_INTERNAL PURE FASTCALL GLint __glGetQueryiv_size(GLenum); +extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribdv_size(GLenum); +extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribfv_size(GLenum); +extern _X_INTERNAL PURE FASTCALL GLint __glGetVertexAttribiv_size(GLenum); extern _X_INTERNAL PURE FASTCALL GLint __glGetProgramivARB_size(GLenum); extern _X_INTERNAL PURE FASTCALL GLint __glGetFramebufferAttachmentParameteriv_size(GLenum); diff --git a/glx/indirect_table.c b/glx/indirect_table.c index f0f0b83c8..b500e39b3 100644 --- a/glx/indirect_table.c +++ b/glx/indirect_table.c @@ -636,8 +636,10 @@ static const void *Render_function_table[408][2] = { /* [ 232] = 232 */ {__glXDisp_EndQuery, __glXDispSwap_EndQuery}, /* [ 233] = 233 */ {__glXDisp_DrawBuffers, __glXDispSwap_DrawBuffers}, /* [ 234] = 234 */ {__glXDisp_ClampColor, __glXDispSwap_ClampColor}, - /* [ 235] = 235 */ {NULL, NULL}, - /* [ 236] = 236 */ {NULL, NULL}, + /* [ 235] = 235 */ {__glXDisp_BindRenderbuffer, + __glXDispSwap_BindRenderbuffer}, + /* [ 236] = 236 */ {__glXDisp_BindFramebuffer, + __glXDispSwap_BindFramebuffer}, /* [ 237] = 237 */ {__glXDisp_FramebufferTextureLayer, __glXDispSwap_FramebufferTextureLayer}, /* [ 238] = 238 */ {NULL, NULL}, @@ -903,14 +905,14 @@ static const void *Render_function_table[408][2] = { /* [ 401] = 4313 */ {NULL, NULL}, /* [ 402] = 4314 */ {NULL, NULL}, /* [ 403] = 4315 */ {NULL, NULL}, - /* [ 404] = 4316 */ {__glXDisp_BindRenderbuffer, - __glXDispSwap_BindRenderbuffer}, + /* [ 404] = 4316 */ {__glXDisp_BindRenderbufferEXT, + __glXDispSwap_BindRenderbufferEXT}, /* [ 405] = 4317 */ {__glXDisp_DeleteRenderbuffers, __glXDispSwap_DeleteRenderbuffers}, /* [ 406] = 4318 */ {__glXDisp_RenderbufferStorage, __glXDispSwap_RenderbufferStorage}, - /* [ 407] = 4319 */ {__glXDisp_BindFramebuffer, - __glXDispSwap_BindFramebuffer}, + /* [ 407] = 4319 */ {__glXDisp_BindFramebufferEXT, + __glXDispSwap_BindFramebufferEXT}, }; static const int_fast16_t Render_size_table[408][2] = { @@ -1149,8 +1151,8 @@ static const int_fast16_t Render_size_table[408][2] = { /* [232] = 232 */ {8, ~0}, /* [233] = 233 */ {8, 36}, /* [234] = 234 */ {12, ~0}, - /* [235] = 235 */ {0, ~0}, - /* [236] = 236 */ {0, ~0}, + /* [235] = 235 */ {12, ~0}, + /* [236] = 236 */ {12, ~0}, /* [237] = 237 */ {24, ~0}, /* [238] = 238 */ {0, ~0}, /* [239] = 239 */ {0, ~0}, @@ -1697,9 +1699,12 @@ static const void *VendorPriv_function_table[104][2] = { /* [ 26] = 1298 */ {NULL, NULL}, /* [ 27] = 1299 */ {NULL, NULL}, /* [ 28] = 1300 */ {NULL, NULL}, - /* [ 29] = 1301 */ {NULL, NULL}, - /* [ 30] = 1302 */ {NULL, NULL}, - /* [ 31] = 1303 */ {NULL, NULL}, + /* [ 29] = 1301 */ {__glXDisp_GetVertexAttribdv, + __glXDispSwap_GetVertexAttribdv}, + /* [ 30] = 1302 */ {__glXDisp_GetVertexAttribfv, + __glXDispSwap_GetVertexAttribfv}, + /* [ 31] = 1303 */ {__glXDisp_GetVertexAttribiv, + __glXDispSwap_GetVertexAttribiv}, /* [ 32] = 1304 */ {__glXDisp_IsProgramARB, __glXDispSwap_IsProgramARB}, /* [ 33] = 1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB}, diff --git a/glx/rensize.c b/glx/rensize.c index 55ad4a2af..021eee44f 100644 --- a/glx/rensize.c +++ b/glx/rensize.c @@ -234,6 +234,7 @@ __glXImageSize(GLenum format, GLenum type, GLenum target, case GL_LUMINANCE_INTEGER_EXT: elementsPerGroup = 1; break; + case GL_RG: case GL_422_EXT: case GL_422_REV_EXT: case GL_422_AVERAGE_EXT: |