MCPcopy Create free account
hub / github.com/MyGUI/mygui / shapeToSkiaPath

Function shapeToSkiaPath

MyGUIEngine/src/msdfgen/ext/resolve-shape-geometry.cpp:23–44  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21}
22
23void shapeToSkiaPath(SkPath &skPath, const Shape &shape) {
24 for (std::vector<Contour>::const_iterator contour = shape.contours.begin(); contour != shape.contours.end(); ++contour) {
25 if (!contour->edges.empty()) {
26 const EdgeSegment *edge = contour->edges.back();
27 skPath.moveTo(pointToSkiaPoint(*edge->controlPoints()));
28 for (std::vector<EdgeHolder>::const_iterator nextEdge = contour->edges.begin(); nextEdge != contour->edges.end(); edge = *nextEdge++) {
29 const Point2 *p = edge->controlPoints();
30 switch (edge->type()) {
31 case (int) LinearSegment::EDGE_TYPE:
32 skPath.lineTo(pointToSkiaPoint(p[1]));
33 break;
34 case (int) QuadraticSegment::EDGE_TYPE:
35 skPath.quadTo(pointToSkiaPoint(p[1]), pointToSkiaPoint(p[2]));
36 break;
37 case (int) CubicSegment::EDGE_TYPE:
38 skPath.cubicTo(pointToSkiaPoint(p[1]), pointToSkiaPoint(p[2]), pointToSkiaPoint(p[3]));
39 break;
40 }
41 }
42 }
43 }
44}
45
46void shapeFromSkiaPath(Shape &shape, const SkPath &skPath) {
47 shape.contours.clear();

Callers 1

resolveShapeGeometryFunction · 0.85

Calls 7

pointToSkiaPointFunction · 0.85
moveToMethod · 0.80
controlPointsMethod · 0.80
beginMethod · 0.45
endMethod · 0.45
emptyMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected