diff options
author | sergeyv <sergeyv@google.com> | 2017-01-19 15:37:02 -0800 |
---|---|---|
committer | sergeyv <sergeyv@google.com> | 2017-01-30 16:42:41 -0800 |
commit | 3e9999bd866fac71c72e6b484a9836c87c328a08 (patch) | |
tree | 5f4f3303c211e618bb8daed4b62f8ebfecccd530 /libs/hwui/renderstate/RenderState.cpp | |
parent | df9a4f9a7c599ccd2348d429e6a6f0a5a415f780 (diff) |
Explicitly destroy Layer in DeferredLayerUpdater on destroyHardwareResources()
Change-Id: I0987104eabda9a2a302b9e765213aad48f93aea4
Test: refactoring CL. Existing tests still pass
bug:33753499
Diffstat (limited to 'libs/hwui/renderstate/RenderState.cpp')
-rw-r--r-- | libs/hwui/renderstate/RenderState.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/hwui/renderstate/RenderState.cpp b/libs/hwui/renderstate/RenderState.cpp index 17ee390c90bd..0d567f7601f2 100644 --- a/libs/hwui/renderstate/RenderState.cpp +++ b/libs/hwui/renderstate/RenderState.cpp @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +#include "DeferredLayerUpdater.h" #include "GlLayer.h" #include "VkLayer.h" #include <GpuMemoryTracker.h> @@ -209,6 +210,14 @@ void RenderState::debugOverdraw(bool enable, bool clear) { } } +static void destroyLayerInUpdater(DeferredLayerUpdater* layerUpdater) { + layerUpdater->destroyLayer(); +} + +void RenderState::destroyLayersInUpdater() { + std::for_each(mActiveLayerUpdaters.begin(), mActiveLayerUpdaters.end(), destroyLayerInUpdater); +} + class DecStrongTask : public renderthread::RenderTask { public: explicit DecStrongTask(VirtualLightRefBase* object) : mObject(object) {} |