OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_COMPOSITOR_H_ | 5 #ifndef UI_COMPOSITOR_COMPOSITOR_H_ |
6 #define UI_COMPOSITOR_COMPOSITOR_H_ | 6 #define UI_COMPOSITOR_COMPOSITOR_H_ |
7 | 7 |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 21 matching lines...) Expand all Loading... |
32 #include "ui/gfx/gpu_memory_buffer.h" | 32 #include "ui/gfx/gpu_memory_buffer.h" |
33 #include "ui/gfx/native_widget_types.h" | 33 #include "ui/gfx/native_widget_types.h" |
34 | 34 |
35 namespace base { | 35 namespace base { |
36 class SingleThreadTaskRunner; | 36 class SingleThreadTaskRunner; |
37 } | 37 } |
38 | 38 |
39 namespace cc { | 39 namespace cc { |
40 class AnimationHost; | 40 class AnimationHost; |
41 class AnimationTimeline; | 41 class AnimationTimeline; |
| 42 class BeginFrameSource; |
42 class ContextProvider; | 43 class ContextProvider; |
43 class Layer; | 44 class Layer; |
44 class LayerTreeDebugState; | 45 class LayerTreeDebugState; |
45 class LayerTreeHost; | 46 class LayerTreeHost; |
46 class RendererSettings; | 47 class RendererSettings; |
47 class SurfaceManager; | 48 class SurfaceManager; |
48 class TaskGraphRunner; | 49 class TaskGraphRunner; |
49 } | 50 } |
50 | 51 |
51 namespace gfx { | 52 namespace gfx { |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 const gfx::ColorSpace& color_space) = 0; | 149 const gfx::ColorSpace& color_space) = 0; |
149 | 150 |
150 virtual void SetAuthoritativeVSyncInterval(ui::Compositor* compositor, | 151 virtual void SetAuthoritativeVSyncInterval(ui::Compositor* compositor, |
151 base::TimeDelta interval) = 0; | 152 base::TimeDelta interval) = 0; |
152 // Mac path for transporting vsync parameters to the display. Other platforms | 153 // Mac path for transporting vsync parameters to the display. Other platforms |
153 // update it via the BrowserCompositorCompositorFrameSink directly. | 154 // update it via the BrowserCompositorCompositorFrameSink directly. |
154 virtual void SetDisplayVSyncParameters(ui::Compositor* compositor, | 155 virtual void SetDisplayVSyncParameters(ui::Compositor* compositor, |
155 base::TimeTicks timebase, | 156 base::TimeTicks timebase, |
156 base::TimeDelta interval) = 0; | 157 base::TimeDelta interval) = 0; |
157 | 158 |
| 159 virtual void SwapBeginFrameSource( |
| 160 ui::Compositor* compositor, |
| 161 std::unique_ptr<cc::BeginFrameSource>* begin_frame_source) = 0; |
| 162 |
158 virtual void SetOutputIsSecure(Compositor* compositor, bool secure) = 0; | 163 virtual void SetOutputIsSecure(Compositor* compositor, bool secure) = 0; |
159 | 164 |
160 virtual void AddObserver(ContextFactoryObserver* observer) = 0; | 165 virtual void AddObserver(ContextFactoryObserver* observer) = 0; |
161 | 166 |
162 virtual void RemoveObserver(ContextFactoryObserver* observer) = 0; | 167 virtual void RemoveObserver(ContextFactoryObserver* observer) = 0; |
163 }; | 168 }; |
164 | 169 |
165 // This class represents a lock on the compositor, that can be used to prevent | 170 // This class represents a lock on the compositor, that can be used to prevent |
166 // commits to the compositor tree while we're waiting for an asynchronous | 171 // commits to the compositor tree while we're waiting for an asynchronous |
167 // event. The typical use case is when waiting for a renderer to produce a frame | 172 // event. The typical use case is when waiting for a renderer to produce a frame |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 // context. | 283 // context. |
279 void SetAuthoritativeVSyncInterval(const base::TimeDelta& interval); | 284 void SetAuthoritativeVSyncInterval(const base::TimeDelta& interval); |
280 | 285 |
281 // Most platforms set their vsync info via | 286 // Most platforms set their vsync info via |
282 // BrowerCompositorCompositorFrameSink's | 287 // BrowerCompositorCompositorFrameSink's |
283 // OnUpdateVSyncParametersFromGpu, but Mac routes vsync info via the | 288 // OnUpdateVSyncParametersFromGpu, but Mac routes vsync info via the |
284 // browser compositor instead through this path. | 289 // browser compositor instead through this path. |
285 void SetDisplayVSyncParameters(base::TimeTicks timebase, | 290 void SetDisplayVSyncParameters(base::TimeTicks timebase, |
286 base::TimeDelta interval); | 291 base::TimeDelta interval); |
287 | 292 |
| 293 // See Display::SwapBeginFrameSource. |
| 294 void SwapBeginFrameSource( |
| 295 std::unique_ptr<cc::BeginFrameSource>* begin_frame_source); |
| 296 |
288 // Sets the widget for the compositor to render into. | 297 // Sets the widget for the compositor to render into. |
289 void SetAcceleratedWidget(gfx::AcceleratedWidget widget); | 298 void SetAcceleratedWidget(gfx::AcceleratedWidget widget); |
290 // Releases the widget previously set through SetAcceleratedWidget(). | 299 // Releases the widget previously set through SetAcceleratedWidget(). |
291 // After returning it will not be used for rendering anymore. | 300 // After returning it will not be used for rendering anymore. |
292 // The compositor must be set to invisible when taking away a widget. | 301 // The compositor must be set to invisible when taking away a widget. |
293 gfx::AcceleratedWidget ReleaseAcceleratedWidget(); | 302 gfx::AcceleratedWidget ReleaseAcceleratedWidget(); |
294 gfx::AcceleratedWidget widget() const; | 303 gfx::AcceleratedWidget widget() const; |
295 | 304 |
296 #if defined(USE_AURA) | 305 #if defined(USE_AURA) |
297 // Sets the window for the compositor to render into on mus+ash. | 306 // Sets the window for the compositor to render into on mus+ash. |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 gfx::ColorSpace color_space_; | 438 gfx::ColorSpace color_space_; |
430 | 439 |
431 base::WeakPtrFactory<Compositor> weak_ptr_factory_; | 440 base::WeakPtrFactory<Compositor> weak_ptr_factory_; |
432 | 441 |
433 DISALLOW_COPY_AND_ASSIGN(Compositor); | 442 DISALLOW_COPY_AND_ASSIGN(Compositor); |
434 }; | 443 }; |
435 | 444 |
436 } // namespace ui | 445 } // namespace ui |
437 | 446 |
438 #endif // UI_COMPOSITOR_COMPOSITOR_H_ | 447 #endif // UI_COMPOSITOR_COMPOSITOR_H_ |
OLD | NEW |