| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "SkTArray.h" | 9 #include "SkTArray.h" |
| 10 #include "SkRandom.h" | 10 #include "SkRandom.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 SkString onShortName() override { | 40 SkString onShortName() override { |
| 41 return SkString("roundrects"); | 41 return SkString("roundrects"); |
| 42 } | 42 } |
| 43 | 43 |
| 44 SkISize onISize() override { | 44 SkISize onISize() override { |
| 45 return SkISize::Make(1200, 900); | 45 return SkISize::Make(1200, 900); |
| 46 } | 46 } |
| 47 | 47 |
| 48 void makePaints() { | 48 void makePaints() { |
| 49 { | 49 { |
| 50 // no AA | 50 // no AA |
| 51 SkPaint p; | 51 SkPaint p; |
| 52 fPaints.push_back(p); | 52 fPaints.push_back(p); |
| 53 } | 53 } |
| 54 | 54 |
| 55 { | 55 { |
| 56 // AA | 56 // AA |
| 57 SkPaint p; | 57 SkPaint p; |
| 58 p.setAntiAlias(true); | 58 p.setAntiAlias(true); |
| 59 fPaints.push_back(p); | 59 fPaints.push_back(p); |
| 60 } | 60 } |
| 61 | 61 |
| 62 { | 62 { |
| 63 // AA with stroke style | 63 // AA with stroke style |
| 64 SkPaint p; | 64 SkPaint p; |
| 65 p.setAntiAlias(true); | 65 p.setAntiAlias(true); |
| 66 p.setStyle(SkPaint::kStroke_Style); | 66 p.setStyle(SkPaint::kStroke_Style); |
| 67 p.setStrokeWidth(SkIntToScalar(5)); | 67 p.setStrokeWidth(SkIntToScalar(5)); |
| 68 fPaints.push_back(p); | 68 fPaints.push_back(p); |
| 69 } | 69 } |
| 70 | 70 |
| 71 { | 71 { |
| 72 // AA with stroke style, width = 0 | 72 // AA with stroke style, width = 0 |
| 73 SkPaint p; | 73 SkPaint p; |
| 74 p.setAntiAlias(true); | 74 p.setAntiAlias(true); |
| 75 p.setStyle(SkPaint::kStroke_Style); | 75 p.setStyle(SkPaint::kStroke_Style); |
| 76 fPaints.push_back(p); | 76 fPaints.push_back(p); |
| 77 } | 77 } |
| 78 | 78 |
| 79 { | 79 { |
| 80 // AA with stroke and fill style | 80 // AA with stroke and fill style |
| 81 SkPaint p; | 81 SkPaint p; |
| 82 p.setAntiAlias(true); | 82 p.setAntiAlias(true); |
| 83 p.setStyle(SkPaint::kStrokeAndFill_Style); | 83 p.setStyle(SkPaint::kStrokeAndFill_Style); |
| 84 p.setStrokeWidth(SkIntToScalar(3)); | 84 p.setStrokeWidth(SkIntToScalar(3)); |
| 85 fPaints.push_back(p); | 85 fPaints.push_back(p); |
| 86 } | 86 } |
| 87 } | 87 } |
| 88 | 88 |
| 89 void makeMatrices() { | 89 void makeMatrices() { |
| 90 { | 90 { |
| 91 SkMatrix m; | 91 SkMatrix m; |
| 92 m.setIdentity(); | 92 m.setIdentity(); |
| 93 fMatrices.push_back(m); | 93 fMatrices.push_back(m); |
| 94 } | 94 } |
| 95 | 95 |
| 96 { | 96 { |
| 97 SkMatrix m; | 97 SkMatrix m; |
| 98 m.setScale(SkIntToScalar(3), SkIntToScalar(2)); | 98 m.setScale(SkIntToScalar(3), SkIntToScalar(2)); |
| 99 fMatrices.push_back(m); | 99 fMatrices.push_back(m); |
| 100 } | 100 } |
| 101 | 101 |
| 102 { | 102 { |
| 103 SkMatrix m; | 103 SkMatrix m; |
| 104 m.setScale(SkIntToScalar(2), SkIntToScalar(2)); | 104 m.setScale(SkIntToScalar(2), SkIntToScalar(2)); |
| 105 fMatrices.push_back(m); | 105 fMatrices.push_back(m); |
| 106 } | 106 } |
| 107 | 107 |
| 108 { | 108 { |
| 109 SkMatrix m; | 109 SkMatrix m; |
| 110 m.setScale(SkIntToScalar(1), SkIntToScalar(2)); | 110 m.setScale(SkIntToScalar(1), SkIntToScalar(2)); |
| 111 fMatrices.push_back(m); | 111 fMatrices.push_back(m); |
| 112 } | 112 } |
| 113 | 113 |
| 114 { | 114 { |
| 115 SkMatrix m; | 115 SkMatrix m; |
| 116 m.setScale(SkIntToScalar(4), SkIntToScalar(1)); | 116 m.setScale(SkIntToScalar(4), SkIntToScalar(1)); |
| 117 fMatrices.push_back(m); | 117 fMatrices.push_back(m); |
| 118 } | 118 } |
| 119 | 119 |
| 120 { | 120 { |
| 121 SkMatrix m; | 121 SkMatrix m; |
| 122 m.setRotate(SkIntToScalar(90)); | 122 m.setRotate(SkIntToScalar(90)); |
| 123 fMatrices.push_back(m); | 123 fMatrices.push_back(m); |
| 124 } | 124 } |
| 125 | 125 |
| 126 { | 126 { |
| 127 SkMatrix m; | 127 SkMatrix m; |
| 128 m.setSkew(SkIntToScalar(2), SkIntToScalar(3)); | 128 m.setSkew(SkIntToScalar(2), SkIntToScalar(3)); |
| 129 fMatrices.push_back(m); | 129 fMatrices.push_back(m); |
| 130 } | 130 } |
| 131 | 131 |
| 132 { | 132 { |
| 133 SkMatrix m; | 133 SkMatrix m; |
| 134 m.setRotate(SkIntToScalar(60)); | 134 m.setRotate(SkIntToScalar(60)); |
| 135 fMatrices.push_back(m); | 135 fMatrices.push_back(m); |
| 136 } | 136 } |
| 137 } | 137 } |
| 138 | 138 |
| 139 void onDraw(SkCanvas* canvas) override { | 139 void onDraw(SkCanvas* canvas) override { |
| 140 SkRandom rand(1); | 140 SkRandom rand(1); |
| 141 canvas->translate(20 * SK_Scalar1, 20 * SK_Scalar1); | 141 canvas->translate(20 * SK_Scalar1, 20 * SK_Scalar1); |
| 142 const SkRect rect = SkRect::MakeLTRB(-20, -30, 20, 30); | 142 const SkRect rect = SkRect::MakeLTRB(-20, -30, 20, 30); |
| 143 SkRRect circleRect; | 143 SkRRect circleRect; |
| 144 circleRect.setRectXY(rect, 5, 5); | 144 circleRect.setRectXY(rect, 5, 5); |
| 145 | 145 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 const SkColor color = gen_color(&rand); | 330 const SkColor color = gen_color(&rand); |
| 331 | 331 |
| 332 SkPaint p; | 332 SkPaint p; |
| 333 p.setColor(color); | 333 p.setColor(color); |
| 334 | 334 |
| 335 const SkRect oooRect = { 20, 30, -20, -30 }; // intentionally ou
t of order | 335 const SkRect oooRect = { 20, 30, -20, -30 }; // intentionally ou
t of order |
| 336 canvas->drawRoundRect(oooRect, 10, 10, p); | 336 canvas->drawRoundRect(oooRect, 10, 10, p); |
| 337 | 337 |
| 338 canvas->restore(); | 338 canvas->restore(); |
| 339 } | 339 } |
| 340 |
| 341 // rrect with stroke > radius/2 |
| 342 { |
| 343 SkRect smallRect = { -30, -20, 30, 20 }; |
| 344 SkRRect circleRect; |
| 345 circleRect.setRectXY(smallRect, 5, 5); |
| 346 |
| 347 canvas->save(); |
| 348 // position the roundrect, and make it at off-integer coords. |
| 349 canvas->translate(kXStart + SK_Scalar1 * kXStep * 5 + SK_Scalar1 / 4
, |
| 350 kYStart - SK_Scalar1 * kYStep + 73 * SK_Scalar1 /
4 + |
| 351 SK_ScalarHalf * kYStep); |
| 352 |
| 353 SkColor color = gen_color(&rand); |
| 354 |
| 355 SkPaint p; |
| 356 p.setAntiAlias(true); |
| 357 p.setStyle(SkPaint::kStroke_Style); |
| 358 p.setStrokeWidth(25); |
| 359 p.setColor(color); |
| 360 |
| 361 canvas->drawRRect(circleRect, p); |
| 362 canvas->restore(); |
| 363 } |
| 340 } | 364 } |
| 341 | 365 |
| 342 private: | 366 private: |
| 343 SkTArray<SkPaint> fPaints; | 367 SkTArray<SkPaint> fPaints; |
| 344 SkTArray<SkMatrix> fMatrices; | 368 SkTArray<SkMatrix> fMatrices; |
| 345 | 369 |
| 346 typedef GM INHERITED; | 370 typedef GM INHERITED; |
| 347 }; | 371 }; |
| 348 | 372 |
| 349 ////////////////////////////////////////////////////////////////////////////// | 373 ////////////////////////////////////////////////////////////////////////////// |
| 350 | 374 |
| 351 static GM* MyFactory(void*) { return new RoundRectGM; } | 375 static GM* MyFactory(void*) { return new RoundRectGM; } |
| 352 static GMRegistry reg(MyFactory); | 376 static GMRegistry reg(MyFactory); |
| 353 | 377 |
| 354 } | 378 } |
| OLD | NEW |