| 2267 | } |
| 2268 | |
| 2269 | void FrontendRenderer::OnContextDestroy() |
| 2270 | { |
| 2271 | LOG(LINFO, ("On context destroy.")); |
| 2272 | |
| 2273 | if (m_renderInjectionHandler) |
| 2274 | m_renderInjectionHandler(m_context, m_texMng, make_ref(m_gpuProgramManager), true); |
| 2275 | |
| 2276 | // Clear all graphics. |
| 2277 | for (RenderLayer & layer : m_layers) |
| 2278 | { |
| 2279 | layer.m_renderGroups.clear(); |
| 2280 | layer.m_isDirty = false; |
| 2281 | } |
| 2282 | |
| 2283 | m_selectObjectMessage.reset(); |
| 2284 | m_overlayTree->SetSelectedFeature(FeatureID()); |
| 2285 | m_overlayTree->SetDebugRectRenderer(nullptr); |
| 2286 | m_overlayTree->Clear(); |
| 2287 | |
| 2288 | m_guiRenderer.reset(); |
| 2289 | m_selectionShape.reset(); |
| 2290 | m_buildingsFramebuffer.reset(); |
| 2291 | m_screenQuadRenderer.reset(); |
| 2292 | |
| 2293 | m_myPositionController->ResetRenderShape(); |
| 2294 | m_routeRenderer->ClearContextDependentResources(); |
| 2295 | m_gpsTrackRenderer->ClearRenderData(); |
| 2296 | m_trafficRenderer->ClearContextDependentResources(); |
| 2297 | m_drapeApiRenderer->Clear(); |
| 2298 | m_postprocessRenderer->ClearContextDependentResources(); |
| 2299 | m_transitSchemeRenderer->ClearContextDependentResources(nullptr /* overlayTree */); |
| 2300 | |
| 2301 | m_transitBackground.reset(); |
| 2302 | m_debugRectRenderer.reset(); |
| 2303 | |
| 2304 | CHECK(m_context != nullptr, ()); |
| 2305 | m_gpuProgramManager->Destroy(m_context); |
| 2306 | m_gpuProgramManager.reset(); |
| 2307 | |
| 2308 | // Here we have to erase weak pointer to the context, since it |
| 2309 | // can be destroyed after this method. |
| 2310 | m_context->DoneCurrent(); |
| 2311 | m_context = nullptr; |
| 2312 | |
| 2313 | m_needRestoreSize = true; |
| 2314 | m_firstTilesReady = false; |
| 2315 | m_firstLaunchAnimationInterrupted = false; |
| 2316 | |
| 2317 | m_finishTexturesInitialization = false; |
| 2318 | } |
| 2319 | |
| 2320 | void FrontendRenderer::OnContextCreate() |
| 2321 | { |
nothing calls this directly
no test coverage detected