void __glXDispSwap_Map1f(GLbyte * pc) { GLint order, k; GLfloat u1, u2, *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_FLOAT(pc + 4); __GLX_SWAP_FLOAT(pc + 8); target = *(GLenum *) (pc + 0); order = *(GLint *) (pc + 12); u1 = *(GLfloat *) (pc + 4); u2 = *(GLfloat *) (pc + 8); points = (GLfloat *) (pc + 16); k = __glMap1f_size(target); if (order <= 0 || k < 0) { /* Erroneous command. */ compsize = 0; } else { compsize = order * k; } __GLX_SWAP_FLOAT_ARRAY(points, compsize); glMap1f(target, u1, u2, k, order, points); }
int __glXMap1fReqSize(GLbyte *pc, Bool swap ) { GLenum target; GLint order, k; target = *(GLenum *)(pc + 0); order = *(GLint *)(pc + 12); if (swap) { target = SWAPL( target ); order = SWAPL( order ); } k = __glMap1f_size(target); return 4 * Map1Size(k, order); }
int __glXMap1fReqSize(const GLbyte * pc, Bool swap, int reqlen) { GLenum target; GLint order; target = *(GLenum *) (pc + 0); order = *(GLint *) (pc + 12); if (swap) { target = SWAPL(target); order = SWAPL(order); } if (order < 1) return -1; return safe_mul(4, safe_mul(__glMap1f_size(target), order)); }
void __glXDisp_Map1f(GLbyte * pc) { GLint order, k; GLfloat u1, u2, *points; GLenum target; target = *(GLenum *) (pc + 0); order = *(GLint *) (pc + 12); u1 = *(GLfloat *) (pc + 4); u2 = *(GLfloat *) (pc + 8); points = (GLfloat *) (pc + 16); k = __glMap1f_size(target); glMap1f(target, u1, u2, k, order, points); }
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); } } }