void __indirect_glGetCompressedTexImageARB( GLenum target, GLint level, GLvoid * img ) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXGetTexImageReply reply; size_t image_bytes; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN( X_GLsop_GetCompressedTexImage, 8 ); __GLX_SINGLE_PUT_LONG( 0, target ); __GLX_SINGLE_PUT_LONG( 4, level ); __GLX_SINGLE_READ_XREPLY(); image_bytes = reply.width; assert( image_bytes <= ((4 * reply.length) - 0) ); assert( image_bytes >= ((4 * reply.length) - 3) ); if ( image_bytes != 0 ) { _XRead( dpy, (char *) img, image_bytes ); if ( image_bytes < (4 * reply.length) ) { _XEatData( dpy, (4 * reply.length) - image_bytes ); } } __GLX_SINGLE_END(); }
void glEndList(void) { __GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_EndList,0); __GLX_SINGLE_END(); }
void glNewList(GLuint list, GLenum mode) { __GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_NewList,8); __GLX_SINGLE_PUT_LONG(0,list); __GLX_SINGLE_PUT_LONG(4,mode); __GLX_SINGLE_END(); }
void glDeleteLists(GLuint list, GLsizei range) { __GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_DeleteLists,8); __GLX_SINGLE_PUT_LONG(0,list); __GLX_SINGLE_PUT_LONG(4,range); __GLX_SINGLE_END(); }
void glFinish(void) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_Finish,0); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_END(); }
GLboolean glIsList(GLuint list) { __GLX_SINGLE_DECLARE_VARIABLES(); GLboolean retval = 0; xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_IsList,4); __GLX_SINGLE_PUT_LONG(0,list); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_RETVAL(retval, GLboolean); __GLX_SINGLE_END(); return retval; }
GLuint glGenLists(GLsizei range) { __GLX_SINGLE_DECLARE_VARIABLES(); GLuint retval = 0; xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GenLists,4); __GLX_SINGLE_PUT_LONG(0,range); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_RETVAL(retval, GLuint); __GLX_SINGLE_END(); return retval; }
void glSelectBuffer(GLsizei numnames, GLuint *buffer) { __GLX_SINGLE_DECLARE_VARIABLES(); if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_SelectBuffer,4); __GLX_SINGLE_PUT_LONG(0,numnames); __GLX_SINGLE_END(); gc->selectBuf = buffer; }
/* ** Send all pending commands to server. */ void glFlush(void) { __GLX_SINGLE_DECLARE_VARIABLES(); if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_Flush,0); __GLX_SINGLE_END(); /* And finally flush the X protocol data */ XFlush(dpy); }
void glGetClipPlane(GLenum plane, GLdouble *equation) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetClipPlane,4); __GLX_SINGLE_PUT_LONG(0,plane); __GLX_SINGLE_READ_XREPLY(); if (reply.length == 8) { __GLX_SINGLE_GET_DOUBLE_ARRAY(equation,4); } __GLX_SINGLE_END(); }
void glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *texels) { __GLX_SINGLE_DECLARE_VARIABLES(); const __GLXattribute * state; xGLXGetTexImageReply reply; GLubyte *buf; if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); state = gc->client_state_private; /* Send request */ __GLX_SINGLE_BEGIN(X_GLsop_GetTexImage,__GLX_PAD(17)); __GLX_SINGLE_PUT_LONG(0,target); __GLX_SINGLE_PUT_LONG(4,level); __GLX_SINGLE_PUT_LONG(8,format); __GLX_SINGLE_PUT_LONG(12,type); __GLX_SINGLE_PUT_CHAR(16,state->storePack.swapEndian); __GLX_SINGLE_READ_XREPLY(); compsize = reply.length << 2; if (compsize != 0) { /* Allocate a holding buffer to transform the data from */ buf = (GLubyte*) Xmalloc(compsize); if (!buf) { /* Throw data away */ _XEatData(dpy, compsize); __glXSetError(gc, GL_OUT_OF_MEMORY); } else { GLint width, height, depth; /* ** Fetch data into holding buffer. Apply pixel store pack modes ** to put data back into client memory */ width = reply.width; height = reply.height; depth = reply.depth; __GLX_SINGLE_GET_CHAR_ARRAY(buf,compsize); __glEmptyImage(gc, 2, width, height, depth, format, type, buf, texels); Xfree((char*) buf); } } else { /* ** GL error occured, don't modify user's buffer. */ } __GLX_SINGLE_END(); }
void __indirect_glGetIntegerv(GLenum val, GLint * i) { const GLenum origVal = val; __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; val = RemapTransposeEnum(val); __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetIntegerv, 4); __GLX_SINGLE_PUT_LONG(0, val); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 0) { /* ** Error occured; don't modify user's buffer. */ } else { GLintptr data; /* ** We still needed to send the request to the server in order to ** find out whether it was legal to make a query (it's illegal, ** for example, to call a query between glBegin() and glEnd()). */ if (get_client_data(gc, val, &data)) { *i = (GLint) data; } else { /* ** Not a local value, so use what we got from the server. */ if (compsize == 1) { __GLX_SINGLE_GET_LONG(i); } else { __GLX_SINGLE_GET_LONG_ARRAY(i, compsize); if (val != origVal) { /* matrix transpose */ TransposeMatrixi(i); } } } } __GLX_SINGLE_END(); }
void glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer) { __GLX_SINGLE_DECLARE_VARIABLES(); if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_FeedbackBuffer,8); __GLX_SINGLE_PUT_LONG(0,size); __GLX_SINGLE_PUT_LONG(4,type); __GLX_SINGLE_END(); gc->feedbackBuf = buffer; }
void glGenTextures(GLsizei n, GLuint *textures) { #if 0 /* see comments above */ __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GenTextures,4); __GLX_SINGLE_PUT_LONG(0,n); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_LONG_ARRAY(textures,n); __GLX_SINGLE_END(); #else glGenTexturesEXT(n, textures); #endif }
void glDeleteTextures(GLsizei n, const GLuint *textures) { #if 0 /* see comments above */ __GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES(); if (n < 0) return; cmdlen = 4+n*4; __GLX_SINGLE_BEGIN(X_GLsop_DeleteTextures,cmdlen); __GLX_SINGLE_PUT_LONG(0,n); __GLX_PUT_LONG_ARRAY(4,textures,n); __GLX_SINGLE_END(); #else glDeleteTexturesEXT(n, textures); #endif }
void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) { __GLX_SINGLE_DECLARE_VARIABLES(); const __GLXattribute * state; xGLXReadPixelsReply reply; GLubyte *buf; if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); state = gc->client_state_private; /* Send request */ __GLX_SINGLE_BEGIN(X_GLsop_ReadPixels,__GLX_PAD(26)); __GLX_SINGLE_PUT_LONG(0,x); __GLX_SINGLE_PUT_LONG(4,y); __GLX_SINGLE_PUT_LONG(8,width); __GLX_SINGLE_PUT_LONG(12,height); __GLX_SINGLE_PUT_LONG(16,format); __GLX_SINGLE_PUT_LONG(20,type); __GLX_SINGLE_PUT_CHAR(24,state->storePack.swapEndian); __GLX_SINGLE_PUT_CHAR(25,GL_FALSE); __GLX_SINGLE_READ_XREPLY(); compsize = reply.length << 2; if (compsize != 0) { /* Allocate a holding buffer to transform the data from */ buf = (GLubyte*) Xmalloc(compsize); if (!buf) { /* Throw data away */ _XEatData(dpy, compsize); __glXSetError(gc, GL_OUT_OF_MEMORY); } else { /* ** Fetch data into holding buffer. Apply pixel store pack modes ** to put data back into client memory */ __GLX_SINGLE_GET_CHAR_ARRAY(buf,compsize); __glEmptyImage(gc, 2, width, height, 1, format, type, buf, pixels); Xfree((char*) buf); } } else { /* ** GL error occurred; don't modify user's buffer. */ } __GLX_SINGLE_END(); }
void glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values) { __GLX_SINGLE_DECLARE_VARIABLES(); const __GLXattribute * state; xGLXGetHistogramReply reply; GLubyte *buf; if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); state = gc->client_state_private; /* Send request */ __GLX_SINGLE_BEGIN(X_GLsop_GetHistogram,__GLX_PAD(14)); __GLX_SINGLE_PUT_LONG(0,(long)target); __GLX_SINGLE_PUT_LONG(4,(long)format); __GLX_SINGLE_PUT_LONG(8,(long)type); __GLX_SINGLE_PUT_CHAR(12,state->storePack.swapEndian); __GLX_SINGLE_PUT_CHAR(13,reset); __GLX_SINGLE_READ_XREPLY(); compsize = (long)reply.length << 2; if (compsize != 0) { /* Allocate a holding buffer to transform the data from */ buf = (GLubyte*)Xmalloc(compsize); if (!buf) { /* Throw data away */ _XEatData(dpy, compsize); __glXSetError(gc, GL_OUT_OF_MEMORY); } else { GLint width; /* ** Fetch data into holding buffer. Apply pixel store pack modes ** to put data back into client memory */ width = (int)reply.width; __GLX_SINGLE_GET_CHAR_ARRAY(((char*)buf),(long)compsize); __glEmptyImage(gc, 1, width, 1, 1, format, type, buf, values); Xfree((char*) buf); } } else { /* ** GL error occured, don't modify user's buffer. */ } __GLX_SINGLE_END(); }
void glGetPixelMapusv(GLenum map, GLushort *values) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetPixelMapusv,4); __GLX_SINGLE_PUT_LONG(0,map); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 1) { __GLX_SINGLE_GET_SHORT(values); } else { __GLX_SINGLE_GET_SHORT_ARRAY(values,compsize); } __GLX_SINGLE_END(); }
void glGetMapiv(GLenum target, GLenum query, GLint *v) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetMapiv,8); __GLX_SINGLE_PUT_LONG(0,target); __GLX_SINGLE_PUT_LONG(4,query); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 1) { __GLX_SINGLE_GET_LONG(v); } else { __GLX_SINGLE_GET_LONG_ARRAY(v,compsize); } __GLX_SINGLE_END(); }
void glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXGetConvolutionFilterReply reply; GLubyte *buf; if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); /* Send request */ __GLX_SINGLE_BEGIN(X_GLsop_GetConvolutionFilter, __GLX_PAD(13)); __GLX_SINGLE_PUT_LONG(0,target); __GLX_SINGLE_PUT_LONG(4,format); __GLX_SINGLE_PUT_LONG(8,type); __GLX_SINGLE_PUT_CHAR(12,gc->state.storePack.swapEndian); __GLX_SINGLE_READ_XREPLY(); compsize = reply.length << 2; if (compsize != 0) { /* Allocate a holding buffer to transform the data from */ buf = (GLubyte*) Xmalloc(compsize); if (!buf) { /* Throw data away */ _XEatData(dpy, compsize); __glXSetError(gc, GL_OUT_OF_MEMORY); } else { GLint width, height; /* ** Fetch data into holding buffer. Apply pixel store pack modes ** to put data back into client memory */ width = reply.width; height = reply.height; __GLX_SINGLE_GET_CHAR_ARRAY(((char*)buf),compsize); __glEmptyImage(gc, 2, width, height, 1, format, type, buf, image); Xfree((char*) buf); } } else { /* ** GL error occured, don't modify user's buffer. */ } __GLX_SINGLE_END(); }
void glGetLightiv(GLenum light, GLenum pname, GLint *params) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetLightiv,8); __GLX_SINGLE_PUT_LONG(0,light); __GLX_SINGLE_PUT_LONG(4,pname); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 1) { __GLX_SINGLE_GET_LONG(params); } else { __GLX_SINGLE_GET_LONG_ARRAY(params,compsize); } __GLX_SINGLE_END(); }
void glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetMinmaxParameterfv,8); __GLX_SINGLE_PUT_LONG(0,target); __GLX_SINGLE_PUT_LONG(4,pname); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 1) { __GLX_SINGLE_GET_FLOAT(params); } else { __GLX_SINGLE_GET_FLOAT_ARRAY(params,compsize); } __GLX_SINGLE_END(); }
GLboolean glIsTexture(GLuint texture) { #if 0 /* see comments above */ __GLX_SINGLE_DECLARE_VARIABLES(); GLboolean retval = 0; xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_IsTexture,4); __GLX_SINGLE_PUT_LONG(0,texture); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_RETVAL(retval, GLboolean); __GLX_SINGLE_END(); return retval; #else return glIsTextureEXT(texture); #endif }
void glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetTexGendv,8); __GLX_SINGLE_PUT_LONG(0,coord); __GLX_SINGLE_PUT_LONG(4,pname); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 1) { __GLX_SINGLE_GET_DOUBLE(params); } else { __GLX_SINGLE_GET_DOUBLE_ARRAY(params,compsize); } __GLX_SINGLE_END(); }
void glGetPolygonStipple(GLubyte *mask) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; GLubyte buf[128]; if (!dpy) return; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetPolygonStipple,__GLX_PAD(1)); __GLX_SINGLE_PUT_CHAR(0,GL_FALSE); __GLX_SINGLE_READ_XREPLY(); if (reply.length == 32) { __GLX_SINGLE_GET_CHAR_ARRAY(buf,128); __glEmptyImage(gc, 2, 32, 32, 1, GL_COLOR_INDEX, GL_BITMAP, buf, mask); } __GLX_SINGLE_END(); }
void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params) { __GLX_SINGLE_DECLARE_VARIABLES(); xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetTexLevelParameteriv,12); __GLX_SINGLE_PUT_LONG(0,target); __GLX_SINGLE_PUT_LONG(4,level); __GLX_SINGLE_PUT_LONG(8,pname); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_SIZE(compsize); if (compsize == 1) { __GLX_SINGLE_GET_LONG(params); } else { __GLX_SINGLE_GET_LONG_ARRAY(params,compsize); } __GLX_SINGLE_END(); }
GLenum glGetError(void) { __GLX_SINGLE_DECLARE_VARIABLES(); GLuint retval = GL_NO_ERROR; xGLXGetErrorReply reply; if (gc->error) { /* Use internal error first */ retval = gc->error; gc->error = GL_NO_ERROR; return retval; } __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_GetError,0); __GLX_SINGLE_READ_XREPLY(); retval = reply.error; __GLX_SINGLE_END(); return retval; }
GLboolean glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences) { #if 0 /* see comments above */ __GLX_SINGLE_DECLARE_VARIABLES(); GLboolean retval = 0; xGLXSingleReply reply; __GLX_SINGLE_LOAD_VARIABLES(); if (n < 0) return retval; cmdlen = 4+n*4; __GLX_SINGLE_BEGIN(X_GLsop_AreTexturesResident,cmdlen); __GLX_SINGLE_PUT_LONG(0,n); __GLX_PUT_LONG_ARRAY(4,textures,n); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_RETVAL(retval, GLboolean); __GLX_SINGLE_GET_CHAR_ARRAY(residences,n); __GLX_SINGLE_END(); return retval; #else return glAreTexturesResidentEXT(n, textures, residences); #endif }
GLboolean __indirect_glIsEnabled(GLenum cap) { __GLX_SINGLE_DECLARE_VARIABLES(); __GLXattribute *state = (__GLXattribute *) (gc->client_state_private); xGLXSingleReply reply; GLboolean retval = 0; GLintptr enable; if (!dpy) return 0; switch (cap) { case GL_VERTEX_ARRAY: case GL_NORMAL_ARRAY: case GL_COLOR_ARRAY: case GL_INDEX_ARRAY: case GL_EDGE_FLAG_ARRAY: case GL_SECONDARY_COLOR_ARRAY: case GL_FOG_COORD_ARRAY: retval = __glXGetArrayEnable(state, cap, 0, &enable); assert(retval); return (GLboolean) enable; break; case GL_TEXTURE_COORD_ARRAY: retval = __glXGetArrayEnable(state, GL_TEXTURE_COORD_ARRAY, __glXGetActiveTextureUnit(state), &enable); assert(retval); return (GLboolean) enable; break; } __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_IsEnabled, 4); __GLX_SINGLE_PUT_LONG(0, cap); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_RETVAL(retval, GLboolean); __GLX_SINGLE_END(); return retval; }
GLint __indirect_glRenderMode(GLenum mode) { __GLX_SINGLE_DECLARE_VARIABLES(); GLint retval = 0; xGLXRenderModeReply reply; if (!dpy) return -1; __GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_BEGIN(X_GLsop_RenderMode, 4); __GLX_SINGLE_PUT_LONG(0, mode); __GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_GET_RETVAL(retval, GLint); if (reply.newMode != mode) { /* ** Switch to new mode did not take effect, therefore an error ** occured. When an error happens the server won't send us any ** other data. */ } else { /* Read the feedback or selection data */ if (gc->renderMode == GL_FEEDBACK) { __GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_FLOAT_ARRAY(gc->feedbackBuf, compsize); } else if (gc->renderMode == GL_SELECT) { __GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_LONG_ARRAY(gc->selectBuf, compsize); } gc->renderMode = mode; } __GLX_SINGLE_END(); return retval; }