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 |