int __glXDisp_GetTexGendv(__GLXclientState *cl, GLbyte *pc) { GLenum pname; GLint compsize; __GLXcontext *cx; ClientPtr client = cl->client; int error; GLdouble answerBuffer[200]; char *answer; cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error); if (!cx) { return error; } pc += __GLX_SINGLE_HDR_SIZE; pname = *(GLenum *)(pc + 4); compsize = __glGetTexGendv_size(pname); if (compsize < 0) compsize = 0; __GLX_GET_ANSWER_BUFFER(answer,cl,compsize*8,8); __glXClearErrorOccured(); glGetTexGendv( *(GLenum *)(pc + 0), *(GLenum *)(pc + 4), (GLdouble *) 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_DOUBLE(); __GLX_SEND_HEADER(); } else { __GLX_BEGIN_REPLY(compsize*8); __GLX_PUT_SIZE(compsize); __GLX_SEND_HEADER(); __GLX_SEND_DOUBLE_ARRAY(compsize); } return Success; }
M(void, glGetTexGendv, jint coord, jint pname, jobject params) { glGetTexGendv(coord, pname, BUFF(GLdouble, params)); }
void gl4es_glGetMultiTexGendv(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params) { text(glGetTexGendv(coord, pname, params)); }