Follow the GLX_SGIX_fbconfig spec and return the complete list of
[mesa.git] / src / glx / x11 / render2.c
index db60544c6adf7e868809f028d5140c54c675e897..21ba2709982ee0d17bd35152afa1ae637c703809 100644 (file)
@@ -35,7 +35,8 @@
 */
 
 #include "packrender.h"
-#include "size.h"
+#include "indirect.h"
+#include "indirect_size.h"
 
 /*
 ** This file contains routines that might need to be transported as
 ** use the pixel header.  See renderpix.c for those routines.
 */
 
-void glCallLists(GLsizei n, GLenum type, const GLvoid *lists)
-{
-    __GLX_DECLARE_VARIABLES();
-    __GLX_LOAD_VARIABLES();
-
-    compsize = __glCallLists_size(n,type);
-    cmdlen = __GLX_PAD(12 + compsize);
-    if (!gc->currentDpy) return;
-
-    if (cmdlen <= gc->maxSmallRenderCommandSize) {
-       /* Use GLXRender protocol to send small command */
-       __GLX_BEGIN_VARIABLE(X_GLrop_CallLists,cmdlen);
-       __GLX_PUT_LONG(4,n);
-       __GLX_PUT_LONG(8,type);
-       __GLX_PUT_CHAR_ARRAY(12,lists,compsize);
-       __GLX_END(cmdlen);
-    } else {
-       /* Use GLXRenderLarge protocol to send command */
-       __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_CallLists,cmdlen+4);
-       __GLX_PUT_LONG(8,n);
-       __GLX_PUT_LONG(12,type);
-       __glXSendLargeCommand(gc, pc, 16, lists, compsize);
-    }
-}
-
-void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride,
+void __indirect_glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride,
             GLint order, const GLdouble *pnts)
 {
     __GLX_DECLARE_VARIABLES();
     GLint k;
 
     __GLX_LOAD_VARIABLES();
-    k = __glEvalComputeK(target);
+    k = __glMap1d_size(target);
     if (k == 0) {
        __glXSetError(gc, GL_INVALID_ENUM);
        return;
@@ -130,14 +106,14 @@ void glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride,
     }
 }
 
-void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride,
+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 = __glEvalComputeK(target);
+    k = __glMap1f_size(target);
     if (k == 0) {
        __glXSetError(gc, GL_INVALID_ENUM);
        return;
@@ -188,7 +164,7 @@ void glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride,
     }
 }
 
-void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustr, GLint uord,
+void __indirect_glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustr, GLint uord,
             GLdouble v1, GLdouble v2, GLint vstr, GLint vord,
             const GLdouble *pnts)
 {
@@ -196,7 +172,7 @@ void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustr, GLint uord,
     GLint k;
 
     __GLX_LOAD_VARIABLES();
-    k = __glEvalComputeK(target);
+    k = __glMap2d_size(target);
     if (k == 0) {
        __glXSetError(gc, GL_INVALID_ENUM);
        return;
@@ -261,7 +237,7 @@ void glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustr, GLint uord,
     }
 }
 
-void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustr, GLint uord,
+void __indirect_glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustr, GLint uord,
             GLfloat v1, GLfloat v2, GLint vstr, GLint vord,
             const GLfloat *pnts)
 {
@@ -269,7 +245,7 @@ void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustr, GLint uord,
     GLint k;
 
     __GLX_LOAD_VARIABLES();
-    k = __glEvalComputeK(target);
+    k = __glMap2f_size(target);
     if (k == 0) {
        __glXSetError(gc, GL_INVALID_ENUM);
        return;
@@ -332,94 +308,7 @@ void glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustr, GLint uord,
     }
 }
 
