From 335634b807921285bec0709ee92c454cee87ee88 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 9 May 2001 12:48:21 +0000 Subject: Add FLUSH_CURRENT() calls to fix ordering problems (incl. hierarchical dlist calls). --- src/mesa/main/dlist.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/mesa/main') diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index 06b4dc21f7..9a703e097b 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -1,4 +1,4 @@ -/* $Id: dlist.c,v 1.68 2001/03/27 16:42:37 brianp Exp $ */ +/* $Id: dlist.c,v 1.69 2001/05/09 12:48:21 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -724,7 +724,7 @@ static void save_Accum( GLenum op, GLfloat value ) { GET_CURRENT_CONTEXT(ctx); Node *n; - FLUSH_VERTICES(ctx, 0); + ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); n = ALLOC_INSTRUCTION( ctx, OPCODE_ACCUM, 2 ); if (n) { n[1].e = op; @@ -872,6 +872,7 @@ void _mesa_save_CallList( GLuint list ) GET_CURRENT_CONTEXT(ctx); Node *n; ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + FLUSH_CURRENT(ctx, 0); n = ALLOC_INSTRUCTION( ctx, OPCODE_CALL_LIST, 1 ); if (n) { @@ -888,6 +889,7 @@ void _mesa_save_CallLists( GLsizei n, GLenum type, const GLvoid *lists ) GET_CURRENT_CONTEXT(ctx); GLint i; ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + FLUSH_CURRENT(ctx, 0); for (i=0;iExecuteFlag) { (*ctx->Exec->PopMatrix)(); @@ -2636,6 +2642,7 @@ static void save_PushAttrib( GLbitfield mask ) GET_CURRENT_CONTEXT(ctx); Node *n; ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + FLUSH_CURRENT(ctx, 0); n = ALLOC_INSTRUCTION( ctx, OPCODE_PUSH_ATTRIB, 1 ); if (n) { n[1].bf = mask; @@ -2677,6 +2684,7 @@ static void save_RasterPos4f( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) GET_CURRENT_CONTEXT(ctx); Node *n; ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + FLUSH_CURRENT(ctx, 0); n = ALLOC_INSTRUCTION( ctx, OPCODE_RASTER_POS, 4 ); if (n) { n[1].f = x; @@ -3414,6 +3422,7 @@ static void save_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) GET_CURRENT_CONTEXT(ctx); Node *n; ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); + FLUSH_CURRENT(ctx, 0); n = ALLOC_INSTRUCTION( ctx, OPCODE_WINDOW_POS, 4 ); if (n) { n[1].f = x; -- cgit v1.2.3