mirror of
https://github.com/bitsycore/compose-desktop-native.git
synced 2026-10-08 12:17:26 +00:00
Coil 3.6.2 publishes linux + apple klibs for its core/network/svg modules but NO mingwX64 anywhere, and NO desktop-native artifact at all for the compose layer. The sources are target-agnostic, so the port re-declares the targets and rebuilds them: :coil:coil-core coil3.* core (Skia-based decoding) :coil:coil the singleton ImageLoader facade :coil:coil-compose-core AsyncImage / rememberAsyncImagePainter internals :coil:coil-compose the public compose entry points :coil:coil-svg SVG decoding via skiko SVGDOM :coil:coil-network-core shared network-fetcher plumbing :coil:coil-network-ktor3 Ktor 3 fetcher, on the port's existing ktor pin Vendored VERBATIM from coil-kt/coil @ 3.6.2 (new COIL_REF pin + manifests); 152 files, zero local edits - all of it compiled unmodified. SOURCE-SET COLLAPSE: the port has no android, jvm or js target, so upstream's nonAndroidMain / nonJvmCommonMain / nonJsCommonMain all apply to every target here. They do NOT merge into nativeMain though: several declare `expect`s whose `actual`s live in upstream nativeMain, and siblings in one source set is a hard error. So they keep their own level above it. TWO PARALLEL SKIKO BRANCHES in coil-core / coil-svg / coil-compose-core: upstream's non-android code uses org.jetbrains.skia.* directly, so the INTERMEDIATE source set holding it needs skiko on its own compile classpath (a shared-metadata compilation is a real compile). macOS/Linux take the official skiko and mingwX64 takes the bitsycore fork, and the two cannot share an intermediate - so mingw gets a parallel branch over the same srcDirs, the same shape :compose:ui:ui-graphics already uses. Kotlin emits no metadata compilation for the single-target fork branch, so the two never collide. coil-compose-core declares the whole ui / foundation family DIRECTLY rather than leaning on foundation's transitives - the granular-metadata trap from CLAUDE.md's "Common pitfalls": a substituted coord's transitives drop off the commonMain metadata classpath. Published as com.bitsycore.coil3:<module>; bridge substitution rules added so consumers keep declaring the official io.coil-kt.coil3 coordinates.
124 lines
10 KiB
Plaintext
124 lines
10 KiB
Plaintext
// Klib ABI Dump
|
|
// Targets: [linuxArm64, linuxX64, macosArm64, mingwX64]
|
|
// Rendering settings:
|
|
// - Signature version: 2
|
|
// - Show manifest properties: true
|
|
// - Show declarations: true
|
|
|
|
// Library unique name: <com.bitsycore.coil3:coil-svg>
|
|
abstract interface coil3.svg/Svg { // coil3.svg/Svg|null[0]
|
|
abstract val height // coil3.svg/Svg.height|{}height[0]
|
|
abstract fun <get-height>(): kotlin/Float // coil3.svg/Svg.height.<get-height>|<get-height>(){}[0]
|
|
abstract val width // coil3.svg/Svg.width|{}width[0]
|
|
abstract fun <get-width>(): kotlin/Float // coil3.svg/Svg.width.<get-width>|<get-width>(){}[0]
|
|
|
|
abstract var viewBox // coil3.svg/Svg.viewBox|{}viewBox[0]
|
|
abstract fun <get-viewBox>(): coil3.svg/Svg.ViewBox? // coil3.svg/Svg.viewBox.<get-viewBox>|<get-viewBox>(){}[0]
|
|
abstract fun <set-viewBox>(coil3.svg/Svg.ViewBox?) // coil3.svg/Svg.viewBox.<set-viewBox>|<set-viewBox>(coil3.svg.Svg.ViewBox?){}[0]
|
|
|
|
abstract fun asImage(kotlin/Int = ..., kotlin/Int = ...): coil3/Image // coil3.svg/Svg.asImage|asImage(kotlin.Int;kotlin.Int){}[0]
|
|
abstract fun height(kotlin/String) // coil3.svg/Svg.height|height(kotlin.String){}[0]
|
|
abstract fun options(coil3.request/Options) // coil3.svg/Svg.options|options(coil3.request.Options){}[0]
|
|
abstract fun width(kotlin/String) // coil3.svg/Svg.width|width(kotlin.String){}[0]
|
|
|
|
abstract fun interface Parser { // coil3.svg/Svg.Parser|null[0]
|
|
abstract fun parse(okio/BufferedSource): coil3.svg/Svg // coil3.svg/Svg.Parser.parse|parse(okio.BufferedSource){}[0]
|
|
|
|
final object Companion { // coil3.svg/Svg.Parser.Companion|null[0]
|
|
final val DEFAULT // coil3.svg/Svg.Parser.Companion.DEFAULT|{}DEFAULT[0]
|
|
final fun <get-DEFAULT>(): coil3.svg/Svg.Parser // coil3.svg/Svg.Parser.Companion.DEFAULT.<get-DEFAULT>|<get-DEFAULT>(){}[0]
|
|
}
|
|
}
|
|
|
|
final class ViewBox { // coil3.svg/Svg.ViewBox|null[0]
|
|
constructor <init>(kotlin/Float, kotlin/Float, kotlin/Float, kotlin/Float) // coil3.svg/Svg.ViewBox.<init>|<init>(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
|
|
|
|
final val bottom // coil3.svg/Svg.ViewBox.bottom|{}bottom[0]
|
|
final fun <get-bottom>(): kotlin/Float // coil3.svg/Svg.ViewBox.bottom.<get-bottom>|<get-bottom>(){}[0]
|
|
final val left // coil3.svg/Svg.ViewBox.left|{}left[0]
|
|
final fun <get-left>(): kotlin/Float // coil3.svg/Svg.ViewBox.left.<get-left>|<get-left>(){}[0]
|
|
final val right // coil3.svg/Svg.ViewBox.right|{}right[0]
|
|
final fun <get-right>(): kotlin/Float // coil3.svg/Svg.ViewBox.right.<get-right>|<get-right>(){}[0]
|
|
final val top // coil3.svg/Svg.ViewBox.top|{}top[0]
|
|
final fun <get-top>(): kotlin/Float // coil3.svg/Svg.ViewBox.top.<get-top>|<get-top>(){}[0]
|
|
|
|
final fun component1(): kotlin/Float // coil3.svg/Svg.ViewBox.component1|component1(){}[0]
|
|
final fun component2(): kotlin/Float // coil3.svg/Svg.ViewBox.component2|component2(){}[0]
|
|
final fun component3(): kotlin/Float // coil3.svg/Svg.ViewBox.component3|component3(){}[0]
|
|
final fun component4(): kotlin/Float // coil3.svg/Svg.ViewBox.component4|component4(){}[0]
|
|
final fun copy(kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ..., kotlin/Float = ...): coil3.svg/Svg.ViewBox // coil3.svg/Svg.ViewBox.copy|copy(kotlin.Float;kotlin.Float;kotlin.Float;kotlin.Float){}[0]
|
|
final fun equals(kotlin/Any?): kotlin/Boolean // coil3.svg/Svg.ViewBox.equals|equals(kotlin.Any?){}[0]
|
|
final fun hashCode(): kotlin/Int // coil3.svg/Svg.ViewBox.hashCode|hashCode(){}[0]
|
|
final fun toString(): kotlin/String // coil3.svg/Svg.ViewBox.toString|toString(){}[0]
|
|
}
|
|
}
|
|
|
|
final class coil3.svg/SvgDecoder : coil3.decode/Decoder { // coil3.svg/SvgDecoder|null[0]
|
|
constructor <init>(coil3.decode/ImageSource, coil3.request/Options, coil3.svg/Svg.Parser = ..., kotlin/Function1<coil3/PlatformContext, kotlin/Float> = ..., kotlin/Boolean = ..., kotlin/Boolean = ...) // coil3.svg/SvgDecoder.<init>|<init>(coil3.decode.ImageSource;coil3.request.Options;coil3.svg.Svg.Parser;kotlin.Function1<coil3.PlatformContext,kotlin.Float>;kotlin.Boolean;kotlin.Boolean){}[0]
|
|
constructor <init>(coil3.decode/ImageSource, coil3.request/Options, kotlin/Boolean = ..., kotlin/Boolean = ..., kotlin/Boolean = ...) // coil3.svg/SvgDecoder.<init>|<init>(coil3.decode.ImageSource;coil3.request.Options;kotlin.Boolean;kotlin.Boolean;kotlin.Boolean){}[0]
|
|
|
|
final val density // coil3.svg/SvgDecoder.density|{}density[0]
|
|
final fun <get-density>(): kotlin/Function1<coil3/PlatformContext, kotlin/Float> // coil3.svg/SvgDecoder.density.<get-density>|<get-density>(){}[0]
|
|
final val parser // coil3.svg/SvgDecoder.parser|{}parser[0]
|
|
final fun <get-parser>(): coil3.svg/Svg.Parser // coil3.svg/SvgDecoder.parser.<get-parser>|<get-parser>(){}[0]
|
|
final val renderToBitmap // coil3.svg/SvgDecoder.renderToBitmap|{}renderToBitmap[0]
|
|
final fun <get-renderToBitmap>(): kotlin/Boolean // coil3.svg/SvgDecoder.renderToBitmap.<get-renderToBitmap>|<get-renderToBitmap>(){}[0]
|
|
final val scaleToDensity // coil3.svg/SvgDecoder.scaleToDensity|{}scaleToDensity[0]
|
|
final fun <get-scaleToDensity>(): kotlin/Boolean // coil3.svg/SvgDecoder.scaleToDensity.<get-scaleToDensity>|<get-scaleToDensity>(){}[0]
|
|
final val useViewBoundsAsIntrinsicSize // coil3.svg/SvgDecoder.useViewBoundsAsIntrinsicSize|{}useViewBoundsAsIntrinsicSize[0]
|
|
final fun <get-useViewBoundsAsIntrinsicSize>(): kotlin/Boolean // coil3.svg/SvgDecoder.useViewBoundsAsIntrinsicSize.<get-useViewBoundsAsIntrinsicSize>|<get-useViewBoundsAsIntrinsicSize>(){}[0]
|
|
|
|
final suspend fun decode(): coil3.decode/DecodeResult // coil3.svg/SvgDecoder.decode|decode(){}[0]
|
|
|
|
final class Factory : coil3.decode/Decoder.Factory { // coil3.svg/SvgDecoder.Factory|null[0]
|
|
constructor <init>(coil3.svg/Svg.Parser = ..., kotlin/Function1<coil3/PlatformContext, kotlin/Float> = ..., kotlin/Boolean = ..., kotlin/Boolean = ...) // coil3.svg/SvgDecoder.Factory.<init>|<init>(coil3.svg.Svg.Parser;kotlin.Function1<coil3.PlatformContext,kotlin.Float>;kotlin.Boolean;kotlin.Boolean){}[0]
|
|
constructor <init>(kotlin/Boolean = ..., kotlin/Boolean = ..., kotlin/Boolean = ...) // coil3.svg/SvgDecoder.Factory.<init>|<init>(kotlin.Boolean;kotlin.Boolean;kotlin.Boolean){}[0]
|
|
|
|
final val density // coil3.svg/SvgDecoder.Factory.density|{}density[0]
|
|
final fun <get-density>(): kotlin/Function1<coil3/PlatformContext, kotlin/Float> // coil3.svg/SvgDecoder.Factory.density.<get-density>|<get-density>(){}[0]
|
|
final val parser // coil3.svg/SvgDecoder.Factory.parser|{}parser[0]
|
|
final fun <get-parser>(): coil3.svg/Svg.Parser // coil3.svg/SvgDecoder.Factory.parser.<get-parser>|<get-parser>(){}[0]
|
|
final val renderToBitmap // coil3.svg/SvgDecoder.Factory.renderToBitmap|{}renderToBitmap[0]
|
|
final fun <get-renderToBitmap>(): kotlin/Boolean // coil3.svg/SvgDecoder.Factory.renderToBitmap.<get-renderToBitmap>|<get-renderToBitmap>(){}[0]
|
|
final val scaleToDensity // coil3.svg/SvgDecoder.Factory.scaleToDensity|{}scaleToDensity[0]
|
|
final fun <get-scaleToDensity>(): kotlin/Boolean // coil3.svg/SvgDecoder.Factory.scaleToDensity.<get-scaleToDensity>|<get-scaleToDensity>(){}[0]
|
|
final val useViewBoundsAsIntrinsicSize // coil3.svg/SvgDecoder.Factory.useViewBoundsAsIntrinsicSize|{}useViewBoundsAsIntrinsicSize[0]
|
|
final fun <get-useViewBoundsAsIntrinsicSize>(): kotlin/Boolean // coil3.svg/SvgDecoder.Factory.useViewBoundsAsIntrinsicSize.<get-useViewBoundsAsIntrinsicSize>|<get-useViewBoundsAsIntrinsicSize>(){}[0]
|
|
|
|
final fun create(coil3.fetch/SourceFetchResult, coil3.request/Options, coil3/ImageLoader): coil3.decode/Decoder? // coil3.svg/SvgDecoder.Factory.create|create(coil3.fetch.SourceFetchResult;coil3.request.Options;coil3.ImageLoader){}[0]
|
|
}
|
|
|
|
final object Companion { // coil3.svg/SvgDecoder.Companion|null[0]
|
|
final val NO_DENSITY // coil3.svg/SvgDecoder.Companion.NO_DENSITY|{}NO_DENSITY[0]
|
|
final fun <get-NO_DENSITY>(): kotlin/Function1<coil3/PlatformContext, kotlin/Float> // coil3.svg/SvgDecoder.Companion.NO_DENSITY.<get-NO_DENSITY>|<get-NO_DENSITY>(){}[0]
|
|
final val PLATFORM_DENSITY // coil3.svg/SvgDecoder.Companion.PLATFORM_DENSITY|{}PLATFORM_DENSITY[0]
|
|
final fun <get-PLATFORM_DENSITY>(): kotlin/Function1<coil3/PlatformContext, kotlin/Float> // coil3.svg/SvgDecoder.Companion.PLATFORM_DENSITY.<get-PLATFORM_DENSITY>|<get-PLATFORM_DENSITY>(){}[0]
|
|
}
|
|
}
|
|
|
|
final class coil3.svg/SvgImage : coil3/Image { // coil3.svg/SvgImage|null[0]
|
|
constructor <init>(org.jetbrains.skia.svg/SVGDOM, kotlin/Int, kotlin/Int) // coil3.svg/SvgImage.<init>|<init>(org.jetbrains.skia.svg.SVGDOM;kotlin.Int;kotlin.Int){}[0]
|
|
|
|
final val height // coil3.svg/SvgImage.height|{}height[0]
|
|
final fun <get-height>(): kotlin/Int // coil3.svg/SvgImage.height.<get-height>|<get-height>(){}[0]
|
|
final val shareable // coil3.svg/SvgImage.shareable|{}shareable[0]
|
|
final fun <get-shareable>(): kotlin/Boolean // coil3.svg/SvgImage.shareable.<get-shareable>|<get-shareable>(){}[0]
|
|
final val size // coil3.svg/SvgImage.size|{}size[0]
|
|
final fun <get-size>(): kotlin/Long // coil3.svg/SvgImage.size.<get-size>|<get-size>(){}[0]
|
|
final val svg // coil3.svg/SvgImage.svg|{}svg[0]
|
|
final fun <get-svg>(): org.jetbrains.skia.svg/SVGDOM // coil3.svg/SvgImage.svg.<get-svg>|<get-svg>(){}[0]
|
|
final val width // coil3.svg/SvgImage.width|{}width[0]
|
|
final fun <get-width>(): kotlin/Int // coil3.svg/SvgImage.width.<get-width>|<get-width>(){}[0]
|
|
|
|
final fun draw(org.jetbrains.skia/Canvas) // coil3.svg/SvgImage.draw|draw(org.jetbrains.skia.Canvas){}[0]
|
|
}
|
|
|
|
final val coil3.svg.internal/initHook // coil3.svg.internal/initHook|{}initHook[0]
|
|
final fun <get-initHook>(): kotlin/Any // coil3.svg.internal/initHook.<get-initHook>|<get-initHook>(){}[0]
|
|
final val coil3.svg/height // coil3.svg/height|@coil3.svg.Svg.ViewBox{}height[0]
|
|
final fun (coil3.svg/Svg.ViewBox).<get-height>(): kotlin/Float // coil3.svg/height.<get-height>|<get-height>@coil3.svg.Svg.ViewBox(){}[0]
|
|
final val coil3.svg/width // coil3.svg/width|@coil3.svg.Svg.ViewBox{}width[0]
|
|
final fun (coil3.svg/Svg.ViewBox).<get-width>(): kotlin/Float // coil3.svg/width.<get-width>|<get-width>@coil3.svg.Svg.ViewBox(){}[0]
|
|
|
|
final fun (coil3.decode/DecodeUtils).coil3.svg/isSvg(okio/BufferedSource): kotlin/Boolean // coil3.svg/isSvg|isSvg@coil3.decode.DecodeUtils(okio.BufferedSource){}[0]
|