void __indirect_glMapGrid1f(GLint un, GLfloat u1, GLfloat u2) { __GLX_DECLARE_VARIABLES(); __GLX_LOAD_VARIABLES(); __GLX_BEGIN(X_GLrop_MapGrid1f,16); __GLX_PUT_LONG(4,un); __GLX_PUT_FLOAT(8,u1); __GLX_PUT_FLOAT(12,u2); __GLX_END(16); }
void __indirect_glRectfv(const GLfloat *v1, const GLfloat *v2) { __GLX_DECLARE_VARIABLES(); __GLX_LOAD_VARIABLES(); __GLX_BEGIN(X_GLrop_Rectfv,20); __GLX_PUT_FLOAT(4,v1[0]); __GLX_PUT_FLOAT(8,v1[1]); __GLX_PUT_FLOAT(12,v2[0]); __GLX_PUT_FLOAT(16,v2[1]); __GLX_END(20); }
void __indirect_glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) { __GLX_DECLARE_VARIABLES(); __GLX_LOAD_VARIABLES(); __GLX_BEGIN(X_GLrop_MapGrid2f,28); __GLX_PUT_LONG(4,un); __GLX_PUT_FLOAT(8,u1); __GLX_PUT_FLOAT(12,u2); __GLX_PUT_LONG(16,vn); __GLX_PUT_FLOAT(20,v1); __GLX_PUT_FLOAT(24,v2); __GLX_END(28); }
int __glXDisp_GetMapfv(__GLXclientState *cl, GLbyte *pc) { GLenum target; GLenum query; GLint compsize; __GLXcontext *cx; ClientPtr client = cl->client; int error; GLfloat answerBuffer[200]; char *answer; cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error); if (!cx) { return error; } pc += __GLX_SINGLE_HDR_SIZE; target = *(GLenum *)(pc + 0); query = *(GLenum *)(pc + 4); compsize = __glGetMapfv_size(target,query); if (compsize < 0) compsize = 0; __GLX_GET_ANSWER_BUFFER(answer,cl,compsize*4,4); __glXClearErrorOccured(); glGetMapfv( *(GLenum *)(pc + 0), *(GLenum *)(pc + 4), (GLfloat *) 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_FLOAT(); __GLX_SEND_HEADER(); } else { __GLX_BEGIN_REPLY(compsize*4); __GLX_PUT_SIZE(compsize); __GLX_SEND_HEADER(); __GLX_SEND_FLOAT_ARRAY(compsize); } return Success; }
void __indirect_glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustr, GLint uord, GLfloat v1, GLfloat v2, GLint vstr, GLint vord, const GLfloat * pnts) { __GLX_DECLARE_VARIABLES(); GLint k; __GLX_LOAD_VARIABLES(); k = __glMap2f_size(target); if (k == 0) { __glXSetError(gc, GL_INVALID_ENUM); return; } else if (vstr < k || ustr < k || vord <= 0 || uord <= 0) { __glXSetError(gc, GL_INVALID_VALUE); return; } compsize = k * uord * vord * __GLX_SIZE_FLOAT32; cmdlen = 32 + compsize; if (!gc->currentDpy) return; /* ** The order that arguments are packed is different from the order ** for glMap2d. */ if (cmdlen <= gc->maxSmallRenderCommandSize) { /* Use GLXRender protocol to send small command */ __GLX_BEGIN_VARIABLE(X_GLrop_Map2f, cmdlen); __GLX_PUT_LONG(4, target); __GLX_PUT_FLOAT(8, u1); __GLX_PUT_FLOAT(12, u2); __GLX_PUT_LONG(16, uord); __GLX_PUT_FLOAT(20, v1); __GLX_PUT_FLOAT(24, v2); __GLX_PUT_LONG(28, vord); /* ** Pack into a u-major ordering. */ __glFillMap2f(k, uord, vord, ustr, vstr, pnts, (GLfloat *) (pc + 32)); __GLX_END(cmdlen); } else { /* Use GLXRenderLarge protocol to send command */ __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_Map2f, cmdlen + 4); __GLX_PUT_LONG(8, target); __GLX_PUT_FLOAT(12, u1); __GLX_PUT_FLOAT(16, u2); __GLX_PUT_LONG(20, uord); __GLX_PUT_FLOAT(24, v1); __GLX_PUT_FLOAT(28, v2); __GLX_PUT_LONG(32, vord); if ((vstr != k) || (ustr != k * vord)) { GLfloat *buf; buf = (GLfloat *) Xmalloc(compsize); if (!buf) { __glXSetError(gc, GL_OUT_OF_MEMORY); return; } /* ** Pack into a u-major ordering. */ __glFillMap2f(k, uord, vord, ustr, vstr, pnts, buf); __glXSendLargeCommand(gc, pc, 36, buf, compsize); Xfree((char *) buf); } else { /* Data is already packed. Just send it out */ __glXSendLargeCommand(gc, pc, 36, pnts, compsize); } } }
void __indirect_glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * pnts) { __GLX_DECLARE_VARIABLES(); GLint k; __GLX_LOAD_VARIABLES(); k = __glMap1f_size(target); if (k == 0) { __glXSetError(gc, GL_INVALID_ENUM); return; } else if (stride < k || order <= 0) { __glXSetError(gc, GL_INVALID_VALUE); return; } compsize = k * order * __GLX_SIZE_FLOAT32; cmdlen = 20 + compsize; if (!gc->currentDpy) return; /* ** The order that arguments are packed is different from the order ** for glMap1d. */ if (cmdlen <= gc->maxSmallRenderCommandSize) { /* Use GLXRender protocol to send small command */ __GLX_BEGIN_VARIABLE(X_GLrop_Map1f, cmdlen); __GLX_PUT_LONG(4, target); __GLX_PUT_FLOAT(8, u1); __GLX_PUT_FLOAT(12, u2); __GLX_PUT_LONG(16, order); __glFillMap1f(k, order, stride, pnts, (GLubyte *) (pc + 20)); __GLX_END(cmdlen); } else { /* Use GLXRenderLarge protocol to send command */ __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_Map1f, cmdlen + 4); __GLX_PUT_LONG(8, target); __GLX_PUT_FLOAT(12, u1); __GLX_PUT_FLOAT(16, u2); __GLX_PUT_LONG(20, order); if (stride != k) { GLubyte *buf; buf = (GLubyte *) Xmalloc(compsize); if (!buf) { __glXSetError(gc, GL_OUT_OF_MEMORY); return; } __glFillMap1f(k, order, stride, pnts, buf); __glXSendLargeCommand(gc, pc, 24, buf, compsize); Xfree((char *) buf); } else { /* Data is already packed. Just send it out */ __glXSendLargeCommand(gc, pc, 24, pnts, compsize); } } }