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 |
(...skipping 10 matching lines...) Expand all Loading... |
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 virtual uint32_t onGetFlags() const SK_OVERRIDE { |
28 return kSkipTiled_Flag; | 28 return kSkipTiled_Flag; |
29 } | 29 } |
30 | 30 |
31 virtual SkString onShortName() { | 31 virtual SkString onShortName() SK_OVERRIDE { |
32 return SkString("filltypespersp"); | 32 return SkString("filltypespersp"); |
33 } | 33 } |
34 | 34 |
35 virtual SkISize onISize() { | 35 virtual 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 | |
42 const SkRect r = { 0, 0, SkIntToScalar(150), SkIntToScalar(150) }; | 41 const SkRect r = { 0, 0, SkIntToScalar(150), SkIntToScalar(150) }; |
43 | 42 |
44 canvas->save(); | 43 canvas->save(); |
45 canvas->translate(SkIntToScalar(x), SkIntToScalar(y)); | 44 canvas->translate(SkIntToScalar(x), SkIntToScalar(y)); |
46 canvas->clipRect(r); | 45 canvas->clipRect(r); |
47 canvas->drawColor(SK_ColorWHITE); | 46 canvas->drawColor(SK_ColorWHITE); |
48 fPath.setFillType(ft); | 47 fPath.setFillType(ft); |
49 canvas->translate(r.centerX(), r.centerY()); | 48 canvas->translate(r.centerX(), r.centerY()); |
50 canvas->scale(scale, scale); | 49 canvas->scale(scale, scale); |
51 canvas->translate(-r.centerX(), -r.centerY()); | 50 canvas->translate(-r.centerX(), -r.centerY()); |
52 canvas->drawPath(fPath, paint); | 51 canvas->drawPath(fPath, paint); |
53 canvas->restore(); | 52 canvas->restore(); |
54 } | 53 } |
55 | 54 |
56 void showFour(SkCanvas* canvas, SkScalar scale, bool aa) { | 55 void showFour(SkCanvas* canvas, SkScalar scale, bool aa) { |
57 | |
58 SkPaint paint; | 56 SkPaint paint; |
59 SkPoint center = SkPoint::Make(SkIntToScalar(100), SkIntToScalar(100)); | 57 SkPoint center = SkPoint::Make(SkIntToScalar(100), SkIntToScalar(100)); |
60 SkColor colors[] = {SK_ColorBLUE, SK_ColorRED, SK_ColorGREEN}; | 58 SkColor colors[] = {SK_ColorBLUE, SK_ColorRED, SK_ColorGREEN}; |
61 SkScalar pos[] = {0, SK_ScalarHalf, SK_Scalar1}; | 59 SkScalar pos[] = {0, SK_ScalarHalf, SK_Scalar1}; |
62 SkShader* s = SkGradientShader::CreateRadial(center, | 60 SkShader* s = SkGradientShader::CreateRadial(center, |
63 SkIntToScalar(100), | 61 SkIntToScalar(100), |
64 colors, | 62 colors, |
65 pos, | 63 pos, |
66 SK_ARRAY_COUNT(colors), | 64 SK_ARRAY_COUNT(colors), |
67 SkShader::kClamp_TileMode); | 65 SkShader::kClamp_TileMode); |
68 paint.setShader(s)->unref(); | 66 paint.setShader(s)->unref(); |
69 paint.setAntiAlias(aa); | 67 paint.setAntiAlias(aa); |
70 | 68 |
71 showPath(canvas, 0, 0, SkPath::kWinding_FillType, | 69 showPath(canvas, 0, 0, SkPath::kWinding_FillType, |
72 scale, paint); | 70 scale, paint); |
73 showPath(canvas, 200, 0, SkPath::kEvenOdd_FillType, | 71 showPath(canvas, 200, 0, SkPath::kEvenOdd_FillType, |
74 scale, paint); | 72 scale, paint); |
75 showPath(canvas, 00, 200, SkPath::kInverseWinding_FillType, | 73 showPath(canvas, 00, 200, SkPath::kInverseWinding_FillType, |
76 scale, paint); | 74 scale, paint); |
77 showPath(canvas, 200, 200, SkPath::kInverseEvenOdd_FillType, | 75 showPath(canvas, 200, 200, SkPath::kInverseEvenOdd_FillType, |
78 scale, paint); | 76 scale, paint); |
79 } | 77 } |
80 | 78 |
81 virtual void onDraw(SkCanvas* canvas) { | 79 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
82 this->makePath(); | 80 this->makePath(); |
83 | 81 |
84 // do perspective drawPaint as the background; | 82 // do perspective drawPaint as the background; |
85 SkPaint bkgnrd; | 83 SkPaint bkgnrd; |
86 SkPoint center = SkPoint::Make(SkIntToScalar(100), | 84 SkPoint center = SkPoint::Make(SkIntToScalar(100), |
87 SkIntToScalar(100)); | 85 SkIntToScalar(100)); |
88 SkColor colors[] = {SK_ColorBLACK, SK_ColorCYAN, | 86 SkColor colors[] = {SK_ColorBLACK, SK_ColorCYAN, |
89 SK_ColorYELLOW, SK_ColorWHITE}; | 87 SK_ColorYELLOW, SK_ColorWHITE}; |
90 SkScalar pos[] = {0, SK_ScalarHalf / 2, | 88 SkScalar pos[] = {0, SK_ScalarHalf / 2, |
91 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... |
128 private: | 126 private: |
129 typedef GM INHERITED; | 127 typedef GM INHERITED; |
130 }; | 128 }; |
131 | 129 |
132 ////////////////////////////////////////////////////////////////////////////// | 130 ////////////////////////////////////////////////////////////////////////////// |
133 | 131 |
134 static GM* MyFactory(void*) { return new FillTypePerspGM; } | 132 static GM* MyFactory(void*) { return new FillTypePerspGM; } |
135 static GMRegistry reg(MyFactory); | 133 static GMRegistry reg(MyFactory); |
136 | 134 |
137 } | 135 } |
OLD | NEW |