journal: Dirty the modelview matrix state when flushing

The journal manually flushes its own modelview matrix state so it
needs to mark the state as dirty so that if a primitive is drawn with
the same matrix state as the last primitive it will correctly reflush
it.

https://bugzilla.gnome.org/show_bug.cgi?id=693612

Reviewed-by: Robert Bragg <robert@linux.intel.com>

(cherry picked from commit c7290c994c742456ff0977cb394c289afb377049)
This commit is contained in:
Neil Roberts 2013-02-18 18:21:39 +00:00
parent 806a2e5813
commit 861b119a53
2 changed files with 5 additions and 1 deletions

View File

@ -1316,6 +1316,10 @@ _cogl_journal_flush (CoglJournal *journal)
~(COGL_FRAMEBUFFER_STATE_MODELVIEW | ~(COGL_FRAMEBUFFER_STATE_MODELVIEW |
COGL_FRAMEBUFFER_STATE_CLIP)); COGL_FRAMEBUFFER_STATE_CLIP));
/* We need to mark the current modelview state of the framebuffer as
* dirty because we are going to manually replace it */
ctx->current_draw_buffer_changes |= COGL_FRAMEBUFFER_STATE_MODELVIEW;
state.ctx = ctx; state.ctx = ctx;
state.journal = journal; state.journal = journal;

View File

@ -116,7 +116,7 @@ main (int argc, char **argv)
ADD_TEST (test_map_buffer_range, TEST_REQUIREMENT_MAP_WRITE, 0); ADD_TEST (test_map_buffer_range, TEST_REQUIREMENT_MAP_WRITE, 0);
ADD_TEST (test_primitive_and_journal, 0, TEST_KNOWN_FAILURE); ADD_TEST (test_primitive_and_journal, 0, 0);
UNPORTED_TEST (test_viewport); UNPORTED_TEST (test_viewport);