| 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 <vector> |
| 9 |
| 8 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
| 9 #include "cc/layers/delegated_frame_provider.h" | 11 #include "cc/layers/delegated_frame_provider.h" |
| 10 #include "cc/layers/delegated_frame_resource_collection.h" | 12 #include "cc/layers/delegated_frame_resource_collection.h" |
| 11 #include "cc/output/copy_output_result.h" | 13 #include "cc/output/copy_output_result.h" |
| 12 #include "cc/surfaces/surface_factory_client.h" | 14 #include "cc/surfaces/surface_factory_client.h" |
| 13 #include "content/browser/compositor/image_transport_factory.h" | 15 #include "content/browser/compositor/image_transport_factory.h" |
| 14 #include "content/browser/compositor/owned_mailbox.h" | 16 #include "content/browser/compositor/owned_mailbox.h" |
| 15 #include "content/browser/renderer_host/delegated_frame_evictor.h" | 17 #include "content/browser/renderer_host/delegated_frame_evictor.h" |
| 16 #include "content/browser/renderer_host/dip_util.h" | 18 #include "content/browser/renderer_host/dip_util.h" |
| 17 #include "content/browser/renderer_host/render_widget_host_impl.h" | 19 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 18 #include "content/browser/renderer_host/render_widget_host_view_base.h" | 20 #include "content/browser/renderer_host/render_widget_host_view_base.h" |
| 19 #include "content/public/browser/render_process_host.h" | 21 #include "content/public/browser/render_process_host.h" |
| 20 #include "ui/compositor/compositor.h" | 22 #include "ui/compositor/compositor.h" |
| 21 #include "ui/compositor/compositor_observer.h" | 23 #include "ui/compositor/compositor_observer.h" |
| 22 #include "ui/compositor/compositor_vsync_manager.h" | 24 #include "ui/compositor/compositor_vsync_manager.h" |
| 23 #include "ui/compositor/layer.h" | 25 #include "ui/compositor/layer.h" |
| 24 #include "ui/compositor/layer_owner_delegate.h" | 26 #include "ui/compositor/layer_owner_delegate.h" |
| 27 #include "ui/events/event.h" |
| 25 #include "ui/gfx/geometry/rect_conversions.h" | 28 #include "ui/gfx/geometry/rect_conversions.h" |
| 26 | 29 |
| 27 namespace base { | 30 namespace base { |
| 28 class TickClock; | 31 class TickClock; |
| 29 } | 32 } |
| 30 | 33 |
| 31 namespace cc { | 34 namespace cc { |
| 32 class SurfaceFactory; | 35 class SurfaceFactory; |
| 33 enum class SurfaceDrawStatus; | 36 enum class SurfaceDrawStatus; |
| 34 } | 37 } |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 const base::TimeDelta& interval); | 145 const base::TimeDelta& interval); |
| 143 // Note: |src_subset| is specified in DIP dimensions while |output_size| | 146 // Note: |src_subset| is specified in DIP dimensions while |output_size| |
| 144 // expects pixels. | 147 // expects pixels. |
| 145 void CopyFromCompositingSurface(const gfx::Rect& src_subrect, | 148 void CopyFromCompositingSurface(const gfx::Rect& src_subrect, |
| 146 const gfx::Size& output_size, | 149 const gfx::Size& output_size, |
| 147 const ReadbackRequestCallback& callback, | 150 const ReadbackRequestCallback& callback, |
| 148 const SkColorType preferred_color_type); | 151 const SkColorType preferred_color_type); |
| 149 void CopyFromCompositingSurfaceToVideoFrame( | 152 void CopyFromCompositingSurfaceToVideoFrame( |
| 150 const gfx::Rect& src_subrect, | 153 const gfx::Rect& src_subrect, |
| 151 const scoped_refptr<media::VideoFrame>& target, | 154 const scoped_refptr<media::VideoFrame>& target, |
| 152 const base::Callback<void(bool)>& callback); | 155 const base::Callback<void(const gfx::Rect&, bool)>& callback); |
| 153 bool CanCopyToVideoFrame() const; | 156 bool CanCopyToVideoFrame() const; |
| 154 void BeginFrameSubscription( | 157 void BeginFrameSubscription( |
| 155 scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber); | 158 scoped_ptr<RenderWidgetHostViewFrameSubscriber> subscriber); |
| 156 void EndFrameSubscription(); | 159 void EndFrameSubscription(); |
| 157 bool HasFrameSubscriber() const { return frame_subscriber_; } | 160 bool HasFrameSubscriber() const { return frame_subscriber_; } |
| 158 uint32_t GetSurfaceIdNamespace(); | 161 uint32_t GetSurfaceIdNamespace(); |
| 159 // Returns a null SurfaceId if this DelegatedFrameHost has not yet created | 162 // Returns a null SurfaceId if this DelegatedFrameHost has not yet created |
| 160 // a compositor Surface. | 163 // a compositor Surface. |
| 161 cc::SurfaceId SurfaceIdAtPoint(const gfx::Point& point, | 164 cc::SurfaceId SurfaceIdAtPoint(const gfx::Point& point, |
| 162 gfx::Point* transformed_point); | 165 gfx::Point* transformed_point); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 scoped_ptr<cc::CopyOutputResult> result); | 225 scoped_ptr<cc::CopyOutputResult> result); |
| 223 static void PrepareBitmapCopyOutputResult( | 226 static void PrepareBitmapCopyOutputResult( |
| 224 const gfx::Size& dst_size_in_pixel, | 227 const gfx::Size& dst_size_in_pixel, |
| 225 const SkColorType color_type, | 228 const SkColorType color_type, |
| 226 const ReadbackRequestCallback& callback, | 229 const ReadbackRequestCallback& callback, |
| 227 scoped_ptr<cc::CopyOutputResult> result); | 230 scoped_ptr<cc::CopyOutputResult> result); |
| 228 static void CopyFromCompositingSurfaceHasResultForVideo( | 231 static void CopyFromCompositingSurfaceHasResultForVideo( |
| 229 base::WeakPtr<DelegatedFrameHost> rwhva, | 232 base::WeakPtr<DelegatedFrameHost> rwhva, |
| 230 scoped_refptr<OwnedMailbox> subscriber_texture, | 233 scoped_refptr<OwnedMailbox> subscriber_texture, |
| 231 scoped_refptr<media::VideoFrame> video_frame, | 234 scoped_refptr<media::VideoFrame> video_frame, |
| 232 const base::Callback<void(bool)>& callback, | 235 const base::Callback<void(const gfx::Rect&, bool)>& callback, |
| 233 scoped_ptr<cc::CopyOutputResult> result); | 236 scoped_ptr<cc::CopyOutputResult> result); |
| 234 static void CopyFromCompositingSurfaceFinishedForVideo( | 237 static void CopyFromCompositingSurfaceFinishedForVideo( |
| 235 base::WeakPtr<DelegatedFrameHost> rwhva, | 238 base::WeakPtr<DelegatedFrameHost> rwhva, |
| 236 const base::Callback<void(bool)>& callback, | 239 const base::Callback<void(bool)>& callback, |
| 237 scoped_refptr<OwnedMailbox> subscriber_texture, | 240 scoped_refptr<OwnedMailbox> subscriber_texture, |
| 238 scoped_ptr<cc::SingleReleaseCallback> release_callback, | 241 scoped_ptr<cc::SingleReleaseCallback> release_callback, |
| 239 bool result); | 242 bool result); |
| 240 static void ReturnSubscriberTexture( | 243 static void ReturnSubscriberTexture( |
| 241 base::WeakPtr<DelegatedFrameHost> rwhva, | 244 base::WeakPtr<DelegatedFrameHost> rwhva, |
| 242 scoped_refptr<OwnedMailbox> subscriber_texture, | 245 scoped_refptr<OwnedMailbox> subscriber_texture, |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 // YUV readback pipeline. | 342 // YUV readback pipeline. |
| 340 scoped_ptr<content::ReadbackYUVInterface> | 343 scoped_ptr<content::ReadbackYUVInterface> |
| 341 yuv_readback_pipeline_; | 344 yuv_readback_pipeline_; |
| 342 | 345 |
| 343 scoped_ptr<DelegatedFrameEvictor> delegated_frame_evictor_; | 346 scoped_ptr<DelegatedFrameEvictor> delegated_frame_evictor_; |
| 344 }; | 347 }; |
| 345 | 348 |
| 346 } // namespace content | 349 } // namespace content |
| 347 | 350 |
| 348 #endif // CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ | 351 #endif // CONTENT_BROWSER_COMPOSITOR_DELEGATED_FRAME_HOST_H_ |
| OLD | NEW |