SK_C_API bool sk_pathmeasure_next_contour(sk_pathmeasure_t* pathMeasure);
+SK_C_API void sk_path_add_poly(sk_path_t* cpath, const sk_point_t* points, int count, bool close);
+
+SK_C_API uint32_t sk_path_get_segment_masks(sk_path_t* cpath);
+
SK_C_PLUS_PLUS_END_GUARD
#endif
} sk_path_add_mode_t;
typedef enum {
+ LINE_SK_PATH_SEGMENT_MASK = 1 << 0,
+ QUAD_SK_PATH_SEGMENT_MASK = 1 << 1,
+ CONIC_SK_PATH_SEGMENT_MASK = 1 << 2,
+ CUBIC_SK_PATH_SEGMENT_MASK = 1 << 3,
+} sk_path_segment_mask_t;
+
+typedef enum {
TRANSLATE_SK_PATH_EFFECT_1D_STYLE,
ROTATE_SK_PATH_EFFECT_1D_STYLE,
MORPH_SK_PATH_EFFECT_1D_STYLE,
static_assert ((int)SkPath::FillType::kInverseWinding_FillType == (int)INVERSE_WINDING_SK_PATH_FILLTYPE, ASSERT_MSG(SkPath::FillType, sk_path_filltype_t));
static_assert ((int)SkPath::FillType::kInverseEvenOdd_FillType == (int)INVERSE_EVENODD_SK_PATH_FILLTYPE, ASSERT_MSG(SkPath::FillType, sk_path_filltype_t));
+// sk_path_segment_mask_t
+static_assert ((int)SkPath::SegmentMask::kLine_SegmentMask == (int)LINE_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+static_assert ((int)SkPath::SegmentMask::kQuad_SegmentMask == (int)QUAD_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+static_assert ((int)SkPath::SegmentMask::kConic_SegmentMask == (int)CONIC_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+static_assert ((int)SkPath::SegmentMask::kCubic_SegmentMask == (int)CUBIC_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+
// sk_text_align_t
static_assert ((int)SkPaint::Align::kLeft_Align == (int)LEFT_SK_TEXT_ALIGN, ASSERT_MSG(SkPaint::Align, sk_text_align_t));
static_assert ((int)SkPaint::Align::kCenter_Align == (int)CENTER_SK_TEXT_ALIGN, ASSERT_MSG(SkPaint::Align, sk_text_align_t));
bool sk_pathmeasure_next_contour(sk_pathmeasure_t* pathMeasure) {
return AsPathMeasure(pathMeasure)->nextContour();
}
+
+void sk_path_add_poly(sk_path_t* cpath, const sk_point_t* points, int count, bool close) {
+ AsPath(cpath)->addPoly(AsPoint(points), count, close);
+}
+
+uint32_t sk_path_get_segment_masks(sk_path_t* cpath) {
+ return AsPath(cpath)->getSegmentMasks();
+}