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 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 data.fPos, data.fCount, 0, &localMatrix
); | 63 data.fPos, data.fCount, 0, &localMatrix
); |
64 } | 64 } |
65 | 65 |
66 static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, | 66 static SkShader* Make2Radial(const SkPoint pts[2], const GradData& data, |
67 SkShader::TileMode tm, const SkMatrix& localMatrix)
{ | 67 SkShader::TileMode tm, const SkMatrix& localMatrix)
{ |
68 SkPoint center0, center1; | 68 SkPoint center0, center1; |
69 center0.set(SkScalarAve(pts[0].fX, pts[1].fX), | 69 center0.set(SkScalarAve(pts[0].fX, pts[1].fX), |
70 SkScalarAve(pts[0].fY, pts[1].fY)); | 70 SkScalarAve(pts[0].fY, pts[1].fY)); |
71 center1.set(SkScalarInterp(pts[0].fX, pts[1].fX, SkIntToScalar(3)/5), | 71 center1.set(SkScalarInterp(pts[0].fX, pts[1].fX, SkIntToScalar(3)/5), |
72 SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); | 72 SkScalarInterp(pts[0].fY, pts[1].fY, SkIntToScalar(1)/4)); |
73 return SkGradientShader::CreateTwoPointRadial( | 73 return SkGradientShader::CreateTwoPointConical( |
74 center1, (pts[1].fX - pts[0].f
X) / 7, | 74 center1, (pts[1].fX - pts[0].
fX) / 7, |
75 center0, (pts[1].fX - pts[0].f
X) / 2, | 75 center0, (pts[1].fX - pts[0].
fX) / 2, |
76 data.fColors, data.fPos, data.
fCount, tm, | 76 data.fColors, data.fPos, data
.fCount, tm, |
77 0, &localMatrix); | 77 0, &localMatrix); |
78 } | 78 } |
79 | 79 |
80 static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, | 80 static SkShader* Make2Conical(const SkPoint pts[2], const GradData& data, |
81 SkShader::TileMode tm, const SkMatrix& localMatrix)
{ | 81 SkShader::TileMode tm, const SkMatrix& localMatrix)
{ |
82 SkPoint center0, center1; | 82 SkPoint center0, center1; |
83 SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 10); | 83 SkScalar radius0 = SkScalarDiv(pts[1].fX - pts[0].fX, 10); |
84 SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); | 84 SkScalar radius1 = SkScalarDiv(pts[1].fX - pts[0].fX, 3); |
85 center0.set(pts[0].fX + radius0, pts[0].fY + radius0); | 85 center0.set(pts[0].fX + radius0, pts[0].fY + radius0); |
86 center1.set(pts[1].fX - radius1, pts[1].fY - radius1); | 86 center1.set(pts[1].fX - radius1, pts[1].fY - radius1); |
87 return SkGradientShader::CreateTwoPointConical(center1, radius1, | 87 return SkGradientShader::CreateTwoPointConical(center1, radius1, |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 this->drawBG(canvas); | 266 this->drawBG(canvas); |
267 | 267 |
268 SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorGREEN, SK_Color
RED }; | 268 SkColor colors[] = { SK_ColorRED, SK_ColorGREEN, SK_ColorGREEN, SK_Color
RED }; |
269 SkScalar pos[] = { 0, 0.01f, 0.99f, SK_Scalar1 }; | 269 SkScalar pos[] = { 0, 0.01f, 0.99f, SK_Scalar1 }; |
270 SkPoint c0; | 270 SkPoint c0; |
271 c0.iset(-80, 25); | 271 c0.iset(-80, 25); |
272 SkScalar r0 = SkIntToScalar(70); | 272 SkScalar r0 = SkIntToScalar(70); |
273 SkPoint c1; | 273 SkPoint c1; |
274 c1.iset(0, 25); | 274 c1.iset(0, 25); |
275 SkScalar r1 = SkIntToScalar(150); | 275 SkScalar r1 = SkIntToScalar(150); |
276 SkShader* s = SkGradientShader::CreateTwoPointRadial(c0, r0, c1, r1, col
ors, | 276 SkShader* s = SkGradientShader::CreateTwoPointConical(c0, r0, c1, r1, co
lors, |
277 pos, SK_ARRAY_COUNT
(pos), | 277 pos, SK_ARRAY_COUN
T(pos), |
278 SkShader::kClamp_Ti
leMode); | 278 SkShader::kClamp_T
ileMode); |
279 SkPaint paint; | 279 SkPaint paint; |
280 paint.setShader(s)->unref(); | 280 paint.setShader(s)->unref(); |
281 canvas->drawPaint(paint); | 281 canvas->drawPaint(paint); |
282 } | 282 } |
283 | 283 |
284 private: | 284 private: |
285 typedef GM INHERITED; | 285 typedef GM INHERITED; |
286 }; | 286 }; |
287 DEF_GM( return new GradientsDegenrate2PointGM; ) | 287 DEF_GM( return new GradientsDegenrate2PointGM; ) |
288 | 288 |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 paint.setShader(fShader); | 456 paint.setShader(fShader); |
457 canvas->drawRect(SkRect::MakeWH(500, 500), paint); | 457 canvas->drawRect(SkRect::MakeWH(500, 500), paint); |
458 } | 458 } |
459 | 459 |
460 private: | 460 private: |
461 typedef GM INHERITED; | 461 typedef GM INHERITED; |
462 }; | 462 }; |
463 DEF_GM( return new RadialGradient3GM; ) | 463 DEF_GM( return new RadialGradient3GM; ) |
464 | 464 |
465 } | 465 } |
OLD | NEW |