Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
contour_measure.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
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"
11
13 SkPathBuilder* path,
14 bool force_closed,
15 SkScalar res_scale) {
17 return new SkContourMeasureIter(path->snapshot(), force_closed, res_scale);
18}
19
21 SkContourMeasureIter* iter) {
22 auto next = iter->next();
23 if (next) {
25 next->ref();
26 }
27 return next.get();
28}
29
30SKWASM_EXPORT void contourMeasureIter_dispose(SkContourMeasureIter* iter) {
32 delete iter;
33}
34
35SKWASM_EXPORT void contourMeasure_dispose(SkContourMeasure* measure) {
37 measure->unref();
38}
39
40SKWASM_EXPORT SkScalar contourMeasure_length(SkContourMeasure* measure) {
41 return measure->length();
42}
43
44SKWASM_EXPORT bool contourMeasure_isClosed(SkContourMeasure* measure) {
45 return measure->isClosed();
46}
47
48SKWASM_EXPORT bool contourMeasure_getPosTan(SkContourMeasure* measure,
49 SkScalar distance,
50 SkPoint* out_position,
51 SkVector* out_tangent) {
52 return measure->getPosTan(distance, out_position, out_tangent);
53}
54
56 SkContourMeasure* measure,
57 SkScalar start_d,
58 SkScalar stop_d,
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)) {
62 delete out_path;
63 return nullptr;
64 }
66 return out_path;
67}
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
uint32_t live_path_count
#define SKWASM_EXPORT
Definition export.h:10