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

Side by Side Diff: gm/colortype.cpp

Issue 1144023002: Move font loading in gm tests and benches out of constructors (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 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(NULL) {
17 }
18
19 virtual ~ColorTypeGM() {
20 SkSafeUnref(fColorType);
21 }
22
23 protected:
24 void onOnceBeforeDraw() override {
16 const SkColor colors[] = { 25 const SkColor colors[] = {
17 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, 26 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE,
18 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW 27 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW
19 }; 28 };
20 SkMatrix local; 29 SkMatrix local;
21 local.setRotate(180); 30 local.setRotate(180);
22 SkShader* s = SkGradientShader::CreateSweep(0,0, colors, NULL, 31 SkShader* s = SkGradientShader::CreateSweep(0,0, colors, NULL,
23 SK_ARRAY_COUNT(colors), 0, & local); 32 SK_ARRAY_COUNT(colors), 0, & local);
24 33
25 SkPaint paint; 34 SkPaint paint;
26 paint.setAntiAlias(true); 35 paint.setAntiAlias(true);
27 paint.setShader(s)->unref(); 36 paint.setShader(s)->unref();
28 37
29 SkTypeface* orig = sk_tool_utils::create_portable_typeface("Times", 38 SkTypeface* orig = sk_tool_utils::create_portable_typeface("Times",
30 SkTypeface::kBold); 39 SkTypeface::kBold);
31 if (NULL == orig) { 40 if (NULL == orig) {
32 orig = SkTypeface::RefDefault(); 41 orig = SkTypeface::RefDefault();
33 } 42 }
34 fColorType = SkNEW_ARGS(SkGTypeface, (orig, paint)); 43 fColorType = SkNEW_ARGS(SkGTypeface, (orig, paint));
35 orig->unref(); 44 orig->unref();
36 } 45 }
37 46
38 virtual ~ColorTypeGM() {
39 fColorType->unref();
40 }
41
42 protected:
43 SkString onShortName() override { 47 SkString onShortName() override {
44 return SkString("colortype"); 48 return SkString("colortype");
45 } 49 }
46 50
47 SkISize onISize() override { 51 SkISize onISize() override {
48 return SkISize::Make(640, 480); 52 return SkISize::Make(640, 480);
49 } 53 }
50 54
51 void onDraw(SkCanvas* canvas) override { 55 void onDraw(SkCanvas* canvas) override {
52 SkPaint paint; 56 SkPaint paint;
53 paint.setAntiAlias(true); 57 paint.setAntiAlias(true);
54 paint.setTypeface(fColorType); 58 paint.setTypeface(fColorType);
55 59
56 for (SkScalar size = 10; size <= 100; size += 10) { 60 for (SkScalar size = 10; size <= 100; size += 10) {
57 paint.setTextSize(size); 61 paint.setTextSize(size);
58 canvas->translate(0, paint.getFontMetrics(NULL)); 62 canvas->translate(0, paint.getFontMetrics(NULL));
59 canvas->drawText("Hamburgefons", 12, 10, 10, paint); 63 canvas->drawText("Hamburgefons", 12, 10, 10, paint);
60 } 64 }
61 } 65 }
62 66
63 private: 67 private:
64 SkTypeface* fColorType; 68 SkTypeface* fColorType;
65 69
66 typedef skiagm::GM INHERITED; 70 typedef skiagm::GM INHERITED;
67 }; 71 };
68 72
69 DEF_GM( return SkNEW(ColorTypeGM); ) 73 DEF_GM( return SkNEW(ColorTypeGM); )
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698