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

Unified Diff: cc/animation/animation_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: Add ported unittests. 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
Index: cc/animation/animation_host.cc
diff --git a/cc/animation/animation_host.cc b/cc/animation/animation_host.cc
index 10f3202b72f9f11729c030268dd5a8f6d9e5a86b..4c709bcd6ffaaa26aee7aaa8a3b554f248d1e9f5 100644
--- a/cc/animation/animation_host.cc
+++ b/cc/animation/animation_host.cc
@@ -10,6 +10,7 @@
#include "cc/animation/animation_registrar.h"
#include "cc/animation/animation_timeline.h"
#include "cc/trees/layer_tree_mutators_client.h"
+#include "ui/gfx/geometry/box_f.h"
namespace cc {
@@ -153,4 +154,178 @@ AnimationPlayer* AnimationHost::GetPlayerForLayerId(int layer_id) const {
return iter == layer_to_player_map_.end() ? nullptr : iter->second;
}
+void AnimationHost::SetSupportsScrollAnimations(
+ bool supports_scroll_animations) {
+ animation_registrar_->set_supports_scroll_animations(
+ supports_scroll_animations);
+}
+
+bool AnimationHost::GetSupportsScrollAnimations() const {
ajuma 2015/04/21 17:57:57 Nit: s/GetSupportsScrollAnimations/SupportsScrollA
loyso (OOO) 2015/04/22 01:08:11 Acknowledged.
+ return animation_registrar_->supports_scroll_animations();
+}
+
+bool AnimationHost::NeedsAnimateLayers() const {
+ return animation_registrar_->needs_animate_layers();
+}
+
+bool AnimationHost::ActivateAnimations() {
+ return animation_registrar_->ActivateAnimations();
+}
+
+bool AnimationHost::AnimateLayers(base::TimeTicks monotonic_time) {
+ return animation_registrar_->AnimateLayers(monotonic_time);
+}
+
+bool AnimationHost::UpdateAnimationState(bool start_ready_animations,
+ AnimationEventsVector* events) {
+ return animation_registrar_->UpdateAnimationState(start_ready_animations,
+ events);
+}
+
+scoped_ptr<AnimationEventsVector> AnimationHost::CreateEvents() {
+ return animation_registrar_->CreateEvents();
+}
+
+void AnimationHost::SetAnimationEvents(
+ scoped_ptr<AnimationEventsVector> events) {
+ return animation_registrar_->SetAnimationEvents(events.Pass());
+}
+
+bool AnimationHost::IsAnimatingFilterProperty(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
loyso (OOO) 2015/04/22 01:27:30 We have a hash look-up for such a request. The num
+ return player
+ ? player->layer_animation_controller()->IsAnimatingProperty(
+ Animation::FILTER)
+ : false;
+}
+
+bool AnimationHost::IsAnimatingOpacityProperty(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()->IsAnimatingProperty(
+ Animation::OPACITY)
+ : false;
+}
+
+bool AnimationHost::IsAnimatingTransformProperty(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()->IsAnimatingProperty(
+ Animation::TRANSFORM)
+ : false;
+}
+
+bool AnimationHost::FilterIsAnimatingOnImplOnly(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ if (!player)
+ return false;
+
+ Animation* animation =
+ player->layer_animation_controller()->GetAnimation(Animation::FILTER);
+ return animation && animation->is_impl_only();
+}
+
+bool AnimationHost::OpacityIsAnimatingOnImplOnly(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ if (!player)
+ return false;
+
+ Animation* animation =
+ player->layer_animation_controller()->GetAnimation(Animation::OPACITY);
+ return animation && animation->is_impl_only();
+}
+
+bool AnimationHost::TransformIsAnimatingOnImplOnly(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ if (!player)
+ return false;
+
+ Animation* animation =
+ player->layer_animation_controller()->GetAnimation(Animation::TRANSFORM);
+ return animation && animation->is_impl_only();
+}
+
+bool AnimationHost::HasFilterAnimationThatInflatesBounds(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->HasFilterAnimationThatInflatesBounds()
+ : false;
+}
+
+bool AnimationHost::HasTransformAnimationThatInflatesBounds(
+ int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->HasTransformAnimationThatInflatesBounds()
+ : false;
+}
+
+bool AnimationHost::HasAnimationThatInflatesBounds(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->HasAnimationThatInflatesBounds()
+ : false;
+}
+
+bool AnimationHost::FilterAnimationBoundsForBox(int layer_id,
+ const gfx::BoxF& box,
+ gfx::BoxF* bounds) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->FilterAnimationBoundsForBox(box, bounds)
+ : false;
+}
+
+bool AnimationHost::TransformAnimationBoundsForBox(int layer_id,
+ const gfx::BoxF& box,
+ gfx::BoxF* bounds) const {
+ *bounds = gfx::BoxF();
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->TransformAnimationBoundsForBox(box, bounds)
+ : true;
+}
+
+bool AnimationHost::HasOnlyTranslationTransforms(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->HasOnlyTranslationTransforms()
+ : true;
+}
+
+bool AnimationHost::AnimationsPreserveAxisAlignment(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()
+ ->AnimationsPreserveAxisAlignment()
+ : true;
+}
+
+bool AnimationHost::MaximumTargetScale(int layer_id, float* max_scale) const {
+ *max_scale = 0.f;
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player
+ ? player->layer_animation_controller()->MaximumTargetScale(
+ max_scale)
+ : true;
+}
+
+bool AnimationHost::HasAnyAnimation(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player ? player->layer_animation_controller()->has_any_animation()
+ : false;
+}
+
+bool AnimationHost::HasActiveAnimation(int layer_id) const {
+ AnimationPlayer* player = GetPlayerForLayerId(layer_id);
+ return player ? player->layer_animation_controller()->HasActiveAnimation()
+ : false;
+}
+
} // namespace cc
« no previous file with comments | « cc/animation/animation_host.h ('k') | cc/blink/web_layer_impl.cc » ('j') | cc/layers/layer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698