int __glXMap2fReqSize(const GLbyte * pc, Bool swap, int reqlen) { GLenum target; GLint uorder, vorder; target = *(GLenum *) (pc + 0); uorder = *(GLint *) (pc + 12); vorder = *(GLint *) (pc + 24); if (swap) { target = SWAPL(target); uorder = SWAPL(uorder); vorder = SWAPL(vorder); } return safe_mul(4, Map2Size(__glMap2f_size(target), uorder, vorder)); }
int __glXMap2fReqSize(GLbyte *pc, Bool swap ) { GLenum target; GLint uorder, vorder, k; target = *(GLenum *)(pc + 0); uorder = *(GLint *)(pc + 12); vorder = *(GLint *)(pc + 24); if (swap) { target = SWAPL( target ); uorder = SWAPL( uorder ); vorder = SWAPL( vorder ); } k = __glMap2f_size( target ); return 4 * Map2Size( k, uorder, vorder ); }
void __glXDispSwap_Map2f(GLbyte * pc) { GLint uorder, vorder, ustride, vstride, k; GLfloat u1, u2, v1, v2, *points; GLenum target; GLint compsize; __GLX_DECLARE_SWAP_VARIABLES; __GLX_DECLARE_SWAP_ARRAY_VARIABLES; __GLX_SWAP_INT(pc + 0); __GLX_SWAP_INT(pc + 12); __GLX_SWAP_INT(pc + 24); __GLX_SWAP_FLOAT(pc + 4); __GLX_SWAP_FLOAT(pc + 8); __GLX_SWAP_FLOAT(pc + 16); __GLX_SWAP_FLOAT(pc + 20); target = *(GLenum *) (pc + 0); uorder = *(GLint *) (pc + 12); vorder = *(GLint *) (pc + 24); u1 = *(GLfloat *) (pc + 4); u2 = *(GLfloat *) (pc + 8); v1 = *(GLfloat *) (pc + 16); v2 = *(GLfloat *) (pc + 20); points = (GLfloat *) (pc + 28); k = __glMap2f_size(target); ustride = vorder * k; vstride = k; if (vorder <= 0 || uorder <= 0 || k < 0) { /* Erroneous command. */ compsize = 0; } else { compsize = uorder * vorder * k; } __GLX_SWAP_FLOAT_ARRAY(points, compsize); CALL_Map2f(GET_DISPATCH(), (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)); }
void __glXDisp_Map2f(GLbyte * pc) { GLint uorder, vorder, ustride, vstride, k; GLfloat u1, u2, v1, v2, *points; GLenum target; target = *(GLenum *) (pc + 0); uorder = *(GLint *) (pc + 12); vorder = *(GLint *) (pc + 24); u1 = *(GLfloat *) (pc + 4); u2 = *(GLfloat *) (pc + 8); v1 = *(GLfloat *) (pc + 16); v2 = *(GLfloat *) (pc + 20); points = (GLfloat *) (pc + 28); k = __glMap2f_size(target); ustride = vorder * k; vstride = k; glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points); }
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); } } }