mesa: Ensure that Paused is reset to false on EndTransformFeedback.
authorPaul Berry <stereotype441@gmail.com>
Wed, 21 Dec 2011 19:02:50 +0000 (11:02 -0800)
committerPaul Berry <stereotype441@gmail.com>
Fri, 23 Dec 2011 17:43:18 +0000 (09:43 -0800)
If a client calls BeginTransformFeedback(), then
PauseTransformFeedback(), then EndTransformFeedback(), we need to make
sure that the transform feedback object is not left in a "paused"
state, otherwise the next call to BeginTransformFeedback() will leave
transform feedback paused.

Reviewed-by: Brian Paul <brianp@vmare.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/transformfeedback.c

index 53c09e26544a5693a40155ae1c02d2b5af12fcc4..fea711aa6e06422085dbf61e98316155e3a3868e 100644 (file)
@@ -387,6 +387,7 @@ _mesa_EndTransformFeedback(void)
 
    FLUSH_VERTICES(ctx, _NEW_TRANSFORM_FEEDBACK);
    ctx->TransformFeedback.CurrentObject->Active = GL_FALSE;
+   ctx->TransformFeedback.CurrentObject->Paused = GL_FALSE;
    ctx->TransformFeedback.CurrentObject->EndedAnytime = GL_TRUE;
 
    assert(ctx->Driver.EndTransformFeedback);