| 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 #include "content/browser/renderer_host/browser_compositor_view_mac.h" | 5 #include "content/browser/renderer_host/browser_compositor_view_mac.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 outstanding_copy_count_ += 1; | 258 outstanding_copy_count_ += 1; |
| 259 | 259 |
| 260 auto callback_with_decrement = | 260 auto callback_with_decrement = |
| 261 base::Bind(&BrowserCompositorMac::CopyToVideoFrameCompleted, | 261 base::Bind(&BrowserCompositorMac::CopyToVideoFrameCompleted, |
| 262 weak_factory_.GetWeakPtr(), callback); | 262 weak_factory_.GetWeakPtr(), callback); |
| 263 | 263 |
| 264 delegated_frame_host_->CopyFromCompositingSurfaceToVideoFrame( | 264 delegated_frame_host_->CopyFromCompositingSurfaceToVideoFrame( |
| 265 src_subrect, target, callback_with_decrement); | 265 src_subrect, target, callback_with_decrement); |
| 266 } | 266 } |
| 267 | 267 |
| 268 void BrowserCompositorMac::SwapCompositorFrame(uint32_t output_surface_id, | 268 void BrowserCompositorMac::SwapCompositorFrame( |
| 269 cc::CompositorFrame frame) { | 269 uint32_t compositor_frame_sink_id, |
| 270 cc::CompositorFrame frame) { |
| 270 // Compute the frame size based on the root render pass rect size. | 271 // Compute the frame size based on the root render pass rect size. |
| 271 cc::RenderPass* root_pass = | 272 cc::RenderPass* root_pass = |
| 272 frame.delegated_frame_data->render_pass_list.back().get(); | 273 frame.delegated_frame_data->render_pass_list.back().get(); |
| 273 float scale_factor = frame.metadata.device_scale_factor; | 274 float scale_factor = frame.metadata.device_scale_factor; |
| 274 gfx::Size pixel_size = root_pass->output_rect.size(); | 275 gfx::Size pixel_size = root_pass->output_rect.size(); |
| 275 gfx::Size dip_size = gfx::ConvertSizeToDIP(scale_factor, pixel_size); | 276 gfx::Size dip_size = gfx::ConvertSizeToDIP(scale_factor, pixel_size); |
| 276 root_layer_->SetBounds(gfx::Rect(dip_size)); | 277 root_layer_->SetBounds(gfx::Rect(dip_size)); |
| 277 if (recyclable_compositor_) { | 278 if (recyclable_compositor_) { |
| 278 recyclable_compositor_->compositor()->SetScaleAndSize(scale_factor, | 279 recyclable_compositor_->compositor()->SetScaleAndSize(scale_factor, |
| 279 pixel_size); | 280 pixel_size); |
| 280 } | 281 } |
| 281 delegated_frame_host_->SwapDelegatedFrame(output_surface_id, | 282 delegated_frame_host_->SwapDelegatedFrame(compositor_frame_sink_id, |
| 282 std::move(frame)); | 283 std::move(frame)); |
| 283 } | 284 } |
| 284 | 285 |
| 285 void BrowserCompositorMac::SetHasTransparentBackground(bool transparent) { | 286 void BrowserCompositorMac::SetHasTransparentBackground(bool transparent) { |
| 286 has_transparent_background_ = transparent; | 287 has_transparent_background_ = transparent; |
| 287 if (recyclable_compositor_) { | 288 if (recyclable_compositor_) { |
| 288 recyclable_compositor_->compositor()->SetHostHasTransparentBackground( | 289 recyclable_compositor_->compositor()->SetHostHasTransparentBackground( |
| 289 has_transparent_background_); | 290 has_transparent_background_); |
| 290 } | 291 } |
| 291 } | 292 } |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 bool defer_compositor_lock) { | 429 bool defer_compositor_lock) { |
| 429 NOTREACHED(); | 430 NOTREACHED(); |
| 430 return std::unique_ptr<ResizeLock>(); | 431 return std::unique_ptr<ResizeLock>(); |
| 431 } | 432 } |
| 432 | 433 |
| 433 void BrowserCompositorMac::DelegatedFrameHostResizeLockWasReleased() { | 434 void BrowserCompositorMac::DelegatedFrameHostResizeLockWasReleased() { |
| 434 NOTREACHED(); | 435 NOTREACHED(); |
| 435 } | 436 } |
| 436 | 437 |
| 437 void BrowserCompositorMac::DelegatedFrameHostSendReclaimCompositorResources( | 438 void BrowserCompositorMac::DelegatedFrameHostSendReclaimCompositorResources( |
| 438 int output_surface_id, | 439 int compositor_frame_sink_id, |
| 439 bool is_swap_ack, | 440 bool is_swap_ack, |
| 440 const cc::ReturnedResourceArray& resources) { | 441 const cc::ReturnedResourceArray& resources) { |
| 441 client_->BrowserCompositorMacSendReclaimCompositorResources( | 442 client_->BrowserCompositorMacSendReclaimCompositorResources( |
| 442 output_surface_id, is_swap_ack, resources); | 443 compositor_frame_sink_id, is_swap_ack, resources); |
| 443 } | 444 } |
| 444 | 445 |
| 445 void BrowserCompositorMac::DelegatedFrameHostOnLostCompositorResources() { | 446 void BrowserCompositorMac::DelegatedFrameHostOnLostCompositorResources() { |
| 446 client_->BrowserCompositorMacOnLostCompositorResources(); | 447 client_->BrowserCompositorMacOnLostCompositorResources(); |
| 447 } | 448 } |
| 448 | 449 |
| 449 void BrowserCompositorMac::SetBeginFrameSource(cc::BeginFrameSource* source) { | 450 void BrowserCompositorMac::SetBeginFrameSource(cc::BeginFrameSource* source) { |
| 450 if (begin_frame_source_ && needs_begin_frames_) | 451 if (begin_frame_source_ && needs_begin_frames_) |
| 451 begin_frame_source_->RemoveObserver(this); | 452 begin_frame_source_->RemoveObserver(this); |
| 452 begin_frame_source_ = source; | 453 begin_frame_source_ = source; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 469 | 470 |
| 470 const cc::BeginFrameArgs& BrowserCompositorMac::LastUsedBeginFrameArgs() const { | 471 const cc::BeginFrameArgs& BrowserCompositorMac::LastUsedBeginFrameArgs() const { |
| 471 return last_begin_frame_args_; | 472 return last_begin_frame_args_; |
| 472 } | 473 } |
| 473 | 474 |
| 474 void BrowserCompositorMac::OnBeginFrameSourcePausedChanged(bool paused) { | 475 void BrowserCompositorMac::OnBeginFrameSourcePausedChanged(bool paused) { |
| 475 // Only used on Android WebView. | 476 // Only used on Android WebView. |
| 476 } | 477 } |
| 477 | 478 |
| 478 } // namespace content | 479 } // namespace content |
| OLD | NEW |