| Index: cc/layers/surface_layer.h
|
| diff --git a/cc/layers/surface_layer.h b/cc/layers/surface_layer.h
|
| index 0b886ebe2c98c780f70db2b1cbd2ce3aac426e1e..429254967052d774fd4ec1ba30a76f60abdddfe4 100644
|
| --- a/cc/layers/surface_layer.h
|
| +++ b/cc/layers/surface_layer.h
|
| @@ -8,6 +8,7 @@
|
| #include "cc/base/cc_export.h"
|
| #include "cc/layers/layer.h"
|
| #include "cc/surfaces/surface_id.h"
|
| +#include "cc/surfaces/surface_sequence.h"
|
|
|
| namespace cc {
|
|
|
| @@ -15,22 +16,40 @@ namespace cc {
|
| // instance or client.
|
| class CC_EXPORT SurfaceLayer : public Layer {
|
| public:
|
| - static scoped_refptr<SurfaceLayer> Create();
|
| + // This callback is run when a SurfaceSequence needs to be satisfied, but
|
| + // the parent compositor is unable to. It can be called on either the main
|
| + // or impl threads.
|
| + using SatisfyCallback = base::Callback<void(SurfaceSequence)>;
|
| +
|
| + // This callback is run to require that a specific SurfaceSequence is
|
| + // received before a SurfaceId is destroyed.
|
| + using RequireCallback = base::Callback<void(SurfaceId, SurfaceSequence)>;
|
| +
|
| + static scoped_refptr<SurfaceLayer> Create(
|
| + const SatisfyCallback& satisfy_callback,
|
| + const RequireCallback& require_callback);
|
|
|
| void SetSurfaceId(SurfaceId surface_id);
|
|
|
| // Layer overrides.
|
| scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override;
|
| + void SetLayerTreeHost(LayerTreeHost* host) override;
|
| void PushPropertiesTo(LayerImpl* layer) override;
|
|
|
| protected:
|
| - SurfaceLayer();
|
| + SurfaceLayer(const SatisfyCallback& satisfy_callback,
|
| + const RequireCallback& require_callback);
|
| bool HasDrawableContent() const override;
|
|
|
| private:
|
| ~SurfaceLayer() override;
|
| + void CreateNewDestroySequence();
|
| + void SatisfyDestroySequence();
|
|
|
| SurfaceId surface_id_;
|
| + SurfaceSequence destroy_sequence_;
|
| + SatisfyCallback satisfy_callback_;
|
| + RequireCallback require_callback_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SurfaceLayer);
|
| };
|
|
|