DroppySystemIconRenderer
Draws an icon the way the Dock does, in any DroppyIconStyle, through the system's own icon renderer.
enum DroppySystemIconRenderer
The input is a bundle whose Info.plist names an icon, either an Icon Composer icon compiled into Contents/Resources/Assets.car (CFBundleIconName), which is where the real Liquid Glass comes from, or an .icns (CFBundleIconFile). A compiled droplet is such a bundle.
Returns nil before macOS 26, when the private renderer is missing, or when it produced nothing; the caller then draws its own artwork. Call it off the main thread: the picture is composited in iconservicesagent.
Type properties
iconShapeInset
static let iconShapeInset: CGFloat
The fraction of a rendered canvas the icon's squircle occupies. The system pads an icon to 1024 with the squircle at 100...924, room for its shadow; Droppy draws icons flush, so the padding is cropped.
isAvailable
static var isAvailable: Bool { get }
Whether the system renderer can be used on this Mac at all.
Type methods
bundleHasCompiledIcon(at:)
static func bundleHasCompiledIcon(at bundleURL: URL) -> Bool
Whether bundleURL carries an icon the system renderer can draw in every style: a compiled Icon Composer icon, not a lone .icns.
image(forBundleAt:style:pixelSize:cropToIconShape:)
static func image(forBundleAt bundleURL: URL, style: DroppyIconStyle, pixelSize: Int, cropToIconShape: Bool = true) -> CGImage?
The icon of the bundle at bundleURL in style, pixelSize pixels square, cropped flush to the squircle unless cropToIconShape is false. Thread-safe and reentrant: calls from several threads run side by side. Blocking.
The renderer draws at its own standard sizes (it rounds a request up to 16, 32, 64, … 1024), so the result is cropped and then resampled to exactly pixelSize.