Lines Matching refs:SkPath

53     static SkPathFirstDirection ComputeFirstDirection(const SkPath&);
55 static bool IsClosedSingleContour(const SkPath& path) {
63 case SkPath::Verb::kMove_Verb:
69 case SkPath::Verb::kClose_Verb:
81 // irrelevant to behavior). SkPath::injectMoveToIfNeeded should ensure that this is always at
83 static int LeadingMoveToCount(const SkPath& path) {
87 if (verbs[i] != SkPath::Verb::kMove_Verb) {
94 static void AddGenIDChangeListener(const SkPath& path, sk_sp<SkIDChangeListener> listener) {
103 static bool IsSimpleRect(const SkPath& path, bool isSimpleFill, SkRect* rect,
110 static void CreateDrawArcPath(SkPath* path, const SkRect& oval, SkScalar startAngle,
119 static void ShrinkToFit(SkPath* path) {
126 * for (SkPath::Verb verb : SkPathPriv::Verbs(path)) {
132 Verbs(const SkPath& path) : fPathRef(path.fPathRef.get()) {}
136 SkPath::Verb operator*() { return static_cast<SkPath::Verb>(*fVerb); }
153 using RangeIter = SkPath::RangeIter;
164 Iterate(const SkPath& path)
175 SkPath::RangeIter begin() { return {fVerbsBegin, fPoints, fWeights}; }
176 SkPath::RangeIter end() { return {fVerbsEnd, nullptr, nullptr}; }
187 static const uint8_t* VerbData(const SkPath& path) {
192 static const SkPoint* PointData(const SkPath& path) {
197 static int ConicWeightCnt(const SkPath& path) {
202 static const SkScalar* ConicWeightData(const SkPath& path) {
207 static bool TestingOnly_unique(const SkPath& path) {
212 static bool HasComputedBounds(const SkPath& path) {
217 addRoundRect(), addRRect(). SkPath constructed with conicTo() or rConicTo() will not
218 return true though SkPath draws oval.
232 @return true if SkPath was constructed by method that reduces to oval
234 static bool IsOval(const SkPath& path, SkRect* rect, SkPathDirection* dir, unsigned* start) {
244 is not empty, not SkRect, and not oval. SkPath constructed with other calls
245 will not return true though SkPath draws SkRRect.
259 @return true if SkPath contains only SkRRect
261 static bool IsRRect(const SkPath& path, SkRRect* rrect, SkPathDirection* dir,
289 static bool TooBigForMath(const SkPath& path) {
293 // Returns number of valid points for each SkPath::Iter verb
326 static bool IsAxisAligned(const SkPath& path);
337 static int LastMoveToIndex(const SkPath& path) { return path.fLastMoveToIndex; }
339 static bool IsRectContour(const SkPath&, bool allowPartial, int* currVerb,
343 /** Returns true if SkPath is equivalent to nested SkRect pair when filled.
352 @return true if SkPath contains nested SkRect pair
354 static bool IsNestedFillRects(const SkPath&, SkRect rect[2],
361 /** Returns equivalent SkPath::FillType representing SkPath fill inside its bounds.
380 static bool PerspectiveClip(const SkPath& src, const SkMatrix&, SkPath* result);
387 static int GenIDChangeListenersCount(const SkPath&);
389 static void UpdatePathPoint(SkPath* path, int index, const SkPoint& pt) {
396 static SkPathConvexity GetConvexity(const SkPath& path) {
399 static SkPathConvexity GetConvexityOrUnknown(const SkPath& path) {
402 static void SetConvexity(const SkPath& path, SkPathConvexity c) {
408 static void ForceComputeConvexity(const SkPath& path) {
413 static void ReverseAddPath(SkPathBuilder* builder, const SkPath& reverseMe) {
418 // Lightweight variant of SkPath::Iter that only returns segments (e.g. lines/conics).
421 // Roughly the same as SkPath::Iter(path, true), but does not return moves or closes
439 SkPathEdgeIter(const SkPath& path);
447 kLine = SkPath::kLine_Verb,
448 kQuad = SkPath::kQuad_Verb,
449 kConic = SkPath::kConic_Verb,
450 kCubic = SkPath::kCubic_Verb,
453 static SkPath::Verb EdgeToVerb(Edge e) {
454 return SkPath::Verb(e);
487 case SkPath::kMove_Verb: {
496 case SkPath::kClose_Verb:
509 SkDEBUGCODE(fIsConic = (v == SkPath::kConic_Verb);)