summaryrefslogtreecommitdiffstats
path: root/libs/hwui/DisplayListOp.h
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2014-08-21 17:41:57 -0700
committerChris Craik <ccraik@google.com>2014-08-25 15:35:40 -0700
commit8afd0f245cc0c4a0366f39f41b5f78e47ee83be3 (patch)
tree220f6cac192fe822650d4676ef3996da5fb02ad9 /libs/hwui/DisplayListOp.h
parentcc3e5d5cd197ad45e051e31fd85af28588af4cf7 (diff)
downloadframeworks_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.h8
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);
}