OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #include "gm.h" | 8 #include "gm.h" |
9 #include "SkBlurMask.h" | 9 #include "SkBlurMask.h" |
10 #include "SkBlurDrawLooper.h" | 10 #include "SkBlurDrawLooper.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 SkRect fRect; | 29 SkRect fRect; |
30 | 30 |
31 protected: | 31 protected: |
32 void onOnceBeforeDraw() override { | 32 void onOnceBeforeDraw() override { |
33 this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD)); | 33 this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD)); |
34 fCirclePath.addCircle(SkIntToScalar(20), SkIntToScalar(20), SkIntToScala
r(10) ); | 34 fCirclePath.addCircle(SkIntToScalar(20), SkIntToScalar(20), SkIntToScala
r(10) ); |
35 fRect.set(SkIntToScalar(10), SkIntToScalar(10), | 35 fRect.set(SkIntToScalar(10), SkIntToScalar(10), |
36 SkIntToScalar(30), SkIntToScalar(30)); | 36 SkIntToScalar(30), SkIntToScalar(30)); |
37 } | 37 } |
38 | 38 |
39 virtual SkString onShortName() { | 39 SkString onShortName() override { |
40 return SkString("shadows"); | 40 return SkString("shadows"); |
41 } | 41 } |
42 | 42 |
43 virtual SkISize onISize() { | 43 SkISize onISize() override { |
44 return SkISize::Make(200, 120); | 44 return SkISize::Make(200, 120); |
45 } | 45 } |
46 | 46 |
47 virtual void onDraw(SkCanvas* canvas) { | 47 void onDraw(SkCanvas* canvas) override { |
48 SkBlurDrawLooper* shadowLoopers[5]; | 48 SkBlurDrawLooper* shadowLoopers[5]; |
49 shadowLoopers[0] = | 49 shadowLoopers[0] = |
50 SkBlurDrawLooper::Create(SK_ColorBLUE, | 50 SkBlurDrawLooper::Create(SK_ColorBLUE, |
51 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(
10)), | 51 SkBlurMask::ConvertRadiusToSigma(SkIntToSca
lar(10)), |
52 SkIntToScalar(5), SkIntToScalar(10), | 52 SkIntToScalar(5), SkIntToScalar(10), |
53 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | | 53 SkBlurDrawLooper::kIgnoreTransform_BlurFlag
| |
54 SkBlurDrawLooper::kOverrideColor_BlurFlag | | 54 SkBlurDrawLooper::kOverrideColor_BlurFlag | |
55 SkBlurDrawLooper::kHighQuality_BlurFlag); | 55 SkBlurDrawLooper::kHighQuality_BlurFlag); |
56 SkAutoUnref aurL0(shadowLoopers[0]); | 56 SkAutoUnref aurL0(shadowLoopers[0]); |
57 shadowLoopers[1] = | 57 shadowLoopers[1] = |
58 SkBlurDrawLooper::Create(SK_ColorBLUE, | 58 SkBlurDrawLooper::Create(SK_ColorBLUE, |
59 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(
10)), | 59 SkBlurMask::ConvertRadiusToSigma(SkIntToSca
lar(10)), |
60 SkIntToScalar(5), SkIntToScalar(10), | 60 SkIntToScalar(5), SkIntToScalar(10), |
61 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | | 61 SkBlurDrawLooper::kIgnoreTransform_BlurFlag
| |
62 SkBlurDrawLooper::kOverrideColor_BlurFlag); | 62 SkBlurDrawLooper::kOverrideColor_BlurFlag); |
63 SkAutoUnref aurL1(shadowLoopers[1]); | 63 SkAutoUnref aurL1(shadowLoopers[1]); |
64 shadowLoopers[2] = | 64 shadowLoopers[2] = |
65 SkBlurDrawLooper::Create(SK_ColorBLACK, | 65 SkBlurDrawLooper::Create(SK_ColorBLACK, |
66 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(
5)), | 66 SkBlurMask::ConvertRadiusToSigma(SkIntToSca
lar(5)), |
67 SkIntToScalar(5), | 67 SkIntToScalar(5), |
68 SkIntToScalar(10), | 68 SkIntToScalar(10), |
69 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | | 69 SkBlurDrawLooper::kIgnoreTransform_BlurFlag
| |
70 SkBlurDrawLooper::kHighQuality_BlurFlag); | 70 SkBlurDrawLooper::kHighQuality_BlurFlag); |
71 SkAutoUnref aurL2(shadowLoopers[2]); | 71 SkAutoUnref aurL2(shadowLoopers[2]); |
72 shadowLoopers[3] = | 72 shadowLoopers[3] = |
73 SkBlurDrawLooper::Create(0x7FFF0000, | 73 SkBlurDrawLooper::Create(0x7FFF0000, |
74 SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(
5)), | 74 SkBlurMask::ConvertRadiusToSigma(SkIntToSca
lar(5)), |
75 SkIntToScalar(-5), SkIntToScalar(-10), | 75 SkIntToScalar(-5), SkIntToScalar(-10), |
76 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | | 76 SkBlurDrawLooper::kIgnoreTransform_BlurFlag
| |
77 SkBlurDrawLooper::kOverrideColor_BlurFlag | | 77 SkBlurDrawLooper::kOverrideColor_BlurFlag | |
78 SkBlurDrawLooper::kHighQuality_BlurFlag); | 78 SkBlurDrawLooper::kHighQuality_BlurFlag); |
79 SkAutoUnref aurL3(shadowLoopers[3]); | 79 SkAutoUnref aurL3(shadowLoopers[3]); |
80 shadowLoopers[4] = | 80 shadowLoopers[4] = |
81 SkBlurDrawLooper::Create(SK_ColorBLACK, SkIntToScalar(0), | 81 SkBlurDrawLooper::Create(SK_ColorBLACK, SkIntToScalar(0), |
82 SkIntToScalar(5), SkIntToScalar(5), | 82 SkIntToScalar(5), SkIntToScalar(5), |
83 SkBlurDrawLooper::kIgnoreTransform_BlurFlag | | 83 SkBlurDrawLooper::kIgnoreTransform_BlurFlag
| |
84 SkBlurDrawLooper::kOverrideColor_BlurFlag | | 84 SkBlurDrawLooper::kOverrideColor_BlurFlag | |
85 SkBlurDrawLooper::kHighQuality_BlurFlag); | 85 SkBlurDrawLooper::kHighQuality_BlurFlag); |
86 SkAutoUnref aurL4(shadowLoopers[4]); | 86 SkAutoUnref aurL4(shadowLoopers[4]); |
87 | 87 |
88 static const struct { | 88 static const struct { |
89 SkColor fColor; | 89 SkColor fColor; |
90 SkScalar fStrokeWidth; | 90 SkScalar fStrokeWidth; |
91 } gRec[] = { | 91 } gRec[] = { |
92 { SK_ColorRED, -SK_Scalar1 }, | 92 { SK_ColorRED, -SK_Scalar1 }, |
93 { SK_ColorGREEN, SkIntToScalar(4) }, | 93 { SK_ColorGREEN, SkIntToScalar(4) }, |
94 { SK_ColorBLUE, SkIntToScalar(0)}, | 94 { SK_ColorBLUE, SkIntToScalar(0)}, |
95 }; | 95 }; |
96 | 96 |
97 SkPaint paint; | 97 SkPaint paint; |
98 paint.setAntiAlias(true); | 98 paint.setAntiAlias(true); |
99 for (size_t i = 0; i < SK_ARRAY_COUNT(shadowLoopers); ++i) { | 99 for (size_t i = 0; i < SK_ARRAY_COUNT(shadowLoopers); ++i) { |
100 SkAutoCanvasRestore acr(canvas, true); | 100 SkAutoCanvasRestore acr(canvas, true); |
101 | 101 |
102 paint.setLooper(shadowLoopers[i]); | 102 paint.setLooper(shadowLoopers[i]); |
103 | 103 |
104 canvas->translate(SkIntToScalar((unsigned int)i*40), SkIntToScalar(0)); | 104 canvas->translate(SkIntToScalar((unsigned int)i*40), SkIntToScalar(0
)); |
105 setup(&paint, gRec[0].fColor, gRec[0].fStrokeWidth); | 105 setup(&paint, gRec[0].fColor, gRec[0].fStrokeWidth); |
106 canvas->drawRect(fRect, paint); | 106 canvas->drawRect(fRect, paint); |
107 | 107 |
108 canvas->translate(SkIntToScalar(0), SkIntToScalar(40)); | 108 canvas->translate(SkIntToScalar(0), SkIntToScalar(40)); |
109 setup(&paint, gRec[1].fColor, gRec[1].fStrokeWidth); | 109 setup(&paint, gRec[1].fColor, gRec[1].fStrokeWidth); |
110 canvas->drawPath(fCirclePath, paint); | 110 canvas->drawPath(fCirclePath, paint); |
111 | 111 |
112 canvas->translate(SkIntToScalar(0), SkIntToScalar(40)); | 112 canvas->translate(SkIntToScalar(0), SkIntToScalar(40)); |
113 setup(&paint, gRec[2].fColor, gRec[2].fStrokeWidth); | 113 setup(&paint, gRec[2].fColor, gRec[2].fStrokeWidth); |
114 canvas->drawPath(fCirclePath, paint); | 114 canvas->drawPath(fCirclePath, paint); |
| 115 } |
115 } | 116 } |
116 } | |
117 | 117 |
118 private: | 118 private: |
119 typedef GM INHERITED; | 119 typedef GM INHERITED; |
120 }; | 120 }; |
121 | 121 |
122 /////////////////////////////////////////////////////////////////////////////// | 122 /////////////////////////////////////////////////////////////////////////////// |
123 | 123 |
124 static GM* MyFactory(void*) { return new ShadowsGM; } | 124 static GM* MyFactory(void*) { return new ShadowsGM; } |
125 static GMRegistry reg(MyFactory); | 125 static GMRegistry reg(MyFactory); |
126 | 126 |
127 } | 127 } |
OLD | NEW |