OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 "SkGradientShader.h" | 9 #include "SkGradientShader.h" |
10 #include "SkPath.h" | 10 #include "SkPath.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 canvas->translate(-r.centerX(), -r.centerY()); | 48 canvas->translate(-r.centerX(), -r.centerY()); |
49 canvas->drawPath(fPath, paint); | 49 canvas->drawPath(fPath, paint); |
50 canvas->restore(); | 50 canvas->restore(); |
51 } | 51 } |
52 | 52 |
53 void showFour(SkCanvas* canvas, SkScalar scale, bool aa) { | 53 void showFour(SkCanvas* canvas, SkScalar scale, bool aa) { |
54 SkPaint paint; | 54 SkPaint paint; |
55 SkPoint center = SkPoint::Make(SkIntToScalar(100), SkIntToScalar(100)); | 55 SkPoint center = SkPoint::Make(SkIntToScalar(100), SkIntToScalar(100)); |
56 SkColor colors[] = {SK_ColorBLUE, SK_ColorRED, SK_ColorGREEN}; | 56 SkColor colors[] = {SK_ColorBLUE, SK_ColorRED, SK_ColorGREEN}; |
57 SkScalar pos[] = {0, SK_ScalarHalf, SK_Scalar1}; | 57 SkScalar pos[] = {0, SK_ScalarHalf, SK_Scalar1}; |
58 SkShader* s = SkGradientShader::CreateRadial(center, | 58 paint.setShader(SkGradientShader::MakeRadial(center, |
59 SkIntToScalar(100), | 59 SkIntToScalar(100), |
60 colors, | 60 colors, |
61 pos, | 61 pos, |
62 SK_ARRAY_COUNT(colors), | 62 SK_ARRAY_COUNT(colors), |
63 SkShader::kClamp_TileMode); | 63 SkShader::kClamp_TileMode))
; |
64 paint.setShader(s)->unref(); | |
65 paint.setAntiAlias(aa); | 64 paint.setAntiAlias(aa); |
66 | 65 |
67 showPath(canvas, 0, 0, SkPath::kWinding_FillType, | 66 showPath(canvas, 0, 0, SkPath::kWinding_FillType, |
68 scale, paint); | 67 scale, paint); |
69 showPath(canvas, 200, 0, SkPath::kEvenOdd_FillType, | 68 showPath(canvas, 200, 0, SkPath::kEvenOdd_FillType, |
70 scale, paint); | 69 scale, paint); |
71 showPath(canvas, 00, 200, SkPath::kInverseWinding_FillType, | 70 showPath(canvas, 00, 200, SkPath::kInverseWinding_FillType, |
72 scale, paint); | 71 scale, paint); |
73 showPath(canvas, 200, 200, SkPath::kInverseEvenOdd_FillType, | 72 showPath(canvas, 200, 200, SkPath::kInverseEvenOdd_FillType, |
74 scale, paint); | 73 scale, paint); |
75 } | 74 } |
76 | 75 |
77 void onDraw(SkCanvas* canvas) override { | 76 void onDraw(SkCanvas* canvas) override { |
78 this->makePath(); | 77 this->makePath(); |
79 | 78 |
80 // do perspective drawPaint as the background; | 79 // do perspective drawPaint as the background; |
81 SkPaint bkgnrd; | 80 SkPaint bkgnrd; |
82 SkPoint center = SkPoint::Make(SkIntToScalar(100), | 81 SkPoint center = SkPoint::Make(SkIntToScalar(100), |
83 SkIntToScalar(100)); | 82 SkIntToScalar(100)); |
84 SkColor colors[] = {SK_ColorBLACK, SK_ColorCYAN, | 83 SkColor colors[] = {SK_ColorBLACK, SK_ColorCYAN, |
85 SK_ColorYELLOW, SK_ColorWHITE}; | 84 SK_ColorYELLOW, SK_ColorWHITE}; |
86 SkScalar pos[] = {0, SK_ScalarHalf / 2, | 85 SkScalar pos[] = {0, SK_ScalarHalf / 2, |
87 3 * SK_ScalarHalf / 2, SK_Scalar1}; | 86 3 * SK_ScalarHalf / 2, SK_Scalar1}; |
88 SkShader* s = SkGradientShader::CreateRadial(center, | 87 bkgnrd.setShader(SkGradientShader::MakeRadial(center, |
89 SkIntToScalar(1000), | 88 SkIntToScalar(1000), |
90 colors, | 89 colors, |
91 pos, | 90 pos, |
92 SK_ARRAY_COUNT(colors), | 91 SK_ARRAY_COUNT(colors), |
93 SkShader::kClamp_TileMode); | 92 SkShader::kClamp_TileMode)
); |
94 bkgnrd.setShader(s)->unref(); | |
95 canvas->save(); | 93 canvas->save(); |
96 canvas->translate(SkIntToScalar(100), SkIntToScalar(100)); | 94 canvas->translate(SkIntToScalar(100), SkIntToScalar(100)); |
97 SkMatrix mat; | 95 SkMatrix mat; |
98 mat.reset(); | 96 mat.reset(); |
99 mat.setPerspY(SK_Scalar1 / 1000); | 97 mat.setPerspY(SK_Scalar1 / 1000); |
100 canvas->concat(mat); | 98 canvas->concat(mat); |
101 canvas->drawPaint(bkgnrd); | 99 canvas->drawPaint(bkgnrd); |
102 canvas->restore(); | 100 canvas->restore(); |
103 | 101 |
104 // draw the paths in perspective | 102 // draw the paths in perspective |
(...skipping 19 matching lines...) Expand all Loading... |
124 private: | 122 private: |
125 typedef GM INHERITED; | 123 typedef GM INHERITED; |
126 }; | 124 }; |
127 | 125 |
128 ////////////////////////////////////////////////////////////////////////////// | 126 ////////////////////////////////////////////////////////////////////////////// |
129 | 127 |
130 static GM* MyFactory(void*) { return new FillTypePerspGM; } | 128 static GM* MyFactory(void*) { return new FillTypePerspGM; } |
131 static GMRegistry reg(MyFactory); | 129 static GMRegistry reg(MyFactory); |
132 | 130 |
133 } | 131 } |
OLD | NEW |