[Mesa-dev] [PATCH 01/10] mesa: change _mesa_inside_dlist_begin_end() to handle PRIM_UNKNOWN

Brian Paul brianp at vmware.com
Sun Apr 28 14:42:22 PDT 2013


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.
---
 src/mesa/main/context.h |    2 +-
 src/mesa/main/dlist.c   |    6 ++----
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/context.h b/src/mesa/main/context.h
index 9b2dffb..8e0e88a 100644
--- a/src/mesa/main/context.h
+++ b/src/mesa/main/context.h
@@ -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;
 }
 
 
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 73d35fe..0d12e30 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -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");
    }
-- 
1.7.3.4



More information about the mesa-dev mailing list