Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: cc/trees/layer_tree_host.cc

Issue 1010663002: CC Animations: Redirect all compositor animation requests to AnimationHost. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@introduce
Patch Set: Rebase and fix conflicts (HasPotentiallyRunningTransformAnimation) Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host.cc
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
index 0461aa03a06ada637e8928dec68fa4001321aa40..c33602307b1f21b2f8b21144cab7b7ec9b7c3b80 100644
--- a/cc/trees/layer_tree_host.cc
+++ b/cc/trees/layer_tree_host.cc
@@ -132,7 +132,8 @@ LayerTreeHost::LayerTreeHost(
task_graph_runner_(task_graph_runner),
surface_id_namespace_(0u),
next_surface_sequence_(1u) {
- if (settings_.accelerated_animation_enabled)
+ if (settings_.accelerated_animation_enabled &&
+ !settings.use_compositor_animation_timelines)
animation_registrar_ = AnimationRegistrar::Create();
rendering_stats_instrumentation_->set_record_rendering_stats(
debug_state_.RecordRenderingStats());
@@ -174,8 +175,13 @@ void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) {
proxy_ = proxy.Pass();
proxy_->Start();
if (settings_.accelerated_animation_enabled) {
- animation_registrar_->set_supports_scroll_animations(
- proxy_->SupportsImplScrolling());
+ if (animation_registrar_)
+ animation_registrar_->set_supports_scroll_animations(
+ proxy_->SupportsImplScrolling());
+
+ if (animation_host_)
+ animation_host_->SetSupportsScrollAnimations(
+ proxy_->SupportsImplScrolling());
}
}
@@ -559,7 +565,10 @@ void LayerTreeHost::SetNextCommitForcesRedraw() {
void LayerTreeHost::SetAnimationEvents(
scoped_ptr<AnimationEventsVector> events) {
DCHECK(proxy_->IsMainThread());
- animation_registrar_->SetAnimationEvents(events.Pass());
+ if (animation_host_)
+ animation_host_->SetAnimationEvents(events.Pass());
+ else
+ animation_registrar_->SetAnimationEvents(events.Pass());
}
void LayerTreeHost::SetRootLayer(scoped_refptr<Layer> root_layer) {
@@ -1164,11 +1173,16 @@ void LayerTreeHost::AnimateLayers(base::TimeTicks monotonic_time) {
return;
AnimationEventsVector events;
- if (animation_registrar_->AnimateLayers(monotonic_time)) {
- animation_registrar_->UpdateAnimationState(true, &events);
- if (!events.empty())
- property_trees_.needs_rebuild = true;
+ if (animation_host_) {
+ if (animation_host_->AnimateLayers(monotonic_time))
+ animation_host_->UpdateAnimationState(true, &events);
+ } else if (animation_registrar_) {
+ if (animation_registrar_->AnimateLayers(monotonic_time))
+ animation_registrar_->UpdateAnimationState(true, &events);
}
+
+ if (!events.empty())
+ property_trees_.needs_rebuild = true;
}
UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) {
@@ -1369,4 +1383,61 @@ void LayerTreeHost::SetLayerScrollOffsetMutated(
layer->OnScrollOffsetAnimated(scroll_offset);
}
+bool LayerTreeHost::ScrollOffsetAnimationWasInterrupted(
+ const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->ScrollOffsetAnimationWasInterrupted(layer->id())
+ : false;
+}
+
+bool LayerTreeHost::IsAnimatingFilterProperty(const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->IsAnimatingFilterProperty(layer->id())
+ : false;
+}
+
+bool LayerTreeHost::IsAnimatingOpacityProperty(const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->IsAnimatingOpacityProperty(layer->id())
+ : false;
+}
+
+bool LayerTreeHost::IsAnimatingTransformProperty(const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->IsAnimatingTransformProperty(layer->id())
+ : false;
+}
+
+bool LayerTreeHost::HasPotentiallyRunningOpacityAnimation(
+ const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->HasPotentiallyRunningOpacityAnimation(
+ layer->id())
+ : false;
+}
+
+bool LayerTreeHost::HasPotentiallyRunningTransformAnimation(
+ const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->HasPotentiallyRunningTransformAnimation(
+ layer->id())
+ : false;
+}
+
+bool LayerTreeHost::AnimationsPreserveAxisAlignment(const Layer* layer) const {
+ return animation_host_
+ ? animation_host_->AnimationsPreserveAxisAlignment(layer->id())
+ : true;
+}
+
+bool LayerTreeHost::HasAnyAnimation(const Layer* layer) const {
+ return animation_host_ ? animation_host_->HasAnyAnimation(layer->id())
+ : false;
+}
+
+bool LayerTreeHost::HasActiveAnimation(const Layer* layer) const {
+ return animation_host_ ? animation_host_->HasActiveAnimation(layer->id())
+ : false;
+}
+
} // namespace cc
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698