Loading libs/hwui/DeferredLayerUpdater.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -29,12 +29,16 @@ DeferredLayerUpdater::DeferredLayerUpdater(RenderState& renderState) , mGLContextAttached(false) , mUpdateTexImage(false) , mLayer(nullptr) { renderState.registerDeferredLayerUpdater(this); renderState.registerContextCallback(this); } DeferredLayerUpdater::~DeferredLayerUpdater() { setTransform(nullptr); mRenderState.unregisterDeferredLayerUpdater(this); mRenderState.removeContextCallback(this); destroyLayer(); } void DeferredLayerUpdater::onContextDestroyed() { destroyLayer(); } Loading libs/hwui/DeferredLayerUpdater.h +5 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> #include "renderstate/RenderState.h" #include "surfacetexture/SurfaceTexture.h" #include "Layer.h" #include "Rect.h" Loading @@ -38,7 +39,7 @@ class RenderState; // Container to hold the properties a layer should be set to at the start // of a render pass class DeferredLayerUpdater : public VirtualLightRefBase { class DeferredLayerUpdater : public VirtualLightRefBase, public IGpuContextCallback { public: // Note that DeferredLayerUpdater assumes it is taking ownership of the layer // and will not call incrementRef on it as a result. Loading Loading @@ -98,6 +99,9 @@ public: void destroyLayer(); protected: void onContextDestroyed() override; private: RenderState& mRenderState; Loading libs/hwui/RenderNode.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -158,7 +158,7 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) { CC_UNLIKELY(properties().getWidth() == 0) || CC_UNLIKELY(properties().getHeight() == 0) || CC_UNLIKELY(!properties().fitsOnLayer())) { if (CC_UNLIKELY(hasLayer())) { renderthread::CanvasContext::destroyLayer(this); this->setLayerSurface(nullptr); } return; } Loading Loading @@ -313,7 +313,7 @@ void RenderNode::deleteDisplayList(TreeObserver& observer, TreeInfo* info) { void RenderNode::destroyHardwareResources(TreeInfo* info) { if (hasLayer()) { renderthread::CanvasContext::destroyLayer(this); this->setLayerSurface(nullptr); } setStagingDisplayList(nullptr); Loading @@ -323,7 +323,7 @@ void RenderNode::destroyHardwareResources(TreeInfo* info) { void RenderNode::destroyLayers() { if (hasLayer()) { renderthread::CanvasContext::destroyLayer(this); this->setLayerSurface(nullptr); } if (mDisplayList) { mDisplayList->updateChildren([](RenderNode* child) { child->destroyLayers(); }); Loading libs/hwui/hwui/Bitmap.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -230,8 +230,6 @@ Bitmap::~Bitmap() { mPixelStorage.hardware.buffer = nullptr; break; } android::uirenderer::renderthread::RenderProxy::onBitmapDestroyed(getStableID()); } bool Bitmap::hasHardwareMipMap() const { Loading libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "SkiaPipeline.h" #include "SkiaProfileRenderer.h" #include "hwui/Bitmap.h" #include "private/hwui/DrawGlInfo.h" #include "renderstate/RenderState.h" #include "renderthread/EglManager.h" #include "renderthread/Frame.h" Loading Loading
libs/hwui/DeferredLayerUpdater.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -29,12 +29,16 @@ DeferredLayerUpdater::DeferredLayerUpdater(RenderState& renderState) , mGLContextAttached(false) , mUpdateTexImage(false) , mLayer(nullptr) { renderState.registerDeferredLayerUpdater(this); renderState.registerContextCallback(this); } DeferredLayerUpdater::~DeferredLayerUpdater() { setTransform(nullptr); mRenderState.unregisterDeferredLayerUpdater(this); mRenderState.removeContextCallback(this); destroyLayer(); } void DeferredLayerUpdater::onContextDestroyed() { destroyLayer(); } Loading
libs/hwui/DeferredLayerUpdater.h +5 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> #include "renderstate/RenderState.h" #include "surfacetexture/SurfaceTexture.h" #include "Layer.h" #include "Rect.h" Loading @@ -38,7 +39,7 @@ class RenderState; // Container to hold the properties a layer should be set to at the start // of a render pass class DeferredLayerUpdater : public VirtualLightRefBase { class DeferredLayerUpdater : public VirtualLightRefBase, public IGpuContextCallback { public: // Note that DeferredLayerUpdater assumes it is taking ownership of the layer // and will not call incrementRef on it as a result. Loading Loading @@ -98,6 +99,9 @@ public: void destroyLayer(); protected: void onContextDestroyed() override; private: RenderState& mRenderState; Loading
libs/hwui/RenderNode.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -158,7 +158,7 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) { CC_UNLIKELY(properties().getWidth() == 0) || CC_UNLIKELY(properties().getHeight() == 0) || CC_UNLIKELY(!properties().fitsOnLayer())) { if (CC_UNLIKELY(hasLayer())) { renderthread::CanvasContext::destroyLayer(this); this->setLayerSurface(nullptr); } return; } Loading Loading @@ -313,7 +313,7 @@ void RenderNode::deleteDisplayList(TreeObserver& observer, TreeInfo* info) { void RenderNode::destroyHardwareResources(TreeInfo* info) { if (hasLayer()) { renderthread::CanvasContext::destroyLayer(this); this->setLayerSurface(nullptr); } setStagingDisplayList(nullptr); Loading @@ -323,7 +323,7 @@ void RenderNode::destroyHardwareResources(TreeInfo* info) { void RenderNode::destroyLayers() { if (hasLayer()) { renderthread::CanvasContext::destroyLayer(this); this->setLayerSurface(nullptr); } if (mDisplayList) { mDisplayList->updateChildren([](RenderNode* child) { child->destroyLayers(); }); Loading
libs/hwui/hwui/Bitmap.cpp +0 −2 Original line number Diff line number Diff line Loading @@ -230,8 +230,6 @@ Bitmap::~Bitmap() { mPixelStorage.hardware.buffer = nullptr; break; } android::uirenderer::renderthread::RenderProxy::onBitmapDestroyed(getStableID()); } bool Bitmap::hasHardwareMipMap() const { Loading
libs/hwui/pipeline/skia/SkiaOpenGLPipeline.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "SkiaPipeline.h" #include "SkiaProfileRenderer.h" #include "hwui/Bitmap.h" #include "private/hwui/DrawGlInfo.h" #include "renderstate/RenderState.h" #include "renderthread/EglManager.h" #include "renderthread/Frame.h" Loading