| /* |
| * Copyright 2019 Google LLC. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkPathTypes_DEFINED |
| #define SkPathTypes_DEFINED |
| |
| #include "include/core/SkTypes.h" |
| |
| enum class SkPathFillType { |
| /** Specifies that "inside" is computed by a non-zero sum of signed edge crossings */ |
| kWinding, |
| /** Specifies that "inside" is computed by an odd number of edge crossings */ |
| kEvenOdd, |
| /** Same as Winding, but draws outside of the path, rather than inside */ |
| kInverseWinding, |
| /** Same as EvenOdd, but draws outside of the path, rather than inside */ |
| kInverseEvenOdd |
| }; |
| |
| enum class SkPathConvexityType { |
| kUnknown, |
| kConvex, |
| kConcave |
| }; |
| |
| enum class SkPathDirection { |
| /** clockwise direction for adding closed contours */ |
| kCW, |
| /** counter-clockwise direction for adding closed contours */ |
| kCCW, |
| }; |
| |
| enum SkPathSegmentMask { |
| kLine_SkPathSegmentMask = 1 << 0, |
| kQuad_SkPathSegmentMask = 1 << 1, |
| kConic_SkPathSegmentMask = 1 << 2, |
| kCubic_SkPathSegmentMask = 1 << 3, |
| }; |
| |
| enum class SkPathVerb { |
| kMove, //!< iter.next returns 1 point |
| kLine, //!< iter.next returns 2 points |
| kQuad, //!< iter.next returns 3 points |
| kConic, //!< iter.next returns 3 points + iter.conicWeight() |
| kCubic, //!< iter.next returns 4 points |
| kClose, //!< iter.next returns 1 point (contour's moveTo pt) |
| kDone, //!< iter.next returns 0 points |
| }; |
| |
| #endif |