summaryrefslogtreecommitdiffstats
path: root/src/glx
diff options
context:
space:
mode:
Diffstat (limited to 'src/glx')
-rw-r--r--src/glx/x11/single2.c73
1 files changed, 25 insertions, 48 deletions
diff --git a/src/glx/x11/single2.c b/src/glx/x11/single2.c
index 9724a97c02e..9279b56845f 100644
--- a/src/glx/x11/single2.c
+++ b/src/glx/x11/single2.c
@@ -91,6 +91,27 @@ static void TransposeMatrixi(GLint m[16])
}
}
+
+/**
+ * Remap a transpose-matrix enum to a non-transpose-matrix enum. Enums
+ * that are not transpose-matrix enums are unaffected.
+ */
+static GLenum
+RemapTransposeEnum( GLenum e )
+{
+ switch( e ) {
+ case GL_TRANSPOSE_MODELVIEW_MATRIX:
+ case GL_TRANSPOSE_PROJECTION_MATRIX:
+ case GL_TRANSPOSE_TEXTURE_MATRIX:
+ return e - (GL_TRANSPOSE_MODELVIEW_MATRIX - GL_MODELVIEW_MATRIX);
+ case GL_TRANSPOSE_COLOR_MATRIX:
+ return GL_COLOR_MATRIX;
+ default:
+ return e;
+ };
+}
+
+
GLenum __indirect_glGetError(void)
{
__GLX_SINGLE_DECLARE_VARIABLES();
@@ -139,18 +160,7 @@ void __indirect_glGetBooleanv(GLenum val, GLboolean *b)
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private);
xGLXSingleReply reply;
- if (val == GL_TRANSPOSE_MODELVIEW_MATRIX_ARB) {
- val = GL_MODELVIEW_MATRIX;
- }
- else if (val == GL_TRANSPOSE_PROJECTION_MATRIX_ARB) {
- val = GL_PROJECTION_MATRIX;
- }
- else if (val == GL_TRANSPOSE_TEXTURE_MATRIX_ARB) {
- val = GL_TEXTURE_MATRIX;
- }
- else if (val == GL_TRANSPOSE_COLOR_MATRIX_ARB) {
- val = GL_COLOR_MATRIX;
- }
+ val = RemapTransposeEnum( val );
__GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetBooleanv,4);
@@ -291,18 +301,7 @@ void __indirect_glGetDoublev(GLenum val, GLdouble *d)
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private);
xGLXSingleReply reply;
- if (val == GL_TRANSPOSE_MODELVIEW_MATRIX_ARB) {
- val = GL_MODELVIEW_MATRIX;
- }
- else if (val == GL_TRANSPOSE_PROJECTION_MATRIX_ARB) {
- val = GL_PROJECTION_MATRIX;
- }
- else if (val == GL_TRANSPOSE_TEXTURE_MATRIX_ARB) {
- val = GL_TEXTURE_MATRIX;
- }
- else if (val == GL_TRANSPOSE_COLOR_MATRIX_ARB) {
- val = GL_COLOR_MATRIX;
- }
+ val = RemapTransposeEnum( val );
__GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetDoublev,4);
@@ -443,18 +442,7 @@ void __indirect_glGetFloatv(GLenum val, GLfloat *f)
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private);
xGLXSingleReply reply;
- if (val == GL_TRANSPOSE_MODELVIEW_MATRIX_ARB) {
- val = GL_MODELVIEW_MATRIX;
- }
- else if (val == GL_TRANSPOSE_PROJECTION_MATRIX_ARB) {
- val = GL_PROJECTION_MATRIX;
- }
- else if (val == GL_TRANSPOSE_TEXTURE_MATRIX_ARB) {
- val = GL_TEXTURE_MATRIX;
- }
- else if (val == GL_TRANSPOSE_COLOR_MATRIX_ARB) {
- val = GL_COLOR_MATRIX;
- }
+ val = RemapTransposeEnum( val );
__GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetFloatv,4);
@@ -595,18 +583,7 @@ void __indirect_glGetIntegerv(GLenum val, GLint *i)
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private);
xGLXSingleReply reply;
- if (val == GL_TRANSPOSE_MODELVIEW_MATRIX_ARB) {
- val = GL_MODELVIEW_MATRIX;
- }
- else if (val == GL_TRANSPOSE_PROJECTION_MATRIX_ARB) {
- val = GL_PROJECTION_MATRIX;
- }
- else if (val == GL_TRANSPOSE_TEXTURE_MATRIX_ARB) {
- val = GL_TEXTURE_MATRIX;
- }
- else if (val == GL_TRANSPOSE_COLOR_MATRIX_ARB) {
- val = GL_COLOR_MATRIX;
- }
+ val = RemapTransposeEnum( val );
__GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetIntegerv,4);