| Index: blimp/client/feature/compositor/blimp_compositor_manager.h
|
| diff --git a/blimp/client/feature/compositor/blimp_compositor_manager.h b/blimp/client/feature/compositor/blimp_compositor_manager.h
|
| index 2054a9eec32c7b7c2b03744cecc2ebf7656cfe07..ec1623ddfb70fb36c428b6d3a0932d91074dbe1e 100644
|
| --- a/blimp/client/feature/compositor/blimp_compositor_manager.h
|
| +++ b/blimp/client/feature/compositor/blimp_compositor_manager.h
|
| @@ -10,18 +10,17 @@
|
| #include "base/macros.h"
|
| #include "blimp/client/core/compositor/blob_image_serialization_processor.h"
|
| #include "blimp/client/feature/compositor/blimp_compositor.h"
|
| -#include "blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.h"
|
| #include "blimp/client/feature/render_widget_feature.h"
|
| +#include "cc/layers/layer.h"
|
| #include "cc/trees/layer_tree_settings.h"
|
|
|
| +namespace cc {
|
| +class SurfaceManager;
|
| +} // namespace cc
|
| +
|
| namespace blimp {
|
| namespace client {
|
| -
|
| -class BlimpCompositorManagerClient {
|
| - public:
|
| - virtual void OnSwapBuffersCompleted() = 0;
|
| - virtual void DidCommitAndDrawFrame() = 0;
|
| -};
|
| +class BlimpGpuMemoryBufferManager;
|
|
|
| // The BlimpCompositorManager manages multiple BlimpCompositor instances, each
|
| // mapped to a render widget on the engine. The compositor corresponding to
|
| @@ -33,18 +32,22 @@ class BlimpCompositorManager
|
| : public RenderWidgetFeature::RenderWidgetFeatureDelegate,
|
| public BlimpCompositorClient {
|
| public:
|
| - explicit BlimpCompositorManager(RenderWidgetFeature* render_widget_feature,
|
| - BlimpCompositorManagerClient* client);
|
| - ~BlimpCompositorManager() override;
|
| + using SurfaceIdAllocationCallback = base::Callback<uint32_t()>;
|
|
|
| - void SetVisible(bool visible);
|
| + explicit BlimpCompositorManager(
|
| + RenderWidgetFeature* render_widget_feature,
|
| + cc::SurfaceManager* surface_manager,
|
| + BlimpGpuMemoryBufferManager* gpu_memory_buffer_manager,
|
| + SurfaceIdAllocationCallback callback);
|
|
|
| - void SetAcceleratedWidget(gfx::AcceleratedWidget widget);
|
| + ~BlimpCompositorManager() override;
|
|
|
| - void ReleaseAcceleratedWidget();
|
| + void SetVisible(bool visible);
|
|
|
| bool OnTouchEvent(const ui::MotionEvent& motion_event);
|
|
|
| + scoped_refptr<cc::Layer> layer() const { return layer_; }
|
| +
|
| protected:
|
| // Populates the cc::LayerTreeSettings used by the cc::LayerTreeHost of the
|
| // BlimpCompositors created by this manager. Can be overridden to provide
|
| @@ -54,6 +57,8 @@ class BlimpCompositorManager
|
| // virtual for testing.
|
| virtual std::unique_ptr<BlimpCompositor> CreateBlimpCompositor(
|
| int render_widget_id,
|
| + cc::SurfaceManager* surface_manager,
|
| + uint32_t surface_client_id,
|
| BlimpCompositorClient* client);
|
|
|
| // Returns the compositor for the |render_widget_id|. Will return nullptr if
|
| @@ -71,8 +76,6 @@ class BlimpCompositorManager
|
| std::unique_ptr<cc::proto::CompositorMessage> message) override;
|
|
|
| // BlimpCompositorClient implementation.
|
| - void DidCompleteSwapBuffers() override;
|
| - void DidCommitAndDrawFrame() override;
|
| cc::LayerTreeSettings* GetLayerTreeSettings() override;
|
| scoped_refptr<base::SingleThreadTaskRunner>
|
| GetCompositorTaskRunner() override;
|
| @@ -86,13 +89,20 @@ class BlimpCompositorManager
|
| int render_widget_id,
|
| const cc::proto::CompositorMessage& message) override;
|
|
|
| - bool visible_;
|
| + // The bridge to the network layer that does the proto/RenderWidget id work.
|
| + // BlimpCompositorManager does not own this and it is expected to outlive this
|
| + // BlimpCompositorManager instance.
|
| + RenderWidgetFeature* render_widget_feature_;
|
|
|
| - gfx::AcceleratedWidget window_;
|
| + cc::SurfaceManager* surface_manager_;
|
| + BlimpGpuMemoryBufferManager* gpu_memory_buffer_manager_;
|
| + SurfaceIdAllocationCallback surface_id_allocation_callback_;
|
|
|
| + bool visible_;
|
| std::unique_ptr<cc::LayerTreeSettings> settings_;
|
|
|
| - std::unique_ptr<BlimpGpuMemoryBufferManager> gpu_memory_buffer_manager_;
|
| + // The layer which holds the content from the active compositor.
|
| + scoped_refptr<cc::Layer> layer_;
|
|
|
| // A map of render_widget_ids to the BlimpCompositor instance.
|
| typedef std::map<int, std::unique_ptr<BlimpCompositor>> CompositorMap;
|
| @@ -107,12 +117,6 @@ class BlimpCompositorManager
|
| // be shared by all compositor instances.
|
| std::unique_ptr<base::Thread> compositor_thread_;
|
|
|
| - // The bridge to the network layer that does the proto/RenderWidget id work.
|
| - // BlimpCompositorManager does not own this and it is expected to outlive this
|
| - // BlimpCompositorManager instance.
|
| - RenderWidgetFeature* render_widget_feature_;
|
| - BlimpCompositorManagerClient* client_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(BlimpCompositorManager);
|
| };
|
|
|
|
|