applySoftMask

open fun applySoftMask(kind: <Error class: unknown class>, maskBBox: <Error class: unknown class>, maskCtm: <Error class: unknown class>, render: () -> Unit, renderMask: (<Error class: unknown class>) -> Unit)

Soft-mask compositing (ISO 32000-1 §11.6.5). We open a saveLayer for the content, render it, then over-paint the mask group with ComposeBlendMode.DstIn so the mask's alpha clips the content.

Honest scope: this implements the Alpha SMask kind correctly. The Luminosity kind would require a colour-to-alpha filter (a Skia ColorFilter we don't currently set up); we render it as-if-Alpha, which produces visually plausible results for mask groups whose content is already monochrome-with-alpha (the common case).