[core] send signal to RenderCustomLayer when gl context has been lost

- Prevents cleaning up of GL resources that no longer exist, resulting in a crash
This commit is contained in:
Ivo van Dongen
2017-09-15 18:03:04 +03:00
committed by Ivo van Dongen
parent 67285f3a95
commit bda6ed26c6
6 changed files with 29 additions and 1 deletions

View File

@@ -62,6 +62,17 @@ Renderer::Impl::Impl(RendererBackend& backend_,
Renderer::Impl::~Impl() {
assert(BackendScope::exists());
if (contextLost) {
// Signal all RenderCustomLayers that the context was lost
// before cleaning up
for (const auto& entry : renderLayers) {
RenderLayer& layer = *entry.second;
if (layer.is<RenderCustomLayer>()) {
layer.as<RenderCustomLayer>()->markContextDestroyed();
}
}
}
};
void Renderer::Impl::setObserver(RendererObserver* observer_) {