From 026beb52a29a620290fcfb24f1e7e9e75547b80f Mon Sep 17 00:00:00 2001 From: reed Date: Wed, 10 Jun 2015 14:23:15 -0700 Subject: SkPath::Direction serves two masters: - input param to addFoo (e.g. addRect), where only CW or CCW are valid) - output param from computing functions, that sometimes return kUnknown This CL's intent is to split these into distinct enums/features: - Direction (public) loses kUnknown, and is only used for input - FirstDirection (private) is used for computing the first direction we see when analyzing a contour BUG=skia: Review URL: https://codereview.chromium.org/1176953002 --- gm/convex_all_line_paths.cpp | 7 ++++--- gm/strokefill.cpp | 16 ++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) (limited to 'gm') diff --git a/gm/convex_all_line_paths.cpp b/gm/convex_all_line_paths.cpp index 81b98b88f8..a93a7f6e47 100644 --- a/gm/convex_all_line_paths.cpp +++ b/gm/convex_all_line_paths.cpp @@ -6,6 +6,7 @@ */ #include "gm.h" +#include "SkPathPriv.h" static void create_ngon(int n, SkPoint* pts, SkScalar width, SkScalar height) { float angleStep = 360.0f / n, angle = 0.0f, sin, cos; @@ -237,9 +238,9 @@ protected: // of the GMs rows. SkASSERT(path.isConvex()); SkASSERT(SkPath::kLine_SegmentMask == path.getSegmentMasks()); - SkPath::Direction actualDir; - SkASSERT(path.cheapComputeDirection(&actualDir)); - SkASSERT(dir == actualDir); + SkPathPriv::FirstDirection actualDir; + SkASSERT(SkPathPriv::CheapComputeFirstDirection(path, &actualDir)); + SkASSERT(SkPathPriv::AsFirstDirection(dir) == actualDir); SkRect bounds = path.getBounds(); SkASSERT(SkScalarNearlyEqual(bounds.centerX(), 0.0f)); SkASSERT(bounds.height() <= kMaxPathHeight); diff --git a/gm/strokefill.cpp b/gm/strokefill.cpp index b6e888b047..04985485d9 100644 --- a/gm/strokefill.cpp +++ b/gm/strokefill.cpp @@ -7,7 +7,7 @@ #include "gm.h" #include "SkCanvas.h" -#include "SkPath.h" +#include "SkPathPriv.h" #include "SkTypeface.h" namespace skiagm { @@ -69,12 +69,12 @@ protected: path2.reset(); path2.addCircle(x + SkIntToScalar(240), y + SkIntToScalar(200), SkIntToScalar(50), SkPath::kCCW_Direction); canvas->drawPath(path2, paint); - SkASSERT(path2.cheapIsDirection(SkPath::kCCW_Direction)); + SkASSERT(SkPathPriv::CheapIsFirstDirection(path2, SkPathPriv::kCCW_FirstDirection)); path2.reset(); - SkASSERT(!path2.cheapComputeDirection(NULL)); + SkASSERT(!SkPathPriv::CheapComputeFirstDirection(path2, NULL)); path2.addCircle(x + SkIntToScalar(360), y + SkIntToScalar(200), SkIntToScalar(50), SkPath::kCW_Direction); - SkASSERT(path2.cheapIsDirection(SkPath::kCW_Direction)); + SkASSERT(SkPathPriv::CheapIsFirstDirection(path2, SkPathPriv::kCW_FirstDirection)); canvas->drawPath(path2, paint); SkRect r = SkRect::MakeXYWH(x - SkIntToScalar(50), y + SkIntToScalar(280), @@ -98,18 +98,18 @@ protected: r = SkRect::MakeXYWH(x + SkIntToScalar(190), y + SkIntToScalar(280), SkIntToScalar(100), SkIntToScalar(100)); path4.reset(); - SkASSERT(!path4.cheapComputeDirection(NULL)); + SkASSERT(!SkPathPriv::CheapComputeFirstDirection(path4, NULL)); path4.addRect(r, SkPath::kCCW_Direction); - SkASSERT(path4.cheapIsDirection(SkPath::kCCW_Direction)); + SkASSERT(SkPathPriv::CheapIsFirstDirection(path4, SkPathPriv::kCCW_FirstDirection)); path4.moveTo(0, 0); // test for crbug.com/247770 canvas->drawPath(path4, paint); r = SkRect::MakeXYWH(x + SkIntToScalar(310), y + SkIntToScalar(280), SkIntToScalar(100), SkIntToScalar(100)); path4.reset(); - SkASSERT(!path4.cheapComputeDirection(NULL)); + SkASSERT(!SkPathPriv::CheapComputeFirstDirection(path4, NULL)); path4.addRect(r, SkPath::kCW_Direction); - SkASSERT(path4.cheapIsDirection(SkPath::kCW_Direction)); + SkASSERT(SkPathPriv::CheapIsFirstDirection(path4, SkPathPriv::kCW_FirstDirection)); path4.moveTo(0, 0); // test for crbug.com/247770 canvas->drawPath(path4, paint); } -- cgit v1.2.3