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

Unified Diff: ui/gfx/canvas.cc

Issue 2476113002: Change call-sites now that SkCanvas is not ref-counted (Closed)
Patch Set: try fixing win again Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: ui/gfx/canvas.cc
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc
index df386f7da584da4a48cd1b59404d5e455763bb54..73a7a669700cebcc2891ae9d88ca2d3827b047c3 100644
--- a/ui/gfx/canvas.cc
+++ b/ui/gfx/canvas.cc
@@ -28,9 +28,10 @@ namespace gfx {
Canvas::Canvas(const Size& size, float image_scale, bool is_opaque)
: image_scale_(image_scale) {
Size pixel_size = ScaleToCeiledSize(size, image_scale);
- canvas_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas(pixel_size.width(),
- pixel_size.height(),
- is_opaque));
+ canvas_owner_ = skia::CreatePlatformCanvas(pixel_size.width(),
+ pixel_size.height(), is_opaque);
+ canvas_ = canvas_owner_.get();
+
#if !defined(USE_CAIRO)
// skia::PlatformCanvas instances are initialized to 0 by Cairo, but
// uninitialized on other platforms.
@@ -44,10 +45,11 @@ Canvas::Canvas(const Size& size, float image_scale, bool is_opaque)
Canvas::Canvas()
: image_scale_(1.f),
- canvas_(sk_sp<SkCanvas>(skia::CreatePlatformCanvas(0, 0, false))) {}
+ canvas_owner_(skia::CreatePlatformCanvas(0, 0, false)),
+ canvas_(canvas_owner_.get()) {}
-Canvas::Canvas(sk_sp<SkCanvas> canvas, float image_scale)
- : image_scale_(image_scale), canvas_(std::move(canvas)) {
+Canvas::Canvas(SkCanvas* canvas, float image_scale)
+ : image_scale_(image_scale), canvas_(canvas) {
DCHECK(canvas_);
}
@@ -59,9 +61,10 @@ void Canvas::RecreateBackingCanvas(const Size& size,
bool is_opaque) {
image_scale_ = image_scale;
Size pixel_size = ScaleToFlooredSize(size, image_scale);
- canvas_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas(pixel_size.width(),
- pixel_size.height(),
- is_opaque));
+ canvas_owner_ = skia::CreatePlatformCanvas(pixel_size.width(),
+ pixel_size.height(), is_opaque);
+ canvas_ = canvas_owner_.get();
+
SkScalar scale_scalar = SkFloatToScalar(image_scale);
canvas_->scale(scale_scalar, scale_scalar);
}

Powered by Google App Engine
This is Rietveld 408576698