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

Side by Side Diff: ui/gfx/canvas.cc

Issue 1939143002: Remove all uses of skia::RefPtr and stale includes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Florin's nits Created 4 years, 7 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
« no previous file with comments | « ui/gfx/canvas.h ('k') | ui/gfx/platform_font_linux.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/gfx/canvas.h" 5 #include "ui/gfx/canvas.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "third_party/skia/include/core/SkBitmap.h" 12 #include "third_party/skia/include/core/SkBitmap.h"
13 #include "third_party/skia/include/core/SkPath.h" 13 #include "third_party/skia/include/core/SkPath.h"
14 #include "third_party/skia/include/core/SkRefCnt.h"
14 #include "third_party/skia/include/effects/SkGradientShader.h" 15 #include "third_party/skia/include/effects/SkGradientShader.h"
15 #include "ui/gfx/font_list.h" 16 #include "ui/gfx/font_list.h"
16 #include "ui/gfx/geometry/rect.h" 17 #include "ui/gfx/geometry/rect.h"
17 #include "ui/gfx/geometry/rect_conversions.h" 18 #include "ui/gfx/geometry/rect_conversions.h"
18 #include "ui/gfx/geometry/rect_f.h" 19 #include "ui/gfx/geometry/rect_f.h"
19 #include "ui/gfx/geometry/safe_integer_conversions.h" 20 #include "ui/gfx/geometry/safe_integer_conversions.h"
20 #include "ui/gfx/geometry/size_conversions.h" 21 #include "ui/gfx/geometry/size_conversions.h"
21 #include "ui/gfx/scoped_canvas.h" 22 #include "ui/gfx/scoped_canvas.h"
22 #include "ui/gfx/skia_util.h" 23 #include "ui/gfx/skia_util.h"
23 #include "ui/gfx/transform.h" 24 #include "ui/gfx/transform.h"
24 25
25 namespace gfx { 26 namespace gfx {
26 27
27 Canvas::Canvas(const Size& size, float image_scale, bool is_opaque) 28 Canvas::Canvas(const Size& size, float image_scale, bool is_opaque)
28 : image_scale_(image_scale) { 29 : image_scale_(image_scale) {
29 Size pixel_size = ScaleToCeiledSize(size, image_scale); 30 Size pixel_size = ScaleToCeiledSize(size, image_scale);
30 canvas_ = skia::AdoptRef(skia::CreatePlatformCanvas(pixel_size.width(), 31 canvas_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas(pixel_size.width(),
31 pixel_size.height(), 32 pixel_size.height(),
32 is_opaque)); 33 is_opaque));
33 #if !defined(USE_CAIRO) 34 #if !defined(USE_CAIRO)
34 // skia::PlatformCanvas instances are initialized to 0 by Cairo, but 35 // skia::PlatformCanvas instances are initialized to 0 by Cairo, but
35 // uninitialized on other platforms. 36 // uninitialized on other platforms.
36 if (!is_opaque) 37 if (!is_opaque)
37 canvas_->clear(SkColorSetARGB(0, 0, 0, 0)); 38 canvas_->clear(SkColorSetARGB(0, 0, 0, 0));
38 #endif 39 #endif
39 40
40 SkScalar scale_scalar = SkFloatToScalar(image_scale); 41 SkScalar scale_scalar = SkFloatToScalar(image_scale);
41 canvas_->scale(scale_scalar, scale_scalar); 42 canvas_->scale(scale_scalar, scale_scalar);
42 } 43 }
43 44
44 Canvas::Canvas(const ImageSkiaRep& image_rep, bool is_opaque) 45 Canvas::Canvas(const ImageSkiaRep& image_rep, bool is_opaque)
45 : image_scale_(image_rep.scale()), 46 : image_scale_(image_rep.scale()),
46 canvas_(skia::AdoptRef( 47 canvas_(sk_sp<SkCanvas>(
47 skia::CreatePlatformCanvas(image_rep.pixel_width(), 48 skia::CreatePlatformCanvas(image_rep.pixel_width(),
48 image_rep.pixel_height(), 49 image_rep.pixel_height(),
49 is_opaque))) { 50 is_opaque))) {
50 SkScalar scale_scalar = SkFloatToScalar(image_scale_); 51 SkScalar scale_scalar = SkFloatToScalar(image_scale_);
51 canvas_->scale(scale_scalar, scale_scalar); 52 canvas_->scale(scale_scalar, scale_scalar);
52 DrawImageInt(ImageSkia(image_rep), 0, 0); 53 DrawImageInt(ImageSkia(image_rep), 0, 0);
53 } 54 }
54 55
55 Canvas::Canvas() 56 Canvas::Canvas()
56 : image_scale_(1.f), 57 : image_scale_(1.f),
57 canvas_(skia::AdoptRef(skia::CreatePlatformCanvas(0, 0, false))) {} 58 canvas_(sk_sp<SkCanvas>(skia::CreatePlatformCanvas(0, 0, false))) {}
58 59
59 Canvas::Canvas(const skia::RefPtr<SkCanvas>& canvas, float image_scale) 60 Canvas::Canvas(const sk_sp<SkCanvas> canvas, float image_scale)
danakj 2016/05/04 19:44:53 remove const
tomhudson 2016/05/04 19:59:53 Oops, good catch. Done.
60 : image_scale_(image_scale), canvas_(canvas) { 61 : image_scale_(image_scale), canvas_(std::move(canvas)) {
61 DCHECK(canvas); 62 DCHECK(canvas);
62 } 63 }
63 64
64 Canvas::~Canvas() { 65 Canvas::~Canvas() {
65 } 66 }
66 67
67 void Canvas::RecreateBackingCanvas(const Size& size, 68 void Canvas::RecreateBackingCanvas(const Size& size,
68 float image_scale, 69 float image_scale,
69 bool is_opaque) { 70 bool is_opaque) {
70 image_scale_ = image_scale; 71 image_scale_ = image_scale;
71 Size pixel_size = ScaleToFlooredSize(size, image_scale); 72 Size pixel_size = ScaleToFlooredSize(size, image_scale);
72 canvas_ = skia::AdoptRef(skia::CreatePlatformCanvas(pixel_size.width(), 73 canvas_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas(pixel_size.width(),
73 pixel_size.height(), 74 pixel_size.height(),
74 is_opaque)); 75 is_opaque));
75 SkScalar scale_scalar = SkFloatToScalar(image_scale); 76 SkScalar scale_scalar = SkFloatToScalar(image_scale);
76 canvas_->scale(scale_scalar, scale_scalar); 77 canvas_->scale(scale_scalar, scale_scalar);
77 } 78 }
78 79
79 // static 80 // static
80 void Canvas::SizeStringInt(const base::string16& text, 81 void Canvas::SizeStringInt(const base::string16& text,
81 const FontList& font_list, 82 const FontList& font_list,
82 int* width, 83 int* width,
83 int* height, 84 int* height,
84 int line_height, 85 int line_height,
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 p.setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality); 559 p.setFilterQuality(filter ? kLow_SkFilterQuality : kNone_SkFilterQuality);
559 p.setShader(CreateImageRepShaderForScale( 560 p.setShader(CreateImageRepShaderForScale(
560 image_rep, SkShader::kRepeat_TileMode, shader_scale, 561 image_rep, SkShader::kRepeat_TileMode, shader_scale,
561 remove_image_scale ? image_rep.scale() : 1.f)); 562 remove_image_scale ? image_rep.scale() : 1.f));
562 563
563 // The rect will be filled by the bitmap. 564 // The rect will be filled by the bitmap.
564 canvas_->drawRect(dest_rect, p); 565 canvas_->drawRect(dest_rect, p);
565 } 566 }
566 567
567 } // namespace gfx 568 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/canvas.h ('k') | ui/gfx/platform_font_linux.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698