| 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 |