| 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/containers/hash_tables.h" | 9 #include "base/containers/hash_tables.h" |
| 10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 DISALLOW_COPY_AND_ASSIGN(ScopedSetSkCanvas); | 128 DISALLOW_COPY_AND_ASSIGN(ScopedSetSkCanvas); |
| 129 }; | 129 }; |
| 130 | 130 |
| 131 } | 131 } |
| 132 | 132 |
| 133 bool SynchronousCompositorHost::DemandDrawSwInProc(SkCanvas* canvas) { | 133 bool SynchronousCompositorHost::DemandDrawSwInProc(SkCanvas* canvas) { |
| 134 SyncCompositorCommonBrowserParams common_browser_params; | 134 SyncCompositorCommonBrowserParams common_browser_params; |
| 135 PopulateCommonParams(&common_browser_params); | 135 PopulateCommonParams(&common_browser_params); |
| 136 SyncCompositorCommonRendererParams common_renderer_params; | 136 SyncCompositorCommonRendererParams common_renderer_params; |
| 137 bool success = false; | 137 bool success = false; |
| 138 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 138 std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); |
| 139 ScopedSetSkCanvas set_sk_canvas(canvas); | 139 ScopedSetSkCanvas set_sk_canvas(canvas); |
| 140 SyncCompositorDemandDrawSwParams params; // Unused. | 140 SyncCompositorDemandDrawSwParams params; // Unused. |
| 141 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( | 141 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( |
| 142 routing_id_, common_browser_params, params, &success, | 142 routing_id_, common_browser_params, params, &success, |
| 143 &common_renderer_params, frame.get()))) { | 143 &common_renderer_params, frame.get()))) { |
| 144 return false; | 144 return false; |
| 145 } | 145 } |
| 146 if (!success) | 146 if (!success) |
| 147 return false; | 147 return false; |
| 148 ProcessCommonParams(common_renderer_params); | 148 ProcessCommonParams(common_renderer_params); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 DCHECK_EQ(kRGBA_8888_SkColorType, info.colorType()); | 192 DCHECK_EQ(kRGBA_8888_SkColorType, info.colorType()); |
| 193 size_t stride = info.minRowBytes(); | 193 size_t stride = info.minRowBytes(); |
| 194 size_t buffer_size = info.getSafeSize(stride); | 194 size_t buffer_size = info.getSafeSize(stride); |
| 195 if (!buffer_size) | 195 if (!buffer_size) |
| 196 return false; // Overflow. | 196 return false; // Overflow. |
| 197 | 197 |
| 198 SetSoftwareDrawSharedMemoryIfNeeded(stride, buffer_size); | 198 SetSoftwareDrawSharedMemoryIfNeeded(stride, buffer_size); |
| 199 if (!software_draw_shm_) | 199 if (!software_draw_shm_) |
| 200 return false; | 200 return false; |
| 201 | 201 |
| 202 scoped_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 202 std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); |
| 203 SyncCompositorCommonBrowserParams common_browser_params; | 203 SyncCompositorCommonBrowserParams common_browser_params; |
| 204 PopulateCommonParams(&common_browser_params); | 204 PopulateCommonParams(&common_browser_params); |
| 205 SyncCompositorCommonRendererParams common_renderer_params; | 205 SyncCompositorCommonRendererParams common_renderer_params; |
| 206 bool success = false; | 206 bool success = false; |
| 207 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( | 207 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( |
| 208 routing_id_, common_browser_params, params, &success, | 208 routing_id_, common_browser_params, params, &success, |
| 209 &common_renderer_params, frame.get()))) { | 209 &common_renderer_params, frame.get()))) { |
| 210 return false; | 210 return false; |
| 211 } | 211 } |
| 212 ScopedSendZeroMemory send_zero_memory(this); | 212 ScopedSendZeroMemory send_zero_memory(this); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 231 return true; | 231 return true; |
| 232 } | 232 } |
| 233 | 233 |
| 234 void SynchronousCompositorHost::SetSoftwareDrawSharedMemoryIfNeeded( | 234 void SynchronousCompositorHost::SetSoftwareDrawSharedMemoryIfNeeded( |
| 235 size_t stride, | 235 size_t stride, |
| 236 size_t buffer_size) { | 236 size_t buffer_size) { |
| 237 if (software_draw_shm_ && software_draw_shm_->stride == stride && | 237 if (software_draw_shm_ && software_draw_shm_->stride == stride && |
| 238 software_draw_shm_->buffer_size == buffer_size) | 238 software_draw_shm_->buffer_size == buffer_size) |
| 239 return; | 239 return; |
| 240 software_draw_shm_.reset(); | 240 software_draw_shm_.reset(); |
| 241 scoped_ptr<SharedMemoryWithSize> software_draw_shm( | 241 std::unique_ptr<SharedMemoryWithSize> software_draw_shm( |
| 242 new SharedMemoryWithSize(stride, buffer_size)); | 242 new SharedMemoryWithSize(stride, buffer_size)); |
| 243 { | 243 { |
| 244 TRACE_EVENT1("browser", "AllocateSharedMemory", "buffer_size", buffer_size); | 244 TRACE_EVENT1("browser", "AllocateSharedMemory", "buffer_size", buffer_size); |
| 245 if (!software_draw_shm->shm.CreateAndMapAnonymous(buffer_size)) | 245 if (!software_draw_shm->shm.CreateAndMapAnonymous(buffer_size)) |
| 246 return; | 246 return; |
| 247 } | 247 } |
| 248 | 248 |
| 249 SyncCompositorSetSharedMemoryParams set_shm_params; | 249 SyncCompositorSetSharedMemoryParams set_shm_params; |
| 250 set_shm_params.buffer_size = buffer_size; | 250 set_shm_params.buffer_size = buffer_size; |
| 251 base::ProcessHandle renderer_process_handle = | 251 base::ProcessHandle renderer_process_handle = |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 params.scrollable_size, params.page_scale_factor, | 463 params.scrollable_size, params.page_scale_factor, |
| 464 params.min_page_scale_factor, params.max_page_scale_factor); | 464 params.min_page_scale_factor, params.max_page_scale_factor); |
| 465 } | 465 } |
| 466 } | 466 } |
| 467 | 467 |
| 468 void SynchronousCompositorHost::UpdateNeedsBeginFrames() { | 468 void SynchronousCompositorHost::UpdateNeedsBeginFrames() { |
| 469 rwhva_->OnSetNeedsBeginFrames(is_active_ && need_begin_frame_); | 469 rwhva_->OnSetNeedsBeginFrames(is_active_ && need_begin_frame_); |
| 470 } | 470 } |
| 471 | 471 |
| 472 } // namespace content | 472 } // namespace content |
| OLD | NEW |