| Index: cc/layer_tree_host_impl.h
|
| diff --git a/cc/layer_tree_host_impl.h b/cc/layer_tree_host_impl.h
|
| index d4aa8f5a110950fbb61769d4188a6b9b2293efc7..aa56005a7538e854fcbd93788262b86e589fb6ef 100644
|
| --- a/cc/layer_tree_host_impl.h
|
| +++ b/cc/layer_tree_host_impl.h
|
| @@ -9,6 +9,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/input_handler.h"
|
| #include "cc/layer_sorter.h"
|
| @@ -113,8 +114,10 @@ private:
|
| class CC_EXPORT LayerTreeHostImpl : public InputHandlerClient,
|
| public RendererClient,
|
| public TileManagerClient,
|
| + public AnimationRegistrar,
|
| public NON_EXPORTED_BASE(WebKit::WebCompositorOutputSurfaceClient) {
|
| typedef std::vector<LayerImpl*> LayerList;
|
| + typedef base::hash_set<LayerAnimationController*> AnimationControllerSet;
|
|
|
| public:
|
| static scoped_ptr<LayerTreeHostImpl> create(const LayerTreeSettings&, LayerTreeHostImplClient*, Proxy*);
|
| @@ -240,9 +243,7 @@ public:
|
|
|
| bool hasTransparentBackground() const { return m_hasTransparentBackground; }
|
| void setHasTransparentBackground(bool transparent) { m_hasTransparentBackground = transparent; }
|
| -
|
| - bool needsAnimateLayers() const { return m_needsAnimateLayers; }
|
| - void setNeedsAnimateLayers() { m_needsAnimateLayers = true; }
|
| + bool needsAnimateLayers() const { return !m_activeAnimationControllers.empty(); }
|
|
|
| void setNeedsRedraw();
|
|
|
| @@ -333,6 +334,12 @@ private:
|
|
|
| void dumpRenderSurfaces(std::string*, int indent, const LayerImpl*) const;
|
|
|
| + // AnimationRegistar implementation.
|
| + virtual void ActivateAnimationController(LayerAnimationController*) OVERRIDE;
|
| + virtual void DeactivateAnimationController(LayerAnimationController*) OVERRIDE;
|
| + virtual void RegisterAnimationController(LayerAnimationController*) OVERRIDE;
|
| + virtual void UnregisterAnimationController(LayerAnimationController*) OVERRIDE;
|
| +
|
| scoped_ptr<GraphicsContext> m_context;
|
| scoped_ptr<ResourceProvider> m_resourceProvider;
|
| scoped_ptr<Renderer> m_renderer;
|
| @@ -356,7 +363,6 @@ private:
|
| bool m_hasTransparentBackground;
|
|
|
| // If this is true, it is necessary to traverse the layer tree ticking the animators.
|
| - bool m_needsAnimateLayers;
|
| bool m_pinchGestureActive;
|
| gfx::Point m_previousPinchAnchor;
|
|
|
| @@ -381,6 +387,12 @@ private:
|
|
|
| size_t m_cumulativeNumLayersDrawn;
|
|
|
| + AnimationControllerSet m_activeAnimationControllers;
|
| +
|
| +#if !defined(NDEBUG)
|
| + AnimationControllerSet m_allAnimationControllers;
|
| +#endif
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(LayerTreeHostImpl);
|
| };
|
|
|
|
|