Set the result with fill type winding to area equivalent to path. Returns true if successful. Does not detect if path contains contours which contain self-crossings or cross other contours; in these cases, may return true even though result does not fill same area as path.
Returns true if operation was able to produce a result; otherwise, result is unmodified. The result may be the input.
408 {
409 if (!
path.isFinite()) {
410 return false;
411 }
416 }
419 if (
path.isEmpty() ||
path.isConvex()) {
421 }
422
423 vector<Contour> contours;
425 winder.contourBounds(&contours);
426 if (contours.size() <= 1) {
428 }
429
431 for (
auto&
contour : contours) {
432 winder.inParent(
contour, sorted);
433 }
434
435 if (std::all_of(sorted.fChildren.begin(), sorted.fChildren.end(),
436 [](
const Contour*
contour) ->
bool { return contour->fChildren.empty(); } )) {
438 }
439
440 for (
auto contour : sorted.fChildren) {
443 if (!winder.checkContainerChildren(
nullptr,
contour)) {
444 return false;
445 }
446 }
447
448 bool reversed = false;
449 for (
auto contour : sorted.fChildren) {
450 reversed |= winder.markReverse(
nullptr,
contour);
451 }
452 if (!reversed) {
454 }
455 *
result = winder.reverseMarkedContours(contours, fillType);
456 return true;
457}
static bool set_result_path(SkPath *result, const SkPath &path, SkPathFillType fillType)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path