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 "SkGradientShader.h" | 9 #include "SkGradientShader.h" |
10 | 10 |
11 namespace skiagm { | 11 namespace skiagm { |
12 | 12 |
13 class FillTypePerspGM : public GM { | 13 class FillTypePerspGM : public GM { |
14 SkPath fPath; | 14 SkPath fPath; |
15 public: | 15 public: |
16 FillTypePerspGM() {} | 16 FillTypePerspGM() {} |
17 | 17 |
18 void makePath() { | 18 void makePath() { |
19 if (fPath.isEmpty()) { | 19 if (fPath.isEmpty()) { |
20 const SkScalar radius = SkIntToScalar(45); | 20 const SkScalar radius = SkIntToScalar(45); |
21 fPath.addCircle(SkIntToScalar(50), SkIntToScalar(50), radius); | 21 fPath.addCircle(SkIntToScalar(50), SkIntToScalar(50), radius); |
22 fPath.addCircle(SkIntToScalar(100), SkIntToScalar(100), radius); | 22 fPath.addCircle(SkIntToScalar(100), SkIntToScalar(100), radius); |
23 } | 23 } |
24 } | 24 } |
25 | 25 |
26 protected: | 26 protected: |
27 virtual uint32_t onGetFlags() const SK_OVERRIDE { | 27 uint32_t onGetFlags() const SK_OVERRIDE { |
28 return kSkipTiled_Flag; | 28 return kSkipTiled_Flag; |
29 } | 29 } |
30 | 30 |
31 virtual SkString onShortName() SK_OVERRIDE { | 31 SkString onShortName() SK_OVERRIDE { |
32 return SkString("filltypespersp"); | 32 return SkString("filltypespersp"); |
33 } | 33 } |
34 | 34 |
35 virtual SkISize onISize() SK_OVERRIDE { | 35 SkISize onISize() SK_OVERRIDE { |
36 return SkISize::Make(835, 840); | 36 return SkISize::Make(835, 840); |
37 } | 37 } |
38 | 38 |
39 void showPath(SkCanvas* canvas, int x, int y, SkPath::FillType ft, | 39 void showPath(SkCanvas* canvas, int x, int y, SkPath::FillType ft, |
40 SkScalar scale, const SkPaint& paint) { | 40 SkScalar scale, const SkPaint& paint) { |
41 const SkRect r = { 0, 0, SkIntToScalar(150), SkIntToScalar(150) }; | 41 const SkRect r = { 0, 0, SkIntToScalar(150), SkIntToScalar(150) }; |
42 | 42 |
43 canvas->save(); | 43 canvas->save(); |
44 canvas->translate(SkIntToScalar(x), SkIntToScalar(y)); | 44 canvas->translate(SkIntToScalar(x), SkIntToScalar(y)); |
45 canvas->clipRect(r); | 45 canvas->clipRect(r); |
(...skipping 23 matching lines...) Expand all Loading... |
69 showPath(canvas, 0, 0, SkPath::kWinding_FillType, | 69 showPath(canvas, 0, 0, SkPath::kWinding_FillType, |
70 scale, paint); | 70 scale, paint); |
71 showPath(canvas, 200, 0, SkPath::kEvenOdd_FillType, | 71 showPath(canvas, 200, 0, SkPath::kEvenOdd_FillType, |
72 scale, paint); | 72 scale, paint); |
73 showPath(canvas, 00, 200, SkPath::kInverseWinding_FillType, | 73 showPath(canvas, 00, 200, SkPath::kInverseWinding_FillType, |
74 scale, paint); | 74 scale, paint); |
75 showPath(canvas, 200, 200, SkPath::kInverseEvenOdd_FillType, | 75 showPath(canvas, 200, 200, SkPath::kInverseEvenOdd_FillType, |
76 scale, paint); | 76 scale, paint); |
77 } | 77 } |
78 | 78 |
79 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { | 79 void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
80 this->makePath(); | 80 this->makePath(); |
81 | 81 |
82 // do perspective drawPaint as the background; | 82 // do perspective drawPaint as the background; |
83 SkPaint bkgnrd; | 83 SkPaint bkgnrd; |
84 SkPoint center = SkPoint::Make(SkIntToScalar(100), | 84 SkPoint center = SkPoint::Make(SkIntToScalar(100), |
85 SkIntToScalar(100)); | 85 SkIntToScalar(100)); |
86 SkColor colors[] = {SK_ColorBLACK, SK_ColorCYAN, | 86 SkColor colors[] = {SK_ColorBLACK, SK_ColorCYAN, |
87 SK_ColorYELLOW, SK_ColorWHITE}; | 87 SK_ColorYELLOW, SK_ColorWHITE}; |
88 SkScalar pos[] = {0, SK_ScalarHalf / 2, | 88 SkScalar pos[] = {0, SK_ScalarHalf / 2, |
89 3 * SK_ScalarHalf / 2, SK_Scalar1}; | 89 3 * SK_ScalarHalf / 2, SK_Scalar1}; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 private: | 126 private: |
127 typedef GM INHERITED; | 127 typedef GM INHERITED; |
128 }; | 128 }; |
129 | 129 |
130 ////////////////////////////////////////////////////////////////////////////// | 130 ////////////////////////////////////////////////////////////////////////////// |
131 | 131 |
132 static GM* MyFactory(void*) { return new FillTypePerspGM; } | 132 static GM* MyFactory(void*) { return new FillTypePerspGM; } |
133 static GMRegistry reg(MyFactory); | 133 static GMRegistry reg(MyFactory); |
134 | 134 |
135 } | 135 } |
OLD | NEW |