summaryrefslogtreecommitdiff
path: root/src/mesa/main/matrix.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2009-06-10 08:39:10 -0600
committerBrian Paul <brianp@vmware.com>2009-06-10 09:31:01 -0600
commit6f50c9865d96a704cf47f59c3c21b4686bddf1f8 (patch)
tree52d133443a77169ea3b541b78af37bc5e5112549 /src/mesa/main/matrix.c
parent5450281ff75eab0cccdf7a926aed7e04132d3c95 (diff)
mesa: disable texture unit error check in _mesa_MatrixMode()
See comments for details.
Diffstat (limited to 'src/mesa/main/matrix.c')
-rw-r--r--src/mesa/main/matrix.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/main/matrix.c b/src/mesa/main/matrix.c
index 39b4967a58..ebc3cbd59c 100644
--- a/src/mesa/main/matrix.c
+++ b/src/mesa/main/matrix.c
@@ -160,11 +160,21 @@ _mesa_MatrixMode( GLenum mode )
ctx->CurrentStack = &ctx->ProjectionMatrixStack;
break;
case GL_TEXTURE:
+ /* This error check is disabled because if we're called from
+ * glPopAttrib() when the active texture unit is >= MaxTextureCoordUnits
+ * we'll generate an unexpected error.
+ * From the GL_ARB_vertex_shader spec it sounds like we should instead
+ * do error checking in other places when we actually try to access
+ * texture matrices beyond MaxTextureCoordUnits.
+ */
+#if 0
if (ctx->Texture.CurrentUnit >= ctx->Const.MaxTextureCoordUnits) {
_mesa_error(ctx, GL_INVALID_OPERATION, "glMatrixMode(invalid tex unit %d)",
ctx->Texture.CurrentUnit);
return;
}
+#endif
+ ASSERT(ctx->Texture.CurrentUnit < Elements(ctx->TextureMatrixStack));
ctx->CurrentStack = &ctx->TextureMatrixStack[ctx->Texture.CurrentUnit];
break;
case GL_COLOR: