Index: cc/layer.h |
diff --git a/cc/layer.h b/cc/layer.h |
index ede61205538f49bc29e046a2c7a9e14ccd8f34e0..c44797df98581d713abe2aae0bad455aeaa690cc 100644 |
--- a/cc/layer.h |
+++ b/cc/layer.h |
@@ -44,21 +44,14 @@ struct RenderingStats; |
// Base class for composited layers. Special layer types are derived from |
// this class. |
-class CC_EXPORT Layer : public base::RefCounted<Layer>, public LayerAnimationControllerClient { |
+class CC_EXPORT Layer : public base::RefCounted<Layer>, |
+ public LayerAnimationControllerObserver { |
public: |
typedef std::vector<scoped_refptr<Layer> > LayerList; |
static scoped_refptr<Layer> create(); |
- // LayerAnimationControllerClient implementation |
- virtual int id() const OVERRIDE; |
- virtual void setOpacityFromAnimation(float) OVERRIDE; |
- virtual float opacity() const OVERRIDE; |
- virtual void setTransformFromAnimation(const gfx::Transform&) OVERRIDE; |
- // A layer's transform operates layer space. That is, entirely in logical, |
- // non-page-scaled pixels (that is, they have page zoom baked in, but not page scale). |
- // The root layer is a special case -- it operates in physical pixels. |
- virtual const gfx::Transform& transform() const OVERRIDE; |
+ int id() const; |
Layer* rootLayer(); |
Layer* parent() { return m_parent; } |
@@ -100,6 +93,7 @@ public: |
virtual bool needsDisplay() const; |
void setOpacity(float); |
+ float opacity() const; |
bool opacityIsAnimating() const; |
void setFilters(const WebKit::WebFilterOperations&); |
@@ -129,6 +123,7 @@ public: |
const gfx::Transform& sublayerTransform() const { return m_sublayerTransform; } |
void setTransform(const gfx::Transform&); |
+ const gfx::Transform& transform() const; |
bool transformIsAnimating() const; |
DrawProperties<Layer, RenderSurface>& drawProperties() { return m_drawProperties; } |
@@ -267,8 +262,8 @@ public: |
void resumeAnimations(double monotonicTime); |
LayerAnimationController* layerAnimationController() { return m_layerAnimationController.get(); } |
- void setLayerAnimationController(scoped_ptr<LayerAnimationController>); |
- scoped_ptr<LayerAnimationController> releaseLayerAnimationController(); |
+ void setLayerAnimationController(scoped_refptr<LayerAnimationController>); |
+ scoped_refptr<LayerAnimationController> releaseLayerAnimationController(); |
void setLayerAnimationDelegate(WebKit::WebAnimationDelegate* layerAnimationDelegate) { m_layerAnimationDelegate = layerAnimationDelegate; } |
@@ -331,6 +326,10 @@ private: |
// This should only be called from removeFromParent. |
void removeChild(Layer*); |
+ // LayerAnimationControllerObserver implementation. |
+ virtual void OnOpacityAnimated(float) OVERRIDE; |
+ virtual void OnTransformAnimated(const gfx::Transform&) OVERRIDE; |
+ |
LayerList m_children; |
Layer* m_parent; |
@@ -339,7 +338,7 @@ private: |
// updated via setLayerTreeHost() if a layer moves between trees. |
LayerTreeHost* m_layerTreeHost; |
- scoped_ptr<LayerAnimationController> m_layerAnimationController; |
+ scoped_refptr<LayerAnimationController> m_layerAnimationController; |
// Layer properties. |
gfx::Size m_bounds; |