mesa: update_arrays() depends on program state.
authorHenri Verbeet <hverbeet@gmail.com>
Sun, 4 Apr 2010 17:24:46 +0000 (10:24 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 5 Apr 2010 15:34:31 +0000 (09:34 -0600)
It uses ctx->VertexProgram._Current.

Signed-off-by: Brian Paul <brianp@vmware.com>
src/mesa/main/state.c

index 589029db58b594a836210dd9d8ef0314503dd675..b971cc976eed7116a8a17c71432e0c13dd35d982 100644 (file)
@@ -582,9 +582,6 @@ _mesa_update_state_locked( GLcontext *ctx )
    if (new_state & _DD_NEW_SEPARATE_SPECULAR)
       update_separate_specular( ctx );
 
-   if (new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT))
-      update_arrays( ctx );
-
    if (new_state & (_NEW_BUFFERS | _NEW_VIEWPORT))
       update_viewport_matrix(ctx);
 
@@ -620,6 +617,8 @@ _mesa_update_state_locked( GLcontext *ctx )
       new_prog_state |= update_program( ctx );
    }
 
+   if (new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT))
+      update_arrays( ctx );
 
  out:
    new_prog_state |= update_program_constants(ctx);