| Index: cc/trees/layer_tree.h
|
| diff --git a/cc/trees/layer_tree.h b/cc/trees/layer_tree.h
|
| index bb7e3d2adbf9af2cae7c996edfa1617bc75cf454..10044dd03f1c6698ebd2d49b9956698fea4e8636 100644
|
| --- a/cc/trees/layer_tree.h
|
| +++ b/cc/trees/layer_tree.h
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "base/macros.h"
|
| #include "cc/base/cc_export.h"
|
| +#include "cc/trees/mutator_host_client.h"
|
|
|
| namespace cc {
|
|
|
| @@ -20,13 +21,15 @@ class LayerUpdate;
|
|
|
| class AnimationHost;
|
| class Layer;
|
| +class LayerTreeHost;
|
|
|
| -class CC_EXPORT LayerTree {
|
| +class CC_EXPORT LayerTree : public MutatorHostClient {
|
| public:
|
| using LayerSet = std::unordered_set<Layer*>;
|
| using LayerIdMap = std::unordered_map<int, Layer*>;
|
|
|
| - explicit LayerTree(std::unique_ptr<AnimationHost> animation_host);
|
| + LayerTree(std::unique_ptr<AnimationHost> animation_host,
|
| + LayerTreeHost* layer_tree_host);
|
| ~LayerTree();
|
|
|
| void RegisterLayer(Layer* layer);
|
| @@ -47,6 +50,44 @@ class CC_EXPORT LayerTree {
|
|
|
| bool in_paint_layer_contents() const { return in_paint_layer_contents_; }
|
|
|
| + Layer* LayerByElementId(ElementId element_id) const;
|
| + void AddToElementMap(Layer* layer);
|
| + void RemoveFromElementMap(Layer* layer);
|
| +
|
| + // MutatorHostClient implementation.
|
| + bool IsElementInList(ElementId element_id,
|
| + ElementListType list_type) const override;
|
| + void SetMutatorsNeedCommit() override;
|
| + void SetMutatorsNeedRebuildPropertyTrees() override;
|
| + void SetElementFilterMutated(ElementId element_id,
|
| + ElementListType list_type,
|
| + const FilterOperations& filters) override;
|
| + void SetElementOpacityMutated(ElementId element_id,
|
| + ElementListType list_type,
|
| + float opacity) override;
|
| + void SetElementTransformMutated(ElementId element_id,
|
| + ElementListType list_type,
|
| + const gfx::Transform& transform) override;
|
| + void SetElementScrollOffsetMutated(
|
| + ElementId element_id,
|
| + ElementListType list_type,
|
| + const gfx::ScrollOffset& scroll_offset) override;
|
| + void ElementTransformIsAnimatingChanged(ElementId element_id,
|
| + ElementListType list_type,
|
| + AnimationChangeType change_type,
|
| + bool is_animating) override;
|
| + void ElementOpacityIsAnimatingChanged(ElementId element_id,
|
| + ElementListType list_type,
|
| + AnimationChangeType change_type,
|
| + bool is_animating) override;
|
| + void ElementFilterIsAnimatingChanged(ElementId element_id,
|
| + ElementListType list_type,
|
| + AnimationChangeType change_type,
|
| + bool is_animating) override;
|
| + void ScrollOffsetAnimationFinished() override {}
|
| + gfx::ScrollOffset GetScrollOffsetForAnimation(
|
| + ElementId element_id) const override;
|
| +
|
| private:
|
| friend class LayerTreeHostSerializationTest;
|
|
|
| @@ -56,9 +97,13 @@ class CC_EXPORT LayerTree {
|
| // Layer id to Layer map.
|
| LayerIdMap layer_id_map_;
|
|
|
| + using ElementLayersMap = std::unordered_map<ElementId, Layer*, ElementIdHash>;
|
| + ElementLayersMap element_layers_map_;
|
| +
|
| bool in_paint_layer_contents_;
|
|
|
| std::unique_ptr<AnimationHost> animation_host_;
|
| + LayerTreeHost* layer_tree_host_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(LayerTree);
|
| };
|
|
|