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 CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ | 5 #ifndef CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ |
6 #define CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ | 6 #define CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ |
7 | 7 |
8 #include "cc/layers/delegated_frame_provider.h" | 8 #include "cc/layers/delegated_frame_provider.h" |
9 #include "cc/layers/delegated_frame_resource_collection.h" | 9 #include "cc/layers/delegated_frame_resource_collection.h" |
10 #include "cc/output/copy_output_result.h" | 10 #include "cc/output/copy_output_result.h" |
(...skipping 26 matching lines...) Expand all Loading... |
37 class ReadbackYUVInterface; | 37 class ReadbackYUVInterface; |
38 class RenderWidgetHostViewFrameSubscriber; | 38 class RenderWidgetHostViewFrameSubscriber; |
39 class RenderWidgetHostImpl; | 39 class RenderWidgetHostImpl; |
40 class ResizeLock; | 40 class ResizeLock; |
41 | 41 |
42 // The DelegatedFrameHostClient is the interface from the DelegatedFrameHost, | 42 // The DelegatedFrameHostClient is the interface from the DelegatedFrameHost, |
43 // which manages delegated frames, and the ui::Compositor being used to | 43 // which manages delegated frames, and the ui::Compositor being used to |
44 // display them. | 44 // display them. |
45 class CONTENT_EXPORT DelegatedFrameHostClient { | 45 class CONTENT_EXPORT DelegatedFrameHostClient { |
46 public: | 46 public: |
47 virtual ui::Compositor* GetCompositor() const = 0; | |
48 virtual ui::Layer* GetLayer() = 0; | 47 virtual ui::Layer* GetLayer() = 0; |
49 virtual RenderWidgetHostImpl* GetHost() = 0; | 48 virtual RenderWidgetHostImpl* GetHost() = 0; |
50 virtual bool IsVisible() = 0; | 49 virtual bool IsVisible() = 0; |
51 virtual scoped_ptr<ResizeLock> CreateResizeLock( | 50 virtual scoped_ptr<ResizeLock> CreateResizeLock( |
52 bool defer_compositor_lock) = 0; | 51 bool defer_compositor_lock) = 0; |
53 virtual gfx::Size DesiredFrameSize() = 0; | 52 virtual gfx::Size DesiredFrameSize() = 0; |
54 | 53 |
55 // TODO(ccameron): It is likely that at least one of these two functions is | 54 // TODO(ccameron): It is likely that at least one of these two functions is |
56 // redundant. Find which one, and delete it. | 55 // redundant. Find which one, and delete it. |
57 virtual float CurrentDeviceScaleFactor() = 0; | 56 virtual float CurrentDeviceScaleFactor() = 0; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 void SwapDelegatedFrame( | 88 void SwapDelegatedFrame( |
90 uint32 output_surface_id, | 89 uint32 output_surface_id, |
91 scoped_ptr<cc::DelegatedFrameData> frame_data, | 90 scoped_ptr<cc::DelegatedFrameData> frame_data, |
92 float frame_device_scale_factor, | 91 float frame_device_scale_factor, |
93 const std::vector<ui::LatencyInfo>& latency_info); | 92 const std::vector<ui::LatencyInfo>& latency_info); |
94 void WasHidden(); | 93 void WasHidden(); |
95 void WasShown(const ui::LatencyInfo& latency_info); | 94 void WasShown(const ui::LatencyInfo& latency_info); |
96 void WasResized(); | 95 void WasResized(); |
97 bool HasSavedFrame(); | 96 bool HasSavedFrame(); |
98 gfx::Size GetRequestedRendererSize() const; | 97 gfx::Size GetRequestedRendererSize() const; |
99 void AddedToWindow(); | 98 void SetCompositor(ui::Compositor* compositor); |
100 void RemovingFromWindow(); | 99 void ResetCompositor(); |
101 void CopyFromCompositingSurface(const gfx::Rect& src_subrect, | 100 void CopyFromCompositingSurface(const gfx::Rect& src_subrect, |
102 const gfx::Size& output_size, | 101 const gfx::Size& output_size, |
103 ReadbackRequestCallback& callback, | 102 ReadbackRequestCallback& callback, |
104 const SkColorType color_type); | 103 const SkColorType color_type); |
105 void CopyFromCompositingSurfaceToVideoFrame( | 104 void CopyFromCompositingSurfaceToVideoFrame( |
106 const gfx::Rect& src_subrect, | 105 const gfx::Rect& src_subrect, |
107 const scoped_refptr<media::VideoFrame>& target, | 106 const scoped_refptr<media::VideoFrame>& target, |
108 const base::Callback<void(bool)>& callback); | 107 const base::Callback<void(bool)>& callback); |
109 bool CanCopyToVideoFrame() const; | 108 bool CanCopyToVideoFrame() const; |
110 bool CanSubscribeFrame() const; | 109 bool CanSubscribeFrame() const; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 void LockResources(); | 143 void LockResources(); |
145 void UnlockResources(); | 144 void UnlockResources(); |
146 | 145 |
147 // Overridden from ui::CompositorObserver: | 146 // Overridden from ui::CompositorObserver: |
148 void OnCompositingDidCommit(ui::Compositor* compositor) override; | 147 void OnCompositingDidCommit(ui::Compositor* compositor) override; |
149 void OnCompositingStarted(ui::Compositor* compositor, | 148 void OnCompositingStarted(ui::Compositor* compositor, |
150 base::TimeTicks start_time) override; | 149 base::TimeTicks start_time) override; |
151 void OnCompositingEnded(ui::Compositor* compositor) override; | 150 void OnCompositingEnded(ui::Compositor* compositor) override; |
152 void OnCompositingAborted(ui::Compositor* compositor) override; | 151 void OnCompositingAborted(ui::Compositor* compositor) override; |
153 void OnCompositingLockStateChanged(ui::Compositor* compositor) override; | 152 void OnCompositingLockStateChanged(ui::Compositor* compositor) override; |
| 153 void OnCompositingShuttingDown(ui::Compositor* compositor) override; |
154 | 154 |
155 // Overridden from ui::CompositorVSyncManager::Observer: | 155 // Overridden from ui::CompositorVSyncManager::Observer: |
156 void OnUpdateVSyncParameters(base::TimeTicks timebase, | 156 void OnUpdateVSyncParameters(base::TimeTicks timebase, |
157 base::TimeDelta interval) override; | 157 base::TimeDelta interval) override; |
158 | 158 |
159 // Overridden from ui::LayerOwnerObserver: | 159 // Overridden from ui::LayerOwnerObserver: |
160 void OnLayerRecreated(ui::Layer* old_layer, ui::Layer* new_layer) override; | 160 void OnLayerRecreated(ui::Layer* old_layer, ui::Layer* new_layer) override; |
161 | 161 |
162 // Overridden from ImageTransportFactoryObserver: | 162 // Overridden from ImageTransportFactoryObserver: |
163 void OnLostResources() override; | 163 void OnLostResources() override; |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 // cc::DelegatedFrameProviderClient implementation. | 221 // cc::DelegatedFrameProviderClient implementation. |
222 void UnusedResourcesAreAvailable() override; | 222 void UnusedResourcesAreAvailable() override; |
223 | 223 |
224 // cc::SurfaceFactoryClient implementation. | 224 // cc::SurfaceFactoryClient implementation. |
225 void ReturnResources(const cc::ReturnedResourceArray& resources) override; | 225 void ReturnResources(const cc::ReturnedResourceArray& resources) override; |
226 | 226 |
227 void DidReceiveFrameFromRenderer(const gfx::Rect& damage_rect); | 227 void DidReceiveFrameFromRenderer(const gfx::Rect& damage_rect); |
228 | 228 |
229 DelegatedFrameHostClient* client_; | 229 DelegatedFrameHostClient* client_; |
230 | 230 |
| 231 ui::Compositor* compositor_; |
| 232 |
231 // True if this renders into a Surface, false if it renders into a delegated | 233 // True if this renders into a Surface, false if it renders into a delegated |
232 // layer. | 234 // layer. |
233 bool use_surfaces_; | 235 bool use_surfaces_; |
234 | 236 |
235 std::vector<base::Closure> on_compositing_did_commit_callbacks_; | 237 std::vector<base::Closure> on_compositing_did_commit_callbacks_; |
236 | 238 |
237 // The vsync manager we are observing for changes, if any. | 239 // The vsync manager we are observing for changes, if any. |
238 scoped_refptr<ui::CompositorVSyncManager> vsync_manager_; | 240 scoped_refptr<ui::CompositorVSyncManager> vsync_manager_; |
239 | 241 |
240 // The current VSync timebase and interval. These are zero until the first | 242 // The current VSync timebase and interval. These are zero until the first |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 // YUV readback pipeline. | 308 // YUV readback pipeline. |
307 scoped_ptr<content::ReadbackYUVInterface> | 309 scoped_ptr<content::ReadbackYUVInterface> |
308 yuv_readback_pipeline_; | 310 yuv_readback_pipeline_; |
309 | 311 |
310 scoped_ptr<DelegatedFrameEvictor> delegated_frame_evictor_; | 312 scoped_ptr<DelegatedFrameEvictor> delegated_frame_evictor_; |
311 }; | 313 }; |
312 | 314 |
313 } // namespace content | 315 } // namespace content |
314 | 316 |
315 #endif // CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ | 317 #endif // CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ |
OLD | NEW |