func createLayers()

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]
            }
        }