diff options
-rw-r--r-- | gm/shapes.cpp | 18 | ||||
-rw-r--r-- | samplecode/SampleAARects.cpp | 10 | ||||
-rw-r--r-- | samplecode/SampleColorFilter.cpp | 12 | ||||
-rw-r--r-- | samplecode/SampleDither.cpp | 8 | ||||
-rw-r--r-- | src/core/SkPath.cpp | 7 | ||||
-rw-r--r-- | tests/PathTest.cpp | 7 |
6 files changed, 35 insertions, 27 deletions
diff --git a/gm/shapes.cpp b/gm/shapes.cpp index c746a493df..0b01390796 100644 --- a/gm/shapes.cpp +++ b/gm/shapes.cpp @@ -19,6 +19,15 @@ namespace skiagm { class ShapesGM : public GM { protected: ShapesGM(const char* name, bool antialias) : fName(name), fAntialias(antialias) { + if (!antialias) { + fName.append("_bw"); + } + } + + SkString onShortName() override final { return fName; } + SkISize onISize() override { return SkISize::Make(500, 500); } + + void onOnceBeforeDraw() override { fShapes.push_back().setOval(SkRect::MakeXYWH(-5, 25, 200, 100)); fRotations.push_back(21); @@ -50,15 +59,6 @@ protected: fShapes.push_back().setRectRadii(SkRect::MakeXYWH(180, -30, 80, 60), radii2); fRotations.push_back(295); - if (!antialias) { - fName.append("_bw"); - } - } - - SkString onShortName() override final { return fName; } - SkISize onISize() override { return SkISize::Make(500, 500); } - - void onOnceBeforeDraw() override { fPaint.setAntiAlias(fAntialias); } diff --git a/samplecode/SampleAARects.cpp b/samplecode/SampleAARects.cpp index 3676240ba8..f83ab31f55 100644 --- a/samplecode/SampleAARects.cpp +++ b/samplecode/SampleAARects.cpp @@ -38,16 +38,16 @@ class AARectView : public SampleView { enum { N = 64 }; -public: - AARectView() { + +protected: + void onOnceBeforeDraw() override { fBitmap = createBitmap(N); fWidth = N; } -protected: // overrides from SkEventSink - virtual bool onQuery(SkEvent* evt) { + bool onQuery(SkEvent* evt) override { if (SampleCode::TitleQ(*evt)) { SampleCode::TitleR(evt, "AA Rects"); return true; @@ -55,7 +55,7 @@ protected: return this->INHERITED::onQuery(evt); } - virtual void onDrawContent(SkCanvas* canvas) { + void onDrawContent(SkCanvas* canvas) override { canvas->translate(SkIntToScalar(10), SkIntToScalar(10)); SkPaint bluePaint; diff --git a/samplecode/SampleColorFilter.cpp b/samplecode/SampleColorFilter.cpp index 60ab0134ef..efda5e9199 100644 --- a/samplecode/SampleColorFilter.cpp +++ b/samplecode/SampleColorFilter.cpp @@ -113,8 +113,9 @@ class ColorFilterView : public SampleView { enum { N = 64 }; -public: - ColorFilterView() { + +protected: + void onOnceBeforeDraw() override { fBitmap = createBitmap(N); fShader = sk_tool_utils::create_checkerboard_shader( 0xFFCCCCCC, 0xFFFFFFFF, 12); @@ -124,9 +125,8 @@ public: } } -protected: // overrides from SkEventSink - virtual bool onQuery(SkEvent* evt) { + bool onQuery(SkEvent* evt) override { if (SampleCode::TitleQ(*evt)) { SampleCode::TitleR(evt, "ColorFilter"); return true; @@ -134,13 +134,13 @@ protected: return this->INHERITED::onQuery(evt); } - virtual void onDrawBackground(SkCanvas* canvas) { + void onDrawBackground(SkCanvas* canvas) override { SkPaint paint; paint.setShader(fShader); canvas->drawPaint(paint); } - virtual void onDrawContent(SkCanvas* canvas) { + void onDrawContent(SkCanvas* canvas) override { if (false) { SkPaint p; p.setAntiAlias(true); diff --git a/samplecode/SampleDither.cpp b/samplecode/SampleDither.cpp index fbe25ddcaa..1dd42710ce 100644 --- a/samplecode/SampleDither.cpp +++ b/samplecode/SampleDither.cpp @@ -108,7 +108,8 @@ public: SkBitmap fBM, fBMPreDither, fBM16; SkScalar fAngle; - DitherView() { +protected: + void onOnceBeforeDraw() override { make_bm(&fBM); make_bm(&fBMPreDither); pre_dither(fBMPreDither); @@ -119,9 +120,8 @@ public: this->setBGColor(0xFF181818); } -protected: // overrides from SkEventSink - virtual bool onQuery(SkEvent* evt) { + bool onQuery(SkEvent* evt) override { if (SampleCode::TitleQ(*evt)) { SampleCode::TitleR(evt, "Dither"); return true; @@ -129,7 +129,7 @@ protected: return this->INHERITED::onQuery(evt); } - virtual void onDrawContent(SkCanvas* canvas) { + void onDrawContent(SkCanvas* canvas) override { SkPaint paint; SkScalar x = SkIntToScalar(10); SkScalar y = SkIntToScalar(10); diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp index 57192e8f9e..284a6a716c 100644 --- a/src/core/SkPath.cpp +++ b/src/core/SkPath.cpp @@ -539,7 +539,10 @@ addMissingClose: ; } // Success if 4 corners and first point equals last - bool result = 4 == corners && (first == last || autoClose); + SkScalar closeX = first.x() - last.x(); + SkScalar closeY = first.y() - last.y(); + // If autoClose, check if close generates diagonal + bool result = 4 == corners && (first == last || (autoClose && (!closeX || !closeY))); if (!result) { // check if we are just an incomplete rectangle, in which case we can // return true, but not claim to be closed. @@ -547,8 +550,6 @@ addMissingClose: // 3 sided rectangle // 4 sided but the last edge is not long enough to reach the start // - SkScalar closeX = first.x() - last.x(); - SkScalar closeY = first.y() - last.y(); if (closeX && closeY) { return false; // we're diagonal, abort (can we ever reach this?) } diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp index c3c023d6a6..85b307a903 100644 --- a/tests/PathTest.cpp +++ b/tests/PathTest.cpp @@ -4911,4 +4911,11 @@ DEF_TEST(Path_isRect, reporter) { SkRect compare; compare.set(&points[1], SK_ARRAY_COUNT(points) - 1); REPORTER_ASSERT(reporter, rect == compare); + path.reset(); + SkPoint points2[] = { {75, 50}, {100, 75}, {150, 75}, {150, 150}, {75, 150}, {75, 50} }; + for (size_t index = 0; index < SK_ARRAY_COUNT(points); ++index) { + index < 2 ? path.moveTo(points2[index]) : path.lineTo(points2[index]); + } + path.close(); + REPORTER_ASSERT(reporter, !path.isRect(&rect, nullptr, nullptr)); } |