Merge "Make sure VD animation push staging happens only in MODE_FULL" into nyc-mr1-dev
This commit is contained in:
@@ -255,7 +255,6 @@ public:
|
||||
|
||||
void runVectorDrawableAnimators(AnimationContext* context) {
|
||||
for (auto it = mVectorDrawableAnimators.begin(); it != mVectorDrawableAnimators.end();) {
|
||||
(*it)->pushStaging(*context);
|
||||
if ((*it)->animate(*context)) {
|
||||
it = mVectorDrawableAnimators.erase(it);
|
||||
} else {
|
||||
@@ -264,6 +263,12 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void pushStagingVectorDrawableAnimators(AnimationContext* context) {
|
||||
for (auto& anim : mVectorDrawableAnimators) {
|
||||
anim->pushStaging(*context);
|
||||
}
|
||||
}
|
||||
|
||||
void destroy() {
|
||||
for (auto& renderNode : mPendingAnimatingRenderNodes) {
|
||||
renderNode->animators().endAllStagingAnimators();
|
||||
@@ -328,6 +333,9 @@ public:
|
||||
// already ran in each RenderNode. Note that these animators don't damage the RenderNodes.
|
||||
// The damaging is done in prepareTree as needed after checking whether a VD has been
|
||||
// modified.
|
||||
if (mode == TreeInfo::MODE_FULL) {
|
||||
mRootNode->pushStagingVectorDrawableAnimators(this);
|
||||
}
|
||||
mRootNode->runVectorDrawableAnimators(this);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user