diff options
author | Chris Craik <ccraik@google.com> | 2014-08-21 17:41:57 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2014-08-25 15:35:40 -0700 |
commit | 8afd0f245cc0c4a0366f39f41b5f78e47ee83be3 (patch) | |
tree | 220f6cac192fe822650d4676ef3996da5fb02ad9 /libs/hwui/DisplayListOp.h | |
parent | cc3e5d5cd197ad45e051e31fd85af28588af4cf7 (diff) | |
download | frameworks_base-8afd0f245cc0c4a0366f39f41b5f78e47ee83be3.zip frameworks_base-8afd0f245cc0c4a0366f39f41b5f78e47ee83be3.tar.gz frameworks_base-8afd0f245cc0c4a0366f39f41b5f78e47ee83be3.tar.bz2 |
Create z reordering boundaries around dispatchDraw
bug:16012254
This means rendernodes with a Z will no longer be drawn at the end of
their parent's DisplayList, but at the end of the associated reorder
region (DisplayListData::Chunk).
Change-Id: Ia033fee9d9a4db567b2a8d5e90fc57a4d0a64544
Diffstat (limited to 'libs/hwui/DisplayListOp.h')
-rw-r--r-- | libs/hwui/DisplayListOp.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libs/hwui/DisplayListOp.h b/libs/hwui/DisplayListOp.h index 5f533a7..8818510 100644 --- a/libs/hwui/DisplayListOp.h +++ b/libs/hwui/DisplayListOp.h @@ -1445,6 +1445,7 @@ private: class DrawRenderNodeOp : public DrawBoundedOp { friend class RenderNode; // grant RenderNode access to info of child + friend class DisplayListData; // grant DisplayListData access to info of child public: DrawRenderNodeOp(RenderNode* renderNode, int flags, const mat4& transformFromParent) : DrawBoundedOp(0, 0, renderNode->getWidth(), renderNode->getHeight(), 0), @@ -1452,13 +1453,14 @@ public: virtual void defer(DeferStateStruct& deferStruct, int saveCount, int level, bool useQuickReject) { - if (mRenderNode && mRenderNode->isRenderable() && !mSkipInOrderDraw) { + if (mRenderNode->isRenderable() && !mSkipInOrderDraw) { mRenderNode->defer(deferStruct, level + 1); } } + virtual void replay(ReplayStateStruct& replayStruct, int saveCount, int level, bool useQuickReject) { - if (mRenderNode && mRenderNode->isRenderable() && !mSkipInOrderDraw) { + if (mRenderNode->isRenderable() && !mSkipInOrderDraw) { mRenderNode->replay(replayStruct, level + 1); } } @@ -1469,7 +1471,7 @@ public: } virtual void output(int level, uint32_t logFlags) const { - OP_LOG("Draw Display List %p, flags %#x", mRenderNode, mFlags); + OP_LOG("Draw RenderNode %p %s, flags %#x", mRenderNode, mRenderNode->getName(), mFlags); if (mRenderNode && (logFlags & kOpLogFlag_Recurse)) { mRenderNode->output(level + 1); } |