summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderNode.cpp
diff options
context:
space:
mode:
author Bo Liu <boliu@google.com> 2014-07-28 21:44:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-07-24 20:48:02 +0000
commit590b8d3601a518f6c3e00a28e88add36142bde22 (patch)
tree49028c5103fa9c63d725a983c912ae1fe30d3ed7 /libs/hwui/RenderNode.cpp
parent9679410db578e179c7559e7a52bb21c8082e9631 (diff)
parent09d5cddf67b676018700bcc10a72242641cd7eec (diff)
Merge "Add kModeSync" into lmp-dev
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r--libs/hwui/RenderNode.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index 01c7761b299d..1df205584744 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -78,7 +78,7 @@ void RenderNode::setStagingDisplayList(DisplayListData* data) {
delete mStagingDisplayListData;
mStagingDisplayListData = data;
if (mStagingDisplayListData) {
- Caches::getInstance().registerFunctors(mStagingDisplayListData->functorCount);
+ Caches::getInstance().registerFunctors(mStagingDisplayListData->functors.size());
}
}
@@ -254,6 +254,11 @@ void RenderNode::pushStagingDisplayListChanges(TreeInfo& info) {
deleteDisplayListData();
mDisplayListData = mStagingDisplayListData;
mStagingDisplayListData = NULL;
+ if (mDisplayListData) {
+ for (size_t i = 0; i < mDisplayListData->functors.size(); i++) {
+ (*mDisplayListData->functors[i])(DrawGlInfo::kModeSync, NULL);
+ }
+ }
damageSelf(info);
}
}
@@ -271,7 +276,7 @@ void RenderNode::deleteDisplayListData() {
void RenderNode::prepareSubTree(TreeInfo& info, DisplayListData* subtree) {
if (subtree) {
TextureCache& cache = Caches::getInstance().textureCache;
- info.out.hasFunctors |= subtree->functorCount;
+ info.out.hasFunctors |= subtree->functors.size();
// TODO: Fix ownedBitmapResources to not require disabling prepareTextures
// and thus falling out of async drawing path.
if (subtree->ownedBitmapResources.size()) {