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

Side by Side Diff: gm/colortype.cpp

Issue 1933393002: Move SkTypeface to sk_sp. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Address comments. 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
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "gm.h" 8 #include "gm.h"
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkGradientShader.h" 10 #include "SkGradientShader.h"
11 #include "../src/fonts/SkGScalerContext.h" 11 #include "../src/fonts/SkGScalerContext.h"
12 12
13 class ColorTypeGM : public skiagm::GM { 13 class ColorTypeGM : public skiagm::GM {
14 public: 14 public:
15 ColorTypeGM() 15 ColorTypeGM() {}
16 : fColorType(nullptr) {
17 }
18
19 virtual ~ColorTypeGM() {
20 SkSafeUnref(fColorType);
21 }
22 16
23 protected: 17 protected:
24 void onOnceBeforeDraw() override { 18 void onOnceBeforeDraw() override {
25 const SkColor colors[] = { 19 const SkColor colors[] = {
26 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, 20 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE,
27 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW 21 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW
28 }; 22 };
29 SkMatrix local; 23 SkMatrix local;
30 local.setRotate(180); 24 local.setRotate(180);
31 SkPaint paint; 25 SkPaint paint;
32 paint.setAntiAlias(true); 26 paint.setAntiAlias(true);
33 paint.setShader(SkGradientShader::MakeSweep(0, 0, colors, nullptr, SK_AR RAY_COUNT(colors), 27 paint.setShader(SkGradientShader::MakeSweep(0, 0, colors, nullptr, SK_AR RAY_COUNT(colors),
34 0, &local)); 28 0, &local));
35 29
36 SkTypeface* orig = sk_tool_utils::create_portable_typeface("serif", SkTy peface::kBold); 30 auto orig = sk_tool_utils::create_portable_typeface("serif", SkTypeface: :kBold);
f(malita) 2016/05/02 13:46:35 Nit: Chrome disallows auto for smart ptrs, and I t
bungeman-skia 2016/05/02 20:24:54 These were all in the CL I started this with... wi
reed1 2016/05/03 13:45:00 I didn't know that. I'd like to be caught up in th
37 if (nullptr == orig) { 31 if (nullptr == orig) {
38 orig = SkTypeface::RefDefault(); 32 orig = SkTypeface::MakeDefault();
39 } 33 }
40 fColorType = new SkGTypeface(orig, paint); 34 fColorType = sk_make_sp<SkGTypeface>(std::move(orig), paint);
41 orig->unref();
42 } 35 }
43 36
44 SkString onShortName() override { 37 SkString onShortName() override {
45 return SkString("colortype"); 38 return SkString("colortype");
46 } 39 }
47 40
48 SkISize onISize() override { 41 SkISize onISize() override {
49 return SkISize::Make(640, 480); 42 return SkISize::Make(640, 480);
50 } 43 }
51 44
52 void onDraw(SkCanvas* canvas) override { 45 void onDraw(SkCanvas* canvas) override {
53 SkPaint paint; 46 SkPaint paint;
54 paint.setAntiAlias(true); 47 paint.setAntiAlias(true);
55 paint.setTypeface(fColorType); 48 paint.setTypeface(fColorType);
56 49
57 for (SkScalar size = 10; size <= 100; size += 10) { 50 for (SkScalar size = 10; size <= 100; size += 10) {
58 paint.setTextSize(size); 51 paint.setTextSize(size);
59 canvas->translate(0, paint.getFontMetrics(nullptr)); 52 canvas->translate(0, paint.getFontMetrics(nullptr));
60 canvas->drawText("Hamburgefons", 12, 10, 10, paint); 53 canvas->drawText("Hamburgefons", 12, 10, 10, paint);
61 } 54 }
62 } 55 }
63 56
64 private: 57 private:
65 SkTypeface* fColorType; 58 sk_sp<SkTypeface> fColorType;
66 59
67 typedef skiagm::GM INHERITED; 60 typedef skiagm::GM INHERITED;
68 }; 61 };
69 62
70 DEF_GM(return new ColorTypeGM;) 63 DEF_GM(return new ColorTypeGM;)
OLDNEW
« no previous file with comments | « gm/coloremoji.cpp ('k') | gm/colortypexfermode.cpp » ('j') | gm/colortypexfermode.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698