int __glXDisp_GetPixelMapuiv(__GLXclientState *cl, GLbyte *pc) { GLenum map; GLint compsize; __GLXcontext *cx; ClientPtr client = cl->client; int error; GLuint answerBuffer[200]; char *answer; cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error); if (!cx) { return error; } pc += __GLX_SINGLE_HDR_SIZE; map = *(GLenum *)(pc + 0); compsize = __glGetPixelMapuiv_size(map); if (compsize < 0) compsize = 0; __GLX_GET_ANSWER_BUFFER(answer,cl,compsize*4,4); __glXClearErrorOccured(); glGetPixelMapuiv( *(GLenum *)(pc + 0), (GLuint *) answer ); if (__glXErrorOccured()) { __GLX_BEGIN_REPLY(0); __GLX_PUT_SIZE(0); __GLX_SEND_HEADER(); } else if (compsize == 1) { __GLX_BEGIN_REPLY(0); __GLX_PUT_SIZE(1); __GLX_PUT_INT(); __GLX_SEND_HEADER(); } else { __GLX_BEGIN_REPLY(compsize*4); __GLX_PUT_SIZE(compsize); __GLX_SEND_HEADER(); __GLX_SEND_INT_ARRAY(compsize); } return Success; }
M(void, glGetPixelMapuiv, jint map, jobject values) { glGetPixelMapuiv(map, BUFF(GLuint, values)); }