SkClipStack::Iter iter(cs, SkClipStack::Iter::kBottom_IterStart); while (const SkClipStack::Element* element = iter.next()) { if (element->getDeviceSpaceType() == SkClipStack::Element::DeviceSpaceType::kShader) { // TODO: Handle DeviceSpaceType::kShader somehow; it can't be turned into an SkPath // but perhaps the pdf backend can apply shaders in another way. continue;
}
SkPath operand; if (element->getDeviceSpaceType() != SkClipStack::Element::DeviceSpaceType::kEmpty) {
operand = element->asDeviceSpacePath();
}
SkClipOp elementOp = element->getOp(); if (element->isReplaceOp()) {
path = operand; // TODO: Once expanding clip ops are removed, we can switch the iterator to be top // to bottom, which allows us to break here on encountering a replace op.
} else { if (auto result = Op(path, operand, (SkPathOp)elementOp)) {
path = *result;
}
}
} return path;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-08-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.