4428f2c39f
This differed from the separate versions in that it snapped to zero. It was also strictly worse than calling the two separate versions. Most clients don't need the snapping, so just call the two existing functions. For clients that need the snapping, call new variants of each that do snap. Change-Id: Ia4e09fd9651932fe15caeab1399df7f6281bdc17 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205303 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Mike Reed <reed@google.com>
28 lines
958 B
C++
28 lines
958 B
C++
// Copyright 2019 Google LLC.
|
|
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
|
|
#include "fiddle/examples.h"
|
|
// HASH=f2260f2a170a54aef5bafe5b91c121b3
|
|
REG_FIDDLE(Path_incReserve, 256, 192, false, 0) {
|
|
void draw(SkCanvas* canvas) {
|
|
auto addPoly = [](int sides, SkScalar size, SkPath* path) -> void {
|
|
path->moveTo(size, 0);
|
|
for (int i = 1; i < sides; i++) {
|
|
SkScalar rad = SK_ScalarPI * 2 * i / sides;
|
|
path->lineTo(SkScalarCos(rad) * size, SkScalarSin(rad) * size);
|
|
}
|
|
path->close();
|
|
};
|
|
SkPath path;
|
|
path.incReserve(3 + 4 + 5 + 6 + 7 + 8 + 9);
|
|
for (int sides = 3; sides < 10; ++sides) {
|
|
addPoly(sides, sides, &path);
|
|
}
|
|
SkMatrix matrix;
|
|
matrix.setScale(10, 10, -10, -10);
|
|
path.transform(matrix);
|
|
SkPaint paint;
|
|
paint.setStyle(SkPaint::kStroke_Style);
|
|
canvas->drawPath(path, paint);
|
|
}
|
|
} // END FIDDLE
|