diff options
author | 2014-04-04 16:20:08 -0700 | |
---|---|---|
committer | 2014-04-07 14:53:08 -0700 | |
commit | 087bc0c14bdccf7c258dce0cdef46a69a839b427 (patch) | |
tree | cab73aeed8e9a0bc8e74243a35c026ab0b321e08 /libs/hwui/RenderNode.cpp | |
parent | ce16215d7b4d9bedfc62e172dc44ab439afef13a (diff) |
Refcount RenderNode
Change-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r-- | libs/hwui/RenderNode.cpp | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index 663b67ef053c..501007679308 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -59,17 +59,6 @@ RenderNode::~RenderNode() { delete mDisplayListData; } -void RenderNode::destroyDisplayListDeferred(RenderNode* displayList) { - if (displayList) { - if (Caches::hasInstance()) { - DISPLAY_LIST_LOGD("Deferring display list destruction"); - Caches::getInstance().deleteDisplayListDeferred(displayList); - } else { - delete displayList; - } - } -} - void RenderNode::setData(DisplayListData* data) { delete mDisplayListData; mDisplayListData = data; @@ -104,8 +93,8 @@ void RenderNode::updateProperties() { } if (mDisplayListData) { - for (size_t i = 0; i < mDisplayListData->children.size(); i++) { - RenderNode* childNode = mDisplayListData->children[i]->mDisplayList; + for (size_t i = 0; i < mDisplayListData->children().size(); i++) { + RenderNode* childNode = mDisplayListData->children()[i]->mDisplayList; childNode->updateProperties(); } } @@ -118,8 +107,8 @@ bool RenderNode::hasFunctors() { return true; } - for (size_t i = 0; i < mDisplayListData->children.size(); i++) { - RenderNode* childNode = mDisplayListData->children[i]->mDisplayList; + for (size_t i = 0; i < mDisplayListData->children().size(); i++) { + RenderNode* childNode = mDisplayListData->children()[i]->mDisplayList; if (childNode->hasFunctors()) { return true; } @@ -248,8 +237,8 @@ void RenderNode::computeOrdering() { // TODO: create temporary DDLOp and call computeOrderingImpl on top DisplayList so that // transform properties are applied correctly to top level children if (mDisplayListData == NULL) return; - for (unsigned int i = 0; i < mDisplayListData->children.size(); i++) { - DrawDisplayListOp* childOp = mDisplayListData->children[i]; + for (unsigned int i = 0; i < mDisplayListData->children().size(); i++) { + DrawDisplayListOp* childOp = mDisplayListData->children()[i]; childOp->mDisplayList->computeOrderingImpl(childOp, &mProjectedNodes, &mat4::identity()); } @@ -277,11 +266,11 @@ void RenderNode::computeOrderingImpl( opState->mSkipInOrderDraw = false; } - if (mDisplayListData->children.size() > 0) { + if (mDisplayListData->children().size() > 0) { const bool isProjectionReceiver = mDisplayListData->projectionReceiveIndex >= 0; bool haveAppliedPropertiesToProjection = false; - for (unsigned int i = 0; i < mDisplayListData->children.size(); i++) { - DrawDisplayListOp* childOp = mDisplayListData->children[i]; + for (unsigned int i = 0; i < mDisplayListData->children().size(); i++) { + DrawDisplayListOp* childOp = mDisplayListData->children()[i]; RenderNode* child = childOp->mDisplayList; Vector<DrawDisplayListOp*>* projectionChildren = NULL; @@ -375,10 +364,10 @@ void RenderNode::replayNodeInParent(ReplayStateStruct& replayStruct, const int l } void RenderNode::buildZSortedChildList(Vector<ZDrawDisplayListOpPair>& zTranslatedNodes) { - if (mDisplayListData == NULL || mDisplayListData->children.size() == 0) return; + if (mDisplayListData == NULL || mDisplayListData->children().size() == 0) return; - for (unsigned int i = 0; i < mDisplayListData->children.size(); i++) { - DrawDisplayListOp* childOp = mDisplayListData->children[i]; + for (unsigned int i = 0; i < mDisplayListData->children().size(); i++) { + DrawDisplayListOp* childOp = mDisplayListData->children()[i]; RenderNode* child = childOp->mDisplayList; float childZ = child->properties().getTranslationZ(); |