8#include "third_party/skia/include/core/SkContourMeasure.h"
9#include "third_party/skia/include/core/SkPath.h"
10#include "third_party/skia/include/core/SkPathBuilder.h"
17 return new SkContourMeasureIter(path->snapshot(), force_closed, res_scale);
21 SkContourMeasureIter* iter) {
22 auto next = iter->next();
41 return measure->length();
45 return measure->isClosed();
50 SkPoint* out_position,
51 SkVector* out_tangent) {
52 return measure->getPosTan(distance, out_position, out_tangent);
56 SkContourMeasure* measure,
59 bool start_with_move_to) {
60 SkPathBuilder* out_path =
new SkPathBuilder();
61 if (!measure->getSegment(start_d, stop_d, out_path, start_with_move_to)) {
SKWASM_EXPORT void contourMeasureIter_dispose(SkContourMeasureIter *iter)
SKWASM_EXPORT SkContourMeasure * contourMeasureIter_next(SkContourMeasureIter *iter)
SKWASM_EXPORT SkContourMeasureIter * contourMeasureIter_create(SkPathBuilder *path, bool force_closed, SkScalar res_scale)
SKWASM_EXPORT bool contourMeasure_getPosTan(SkContourMeasure *measure, SkScalar distance, SkPoint *out_position, SkVector *out_tangent)
SKWASM_EXPORT bool contourMeasure_isClosed(SkContourMeasure *measure)
SKWASM_EXPORT SkPathBuilder * contourMeasure_getSegment(SkContourMeasure *measure, SkScalar start_d, SkScalar stop_d, bool start_with_move_to)
SKWASM_EXPORT SkScalar contourMeasure_length(SkContourMeasure *measure)
SKWASM_EXPORT void contourMeasure_dispose(SkContourMeasure *measure)
uint32_t live_contour_measure_iter_count
uint32_t live_contour_measure_count