From 138e1633a6361ad79e4ebcee5590520206623af3 Mon Sep 17 00:00:00 2001 From: rachytski Date: Thu, 27 Sep 2012 14:19:02 +0300 Subject: [PATCH] flushing Screen before rendering DisplayList for correct primitives ordering. --- yg/display_list.cpp | 2 ++ yg/geometry_batcher.cpp | 5 +++++ yg/geometry_batcher.hpp | 2 ++ yg/renderer.cpp | 3 +++ yg/renderer.hpp | 2 ++ 5 files changed, 14 insertions(+) diff --git a/yg/display_list.cpp b/yg/display_list.cpp index df25015d7b..06400ecf9b 100644 --- a/yg/display_list.cpp +++ b/yg/display_list.cpp @@ -91,6 +91,8 @@ namespace yg void DisplayList::draw(math::Matrix const & m) { + m_parent->flush(); + math::Matrix mv; /// preparing ModelView matrix diff --git a/yg/geometry_batcher.cpp b/yg/geometry_batcher.cpp index e110ed8db3..a6cd3fce34 100644 --- a/yg/geometry_batcher.cpp +++ b/yg/geometry_batcher.cpp @@ -824,5 +824,10 @@ namespace yg flush(-1); base_t::setDisplayList(displayList); } + + void GeometryBatcher::flush() + { + flush(-1); + } } // namespace gl } // namespace yg diff --git a/yg/geometry_batcher.hpp b/yg/geometry_batcher.hpp index f497a9c6fb..6d5bc91493 100644 --- a/yg/geometry_batcher.hpp +++ b/yg/geometry_batcher.hpp @@ -215,6 +215,8 @@ namespace yg void clearAdditionalSkinPage(); void setDisplayList(DisplayList * displayList); + + void flush(); }; } } diff --git a/yg/renderer.cpp b/yg/renderer.cpp index 5392702c46..2f815b28e9 100644 --- a/yg/renderer.cpp +++ b/yg/renderer.cpp @@ -301,5 +301,8 @@ namespace yg else return false; } + + void Renderer::flush() + {} } } diff --git a/yg/renderer.hpp b/yg/renderer.hpp index 1cf7571a62..a9c8de38d2 100644 --- a/yg/renderer.hpp +++ b/yg/renderer.hpp @@ -157,6 +157,8 @@ namespace yg void setEnvironment(core::CommandsQueue::Environment const * env); bool isCancelled() const; + + virtual void flush(); }; } }