mesa: change _mesa_inside_dlist_begin_end() to handle PRIM_UNKNOWN
authorBrian Paul <brianp@vmware.com>
Thu, 2 May 2013 01:15:32 +0000 (19:15 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 2 May 2013 15:03:15 +0000 (09:03 -0600)
If the currently compiled primitive state is PRIM_UNKNOWN we should
not return true from _mesa_inside_dlist_begin_end().  This lets us
simplify the calls to that function.

Note, the call to _mesa_inside_dlist_begin_end() in vbo_save_EndList()
should have probably been checking for PRIM_UNKNOWN too, but it wasn't.
So there's no code change change.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mesa/main/context.h
src/mesa/main/dlist.c

index 9b2dffb979d14dcef58f99450b8e3e953aace360..8e0e88a39202db3074d18dad9146c0fc52d6fc32 100644 (file)
@@ -207,7 +207,7 @@ _mesa_inside_begin_end(const struct gl_context *ctx)
 static inline GLboolean
 _mesa_inside_dlist_begin_end(const struct gl_context *ctx)
 {
-   return ctx->Driver.CurrentSavePrimitive != PRIM_OUTSIDE_BEGIN_END;
+   return ctx->Driver.CurrentSavePrimitive <= PRIM_MAX;
 }
 
 
index 73d35fe891d8d0ff5773d9a29b5585863f2e229a..0d12e306656a87b1ae9f5a0996e93236275c4fba 100644 (file)
@@ -5657,8 +5657,7 @@ save_Begin(GLenum mode)
       /* compile this error into the display list */
       _mesa_compile_error(ctx, GL_INVALID_ENUM, "glBegin(mode)");
    }
-   else if (_mesa_inside_dlist_begin_end(ctx) &&
-            ctx->Driver.CurrentSavePrimitive != PRIM_UNKNOWN) {
+   else if (_mesa_inside_dlist_begin_end(ctx)) {
       /* compile this error into the display list */
       _mesa_compile_error(ctx, GL_INVALID_OPERATION, "recursive glBegin");
    }
@@ -8659,8 +8658,7 @@ _mesa_EndList(void)
    if (MESA_VERBOSE & VERBOSE_API)
       _mesa_debug(ctx, "glEndList\n");
 
-   if (ctx->ExecuteFlag && _mesa_inside_dlist_begin_end(ctx)
-       && ctx->Driver.CurrentSavePrimitive != PRIM_UNKNOWN) {
+   if (ctx->ExecuteFlag && _mesa_inside_dlist_begin_end(ctx)) {
       _mesa_error(ctx, GL_INVALID_OPERATION,
                   "glEndList() called inside glBegin/End");
    }