diff options
author | John Reck <jreck@google.com> | 2014-03-18 09:22:59 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-03-19 16:40:04 -0700 |
commit | 113e0824d6bddf4376240681f9cf6a2deded9498 (patch) | |
tree | 2f69dbe16fef8fa7ccae1d1fe2ee68e1c162d062 /libs/hwui/DisplayList.h | |
parent | db62c232b953fd882a8f55daf736ae4098e8f278 (diff) |
Move RenderNode to own file
Change-Id: I9380d161fd3ddd7b569c262dd8e7aa0c96151b1e
Diffstat (limited to 'libs/hwui/DisplayList.h')
-rw-r--r-- | libs/hwui/DisplayList.h | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h index b80c1187648c..df5cba61d7cb 100644 --- a/libs/hwui/DisplayList.h +++ b/libs/hwui/DisplayList.h @@ -143,136 +143,6 @@ private: void cleanupResources(); }; -/** - * Primary class for storing recorded canvas commands, as well as per-View/ViewGroup display properties. - * - * Recording of canvas commands is somewhat similar to SkPicture, except the canvas-recording - * functionality is split between DisplayListRenderer (which manages the recording), DisplayListData - * (which holds the actual data), and DisplayList (which holds properties and performs playback onto - * a renderer). - * - * Note that DisplayListData is swapped out from beneath an individual DisplayList when a view's - * recorded stream of canvas operations is refreshed. The DisplayList (and its properties) stay - * attached. - */ -class RenderNode { -public: - ANDROID_API RenderNode(); - ANDROID_API ~RenderNode(); - - // See flags defined in DisplayList.java - enum ReplayFlag { - kReplayFlag_ClipChildren = 0x1 - }; - - ANDROID_API static void destroyDisplayListDeferred(RenderNode* displayList); - ANDROID_API static void outputLogBuffer(int fd); - - ANDROID_API void setData(DisplayListData* newData); - - void computeOrdering(); - void defer(DeferStateStruct& deferStruct, const int level); - void replay(ReplayStateStruct& replayStruct, const int level); - - ANDROID_API void output(uint32_t level = 1); - - bool isRenderable() const { - return mDisplayListData && mDisplayListData->hasDrawOps; - } - - void setName(const char* name) { - if (name) { - char* lastPeriod = strrchr(name, '.'); - if (lastPeriod) { - mName.setTo(lastPeriod + 1); - } else { - mName.setTo(name); - } - } - } - - RenderProperties& properties() { - return mProperties; - } - - bool isProjectionReceiver() { - return properties().isProjectionReceiver(); - } - - int getWidth() { - return properties().getWidth(); - } - - int getHeight() { - return properties().getHeight(); - } - -private: - typedef key_value_pair_t<float, DrawDisplayListOp*> ZDrawDisplayListOpPair; - - static size_t findNonNegativeIndex(const Vector<ZDrawDisplayListOpPair>& nodes) { - for (size_t i = 0; i < nodes.size(); i++) { - if (nodes[i].key >= 0.0f) return i; - } - return nodes.size(); - } - - enum ChildrenSelectMode { - kNegativeZChildren, - kPositiveZChildren - }; - - void outputViewProperties(const int level); - - void applyViewPropertyTransforms(mat4& matrix, bool true3dTransform = false); - - void computeOrderingImpl(DrawDisplayListOp* opState, - Vector<DrawDisplayListOp*>* compositedChildrenOfProjectionSurface, - const mat4* transformFromProjectionSurface); - - template <class T> - inline void setViewProperties(OpenGLRenderer& renderer, T& handler, const int level); - - void buildZSortedChildList(Vector<ZDrawDisplayListOpPair>& zTranslatedNodes); - - template <class T> - inline void iterate3dChildren(const Vector<ZDrawDisplayListOpPair>& zTranslatedNodes, - ChildrenSelectMode mode, OpenGLRenderer& renderer, T& handler); - - template <class T> - inline void iterateProjectedChildren(OpenGLRenderer& renderer, T& handler, const int level); - - template <class T> - inline void iterate(OpenGLRenderer& renderer, T& handler, const int level); - - class TextContainer { - public: - size_t length() const { - return mByteLength; - } - - const char* text() const { - return (const char*) mText; - } - - size_t mByteLength; - const char* mText; - }; - - String8 mName; - bool mDestroyed; // used for debugging crash, TODO: remove once invalid state crash fixed - - RenderProperties mProperties; - DisplayListData* mDisplayListData; - - /** - * Draw time state - these properties are only set and used during rendering - */ - - // for projection surfaces, contains a list of all children items - Vector<DrawDisplayListOp*> mProjectedNodes; -}; // class DisplayList - }; // namespace uirenderer }; // namespace android |