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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
99 const gfx::Size& surface_size, | 99 const gfx::Size& surface_size, |
100 const gfx::Transform& transform, | 100 const gfx::Transform& transform, |
101 const gfx::Rect& viewport, | 101 const gfx::Rect& viewport, |
102 const gfx::Rect& clip, | 102 const gfx::Rect& clip, |
103 const gfx::Rect& viewport_rect_for_tile_priority, | 103 const gfx::Rect& viewport_rect_for_tile_priority, |
104 const gfx::Transform& transform_for_tile_priority) { | 104 const gfx::Transform& transform_for_tile_priority) { |
105 SyncCompositorDemandDrawHwParams params(surface_size, transform, viewport, | 105 SyncCompositorDemandDrawHwParams params(surface_size, transform, viewport, |
106 clip, viewport_rect_for_tile_priority, | 106 clip, viewport_rect_for_tile_priority, |
107 transform_for_tile_priority); | 107 transform_for_tile_priority); |
108 SynchronousCompositor::Frame frame; | 108 SynchronousCompositor::Frame frame; |
109 frame.frame.reset(new cc::CompositorFrame); | 109 frame.frame = cc::CompositorFrame::Create(); |
110 SyncCompositorCommonRendererParams common_renderer_params; | 110 SyncCompositorCommonRendererParams common_renderer_params; |
111 if (!sender_->Send(new SyncCompositorMsg_DemandDrawHw( | 111 if (!sender_->Send(new SyncCompositorMsg_DemandDrawHw( |
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))) { |
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); |
123 } | 123 } |
(...skipping 19 matching lines...) Expand all Loading... | |
143 | 143 |
144 private: | 144 private: |
145 DISALLOW_COPY_AND_ASSIGN(ScopedSetSkCanvas); | 145 DISALLOW_COPY_AND_ASSIGN(ScopedSetSkCanvas); |
146 }; | 146 }; |
147 | 147 |
148 } | 148 } |
149 | 149 |
150 bool SynchronousCompositorHost::DemandDrawSwInProc(SkCanvas* canvas) { | 150 bool SynchronousCompositorHost::DemandDrawSwInProc(SkCanvas* canvas) { |
151 SyncCompositorCommonRendererParams common_renderer_params; | 151 SyncCompositorCommonRendererParams common_renderer_params; |
152 bool success = false; | 152 bool success = false; |
153 std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 153 std::unique_ptr<cc::CompositorFrame> frame(cc::CompositorFrame::Create()); |
danakj
2016/06/23 20:34:41
just allocate this on the stack, since ownership n
| |
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, &frame))) { |
158 frame.get()))) { | |
159 return false; | 158 return false; |
160 } | 159 } |
161 if (!success) | 160 if (!success) |
162 return false; | 161 return false; |
163 ProcessCommonParams(common_renderer_params); | 162 ProcessCommonParams(common_renderer_params); |
164 UpdateFrameMetaData(frame->metadata); | 163 UpdateFrameMetaData(frame->metadata); |
165 return true; | 164 return true; |
166 } | 165 } |
167 | 166 |
168 class SynchronousCompositorHost::ScopedSendZeroMemory { | 167 class SynchronousCompositorHost::ScopedSendZeroMemory { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
207 DCHECK_EQ(kRGBA_8888_SkColorType, info.colorType()); | 206 DCHECK_EQ(kRGBA_8888_SkColorType, info.colorType()); |
208 size_t stride = info.minRowBytes(); | 207 size_t stride = info.minRowBytes(); |
209 size_t buffer_size = info.getSafeSize(stride); | 208 size_t buffer_size = info.getSafeSize(stride); |
210 if (!buffer_size) | 209 if (!buffer_size) |
211 return false; // Overflow. | 210 return false; // Overflow. |
212 | 211 |
213 SetSoftwareDrawSharedMemoryIfNeeded(stride, buffer_size); | 212 SetSoftwareDrawSharedMemoryIfNeeded(stride, buffer_size); |
214 if (!software_draw_shm_) | 213 if (!software_draw_shm_) |
215 return false; | 214 return false; |
216 | 215 |
217 std::unique_ptr<cc::CompositorFrame> frame(new cc::CompositorFrame); | 216 std::unique_ptr<cc::CompositorFrame> frame(cc::CompositorFrame::Create()); |
danakj
2016/06/23 20:34:41
ditto
| |
218 SyncCompositorCommonRendererParams common_renderer_params; | 217 SyncCompositorCommonRendererParams common_renderer_params; |
219 bool success = false; | 218 bool success = false; |
220 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( | 219 if (!sender_->Send(new SyncCompositorMsg_DemandDrawSw( |
221 routing_id_, params, &success, &common_renderer_params, | 220 routing_id_, params, &success, &common_renderer_params, &frame))) { |
222 frame.get()))) { | |
223 return false; | 221 return false; |
224 } | 222 } |
225 ScopedSendZeroMemory send_zero_memory(this); | 223 ScopedSendZeroMemory send_zero_memory(this); |
226 if (!success) | 224 if (!success) |
227 return false; | 225 return false; |
228 | 226 |
229 ProcessCommonParams(common_renderer_params); | 227 ProcessCommonParams(common_renderer_params); |
230 UpdateFrameMetaData(frame->metadata); | 228 UpdateFrameMetaData(frame->metadata); |
231 | 229 |
232 SkBitmap bitmap; | 230 SkBitmap bitmap; |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
383 if (params.page_scale_factor) { | 381 if (params.page_scale_factor) { |
384 client_->UpdateRootLayerState( | 382 client_->UpdateRootLayerState( |
385 this, gfx::ScrollOffsetToVector2dF(params.total_scroll_offset), | 383 this, gfx::ScrollOffsetToVector2dF(params.total_scroll_offset), |
386 gfx::ScrollOffsetToVector2dF(params.max_scroll_offset), | 384 gfx::ScrollOffsetToVector2dF(params.max_scroll_offset), |
387 params.scrollable_size, params.page_scale_factor, | 385 params.scrollable_size, params.page_scale_factor, |
388 params.min_page_scale_factor, params.max_page_scale_factor); | 386 params.min_page_scale_factor, params.max_page_scale_factor); |
389 } | 387 } |
390 } | 388 } |
391 | 389 |
392 } // namespace content | 390 } // namespace content |
OLD | NEW |