summaryrefslogtreecommitdiffstats
path: root/libs/hwui/renderthread
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2014-09-04 17:40:05 -0700
committerJohn Reck <jreck@google.com>2014-09-04 17:40:05 -0700
commit443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44 (patch)
tree4e1fd44948c6bc7324d6e3cb66af261f864530e5 /libs/hwui/renderthread
parent2388750612b1fe54d31a47e0a40c1e6cf5a0cedd (diff)
downloadframeworks_base-443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44.zip
frameworks_base-443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44.tar.gz
frameworks_base-443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44.tar.bz2
Yet more layer tracking logging
Bug: 17208461 Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
Diffstat (limited to 'libs/hwui/renderthread')
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp3
-rw-r--r--libs/hwui/renderthread/CanvasContext.h4
-rw-r--r--libs/hwui/renderthread/RenderThread.h1
3 files changed, 8 insertions, 0 deletions
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 @@ CanvasContext::CanvasContext(RenderThread& thread, bool translucent,
, 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 @@ void CanvasContext::buildLayer(RenderNode* node) {
// 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..2460f6b 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -42,6 +42,7 @@ class DeferredLayerUpdater;
class OpenGLRenderer;
class Rect;
class Layer;
+class RenderState;
namespace renderthread {
@@ -95,6 +96,9 @@ public:
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 @@ class RenderState;
namespace renderthread {
+class CanvasContext;
class DispatchFrameCallbacks;
class EglManager;
class RenderProxy;