diff --git a/map/framework.cpp b/map/framework.cpp index 413b9f32e1..e628e692f2 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -706,13 +706,14 @@ int Framework::GetDrawScale() const RenderPolicy::TRenderFn Framework::DrawModelFn() { - return bind(&Framework::DrawModel, this, _1, _2, _3, _4); + bool const isTiling = m_renderPolicy->IsTiling(); + return bind(&Framework::DrawModel, this, _1, _2, _3, _4, isTiling); } void Framework::DrawModel(shared_ptr const & e, ScreenBase const & screen, m2::RectD const & renderRect, - int baseScale) + int baseScale, bool isTilingQuery) { m2::RectD selectRect; m2::RectD clipRect; @@ -727,10 +728,10 @@ void Framework::DrawModel(shared_ptr const & e, try { int const upperScale = scales::GetUpperScale(); - if (drawScale <= upperScale) + if (isTilingQuery && drawScale <= upperScale) m_model.ForEachFeature_TileDrawing(selectRect, doDraw, drawScale); else - m_model.ForEachFeature(selectRect, doDraw, upperScale); + m_model.ForEachFeature(selectRect, doDraw, min(upperScale, drawScale)); } catch (redraw_operation_cancelled const &) {} diff --git a/map/framework.hpp b/map/framework.hpp index ce781bbc9a..bbae403525 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -260,7 +260,7 @@ public: void DrawModel(shared_ptr const & e, ScreenBase const & screen, m2::RectD const & renderRect, - int baseScale); + int baseScale, bool isTilingQuery); private: search::Engine * GetSearchEngine() const;