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

Unified Diff: ui/gfx/compositor/layer.h

Issue 8400059: Revert 107715 - Enable the new layer animation framework. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 2 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 | « ui/gfx/compositor/dummy_layer_animation_delegate.cc ('k') | ui/gfx/compositor/layer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/compositor/layer.h
===================================================================
--- ui/gfx/compositor/layer.h (revision 107719)
+++ ui/gfx/compositor/layer.h (working copy)
@@ -18,6 +18,7 @@
#include "ui/gfx/rect.h"
#include "ui/gfx/transform.h"
#include "ui/gfx/compositor/compositor.h"
+#include "ui/gfx/compositor/layer_animation_manager.h"
#include "ui/gfx/compositor/layer_animator_delegate.h"
#include "ui/gfx/compositor/layer_delegate.h"
@@ -25,9 +26,8 @@
namespace ui {
+class Animation;
class Compositor;
-class LayerAnimator;
-class LayerAnimationSequence;
class Texture;
// Layer manages a texture, transform and a set of child Layers. Any View that
@@ -84,23 +84,22 @@
// Returns true if this Layer contains |other| somewhere in its children.
bool Contains(const Layer* other) const;
- // The layer's animator is responsible for causing automatic animations when
- // properties are set. It also manages a queue of pending animations and
- // handles blending of animations. The layer takes ownership of the animator.
- void SetAnimator(LayerAnimator* animator);
+ // Sets the animation to use for changes to opacity, position or transform.
+ // That is, if you invoke this with non-NULL |animation| is started and any
+ // changes to opacity, position or transform are animated between the current
+ // value and target value. If the current animation is NULL or completed,
+ // changes are immediate. If the opacity, transform or bounds are changed
+ // and the animation is part way through, the animation is canceled and
+ // the bounds, opacity and transfrom and set to the target value.
+ // Layer takes ownership of |animation| and installs it's own delegate on the
+ // animation.
+ void SetAnimation(Animation* animation);
+ bool has_animation() const { return animator_.get() != NULL; }
- // Returns the layer's animator. Creates a default animator of one has not
- // been set. Will not return NULL.
- LayerAnimator* GetAnimator();
-
// The transform, relative to the parent.
- void SetTransform(const Transform& transform);
- const Transform& transform() const { return transform_; }
+ void SetTransform(const ui::Transform& transform);
+ const ui::Transform& transform() const { return transform_; }
- // Return the target transform if animator is running, or the current
- // transform otherwise.
- Transform GetTargetTransform() const;
-
// The bounds, relative to the parent.
void SetBounds(const gfx::Rect& bounds);
const gfx::Rect& bounds() const { return bounds_; }
@@ -114,10 +113,6 @@
float opacity() const { return opacity_; }
void SetOpacity(float opacity);
- // Return the target opacity if animator is running, or the current bounds
- // otherwise.
- float GetTargetOpacity() const;
-
// Sets the visibility of the Layer. A Layer may be visible but not
// drawn. This happens if any ancestor of a Layer is not visible.
void SetVisible(bool visible);
@@ -267,21 +262,22 @@
// should have valid alpha.
bool has_valid_alpha_channel() const { return !layer_updated_externally_; }
+ // If the animation is running and has progressed, it is stopped and all
+ // properties that are animated (except |property|) are immediately set to
+ // their target value.
+ void StopAnimatingIfNecessary(
+ LayerAnimationManager::AnimationProperty property);
+
// Following are invoked from the animation or if no animation exists to
// update the values immediately.
void SetBoundsImmediately(const gfx::Rect& bounds);
void SetTransformImmediately(const ui::Transform& transform);
void SetOpacityImmediately(float opacity);
- // Implementation of LayerAnimatorDelegate
- virtual void SetBoundsFromAnimation(const gfx::Rect& bounds) OVERRIDE;
- virtual void SetTransformFromAnimation(const Transform& transform) OVERRIDE;
- virtual void SetOpacityFromAnimation(float opacity) OVERRIDE;
- virtual void ScheduleDrawForAnimation() OVERRIDE;
- virtual const gfx::Rect& GetBoundsForAnimation() const OVERRIDE;
- virtual const Transform& GetTransformForAnimation() const OVERRIDE;
- virtual float GetOpacityForAnimation() const OVERRIDE;
- virtual void OnLayerAnimationEnded(LayerAnimationSequence* sequence) OVERRIDE;
+ // LayerAnimatorDelegate overrides:
+ virtual void SetBoundsFromAnimator(const gfx::Rect& bounds) OVERRIDE;
+ virtual void SetTransformFromAnimator(const Transform& transform) OVERRIDE;
+ virtual void SetOpacityFromAnimator(float opacity) OVERRIDE;
#if defined(USE_WEBKIT_COMPOSITOR)
void CreateWebLayer();
@@ -321,7 +317,7 @@
LayerDelegate* delegate_;
- scoped_ptr<LayerAnimator> animator_;
+ scoped_ptr<LayerAnimationManager> animator_;
#if defined(USE_WEBKIT_COMPOSITOR)
WebKit::WebLayer web_layer_;
« no previous file with comments | « ui/gfx/compositor/dummy_layer_animation_delegate.cc ('k') | ui/gfx/compositor/layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698