summaryrefslogtreecommitdiff
path: root/libs/hwui/DisplayList.h
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2014-03-18 09:22:59 -0700
committerJohn Reck <jreck@google.com>2014-03-19 16:40:04 -0700
commit113e0824d6bddf4376240681f9cf6a2deded9498 (patch)
tree2f69dbe16fef8fa7ccae1d1fe2ee68e1c162d062 /libs/hwui/DisplayList.h
parentdb62c232b953fd882a8f55daf736ae4098e8f278 (diff)
Move RenderNode to own file
Change-Id: I9380d161fd3ddd7b569c262dd8e7aa0c96151b1e
Diffstat (limited to 'libs/hwui/DisplayList.h')
-rw-r--r--libs/hwui/DisplayList.h130
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