From 2f697b9b6b3684d923f6b759dfa220d08746bc74 Mon Sep 17 00:00:00 2001 From: ExMix Date: Sat, 30 Jan 2016 08:31:37 +0300 Subject: [PATCH] [drape] bugfix --- drape_frontend/frontend_renderer.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 8e904febc2..6b02ab7286 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -1060,15 +1060,21 @@ void FrontendRenderer::MergeBuckets() for (size_t i = 0; i < groupsCount; ++i) { ref_ptr group = make_ref(layer.m_renderGroups[i]); - dp::GLState state = group->GetState(); - ASSERT_EQUAL(state.GetDepthLayer(), dp::GLState::GeometryLayer, ()); - forMerge[MergedGroupKey(state, group->GetTileKey())].push_back(move(layer.m_renderGroups[i])); + if (!group->IsPendingOnDelete()) + { + dp::GLState state = group->GetState(); + ASSERT_EQUAL(state.GetDepthLayer(), dp::GLState::GeometryLayer, ()); + forMerge[MergedGroupKey(state, group->GetTileKey())].push_back(move(layer.m_renderGroups[i])); + } + else + newGroups.push_back(move(layer.m_renderGroups[i])); } for (TGroupMap::value_type & node : forMerge) BatchMergeHelper::MergeBatches(node.second, newGroups, isPerspective); layer.m_renderGroups = move(newGroups); + layer.m_isDirty = true; }; bool const isPerspective = m_userEventStream.GetCurrentScreen().isPerspective(); @@ -1567,7 +1573,7 @@ void FrontendRenderer::RenderLayer::Sort() return; RenderGroupComparator comparator; - sort(m_renderGroups.begin(), m_renderGroups.end(), comparator); + sort(m_renderGroups.begin(), m_renderGroups.end(), ref(comparator)); m_isDirty = comparator.m_pendingOnDeleteFound; while (!m_renderGroups.empty() && m_renderGroups.back()->CanBeDeleted())