summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/dlist.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2012-03-14 14:39:15 -0700
committerEric Anholt <eric@anholt.net>2012-03-19 22:01:22 -0700
commit7ca4f07b5b77ccac0a9b60dc5ac9082906b5947e (patch)
tree95685d366aef37c3d16c5f6dccc3b3dd5777a3dd /src/mesa/main/dlist.c
parentca760181b4420696c7e86aa2951d7203522ad1e8 (diff)
downloadexternal_mesa3d-7ca4f07b5b77ccac0a9b60dc5ac9082906b5947e.zip
external_mesa3d-7ca4f07b5b77ccac0a9b60dc5ac9082906b5947e.tar.gz
external_mesa3d-7ca4f07b5b77ccac0a9b60dc5ac9082906b5947e.tar.bz2
mesa: Fold error generation into _mesa_valid_prim_mode().
We want to start emitting an INVALID_OPERATION from here for transform feedback. Note that this forced dlist.c to almost not use this function, since it wants different behavior during dlist compile. Just pull the non-TF, non-GS test out for compile, because: 1) TF doesn't matter in that case because there's no drawing. 2) I don't think we're going to see GSes and display lists in the same context, if we don't do GL_ARB_compatibility. Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/mesa/main/dlist.c')
-rw-r--r--src/mesa/main/dlist.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 420ddcc..f113573 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -5767,10 +5767,16 @@ save_Begin(GLenum mode)
Node *n;
GLboolean error = GL_FALSE;
- if (!_mesa_valid_prim_mode(ctx, mode)) {
- _mesa_compile_error(ctx, GL_INVALID_ENUM, "glBegin(mode)");
+ if (mode > GL_POLYGON) {
+ _mesa_error(ctx, GL_INVALID_ENUM, "glBegin(mode=%x)", mode);
error = GL_TRUE;
}
+ if (ctx->ExecuteFlag) {
+ if (!_mesa_valid_prim_mode(ctx, mode, "glBegin")) {
+ error = GL_TRUE;
+ }
+ }
+
else if (ctx->Driver.CurrentSavePrimitive == PRIM_UNKNOWN) {
/* Typically the first begin. This may raise an error on
* playback, depending on whether CallList is issued from inside