Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: content/browser/android/synchronous_compositor_host.cc

Issue 2096493002: Make cc::CompositorFrames movable [Part 1 of 2] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Dana's nits Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698