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

Method RenderScene

libs/drape_frontend/frontend_renderer.cpp:1384–1508  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1382}
1383
1384void FrontendRenderer::RenderScene(ScreenBase const & modelView, bool activeFrame)
1385{
1386 TRACE_SECTION("[drape] RenderScene");
1387 CHECK(m_context != nullptr, ());
1388#if defined(DRAPE_MEASURER_BENCHMARK) && (defined(RENDER_STATISTIC) || defined(TRACK_GPU_MEM))
1389 DrapeImmediateRenderingMeasurerGuard drapeMeasurerGuard(m_context);
1390#endif
1391
1392 if (m_postprocessRenderer->BeginFrame(m_context, modelView, activeFrame))
1393 {
1394 RefreshBgColor();
1395
1396 uint32_t clearBits = dp::ClearBits::ColorBit | dp::ClearBits::DepthBit;
1397 if (m_apiVersion == dp::ApiVersion::OpenGLES3)
1398 clearBits |= dp::ClearBits::StencilBit;
1399
1400 uint32_t storeBits = dp::ClearBits::ColorBit;
1401 if (m_postprocessRenderer->IsEffectEnabled(PostprocessRenderer::Effect::Antialiasing))
1402 {
1403 clearBits |= dp::ClearBits::StencilBit;
1404 storeBits |= dp::ClearBits::StencilBit;
1405 m_context->SetStencilReferenceValue(2 /* write this value to the stencil buffer */);
1406 }
1407
1408 m_context->Clear(clearBits, storeBits);
1409 m_context->ApplyFramebuffer("Static frame");
1410 m_viewport.Apply(m_context);
1411
1412 Render2dLayer(modelView);
1413 RenderUserMarksLayer(modelView, DepthLayer::UserLineLayer);
1414
1415 RenderOverlayUnderBuildingLayer(modelView);
1416
1417 bool const hasTransitRouteData = HasTransitRouteData();
1418 if (m_buildingsFramebuffer->IsSupported() && !m_routeRenderer->IsRulerRoute())
1419 {
1420 RenderTrafficLayer(modelView);
1421 if (!hasTransitRouteData)
1422 RenderRouteLayer(modelView);
1423 Render3dLayer(modelView);
1424 }
1425 else
1426 {
1427 Render3dLayer(modelView);
1428 RenderTrafficLayer(modelView);
1429 if (!hasTransitRouteData)
1430 RenderRouteLayer(modelView);
1431 }
1432
1433 m_context->Clear(dp::ClearBits::DepthBit, dp::kClearBitsStoreAll);
1434
1435 if (m_selectionShape && IsValidCurrentZoom())
1436 {
1437 SelectionShape::ESelectedObject selectedObject = m_selectionShape->GetSelectedObject();
1438 if (selectedObject == SelectionShape::OBJECT_MY_POSITION)
1439 {
1440 ASSERT(m_myPositionController->IsModeHasPosition(), ());
1441 m_selectionShape->SetPosition(m_myPositionController->Position());

Callers

nothing calls this directly

Calls 15

ASSERTFunction · 0.85
make_refFunction · 0.85
BeginFrameMethod · 0.80
IsEffectEnabledMethod · 0.80
IsRulerRouteMethod · 0.80
IsModeHasPositionMethod · 0.80
RenderTrackMethod · 0.80
DrawArrowMethod · 0.80
EndFrameMethod · 0.80
IsInRoutingMethod · 0.80
ClearMethod · 0.45

Tested by

no test coverage detected