diff options
Diffstat (limited to 'libs/hwui/renderstate/RenderState.cpp')
-rw-r--r-- | libs/hwui/renderstate/RenderState.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/libs/hwui/renderstate/RenderState.cpp b/libs/hwui/renderstate/RenderState.cpp index b524bcb096da..b595ab859a61 100644 --- a/libs/hwui/renderstate/RenderState.cpp +++ b/libs/hwui/renderstate/RenderState.cpp @@ -41,8 +41,15 @@ void RenderState::onContextCreated() { GpuMemoryTracker::onGpuContextCreated(); } +static void destroyLayerInUpdater(DeferredLayerUpdater* layerUpdater) { + layerUpdater->destroyLayer(); +} + void RenderState::onContextDestroyed() { - destroyLayersInUpdater(); + std::for_each(mActiveLayerUpdaters.begin(), mActiveLayerUpdaters.end(), destroyLayerInUpdater); + for(auto callback : mContextCallbacks) { + callback->onContextDestroyed(); + } GpuMemoryTracker::onGpuContextDestroyed(); } @@ -91,14 +98,6 @@ void RenderState::debugOverdraw(bool enable, bool clear) { // DEAD CODE } -static void destroyLayerInUpdater(DeferredLayerUpdater* layerUpdater) { - layerUpdater->destroyLayer(); -} - -void RenderState::destroyLayersInUpdater() { - std::for_each(mActiveLayerUpdaters.begin(), mActiveLayerUpdaters.end(), destroyLayerInUpdater); -} - void RenderState::postDecStrong(VirtualLightRefBase* object) { if (pthread_equal(mThreadId, pthread_self())) { object->decStrong(nullptr); |