From bb10ac7ab24f1ae6a14ab6e8a20f9a9488c5cbcc Mon Sep 17 00:00:00 2001 From: rachytski Date: Fri, 16 Dec 2011 01:37:12 +0400 Subject: [PATCH] [android] drawing model from center by spiral on the grid 5x5 to avoid depth buffer bug. --- map/render_queue_routine.cpp | 38 +++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/map/render_queue_routine.cpp b/map/render_queue_routine.cpp index b8f5f0e235..5a52cca786 100644 --- a/map/render_queue_routine.cpp +++ b/map/render_queue_routine.cpp @@ -192,7 +192,43 @@ void RenderQueueRoutine::getUpdateAreas( areas.push_back(m2::RectI((int)leftBarMinX, (int)bottomBarMinY, (int)rightBarMinX, (int)bottomBarMaxY)); } else - areas.push_back(newRect); + { + if (m_doPeriodicalUpdate) + areas.push_back(newRect); + else + { + int sx = newRect.SizeX() / 5; + int sy = newRect.SizeY() / 5; + m2::RectI r(0, 0, sx, sy); + + areas.push_back(m2::Offset(r, 2 * sx, 2 * sy)); + areas.push_back(m2::Offset(r, 2 * sx, 1 * sy)); + areas.push_back(m2::Offset(r, 3 * sx, 1 * sy)); + areas.push_back(m2::Offset(r, 3 * sx, 2 * sy)); + areas.push_back(m2::Offset(r, 3 * sx, 3 * sy)); + areas.push_back(m2::Offset(r, 2 * sx, 3 * sy)); + areas.push_back(m2::Offset(r, 1 * sx, 3 * sy)); + areas.push_back(m2::Offset(r, 1 * sx, 2 * sy)); + areas.push_back(m2::Offset(r, 1 * sx, 1 * sy)); + areas.push_back(m2::Offset(r, 1 * sx, 0 * sy)); + areas.push_back(m2::Offset(r, 1 * sx, 0 * sy)); + areas.push_back(m2::Offset(r, 2 * sx, 0 * sy)); + areas.push_back(m2::Offset(r, 3 * sx, 0 * sy)); + areas.push_back(m2::Offset(r, 4 * sx, 0 * sy)); + areas.push_back(m2::Offset(r, 4 * sx, 1 * sy)); + areas.push_back(m2::Offset(r, 4 * sx, 2 * sy)); + areas.push_back(m2::Offset(r, 4 * sx, 3 * sy)); + areas.push_back(m2::Offset(r, 4 * sx, 4 * sy)); + areas.push_back(m2::Offset(r, 3 * sx, 4 * sy)); + areas.push_back(m2::Offset(r, 2 * sx, 4 * sy)); + areas.push_back(m2::Offset(r, 1 * sx, 4 * sy)); + areas.push_back(m2::Offset(r, 0 * sx, 4 * sy)); + areas.push_back(m2::Offset(r, 0 * sx, 3 * sy)); + areas.push_back(m2::Offset(r, 0 * sx, 2 * sy)); + areas.push_back(m2::Offset(r, 0 * sx, 1 * sy)); + areas.push_back(m2::Offset(r, 0 * sx, 0 * sy)); + } + } } void RenderQueueRoutine::setVisualScale(double visualScale)