OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 BLIMP_CLIENT_FEATURE_COMPOSITOR_BLIMP_COMPOSITOR_MANAGER_H_ | 5 #ifndef BLIMP_CLIENT_FEATURE_COMPOSITOR_BLIMP_COMPOSITOR_MANAGER_H_ |
6 #define BLIMP_CLIENT_FEATURE_COMPOSITOR_BLIMP_COMPOSITOR_MANAGER_H_ | 6 #define BLIMP_CLIENT_FEATURE_COMPOSITOR_BLIMP_COMPOSITOR_MANAGER_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "blimp/client/feature/compositor/blimp_compositor.h" | 9 #include "blimp/client/feature/compositor/blimp_compositor.h" |
10 #include "blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.h" | 10 #include "blimp/client/feature/compositor/blimp_gpu_memory_buffer_manager.h" |
11 #include "blimp/client/feature/render_widget_feature.h" | 11 #include "blimp/client/feature/render_widget_feature.h" |
12 #include "cc/trees/layer_tree_settings.h" | 12 #include "cc/trees/layer_tree_settings.h" |
13 | 13 |
14 namespace blimp { | 14 namespace blimp { |
15 namespace client { | 15 namespace client { |
16 | 16 |
17 class ClientImageSerializationProcessor; | 17 class ClientImageSerializationProcessor; |
18 | 18 |
19 class BlimpCompositorManagerClient { | 19 class BlimpCompositorManagerClient { |
20 public: | 20 public: |
21 virtual void OnSwapBuffersCompleted() = 0; | 21 virtual void OnSwapBuffersCompleted() = 0; |
22 virtual void DidCommitAndDrawFrame() = 0; | |
23 }; | 22 }; |
24 | 23 |
25 // The BlimpCompositorManager manages multiple BlimpCompositor instances, each | 24 // The BlimpCompositorManager manages multiple BlimpCompositor instances, each |
26 // mapped to a render widget on the engine. The compositor corresponding to | 25 // mapped to a render widget on the engine. The compositor corresponding to |
27 // the render widget initialized on the engine will be the |active_compositor_|. | 26 // the render widget initialized on the engine will be the |active_compositor_|. |
28 // Only the |active_compositor_| holds the accelerated widget and builds the | 27 // Only the |active_compositor_| holds the accelerated widget and builds the |
29 // output surface from this widget to draw to the view. All events from the | 28 // output surface from this widget to draw to the view. All events from the |
30 // native view are forwarded to this compositor. | 29 // native view are forwarded to this compositor. |
31 class BlimpCompositorManager | 30 class BlimpCompositorManager |
32 : public RenderWidgetFeature::RenderWidgetFeatureDelegate, | 31 : public RenderWidgetFeature::RenderWidgetFeatureDelegate, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 // RenderWidgetFeatureDelegate implementation. | 63 // RenderWidgetFeatureDelegate implementation. |
65 void OnRenderWidgetCreated(int render_widget_id) override; | 64 void OnRenderWidgetCreated(int render_widget_id) override; |
66 void OnRenderWidgetInitialized(int render_widget_id) override; | 65 void OnRenderWidgetInitialized(int render_widget_id) override; |
67 void OnRenderWidgetDeleted(int render_widget_id) override; | 66 void OnRenderWidgetDeleted(int render_widget_id) override; |
68 void OnCompositorMessageReceived( | 67 void OnCompositorMessageReceived( |
69 int render_widget_id, | 68 int render_widget_id, |
70 std::unique_ptr<cc::proto::CompositorMessage> message) override; | 69 std::unique_ptr<cc::proto::CompositorMessage> message) override; |
71 | 70 |
72 // BlimpCompositorClient implementation. | 71 // BlimpCompositorClient implementation. |
73 void DidCompleteSwapBuffers() override; | 72 void DidCompleteSwapBuffers() override; |
74 void DidCommitAndDrawFrame() override; | |
75 cc::LayerTreeSettings* GetLayerTreeSettings() override; | 73 cc::LayerTreeSettings* GetLayerTreeSettings() override; |
76 scoped_refptr<base::SingleThreadTaskRunner> | 74 scoped_refptr<base::SingleThreadTaskRunner> |
77 GetCompositorTaskRunner() override; | 75 GetCompositorTaskRunner() override; |
78 cc::TaskGraphRunner* GetTaskGraphRunner() override; | 76 cc::TaskGraphRunner* GetTaskGraphRunner() override; |
79 gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override; | 77 gpu::GpuMemoryBufferManager* GetGpuMemoryBufferManager() override; |
80 cc::ImageSerializationProcessor* GetImageSerializationProcessor() override; | 78 cc::ImageSerializationProcessor* GetImageSerializationProcessor() override; |
81 void SendWebGestureEvent( | 79 void SendWebGestureEvent( |
82 int render_widget_id, | 80 int render_widget_id, |
83 const blink::WebGestureEvent& gesture_event) override; | 81 const blink::WebGestureEvent& gesture_event) override; |
84 void SendCompositorMessage( | 82 void SendCompositorMessage( |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 RenderWidgetFeature* render_widget_feature_; | 114 RenderWidgetFeature* render_widget_feature_; |
117 BlimpCompositorManagerClient* client_; | 115 BlimpCompositorManagerClient* client_; |
118 | 116 |
119 DISALLOW_COPY_AND_ASSIGN(BlimpCompositorManager); | 117 DISALLOW_COPY_AND_ASSIGN(BlimpCompositorManager); |
120 }; | 118 }; |
121 | 119 |
122 } // namespace client | 120 } // namespace client |
123 } // namespace blimp | 121 } // namespace blimp |
124 | 122 |
125 #endif // BLIMP_CLIENT_FEATURE_COMPOSITOR_BLIMP_COMPOSITOR_MANAGER_H_ | 123 #endif // BLIMP_CLIENT_FEATURE_COMPOSITOR_BLIMP_COMPOSITOR_MANAGER_H_ |
OLD | NEW |