Yet more layer tracking logging
Bug: 17208461
Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 428e426..4129a89 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -48,11 +48,13 @@
, mHaveNewSurface(false)
, mRootRenderNode(rootRenderNode) {
mAnimationContext = contextFactory->createAnimationContext(mRenderThread.timeLord());
+ mRenderThread.renderState().registerCanvasContext(this);
}
CanvasContext::~CanvasContext() {
destroy();
delete mAnimationContext;
+ mRenderThread.renderState().unregisterCanvasContext(this);
}
void CanvasContext::destroy() {
@@ -299,6 +301,7 @@
// purposes when the frame is actually drawn
node->setPropertyFieldsDirty(RenderNode::GENERIC);
+ mCanvas->markLayersAsBuildLayers();
mCanvas->flushLayerUpdates();
node->incStrong(0);
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index 5984fd0..2460f6b8 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -42,6 +42,7 @@
class OpenGLRenderer;
class Rect;
class Layer;
+class RenderState;
namespace renderthread {
@@ -95,6 +96,9 @@
private:
friend class RegisterFrameCallbackTask;
+ // TODO: Replace with something better for layer & other GL object
+ // lifecycle tracking
+ friend class android::uirenderer::RenderState;
void setSurface(ANativeWindow* window);
void swapBuffers();
diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h
index 0b91e9d..c461f3a 100644
--- a/libs/hwui/renderthread/RenderThread.h
+++ b/libs/hwui/renderthread/RenderThread.h
@@ -40,6 +40,7 @@
namespace renderthread {
+class CanvasContext;
class DispatchFrameCallbacks;
class EglManager;
class RenderProxy;