From e91c24bce52b8a5c08364ec73d3a46b74d18060e Mon Sep 17 00:00:00 2001 From: rachytski Date: Sun, 8 Jan 2012 15:21:36 +0400 Subject: [PATCH] added isTiling as a parameter to DrawModel --- map/basic_render_policy.cpp | 2 +- map/framework.cpp | 7 ++++--- map/framework.hpp | 3 ++- map/render_policy.hpp | 3 ++- map/render_queue_routine.cpp | 3 ++- map/render_queue_routine.hpp | 2 +- map/test_render_policy.cpp | 1 + map/tile_renderer.cpp | 3 ++- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/map/basic_render_policy.cpp b/map/basic_render_policy.cpp index 9b2a2e207e..c02887a20b 100644 --- a/map/basic_render_policy.cpp +++ b/map/basic_render_policy.cpp @@ -126,7 +126,7 @@ void BasicRenderPolicy::DrawFrame(shared_ptr const & e, e->drawer()->screen()->clear(m_bgColor); - m_renderFn(e, s, s.ClipRect(), s.ClipRect(), scales::GetScaleLevel(glbRect)); + m_renderFn(e, s, s.ClipRect(), s.ClipRect(), scales::GetScaleLevel(glbRect), false); infoLayer->draw(e->drawer()->screen().get(), math::Identity()); e->drawer()->screen()->resetInfoLayer(); diff --git a/map/framework.cpp b/map/framework.cpp index f47779e516..aff475d5bd 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -297,7 +297,7 @@ int Framework::GetDrawScale() const RenderPolicy::TRenderFn Framework::DrawModelFn() { - return bind(&Framework::DrawModel, this, _1, _2, _3, _4, _5); + return bind(&Framework::DrawModel, this, _1, _2, _3, _4, _5, _6); } /// Actual rendering function. @@ -305,7 +305,8 @@ void Framework::DrawModel(shared_ptr const & e, ScreenBase const & screen, m2::RectD const & selectRect, m2::RectD const & clipRect, - int scaleLevel) + int scaleLevel, + bool isTiling) { fwork::DrawProcessor doDraw(clipRect, screen, e, scaleLevel); @@ -314,7 +315,7 @@ void Framework::DrawModel(shared_ptr const & e, int const scale = (m_queryMaxScaleMode ? 17 : scaleLevel); //threads::MutexGuard lock(m_modelSyn); - if (m_renderPolicy->IsTiling()) + if (isTiling) m_model.ForEachFeature_TileDrawing(selectRect, doDraw, scale); else m_model.ForEachFeature(selectRect, doDraw, scale); diff --git a/map/framework.hpp b/map/framework.hpp index 582e71fbc0..61b8fca4b5 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -143,7 +143,8 @@ public: ScreenBase const & screen, m2::RectD const & selectRect, m2::RectD const & clipRect, - int scaleLevel); + int scaleLevel, + bool isTiling); void Search(string const & text, SearchCallbackT callback); search::Engine * GetSearchEngine(); diff --git a/map/render_policy.hpp b/map/render_policy.hpp index 07e1af8718..53c936691e 100644 --- a/map/render_policy.hpp +++ b/map/render_policy.hpp @@ -33,7 +33,8 @@ public: ScreenBase const &, m2::RectD const &, m2::RectD const &, - int)> TRenderFn; + int, + bool)> TRenderFn; typedef function TEmptyModelFn; diff --git a/map/render_queue_routine.cpp b/map/render_queue_routine.cpp index 4ce1ba6747..0f4bcf6996 100644 --- a/map/render_queue_routine.cpp +++ b/map/render_queue_routine.cpp @@ -441,7 +441,8 @@ void RenderQueueRoutine::Do() m_currentRenderCommand->m_frameScreen, glbRect, glbRect, - scaleLevel); + scaleLevel, + false); /// all unprocessed commands should be cancelled if (m_currentRenderCommand->m_paintEvent->isCancelled() && m_glQueue) diff --git a/map/render_queue_routine.hpp b/map/render_queue_routine.hpp index 7f11b0d9b8..3154d68a20 100644 --- a/map/render_queue_routine.hpp +++ b/map/render_queue_routine.hpp @@ -39,7 +39,7 @@ class RenderQueueRoutine : public threads::IRoutine { public: - typedef function, ScreenBase const &, m2::RectD const &, m2::RectD const &, int)> render_fn_t; + typedef function, ScreenBase const &, m2::RectD const &, m2::RectD const &, int, bool)> render_fn_t; typedef function TEmptyModelFn; private: diff --git a/map/test_render_policy.cpp b/map/test_render_policy.cpp index 437b54f5ba..99a693b581 100644 --- a/map/test_render_policy.cpp +++ b/map/test_render_policy.cpp @@ -104,6 +104,7 @@ TestRenderPolicy::TestRenderPolicy(VideoTimer * videoTimer, m_windowHandle->setUpdatesEnabled(false); m_windowHandle->setVideoTimer(videoTimer); + m_windowHandle->setRenderPolicy(this); m_windowHandle->setRenderContext(primaryRC); m_auxFrameBuffer = make_shared_ptr(new yg::gl::FrameBuffer()); diff --git a/map/tile_renderer.cpp b/map/tile_renderer.cpp index 2242e6da73..f8eb19791b 100644 --- a/map/tile_renderer.cpp +++ b/map/tile_renderer.cpp @@ -167,7 +167,8 @@ void TileRenderer::DrawTile(core::CommandsQueue::Environment const & env, frameScreen, selectRect, clipRect, - rectInfo.m_drawScale + rectInfo.m_drawScale, + rectInfo.m_tileScale <= 17 ); if (!env.isCancelled())