| Index: cc/layer_tree_host.h
|
| diff --git a/cc/layer_tree_host.h b/cc/layer_tree_host.h
|
| index 4423082fd3d2780db453dcc52669448dad1f27b4..21af798f4334bb7e76ee7b4f5711d838329fb8f5 100644
|
| --- a/cc/layer_tree_host.h
|
| +++ b/cc/layer_tree_host.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/time.h"
|
| #include "cc/animation_events.h"
|
| +#include "cc/animation_registrar.h"
|
| #include "cc/cc_export.h"
|
| #include "cc/layer_tree_host_client.h"
|
| #include "cc/layer_tree_host_common.h"
|
| @@ -36,6 +37,15 @@ struct hash<WebKit::WebGraphicsContext3D*> {
|
| }
|
| };
|
| } // namespace BASE_HASH_NAMESPACE
|
| +
|
| +namespace BASE_HASH_NAMESPACE {
|
| +template<>
|
| +struct hash<cc::LayerAnimationController*> {
|
| + size_t operator()(cc::LayerAnimationController* ptr) const {
|
| + return hash<size_t>()(reinterpret_cast<size_t>(ptr));
|
| + }
|
| +};
|
| +} // namespace BASE_HASH_NAMESPACE
|
| #endif // COMPILER
|
|
|
| namespace cc {
|
| @@ -113,7 +123,8 @@ struct CC_EXPORT RendererCapabilities {
|
| int maxTextureSize;
|
| };
|
|
|
| -class CC_EXPORT LayerTreeHost : public RateLimiterClient {
|
| +class CC_EXPORT LayerTreeHost : public RateLimiterClient,
|
| + public AnimationRegistrar {
|
| public:
|
| static scoped_ptr<LayerTreeHost> create(LayerTreeHostClient*, const LayerTreeSettings&, scoped_ptr<Thread> implThread);
|
| virtual ~LayerTreeHost();
|
| @@ -190,7 +201,6 @@ public:
|
| bool commitRequested() const;
|
|
|
| void setAnimationEvents(scoped_ptr<AnimationEventsVector>, base::Time wallClockTime);
|
| - virtual void didAddAnimation();
|
|
|
| Layer* rootLayer() { return m_rootLayer.get(); }
|
| const Layer* rootLayer() const { return m_rootLayer.get(); }
|
| @@ -248,8 +258,15 @@ protected:
|
| bool initialize(scoped_ptr<Thread> implThread);
|
| bool initializeForTesting(scoped_ptr<Proxy> proxyForTesting);
|
|
|
| + // AnimationRegistar implementation.
|
| + virtual void DidActivateAnimationController(LayerAnimationController*) OVERRIDE;
|
| + virtual void DidDeactivateAnimationController(LayerAnimationController*) OVERRIDE;
|
| + virtual void RegisterAnimationController(LayerAnimationController*) OVERRIDE;
|
| + virtual void UnregisterAnimationController(LayerAnimationController*) OVERRIDE;
|
| +
|
| private:
|
| typedef std::vector<scoped_refptr<Layer> > LayerList;
|
| + typedef base::hash_set<LayerAnimationController*> AnimationControllerSet;
|
|
|
| bool initializeProxy(scoped_ptr<Proxy> proxy);
|
| void initializeRenderer();
|
| @@ -271,7 +288,6 @@ private:
|
| void setAnimationEventsRecursive(const AnimationEventsVector&, Layer*, base::Time wallClockTime);
|
|
|
| bool m_animating;
|
| - bool m_needsAnimateLayers;
|
| bool m_needsFullTreeSync;
|
|
|
| base::CancelableClosure m_prepaintCallback;
|
| @@ -318,6 +334,12 @@ private:
|
|
|
| static bool s_needsFilterContext;
|
|
|
| + AnimationControllerSet m_activeAnimationControllers;
|
| +
|
| +#if !defined(NDEBUG)
|
| + AnimationControllerSet m_allAnimationControllers;
|
| +#endif
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(LayerTreeHost);
|
| };
|
|
|
|
|