Chromium Code Reviews| Index: ui/gfx/canvas.cc |
| diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc |
| index df386f7da584da4a48cd1b59404d5e455763bb54..c480f0bd2b05c15004254aef32c8e3f13e7debc9 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,12 @@ 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(); |
|
danakj
2016/11/14 19:35:15
do this as a contructor init (you'll need to make
reed1
2016/11/14 20:50:08
Done.
|
| +} |
| -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 +62,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); |
| } |