[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