in Cyborg/VectorDrawable.swift [212:243]
func createLayers(using externalValues: ExternalValues,
drawableSize: CGSize,
transform: [Transform],
tint: AndroidTint) -> [CALayer] {
var clipPathLayers = clipPaths.map { clipPath in
clipPath.createLayer(drawableSize: drawableSize,
transform: transform + [self.transform])
}
let pathLayers = Array(
children.map { child in
child.createLayers(using: externalValues,
drawableSize: drawableSize,
transform: transform + [self.transform],
tint: tint)
}
.joined()
)
if clipPathLayers.isEmpty {
return pathLayers
} else {
let superLayer = ChildResizingLayer()
let maskParent = clipPathLayers.remove(at: 0)
for layer in clipPathLayers {
maskParent.addSublayer(layer)
}
superLayer.mask = maskParent
for child in pathLayers {
superLayer.addSublayer(child)
}
return [superLayer]
}
}