OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 enum GradCaseType { // these must match the order in gGradCases | 298 enum GradCaseType { // these must match the order in gGradCases |
299 kOutside_GradCaseType, | 299 kOutside_GradCaseType, |
300 kInside_GradCaseType, | 300 kInside_GradCaseType, |
301 kEdge_GradCaseType, | 301 kEdge_GradCaseType, |
302 }; | 302 }; |
303 | 303 |
304 /////////////////////////////////////////////////////////////////////////////// | 304 /////////////////////////////////////////////////////////////////////////////// |
305 | 305 |
306 class ConicalGradientsGM : public GM { | 306 class ConicalGradientsGM : public GM { |
307 public: | 307 public: |
308 ConicalGradientsGM(GradCaseType gradCaseType) { | 308 ConicalGradientsGM(GradCaseType gradCaseType, bool dither) |
| 309 : fGradCaseType(gradCaseType) |
| 310 , fDither(dither) { |
309 this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD)); | 311 this->setBGColor(sk_tool_utils::color_to_565(0xFFDDDDDD)); |
310 fName.printf("gradients_2pt_conical_%s", gGradCases[gradCaseType].fName)
; | 312 fName.printf("gradients_2pt_conical_%s%s", gGradCases[gradCaseType].fNam
e, |
311 fGradCaseType = gradCaseType; | 313 fDither ? "" : "_nodither"); |
312 } | 314 } |
313 | 315 |
314 protected: | 316 protected: |
315 SkString onShortName() { | 317 SkString onShortName() { |
316 return fName; | 318 return fName; |
317 } | 319 } |
318 | 320 |
319 virtual SkISize onISize() { return SkISize::Make(840, 815); } | 321 virtual SkISize onISize() { return SkISize::Make(840, 815); } |
320 | 322 |
321 virtual void onDraw(SkCanvas* canvas) { | 323 virtual void onDraw(SkCanvas* canvas) { |
322 | 324 |
323 SkPoint pts[2] = { | 325 SkPoint pts[2] = { |
324 { 0, 0 }, | 326 { 0, 0 }, |
325 { SkIntToScalar(100), SkIntToScalar(100) } | 327 { SkIntToScalar(100), SkIntToScalar(100) } |
326 }; | 328 }; |
327 SkShader::TileMode tm = SkShader::kClamp_TileMode; | 329 SkShader::TileMode tm = SkShader::kClamp_TileMode; |
328 SkRect r = { 0, 0, SkIntToScalar(100), SkIntToScalar(100) }; | 330 SkRect r = { 0, 0, SkIntToScalar(100), SkIntToScalar(100) }; |
329 SkPaint paint; | 331 SkPaint paint; |
330 paint.setAntiAlias(true); | 332 paint.setAntiAlias(true); |
| 333 paint.setDither(fDither); |
331 | 334 |
332 canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); | 335 canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); |
333 | 336 |
334 const GradMaker* gradMaker = gGradCases[fGradCaseType].fMaker; | 337 const GradMaker* gradMaker = gGradCases[fGradCaseType].fMaker; |
335 const int count = gGradCases[fGradCaseType].fCount; | 338 const int count = gGradCases[fGradCaseType].fCount; |
336 | 339 |
337 for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); i++) { | 340 for (size_t i = 0; i < SK_ARRAY_COUNT(gGradData); i++) { |
338 canvas->save(); | 341 canvas->save(); |
339 for (int j = 0; j < count; j++) { | 342 for (int j = 0; j < count; j++) { |
340 SkMatrix scale = SkMatrix::I(); | 343 SkMatrix scale = SkMatrix::I(); |
(...skipping 12 matching lines...) Expand all Loading... |
353 canvas->restore(); | 356 canvas->restore(); |
354 canvas->translate(SkIntToScalar(120), 0); | 357 canvas->translate(SkIntToScalar(120), 0); |
355 } | 358 } |
356 } | 359 } |
357 | 360 |
358 private: | 361 private: |
359 typedef GM INHERITED; | 362 typedef GM INHERITED; |
360 | 363 |
361 GradCaseType fGradCaseType; | 364 GradCaseType fGradCaseType; |
362 SkString fName; | 365 SkString fName; |
| 366 bool fDither; |
363 }; | 367 }; |
364 /////////////////////////////////////////////////////////////////////////////// | 368 /////////////////////////////////////////////////////////////////////////////// |
365 | 369 |
366 static GM* MyFactory1(void*) { return new ConicalGradientsGM(kInside_GradCaseTyp
e); } | 370 DEF_GM( return new ConicalGradientsGM(kInside_GradCaseType, true); ) |
367 static GMRegistry reg1(MyFactory1); | 371 DEF_GM( return new ConicalGradientsGM(kOutside_GradCaseType, true); ) |
| 372 DEF_GM( return new ConicalGradientsGM(kEdge_GradCaseType, true); ) |
368 | 373 |
369 static GM* MyFactory2(void*) { return new ConicalGradientsGM(kOutside_GradCaseTy
pe); } | 374 DEF_GM( return new ConicalGradientsGM(kInside_GradCaseType, false); ) |
370 static GMRegistry reg2(MyFactory2); | 375 DEF_GM( return new ConicalGradientsGM(kOutside_GradCaseType, false); ) |
| 376 DEF_GM( return new ConicalGradientsGM(kEdge_GradCaseType, false); ) |
371 | 377 |
372 static GM* MyFactory3(void*) { return new ConicalGradientsGM(kEdge_GradCaseType)
; } | |
373 static GMRegistry reg3(MyFactory3); | |
374 } | 378 } |
OLD | NEW |