-void glPixelMapfv(GLenum map, GLint mapsize, const GLfloat *values)
-{
-    __GLX_DECLARE_VARIABLES();
-
-    __GLX_LOAD_VARIABLES();
-    if (mapsize < 0) {
-       __glXSetError(gc, GL_INVALID_VALUE);
-       return;
-    }
-    compsize = mapsize * __GLX_SIZE_FLOAT32;
-    cmdlen = 12+compsize;
-    if (!gc->currentDpy) return;
-
-    if (cmdlen <= gc->maxSmallRenderCommandSize) {
-       /* Use GLXRender protocol to send small command */
-       __GLX_BEGIN_VARIABLE(X_GLrop_PixelMapfv,cmdlen);
-       __GLX_PUT_LONG(4,map);
-       __GLX_PUT_LONG(8,mapsize);
-       __GLX_PUT_FLOAT_ARRAY(12,values,mapsize);
-       __GLX_END(cmdlen);
-    } else {
-       /* Use GLXRenderLarge protocol to send command */
-       __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_PixelMapfv,cmdlen+4);
-       __GLX_PUT_LONG(8,map);
-       __GLX_PUT_LONG(12,mapsize);
-       __glXSendLargeCommand(gc, pc, 16, values, compsize);
-    }
-}
-
-void glPixelMapuiv(GLenum map, GLint mapsize, const GLuint *values)
-{
-    __GLX_DECLARE_VARIABLES();
-
-    __GLX_LOAD_VARIABLES();
-    if (mapsize < 0) {
-       __glXSetError(gc, GL_INVALID_VALUE);
-       return;
-    }
-    compsize = mapsize * __GLX_SIZE_CARD32;
-    cmdlen = 12+compsize;
-    if (!gc->currentDpy) return;
-
-    if (cmdlen <= gc->maxSmallRenderCommandSize) {
-       /* Use GLXRender protocol to send small command */
-       __GLX_BEGIN_VARIABLE(X_GLrop_PixelMapuiv,cmdlen);
-       __GLX_PUT_LONG(4,map);
-       __GLX_PUT_LONG(8,mapsize);
-       __GLX_PUT_LONG_ARRAY(12,values,mapsize);
-       __GLX_END(cmdlen);
-    } else {
-       /* Use GLXRenderLarge protocol to send command */
-       __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_PixelMapuiv,cmdlen+4);
-       __GLX_PUT_LONG(8,map);
-       __GLX_PUT_LONG(12,mapsize);
-       __glXSendLargeCommand(gc, pc, 16, values, compsize);
-    }
-}
-
-void glPixelMapusv(GLenum map, GLint mapsize, const GLushort *values)
-{
-    __GLX_DECLARE_VARIABLES();
-
-    __GLX_LOAD_VARIABLES();
-    if (mapsize < 0) {
-       __glXSetError(gc, GL_INVALID_VALUE);
-       return;
-    }
-    compsize = mapsize * __GLX_SIZE_CARD16;
-    cmdlen = __GLX_PAD(12 + compsize);
-    if (!gc->currentDpy) return;
-
-    if (cmdlen <= gc->maxSmallRenderCommandSize) {
-       /* Use GLXRender protocol to send small command */
-       __GLX_BEGIN_VARIABLE(X_GLrop_PixelMapusv,cmdlen);
-       __GLX_PUT_LONG(4,map);
-       __GLX_PUT_LONG(8,mapsize);
-       __GLX_PUT_SHORT_ARRAY(12,values,mapsize);
-       __GLX_END(cmdlen);
-    } else {
-       /* Use GLXRenderLarge protocol to send command */
-       __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_PixelMapusv,cmdlen+4);
-       __GLX_PUT_LONG(8,map);
-       __GLX_PUT_LONG(12,mapsize);
-       __glXSendLargeCommand(gc, pc, 16, values, compsize);
-    }
-}
-
-void glEnable(GLenum cap)
+void __indirect_glEnable(GLenum cap)
 {
     __GLX_DECLARE_VARIABLES();
 
@@ -435,7 +324,7 @@ void glEnable(GLenum cap)
        case GL_VERTEX_ARRAY:
        case GL_SECONDARY_COLOR_ARRAY:
        case GL_FOG_COORD_ARRAY:
-           glEnableClientState(cap);
+           __indirect_glEnableClientState(cap);
            return;
        default:
            break;
@@ -446,7 +335,7 @@ void glEnable(GLenum cap)
     __GLX_END(8);
 }
 
-void glDisable(GLenum cap)
+void __indirect_glDisable(GLenum cap)
 {
     __GLX_DECLARE_VARIABLES();
 
@@ -462,7 +351,7 @@ void glDisable(GLenum cap)
        case GL_VERTEX_ARRAY:
        case GL_SECONDARY_COLOR_ARRAY:
        case GL_FOG_COORD_ARRAY:
-           glDisableClientState(cap);
+           __indirect_glDisableClientState(cap);
            return;
        default:
            break;
@@ -472,41 +361,3 @@ void glDisable(GLenum cap)
     __GLX_PUT_LONG(4,cap);
     __GLX_END(8);
 }
-
-void glSampleCoverageARB( GLfloat value, GLboolean invert )
-{
-    __GLX_DECLARE_VARIABLES();
-
-    __GLX_LOAD_VARIABLES();
-    if (!gc->currentDpy) return;
-
-    __GLX_BEGIN(X_GLrop_SampleCoverageARB,12);
-    __GLX_PUT_FLOAT(4,value);
-    __GLX_PUT_CHAR(8,invert);
-    __GLX_END(12);
-}
-
-void glSampleMaskSGIS( GLfloat value, GLboolean invert )
-{
-    __GLX_DECLARE_VARIABLES();
-
-    __GLX_LOAD_VARIABLES();
-    if (!gc->currentDpy) return;
-
-    __GLX_BEGIN(X_GLvop_SampleMaskSGIS,12);
-    __GLX_PUT_FLOAT(4,value);
-    __GLX_PUT_CHAR(8,invert);
-    __GLX_END(12);
-}
-
-void glSamplePatternSGIS( GLenum pass )
-{
-    __GLX_DECLARE_VARIABLES();
-
-    __GLX_LOAD_VARIABLES();
-    if (!gc->currentDpy) return;
-
-    __GLX_BEGIN(X_GLvop_SamplePatternSGIS,8);
-    __GLX_PUT_LONG(4,pass);
-    __GLX_END(8);
-}