diff options
author | Chris Craik <ccraik@google.com> | 2015-10-28 16:50:44 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2015-11-02 12:59:38 -0800 |
commit | 0b7e8245db728d127ada698be63d78b33fc6e4da (patch) | |
tree | b7138962e159b3359cb08735098d34779a5ce78e /libs/hwui/RenderNode.h | |
parent | 8462bad554c2c0f5639c00dd7f1f32e9567c8e04 (diff) |
Initial HW layer support in new reorderer/renderer
Shares vast majority of clipped savelayer code, with only minor
differences in lifecycle.
Doesn't yet handle fill region, resize, or window transform.
Change-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a
Diffstat (limited to 'libs/hwui/RenderNode.h')
-rw-r--r-- | libs/hwui/RenderNode.h | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/libs/hwui/RenderNode.h b/libs/hwui/RenderNode.h index 57e41c611547..3500cb200a51 100644 --- a/libs/hwui/RenderNode.h +++ b/libs/hwui/RenderNode.h @@ -44,13 +44,22 @@ namespace android { namespace uirenderer { class CanvasState; -class DisplayListOp; class DisplayListCanvas; +class DisplayListOp; class OpenGLRenderer; +class OpReorderer; class Rect; -class Layer; class SkiaShader; + +#if HWUI_NEW_OPS +class OffscreenBuffer; +typedef OffscreenBuffer layer_t; +#else +class Layer; +typedef Layer layer_t; +#endif + class ClipRectOp; class SaveLayerOp; class SaveOp; @@ -162,11 +171,11 @@ public: return mStagingProperties; } - int getWidth() { + uint32_t getWidth() { return properties().getWidth(); } - int getHeight() { + uint32_t getHeight() { return properties().getHeight(); } @@ -193,9 +202,13 @@ public: } // Only call if RenderNode has DisplayList... - const DisplayList& getDisplayList() const { - return *mDisplayList; + const DisplayList* getDisplayList() const { + return mDisplayList; } +#if HWUI_NEW_OPS + OffscreenBuffer* getLayer() const { return mLayer; } + OffscreenBuffer** getLayerHandle() { return &mLayer; } // ugh... +#endif private: typedef key_value_pair_t<float, DrawRenderNodeOp*> ZDrawRenderNodeOpPair; @@ -262,7 +275,9 @@ private: void pushStagingPropertiesChanges(TreeInfo& info); void pushStagingDisplayListChanges(TreeInfo& info); void prepareSubTree(TreeInfo& info, bool functorsNeedLayer, DisplayList* subtree); +#if !HWUI_NEW_OPS void applyLayerPropertiesToLayer(TreeInfo& info); +#endif void prepareLayer(TreeInfo& info, uint32_t dirtyMask); void pushLayerUpdate(TreeInfo& info); void deleteDisplayList(); @@ -287,7 +302,7 @@ private: // Owned by RT. Lifecycle is managed by prepareTree(), with the exception // being in ~RenderNode() which may happen on any thread. - Layer* mLayer; + layer_t* mLayer = nullptr; /** * Draw time state - these properties are only set and used during rendering |