| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ | 5 #ifndef UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ |
| 6 #define UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ | 6 #define UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 } | 22 } |
| 23 | 23 |
| 24 namespace ui { | 24 namespace ui { |
| 25 class InProcessContextProvider; | 25 class InProcessContextProvider; |
| 26 | 26 |
| 27 class InProcessContextFactory : public ContextFactory, | 27 class InProcessContextFactory : public ContextFactory, |
| 28 public ContextFactoryPrivate { | 28 public ContextFactoryPrivate { |
| 29 public: | 29 public: |
| 30 // surface_manager is owned by the creator of this and must outlive the | 30 // surface_manager is owned by the creator of this and must outlive the |
| 31 // context factory. | 31 // context factory. |
| 32 InProcessContextFactory(bool context_factory_for_test, | 32 InProcessContextFactory( |
| 33 cc::SurfaceManager* surface_manager); | 33 bool context_factory_for_test, |
| 34 display_compositor::DisplayCompositor* display_compositor); |
| 34 ~InProcessContextFactory() override; | 35 ~InProcessContextFactory() override; |
| 35 | 36 |
| 36 // If true (the default) an OutputSurface is created that does not display | 37 // If true (the default) an OutputSurface is created that does not display |
| 37 // anything. Set to false if you want to see results on the screen. | 38 // anything. Set to false if you want to see results on the screen. |
| 38 void set_use_test_surface(bool use_test_surface) { | 39 void set_use_test_surface(bool use_test_surface) { |
| 39 use_test_surface_ = use_test_surface; | 40 use_test_surface_ = use_test_surface; |
| 40 } | 41 } |
| 41 | 42 |
| 42 // This is used to call OnLostResources on all clients, to ensure they stop | 43 // This is used to call OnLostResources on all clients, to ensure they stop |
| 43 // using the SharedMainThreadContextProvider. | 44 // using the SharedMainThreadContextProvider. |
| 44 void SendOnLostResources(); | 45 void SendOnLostResources(); |
| 45 | 46 |
| 46 // ContextFactory implementation | 47 // ContextFactory implementation |
| 47 void CreateCompositorFrameSink(base::WeakPtr<Compositor> compositor) override; | 48 void CreateCompositorFrameSink(base::WeakPtr<Compositor> compositor) override; |
| 48 | 49 |
| 49 std::unique_ptr<Reflector> CreateReflector(Compositor* mirrored_compositor, | 50 std::unique_ptr<Reflector> CreateReflector(Compositor* mirrored_compositor, |
| 50 Layer* mirroring_layer) override; | 51 Layer* mirroring_layer) override; |
| 51 void RemoveReflector(Reflector* reflector) override; | 52 void RemoveReflector(Reflector* reflector) override; |
| 52 | 53 |
| 53 scoped_refptr<cc::ContextProvider> SharedMainThreadContextProvider() override; | 54 scoped_refptr<cc::ContextProvider> SharedMainThreadContextProvider() override; |
| 54 void RemoveCompositor(Compositor* compositor) override; | 55 void RemoveCompositor(Compositor* compositor) override; |
| 55 bool DoesCreateTestContexts() override; | 56 bool DoesCreateTestContexts() override; |
| 56 uint32_t GetImageTextureTarget(gfx::BufferFormat format, | 57 uint32_t GetImageTextureTarget(gfx::BufferFormat format, |
| 57 gfx::BufferUsage usage) override; | 58 gfx::BufferUsage usage) override; |
| 58 gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override; | 59 gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override; |
| 59 cc::TaskGraphRunner* GetTaskGraphRunner() override; | 60 cc::TaskGraphRunner* GetTaskGraphRunner() override; |
| 60 cc::FrameSinkId AllocateFrameSinkId() override; | 61 cc::FrameSinkId AllocateFrameSinkId() override; |
| 61 cc::SurfaceManager* GetSurfaceManager() override; | 62 cc::SurfaceManager* GetSurfaceManager() override; |
| 63 display_compositor::DisplayCompositor* GetDisplayCompositor() override; |
| 62 void SetDisplayVisible(ui::Compositor* compositor, bool visible) override; | 64 void SetDisplayVisible(ui::Compositor* compositor, bool visible) override; |
| 63 void ResizeDisplay(ui::Compositor* compositor, | 65 void ResizeDisplay(ui::Compositor* compositor, |
| 64 const gfx::Size& size) override; | 66 const gfx::Size& size) override; |
| 65 void SetDisplayColorSpace(ui::Compositor* compositor, | 67 void SetDisplayColorSpace(ui::Compositor* compositor, |
| 66 const gfx::ColorSpace& color_space) override {} | 68 const gfx::ColorSpace& color_space) override {} |
| 67 void SetAuthoritativeVSyncInterval(ui::Compositor* compositor, | 69 void SetAuthoritativeVSyncInterval(ui::Compositor* compositor, |
| 68 base::TimeDelta interval) override {} | 70 base::TimeDelta interval) override {} |
| 69 void SetDisplayVSyncParameters(ui::Compositor* compositor, | 71 void SetDisplayVSyncParameters(ui::Compositor* compositor, |
| 70 base::TimeTicks timebase, | 72 base::TimeTicks timebase, |
| 71 base::TimeDelta interval) override {} | 73 base::TimeDelta interval) override {} |
| 72 void SetOutputIsSecure(ui::Compositor* compositor, bool secure) override {} | 74 void SetOutputIsSecure(ui::Compositor* compositor, bool secure) override {} |
| 73 void AddObserver(ContextFactoryObserver* observer) override; | 75 void AddObserver(ContextFactoryObserver* observer) override; |
| 74 void RemoveObserver(ContextFactoryObserver* observer) override; | 76 void RemoveObserver(ContextFactoryObserver* observer) override; |
| 75 | 77 |
| 76 private: | 78 private: |
| 77 struct PerCompositorData; | 79 struct PerCompositorData; |
| 78 | 80 |
| 79 PerCompositorData* CreatePerCompositorData(ui::Compositor* compositor); | 81 PerCompositorData* CreatePerCompositorData(ui::Compositor* compositor); |
| 80 | 82 |
| 81 scoped_refptr<InProcessContextProvider> shared_main_thread_contexts_; | 83 scoped_refptr<InProcessContextProvider> shared_main_thread_contexts_; |
| 82 scoped_refptr<InProcessContextProvider> shared_worker_context_provider_; | 84 scoped_refptr<InProcessContextProvider> shared_worker_context_provider_; |
| 83 cc::TestSharedBitmapManager shared_bitmap_manager_; | 85 cc::TestSharedBitmapManager shared_bitmap_manager_; |
| 84 cc::TestGpuMemoryBufferManager gpu_memory_buffer_manager_; | 86 cc::TestGpuMemoryBufferManager gpu_memory_buffer_manager_; |
| 85 cc::TestImageFactory image_factory_; | 87 cc::TestImageFactory image_factory_; |
| 86 cc::TestTaskGraphRunner task_graph_runner_; | 88 cc::TestTaskGraphRunner task_graph_runner_; |
| 87 uint32_t next_surface_sink_id_; | 89 uint32_t next_surface_sink_id_; |
| 88 bool use_test_surface_; | 90 bool use_test_surface_; |
| 89 bool context_factory_for_test_; | 91 bool context_factory_for_test_; |
| 90 cc::SurfaceManager* surface_manager_; | 92 display_compositor::DisplayCompositor* display_compositor_; |
| 91 base::ObserverList<ContextFactoryObserver> observer_list_; | 93 base::ObserverList<ContextFactoryObserver> observer_list_; |
| 92 | 94 |
| 93 using PerCompositorDataMap = | 95 using PerCompositorDataMap = |
| 94 base::hash_map<ui::Compositor*, std::unique_ptr<PerCompositorData>>; | 96 base::hash_map<ui::Compositor*, std::unique_ptr<PerCompositorData>>; |
| 95 PerCompositorDataMap per_compositor_data_; | 97 PerCompositorDataMap per_compositor_data_; |
| 96 | 98 |
| 97 DISALLOW_COPY_AND_ASSIGN(InProcessContextFactory); | 99 DISALLOW_COPY_AND_ASSIGN(InProcessContextFactory); |
| 98 }; | 100 }; |
| 99 | 101 |
| 100 } // namespace ui | 102 } // namespace ui |
| 101 | 103 |
| 102 #endif // UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ | 104 #endif // UI_COMPOSITOR_TEST_IN_PROCESS_CONTEXT_FACTORY_H_ |
| OLD | NEW |