diff options
| author | 2016-03-31 18:31:30 +0000 | |
|---|---|---|
| committer | 2016-03-31 18:31:30 +0000 | |
| commit | 3c77e5aa9d219193ba8a8e5f33ad23e63f55d4f5 (patch) | |
| tree | 1a49677d870e243f369150d7b83d2d3fcdd16fe2 /libs/hwui/RenderNode.h | |
| parent | 53418556ed61370e4980d537619eb88a71c4e932 (diff) | |
| parent | bbb4c2eb2e871977289a9c48f414962e46b56ddc (diff) | |
Merge "Add a callback for rendernode parentcount=0" into nyc-dev
am: bbb4c2e
* commit 'bbb4c2eb2e871977289a9c48f414962e46b56ddc':
Add a callback for rendernode parentcount=0
Change-Id: I8168b028ce61413da8ecea76e6531c5dde9ddb46
Diffstat (limited to 'libs/hwui/RenderNode.h')
| -rw-r--r-- | libs/hwui/RenderNode.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h index 0daa44c3bceb..fb13c753b240 100644 --- a/libs/hwui/RenderNode.h +++ b/libs/hwui/RenderNode.h @@ -68,6 +68,7 @@ class SaveLayerOp; class SaveOp; class RestoreToCountOp; class TreeInfo; +class TreeObserver; namespace proto { class RenderNode; @@ -154,6 +155,14 @@ public: } } + VirtualLightRefBase* getUserContext() const { + return mUserContext.get(); + } + + void setUserContext(VirtualLightRefBase* context) { + mUserContext = context; + } + bool isPropertyFieldDirty(DirtyPropertyMask field) const { return mDirtyPropertyFields & field; } @@ -187,7 +196,7 @@ public: } ANDROID_API virtual void prepareTree(TreeInfo& info); - void destroyHardwareResources(); + void destroyHardwareResources(TreeObserver* observer); // UI thread only! ANDROID_API void addAnimator(const sp<BaseRenderNodeAnimator>& animator); @@ -232,6 +241,12 @@ public: mPositionListener.reset(listener); } + // This is only modified in MODE_FULL, so it can be safely accessed + // on the UI thread. + ANDROID_API bool hasParents() { + return mParentCount; + } + private: typedef key_value_pair_t<float, DrawRenderNodeOp*> ZDrawRenderNodeOpPair; @@ -291,7 +306,7 @@ private: void syncProperties(); - void syncDisplayList(); + void syncDisplayList(TreeObserver* observer); void prepareTreeImpl(TreeInfo& info, bool functorsNeedLayer); void pushStagingPropertiesChanges(TreeInfo& info); @@ -302,13 +317,14 @@ private: #endif void prepareLayer(TreeInfo& info, uint32_t dirtyMask); void pushLayerUpdate(TreeInfo& info); - void deleteDisplayList(); + void deleteDisplayList(TreeObserver* observer); void damageSelf(TreeInfo& info); void incParentRefCount() { mParentCount++; } - void decParentRefCount(); + void decParentRefCount(TreeObserver* observer); String8 mName; + sp<VirtualLightRefBase> mUserContext; uint32_t mDirtyPropertyFields; RenderProperties mProperties; |