From d863424032deb7c6bcb3a0b906be29b573f18c2d Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 9 Feb 2005 03:11:23 +0000 Subject: Generate GLX protocol for pixel single commands. --- src/glx/x11/singlepix.c | 311 ------------------------------------------------ 1 file changed, 311 deletions(-) (limited to 'src/glx/x11/singlepix.c') diff --git a/src/glx/x11/singlepix.c b/src/glx/x11/singlepix.c index d2e8860d1f..a9afe62f5b 100644 --- a/src/glx/x11/singlepix.c +++ b/src/glx/x11/singlepix.c @@ -36,222 +36,6 @@ #include "packsingle.h" -void __indirect_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 __indirect_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_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 __indirect_glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - const __GLXattribute * state; - xGLXGetColorTableReply reply; - GLubyte *buf; - - if (!dpy) return; - __GLX_SINGLE_LOAD_VARIABLES(); - state = gc->client_state_private; - - /* Send request */ - __GLX_SINGLE_BEGIN(X_GLsop_GetColorTable,__GLX_PAD(13)); - __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_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, table); - Xfree((char*) buf); - } - } else { - /* - ** GL error occured, don't modify user's buffer. - */ - } - __GLX_SINGLE_END(); -} - -void __indirect_glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, - GLvoid *image) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - const __GLXattribute * state; - xGLXGetConvolutionFilterReply reply; - GLubyte *buf; - - if (!dpy) return; - __GLX_SINGLE_LOAD_VARIABLES(); - state = gc->client_state_private; - - /* 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,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 __indirect_glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span) { @@ -318,98 +102,3 @@ void __indirect_glGetSeparableFilter(GLenum target, GLenum format, GLenum type, __GLX_SINGLE_END(); } - -void __indirect_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 __indirect_glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, - GLvoid *values) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - const __GLXattribute * state; - xGLXGetMinmaxReply reply; - GLubyte *buf; - - if (!dpy) return; - __GLX_SINGLE_LOAD_VARIABLES(); - state = gc->client_state_private; - - /* Send request */ - __GLX_SINGLE_BEGIN(X_GLsop_GetMinmax,__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 { - /* - ** Fetch data into holding buffer. Apply pixel store pack modes - ** to put data back into client memory - */ - __GLX_SINGLE_GET_CHAR_ARRAY(((char*)buf),(long)compsize); - __glEmptyImage(gc, 1, 2, 1, 1, format, type, buf, values); - Xfree((char*) buf); - } - } else { - /* - ** GL error occured, don't modify user's buffer. - */ - } - __GLX_SINGLE_END(); -} -- cgit v1.2.3