| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/android/synchronous_compositor_host.h" | 5 #include "content/browser/android/synchronous_compositor_host.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 routing_id_, params, &common_renderer_params, | 112 routing_id_, params, &common_renderer_params, |
| 113 &frame.output_surface_id, frame.frame.get()))) { | 113 &frame.output_surface_id, frame.frame.get()))) { |
| 114 return SynchronousCompositor::Frame(); | 114 return SynchronousCompositor::Frame(); |
| 115 } | 115 } |
| 116 ProcessCommonParams(common_renderer_params); | 116 ProcessCommonParams(common_renderer_params); |
| 117 if (!frame.frame->delegated_frame_data) { | 117 if (!frame.frame->delegated_frame_data) { |
| 118 // This can happen if compositor did not swap in this draw. | 118 // This can happen if compositor did not swap in this draw. |
| 119 frame.frame.reset(); | 119 frame.frame.reset(); |
| 120 } | 120 } |
| 121 if (frame.frame) { | 121 if (frame.frame) { |
| 122 UpdateFrameMetaData(frame.frame->metadata); | 122 UpdateFrameMetaData(frame.frame->metadata.Clone()); |
| 123 } | 123 } |
| 124 return frame; | 124 return frame; |
| 125 } | 125 } |
| 126 | 126 |
| 127 void SynchronousCompositorHost::UpdateFrameMetaData( | 127 void SynchronousCompositorHost::UpdateFrameMetaData( |
| 128 const cc::CompositorFrameMetadata& frame_metadata) { | 128 cc::CompositorFrameMetadata frame_metadata) { |
| 129 rwhva_->SynchronousFrameMetadata(frame_metadata); | 129 rwhva_->SynchronousFrameMetadata(std::move(frame_metadata)); |
| 130 } | 130 } |
| 131 | 131 |
| 132 namespace { | 132 namespace { |
| 133 | 133 |
| 134 class ScopedSetSkCanvas { | 134 class ScopedSetSkCanvas { |
| 135 public: | 135 public: |
| 136 explicit ScopedSetSkCanvas(SkCanvas* canvas) { | 136 explicit ScopedSetSkCanvas(SkCanvas* canvas) { |
| 137 SynchronousCompositorSetSkCanvas(canvas); | 137 SynchronousCompositorSetSkCanvas(canvas); |
| 138 } | 138 } |
| 139 | 139 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 154 ScopedSetSkCanvas set_sk_canvas(canvas); | 154 ScopedSetSkCanvas set_sk_canvas(canvas); |
| 155 SyncCompositorDemandDrawSwParams params; // Unused. | 155 SyncCompositorDemandDrawSwParams params; // Unused. |
| 156 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( | 156 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( |
| 157 routing_id_, params, &success, &common_renderer_params, | 157 routing_id_, params, &success, &common_renderer_params, |
| 158 frame.get()))) { | 158 frame.get()))) { |
| 159 return false; | 159 return false; |
| 160 } | 160 } |
| 161 if (!success) | 161 if (!success) |
| 162 return false; | 162 return false; |
| 163 ProcessCommonParams(common_renderer_params); | 163 ProcessCommonParams(common_renderer_params); |
| 164 UpdateFrameMetaData(frame->metadata); | 164 UpdateFrameMetaData(std::move(frame->metadata)); |
| 165 return true; | 165 return true; |
| 166 } | 166 } |
| 167 | 167 |
| 168 class SynchronousCompositorHost::ScopedSendZeroMemory { | 168 class SynchronousCompositorHost::ScopedSendZeroMemory { |
| 169 public: | 169 public: |
| 170 ScopedSendZeroMemory(SynchronousCompositorHost* host) : host_(host) {} | 170 ScopedSendZeroMemory(SynchronousCompositorHost* host) : host_(host) {} |
| 171 ~ScopedSendZeroMemory() { host_->SendZeroMemory(); } | 171 ~ScopedSendZeroMemory() { host_->SendZeroMemory(); } |
| 172 | 172 |
| 173 private: | 173 private: |
| 174 SynchronousCompositorHost* const host_; | 174 SynchronousCompositorHost* const host_; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( | 220 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( |
| 221 routing_id_, params, &success, &common_renderer_params, | 221 routing_id_, params, &success, &common_renderer_params, |
| 222 frame.get()))) { | 222 frame.get()))) { |
| 223 return false; | 223 return false; |
| 224 } | 224 } |
| 225 ScopedSendZeroMemory send_zero_memory(this); | 225 ScopedSendZeroMemory send_zero_memory(this); |
| 226 if (!success) | 226 if (!success) |
| 227 return false; | 227 return false; |
| 228 | 228 |
| 229 ProcessCommonParams(common_renderer_params); | 229 ProcessCommonParams(common_renderer_params); |
| 230 UpdateFrameMetaData(frame->metadata); | 230 UpdateFrameMetaData(std::move(frame->metadata)); |
| 231 | 231 |
| 232 SkBitmap bitmap; | 232 SkBitmap bitmap; |
| 233 if (!bitmap.installPixels(info, software_draw_shm_->shm.memory(), stride)) | 233 if (!bitmap.installPixels(info, software_draw_shm_->shm.memory(), stride)) |
| 234 return false; | 234 return false; |
| 235 | 235 |
| 236 { | 236 { |
| 237 TRACE_EVENT0("browser", "DrawBitmap"); | 237 TRACE_EVENT0("browser", "DrawBitmap"); |
| 238 canvas->save(); | 238 canvas->save(); |
| 239 canvas->resetMatrix(); | 239 canvas->resetMatrix(); |
| 240 canvas->drawBitmap(bitmap, 0, 0); | 240 canvas->drawBitmap(bitmap, 0, 0); |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 if (params.page_scale_factor) { | 383 if (params.page_scale_factor) { |
| 384 client_->UpdateRootLayerState( | 384 client_->UpdateRootLayerState( |
| 385 this, gfx::ScrollOffsetToVector2dF(params.total_scroll_offset), | 385 this, gfx::ScrollOffsetToVector2dF(params.total_scroll_offset), |
| 386 gfx::ScrollOffsetToVector2dF(params.max_scroll_offset), | 386 gfx::ScrollOffsetToVector2dF(params.max_scroll_offset), |
| 387 params.scrollable_size, params.page_scale_factor, | 387 params.scrollable_size, params.page_scale_factor, |
| 388 params.min_page_scale_factor, params.max_page_scale_factor); | 388 params.min_page_scale_factor, params.max_page_scale_factor); |
| 389 } | 389 } |
| 390 } | 390 } |
| 391 | 391 |
| 392 } // namespace content | 392 } // namespace content |
| OLD | NEW |