| Index: ui/compositor/layer.h
|
| diff --git a/ui/compositor/layer.h b/ui/compositor/layer.h
|
| index 7c7e4e32562c1899c69a438587c10cc6aaeafea6..a33b21cc082451e7f5f96aaa0fc16429faf41ec6 100644
|
| --- a/ui/compositor/layer.h
|
| +++ b/ui/compositor/layer.h
|
| @@ -28,6 +28,7 @@
|
| #include "ui/compositor/compositor.h"
|
| #include "ui/compositor/layer_animation_delegate.h"
|
| #include "ui/compositor/layer_delegate.h"
|
| +#include "ui/compositor/layer_observer.h"
|
| #include "ui/compositor/layer_type.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| #include "ui/gfx/image/image_skia.h"
|
| @@ -52,7 +53,6 @@ namespace ui {
|
|
|
| class Compositor;
|
| class LayerAnimator;
|
| -class LayerObserver;
|
| class LayerOwner;
|
| class LayerThreadedAnimationDelegate;
|
|
|
| @@ -68,6 +68,7 @@ class LayerThreadedAnimationDelegate;
|
| // NULL, but the children are not deleted.
|
| class COMPOSITOR_EXPORT Layer
|
| : public LayerAnimationDelegate,
|
| + public LayerObserver,
|
| NON_EXPORTED_BASE(public cc::ContentLayerClient),
|
| NON_EXPORTED_BASE(public cc::TextureLayerClient),
|
| NON_EXPORTED_BASE(public cc::LayerClient) {
|
| @@ -76,6 +77,9 @@ class COMPOSITOR_EXPORT Layer
|
| explicit Layer(LayerType type);
|
| ~Layer() override;
|
|
|
| + // Note that only solid color and surface content is copied.
|
| + std::unique_ptr<Layer> Clone() const;
|
| +
|
| // Retrieves the Layer's compositor. The Layer will walk up its parent chain
|
| // to locate it. Returns NULL if the Layer is not attached to a compositor.
|
| Compositor* GetCompositor() {
|
| @@ -294,6 +298,13 @@ class COMPOSITOR_EXPORT Layer
|
| float scale,
|
| gfx::Size frame_size_in_dip);
|
|
|
| + // Returns a new layer that mirrors this layer and is optionally synchronized
|
| + // with the bounds thereof. Note that children are not mirrored, and that the
|
| + // content is only mirrored if painted by a delegate or backed by a surface.
|
| + std::unique_ptr<Layer> Mirror();
|
| +
|
| + void set_sync_bounds(bool sync_bounds) { sync_bounds_ = sync_bounds; }
|
| +
|
| bool has_external_content() {
|
| return texture_layer_.get() || surface_layer_.get();
|
| }
|
| @@ -303,7 +314,7 @@ class COMPOSITOR_EXPORT Layer
|
|
|
| // Sets the layer's fill color. May only be called for LAYER_SOLID_COLOR.
|
| void SetColor(SkColor color);
|
| - SkColor GetTargetColor();
|
| + SkColor GetTargetColor() const;
|
| SkColor background_color() const;
|
|
|
| // Updates the nine patch layer's image, aperture and border. May only be
|
| @@ -414,6 +425,9 @@ class COMPOSITOR_EXPORT Layer
|
| LayerThreadedAnimationDelegate* GetThreadedAnimationDelegate() override;
|
| LayerAnimatorCollection* GetLayerAnimatorCollection() override;
|
|
|
| + // LayerObserver:
|
| + void LayerDestroyed(Layer* layer) override;
|
| +
|
| // Creates a corresponding composited layer for |type_|.
|
| void CreateCcLayer();
|
|
|
| @@ -442,6 +456,12 @@ class COMPOSITOR_EXPORT Layer
|
| // This layer's children, in bottom-to-top stacking order.
|
| std::vector<Layer*> children_;
|
|
|
| + class LayerMirror;
|
| + std::vector<std::unique_ptr<LayerMirror>> mirrors_;
|
| +
|
| + // If true, changes to the bounds of this layer are propagated to mirrors.
|
| + bool sync_bounds_ = false;
|
| +
|
| gfx::Rect bounds_;
|
| gfx::Vector2dF subpixel_position_offset_;
|
|
|
|
|