pipeline: don't skip flush if skip_gl_color flag differs

We try and bail out of flushing pipeline state asap if we can see the
pipeline has already been flushed and hasn't changed but we weren't
checking to see if the skip_gl_color flag is the same as when it was
last flush too and so we'd sometimes bail out without updating the
glColor correctly.
This commit is contained in:
Robert Bragg 2011-01-11 14:10:11 +00:00
parent 3b3cfe1824
commit a74050554a

View File

@ -1063,7 +1063,8 @@ _cogl_pipeline_flush_gl_state (CoglPipeline *pipeline,
{ {
/* Bail out asap if we've been asked to re-flush the already current /* Bail out asap if we've been asked to re-flush the already current
* pipeline and we can see the pipeline hasn't changed */ * pipeline and we can see the pipeline hasn't changed */
if (ctx->current_pipeline_age == pipeline->age) if (ctx->current_pipeline_age == pipeline->age &&
ctx->current_pipeline_skip_gl_color == skip_gl_color)
goto done; goto done;
pipelines_difference = ctx->current_pipeline_changes_since_flush; pipelines_difference = ctx->current_pipeline_changes_since_flush;