From f74693640e342ee637e1ba420fccdea65b9fefb1 Mon Sep 17 00:00:00 2001 From: ExMix Date: Tue, 18 Nov 2014 11:10:43 +0300 Subject: [PATCH] [drape] reduce OGL state changes. Reduce count of tile reading --- drape_frontend/frontend_renderer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 1fe377bb47..ee331cab48 100644 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -213,6 +213,7 @@ void FrontendRenderer::RenderScene() if (prevLayer != layer && layer == dp::GLState::OverlayLayer) GLFunctions::glClearDepth(); + prevLayer = layer; ASSERT_LESS_OR_EQUAL(prevLayer, layer, ()); dp::RefPointer program = m_gpuProgramManager->GetProgram(state.GetProgramIndex()); @@ -278,7 +279,11 @@ void FrontendRenderer::ResolveTileKeys(set & keyStorage, int tileScale) for (int tileY = minTileY; tileY < maxTileY; ++tileY) { for (int tileX = minTileX; tileX < maxTileX; ++tileX) - keyStorage.insert(TileKey(tileX, tileY, tileScale)); + { + TileKey key(tileX, tileY, tileScale); + if (clipRect.IsIntersect(key.GetGlobalRect())) + keyStorage.insert(key); + } } }