| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 "SkPath.h" | 8 #include "SkPath.h" |
| 9 #include "SkStream.h" | 9 #include "SkStream.h" |
| 10 #include "gm.h" | 10 #include "gm.h" |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 SkPaint round(butt); | 110 SkPaint round(butt); |
| 111 round.setStrokeCap(SkPaint::kRound_Cap); | 111 round.setStrokeCap(SkPaint::kRound_Cap); |
| 112 drawPaths(round, 1 << 7); | 112 drawPaths(round, 1 << 7); |
| 113 return; | 113 return; |
| 114 } | 114 } |
| 115 | 115 |
| 116 SkScalar widths[] = { 0, .999f, 1, 1.001f, 20 }; | 116 SkScalar widths[] = { 0, .999f, 1, 1.001f, 20 }; |
| 117 bool aliases[] = { false, true }; | 117 bool aliases[] = { false, true }; |
| 118 for (bool antialias : aliases) { | 118 for (bool antialias : aliases) { |
| 119 canvas->save(); | 119 canvas->save(); |
| 120 for (SkScalar width : widths) { | 120 for (SkScalar width : widths) { |
| 121 canvas->save(); | 121 canvas->save(); |
| 122 SkPaint butt; | 122 SkPaint butt; |
| 123 butt.setAntiAlias(antialias); | 123 butt.setAntiAlias(antialias); |
| 124 butt.setStyle(SkPaint::kStroke_Style); | 124 butt.setStyle(SkPaint::kStroke_Style); |
| 125 butt.setStrokeWidth(width); | 125 butt.setStrokeWidth(width); |
| 126 drawPaths(butt, -1); | 126 drawPaths(butt, -1); |
| 127 | 127 |
| 128 SkPaint round(butt); | 128 SkPaint round(butt); |
| 129 round.setStrokeCap(SkPaint::kRound_Cap); | 129 round.setStrokeCap(SkPaint::kRound_Cap); |
| 130 drawPaths(round, -1); | 130 drawPaths(round, -1); |
| 131 | 131 |
| 132 SkPaint square(butt); | 132 SkPaint square(butt); |
| 133 square.setStrokeCap(SkPaint::kSquare_Cap); | 133 square.setStrokeCap(SkPaint::kSquare_Cap); |
| 134 drawPaths(square, -1); | 134 drawPaths(square, -1); |
| 135 canvas->restore(); | 135 canvas->restore(); |
| 136 canvas->translate(220, 0); | 136 canvas->translate(220, 0); |
| 137 } | 137 } |
| 138 canvas->restore(); | 138 canvas->restore(); |
| 139 canvas->translate(0, 210); | 139 canvas->translate(0, 210); |
| 140 } | 140 } |
| 141 } | 141 } |
| 142 | 142 |
| 143 private: | 143 private: |
| 144 void drawFat(SkCanvas* canvas, const SkPath& path, const SkPaint& paint, int
index) { | 144 void drawFat(SkCanvas* canvas, const SkPath& path, const SkPaint& paint, int
index) { |
| 145 const SkScalar scale = 10; | 145 const SkScalar scale = 10; |
| 146 SkRect bounds = path.getBounds(); | 146 SkRect bounds = path.getBounds(); |
| 147 SkBitmap offscreen; | 147 SkBitmap offscreen; |
| 148 offscreen.allocN32Pixels(SkScalarRoundToInt(bounds.width() + 4), | 148 offscreen.allocN32Pixels(SkScalarRoundToInt(bounds.width() + 4), |
| 149 SkScalarRoundToInt(bounds.height() + 4)); | 149 SkScalarRoundToInt(bounds.height() + 4)); |
| 150 offscreen.eraseColor(SK_ColorWHITE); |
| 150 SkScalar pathX = bounds.fLeft - 2; | 151 SkScalar pathX = bounds.fLeft - 2; |
| 151 SkScalar pathY = bounds.fTop - 2; | 152 SkScalar pathY = bounds.fTop - 2; |
| 152 SkMatrix cMatrix = canvas->getTotalMatrix(); | 153 SkMatrix cMatrix = canvas->getTotalMatrix(); |
| 153 if (!canvas->readPixels(&offscreen, SkScalarRoundToInt(pathX + cMatrix.g
etTranslateX()), | 154 if (!canvas->readPixels(&offscreen, SkScalarRoundToInt(pathX + cMatrix.g
etTranslateX()), |
| 154 SkScalarRoundToInt(pathY + cMatrix.getTranslateY()))) { | 155 SkScalarRoundToInt(pathY + cMatrix.getTranslateY()))) { |
| 155 return; | 156 return; |
| 156 } | 157 } |
| 157 | 158 |
| 158 canvas->save(); | 159 canvas->save(); |
| 159 SkMatrix clipM; | 160 SkMatrix clipM; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 186 canvas->restore(); | 187 canvas->restore(); |
| 187 } | 188 } |
| 188 } | 189 } |
| 189 | 190 |
| 190 }; | 191 }; |
| 191 | 192 |
| 192 /////////////////////////////////////////////////////////////////////////////// | 193 /////////////////////////////////////////////////////////////////////////////// |
| 193 | 194 |
| 194 DEF_GM( return new StrokeZeroGM(); ) | 195 DEF_GM( return new StrokeZeroGM(); ) |
| 195 | 196 |
| OLD | NEW |