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

Side by Side Diff: cc/playback/display_item_list.cc

Issue 1819683002: Use sk_sp-based picture recording APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 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 "cc/playback/display_item_list.h" 5 #include "cc/playback/display_item_list.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 // rects. For now we just clear them out since we won't ever need 177 // rects. For now we just clear them out since we won't ever need
178 // them to stick around post-Finalize. http://crbug.com/527245 178 // them to stick around post-Finalize. http://crbug.com/527245
179 // This clears both the vector and the vector's capacity, since visual_rects_ 179 // This clears both the vector and the vector's capacity, since visual_rects_
180 // won't be used anymore. 180 // won't be used anymore.
181 std::vector<gfx::Rect>().swap(visual_rects_); 181 std::vector<gfx::Rect>().swap(visual_rects_);
182 182
183 if (settings_.use_cached_picture) { 183 if (settings_.use_cached_picture) {
184 // Convert to an SkPicture for faster rasterization. 184 // Convert to an SkPicture for faster rasterization.
185 DCHECK(settings_.use_cached_picture); 185 DCHECK(settings_.use_cached_picture);
186 DCHECK(!picture_); 186 DCHECK(!picture_);
187 picture_ = skia::AdoptRef(recorder_->endRecordingAsPicture()); 187 picture_ = recorder_->finishRecordingAsPicture();
188 DCHECK(picture_); 188 DCHECK(picture_);
189 picture_memory_usage_ = 189 picture_memory_usage_ =
190 SkPictureUtils::ApproximateBytesUsed(picture_.get()); 190 SkPictureUtils::ApproximateBytesUsed(picture_.get());
191 recorder_.reset(); 191 recorder_.reset();
192 canvas_.clear(); 192 canvas_.clear();
193 is_suitable_for_gpu_rasterization_ = 193 is_suitable_for_gpu_rasterization_ =
194 picture_->suitableForGpuRasterization(nullptr); 194 picture_->suitableForGpuRasterization(nullptr);
195 } 195 }
196 } 196 }
197 197
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 state->SetValue("layer_rect", MathUtil::AsValue(layer_rect_)); 258 state->SetValue("layer_rect", MathUtil::AsValue(layer_rect_));
259 state->EndDictionary(); // "params". 259 state->EndDictionary(); // "params".
260 260
261 if (!layer_rect_.IsEmpty()) { 261 if (!layer_rect_.IsEmpty()) {
262 SkPictureRecorder recorder; 262 SkPictureRecorder recorder;
263 SkCanvas* canvas = 263 SkCanvas* canvas =
264 recorder.beginRecording(layer_rect_.width(), layer_rect_.height()); 264 recorder.beginRecording(layer_rect_.width(), layer_rect_.height());
265 canvas->translate(-layer_rect_.x(), -layer_rect_.y()); 265 canvas->translate(-layer_rect_.x(), -layer_rect_.y());
266 canvas->clipRect(gfx::RectToSkRect(layer_rect_)); 266 canvas->clipRect(gfx::RectToSkRect(layer_rect_));
267 Raster(canvas, NULL, gfx::Rect(), 1.f); 267 Raster(canvas, NULL, gfx::Rect(), 1.f);
268 skia::RefPtr<SkPicture> picture = 268 sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
269 skia::AdoptRef(recorder.endRecordingAsPicture());
270 269
271 std::string b64_picture; 270 std::string b64_picture;
272 PictureDebugUtil::SerializeAsBase64(picture.get(), &b64_picture); 271 PictureDebugUtil::SerializeAsBase64(picture.get(), &b64_picture);
273 state->SetString("skp64", b64_picture); 272 state->SetString("skp64", b64_picture);
274 } 273 }
275 274
276 return std::move(state); 275 return std::move(state);
277 } 276 }
278 277
279 void DisplayItemList::EmitTraceSnapshot() const { 278 void DisplayItemList::EmitTraceSnapshot() const {
(...skipping 27 matching lines...) Expand all
307 float raster_scale, 306 float raster_scale,
308 std::vector<DrawImage>* images) { 307 std::vector<DrawImage>* images) {
309 image_map_.GetDiscardableImagesInRect(rect, raster_scale, images); 308 image_map_.GetDiscardableImagesInRect(rect, raster_scale, images);
310 } 309 }
311 310
312 bool DisplayItemList::MayHaveDiscardableImages() const { 311 bool DisplayItemList::MayHaveDiscardableImages() const {
313 return !image_map_.empty(); 312 return !image_map_.empty();
314 } 313 }
315 314
316 } // namespace cc 315 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698