MCPcopy Create free account
hub / github.com/comaps/comaps / UpdateScene

Method UpdateScene

libs/drape_frontend/frontend_renderer.cpp:2542–2574  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2540}
2541
2542void FrontendRenderer::UpdateScene(ScreenBase const & modelView)
2543{
2544 TRACE_SECTION("[drape] UpdateScene");
2545 ResolveZoomLevel(modelView);
2546
2547 m_gpsTrackRenderer->Update();
2548
2549 auto removePredicate = [this](drape_ptr<RenderGroup> const & group)
2550 {
2551 uint32_t constexpr kMaxGenerationRange = 5;
2552 TileKey const & key = group->GetTileKey();
2553
2554 return ((GetDepthLayer(group->GetState()) == DepthLayer::OverlayLayer ||
2555 GetDepthLayer(group->GetState()) == DepthLayer::OverlayUnderBuildingLayer) &&
2556 key.m_zoomLevel > GetCurrentZoom()) ||
2557 (m_maxGeneration - key.m_generation > kMaxGenerationRange) ||
2558 (group->IsUserMark() && (m_maxUserMarksGeneration - key.m_userMarksGeneration > kMaxGenerationRange));
2559 };
2560 for (RenderLayer & layer : m_layers)
2561 layer.m_isDirty |= RemoveGroups(removePredicate, layer.m_renderGroups, make_ref(m_overlayTree));
2562
2563 if (m_forceUpdateScene || m_forceUpdateUserMarks || m_lastReadedModelView != modelView)
2564 {
2565 EmitModelViewChanged(modelView);
2566 m_lastReadedModelView = modelView;
2567 m_requestedTiles->Set(modelView, m_isIsometry || modelView.isPerspective(), m_forceUpdateScene,
2568 m_forceUpdateUserMarks, ResolveTileKeys(modelView));
2569 m_commutator->PostMessage(ThreadsCommutator::ResourceUploadThread, make_unique_dp<UpdateReadManagerMessage>(),
2570 MessagePriority::UberHighSingleton);
2571 m_forceUpdateScene = false;
2572 m_forceUpdateUserMarks = false;
2573 }
2574}
2575
2576void FrontendRenderer::EmitModelViewChanged(ScreenBase const & modelView) const
2577{

Callers

nothing calls this directly

Calls 9

GetDepthLayerFunction · 0.85
RemoveGroupsFunction · 0.85
make_refFunction · 0.85
IsUserMarkMethod · 0.80
isPerspectiveMethod · 0.80
UpdateMethod · 0.45
GetStateMethod · 0.45
SetMethod · 0.45
PostMessageMethod · 0.45

Tested by

no test coverage detected