diff options
Diffstat (limited to 'libs/hwui/RenderNode.h')
-rw-r--r-- | libs/hwui/RenderNode.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h index e5b9d7c395b6..78537011667f 100644 --- a/libs/hwui/RenderNode.h +++ b/libs/hwui/RenderNode.h @@ -65,6 +65,11 @@ class SaveOp; class RestoreToCountOp; class DrawDisplayListOp; +struct TreeInfo { + bool hasFunctors; + // TODO: Damage calculations? Flag to skip staging pushes for RT animations? +}; + /** * Primary class for storing recorded canvas commands, as well as per-View/ViewGroup display properties. * @@ -141,10 +146,7 @@ public: return properties().getHeight(); } - ANDROID_API void pushStagingChanges(); - - // Returns true if this RenderNode or any of its children have functors - bool hasFunctors(); + ANDROID_API void prepareTree(TreeInfo& info); private: typedef key_value_pair_t<float, DrawDisplayListOp*> ZDrawDisplayListOpPair; @@ -203,7 +205,9 @@ private: const char* mText; }; - static void pushSubTreeStagingChanges(DisplayListData* subtree); + void prepareTreeImpl(TreeInfo& info); + void pushStagingChanges(TreeInfo& info); + void prepareSubTree(TreeInfo& info, DisplayListData* subtree); String8 mName; bool mDestroyed; // used for debugging crash, TODO: remove once invalid state crash fixed |