Index: ui/compositor/compositor.h |
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h |
index 76f8f38765127232647b1fd02031924eb7782e3b..07472f3f52fac536d52f24226518f3a0ea19c0f2 100644 |
--- a/ui/compositor/compositor.h |
+++ b/ui/compositor/compositor.h |
@@ -86,48 +86,18 @@ class COMPOSITOR_EXPORT ContextFactoryObserver { |
virtual void OnLostResources() = 0; |
}; |
-// This class abstracts the creation of the 3D context for the compositor. It is |
-// a global object. |
-class COMPOSITOR_EXPORT ContextFactory { |
+// This is privileged interface to the compositor. It is a global object. |
+class COMPOSITOR_EXPORT ContextFactoryPrivate { |
public: |
- virtual ~ContextFactory() {} |
- |
- // Creates an output surface for the given compositor. The factory may keep |
- // per-compositor data (e.g. a shared context), that needs to be cleaned up |
- // by calling RemoveCompositor when the compositor gets destroyed. |
- virtual void CreateCompositorFrameSink( |
- base::WeakPtr<Compositor> compositor) = 0; |
- |
// Creates a reflector that copies the content of the |mirrored_compositor| |
// onto |mirroring_layer|. |
virtual std::unique_ptr<Reflector> CreateReflector( |
Compositor* mirrored_compositor, |
Layer* mirroring_layer) = 0; |
+ |
// Removes the reflector, which stops the mirroring. |
virtual void RemoveReflector(Reflector* reflector) = 0; |
- // Return a reference to a shared offscreen context provider usable from the |
- // main thread. |
- virtual scoped_refptr<cc::ContextProvider> |
- SharedMainThreadContextProvider() = 0; |
- |
- // Destroys per-compositor data. |
- virtual void RemoveCompositor(Compositor* compositor) = 0; |
- |
- // When true, the factory uses test contexts that do not do real GL |
- // operations. |
- virtual bool DoesCreateTestContexts() = 0; |
- |
- // Returns the OpenGL target to use for image textures. |
- virtual uint32_t GetImageTextureTarget(gfx::BufferFormat format, |
- gfx::BufferUsage usage) = 0; |
- |
- // Gets the GPU memory buffer manager. |
- virtual gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0; |
- |
- // Gets the task graph runner. |
- virtual cc::TaskGraphRunner* GetTaskGraphRunner() = 0; |
- |
// Allocate a new client ID for the display compositor. |
virtual cc::FrameSinkId AllocateFrameSinkId() = 0; |
@@ -156,6 +126,41 @@ class COMPOSITOR_EXPORT ContextFactory { |
base::TimeDelta interval) = 0; |
virtual void SetOutputIsSecure(Compositor* compositor, bool secure) = 0; |
+}; |
+ |
+// This class abstracts the creation of the 3D context for the compositor. It is |
+// a global object. |
+class COMPOSITOR_EXPORT ContextFactory { |
+ public: |
+ virtual ~ContextFactory() {} |
+ |
+ // Creates an output surface for the given compositor. The factory may keep |
+ // per-compositor data (e.g. a shared context), that needs to be cleaned up |
+ // by calling RemoveCompositor when the compositor gets destroyed. |
+ virtual void CreateCompositorFrameSink( |
+ base::WeakPtr<Compositor> compositor) = 0; |
+ |
+ // Return a reference to a shared offscreen context provider usable from the |
+ // main thread. |
+ virtual scoped_refptr<cc::ContextProvider> |
+ SharedMainThreadContextProvider() = 0; |
+ |
+ // Destroys per-compositor data. |
+ virtual void RemoveCompositor(Compositor* compositor) = 0; |
+ |
+ // When true, the factory uses test contexts that do not do real GL |
+ // operations. |
+ virtual bool DoesCreateTestContexts() = 0; |
+ |
+ // Returns the OpenGL target to use for image textures. |
+ virtual uint32_t GetImageTextureTarget(gfx::BufferFormat format, |
+ gfx::BufferUsage usage) = 0; |
+ |
+ // Gets the GPU memory buffer manager. |
+ virtual gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() = 0; |
+ |
+ // Gets the task graph runner. |
+ virtual cc::TaskGraphRunner* GetTaskGraphRunner() = 0; |
virtual void AddObserver(ContextFactoryObserver* observer) = 0; |
@@ -198,11 +203,16 @@ class COMPOSITOR_EXPORT Compositor |
NON_EXPORTED_BASE(public cc::LayerTreeHostSingleThreadClient) { |
public: |
Compositor(ui::ContextFactory* context_factory, |
+ ui::ContextFactoryPrivate* context_factory_private, |
scoped_refptr<base::SingleThreadTaskRunner> task_runner); |
~Compositor() override; |
ui::ContextFactory* context_factory() { return context_factory_; } |
+ ui::ContextFactoryPrivate* context_factory_private() { |
+ return context_factory_private_; |
+ } |
+ |
void AddFrameSink(const cc::FrameSinkId& frame_sink_id); |
void RemoveFrameSink(const cc::FrameSinkId& frame_sink_id); |
@@ -392,6 +402,7 @@ class COMPOSITOR_EXPORT Compositor |
gfx::Size size_; |
ui::ContextFactory* context_factory_; |
+ ui::ContextFactoryPrivate* context_factory_private_; |
// The root of the Layer tree drawn by this compositor. |
Layer* root_layer_; |