Unverified Commit 2c092f87 authored by Oleksandr Karpovich's avatar Oleksandr Karpovich Committed by GitHub

Add k/wasm support (#831)

* add k/wasm support

* ES6 for skiko wasm

Fix build files

Add SkikoCallbacks external funs

Add GL external object

* cleanup

* Update SkiaMultiplatformSample Composite build to run with k/wasm

* Update SkiaJsSample

* Update CI config

* cleanup

* Fix CI

* Add -O2 flag to emcc link stage

* cleanup

* cleanup

* update wasm.yml

* update maven repositories

* fixes after rebase

* enable supportJs when supportWasm is true

* Add a temporary coroutines version substitution for non-wasm

* Apply PR review suggestions

* Use coroutines 1.8.0-RC

* Workaround an issue with atomicfu 0.23.1 - Add an explicit dependency on atomicfu from nativeMain

* Fix typo

* Renamed SKIKO_COMPOSITE_BUILD to skiko.composite.build in SkiaJsSample

* Remove wasm/experimental maven repo

* Remove wasm/experimental maven repo

* Add wasmArtifactId to skikoArtifactIds

* Remove redundant comment

---------
Co-authored-by: 's avatarigoriakovlev <54274820+igoriakovlev@users.noreply.github.com>
Co-authored-by: 's avatarIlya Goncharov <ilya.goncharov@jetbrains.com>
Co-authored-by: 's avatarOleksandr Karpovich <oleksandr.karpovich@jetbrains.com>
parent cacfcb27
......@@ -171,6 +171,7 @@ jobs:
js:
runs-on: ubuntu-20.04
if: false # see wasm.yml
steps:
- uses: actions/checkout@v3
name: 'Check out code'
......@@ -197,8 +198,8 @@ jobs:
git clone https://github.com/emscripten-core/emsdk.git
cd ./emsdk
fi
./emsdk install 2.0.29
./emsdk activate 2.0.29
./emsdk install 3.1.49
./emsdk activate 3.1.49
- shell: bash
name: 'Compile and run JS tests'
run: |
......
name: WebTarget
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ wasm-main, master ]
pull_request:
branches: [ wasm-main, master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
web:
runs-on: ubuntu-20.04
steps:
- uses: browser-actions/setup-chrome@v1
with:
chrome-version: stable
id: setup-chrome
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '11'
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install libdbus-1-dev
- name: 'install emsdk'
shell: bash
run: |
cd ./skiko
sudo apt-get update -y
sudo apt-get install binutils build-essential -y
sudo apt-get install software-properties-common -y
sudo apt-get install python git curl wget -y
if [ -d ./emsdk ]; then
cd ./emsdk
git pull
else
git clone https://github.com/emscripten-core/emsdk.git
cd ./emsdk
fi
./emsdk install 3.1.49
./emsdk activate 3.1.49
source ./emsdk_env.sh
cd ..
- name: 'run tests'
shell: bash
run: |
cd ./skiko
source ./emsdk/emsdk_env.sh
./gradlew --stacktrace --info -Pskiko.wasm.enabled=true -Pskiko.js.enabled=true -Pskiko.test.onci=true wasmJsTest
./gradlew --stacktrace --info -Pskiko.wasm.enabled=true -Pskiko.js.enabled=true publishSkikoWasmRuntimePublicationToMavenLocal
- uses: actions/upload-artifact@v2
if: always()
with:
name: test-reports-wasm
path: ./skiko/build/reports/tests
retention-days: 5
plugins {
kotlin("multiplatform") version "1.8.0"
kotlin("multiplatform")
}
repositories {
......@@ -17,13 +17,26 @@ val resourcesDir = "$buildDir/resources/"
val skikoWasm by configurations.creating
val isCompositeBuild = extra.properties.getOrDefault("skiko.composite.build", "") == "1"
dependencies {
skikoWasm("org.jetbrains.skiko:skiko-js-wasm-runtime:$version")
if (isCompositeBuild) {
val filePath = gradle.includedBuild("skiko").projectDir
.resolve("./build/libs/skiko-wasm-$version.jar")
skikoWasm(files(filePath))
} else {
skikoWasm("org.jetbrains.skiko:skiko-js-wasm-runtime:$version")
}
}
val unzipTask = tasks.register("unzipWasm", Copy::class) {
destinationDir = file(resourcesDir)
from(skikoWasm.map { zipTree(it) })
if (isCompositeBuild) {
val skikoWasmJarTask = gradle.includedBuild("skiko").task(":skikoWasmJar")
dependsOn(skikoWasmJarTask)
}
}
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>().configureEach {
......@@ -33,7 +46,22 @@ tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>().configureEach
kotlin {
js(IR) {
browser()
moduleName = "jsApp"
browser {
commonWebpackConfig {
outputFileName = "jsApp.js"
}
}
binaries.executable()
}
wasmJs() {
moduleName = "wasmApp"
browser {
commonWebpackConfig {
outputFileName = "wasmApp.js"
}
}
binaries.executable()
}
......@@ -44,11 +72,20 @@ kotlin {
}
}
val jsMain by getting {
val jsWasmMain by creating {
dependsOn(commonMain)
resources.setSrcDirs(resources.srcDirs)
resources.srcDirs(unzipTask.map { it.destinationDir })
}
val jsMain by getting {
dependsOn(jsWasmMain)
}
val wasmJsMain by getting {
dependsOn(jsWasmMain)
}
}
}
......
kotlin.code.style=official
kotlin.version=1.9.20
skiko.composite.build=1
\ No newline at end of file
pluginManagement {
repositories {
mavenLocal()
mavenCentral()
gradlePluginPortal()
maven {
url = uri("https://dl.bintray.com/kotlin/kotlin-eap")
}
}
plugins {
val kotlinVersion = extra["kotlin.version"] as String
kotlin("multiplatform").version(kotlinVersion)
}
}
rootProject.name = "SkiaJsSample"
if (extra.properties.getOrDefault("skiko.composite.build", "") == "1") {
includeBuild("../../skiko") {
dependencySubstitution {
substitute(module("org.jetbrains.skiko:skiko")).using(project(":"))
}
}
}
package org.jetbrains.skiko.sample.js
import org.jetbrains.skiko.wasm.onWasmReady
fun main() {
onWasmReady(::runApp)
}
\ No newline at end of file
......@@ -2,18 +2,18 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>skiko for web demo</title>
<title>Skiko running with K/JS</title>
<script src="skiko.js"> </script>
<script src="SkiaJsSample.js"> </script>
<script type="application/javascript" src="jsApp.js"> </script>
<link type="text/css" rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Skiko For Web</h1>
<h1>Skiko running with K/JS</h1>
<canvas id="c1" width="300" height="300"></canvas>
<canvas id="c2" width="300" height="300"></canvas>
<div>
<canvas id="c3" width="606" height="400"></canvas>
</div>
</body>
</html>
</html>
\ No newline at end of file
......@@ -7,7 +7,6 @@ import org.jetbrains.skia.Rect
import org.jetbrains.skiko.GenericSkikoView
import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.SkikoView
import org.jetbrains.skiko.wasm.onWasmReady
import org.w3c.dom.HTMLCanvasElement
private class DemoApp: SkikoView {
......@@ -23,19 +22,17 @@ private class DemoApp: SkikoView {
}
}
fun main() {
onWasmReady {
for (index in 1 .. 3) {
val skiaLayer = SkiaLayer()
val canvas = document.getElementById("c$index") as HTMLCanvasElement
val app = if (index == 3) {
DemoApp()
} else {
BouncingBalls()
}
skiaLayer.skikoView = GenericSkikoView(skiaLayer, app)
skiaLayer.attachTo(canvas)
skiaLayer.needRedraw()
internal fun runApp() {
for (index in 1 .. 3) {
val skiaLayer = SkiaLayer()
val canvas = document.getElementById("c$index") as HTMLCanvasElement
val app = if (index == 3) {
DemoApp()
} else {
BouncingBalls()
}
skiaLayer.skikoView = GenericSkikoView(skiaLayer, app)
skiaLayer.attachTo(canvas)
skiaLayer.needRedraw()
}
}
}
\ No newline at end of file
......@@ -26,4 +26,4 @@ fun drawParagraphExample(surface: Surface) {
p.layout(Float.POSITIVE_INFINITY)
p.paint(surface.canvas, 10f, 10f)
surface.flushAndSubmit()
}
}
\ No newline at end of file
package org.jetbrains.skiko.sample.js
fun main() {
runApp()
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Skiko running with K/Wasm</title>
<script type="application/javascript" src="wasmApp.js"> </script>
<link type="text/css" rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Skiko running with K/Wasm</h1>
<canvas id="c1" width="300" height="300"></canvas>
<canvas id="c2" width="300" height="300"></canvas>
<div>
<canvas id="c3" width="606" height="400"></canvas>
</div>
</body>
</html>
......@@ -6,7 +6,7 @@
- run `open SkikoSample.xcodeproj`
## run iOS with debug in AppCode
- If you need to debug skiko sources without publish to maven local, then set environment variable `export SKIKO_COMPOSITE_BUILD=1` (on MacOS in ~/.zshrc)
- If you need to debug skiko sources without publish to maven local, then set a gradle property `skiko.composite.build=1` (see gradle.properties)
- Install KMM plugin for AppCode
- In AppCode open samples/SkiaMultiplatformSample (File -> Open).
Choose "Open as Project".
......
......@@ -2,27 +2,23 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
buildscript {
repositories {
mavenLocal()
google()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}
dependencies {
// __KOTLIN_COMPOSE_VERSION__
classpath(kotlin("gradle-plugin", version = "1.8.20"))
val kotlinVersion = project.property("kotlin.version") as String
classpath(kotlin("gradle-plugin", version = kotlinVersion))
}
}
plugins {
kotlin("multiplatform") version "1.8.20"
kotlin("multiplatform")
id("org.jetbrains.gradle.apple.applePlugin") version "222.3345.143-0.16"
}
val coroutinesVersion = "1.5.2"
repositories {
mavenLocal()
google()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
......@@ -53,15 +49,30 @@ if (project.hasProperty("skiko.version")) {
val resourcesDir = "$buildDir/resources"
val skikoWasm by configurations.creating
dependencies {
skikoWasm("org.jetbrains.skiko:skiko-js-wasm-runtime:$version")
}
val isCompositeBuild = extra.properties.getOrDefault("skiko.composite.build", "") == "1"
val unzipTask = tasks.register("unzipWasm", Copy::class) {
destinationDir = file(resourcesDir)
from(skikoWasm.map { zipTree(it) })
if (isCompositeBuild) {
val skikoWasmJarTask = gradle.includedBuild("skiko").task(":skikoWasmJar")
dependsOn(skikoWasmJarTask)
}
}
dependencies {
if (isCompositeBuild) {
val filePath = gradle.includedBuild("skiko").projectDir
.resolve("./build/libs/skiko-wasm-$version.jar")
skikoWasm(files(filePath))
} else {
skikoWasm("org.jetbrains.skiko:skiko-js-wasm-runtime:$version")
}
}
kotlin {
if (hostOs == "macos") {
macosX64() {
......@@ -87,7 +98,22 @@ kotlin {
}
js(IR) {
browser()
moduleName = "clocks-js"
browser {
commonWebpackConfig {
outputFileName = "clocks-js.js"
}
}
binaries.executable()
}
wasmJs {
moduleName = "clocks-wasm"
browser {
commonWebpackConfig {
outputFileName = "clocks-wasm.js"
}
}
binaries.executable()
}
......@@ -95,7 +121,6 @@ kotlin {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.skiko:skiko:$version")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
}
}
......@@ -110,12 +135,20 @@ kotlin {
}
}
val jsMain by getting {
val jsWasmMain by creating {
dependsOn(commonMain)
resources.setSrcDirs(resources.srcDirs)
resources.srcDirs(unzipTask.map { it.destinationDir })
}
val jsMain by getting {
dependsOn(jsWasmMain)
}
val wasmJsMain by getting {
dependsOn(jsWasmMain)
}
val darwinMain by creating {
dependsOn(nativeMain)
}
......@@ -304,3 +337,10 @@ fun KotlinNativeTarget.configureToLaunchFromXcode() {
}
}
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile>().configureEach {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=kotlinx.cinterop.ExperimentalForeignApi"
}
}
\ No newline at end of file
kotlin.code.style=official
kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.native.enableDependencyPropagation=false
org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m
kotlin.version=1.9.20
#skiko.composite.build=1
\ No newline at end of file
......@@ -3,12 +3,19 @@ pluginManagement {
mavenCentral()
gradlePluginPortal()
google()
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev")
}
plugins {
val kotlinVersion = extra["kotlin.version"] as String
kotlin("jvm").version(kotlinVersion)
kotlin("multiplatform").version(kotlinVersion)
}
}
rootProject.name = "SkiaMultiplatformSample"
if (System.getenv("SKIKO_COMPOSITE_BUILD") == "1") {
if (extra.properties.getOrDefault("skiko.composite.build", "") == "1") {
includeBuild("../../skiko") {
dependencySubstitution {
substitute(module("org.jetbrains.skiko:skiko")).using(project(":"))
......
package org.jetbrains.skiko.sample
import kotlinx.browser.document
import org.jetbrains.skiko.*
import kotlinx.browser.window
import org.jetbrains.skiko.wasm.onWasmReady
import org.w3c.dom.HTMLCanvasElement
fun main() {
onWasmReady {
val skiaLayer = SkiaLayer()
onContentScaleChanged = { scale -> println(scale) }
val game = JsClocks(skiaLayer)
skiaLayer.skikoView = GenericSkikoView(skiaLayer, game)
val canvas = document.getElementById("SkikoTarget") as HTMLCanvasElement
canvas.setAttribute("tabindex", "0")
skiaLayer.attachTo(canvas)
skiaLayer.needRedraw()
}
window.addEventListener("DOMContentLoaded", {
onWasmReady(::runApp)
})
}
package org.jetbrains.skiko.sample
actual val greetings: String = "Hello, JsClocks"
\ No newline at end of file
......@@ -2,16 +2,16 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>skiko for web demo</title>
<script src="skiko.js"> </script>
<script src="SkiaMultiplatformSample.js"> </script>
<title>skiko for web demo (js)</title>
<link type="text/css" rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Skiko For Web</h1>
<h1>Skiko For Web (js)</h1>
<div>
<canvas id="SkikoTarget" width="800px" height="600px"></canvas>
</div>
<script src="skiko.js"></script>
<script src="clocks-js.js"> </script>
</body>
</html>
package org.jetbrains.skiko.sample
import kotlinx.browser.document
import org.jetbrains.skiko.*
import org.w3c.dom.HTMLCanvasElement
internal fun runApp() {
val skiaLayer = SkiaLayer()
onContentScaleChanged = { scale -> println(scale) }
val game = JsClocks(skiaLayer)
skiaLayer.skikoView = GenericSkikoView(skiaLayer, game)
val canvas = document.getElementById("SkikoTarget") as HTMLCanvasElement
canvas.setAttribute("tabindex", "0")
skiaLayer.attachTo(canvas)
skiaLayer.needRedraw()
}
\ No newline at end of file
......@@ -4,8 +4,10 @@ import org.jetbrains.skiko.SkiaLayer
import org.jetbrains.skiko.SkikoInput
import org.jetbrains.skiko.SkikoInputEvent
expect val greetings: String
class JsClocks(layer: SkiaLayer) : Clocks(layer) {
override var inputText: String = "Hello, JsClocks"
override var inputText: String = greetings
override fun handleBackspace() {
if (inputText.isNotEmpty()) {
......
package org.jetbrains.skiko.sample
actual val greetings: String = "Hello, WasmClocks"
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>skiko for web demo (wasm)</title>
<script type="application/javascript" src="clocks-wasm.js"> </script>
<link type="text/css" rel="stylesheet" href="styles.css">
</head>
<body>
<h1>Skiko For Web (wasm)</h1>
<div>
<canvas id="SkikoTarget" width="800px" height="600px"></canvas>
</div>
</body>
</html>
config.devtool = undefined; // default is `eval-source-map`
config.mode = 'none'; // default is `development` (for jsBrowserRun).
\ No newline at end of file
......@@ -8,7 +8,7 @@ import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTool
plugins {
kotlin("multiplatform") version "1.8.20"
kotlin("multiplatform")
id("org.jetbrains.dokka") version "1.7.20"
`maven-publish`
signing
......@@ -16,7 +16,52 @@ plugins {
id("de.undercouch.download") version "5.4.0"
}
val coroutinesVersion = "1.7.3"
internal val Project.isInIdea: Boolean
get() {
return System.getProperty("idea.active")?.toBoolean() == true
}
val Project.supportAndroid: Boolean
get() = findProperty("skiko.android.enabled") == "true" // || isInIdea
val Project.supportAwt: Boolean
get() = findProperty("skiko.awt.enabled") == "true" || isInIdea
val Project.supportAllNative: Boolean
get() = findProperty("skiko.native.enabled") == "true" || isInIdea
val Project.supportAllNativeIos: Boolean
get() = supportAllNative || findProperty("skiko.native.ios.enabled") == "true" || isInIdea
val Project.supportNativeIosArm64: Boolean
get() = supportAllNativeIos || findProperty("skiko.native.ios.arm64.enabled") == "true" || isInIdea
val Project.supportNativeIosSimulatorArm64: Boolean
get() = supportAllNativeIos || findProperty("skiko.native.ios.simulatorArm64.enabled") == "true" || isInIdea
val Project.supportNativeIosX64: Boolean
get() = supportAllNativeIos || findProperty("skiko.native.ios.x64.enabled") == "true" || isInIdea
val Project.supportAnyNativeIos: Boolean
get() = supportAllNativeIos || supportNativeIosArm64 || supportNativeIosSimulatorArm64 || supportNativeIosX64
val Project.supportNativeMac: Boolean
get() = supportAllNative || findProperty("skiko.native.mac.enabled") == "true" || isInIdea
val Project.supportNativeLinux: Boolean
get() = supportAllNative || findProperty("skiko.native.linux.enabled") == "true" || isInIdea
val Project.supportAnyNative: Boolean
get() = supportAllNative || supportAnyNativeIos || supportNativeMac || supportNativeLinux
val Project.supportWasm: Boolean
get() = findProperty("skiko.wasm.enabled") == "true" || isInIdea
val Project.supportJs: Boolean
get() = findProperty("skiko.js.enabled") == "true" || supportWasm || isInIdea
val coroutinesVersion = "1.8.0-RC"
val atomicfuVersion = "0.23.1"
fun targetSuffix(os: OS, arch: Arch): String {
return "${os.id}_${arch.id}"
......@@ -46,7 +91,7 @@ fun KotlinTarget.isIosSimArm64() =
fun String.withSuffix(isIosSim: Boolean = false) =
this + if (isIosSim) "Sim" else ""
if (supportWasm) {
val linkWasm = if (supportJs || supportWasm) {
val skiaWasmDir = registerOrGetSkiaDirProvider(OS.Wasm, Arch.Wasm)
val compileWasm by tasks.registering(CompileSkikoCppTask::class) {
......@@ -59,23 +104,26 @@ if (supportWasm) {
buildTargetArch.set(osArch.second)
buildVariant.set(buildType)
val srcDirs = projectDirs("src/commonMain/cpp/common", "src/jsMain/cpp", "src/nativeJsMain/cpp") +
val srcDirs = projectDirs("src/commonMain/cpp/common", "src/jsWasmMain/cpp", "src/nativeJsMain/cpp") +
if (skiko.includeTestHelpers) projectDirs("src/nativeJsTest/cpp") else emptyList()
sourceRoots.set(srcDirs)
includeHeadersNonRecursive(projectDir.resolve("src/nativeJsMain/cpp"))
includeHeadersNonRecursive(projectDir.resolve("src/jsWasmMain/cpp"))
includeHeadersNonRecursive(projectDir.resolve("src/commonMain/cpp/common/include"))
includeHeadersNonRecursive(skiaHeadersDirs(skiaWasmDir.get()))
flags.set(listOf(
*skiaPreprocessorFlags(OS.Wasm),
*buildType.clangFlags,
"-fno-rtti",
"-fno-exceptions"
))
flags.set(
listOf(
*skiaPreprocessorFlags(OS.Wasm),
*buildType.clangFlags,
"-fno-rtti",
"-fno-exceptions",
)
)
}
val linkWasm by tasks.registering(LinkSkikoWasmTask::class) {
val configureCommon: LinkSkikoWasmTask.(outputES6: Boolean) -> Unit = { outputES6 ->
val osArch = OS.Wasm to Arch.Wasm
dependsOn(compileWasm)
......@@ -86,47 +134,108 @@ if (supportWasm) {
buildTargetOS.set(osArch.first)
buildTargetArch.set(osArch.second)
buildVariant.set(buildType)
if (outputES6) buildSuffix.set("es6")
libFiles = project.fileTree(unpackedSkia) { include("**/*.a") }
objectFiles = project.fileTree(compileWasm.map { it.outDir.get() }) {
include("**/*.o")
}
libOutputFileName.set("skiko.wasm")
jsOutputFileName.set("skiko.js")
val jsFileExtension = if (outputES6) "mjs" else "js"
val wasmFileName = if (outputES6) {
"skikomjs.wasm"
} else {
"skiko.wasm" // to keep it compatible with older apps
}
val jsFileName = if (outputES6) {
"skikomjs.mjs"
} else {
"skiko.js" // to keep it compatible with older apps
}
libOutputFileName.set(wasmFileName) // emcc ignores this, it names .wasm file identically to js output
jsOutputFileName.set(jsFileName) // this determines the name .wasm file too
skikoJsPrefix.set(project.layout.projectDirectory.file("src/jsMain/resources/setup.js"))
skikoJsPrefix.from(
// the order matters
project.layout.projectDirectory.file("src/jsWasmMain/resources/skikoCallbacks.js"),
project.layout.projectDirectory.file("src/jsWasmMain/resources/setup.$jsFileExtension")
)
flags.set(listOf(
"-l", "GL",
"-s", "USE_WEBGL2=1",
"-s", "OFFSCREEN_FRAMEBUFFER=1",
"-s", "ALLOW_MEMORY_GROWTH=1", // TODO: Is there a better way? Should we use `-s INITIAL_MEMORY=X`?
"--bind",
))
@OptIn(kotlin.ExperimentalStdlibApi::class)
flags.set(buildList {
addAll(
listOf(
"-l", "GL",
"-s", "MAX_WEBGL_VERSION=2",
"-s", "MIN_WEBGL_VERSION=2",
"-s", "OFFSCREEN_FRAMEBUFFER=1",
"-s", "ALLOW_MEMORY_GROWTH=1", // TODO: Is there a better way? Should we use `-s INITIAL_MEMORY=X`?
"--bind",
// -O2 saves 800kB for the output file, and ~100kB for transferred size.
// -O3 breaks the exports in js/mjs files. skiko.wasm size is the same though
"-O2"
)
)
if (outputES6) {
addAll(
listOf(
"-s", "EXPORT_ES6=1",
"-s", "MODULARIZE=1",
"-s", "EXPORT_NAME=loadSkikoWASM",
"-s", "EXPORTED_RUNTIME_METHODS=\"[GL, wasmExports]\"",
// "-s", "EXPORT_ALL=1",
)
)
}
})
doLast {
// skiko.js file is directly referenced in karma.config.d/wasm.js
// skiko.js (and skiko.mjs) files are directly referenced in karma.config.d/*/config.js
// so symbols must be replaced right after linking
val jsFiles = outDir.asFile.get().walk()
.filter { it.isFile && it.name.endsWith(".js") }
.filter { it.isFile && (it.name.endsWith(".js") || it.name.endsWith(".mjs")) }
for (jsFile in jsFiles) {
val originalContent = jsFile.readText()
val newContent = originalContent.replace("_org_jetbrains", "org_jetbrains")
.replace("skikomjs.wasm", "skiko.wasm")
.replace("if(ENVIRONMENT_IS_NODE){", "if (false) {") // to make webpack erase this part
jsFile.writeText(newContent)
if (outputES6) {
// delete this file as its presence can be confusing.
// It's identical to skiko.wasm and we use skiko.wasm in `skikoWasmJar`task
outDir.file(wasmFileName).get().asFile.delete()
outDir.file(jsFileName).get().asFile.renameTo(outDir.asFile.get().resolve("skiko.mjs"))
}
}
}
}
val linkWasmWithES6 by tasks.registering(LinkSkikoWasmTask::class) {
configureCommon(true)
}
val linkWasm by tasks.registering(LinkSkikoWasmTask::class) {
dependsOn(linkWasmWithES6)
configureCommon(false)
}
val skikoWasmJar by project.tasks.registering(Jar::class) {
dependsOn(linkWasm)
// We produce jar that contains .js of wrapper/bindings and .wasm with Skia + bindings.
val wasmOutDir = linkWasm.map { it.outDir }
val wasmEsOutDir = linkWasmWithES6.map { it.outDir }
from(wasmOutDir) {
include("*.wasm")
include("*.js")
include("*.mjs")
}
from(wasmEsOutDir) {
include("*.mjs")
}
archiveBaseName.set("skiko-wasm")
......@@ -134,7 +243,9 @@ if (supportWasm) {
println("Wasm and JS at: ${archiveFile.get().asFile.absolutePath}")
}
}
}
Pair(linkWasm, linkWasmWithES6)
} else Pair(null, null)
fun compileNativeBridgesTask(os: OS, arch: Arch, isArm64Simulator: Boolean): TaskProvider<CompileSkikoCppTask> {
val skiaNativeDir = registerOrGetSkiaDirProvider(os, arch, isIosSim = isArm64Simulator)
......@@ -208,48 +319,6 @@ fun compileNativeBridgesTask(os: OS, arch: Arch, isArm64Simulator: Boolean): Tas
}
}
internal val Project.isInIdea: Boolean
get() {
return System.getProperty("idea.active")?.toBoolean() == true
}
val Project.supportAwt: Boolean
get() = findProperty("skiko.awt.enabled") == "true" || isInIdea
val Project.supportAllNative: Boolean
get() = findProperty("skiko.native.enabled") == "true" || isInIdea
val Project.supportAllNativeIos: Boolean
get() = supportAllNative || findProperty("skiko.native.ios.enabled") == "true" || isInIdea
val Project.supportNativeIosArm64: Boolean
get() = supportAllNativeIos || findProperty("skiko.native.ios.arm64.enabled") == "true" || isInIdea
val Project.supportNativeIosSimulatorArm64: Boolean
get() = supportAllNativeIos || findProperty("skiko.native.ios.simulatorArm64.enabled") == "true" || isInIdea
val Project.supportNativeIosX64: Boolean
get() = supportAllNativeIos || findProperty("skiko.native.ios.x64.enabled") == "true" || isInIdea
val Project.supportAnyNativeIos: Boolean
get() = supportAllNativeIos || supportNativeIosArm64 || supportNativeIosSimulatorArm64 || supportNativeIosX64
val Project.supportNativeMac: Boolean
get() = supportAllNative || findProperty("skiko.native.mac.enabled") == "true" || isInIdea
val Project.supportNativeLinux: Boolean
get() = supportAllNative || findProperty("skiko.native.linux.enabled") == "true" || isInIdea
val Project.supportAnyNative: Boolean
get() = supportAllNative || supportAnyNativeIos || supportNativeMac || supportNativeLinux
val Project.supportWasm: Boolean
get() = findProperty("skiko.wasm.enabled") == "true" || isInIdea
val Project.supportAndroid: Boolean
get() = findProperty("skiko.android.enabled") == "true" // || isInIdea
kotlin {
if (supportAwt) {
jvm("awt") {
......@@ -275,7 +344,7 @@ kotlin {
}
}
if (supportWasm) {
if (supportJs) {
js(IR) {
moduleName = "skiko-kjs" // override the name to avoid name collision with a different skiko.js file
browser {
......@@ -283,6 +352,7 @@ kotlin {
dependsOn("linkWasm")
useKarma {
useChromeHeadless()
useConfigDirectory(project.projectDir.resolve("karma.config.d").resolve("js"))
}
}
}
......@@ -291,6 +361,34 @@ kotlin {
}
}
if (supportWasm) {
wasmJs {
moduleName = "skiko-kjs-wasm" // override the name to avoid name collision with a different skiko.js file
browser {
testTask {
dependsOn("linkWasm")
useKarma {
this.webpackConfig.experiments.add("topLevelAwait")
useChromeHeadless()
useConfigDirectory(project.projectDir.resolve("karma.config.d").resolve("wasm"))
}
}
}
generateVersion(OS.Wasm, Arch.Wasm)
val test by compilations.getting
project.tasks.named<Copy>(test.processResourcesTaskName) {
from(linkWasm.first!!) {
include("*.wasm")
}
from(linkWasm.second!!) {
include("*.mjs")
}
}
}
}
if (supportNativeMac) {
configureNativeTarget(OS.MacOS, Arch.X64, macosX64())
configureNativeTarget(OS.MacOS, Arch.Arm64, macosArm64())
......@@ -365,7 +463,7 @@ kotlin {
}
}
if (supportWasm || supportAnyNative) {
if (supportJs || supportWasm || supportAnyNative) {
val nativeJsMain by creating {
dependsOn(commonMain)
}
......@@ -374,16 +472,34 @@ kotlin {
dependsOn(commonTest)
}
if (supportWasm) {
val jsMain by getting {
if (supportJs || supportWasm) {
val jsWasmMain by creating {
dependsOn(nativeJsMain)
}
val jsTest by getting {
val jsWasmTest by creating {
dependsOn(nativeJsTest)
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
implementation(kotlin("test-js"))
implementation(kotlin("test"))
}
}
if (supportJs) {
val jsMain by getting {
dependsOn(jsWasmMain)
}
val jsTest by getting {
dependsOn(jsWasmTest)
}
}
if (supportWasm) {
val wasmJsMain by getting {
dependsOn(jsWasmMain)
}
val wasmJsTest by getting {
dependsOn(jsWasmTest)
}
}
}
......@@ -398,7 +514,9 @@ kotlin {
val nativeMain by creating {
dependsOn(nativeJsMain)
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
// TODO: remove this explicit dependency on atomicfu
// after this is fixed https://jetbrains.slack.com/archives/C3TNY2MM5/p1701462109621819
implementation("org.jetbrains.kotlinx:atomicfu:$atomicfuVersion")
}
}
val nativeTest by creating {
......@@ -1401,7 +1519,7 @@ publishing {
}
}
if (supportWasm) {
if (supportJs || supportWasm) {
create<MavenPublication>("skikoWasmRuntime") {
pomNameForPublication[name] = "Skiko WASM Runtime"
artifactId = SkikoArtifacts.jsWasmArtifactId
......@@ -1437,12 +1555,16 @@ fun configureSignAndPublishDependencies() {
val name = task.name
val publishJs = "publishJsPublicationTo"
val publishWasm = "publishSkikoWasmRuntimePublicationTo"
val publishWasmPub = "publishWasmJsPublicationTo"
val signWasm = "signSkikoWasmRuntimePublication"
val signJs = "signJsPublication"
val signWasmPub = "signWasmJsPublication"
when {
name.startsWith(publishJs) -> task.dependsOn(signWasm)
name.startsWith(publishJs) -> task.dependsOn(signWasm, signWasmPub)
name.startsWith(publishWasm) -> task.dependsOn(signJs)
name.startsWith(publishWasmPub) -> task.dependsOn(signJs)
name.startsWith(signWasmPub) -> task.dependsOn(signWasm)
}
}
}
......@@ -1534,3 +1656,27 @@ tasks.withType<JavaCompile> {
targetCompatibility = "1.8"
sourceCompatibility = "1.8"
}
project.tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-Xwasm-enable-array-range-checks", "-Xir-dce=true", "-Xskip-prerelease-check",
)
}
if (supportJs && supportWasm) {
project.tasks.whenTaskAdded {
if (name == "compileJsWasmMainKotlinMetadata") {
enabled = false
}
}
}
tasks.findByName("publishSkikoWasmRuntimePublicationToComposeRepoRepository")
?.dependsOn("publishWasmJsPublicationToComposeRepoRepository")
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile>().configureEach {
// https://youtrack.jetbrains.com/issue/KT-56583
compilerOptions.freeCompilerArgs.add("-XXLanguage:+ImplicitSignedToUnsignedIntegerConversion")
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlinx.cinterop.ExperimentalForeignApi"
}
\ No newline at end of file
import internal.utils.*
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.provider.Property
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.Optional
abstract class LinkSkikoWasmTask : LinkSkikoTask() {
@get:InputFile
@get:InputFiles
@get:Optional
abstract val skikoJsPrefix: RegularFileProperty
abstract val skikoJsPrefix: ConfigurableFileCollection
@get:Input
abstract val jsOutputFileName: Property<String>
......@@ -17,6 +19,6 @@ abstract class LinkSkikoWasmTask : LinkSkikoTask() {
override fun configureArgs() =
super.configureArgs().apply {
arg("-o", outDir.resolveToIoFile(jsOutputFileName))
arg("--extern-post-js", skikoJsPrefix)
repeatedArg("--extern-post-js", skikoJsPrefix.files)
}
}
\ No newline at end of file
......@@ -190,7 +190,11 @@ object SkikoArtifacts {
// names are also used in samples, e.g. samples/SkijaInjectSample/build.gradle
val commonArtifactId = "skiko"
val jvmArtifactId = "skiko-awt"
// an artifact (klib) for k/js targets
val jsArtifactId = "skiko-js"
// an artifact (klib) for k/wasm targets
val wasmArtifactId = "skiko-wasm-js"
// an artifact with skiko.wasm and supporting js code - jar
val jsWasmArtifactId = "skiko-js-wasm-runtime"
fun jvmRuntimeArtifactIdFor(os: OS, arch: Arch) =
if (os == OS.Android)
......
......@@ -17,6 +17,7 @@ val skikoArtifactIds: List<String> =
SkikoArtifacts.jvmRuntimeArtifactIdFor(OS.MacOS, Arch.Arm64),
SkikoArtifacts.jsWasmArtifactId,
SkikoArtifacts.jsArtifactId,
SkikoArtifacts.wasmArtifactId,
SkikoArtifacts.nativeArtifactIdFor(OS.Linux, Arch.X64),
SkikoArtifacts.nativeArtifactIdFor(OS.MacOS, Arch.Arm64),
SkikoArtifacts.nativeArtifactIdFor(OS.MacOS, Arch.X64),
......
kotlin.code.style=official
deploy.version=0.0.0
kotlin.mpp.enableGranularSourceSetsMetadata=true
kotlin.native.enableDependencyPropagation=false
dependencies.skia.windows-x64=m116-51072f3-1
dependencies.skia.linux-x64=m116-51072f3-1
......@@ -18,10 +16,11 @@ dependencies.skia.android-x64=m116-51072f3-1
dependencies.skia.android-arm64=m116-51072f3-1
org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m
kotlin.native.cacheKind.macosX64=none
kotlin.native.cacheKind.iosX64=none
kotlin.version=1.9.21
skiko.awt.enabled=true
skiko.js.enabled=false
skiko.wasm.enabled=false
skiko.android.enabled=false
skiko.native.enabled=false
......
......@@ -5,7 +5,7 @@ const path = require("path");
config.browserConsoleLogOptions.level = "debug";
const basePath = config.basePath;
const projectPath = path.resolve(basePath, "..", "..", "..", "..", "..");
const projectPath = path.resolve(basePath, "..", "..", "..", "..");
const wasmPath = path.resolve(projectPath, "build", "out", "link", "Release-wasm-wasm")
const generatedAssetsPath = path.resolve(projectPath, "build", "karma-webpack-out")
......
// see https://kotlinlang.org/docs/js-project-setup.html#webpack-configuration-file
const path = require("path");
config.browserConsoleLogOptions.level = "debug";
const basePath = config.basePath;
const projectPath = path.resolve(basePath, "..", "..", "..", "..");
const generatedAssetsPath = path.resolve(projectPath, "build", "karma-webpack-out")
const debug = message => console.log(`[karma-config] ${message}`);
debug(`karma basePath: ${basePath}`);
debug(`karma generatedAssetsPath: ${generatedAssetsPath}`);
config.proxies["/resources"] = path.resolve(basePath, "kotlin");
config.files = [
{pattern: path.resolve(generatedAssetsPath, "**/*"), included: false, served: true, watched: false},
{pattern: path.resolve(basePath, "kotlin", "**/*.png"), included: false, served: true, watched: false},
{pattern: path.resolve(basePath, "kotlin", "**/*.gif"), included: false, served: true, watched: false},
{pattern: path.resolve(basePath, "kotlin", "**/*.ttf"), included: false, served: true, watched: false},
{pattern: path.resolve(basePath, "kotlin", "**/*.txt"), included: false, served: true, watched: false},
{pattern: path.resolve(basePath, "kotlin", "**/*.json"), included: false, served: true, watched: false},
].concat(config.files);
function KarmaWebpackOutputFramework(config) {
// This controller is instantiated and set during the preprocessor phase.
const controller = config.__karmaWebpackController;
// only if webpack has instantiated its controller
if (!controller) {
console.warn(
"Webpack has not instantiated controller yet.\n" +
"Check if you have enabled webpack preprocessor and framework before this framework"
)
return
}
config.files.push({
pattern: `${controller.outputPath}/**/*`,
included: false,
served: true,
watched: false
})
}
const KarmaWebpackOutputPlugin = {
'framework:webpack-output': ['factory', KarmaWebpackOutputFramework],
};
config.plugins.push(KarmaWebpackOutputPlugin);
config.frameworks.push("webpack-output");
\ No newline at end of file
......@@ -14,6 +14,12 @@ pluginManagement {
classpath("org.kohsuke:github-api:1.116")
}
}
plugins {
val kotlinVersion = extra["kotlin.version"] as String
kotlin("jvm").version(kotlinVersion)
kotlin("multiplatform").version(kotlinVersion)
}
}
rootProject.name = "skiko"
include("ci")
......@@ -69,15 +69,19 @@ class BackendRenderTarget internal constructor(ptr: NativePointer) : Managed(ptr
}
@ExternalSymbolName("org_jetbrains_skia_BackendRenderTarget__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BackendRenderTarget__1nGetFinalizer")
private external fun BackendRenderTarget_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_BackendRenderTarget__1nMakeGL")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BackendRenderTarget__1nMakeGL")
private external fun _nMakeGL(width: Int, height: Int, sampleCnt: Int, stencilBits: Int, fbId: Int, fbFormat: Int): NativePointer
@ExternalSymbolName("BackendRenderTarget_nMakeMetal")
@ModuleImport("./skiko.mjs", "BackendRenderTarget_nMakeMetal")
private external fun _nMakeMetal(width: Int, height: Int, texturePtr: NativePointer): NativePointer
@ExternalSymbolName("BackendRenderTarget_MakeDirect3D")
@ModuleImport("./skiko.mjs", "BackendRenderTarget_MakeDirect3D")
private external fun _nMakeDirect3D(
width: Int,
height: Int,
......
......@@ -1083,57 +1083,75 @@ class Bitmap internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerH
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetFinalizer")
private external fun Bitmap_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nMake")
private external fun _nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nMakeClone")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nMakeClone")
private external fun _nMakeClone(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nSwap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nSwap")
private external fun _nSwap(ptr: NativePointer, otherPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetPixmap")
private external fun _nGetPixmap(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetImageInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetImageInfo")
private external fun _nGetImageInfo(ptr: NativePointer, imageInfo: InteropPointer, colorSpacePtrs: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetRowBytesAsPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetRowBytesAsPixels")
private external fun _nGetRowBytesAsPixels(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nIsNull")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nIsNull")
private external fun _nIsNull(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetRowBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetRowBytes")
private external fun _nGetRowBytes(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nSetAlphaType")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nSetAlphaType")
private external fun _nSetAlphaType(ptr: NativePointer, alphaType: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nComputeByteSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nComputeByteSize")
private external fun _nComputeByteSize(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nIsImmutable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nIsImmutable")
private external fun _nIsImmutable(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nSetImmutable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nSetImmutable")
private external fun _nSetImmutable(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nIsVolatile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nIsVolatile")
private external fun _nIsVolatile(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nSetVolatile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nSetVolatile")
private external fun _nSetVolatile(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nReset")
private external fun _nReset(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nComputeIsOpaque")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nComputeIsOpaque")
private external fun _nComputeIsOpaque(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nSetImageInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nSetImageInfo")
private external fun _nSetImageInfo(
ptr: NativePointer,
width: Int,
......@@ -1146,6 +1164,7 @@ private external fun _nSetImageInfo(
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nAllocPixelsFlags")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nAllocPixelsFlags")
private external fun _nAllocPixelsFlags(
ptr: NativePointer,
width: Int,
......@@ -1158,6 +1177,7 @@ private external fun _nAllocPixelsFlags(
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nAllocPixelsRowBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nAllocPixelsRowBytes")
private external fun _nAllocPixelsRowBytes(
ptr: NativePointer,
width: Int,
......@@ -1170,6 +1190,7 @@ private external fun _nAllocPixelsRowBytes(
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nInstallPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nInstallPixels")
private external fun _nInstallPixels(
ptr: NativePointer,
width: Int,
......@@ -1184,45 +1205,59 @@ private external fun _nInstallPixels(
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nAllocPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nAllocPixels")
private external fun _nAllocPixels(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetPixelRef")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetPixelRef")
private external fun _nGetPixelRef(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetPixelRefOriginX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetPixelRefOriginX")
private external fun _nGetPixelRefOriginX(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetPixelRefOriginY")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetPixelRefOriginY")
private external fun _nGetPixelRefOriginY(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nSetPixelRef")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nSetPixelRef")
private external fun _nSetPixelRef(ptr: NativePointer, pixelRefPtr: NativePointer, dx: Int, dy: Int)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nIsReadyToDraw")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nIsReadyToDraw")
private external fun _nIsReadyToDraw(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetGenerationId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetGenerationId")
private external fun _nGetGenerationId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nNotifyPixelsChanged")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nNotifyPixelsChanged")
private external fun _nNotifyPixelsChanged(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nEraseColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nEraseColor")
private external fun _nEraseColor(ptr: NativePointer, color: Int)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nErase")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nErase")
private external fun _nErase(ptr: NativePointer, color: Int, left: Int, top: Int, right: Int, bottom: Int)
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetColor")
private external fun Bitmap_nGetColor(ptr: NativePointer, x: Int, y: Int): Int
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nGetAlphaf")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nGetAlphaf")
private external fun _nGetAlphaf(ptr: NativePointer, x: Int, y: Int): Float
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nExtractSubset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nExtractSubset")
private external fun _nExtractSubset(ptr: NativePointer, dstPtr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nReadPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nReadPixels")
private external fun _nReadPixels(
ptr: NativePointer,
width: Int,
......@@ -1238,10 +1273,13 @@ private external fun _nReadPixels(
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nExtractAlpha")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nExtractAlpha")
private external fun _nExtractAlpha(ptr: NativePointer, dstPtr: NativePointer, paintPtr: NativePointer, iPointResultIntArray: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nPeekPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nPeekPixels")
private external fun _nPeekPixels(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Bitmap__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Bitmap__1nMakeShader")
private external fun _nMakeShader(ptr: NativePointer, tmx: Int, tmy: Int, samplingModeValue1: Int, samplingModeValue2: Int, localMatrix: InteropPointer): NativePointer
......@@ -545,46 +545,61 @@ private fun withErrorGuard(message: String, block: InteropScope.(InteropPointer)
}
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nGetFinalizer")
private external fun BreakIterator_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nMake")
private external fun _nMake(type: Int, locale: InteropPointer, errorCode: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nClone")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nClone")
private external fun _nClone(ptr: NativePointer, errorCode: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nCurrent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nCurrent")
private external fun _nCurrent(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nNext")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nNext")
private external fun _nNext(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nPrevious")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nPrevious")
private external fun _nPrevious(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nFirst")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nFirst")
private external fun _nFirst(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nLast")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nLast")
private external fun _nLast(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nPreceding")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nPreceding")
private external fun _nPreceding(ptr: NativePointer, offset: Int): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nFollowing")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nFollowing")
private external fun _nFollowing(ptr: NativePointer, offset: Int): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nIsBoundary")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nIsBoundary")
private external fun _nIsBoundary(ptr: NativePointer, offset: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nGetRuleStatus")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nGetRuleStatus")
private external fun _nGetRuleStatus(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nGetRuleStatusesLen")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nGetRuleStatusesLen")
private external fun _nGetRuleStatusesLen(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nGetRuleStatuses")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nGetRuleStatuses")
private external fun _nGetRuleStatuses(ptr: NativePointer, result: InteropPointer, len: Int)
@ExternalSymbolName("org_jetbrains_skia_BreakIterator__1nSetText")
private external fun _nSetText(ptr: NativePointer, textStr: InteropPointer, len: Int, errorCode: InteropPointer): NativePointer
\ No newline at end of file
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_BreakIterator__1nSetText")
private external fun _nSetText(ptr: NativePointer, textStr: InteropPointer, len: Int, errorCode: InteropPointer): NativePointer
......@@ -1376,21 +1376,27 @@ open class Canvas internal constructor(ptr: NativePointer, managed: Boolean, int
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nGetFinalizer")
private external fun Canvas_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nMakeFromBitmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nMakeFromBitmap")
private external fun _nMakeFromBitmap(bitmapPtr: NativePointer, flags: Int, pixelGeometry: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawPoint")
private external fun _nDrawPoint(ptr: NativePointer, x: Float, y: Float, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawPoints")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawPoints")
private external fun _nDrawPoints(ptr: NativePointer, mode: Int, coordsCount: Int, coords: InteropPointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawLine")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawLine")
private external fun _nDrawLine(ptr: NativePointer, x0: Float, y0: Float, x1: Float, y1: Float, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawArc")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawArc")
private external fun _nDrawArc(
ptr: NativePointer,
left: Float,
......@@ -1403,14 +1409,16 @@ private external fun _nDrawArc(
paintPtr: NativePointer
)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawRect")
private external fun _nDrawRect(ptr: NativePointer, left: Float, top: Float, right: Float, bottom: Float, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawOval")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawOval")
private external fun _nDrawOval(ptr: NativePointer, left: Float, top: Float, right: Float, bottom: Float, paint: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawRRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawRRect")
private external fun _nDrawRRect(
ptr: NativePointer,
left: Float,
......@@ -1424,6 +1432,7 @@ private external fun _nDrawRRect(
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawDRRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawDRRect")
private external fun _nDrawDRRect(
ptr: NativePointer,
ol: Float,
......@@ -1443,9 +1452,11 @@ private external fun _nDrawDRRect(
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawPath")
private external fun _nDrawPath(ptr: NativePointer, nativePath: NativePointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawImageRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawImageRect")
private external fun _nDrawImageRect(
ptr: NativePointer,
nativeImage: NativePointer,
......@@ -1463,8 +1474,8 @@ private external fun _nDrawImageRect(
strict: Boolean
)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawImageNine")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawImageNine")
private external fun _nDrawImageNine(
ptr: NativePointer,
nativeImage: NativePointer,
......@@ -1480,20 +1491,24 @@ private external fun _nDrawImageNine(
paintPtr: NativePointer
)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawRegion")
private external fun _nDrawRegion(ptr: NativePointer, nativeRegion: NativePointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawString")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawString")
private external fun _nDrawString(ptr: NativePointer, string: InteropPointer, x: Float, y: Float, font: NativePointer, paint: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawTextBlob")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawTextBlob")
private external fun _nDrawTextBlob(ptr: NativePointer, blob: NativePointer, x: Float, y: Float, paint: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawPicture")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawPicture")
private external fun _nDrawPicture(ptr: NativePointer, picturePtr: NativePointer, matrix: InteropPointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawVertices")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawVertices")
private external fun _nDrawVertices(
ptr: NativePointer,
verticesMode: Int,
......@@ -1509,6 +1524,7 @@ private external fun _nDrawVertices(
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawPatch")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawPatch")
private external fun _nDrawPatch(
ptr: NativePointer,
cubics: InteropPointer,
......@@ -1520,24 +1536,31 @@ private external fun _nDrawPatch(
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawDrawable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawDrawable")
private external fun _nDrawDrawable(ptr: NativePointer, drawablePrt: NativePointer, matrix: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nClear")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nClear")
private external fun _nClear(ptr: NativePointer, color: Int)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nDrawPaint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nDrawPaint")
private external fun _nDrawPaint(ptr: NativePointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nSetMatrix")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nSetMatrix")
private external fun _nSetMatrix(ptr: NativePointer, matrix: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nGetLocalToDevice")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nGetLocalToDevice")
private external fun _nGetLocalToDevice(ptr: NativePointer, resultFloats: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nResetMatrix")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nResetMatrix")
private external fun _nResetMatrix(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nClipRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nClipRect")
private external fun _nClipRect(
ptr: NativePointer,
left: Float,
......@@ -1549,6 +1572,7 @@ private external fun _nClipRect(
)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nClipRRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nClipRRect")
private external fun _nClipRRect(
ptr: NativePointer,
left: Float,
......@@ -1563,42 +1587,55 @@ private external fun _nClipRRect(
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nClipPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nClipPath")
private external fun _nClipPath(ptr: NativePointer, nativePath: NativePointer, mode: Int, antiAlias: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nClipRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nClipRegion")
private external fun _nClipRegion(ptr: NativePointer, nativeRegion: NativePointer, mode: Int)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nTranslate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nTranslate")
private external fun _nTranslate(ptr: NativePointer, dx: Float, dy: Float)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nScale")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nScale")
private external fun _nScale(ptr: NativePointer, sx: Float, sy: Float)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nRotate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nRotate")
private external fun _nRotate(ptr: NativePointer, deg: Float, x: Float, y: Float)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nSkew")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nSkew")
private external fun _nSkew(ptr: NativePointer, sx: Float, sy: Float)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nConcat")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nConcat")
private external fun _nConcat(ptr: NativePointer, matrix: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nConcat44")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nConcat44")
private external fun _nConcat44(ptr: NativePointer, matrix: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nReadPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nReadPixels")
private external fun _nReadPixels(ptr: NativePointer, bitmapPtr: NativePointer, srcX: Int, srcY: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nWritePixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nWritePixels")
private external fun _nWritePixels(ptr: NativePointer, bitmapPtr: NativePointer, x: Int, y: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nSave")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nSave")
private external fun _nSave(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nSaveLayer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nSaveLayer")
private external fun _nSaveLayer(ptr: NativePointer, paintPtr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nSaveLayerRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nSaveLayerRect")
private external fun _nSaveLayerRect(
ptr: NativePointer,
left: Float,
......@@ -1610,10 +1647,13 @@ private external fun _nSaveLayerRect(
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nGetSaveCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nGetSaveCount")
private external fun _nGetSaveCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nRestore")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nRestore")
private external fun _nRestore(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Canvas__1nRestoreToCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Canvas__1nRestoreToCount")
private external fun _nRestoreToCount(ptr: NativePointer, saveCount: Int)
......@@ -361,46 +361,61 @@ class Codec internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerHo
}
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetFinalizer")
private external fun Codec_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetImageInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetImageInfo")
private external fun Codec_nGetImageInfo(ptr: NativePointer, imageInfo: InteropPointer, colorSpacePtrs: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Codec__1nReadPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nReadPixels")
private external fun Codec_nReadPixels(ptr: NativePointer, bitmapPtr: NativePointer, frame: Int, priorFrame: Int): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nMakeFromData")
private external fun _nMakeFromData(dataPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetSizeWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetSizeWidth")
private external fun _nGetSizeWidth(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetSizeHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetSizeHeight")
private external fun _nGetSizeHeight(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetEncodedOrigin")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetEncodedOrigin")
private external fun _nGetEncodedOrigin(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetEncodedImageFormat")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetEncodedImageFormat")
private external fun _nGetEncodedImageFormat(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetFrameCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetFrameCount")
private external fun _nGetFrameCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetFrameInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetFrameInfo")
private external fun _nGetFrameInfo(ptr: NativePointer, frame: Int, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetFramesInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetFramesInfo")
private external fun _nGetFramesInfo(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Codec__1nGetRepetitionCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nGetRepetitionCount")
private external fun _nGetRepetitionCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nFramesInfo_Delete")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nFramesInfo_Delete")
private external fun FramesInfo_nDelete(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Codec__1nFramesInfo_GetSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nFramesInfo_GetSize")
private external fun FramesInfo_nGetSize(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Codec__1nFramesInfo_GetInfos")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Codec__1nFramesInfo_GetInfos")
private external fun FramesInfo_nGetInfos(ptr: NativePointer, result: InteropPointer)
......@@ -110,42 +110,55 @@ class ColorFilter : RefCnt {
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeComposed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeComposed")
private external fun _nMakeComposed(outer: NativePointer, inner: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeBlend")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeBlend")
private external fun _nMakeBlend(color: Int, blendMode: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeMatrix")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeMatrix")
private external fun _nMakeMatrix(rowMajor: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeHSLAMatrix")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeHSLAMatrix")
private external fun _nMakeHSLAMatrix(rowMajor: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nGetLinearToSRGBGamma")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nGetLinearToSRGBGamma")
private external fun _nGetLinearToSRGBGamma(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nGetSRGBToLinearGamma")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nGetSRGBToLinearGamma")
private external fun _nGetSRGBToLinearGamma(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeLerp")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeLerp")
private external fun _nMakeLerp(t: Float, dstPtr: NativePointer, srcPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeLighting")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeLighting")
private external fun _nMakeLighting(colorMul: Int, colorAdd: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeHighContrast")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeHighContrast")
private external fun _nMakeHighContrast(grayscale: Boolean, inversionMode: Int, contrast: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeTable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeTable")
private external fun _nMakeTable(table: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeOverdraw")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeOverdraw")
private external fun _nMakeOverdraw(c0: Int, c1: Int, c2: Int, c3: Int, c4: Int, c5: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nGetLuma")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nGetLuma")
private external fun _nGetLuma(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorFilter__1nMakeTableARGB")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorFilter__1nMakeTableARGB")
private external fun _nMakeTableARGB(
a: InteropPointer,
r: InteropPointer,
......
......@@ -91,25 +91,33 @@ class ColorSpace : Managed {
}
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nGetFinalizer")
private external fun ColorSpace_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__nConvert")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__nConvert")
private external fun _nConvert(fromPtr: NativePointer, toPtr: NativePointer, r: Float, g: Float, b: Float, a: Float, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nMakeSRGB")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nMakeSRGB")
private external fun _nMakeSRGB(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nMakeDisplayP3")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nMakeDisplayP3")
private external fun _nMakeDisplayP3(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nMakeSRGBLinear")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nMakeSRGBLinear")
private external fun _nMakeSRGBLinear(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nIsGammaCloseToSRGB")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nIsGammaCloseToSRGB")
private external fun _nIsGammaCloseToSRGB(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nIsGammaLinear")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nIsGammaLinear")
private external fun _nIsGammaLinear(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_ColorSpace__1nIsSRGB")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorSpace__1nIsSRGB")
private external fun _nIsSRGB(ptr: NativePointer): Boolean
......@@ -337,4 +337,5 @@ enum class ColorType {
}
@ExternalSymbolName("org_jetbrains_skia_ColorType__1nIsAlwaysOpaque")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ColorType__1nIsAlwaysOpaque")
private external fun _nIsAlwaysOpaque(value: Int): Boolean
\ No newline at end of file
......@@ -141,34 +141,45 @@ class Data internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerHol
}
@ExternalSymbolName("org_jetbrains_skia_Data__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nGetFinalizer")
private external fun Data_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nSize")
private external fun _nSize(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Data__1nBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nBytes")
private external fun _nBytes(ptr: NativePointer, offset: Int, length: Int, destBytes: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Data__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nEquals")
private external fun _nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Data__1nMakeFromBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nMakeFromBytes")
private external fun _nMakeFromBytes(bytes: InteropPointer, offset: Int, length: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nMakeWithoutCopy")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nMakeWithoutCopy")
private external fun _nMakeWithoutCopy(memoryAddr: NativePointer, length: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nMakeFromFileName")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nMakeFromFileName")
internal external fun _nMakeFromFileName(path: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nMakeSubset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nMakeSubset")
private external fun _nMakeSubset(ptr: NativePointer, offset: Int, length: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nMakeEmpty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nMakeEmpty")
private external fun _nMakeEmpty(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nMakeUninitialized")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nMakeUninitialized")
private external fun _nMakeUninitialized(length: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Data__1nWritableData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Data__1nWritableData")
private external fun _nWritableData(dataPtr: NativePointer): NativePointer
......@@ -114,22 +114,29 @@ fun <R> DirectContext.useContext(block: (ctx: DirectContext) -> R): R = use {
}
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nFlush")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nFlush")
private external fun DirectContext_nFlush(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nMakeGL")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nMakeGL")
private external fun _nMakeGL(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nMakeMetal")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nMakeMetal")
private external fun _nMakeMetal(devicePtr: NativePointer, queuePtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nMakeDirect3D")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nMakeDirect3D")
private external fun _nMakeDirect3D(adapterPtr: NativePointer, devicePtr: NativePointer, queuePtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nSubmit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nSubmit")
private external fun _nSubmit(ptr: NativePointer, syncCpu: Boolean)
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nReset")
private external fun _nReset(ptr: NativePointer, flags: Int)
@ExternalSymbolName("org_jetbrains_skia_DirectContext__1nAbandon")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_DirectContext__1nAbandon")
private external fun _nAbandon(ptr: NativePointer, flags: Int)
......@@ -135,33 +135,43 @@ abstract class Drawable : Managed(Drawable_nMake(), _FinalizerHolder.PTR) {
internal expect fun Drawable.doInit(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nGetFinalizer")
private external fun Drawable_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nMake")
private external fun Drawable_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nGetGenerationId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nGetGenerationId")
private external fun Drawable_nGetGenerationId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nDraw")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nDraw")
private external fun _nDraw(ptr: NativePointer, canvasPtr: NativePointer, matrix: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nMakePictureSnapshot")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nMakePictureSnapshot")
private external fun _nMakePictureSnapshot(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nNotifyDrawingChanged")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nNotifyDrawingChanged")
private external fun _nNotifyDrawingChanged(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nGetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nGetBounds")
private external fun Drawable_nGetBounds(ptr: NativePointer, result: InteropPointer)
// For Native/JS usage only
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nInit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nInit")
internal external fun Drawable_nInit(ptr: NativePointer, onGetBounds: InteropPointer, onDraw: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nGetOnDrawCanvas")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nGetOnDrawCanvas")
internal external fun _nGetOnDrawCanvas(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Drawable__1nSetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Drawable__1nSetBounds")
internal external fun _nSetBounds(ptr: NativePointer, left: Float, top: Float, right: Float, bottom: Float)
\ No newline at end of file
......@@ -6,8 +6,6 @@ internal expect fun String.intCodePoints(): IntArray
internal expect fun defaultLanguageTag(): String
expect abstract class OutputStream
expect class Pattern {
fun split(input: CharSequence): Array<String>
fun matcher(input: CharSequence): Matcher
......@@ -24,3 +22,11 @@ internal expect fun compilePattern(regex: String): Pattern
@OptIn(ExperimentalMultiplatform::class)
@OptionalExpectation
expect annotation class ExternalSymbolName(val name: String)
@OptIn(ExperimentalMultiplatform::class)
@OptionalExpectation
@Target(AnnotationTarget.FUNCTION)
expect annotation class ModuleImport(
val module: String,
val name: String
)
\ No newline at end of file
......@@ -597,136 +597,181 @@ class Font : Managed {
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetFinalizer")
private external fun Font_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nMakeClone")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMakeClone")
private external fun Font_nMakeClone(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nEquals")
private external fun Font_nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetSize")
private external fun Font_nGetSize(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_Font__1nMakeDefault")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMakeDefault")
private external fun _nMakeDefault(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nMakeTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMakeTypeface")
private external fun _nMakeTypeface(typefacePtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nMakeTypefaceSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMakeTypefaceSize")
private external fun _nMakeTypefaceSize(typefacePtr: NativePointer, size: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nMakeTypefaceSizeScaleSkew")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMakeTypefaceSizeScaleSkew")
private external fun _nMakeTypefaceSizeScaleSkew(typefacePtr: NativePointer, size: Float, scaleX: Float, skewX: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nIsAutoHintingForced")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nIsAutoHintingForced")
private external fun _nIsAutoHintingForced(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nAreBitmapsEmbedded")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nAreBitmapsEmbedded")
private external fun _nAreBitmapsEmbedded(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nIsSubpixel")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nIsSubpixel")
private external fun _nIsSubpixel(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nAreMetricsLinear")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nAreMetricsLinear")
private external fun _nAreMetricsLinear(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nIsEmboldened")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nIsEmboldened")
private external fun _nIsEmboldened(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nIsBaselineSnapped")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nIsBaselineSnapped")
private external fun _nIsBaselineSnapped(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetAutoHintingForced")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetAutoHintingForced")
private external fun _nSetAutoHintingForced(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetBitmapsEmbedded")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetBitmapsEmbedded")
private external fun _nSetBitmapsEmbedded(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetSubpixel")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetSubpixel")
private external fun _nSetSubpixel(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetMetricsLinear")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetMetricsLinear")
private external fun _nSetMetricsLinear(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetEmboldened")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetEmboldened")
private external fun _nSetEmboldened(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetBaselineSnapped")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetBaselineSnapped")
private external fun _nSetBaselineSnapped(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetEdging")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetEdging")
private external fun _nGetEdging(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetEdging")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetEdging")
private external fun _nSetEdging(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetHinting")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetHinting")
private external fun _nGetHinting(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetHinting")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetHinting")
private external fun _nSetHinting(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetTypeface")
private external fun _nGetTypeface(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetTypefaceOrDefault")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetTypefaceOrDefault")
private external fun _nGetTypefaceOrDefault(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetScaleX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetScaleX")
private external fun _nGetScaleX(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetSkewX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetSkewX")
private external fun _nGetSkewX(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetTypeface")
private external fun _nSetTypeface(ptr: NativePointer, typefacePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetSize")
private external fun _nSetSize(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetScaleX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetScaleX")
private external fun _nSetScaleX(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_Font__1nSetSkewX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nSetSkewX")
private external fun _nSetSkewX(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetUTF32Glyph")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetUTF32Glyph")
private external fun _nGetUTF32Glyph(ptr: NativePointer, uni: Int): Short
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetUTF32Glyphs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetUTF32Glyphs")
private external fun _nGetUTF32Glyphs(ptr: NativePointer, uni: InteropPointer, uniArrLen: Int, resultGlyphs: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetStringGlyphsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetStringGlyphsCount")
private external fun _nGetStringGlyphsCount(ptr: NativePointer, str: InteropPointer, len: Int): Int
@ExternalSymbolName("org_jetbrains_skia_Font__1nMeasureText")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMeasureText")
private external fun _nMeasureText(ptr: NativePointer, str: InteropPointer, len: Int, paintPtr: NativePointer, rect: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nMeasureTextWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nMeasureTextWidth")
private external fun _nMeasureTextWidth(ptr: NativePointer, str: InteropPointer, len: Int, paintPtr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetWidths")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetWidths")
private external fun _nGetWidths(ptr: NativePointer, glyphs: InteropPointer, count: Int, width: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetBounds")
private external fun _nGetBounds(ptr: NativePointer, glyphs: InteropPointer, count: Int, paintPtr: NativePointer, bounds: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetPositions")
private external fun _nGetPositions(ptr: NativePointer, glyphs: InteropPointer, count: Int, x: Float, y: Float, positions: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetXPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetXPositions")
private external fun _nGetXPositions(ptr: NativePointer, glyphs: InteropPointer, x: Float, count: Int, positions: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetPath")
private external fun _nGetPath(ptr: NativePointer, glyph: Short): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetPaths")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetPaths")
private external fun _nGetPaths(ptr: NativePointer, glyphs: InteropPointer, count: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetMetrics")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetMetrics")
private external fun _nGetMetrics(ptr: NativePointer, metrics: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Font__1nGetSpacing")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Font__1nGetSpacing")
private external fun _nGetSpacing(ptr: NativePointer): Float
......@@ -161,21 +161,27 @@ open class FontMgr : RefCnt {
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nGetFamiliesCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nGetFamiliesCount")
private external fun _nGetFamiliesCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nGetFamilyName")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nGetFamilyName")
private external fun _nGetFamilyName(ptr: NativePointer, index: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nMakeStyleSet")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nMakeStyleSet")
private external fun _nMakeStyleSet(ptr: NativePointer, index: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nMatchFamily")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nMatchFamily")
private external fun _nMatchFamily(ptr: NativePointer, familyName: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nMatchFamilyStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nMatchFamilyStyle")
private external fun _nMatchFamilyStyle(ptr: NativePointer, familyName: InteropPointer, fontStyle: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nMatchFamilyStyleCharacter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nMatchFamilyStyleCharacter")
private external fun _nMatchFamilyStyleCharacter(
ptr: NativePointer,
familyName: InteropPointer,
......@@ -186,7 +192,9 @@ private external fun _nMatchFamilyStyleCharacter(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nMakeFromData")
private external fun _nMakeFromData(ptr: NativePointer, dataPtr: NativePointer, ttcIndex: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontMgr__1nDefault")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontMgr__1nDefault")
private external fun _nDefault(): NativePointer
......@@ -71,19 +71,25 @@ class FontStyleSet internal constructor(ptr: NativePointer) : RefCnt(ptr) {
@ExternalSymbolName("org_jetbrains_skia_FontStyleSet__1nMakeEmpty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontStyleSet__1nMakeEmpty")
private external fun FontStyleSet_nMakeEmpty(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontStyleSet__1nCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontStyleSet__1nCount")
private external fun _nCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_FontStyleSet__1nGetStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontStyleSet__1nGetStyle")
private external fun _nGetStyle(ptr: NativePointer, index: Int): Int
@ExternalSymbolName("org_jetbrains_skia_FontStyleSet__1nGetStyleName")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontStyleSet__1nGetStyleName")
private external fun _nGetStyleName(ptr: NativePointer, index: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontStyleSet__1nGetTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontStyleSet__1nGetTypeface")
private external fun _nGetTypeface(ptr: NativePointer, index: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_FontStyleSet__1nMatchStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_FontStyleSet__1nMatchStyle")
private external fun _nMatchStyle(ptr: NativePointer, style: Int): NativePointer
......@@ -130,43 +130,57 @@ class Graphics {
}
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetFontCacheLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetFontCacheLimit")
private external fun _nGetFontCacheLimit(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nSetFontCacheLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nSetFontCacheLimit")
private external fun _nSetFontCacheLimit(bytes: Int): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetFontCacheUsed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetFontCacheUsed")
private external fun _nGetFontCacheUsed(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetFontCacheCountLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetFontCacheCountLimit")
private external fun _nGetFontCacheCountLimit(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nSetFontCacheCountLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nSetFontCacheCountLimit")
private external fun _nSetFontCacheCountLimit(count: Int): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetFontCacheCountUsed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetFontCacheCountUsed")
private external fun _nGetFontCacheCountUsed(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetResourceCacheTotalByteLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetResourceCacheTotalByteLimit")
private external fun _nGetResourceCacheTotalByteLimit(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nSetResourceCacheTotalByteLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nSetResourceCacheTotalByteLimit")
private external fun _nSetResourceCacheTotalByteLimit(bytes: Int): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetResourceCacheSingleAllocationByteLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetResourceCacheSingleAllocationByteLimit")
private external fun _nGetResourceCacheSingleAllocationByteLimit(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nSetResourceCacheSingleAllocationByteLimit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nSetResourceCacheSingleAllocationByteLimit")
private external fun _nSetResourceCacheSingleAllocationByteLimit(bytes: Int): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nGetResourceCacheTotalBytesUsed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nGetResourceCacheTotalBytesUsed")
private external fun _nGetResourceCacheTotalBytesUsed(): Int
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nPurgeFontCache")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nPurgeFontCache")
private external fun _nPurgeFontCache()
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nPurgeResourceCache")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nPurgeResourceCache")
private external fun _nPurgeResourceCache()
@ExternalSymbolName("org_jetbrains_skia_GraphicsKt__1nPurgeAllCaches")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_GraphicsKt__1nPurgeAllCaches")
private external fun _nPurgeAllCaches()
......@@ -381,15 +381,19 @@ class Image internal constructor(ptr: NativePointer) : RefCnt(ptr), IHasImageInf
}
@ExternalSymbolName("org_jetbrains_skia_Image__1nGetImageInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nGetImageInfo")
private external fun Image_nGetImageInfo(ptr: NativePointer, imageInfo: InteropPointer, colorSpacePtrs: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Image__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nMakeShader")
private external fun Image_nMakeShader(ptr: NativePointer, tmx: Int, tmy: Int, samplingModeVal1: Int, samplingModeVal2: Int, localMatrix: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Image__1nPeekPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nPeekPixels")
private external fun Image_nPeekPixels(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Image__1nMakeRaster")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nMakeRaster")
private external fun _nMakeRaster(
width: Int,
height: Int,
......@@ -402,6 +406,7 @@ private external fun _nMakeRaster(
@ExternalSymbolName("org_jetbrains_skia_Image__1nMakeRasterData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nMakeRasterData")
private external fun _nMakeRasterData(
width: Int,
height: Int,
......@@ -414,24 +419,31 @@ private external fun _nMakeRasterData(
@ExternalSymbolName("org_jetbrains_skia_Image__1nMakeFromBitmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nMakeFromBitmap")
private external fun _nMakeFromBitmap(bitmapPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Image__1nMakeFromPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nMakeFromPixmap")
private external fun _nMakeFromPixmap(pixmapPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Image__1nMakeFromEncoded")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nMakeFromEncoded")
private external fun _nMakeFromEncoded(bytes: InteropPointer, encodedLength: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Image__1nEncodeToData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nEncodeToData")
private external fun _nEncodeToData(ptr: NativePointer, format: Int, quality: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Image__1nPeekPixelsToPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nPeekPixelsToPixmap")
private external fun _nPeekPixelsToPixmap(ptr: NativePointer, pixmapPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Image__1nScalePixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nScalePixels")
private external fun _nScalePixels(ptr: NativePointer, pixmapPtr: NativePointer, samplingOptionsVal1: Int, samplingOptionsVal2: Int, cache: Boolean): Boolean
@ExternalSymbolName("org_jetbrains_skia_Image__1nReadPixelsBitmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nReadPixelsBitmap")
private external fun _nReadPixelsBitmap(
ptr: NativePointer,
contextPtr: NativePointer,
......@@ -443,4 +455,5 @@ private external fun _nReadPixelsBitmap(
@ExternalSymbolName("org_jetbrains_skia_Image__1nReadPixelsPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Image__1nReadPixelsPixmap")
private external fun _nReadPixelsPixmap(ptr: NativePointer, pixmapPtr: NativePointer, srcX: Int, srcY: Int, cache: Boolean): Boolean
......@@ -660,6 +660,7 @@ class ImageFilter internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeArithmetic")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeArithmetic")
private external fun _nMakeArithmetic(
k1: Float,
k2: Float,
......@@ -672,14 +673,19 @@ private external fun _nMakeArithmetic(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeBlend")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeBlend")
private external fun _nMakeBlend(blendMode: Int, bg: NativePointer, fg: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeBlur")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeBlur")
private external fun _nMakeBlur(sigmaX: Float, sigmaY: Float, tileMode: Int, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeColorFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeColorFilter")
private external fun _nMakeColorFilter(colorFilterPtr: NativePointer, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeCompose")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeCompose")
private external fun _nMakeCompose(outer: NativePointer, inner: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeDisplacementMap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeDisplacementMap")
private external fun _nMakeDisplacementMap(
xChan: Int,
yChan: Int,
......@@ -690,6 +696,7 @@ private external fun _nMakeDisplacementMap(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeDropShadow")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeDropShadow")
private external fun _nMakeDropShadow(
dx: Float,
dy: Float,
......@@ -701,6 +708,7 @@ private external fun _nMakeDropShadow(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeDropShadowOnly")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeDropShadowOnly")
private external fun _nMakeDropShadowOnly(
dx: Float,
dy: Float,
......@@ -712,6 +720,7 @@ private external fun _nMakeDropShadowOnly(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeImage")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeImage")
private external fun _nMakeImage(
image: NativePointer,
l0: Float,
......@@ -727,6 +736,7 @@ private external fun _nMakeImage(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeMagnifier")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeMagnifier")
private external fun _nMakeMagnifier(
l: Float,
t: Float,
......@@ -741,6 +751,7 @@ private external fun _nMakeMagnifier(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeMatrixConvolution")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeMatrixConvolution")
private external fun _nMakeMatrixConvolution(
kernelW: Int,
kernelH: Int,
......@@ -756,27 +767,35 @@ private external fun _nMakeMatrixConvolution(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeMatrixTransform")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeMatrixTransform")
private external fun _nMakeMatrixTransform(matrix: InteropPointer, samplingModeVal1: Int, samplingModeVal2: Int, input: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeMerge")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeMerge")
private external fun _nMakeMerge(filters: InteropPointer, filtersLength: Int, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeOffset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeOffset")
private external fun _nMakeOffset(dx: Float, dy: Float, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeShader")
private external fun _nMakeShader(shader: NativePointer, dither: Boolean, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePicture")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakePicture")
private external fun _nMakePicture(picture: NativePointer, l: Float, t: Float, r: Float, b: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeRuntimeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeRuntimeShader")
private external fun _nMakeRuntimeShader(runtimeShaderBuilderPtr: NativePointer, childShaderName: InteropPointer, input: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeRuntimeShaderFromArray")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeRuntimeShaderFromArray")
private external fun _nMakeRuntimeShaderFromArray(runtimeShaderBuilderPtr: NativePointer, childShaderNames: InteropPointer, inputs: InteropPointer, inputLength: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeTile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeTile")
private external fun _nMakeTile(
l0: Float,
t0: Float,
......@@ -790,12 +809,15 @@ private external fun _nMakeTile(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeDilate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeDilate")
private external fun _nMakeDilate(rx: Float, ry: Float, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeErode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeErode")
private external fun _nMakeErode(rx: Float, ry: Float, input: NativePointer, crop: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeDistantLitDiffuse")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeDistantLitDiffuse")
private external fun _nMakeDistantLitDiffuse(
x: Float,
y: Float,
......@@ -808,6 +830,7 @@ private external fun _nMakeDistantLitDiffuse(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePointLitDiffuse")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakePointLitDiffuse")
private external fun _nMakePointLitDiffuse(
x: Float,
y: Float,
......@@ -820,6 +843,7 @@ private external fun _nMakePointLitDiffuse(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeSpotLitDiffuse")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeSpotLitDiffuse")
private external fun _nMakeSpotLitDiffuse(
x0: Float,
y0: Float,
......@@ -837,6 +861,7 @@ private external fun _nMakeSpotLitDiffuse(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeDistantLitSpecular")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeDistantLitSpecular")
private external fun _nMakeDistantLitSpecular(
x: Float,
y: Float,
......@@ -850,6 +875,7 @@ private external fun _nMakeDistantLitSpecular(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakePointLitSpecular")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakePointLitSpecular")
private external fun _nMakePointLitSpecular(
x: Float,
y: Float,
......@@ -863,6 +889,7 @@ private external fun _nMakePointLitSpecular(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ImageFilter__1nMakeSpotLitSpecular")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ImageFilter__1nMakeSpotLitSpecular")
private external fun _nMakeSpotLitSpecular(
x0: Float,
y0: Float,
......
......@@ -62,25 +62,33 @@ class ManagedString internal constructor(ptr: NativePointer, managed: Boolean =
}
@ExternalSymbolName("org_jetbrains_skia_ManagedString__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__1nGetFinalizer")
internal external fun ManagedString_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ManagedString__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__1nMake")
private external fun _nMake(s: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_ManagedString__nStringSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__nStringSize")
private external fun _nStringSize(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_ManagedString__nStringData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__nStringData")
private external fun _nStringData(ptr: NativePointer, result: InteropPointer, size: Int)
@ExternalSymbolName("org_jetbrains_skia_ManagedString__1nInsert")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__1nInsert")
private external fun _nInsert(ptr: NativePointer, offset: Int, s: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_ManagedString__1nAppend")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__1nAppend")
private external fun _nAppend(ptr: NativePointer, s: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_ManagedString__1nRemoveSuffix")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__1nRemoveSuffix")
private external fun _nRemoveSuffix(ptr: NativePointer, from: Int)
@ExternalSymbolName("org_jetbrains_skia_ManagedString__1nRemove")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ManagedString__1nRemove")
private external fun _nRemove(ptr: NativePointer, from: Int, length: Int)
......@@ -47,16 +47,21 @@ class MaskFilter internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_MaskFilter__1nMakeTable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_MaskFilter__1nMakeTable")
private external fun MaskFilter_nMakeTable(table: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_MaskFilter__1nMakeBlur")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_MaskFilter__1nMakeBlur")
private external fun _nMakeBlur(mode: Int, sigma: Float, respectCTM: Boolean): NativePointer
@ExternalSymbolName("org_jetbrains_skia_MaskFilter__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_MaskFilter__1nMakeShader")
private external fun _nMakeShader(shaderPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_MaskFilter__1nMakeGamma")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_MaskFilter__1nMakeGamma")
private external fun _nMakeGamma(gamma: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_MaskFilter__1nMakeClip")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_MaskFilter__1nMakeClip")
private external fun _nMakeClip(min: Byte, max: Byte): NativePointer
......@@ -561,109 +561,145 @@ class Paint : Managed {
}
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetFinalizer")
private external fun Paint_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nMake")
private external fun Paint_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nMakeClone")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nMakeClone")
private external fun Paint_nMakeClone(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nEquals")
private external fun Paint_nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Paint__1nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nReset")
private external fun Paint_nReset(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nIsAntiAlias")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nIsAntiAlias")
private external fun _nIsAntiAlias(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetAntiAlias")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetAntiAlias")
private external fun _nSetAntiAlias(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nIsDither")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nIsDither")
private external fun _nIsDither(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetDither")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetDither")
private external fun _nSetDither(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetMode")
private external fun _nGetMode(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetMode")
private external fun _nSetMode(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetColor")
private external fun Paint_nGetColor(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetColor4f")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetColor4f")
private external fun _nGetColor4f(ptr: NativePointer, arr: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetColor")
private external fun _nSetColor(ptr: NativePointer, argb: Int)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetColor4f")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetColor4f")
private external fun _nSetColor4f(ptr: NativePointer, r: Float, g: Float, b: Float, a: Float, colorSpacePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetStrokeWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetStrokeWidth")
private external fun _nGetStrokeWidth(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetStrokeWidth")
private external fun _nSetStrokeWidth(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetStrokeMiter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetStrokeMiter")
private external fun _nGetStrokeMiter(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeMiter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetStrokeMiter")
private external fun _nSetStrokeMiter(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetStrokeCap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetStrokeCap")
private external fun _nGetStrokeCap(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeCap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetStrokeCap")
private external fun _nSetStrokeCap(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetStrokeJoin")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetStrokeJoin")
private external fun _nGetStrokeJoin(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetStrokeJoin")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetStrokeJoin")
private external fun _nSetStrokeJoin(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetShader")
private external fun _nGetShader(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetShader")
private external fun _nSetShader(ptr: NativePointer, shaderPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetColorFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetColorFilter")
private external fun _nGetColorFilter(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetColorFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetColorFilter")
private external fun _nSetColorFilter(ptr: NativePointer, colorFilterPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetBlendMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetBlendMode")
private external fun _nGetBlendMode(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetBlendMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetBlendMode")
private external fun _nSetBlendMode(ptr: NativePointer, mode: Int)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetPathEffect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetPathEffect")
private external fun _nGetPathEffect(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetPathEffect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetPathEffect")
private external fun _nSetPathEffect(ptr: NativePointer, pathEffectPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetMaskFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetMaskFilter")
private external fun _nGetMaskFilter(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetMaskFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetMaskFilter")
private external fun _nSetMaskFilter(ptr: NativePointer, filterPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nGetImageFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nGetImageFilter")
private external fun _nGetImageFilter(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Paint__1nSetImageFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nSetImageFilter")
private external fun _nSetImageFilter(ptr: NativePointer, filterPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Paint__1nHasNothingToDraw")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Paint__1nHasNothingToDraw")
private external fun _nHasNothingToDraw(ptr: NativePointer): Boolean
......@@ -54,12 +54,15 @@ private fun makePaintFilterCanvas(canvas: Canvas, unrollDrawable: Boolean): Nati
internal expect fun PaintFilterCanvas.doInit(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_PaintFilterCanvas__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PaintFilterCanvas__1nMake")
private external fun PaintFilterCanvas_nMake(canvasPtr: NativePointer, unrollDrawable: Boolean): NativePointer
// Native/JS only
@ExternalSymbolName("org_jetbrains_skia_PaintFilterCanvas__1nInit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PaintFilterCanvas__1nInit")
internal external fun PaintFilterCanvas_nInit(ptr: NativePointer, onFilter: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_PaintFilterCanvas__1nGetOnFilterPaint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PaintFilterCanvas__1nGetOnFilterPaint")
internal external fun PaintFilterCanvas_nGetOnFilterPaint(ptr: NativePointer): NativePointer
......@@ -2171,69 +2171,91 @@ class Path internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerHol
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetFinalizer")
internal external fun Path_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMake")
private external fun Path_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nEquals")
private external fun Path_nEquals(aPtr: NativePointer, bPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nReset")
private external fun Path_nReset(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsVolatile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsVolatile")
private external fun Path_nIsVolatile(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nSetVolatile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nSetVolatile")
private external fun Path_nSetVolatile(ptr: NativePointer, isVolatile: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Path__1nSwap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nSwap")
private external fun Path_nSwap(ptr: NativePointer, otherPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetGenerationId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetGenerationId")
private external fun Path_nGetGenerationId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nMakeFromSVGString")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMakeFromSVGString")
private external fun _nMakeFromSVGString(svg: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsInterpolatable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsInterpolatable")
private external fun _nIsInterpolatable(ptr: NativePointer, comparePtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nMakeLerp")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMakeLerp")
private external fun _nMakeLerp(ptr: NativePointer, endingPtr: NativePointer, weight: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetFillMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetFillMode")
private external fun _nGetFillMode(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nSetFillMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nSetFillMode")
private external fun _nSetFillMode(ptr: NativePointer, fillMode: Int)
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsConvex")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsConvex")
private external fun _nIsConvex(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsOval")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsOval")
private external fun _nIsOval(ptr: NativePointer, rect: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsRRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsRRect")
private external fun _nIsRRect(ptr: NativePointer, rrect: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nRewind")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nRewind")
private external fun _nRewind(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsEmpty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsEmpty")
private external fun _nIsEmpty(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsLastContourClosed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsLastContourClosed")
private external fun _nIsLastContourClosed(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsFinite")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsFinite")
private external fun _nIsFinite(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsLineDegenerate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsLineDegenerate")
private external fun _nIsLineDegenerate(x0: Float, y0: Float, x1: Float, y1: Float, exact: Boolean): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsQuadDegenerate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsQuadDegenerate")
private external fun _nIsQuadDegenerate(
x0: Float,
y0: Float,
......@@ -2246,6 +2268,7 @@ private external fun _nIsQuadDegenerate(
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsCubicDegenerate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsCubicDegenerate")
private external fun _nIsCubicDegenerate(
x0: Float,
y0: Float,
......@@ -2260,72 +2283,95 @@ private external fun _nIsCubicDegenerate(
@ExternalSymbolName("org_jetbrains_skia_Path__1nMaybeGetAsLine")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMaybeGetAsLine")
private external fun _nMaybeGetAsLine(ptr: NativePointer, rectBuffer: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetPointsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetPointsCount")
private external fun _nGetPointsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetPoint")
private external fun _nGetPoint(ptr: NativePointer, index: Int, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetPoints")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetPoints")
private external fun _nGetPoints(ptr: NativePointer, points: InteropPointer, max: Int): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nCountVerbs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nCountVerbs")
private external fun _nCountVerbs(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetVerbs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetVerbs")
private external fun _nGetVerbs(ptr: NativePointer, verbs: InteropPointer, max: Int): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nApproximateBytesUsed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nApproximateBytesUsed")
private external fun _nApproximateBytesUsed(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetBounds")
private external fun _nGetBounds(ptr: NativePointer, rect: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nUpdateBoundsCache")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nUpdateBoundsCache")
private external fun _nUpdateBoundsCache(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nComputeTightBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nComputeTightBounds")
private external fun _nComputeTightBounds(ptr: NativePointer, rect: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nConservativelyContainsRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nConservativelyContainsRect")
private external fun _nConservativelyContainsRect(ptr: NativePointer, l: Float, t: Float, r: Float, b: Float): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nIncReserve")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIncReserve")
private external fun _nIncReserve(ptr: NativePointer, extraPtCount: Int)
@ExternalSymbolName("org_jetbrains_skia_Path__1nMoveTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMoveTo")
private external fun _nMoveTo(ptr: NativePointer, x: Float, y: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nRMoveTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nRMoveTo")
private external fun _nRMoveTo(ptr: NativePointer, dx: Float, dy: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nLineTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nLineTo")
private external fun _nLineTo(ptr: NativePointer, x: Float, y: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nRLineTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nRLineTo")
private external fun _nRLineTo(ptr: NativePointer, dx: Float, dy: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nQuadTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nQuadTo")
private external fun _nQuadTo(ptr: NativePointer, x1: Float, y1: Float, x2: Float, y2: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nRQuadTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nRQuadTo")
private external fun _nRQuadTo(ptr: NativePointer, dx1: Float, dy1: Float, dx2: Float, dy2: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nConicTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nConicTo")
private external fun _nConicTo(ptr: NativePointer, x1: Float, y1: Float, x2: Float, y2: Float, w: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nRConicTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nRConicTo")
private external fun _nRConicTo(ptr: NativePointer, dx1: Float, dy1: Float, dx2: Float, dy2: Float, w: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nCubicTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nCubicTo")
private external fun _nCubicTo(ptr: NativePointer, x1: Float, y1: Float, x2: Float, y2: Float, x3: Float, y3: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nRCubicTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nRCubicTo")
private external fun _nRCubicTo(ptr: NativePointer, dx1: Float, dy1: Float, dx2: Float, dy2: Float, dx3: Float, dy3: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nArcTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nArcTo")
private external fun _nArcTo(
ptr: NativePointer,
left: Float,
......@@ -2339,9 +2385,11 @@ private external fun _nArcTo(
@ExternalSymbolName("org_jetbrains_skia_Path__1nTangentArcTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nTangentArcTo")
private external fun _nTangentArcTo(ptr: NativePointer, x1: Float, y1: Float, x2: Float, y2: Float, radius: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nEllipticalArcTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nEllipticalArcTo")
private external fun _nEllipticalArcTo(
ptr: NativePointer,
rx: Float,
......@@ -2355,6 +2403,7 @@ private external fun _nEllipticalArcTo(
@ExternalSymbolName("org_jetbrains_skia_Path__1nREllipticalArcTo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nREllipticalArcTo")
private external fun _nREllipticalArcTo(
ptr: NativePointer,
rx: Float,
......@@ -2368,9 +2417,11 @@ private external fun _nREllipticalArcTo(
@ExternalSymbolName("org_jetbrains_skia_Path__1nClosePath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nClosePath")
private external fun _nClosePath(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nConvertConicToQuads")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nConvertConicToQuads")
private external fun _nConvertConicToQuads(
x0: Float,
y0: Float,
......@@ -2385,21 +2436,27 @@ private external fun _nConvertConicToQuads(
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsRect")
private external fun _nIsRect(ptr: NativePointer, rect: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddRect")
private external fun _nAddRect(ptr: NativePointer, l: Float, t: Float, r: Float, b: Float, dir: Int, start: Int)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddOval")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddOval")
private external fun _nAddOval(ptr: NativePointer, l: Float, t: Float, r: Float, b: Float, dir: Int, start: Int)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddCircle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddCircle")
private external fun _nAddCircle(ptr: NativePointer, x: Float, y: Float, r: Float, dir: Int)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddArc")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddArc")
private external fun _nAddArc(ptr: NativePointer, l: Float, t: Float, r: Float, b: Float, startAngle: Float, sweepAngle: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddRRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddRRect")
private external fun _nAddRRect(
ptr: NativePointer,
l: Float,
......@@ -2414,52 +2471,69 @@ private external fun _nAddRRect(
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddPoly")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddPoly")
private external fun _nAddPoly(ptr: NativePointer, coords: InteropPointer, count: Int, close: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddPath")
private external fun _nAddPath(ptr: NativePointer, srcPtr: NativePointer, extend: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddPathOffset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddPathOffset")
private external fun _nAddPathOffset(ptr: NativePointer, srcPtr: NativePointer, dx: Float, dy: Float, extend: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Path__1nAddPathTransform")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nAddPathTransform")
private external fun _nAddPathTransform(ptr: NativePointer, srcPtr: NativePointer, matrix: InteropPointer, extend: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Path__1nReverseAddPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nReverseAddPath")
private external fun _nReverseAddPath(ptr: NativePointer, srcPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nOffset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nOffset")
private external fun _nOffset(ptr: NativePointer, dx: Float, dy: Float, dst: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nTransform")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nTransform")
private external fun _nTransform(ptr: NativePointer, matrix: InteropPointer, dst: NativePointer, applyPerspectiveClip: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetLastPt")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetLastPt")
private external fun _nGetLastPt(ptr: NativePointer, result: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nSetLastPt")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nSetLastPt")
private external fun _nSetLastPt(ptr: NativePointer, x: Float, y: Float)
@ExternalSymbolName("org_jetbrains_skia_Path__1nGetSegmentMasks")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nGetSegmentMasks")
private external fun _nGetSegmentMasks(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nContains")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nContains")
private external fun _nContains(ptr: NativePointer, x: Float, y: Float): Boolean
@ExternalSymbolName("org_jetbrains_skia_Path__1nDump")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nDump")
private external fun _nDump(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nDumpHex")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nDumpHex")
private external fun _nDumpHex(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Path__1nSerializeToBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nSerializeToBytes")
private external fun _nSerializeToBytes(ptr: NativePointer, dst: InteropPointer): Int
@ExternalSymbolName("org_jetbrains_skia_Path__1nMakeCombining")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMakeCombining")
private external fun _nMakeCombining(onePtr: NativePointer, twoPtr: NativePointer, op: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nMakeFromBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nMakeFromBytes")
private external fun _nMakeFromBytes(data: InteropPointer, size: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Path__1nIsValid")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Path__1nIsValid")
private external fun _nIsValid(ptr: NativePointer): Boolean
\ No newline at end of file
......@@ -103,25 +103,33 @@ class PathEffect internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakeCompose")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakeCompose")
private external fun PathEffect_nMakeCompose(outerPtr: NativePointer, innerPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakeSum")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakeSum")
private external fun _nMakeSum(firstPtr: NativePointer, secondPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakePath1D")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakePath1D")
private external fun _nMakePath1D(pathPtr: NativePointer, advance: Float, phase: Float, style: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakePath2D")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakePath2D")
private external fun _nMakePath2D(matrix: InteropPointer, pathPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakeLine2D")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakeLine2D")
private external fun _nMakeLine2D(width: Float, matrix: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakeCorner")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakeCorner")
private external fun _nMakeCorner(radius: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakeDash")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakeDash")
private external fun _nMakeDash(intervals: InteropPointer, count: Int, phase: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathEffect__1nMakeDiscrete")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathEffect__1nMakeDiscrete")
private external fun _nMakeDiscrete(segLength: Float, dev: Float, seed: Int): NativePointer
......@@ -215,30 +215,39 @@ class PathMeasure internal constructor(ptr: NativePointer) : Managed(ptr, _Final
}
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetFinalizer")
private external fun PathMeasure_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nMake")
private external fun PathMeasure_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nMakePath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nMakePath")
private external fun _nMakePath(pathPtr: NativePointer, forceClosed: Boolean, resScale: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nSetPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nSetPath")
private external fun _nSetPath(ptr: NativePointer, pathPtr: NativePointer, forceClosed: Boolean)
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetLength")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetLength")
private external fun _nGetLength(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetPosition")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetPosition")
private external fun _nGetPosition(ptr: NativePointer, distance: Float, data: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetTangent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetTangent")
private external fun _nGetTangent(ptr: NativePointer, distance: Float, data: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetRSXform")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetRSXform")
private external fun _nGetRSXform(ptr: NativePointer, distance: Float, data: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetMatrix")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetMatrix")
private external fun _nGetMatrix(
ptr: NativePointer,
distance: Float,
......@@ -248,6 +257,7 @@ private external fun _nGetMatrix(
): Boolean
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nGetSegment")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nGetSegment")
private external fun _nGetSegment(
ptr: NativePointer,
startD: Float,
......@@ -258,7 +268,9 @@ private external fun _nGetSegment(
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nIsClosed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nIsClosed")
private external fun _nIsClosed(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_PathMeasure__1nNextContour")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathMeasure__1nNextContour")
private external fun _nNextContour(ptr: NativePointer): Boolean
......@@ -126,10 +126,13 @@ private fun pathSegmentFromIntArray(points: IntArray): PathSegment {
}
@ExternalSymbolName("org_jetbrains_skia_PathSegmentIterator__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathSegmentIterator__1nGetFinalizer")
private external fun PathSegmentIterator_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathSegmentIterator__1nNext")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathSegmentIterator__1nNext")
private external fun PathSegmentIterator_nNext(ptr: NativePointer, points: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_PathSegmentIterator__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathSegmentIterator__1nMake")
private external fun _nMake(pathPtr: NativePointer, forceClose: Boolean): NativePointer
\ No newline at end of file
......@@ -79,6 +79,7 @@ object PathUtils {
}
@ExternalSymbolName("org_jetbrains_skia_PathUtils__1nFillPathWithPaint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathUtils__1nFillPathWithPaint")
private external fun _nFillPathWithPaint(
srcPtr: NativePointer,
paintPtr: NativePointer,
......@@ -86,6 +87,7 @@ private external fun _nFillPathWithPaint(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PathUtils__1nFillPathWithPaintCull")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PathUtils__1nFillPathWithPaintCull")
private external fun _nFillPathWithPaintCull(
srcPtr: NativePointer,
paintPtr: NativePointer,
......
......@@ -233,27 +233,35 @@ class Picture internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_Picture__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nMakeFromData")
private external fun Picture_nMakeFromData(dataPtr: NativePointer /*, SkDeserialProcs */): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Picture__1nGetCullRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nGetCullRect")
private external fun _nGetCullRect(ptr: NativePointer, ltrb: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Picture__1nGetUniqueId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nGetUniqueId")
private external fun _nGetUniqueId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Picture__1nSerializeToData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nSerializeToData")
private external fun _nSerializeToData(ptr: NativePointer /*, SkSerialProcs */): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Picture__1nMakePlaceholder")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nMakePlaceholder")
private external fun _nMakePlaceholder(left: Float, top: Float, right: Float, bottom: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Picture__1nGetApproximateOpCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nGetApproximateOpCount")
private external fun _nGetApproximateOpCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Picture__1nGetApproximateBytesUsed")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nGetApproximateBytesUsed")
private external fun _nGetApproximateBytesUsed(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Picture__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nMakeShader")
private external fun _nMakeShader(
ptr: NativePointer,
tmx: Int,
......@@ -268,4 +276,5 @@ private external fun _nMakeShader(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Picture__1nPlayback")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Picture__1nPlayback")
private external fun _nPlayback(ptr: NativePointer, canvasPtr: NativePointer, data: InteropPointer)
\ No newline at end of file
......@@ -125,21 +125,27 @@ class PictureRecorder internal constructor(ptr: NativePointer) : Managed(ptr, _F
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nMake")
private external fun PictureRecorder_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nGetFinalizer")
private external fun PictureRecorder_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nBeginRecording")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nBeginRecording")
private external fun _nBeginRecording(ptr: NativePointer, left: Float, top: Float, right: Float, bottom: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nGetRecordingCanvas")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nGetRecordingCanvas")
private external fun _nGetRecordingCanvas(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsPicture")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsPicture")
private external fun _nFinishRecordingAsPicture(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsPictureWithCull")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsPictureWithCull")
private external fun _nFinishRecordingAsPictureWithCull(
ptr: NativePointer,
left: Float,
......@@ -150,5 +156,6 @@ private external fun _nFinishRecordingAsPictureWithCull(
@ExternalSymbolName("org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsDrawable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsDrawable")
private external fun _nFinishRecordingAsDrawable(ptr: NativePointer): NativePointer
......@@ -84,22 +84,29 @@ class PixelRef internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nGetRowBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nGetRowBytes")
private external fun PixelRef_nGetRowBytes(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nGetGenerationId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nGetGenerationId")
private external fun PixelRef_nGetGenerationId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nNotifyPixelsChanged")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nNotifyPixelsChanged")
private external fun PixelRef_nNotifyPixelsChanged(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nIsImmutable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nIsImmutable")
private external fun PixelRef_nIsImmutable(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nSetImmutable")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nSetImmutable")
private external fun PixelRef_nSetImmutable(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nGetWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nGetWidth")
private external fun _nGetWidth(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_PixelRef__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_PixelRef__1nGetHeight")
private external fun _nGetHeight(ptr: NativePointer): Int
\ No newline at end of file
......@@ -313,33 +313,43 @@ class Pixmap internal constructor(ptr: NativePointer, managed: Boolean) :
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetFinalizer")
private external fun Pixmap_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nReset")
private external fun Pixmap_nReset(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nExtractSubset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nExtractSubset")
private external fun Pixmap_nExtractSubset(ptr: NativePointer, subsetPtr: NativePointer, l: Int, t: Int, r: Int, b: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetRowBytes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetRowBytes")
private external fun Pixmap_nGetRowBytes(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetRowBytesAsPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetRowBytesAsPixels")
private external fun Pixmap_nGetRowBytesAsPixels(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nComputeByteSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nComputeByteSize")
private external fun Pixmap_nComputeByteSize(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nComputeIsOpaque")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nComputeIsOpaque")
private external fun Pixmap_nComputeIsOpaque(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetColor")
private external fun Pixmap_nGetColor(ptr: NativePointer, x: Int, y: Int): Int
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nMakeNull")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nMakeNull")
private external fun _nMakeNull(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nMake")
private external fun Pixmap_nMake(
width: Int,
height: Int,
......@@ -351,6 +361,7 @@ private external fun Pixmap_nMake(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nResetWithInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nResetWithInfo")
private external fun _nResetWithInfo(
ptr: NativePointer,
width: Int,
......@@ -364,12 +375,15 @@ private external fun _nResetWithInfo(
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nSetColorSpace")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nSetColorSpace")
private external fun _nSetColorSpace(ptr: NativePointer, colorSpacePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetInfo")
private external fun _nGetInfo(ptr: NativePointer, imageInfo: InteropPointer, colorSpacePtrs: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetAddr")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetAddr")
private external fun _nGetAddr(ptr: NativePointer): NativePointer
// TODO methods flattening ImageInfo not included yet - use GetInfo() instead.
......@@ -377,14 +391,17 @@ private external fun _nGetAddr(ptr: NativePointer): NativePointer
// TODO shiftPerPixel
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetAlphaF")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetAlphaF")
private external fun _nGetAlphaF(ptr: NativePointer, x: Int, y: Int): Float
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nGetAddrAt")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nGetAddrAt")
private external fun _nGetAddrAt(ptr: NativePointer, x: Int, y: Int): NativePointer
// methods related to C++ types(addr8/16/32/64, writable_addr8/16/32/64) not included - not needed
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nReadPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nReadPixels")
private external fun _nReadPixels(
ptr: NativePointer,
width: Int,
......@@ -398,6 +415,7 @@ private external fun _nReadPixels(
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nReadPixelsFromPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nReadPixelsFromPoint")
private external fun _nReadPixelsFromPoint(
ptr: NativePointer,
width: Int,
......@@ -413,18 +431,23 @@ private external fun _nReadPixelsFromPoint(
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nReadPixelsToPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nReadPixelsToPixmap")
private external fun _nReadPixelsToPixmap(ptr: NativePointer, dstPixmapPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nReadPixelsToPixmapFromPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nReadPixelsToPixmapFromPoint")
private external fun _nReadPixelsToPixmapFromPoint(ptr: NativePointer, dstPixmapPtr: NativePointer, srcX: Int, srcY: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nScalePixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nScalePixels")
private external fun _nScalePixels(ptr: NativePointer, dstPixmapPtr: NativePointer, samplingOptionsVal1: Int, samplingOptionsVal2: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nErase")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nErase")
private external fun _nErase(ptr: NativePointer, color: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Pixmap__1nEraseSubset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Pixmap__1nEraseSubset")
private external fun _nEraseSubset(
ptr: NativePointer,
color: Int,
......
......@@ -326,81 +326,107 @@ class Region : Managed(Region_nMake(), _FinalizerHolder.PTR) {
@ExternalSymbolName("org_jetbrains_skia_Region__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nMake")
private external fun Region_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Region__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nGetFinalizer")
private external fun Region_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Region__1nIsEmpty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nIsEmpty")
private external fun Region_nIsEmpty(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nIsRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nIsRect")
private external fun Region_nIsRect(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nGetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nGetBounds")
private external fun Region_nGetBounds(ptr: NativePointer, ltrb: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Region__1nSet")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nSet")
private external fun Region_nSet(ptr: NativePointer, regoinPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nIsComplex")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nIsComplex")
private external fun Region_nIsComplex(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nComputeRegionComplexity")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nComputeRegionComplexity")
private external fun Region_nComputeRegionComplexity(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Region__1nGetBoundaryPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nGetBoundaryPath")
private external fun Region_nGetBoundaryPath(ptr: NativePointer, pathPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nSetEmpty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nSetEmpty")
private external fun Region_nSetEmpty(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nSetRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nSetRect")
private external fun Region_nSetRect(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nSetRects")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nSetRects")
private external fun Region_nSetRects(ptr: NativePointer, rects: InteropPointer, count: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nSetRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nSetRegion")
private external fun Region_nSetRegion(ptr: NativePointer, regionPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nSetPath")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nSetPath")
private external fun Region_nSetPath(ptr: NativePointer, pathPtr: NativePointer, regionPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nIntersectsIRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nIntersectsIRect")
private external fun Region_nIntersectsIRect(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nIntersectsRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nIntersectsRegion")
private external fun Region_nIntersectsRegion(ptr: NativePointer, regionPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nContainsIPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nContainsIPoint")
private external fun Region_nContainsIPoint(ptr: NativePointer, x: Int, y: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nContainsIRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nContainsIRect")
private external fun Region_nContainsIRect(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nContainsRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nContainsRegion")
private external fun Region_nContainsRegion(ptr: NativePointer, regionPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nQuickContains")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nQuickContains")
private external fun Region_nQuickContains(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nQuickRejectIRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nQuickRejectIRect")
private external fun Region_nQuickRejectIRect(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nQuickRejectRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nQuickRejectRegion")
private external fun Region_nQuickRejectRegion(ptr: NativePointer, regionPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nTranslate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nTranslate")
private external fun Region_nTranslate(ptr: NativePointer, dx: Int, dy: Int)
@ExternalSymbolName("org_jetbrains_skia_Region__1nOpIRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nOpIRect")
private external fun Region_nOpIRect(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int, op: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nOpRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nOpRegion")
private external fun Region_nOpRegion(ptr: NativePointer, regionPtr: NativePointer, op: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Region__1nOpIRectRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nOpIRectRegion")
private external fun Region_nOpIRectRegion(
ptr: NativePointer,
left: Int,
......@@ -413,6 +439,7 @@ private external fun Region_nOpIRectRegion(
@ExternalSymbolName("org_jetbrains_skia_Region__1nOpRegionIRect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nOpRegionIRect")
private external fun Region_nOpRegionIRect(
ptr: NativePointer,
regionPtr: NativePointer,
......@@ -425,6 +452,7 @@ private external fun Region_nOpRegionIRect(
@ExternalSymbolName("org_jetbrains_skia_Region__1nOpRegionRegion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Region__1nOpRegionRegion")
private external fun Region_nOpRegionRegion(
ptr: NativePointer,
regionPtrA: NativePointer,
......
......@@ -47,6 +47,7 @@ class RuntimeEffect internal constructor(ptr: NativePointer) : RefCnt(ptr) {
internal expect fun RuntimeEffect.Companion.makeFromResultPtr(ptr: NativePointer): RuntimeEffect
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeEffect__1nMakeShader")
private external fun _nMakeShader(
runtimeEffectPtr: NativePointer, uniformPtr: NativePointer, childrenPtrs: InteropPointer,
childCount: Int, localMatrix: InteropPointer
......@@ -54,18 +55,23 @@ private external fun _nMakeShader(
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1nMakeForShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeEffect__1nMakeForShader")
private external fun _nMakeForShader(sksl: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1nMakeForColorFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeEffect__1nMakeForColorFilter")
private external fun _nMakeForColorFilter(sksl: InteropPointer): NativePointer
// The functions below can be used only in JS and native targets
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1Result_nGetPtr")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeEffect__1Result_nGetPtr")
internal external fun Result_nGetPtr(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1Result_nGetError")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeEffect__1Result_nGetError")
internal external fun Result_nGetError(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_RuntimeEffect__1Result_nDestroy")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeEffect__1Result_nDestroy")
internal external fun Result_nDestroy(ptr: NativePointer)
\ No newline at end of file
......@@ -138,49 +138,65 @@ class RuntimeShaderBuilder internal constructor(ptr: NativePointer) : Managed(pt
}
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nMakeFromRuntimeEffect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nMakeFromRuntimeEffect")
private external fun _nMakeFromRuntimeEffect(effectPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nGetFinalizer")
private external fun RuntimeShaderBuilder_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt")
private external fun _nUniformInt(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue: Int)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt2")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt2")
private external fun _nUniformInt2(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue1: Int, uniformValue2: Int)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt3")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt3")
private external fun _nUniformInt3(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue1: Int, uniformValue2: Int, uniformValue3: Int)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt4")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt4")
private external fun _nUniformInt4(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue1: Int, uniformValue2: Int, uniformValue3: Int, uniformValue4: Int)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat")
private external fun _nUniformFloat(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue: Float)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat2")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat2")
private external fun _nUniformFloat2(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue1: Float, uniformValue2: Float)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat3")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat3")
private external fun _nUniformFloat3(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue1: Float, uniformValue2: Float, uniformValue3: Float)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat4")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat4")
private external fun _nUniformFloat4(builderPtr: NativePointer, uniformName: InteropPointer, uniformValue1: Float, uniformValue2: Float, uniformValue3: Float, uniformValue4: Float)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix22")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix22")
private external fun _nUniformFloatMatrix22(builderPtr: NativePointer, uniformName: InteropPointer, uniformMatrix22: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix33")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix33")
private external fun _nUniformFloatMatrix33(builderPtr: NativePointer, uniformName: InteropPointer, uniformMatrix33: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix44")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix44")
private external fun _nUniformFloatMatrix44(builderPtr: NativePointer, uniformName: InteropPointer, uniformMatrix44: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nChildShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nChildShader")
private external fun _nChildShader(builderPtr: NativePointer, uniformName: InteropPointer, shaderPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nChildColorFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nChildColorFilter")
private external fun _nChildColorFilter(builderPtr: NativePointer, uniformName: InteropPointer, colorFilterPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_RuntimeShaderBuilder__1nMakeShader")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_RuntimeShaderBuilder__1nMakeShader")
private external fun _nMakeShader(builderPtr: NativePointer, localMatrix: InteropPointer): NativePointer
......@@ -518,12 +518,15 @@ class Shader internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeEmpty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeEmpty")
private external fun Shader_nMakeEmpty(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeWithColorFilter")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeWithColorFilter")
private external fun _nMakeWithColorFilter(ptr: NativePointer, colorFilterPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeLinearGradient")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeLinearGradient")
private external fun _nMakeLinearGradient(
x0: Float,
y0: Float,
......@@ -539,6 +542,7 @@ private external fun _nMakeLinearGradient(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeLinearGradientCS")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeLinearGradientCS")
private external fun _nMakeLinearGradientCS(
x0: Float,
y0: Float,
......@@ -555,6 +559,7 @@ private external fun _nMakeLinearGradientCS(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeRadialGradient")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeRadialGradient")
private external fun _nMakeRadialGradient(
x: Float,
y: Float,
......@@ -569,6 +574,7 @@ private external fun _nMakeRadialGradient(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeRadialGradientCS")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeRadialGradientCS")
private external fun _nMakeRadialGradientCS(
x: Float,
y: Float,
......@@ -584,6 +590,7 @@ private external fun _nMakeRadialGradientCS(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeTwoPointConicalGradient")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeTwoPointConicalGradient")
private external fun _nMakeTwoPointConicalGradient(
x0: Float,
y0: Float,
......@@ -601,6 +608,7 @@ private external fun _nMakeTwoPointConicalGradient(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeTwoPointConicalGradientCS")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeTwoPointConicalGradientCS")
private external fun _nMakeTwoPointConicalGradientCS(
x0: Float,
y0: Float,
......@@ -619,6 +627,7 @@ private external fun _nMakeTwoPointConicalGradientCS(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeSweepGradient")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeSweepGradient")
private external fun _nMakeSweepGradient(
x: Float,
y: Float,
......@@ -634,6 +643,7 @@ private external fun _nMakeSweepGradient(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeSweepGradientCS")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeSweepGradientCS")
private external fun _nMakeSweepGradientCS(
x: Float,
y: Float,
......@@ -650,6 +660,7 @@ private external fun _nMakeSweepGradientCS(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeFractalNoise")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeFractalNoise")
private external fun _nMakeFractalNoise(
baseFrequencyX: Float,
baseFrequencyY: Float,
......@@ -661,6 +672,7 @@ private external fun _nMakeFractalNoise(
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeTurbulence")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeTurbulence")
private external fun _nMakeTurbulence(
baseFrequencyX: Float,
baseFrequencyY: Float,
......@@ -671,10 +683,13 @@ private external fun _nMakeTurbulence(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeColor")
private external fun _nMakeColor(color: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeColorCS")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeColorCS")
private external fun _nMakeColorCS(r: Float, g: Float, b: Float, a: Float, colorSpacePtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Shader__1nMakeBlend")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Shader__1nMakeBlend")
private external fun _nMakeBlend(blendMode: Int, dst: NativePointer, src: NativePointer): NativePointer
......@@ -92,6 +92,7 @@ object ShadowUtils {
@ExternalSymbolName("org_jetbrains_skia_ShadowUtils__1nDrawShadow")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ShadowUtils__1nDrawShadow")
private external fun _nDrawShadow(
canvasPtr: NativePointer,
pathPtr: NativePointer,
......@@ -109,7 +110,9 @@ private external fun _nDrawShadow(
@ExternalSymbolName("org_jetbrains_skia_ShadowUtils__1nComputeTonalAmbientColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ShadowUtils__1nComputeTonalAmbientColor")
private external fun _nComputeTonalAmbientColor(ambientColor: Int, spotColor: Int): Int
@ExternalSymbolName("org_jetbrains_skia_ShadowUtils__1nComputeTonalSpotColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_ShadowUtils__1nComputeTonalSpotColor")
private external fun _nComputeTonalSpotColor(ambientColor: Int, spotColor: Int): Int
......@@ -3,12 +3,15 @@ package org.jetbrains.skia
import org.jetbrains.skia.impl.NativePointer
@ExternalSymbolName("org_jetbrains_skia_StdVectorDecoder__1nGetArraySize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_StdVectorDecoder__1nGetArraySize")
private external fun StdVectorDecoder_nGetArraySize(array: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_StdVectorDecoder__1nDisposeArray")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_StdVectorDecoder__1nDisposeArray")
private external fun StdVectorDecoder_nDisposeArray(array: NativePointer, disposePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_StdVectorDecoder__1nReleaseElement")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_StdVectorDecoder__1nReleaseElement")
private external fun StdVectorDecoder_nReleaseElement(array: NativePointer, index: Int): NativePointer
......
......@@ -1018,24 +1018,31 @@ class Surface : RefCnt {
}
@ExternalSymbolName("org_jetbrains_skia_Surface__1nGetWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nGetWidth")
private external fun Surface_nGetWidth(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Surface__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nGetHeight")
private external fun Surface_nGetHeight(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Surface__1nGetImageInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nGetImageInfo")
private external fun Surface_nGetImageInfo(ptr: NativePointer, imageInfo: InteropPointer, colorSpacePtrs: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nReadPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nReadPixels")
private external fun Surface_nReadPixels(ptr: NativePointer, bitmapPtr: NativePointer, srcX: Int, srcY: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Surface__1nWritePixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nWritePixels")
private external fun Surface_nWritePixels(ptr: NativePointer, bitmapPtr: NativePointer, x: Int, y: Int)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nFlush")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nFlush")
private external fun Surface_nFlush(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeRasterDirect")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeRasterDirect")
private external fun _nMakeRasterDirect(
width: Int,
height: Int,
......@@ -1049,9 +1056,11 @@ private external fun _nMakeRasterDirect(
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeRasterDirectWithPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeRasterDirectWithPixmap")
private external fun _nMakeRasterDirectWithPixmap(pixmapPtr: NativePointer, surfaceProps: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeRaster")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeRaster")
private external fun _nMakeRaster(
width: Int,
height: Int,
......@@ -1064,9 +1073,11 @@ private external fun _nMakeRaster(
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeRasterN32Premul")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeRasterN32Premul")
private external fun _nMakeRasterN32Premul(width: Int, height: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeFromBackendRenderTarget")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeFromBackendRenderTarget")
private external fun _nMakeFromBackendRenderTarget(
pContext: NativePointer,
pBackendRenderTarget: NativePointer,
......@@ -1077,6 +1088,7 @@ private external fun _nMakeFromBackendRenderTarget(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeFromMTKView")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeFromMTKView")
private external fun _nMakeFromMTKView(
contextPtr: NativePointer,
mtkViewPtr: NativePointer,
......@@ -1088,6 +1100,7 @@ private external fun _nMakeFromMTKView(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeRenderTarget")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeRenderTarget")
private external fun _nMakeRenderTarget(
contextPtr: NativePointer,
budgeted: Boolean,
......@@ -1104,21 +1117,27 @@ private external fun _nMakeRenderTarget(
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeNull")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeNull")
private external fun _nMakeNull(width: Int, height: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nGenerationId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nGenerationId")
private external fun _nGenerationId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Surface__1nNotifyContentWillChange")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nNotifyContentWillChange")
private external fun _nNotifyContentWillChange(ptr: NativePointer, mode: Int)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nGetRecordingContext")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nGetRecordingContext")
private external fun _nGetRecordingContext(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nGetCanvas")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nGetCanvas")
private external fun _nGetCanvas(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeSurfaceI")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeSurfaceI")
private external fun _nMakeSurfaceI(
ptr: NativePointer,
width: Int,
......@@ -1130,28 +1149,37 @@ private external fun _nMakeSurfaceI(
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeSurface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeSurface")
private external fun _nMakeSurface(ptr: NativePointer, width: Int, height: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeImageSnapshot")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeImageSnapshot")
private external fun _nMakeImageSnapshot(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nMakeImageSnapshotR")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nMakeImageSnapshotR")
private external fun _nMakeImageSnapshotR(ptr: NativePointer, left: Int, top: Int, right: Int, bottom: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Surface__1nDraw")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nDraw")
private external fun _nDraw(ptr: NativePointer, canvasPtr: NativePointer, x: Float, y: Float, samplingModeValue1: Int, samplingModeValue2: Int, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nPeekPixels")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nPeekPixels")
private external fun _nPeekPixels(ptr: NativePointer, pixmapPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Surface__1nReadPixelsToPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nReadPixelsToPixmap")
private external fun _nReadPixelsToPixmap(ptr: NativePointer, pixmapPtr: NativePointer, srcX: Int, srcY: Int): Boolean
@ExternalSymbolName("org_jetbrains_skia_Surface__1nWritePixelsFromPixmap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nWritePixelsFromPixmap")
private external fun _nWritePixelsFromPixmap(ptr: NativePointer, pixmapPtr: NativePointer, x: Int, y: Int)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nFlushAndSubmit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nFlushAndSubmit")
private external fun _nFlushAndSubmit(ptr: NativePointer, syncCpu: Boolean)
@ExternalSymbolName("org_jetbrains_skia_Surface__1nUnique")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Surface__1nUnique")
private external fun _nUnique(ptr: NativePointer): Boolean
......@@ -370,82 +370,109 @@ class TextBlob internal constructor(ptr: NativePointer) : Managed(ptr, _Finalize
}
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetFinalizer")
private external fun TextBlob_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetUniqueId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetUniqueId")
private external fun TextBlob_nGetUniqueId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nSerializeToData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nSerializeToData")
private external fun TextBlob_nSerializeToData(ptr: NativePointer /*, SkSerialProcs */): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nMakeFromData")
private external fun TextBlob_nMakeFromData(dataPtr: NativePointer /*, SkDeserialProcs */): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nBounds")
private external fun _nBounds(ptr: NativePointer, resultRect: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetInterceptsLength")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetInterceptsLength")
private external fun _nGetInterceptsLength(ptr: NativePointer, lower: Float, upper: Float, paintPtr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetIntercepts")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetIntercepts")
private external fun _nGetIntercepts(ptr: NativePointer, lower: Float, upper: Float, paintPtr: NativePointer, resultArray: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nMakeFromPosH")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nMakeFromPosH")
private external fun _nMakeFromPosH(glyphs: InteropPointer, glyphsLen: Int, xpos: InteropPointer, ypos: Float, fontPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nMakeFromPos")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nMakeFromPos")
private external fun _nMakeFromPos(glyphs: InteropPointer, glyphsLen: Int, pos: InteropPointer, fontPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nMakeFromRSXform")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nMakeFromRSXform")
private external fun _nMakeFromRSXform(glyphs: InteropPointer, glyphsLen: Int, xform: InteropPointer, fontPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetGlyphsLength")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetGlyphsLength")
private external fun _nGetGlyphsLength(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetGlyphs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetGlyphs")
private external fun _nGetGlyphs(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetPositionsLength")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetPositionsLength")
private external fun _nGetPositionsLength(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetPositions")
private external fun _nGetPositions(ptr: NativePointer, resultArray: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetClustersLength")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetClustersLength")
private external fun _nGetClustersLength(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetClusters")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetClusters")
private external fun _nGetClusters(ptr: NativePointer, resultArray: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetTightBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetTightBounds")
private external fun _nGetTightBounds(ptr: NativePointer, resultArray: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetBlockBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetBlockBounds")
private external fun _nGetBlockBounds(ptr: NativePointer, resultArray: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetFirstBaseline")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetFirstBaseline")
private external fun _nGetFirstBaseline(ptr: NativePointer, resultArray: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob__1nGetLastBaseline")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob__1nGetLastBaseline")
private external fun _nGetLastBaseline(ptr: NativePointer, resultArray: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nCreate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nCreate")
private external fun Iter_nCreate(textBlobPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nGetFinalizer")
private external fun Iter_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nFetch")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nFetch")
private external fun Iter_nFetch(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nGetTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nGetTypeface")
private external fun Iter_nGetTypeface(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nHasNext")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nHasNext")
private external fun Iter_nHasNext(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nGetGlyphCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nGetGlyphCount")
private external fun Iter_nGetGlyphCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextBlob_Iter__1nGetGlyphs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlob_Iter__1nGetGlyphs")
private external fun Iter_nGetGlyphs(ptr: NativePointer, glyphs: InteropPointer, max: Int): Int
......@@ -232,15 +232,19 @@ class TextBlobBuilder internal constructor(ptr: NativePointer) : Managed(ptr, _F
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nGetFinalizer")
private external fun TextBlobBuilder_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nMake")
private external fun TextBlobBuilder_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nBuild")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nBuild")
private external fun _nBuild(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nAppendRun")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nAppendRun")
private external fun _nAppendRun(
ptr: NativePointer, fontPtr: NativePointer,
glyphs: InteropPointer, glyphsLen: Int,
......@@ -249,6 +253,7 @@ private external fun _nAppendRun(
)
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nAppendRunPosH")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nAppendRunPosH")
private external fun _nAppendRunPosH(
ptr: NativePointer,
fontPtr: NativePointer,
......@@ -261,6 +266,7 @@ private external fun _nAppendRunPosH(
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nAppendRunPos")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nAppendRunPos")
private external fun _nAppendRunPos(
ptr: NativePointer, fontPtr: NativePointer,
glyphs: InteropPointer, glyphsLen: Int,
......@@ -269,6 +275,7 @@ private external fun _nAppendRunPos(
)
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilder__1nAppendRunRSXform")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilder__1nAppendRunRSXform")
private external fun _nAppendRunRSXform(
ptr: NativePointer, fontPtr: NativePointer,
glyphs: InteropPointer, glyphsLen: Int,
......
......@@ -270,64 +270,85 @@ class TextLine internal constructor(ptr: NativePointer) : Managed(ptr, _Finalize
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetFinalizer")
private external fun TextLine_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetWidth")
private external fun TextLine_nGetWidth(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetHeight")
private external fun TextLine_nGetHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetGlyphsLength")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetGlyphsLength")
private external fun TextLine_nGetGlyphsLength(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetGlyphs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetGlyphs")
private external fun TextLine_nGetGlyphs(ptr: NativePointer, resultGlyphs: InteropPointer, resultLength: Int)
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetPositions")
private external fun TextLine_nGetPositions(ptr: NativePointer, resultArray: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetAscent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetAscent")
private external fun _nGetAscent(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetCapHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetCapHeight")
private external fun _nGetCapHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetXHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetXHeight")
private external fun _nGetXHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetDescent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetDescent")
private external fun _nGetDescent(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetLeading")
private external fun _nGetLeading(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetTextBlob")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetTextBlob")
private external fun _nGetTextBlob(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetRunPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetRunPositions")
private external fun _nGetRunPositions(ptr: NativePointer, resultArray: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetRunPositionsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetRunPositionsCount")
private external fun _nGetRunPositionsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetBreakPositionsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetBreakPositionsCount")
private external fun _nGetBreakPositionsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetBreakPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetBreakPositions")
private external fun _nGetBreakPositions(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetBreakOffsetsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetBreakOffsetsCount")
private external fun _nGetBreakOffsetsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetBreakOffsets")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetBreakOffsets")
private external fun _nGetBreakOffsets(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetOffsetAtCoord")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetOffsetAtCoord")
private external fun _nGetOffsetAtCoord(ptr: NativePointer, x: Float): Int
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetLeftOffsetAtCoord")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetLeftOffsetAtCoord")
private external fun _nGetLeftOffsetAtCoord(ptr: NativePointer, x: Float): Int
@ExternalSymbolName("org_jetbrains_skia_TextLine__1nGetCoordAtOffset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextLine__1nGetCoordAtOffset")
private external fun _nGetCoordAtOffset(ptr: NativePointer, offset: Int): Float
......@@ -396,15 +396,19 @@ class Typeface internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetUniqueId")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetUniqueId")
private external fun Typeface_nGetUniqueId(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nEquals")
private external fun Typeface_nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nMakeDefault")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nMakeDefault")
private external fun Typeface_nMakeDefault(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetUTF32Glyphs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetUTF32Glyphs")
private external fun Typeface_nGetUTF32Glyphs(
ptr: NativePointer,
uni: InteropPointer,
......@@ -413,39 +417,51 @@ private external fun Typeface_nGetUTF32Glyphs(
)
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetUTF32Glyph")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetUTF32Glyph")
private external fun Typeface_nGetUTF32Glyph(ptr: NativePointer, unichar: Int): Short
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetBounds")
private external fun Typeface_nGetBounds(ptr: NativePointer, bounds: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetFontStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetFontStyle")
private external fun _nGetFontStyle(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nIsFixedPitch")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nIsFixedPitch")
private external fun _nIsFixedPitch(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetVariationsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetVariationsCount")
private external fun _nGetVariationsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetVariations")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetVariations")
private external fun _nGetVariations(ptr: NativePointer, variations: InteropPointer, count: Int)
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetVariationAxesCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetVariationAxesCount")
private external fun _nGetVariationAxesCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetVariationAxes")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetVariationAxes")
private external fun _nGetVariationAxes(ptr: NativePointer, axisData: InteropPointer, axisCount: Int)
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nMakeFromName")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nMakeFromName")
private external fun _nMakeFromName(name: InteropPointer, fontStyle: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nMakeFromFile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nMakeFromFile")
internal external fun _nMakeFromFile(path: InteropPointer, index: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nMakeFromData")
private external fun _nMakeFromData(dataPtr: NativePointer, index: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nMakeClone")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nMakeClone")
private external fun _nMakeClone(
ptr: NativePointer,
variations: InteropPointer,
......@@ -454,27 +470,35 @@ private external fun _nMakeClone(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetGlyphsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetGlyphsCount")
private external fun _nGetGlyphsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetTablesCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetTablesCount")
private external fun _nGetTablesCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetTableTagsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetTableTagsCount")
private external fun _nGetTableTagsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetTableTags")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetTableTags")
private external fun _nGetTableTags(ptr: NativePointer, tags: InteropPointer, count: Int)
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetTableSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetTableSize")
private external fun _nGetTableSize(ptr: NativePointer, tag: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetTableData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetTableData")
private external fun _nGetTableData(ptr: NativePointer, tag: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetUnitsPerEm")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetUnitsPerEm")
private external fun _nGetUnitsPerEm(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetKerningPairAdjustments")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetKerningPairAdjustments")
private external fun _nGetKerningPairAdjustments(
ptr: NativePointer,
glyphs: InteropPointer,
......@@ -483,7 +507,9 @@ private external fun _nGetKerningPairAdjustments(
): Boolean
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetFamilyNames")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetFamilyNames")
private external fun _nGetFamilyNames(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_Typeface__1nGetFamilyName")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_Typeface__1nGetFamilyName")
private external fun _nGetFamilyName(ptr: NativePointer): NativePointer
......@@ -20,4 +20,5 @@ class U16String internal constructor(ptr: NativePointer) : Managed(ptr, _Finaliz
}
@ExternalSymbolName("org_jetbrains_skia_U16String__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_U16String__1nGetFinalizer")
private external fun U16String_nGetFinalizer(): NativePointer
\ No newline at end of file
package org.jetbrains.skia.icu
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.Library.Companion.staticLoad
/**
......@@ -47,4 +48,5 @@ object CharDirection {
}
@ExternalSymbolName("org_jetbrains_skia_icu_Unicode_charDirection")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_icu_Unicode_charDirection")
private external fun charDirection(codePoint: Int): Int
......@@ -3,6 +3,7 @@ package org.jetbrains.skia.paragraph
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.*
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.*
class FontCollection internal constructor(ptr: NativePointer) : RefCnt(ptr) {
......@@ -142,37 +143,49 @@ class FontCollection internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nMake")
private external fun _nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nGetFontManagersCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nGetFontManagersCount")
private external fun _nGetFontManagersCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nSetAssetFontManager")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nSetAssetFontManager")
private external fun _nSetAssetFontManager(ptr: NativePointer, fontManagerPtr: NativePointer, defaultFamilyNameStr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nSetDynamicFontManager")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nSetDynamicFontManager")
private external fun _nSetDynamicFontManager(ptr: NativePointer, fontManagerPtr: NativePointer, defaultFamilyNameStr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nSetTestFontManager")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nSetTestFontManager")
private external fun _nSetTestFontManager(ptr: NativePointer, fontManagerPtr: NativePointer, defaultFamilyNameStr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nSetDefaultFontManager")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nSetDefaultFontManager")
private external fun _nSetDefaultFontManager(ptr: NativePointer, fontManagerPtr: NativePointer, defaultFamilyName: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nGetFallbackManager")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nGetFallbackManager")
private external fun _nGetFallbackManager(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces")
private external fun _nFindTypefaces(ptr: NativePointer, familyNames: InteropPointer, len: Int, fontStyle: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar")
private external fun _nDefaultFallbackChar(ptr: NativePointer, unicode: Int, fontStyle: Int, locale: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallback")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallback")
private external fun _nDefaultFallback(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nSetEnableFallback")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nSetEnableFallback")
private external fun _nSetEnableFallback(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_FontCollection__1nGetParagraphCache")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_FontCollection__1nGetParagraphCache")
private external fun _nGetParagraphCache(ptr: NativePointer): NativePointer
package org.jetbrains.skia.paragraph
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.*
class LineMetrics(
......@@ -167,8 +168,11 @@ class LineMetrics(
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_LineMetrics__1nGetArraySize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_LineMetrics__1nGetArraySize")
private external fun LineMetrics_nGetArraySize(array: InteropPointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_LineMetrics__1nDisposeArray")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_LineMetrics__1nDisposeArray")
private external fun LineMetrics_nDisposeArray(array: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_LineMetrics__1nGetArrayElement")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_LineMetrics__1nGetArrayElement")
private external fun LineMetrics_nGetArrayElement(array: InteropPointer, index: Int, longArgs: InteropPointer, doubleArgs: InteropPointer)
......@@ -294,39 +294,51 @@ class Paragraph internal constructor(ptr: NativePointer, text: ManagedString?) :
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetFinalizer")
private external fun Paragraph_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetMaxWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetMaxWidth")
private external fun _nGetMaxWidth(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetHeight")
private external fun _nGetHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetMinIntrinsicWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetMinIntrinsicWidth")
private external fun _nGetMinIntrinsicWidth(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetMaxIntrinsicWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetMaxIntrinsicWidth")
private external fun _nGetMaxIntrinsicWidth(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetAlphabeticBaseline")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetAlphabeticBaseline")
private external fun _nGetAlphabeticBaseline(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetIdeographicBaseline")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetIdeographicBaseline")
private external fun _nGetIdeographicBaseline(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetLongestLine")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetLongestLine")
private external fun _nGetLongestLine(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nDidExceedMaxLines")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nDidExceedMaxLines")
private external fun _nDidExceedMaxLines(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nLayout")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nLayout")
private external fun _nLayout(ptr: NativePointer, width: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nPaint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nPaint")
private external fun _nPaint(ptr: NativePointer, canvasPtr: NativePointer, x: Float, y: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetRectsForRange")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetRectsForRange")
private external fun _nGetRectsForRange(
ptr: NativePointer,
start: Int,
......@@ -337,34 +349,45 @@ private external fun _nGetRectsForRange(
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetRectsForPlaceholders")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetRectsForPlaceholders")
private external fun _nGetRectsForPlaceholders(ptr: NativePointer): InteropPointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetGlyphPositionAtCoordinate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetGlyphPositionAtCoordinate")
private external fun _nGetGlyphPositionAtCoordinate(ptr: NativePointer, dx: Float, dy: Float): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetWordBoundary")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetWordBoundary")
private external fun _nGetWordBoundary(ptr: NativePointer, offset: Int, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetLineMetrics")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetLineMetrics")
private external fun _nGetLineMetrics(ptr: NativePointer, textPtr: NativePointer): InteropPointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetLineNumber")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetLineNumber")
private external fun _nGetLineNumber(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nMarkDirty")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nMarkDirty")
private external fun _nMarkDirty(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nGetUnresolvedGlyphsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nGetUnresolvedGlyphsCount")
private external fun _nGetUnresolvedGlyphsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nUpdateAlignment")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nUpdateAlignment")
private external fun _nUpdateAlignment(ptr: NativePointer, Align: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nUpdateFontSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nUpdateFontSize")
private external fun _nUpdateFontSize(ptr: NativePointer, from: Int, to: Int, size: Float, textPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nUpdateForegroundPaint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nUpdateForegroundPaint")
private external fun _nUpdateForegroundPaint(ptr: NativePointer, from: Int, to: Int, paintPtr: NativePointer, textPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_Paragraph__1nUpdateBackgroundPaint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_Paragraph__1nUpdateBackgroundPaint")
private external fun _nUpdateBackgroundPaint(ptr: NativePointer, from: Int, to: Int, paintPtr: NativePointer, textPtr: NativePointer)
......@@ -3,6 +3,7 @@ package org.jetbrains.skia.paragraph
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.ManagedString
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.*
class ParagraphBuilder(style: ParagraphStyle?, fc: FontCollection?) :
......@@ -90,21 +91,27 @@ private fun makeParagraphBuilder(
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nGetFinalizer")
private external fun ParagraphBuilder_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nMake")
private external fun _nMake(paragraphStylePtr: NativePointer, fontCollectionPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nPushStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nPushStyle")
private external fun _nPushStyle(ptr: NativePointer, textStylePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nPopStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nPopStyle")
private external fun _nPopStyle(ptr: NativePointer, textStylePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddText")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddText")
private external fun _nAddText(ptr: NativePointer, text: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddPlaceholder")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddPlaceholder")
private external fun _nAddPlaceholder(
ptr: NativePointer,
width: Float,
......@@ -115,4 +122,5 @@ private external fun _nAddPlaceholder(
)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphBuilder__1nBuild")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphBuilder__1nBuild")
private external fun _nBuild(ptr: NativePointer): NativePointer
......@@ -5,6 +5,7 @@ import org.jetbrains.skia.impl.Native
import org.jetbrains.skia.impl.Stats
import org.jetbrains.skia.impl.reachabilityBarrier
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.NativePointer
import org.jetbrains.skia.impl.getPtr
......@@ -101,22 +102,29 @@ class ParagraphCache internal constructor(owner: FontCollection, ptr: NativePoin
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nAbandon")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nAbandon")
private external fun _nAbandon(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nReset")
private external fun _nReset(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nUpdateParagraph")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nUpdateParagraph")
private external fun _nUpdateParagraph(ptr: NativePointer, paragraphPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nFindParagraph")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nFindParagraph")
private external fun _nFindParagraph(ptr: NativePointer, paragraphPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nPrintStatistics")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nPrintStatistics")
private external fun _nPrintStatistics(ptr: NativePointer, paragraphPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nSetEnabled")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nSetEnabled")
private external fun _nSetEnabled(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphCache__1nGetCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphCache__1nGetCount")
private external fun _nGetCount(ptr: NativePointer): Int
......@@ -2,6 +2,7 @@ package org.jetbrains.skia.paragraph
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.FontEdging
import org.jetbrains.skia.FontHinting
import org.jetbrains.skia.impl.*
......@@ -218,85 +219,113 @@ class ParagraphStyle : Managed(ParagraphStyle_nMake(), _FinalizerHolder.PTR) {
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetFinalizer")
private external fun ParagraphStyle_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nMake")
private external fun ParagraphStyle_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHeight")
private external fun ParagraphStyle_nGetHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nEquals")
private external fun _nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetStrutStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetStrutStyle")
private external fun _nGetStrutStyle(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetStrutStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetStrutStyle")
private external fun _nSetStrutStyle(ptr: NativePointer, stylePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTextStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTextStyle")
private external fun _nGetTextStyle(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetTextStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetTextStyle")
private external fun _nSetTextStyle(ptr: NativePointer, textStylePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetDirection")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetDirection")
private external fun _nGetDirection(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetDirection")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetDirection")
private external fun _nSetDirection(ptr: NativePointer, direction: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetAlignment")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetAlignment")
private external fun _nGetAlignment(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetAlignment")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetAlignment")
private external fun _nSetAlignment(ptr: NativePointer, align: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetMaxLinesCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetMaxLinesCount")
private external fun _nGetMaxLinesCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetMaxLinesCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetMaxLinesCount")
private external fun _nSetMaxLinesCount(ptr: NativePointer, maxLines: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEllipsis")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEllipsis")
private external fun _nGetEllipsis(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetEllipsis")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetEllipsis")
private external fun _nSetEllipsis(ptr: NativePointer, ellipsis: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetHeight")
private external fun _nSetHeight(ptr: NativePointer, height: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHeightMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHeightMode")
private external fun _nGetHeightMode(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetHeightMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetHeightMode")
private external fun _nSetHeightMode(ptr: NativePointer, v: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEffectiveAlignment")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEffectiveAlignment")
private external fun _nGetEffectiveAlignment(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nIsHintingEnabled")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nIsHintingEnabled")
private external fun _nIsHintingEnabled(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nDisableHinting")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nDisableHinting")
private external fun _nDisableHinting(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetFontRastrSettings")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetFontRastrSettings")
private external fun _nSetFontRastrSettings(ptr: NativePointer, edging: Int, hinting: Int, subpixel: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEdging")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEdging")
private external fun _nGetEdging(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHinting")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHinting")
private external fun _nGetHinting(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetSubpixel")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetSubpixel")
private external fun _nGetSubpixel(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nSetTextIndent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nSetTextIndent")
private external fun _nSetTextIndent(ptr: NativePointer, firstLine: Float, restLine: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTextIndent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTextIndent")
private external fun _nGetTextIndent(ptr: NativePointer, result: InteropPointer)
\ No newline at end of file
......@@ -7,6 +7,7 @@ import org.jetbrains.skia.impl.Native
import org.jetbrains.skia.impl.Stats
import org.jetbrains.skia.impl.reachabilityBarrier
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.InteropPointer
import org.jetbrains.skia.impl.NativePointer
import org.jetbrains.skia.impl.getPtr
......@@ -199,64 +200,85 @@ class StrutStyle internal constructor(ptr: NativePointer) : Managed(ptr, _Finali
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nGetFinalizer")
private external fun StrutStyle_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nMake")
private external fun StrutStyle_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nEquals")
private external fun StrutStyle_nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nGetHeight")
private external fun StrutStyle_nGetHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetHeight")
private external fun StrutStyle_nSetHeight(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetEnabled")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetEnabled")
private external fun StrutStyle_nSetEnabled(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nGetFontFamilies")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nGetFontFamilies")
private external fun _nGetFontFamilies(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetFontFamilies")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetFontFamilies")
private external fun StrutStyle_nSetFontFamilies(ptr: NativePointer, families: InteropPointer, familiesCount: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nGetFontStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nGetFontStyle")
private external fun _nGetFontStyle(ptr: NativePointer, fontStyleData: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetFontStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetFontStyle")
private external fun _nSetFontStyle(ptr: NativePointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nGetFontSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nGetFontSize")
private external fun _nGetFontSize(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetFontSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetFontSize")
private external fun _nSetFontSize(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nGetLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nGetLeading")
private external fun _nGetLeading(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetLeading")
private external fun _nSetLeading(ptr: NativePointer, value: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nIsEnabled")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nIsEnabled")
private external fun _nIsEnabled(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nIsHeightForced")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nIsHeightForced")
private external fun _nIsHeightForced(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetHeightForced")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetHeightForced")
private external fun _nSetHeightForced(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nIsHeightOverridden")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nIsHeightOverridden")
private external fun _nIsHeightOverridden(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetHeightOverridden")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetHeightOverridden")
private external fun _nSetHeightOverridden(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nIsHalfLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nIsHalfLeading")
private external fun _nIsHalfLeading(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_StrutStyle__1nSetHalfLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_StrutStyle__1nSetHalfLeading")
private external fun _nSetHalfLeading(ptr: NativePointer, value: Boolean)
package org.jetbrains.skia.paragraph
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.Rect
import org.jetbrains.skia.impl.ArrayInteropDecoder
import org.jetbrains.skia.impl.InteropPointer
......@@ -59,8 +60,11 @@ class TextBox(val rect: Rect, direction: Direction) {
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextBox__1nGetArraySize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextBox__1nGetArraySize")
private external fun TextBox_nGetArraySize(array: InteropPointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextBox__1nDisposeArray")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextBox__1nDisposeArray")
private external fun TextBox_nDisposeArray(array: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextBox__1nGetArrayElement")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextBox__1nGetArrayElement")
private external fun TextBox_nGetArrayElement(array: InteropPointer, index: Int, rectArray: InteropPointer, directionArray: InteropPointer)
......@@ -439,72 +439,95 @@ class TextStyle internal constructor(ptr: NativePointer) : Managed(ptr, _Finaliz
}
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFinalizer")
private external fun TextStyle_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nMake")
private external fun TextStyle_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nEquals")
private external fun TextStyle_nEquals(ptr: NativePointer, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFontStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFontStyle")
private external fun TextStyle_nGetFontStyle(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetFontStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetFontStyle")
private external fun TextStyle_nSetFontStyle(ptr: NativePointer, fontStyle: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFontSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFontSize")
private external fun TextStyle_nGetFontSize(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetFontSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetFontSize")
private external fun TextStyle_nSetFontSize(ptr: NativePointer, size: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFontFamilies")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFontFamilies")
private external fun TextStyle_nGetFontFamilies(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetHeight")
private external fun TextStyle_nGetHeight(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetHeight")
private external fun TextStyle_nSetHeight(ptr: NativePointer, override: Boolean, height: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetHalfLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetHalfLeading")
private external fun TextStyle_nGetHalfLeading(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetHalfLeading")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetHalfLeading")
private external fun TextStyle_nSetHalfLeading(ptr: NativePointer, value: Boolean)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetBaselineShift")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetBaselineShift")
private external fun TextStyle_nGetBaselineShift(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetBaselineShift")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetBaselineShift")
private external fun TextStyle_nSetBaselineShift(ptr: NativePointer, baselineShift: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nAttributeEquals")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nAttributeEquals")
private external fun _nAttributeEquals(ptr: NativePointer, attribute: Int, otherPtr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetColor")
private external fun _nGetColor(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetColor")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetColor")
private external fun _nSetColor(ptr: NativePointer, color: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetForeground")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetForeground")
private external fun _nGetForeground(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetForeground")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetForeground")
private external fun _nSetForeground(ptr: NativePointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetBackground")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetBackground")
private external fun _nGetBackground(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetBackground")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetBackground")
private external fun _nSetBackground(ptr: NativePointer, paintPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetDecorationStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetDecorationStyle")
private external fun _nGetDecorationStyle(ptr: NativePointer, decorationStyle: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetDecorationStyle")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetDecorationStyle")
private external fun _nSetDecorationStyle(
ptr: NativePointer,
underline: Boolean,
......@@ -517,67 +540,89 @@ private external fun _nSetDecorationStyle(
)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetShadowsCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetShadowsCount")
private external fun _nGetShadowsCount(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetShadows")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetShadows")
private external fun _nGetShadows(ptr: NativePointer, res: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nAddShadow")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nAddShadow")
private external fun _nAddShadow(ptr: NativePointer, color: Int, offsetX: Float, offsetY: Float, blurSigma: Double)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nClearShadows")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nClearShadows")
private external fun _nClearShadows(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFontFeatures")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFontFeatures")
private external fun _nGetFontFeatures(ptr: NativePointer, resultIntsArray: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFontFeaturesSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFontFeaturesSize")
private external fun _nGetFontFeaturesSize(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nAddFontFeature")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nAddFontFeature")
private external fun _nAddFontFeature(ptr: NativePointer, name: InteropPointer, value: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nClearFontFeatures")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nClearFontFeatures")
private external fun _nClearFontFeatures(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetFontFamilies")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetFontFamilies")
private external fun _nSetFontFamilies(ptr: NativePointer, families: InteropPointer, familiesSize: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetLetterSpacing")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetLetterSpacing")
private external fun _nGetLetterSpacing(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetLetterSpacing")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetLetterSpacing")
private external fun _nSetLetterSpacing(ptr: NativePointer, letterSpacing: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetWordSpacing")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetWordSpacing")
private external fun _nGetWordSpacing(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetWordSpacing")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetWordSpacing")
private external fun _nSetWordSpacing(ptr: NativePointer, wordSpacing: Float)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetTypeface")
private external fun _nGetTypeface(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetTypeface")
private external fun _nSetTypeface(ptr: NativePointer, typefacePtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetLocale")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetLocale")
private external fun _nGetLocale(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetLocale")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetLocale")
private external fun _nSetLocale(ptr: NativePointer, locale: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetBaselineMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetBaselineMode")
private external fun _nGetBaselineMode(ptr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetBaselineMode")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetBaselineMode")
private external fun _nSetBaselineMode(ptr: NativePointer, mode: Int)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nGetFontMetrics")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nGetFontMetrics")
private external fun _nGetFontMetrics(ptr: NativePointer, fontMetrics: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nIsPlaceholder")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nIsPlaceholder")
private external fun _nIsPlaceholder(ptr: NativePointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_paragraph_TextStyle__1nSetPlaceholder")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TextStyle__1nSetPlaceholder")
private external fun _nSetPlaceholder(ptr: NativePointer)
package org.jetbrains.skia.paragraph
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.Typeface
import org.jetbrains.skia.FontMgr
......@@ -42,7 +43,9 @@ class TypefaceFontProvider : FontMgr(TypefaceFontProvider_nMake()) {
@ExternalSymbolName("org_jetbrains_skia_paragraph_TypefaceFontProvider__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TypefaceFontProvider__1nMake")
private external fun TypefaceFontProvider_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_paragraph_TypefaceFontProvider__1nRegisterTypeface")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_paragraph_TypefaceFontProvider__1nRegisterTypeface")
private external fun _nRegisterTypeface(ptr: NativePointer, typefacePtr: NativePointer, alias: InteropPointer)
......@@ -2,6 +2,7 @@
package org.jetbrains.skia.shaper
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.Font
import org.jetbrains.skia.FontMgr
import org.jetbrains.skia.ManagedString
......@@ -57,7 +58,9 @@ class FontMgrRunIterator(text: ManagedString, manageText: Boolean, font: Font, o
}
@ExternalSymbolName("org_jetbrains_skia_shaper_FontMgrRunIterator__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_FontMgrRunIterator__1nMake")
private external fun _nMake(textPtr: NativePointer, fontPtr: NativePointer, fontMgrPtr: NativePointer, optsBooleanProps: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_FontMgrRunIterator__1nGetCurrentFont")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_FontMgrRunIterator__1nGetCurrentFont")
private external fun _nGetCurrentFont(ptr: NativePointer): NativePointer
......@@ -2,6 +2,7 @@
package org.jetbrains.skia.shaper
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.ManagedString
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.impl.NativePointer
......@@ -44,7 +45,9 @@ private fun makeHbIcuScriptRunIterator(text: ManagedString): NativePointer {
}
@ExternalSymbolName("org_jetbrains_skia_shaper_HbIcuScriptRunIterator__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_HbIcuScriptRunIterator__1nMake")
private external fun _nMake(textPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_HbIcuScriptRunIterator__1nGetCurrentScriptTag")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_HbIcuScriptRunIterator__1nGetCurrentScriptTag")
private external fun _nGetCurrentScriptTag(ptr: NativePointer): Int
......@@ -2,6 +2,7 @@
package org.jetbrains.skia.shaper
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.ManagedString
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.impl.NativePointer
......@@ -45,7 +46,9 @@ class IcuBidiRunIterator(text: ManagedString, manageText: Boolean, bidiLevel: In
}
@ExternalSymbolName("org_jetbrains_skia_shaper_IcuBidiRunIterator__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_IcuBidiRunIterator__1nMake")
private external fun _nMake(textPtr: NativePointer, bidiLevel: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_IcuBidiRunIterator__1nGetCurrentLevel")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_IcuBidiRunIterator__1nGetCurrentLevel")
private external fun _nGetCurrentLevel(ptr: NativePointer): Int
......@@ -2,6 +2,7 @@
package org.jetbrains.skia.shaper
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.ManagedString
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.impl.Managed
......@@ -54,13 +55,17 @@ abstract class ManagedRunIterator<T> internal constructor(
@ExternalSymbolName("org_jetbrains_skia_shaper_ManagedRunIterator__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_ManagedRunIterator__1nGetFinalizer")
private external fun _nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_ManagedRunIterator__1nConsume")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_ManagedRunIterator__1nConsume")
internal external fun _nConsume(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_shaper_ManagedRunIterator__1nGetEndOfCurrentRun")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_ManagedRunIterator__1nGetEndOfCurrentRun")
private external fun _nGetEndOfCurrentRun(ptr: NativePointer, textPtr: NativePointer): Int
@ExternalSymbolName("org_jetbrains_skia_shaper_ManagedRunIterator__1nIsAtEnd")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_ManagedRunIterator__1nIsAtEnd")
private external fun _nIsAtEnd(ptr: NativePointer): Boolean
......@@ -236,27 +236,35 @@ internal expect fun Shaper.doShape(
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nGetFinalizer")
private external fun Shaper_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nMake")
private external fun Shaper_nMake(fontMgrPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nMakePrimitive")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nMakePrimitive")
private external fun _nMakePrimitive(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nMakeShaperDrivenWrapper")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nMakeShaperDrivenWrapper")
private external fun _nMakeShaperDrivenWrapper(fontMgrPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nMakeShapeThenWrap")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nMakeShapeThenWrap")
private external fun _nMakeShapeThenWrap(fontMgrPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nMakeShapeDontWrapOrReorder")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nMakeShapeDontWrapOrReorder")
private external fun _nMakeShapeDontWrapOrReorder(fontMgrPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nMakeCoreText")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nMakeCoreText")
private external fun _nMakeCoreText(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nShapeBlob")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nShapeBlob")
private external fun _nShapeBlob(
ptr: NativePointer,
text: NativePointer,
......@@ -271,6 +279,7 @@ private external fun _nShapeBlob(
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nShapeLine")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nShapeLine")
private external fun _nShapeLine(
ptr: NativePointer,
text: NativePointer,
......@@ -281,6 +290,7 @@ private external fun _nShapeLine(
): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper__1nShape")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper__1nShape")
internal external fun Shaper_nShape(
ptr: NativePointer,
textPtr: NativePointer,
......@@ -297,12 +307,15 @@ internal external fun Shaper_nShape(
// Native/JS only
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunIterator_1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunIterator_1nGetFinalizer")
internal external fun RunIterator_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunIterator_1nCreateRunIterator")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunIterator_1nCreateRunIterator")
internal external fun RunIterator_nCreateRunIterator(type: Int, textPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunIterator_1nInitRunIterator")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunIterator_1nInitRunIterator")
internal external fun RunIterator_nInitRunIterator(
ptr: NativePointer,
type: Int,
......@@ -313,12 +326,15 @@ internal external fun RunIterator_nInitRunIterator(
)
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nCreate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nCreate")
internal external fun RunHandler_nCreate(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetFinalizer")
internal external fun RunHandler_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nInit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nInit")
internal external fun RunHandler_nInit(
ptr: NativePointer,
onBeginLine: InteropPointer,
......@@ -330,16 +346,21 @@ internal external fun RunHandler_nInit(
)
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetGlyphs")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetGlyphs")
internal external fun RunHandler_nGetGlyphs(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetClusters")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetClusters")
internal external fun RunHandler_nGetClusters(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetPositions")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetPositions")
internal external fun RunHandler_nGetPositions(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nSetOffset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nSetOffset")
internal external fun RunHandler_nSetOffset(ptr: NativePointer, x: Float, y: Float)
@ExternalSymbolName("org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetRunInfo")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetRunInfo")
internal external fun RunHandler_nGetRunInfo(ptr: NativePointer, result: InteropPointer): NativePointer
......@@ -7,6 +7,7 @@ import org.jetbrains.skia.impl.Managed
import org.jetbrains.skia.impl.Stats
import org.jetbrains.skia.impl.reachabilityBarrier
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.NativePointer
import org.jetbrains.skia.impl.getPtr
......@@ -80,10 +81,13 @@ class TextBlobBuilderRunHandler<T> internal constructor(
}
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilderRunHandler__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilderRunHandler__1nGetFinalizer")
private external fun TextBlobBuilderRunHandler_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilderRunHandler__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilderRunHandler__1nMake")
private external fun TextBlobBuilderRunHandler_nMake(textPtr: NativePointer, offsetX: Float, offsetY: Float): NativePointer
@ExternalSymbolName("org_jetbrains_skia_TextBlobBuilderRunHandler__1nMakeBlob")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_TextBlobBuilderRunHandler__1nMakeBlob")
private external fun _nMakeBlob(ptr: NativePointer): NativePointer
......@@ -5,6 +5,7 @@ import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.sksg.InvalidationController
import org.jetbrains.skia.*
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.*
class Animation internal constructor(ptr: NativePointer) : Managed(ptr, _FinalizerHolder.PTR) {
......@@ -281,18 +282,23 @@ class Animation internal constructor(ptr: NativePointer) : Managed(ptr, _Finaliz
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetFinalizer")
private external fun _nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nMakeFromString")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nMakeFromString")
private external fun _nMakeFromString(data: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nMakeFromFile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nMakeFromFile")
internal external fun _nMakeFromFile(path: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nMakeFromData")
private external fun _nMakeFromData(dataPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nRender")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nRender")
private external fun _nRender(
ptr: NativePointer,
canvasPtr: NativePointer,
......@@ -305,28 +311,37 @@ private external fun _nRender(
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nSeek")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nSeek")
private external fun _nSeek(ptr: NativePointer, t: Float, icPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nSeekFrame")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nSeekFrame")
private external fun _nSeekFrame(ptr: NativePointer, t: Float, icPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nSeekFrameTime")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nSeekFrameTime")
private external fun _nSeekFrameTime(ptr: NativePointer, t: Float, icPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetDuration")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetDuration")
private external fun _nGetDuration(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetFPS")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetFPS")
private external fun _nGetFPS(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetInPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetInPoint")
private external fun _nGetInPoint(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetOutPoint")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetOutPoint")
private external fun _nGetOutPoint(ptr: NativePointer): Float
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetVersion")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetVersion")
private external fun _nGetVersion(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Animation__1nGetSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Animation__1nGetSize")
private external fun _nGetSize(ptr: NativePointer, dst: InteropPointer)
......@@ -3,6 +3,7 @@ package org.jetbrains.skia.skottie
import org.jetbrains.skia.Data
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.FontMgr
import org.jetbrains.skia.impl.*
import org.jetbrains.skia.impl.Library.Companion.staticLoad
......@@ -85,22 +86,29 @@ class AnimationBuilder internal constructor(ptr: NativePointer) : Managed(ptr, _
}
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nGetFinalizer")
private external fun AnimationBuilder_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nMake")
private external fun AnimationBuilder_nMake(flags: Int): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nSetFontManager")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nSetFontManager")
private external fun _nSetFontManager(ptr: NativePointer, fontMgrPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nSetLogger")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nSetLogger")
private external fun _nSetLogger(ptr: NativePointer, loggerPtr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromString")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromString")
private external fun _nBuildFromString(ptr: NativePointer, data: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromFile")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromFile")
internal external fun _nBuildFromFile(ptr: NativePointer, path: InteropPointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromData")
private external fun _nBuildFromData(ptr: NativePointer, dataPtr: NativePointer): NativePointer
......@@ -2,6 +2,7 @@
package org.jetbrains.skia.skottie
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.InteropPointer
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.impl.NativePointer
......@@ -32,18 +33,23 @@ abstract class Logger : RefCnt(_nMake()) {
internal expect fun Logger.doInit(ptr: NativePointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_Logger__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Logger__1nMake")
private external fun _nMake(): NativePointer
// Native/JS only
@ExternalSymbolName("org_jetbrains_skia_skottie_Logger__1nInit")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Logger__1nInit")
internal external fun Logger_nInit(ptr: NativePointer, onLog: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_skottie_Logger__1nGetLogMessage")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Logger__1nGetLogMessage")
internal external fun Logger_nGetLogMessage(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Logger__1nGetLogJson")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Logger__1nGetLogJson")
internal external fun Logger_nGetLogJson(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_skottie_Logger__1nGetLogLevel")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_skottie_Logger__1nGetLogLevel")
internal external fun Logger_nGetLogLevel(ptr: NativePointer): Int
......@@ -3,7 +3,6 @@ package org.jetbrains.skia.sksg
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.*
import org.jetbrains.skia.impl.*
import kotlin.jvm.JvmStatic
/**
*
......@@ -57,12 +56,17 @@ class InvalidationController internal constructor(ptr: NativePointer) : Managed(
}
@ExternalSymbolName("org_jetbrains_skia_sksg_InvalidationController_nGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_sksg_InvalidationController_nGetFinalizer")
private external fun InvalidationController_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_sksg_InvalidationController_nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_sksg_InvalidationController_nMake")
private external fun InvalidationController_nMake(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_sksg_InvalidationController_nInvalidate")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_sksg_InvalidationController_nInvalidate")
private external fun InvalidationController_nInvalidate(ptr: NativePointer, left: Float, top: Float, right: Float, bottom: Float, matrix: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_sksg_InvalidationController_nGetBounds")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_sksg_InvalidationController_nGetBounds")
private external fun InvalidationController_nGetBounds(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_sksg_InvalidationController_nReset")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_sksg_InvalidationController_nReset")
private external fun InvalidationController_nReset(ptr: NativePointer)
......@@ -4,6 +4,7 @@ import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.*
import org.jetbrains.skia.impl.Stats
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.NativePointer
import org.jetbrains.skia.impl.getPtr
import org.jetbrains.skia.impl.reachabilityBarrier
......@@ -62,5 +63,6 @@ object SVGCanvas {
}
@ExternalSymbolName("org_jetbrains_skia_svg_SVGCanvasKt__1nMake")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGCanvasKt__1nMake")
private external fun _nMake(left: Float, top: Float, right: Float, bottom: Float, wstreamPtr: NativePointer, flags: Int): NativePointer
......@@ -3,6 +3,7 @@ package org.jetbrains.skia.svg
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.*
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.*
private fun makeSVGDOM(data: Data): NativePointer {
......@@ -67,16 +68,21 @@ class SVGDOM internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_svg_SVGDOM__1nMakeFromData")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGDOM__1nMakeFromData")
private external fun SVGDOM_nMakeFromData(dataPtr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_svg_SVGDOM__1nGetRoot")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGDOM__1nGetRoot")
private external fun SVGDOM_nGetRoot(ptr: NativePointer): NativePointer
@ExternalSymbolName("org_jetbrains_skia_svg_SVGDOM__1nGetContainerSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGDOM__1nGetContainerSize")
private external fun SVGDOM_nGetContainerSize(ptr: NativePointer, dst: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGDOM__1nSetContainerSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGDOM__1nSetContainerSize")
private external fun SVGDOM_nSetContainerSize(ptr: NativePointer, width: Float, height: Float)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGDOM__1nRender")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGDOM__1nRender")
private external fun SVGDOM_nRender(ptr: NativePointer, canvasPtr: NativePointer)
......@@ -5,6 +5,7 @@ import org.jetbrains.skia.impl.RefCnt
import org.jetbrains.skia.impl.Stats
import org.jetbrains.skia.impl.reachabilityBarrier
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.NativePointer
abstract class SVGNode internal constructor(ptr: NativePointer) : RefCnt(ptr) {
......@@ -24,4 +25,5 @@ abstract class SVGNode internal constructor(ptr: NativePointer) : RefCnt(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_svg_SVGNode__1nGetTag")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGNode__1nGetTag")
private external fun SVGNode_nGetTag(ptr: NativePointer): Int
......@@ -3,6 +3,7 @@ package org.jetbrains.skia.svg
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.*
import org.jetbrains.skia.ExternalSymbolName
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.impl.*
class SVGSVG internal constructor(ptr: NativePointer) : SVGContainer(ptr) {
......@@ -115,40 +116,53 @@ class SVGSVG internal constructor(ptr: NativePointer) : SVGContainer(ptr) {
}
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetX")
private external fun SVGSVG_nGetX(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetY")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetY")
private external fun SVGSVG_nGetY(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetWidth")
private external fun SVGSVG_nGetWidth(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetHeight")
private external fun SVGSVG_nGetHeight(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetPreserveAspectRatio")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetPreserveAspectRatio")
private external fun SVGSVG_nGetPreserveAspectRatio(ptr: NativePointer, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetViewBox")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetViewBox")
private external fun SVGSVG_nGetViewBox(ptr: NativePointer, result: InteropPointer): Boolean
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nGetIntrinsicSize")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nGetIntrinsicSize")
private external fun SVGSVG_nGetIntrinsicSize(ptr: NativePointer, width: Float, height: Float, dpi: Float, result: InteropPointer)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nSetX")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nSetX")
private external fun SVGSVG_nSetX(ptr: NativePointer, value: Float, unit: Int)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nSetY")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nSetY")
private external fun SVGSVG_nSetY(ptr: NativePointer, value: Float, unit: Int)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nSetWidth")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nSetWidth")
private external fun SVGSVG_nSetWidth(ptr: NativePointer, value: Float, unit: Int)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nSetHeight")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nSetHeight")
private external fun SVGSVG_nSetHeight(ptr: NativePointer, value: Float, unit: Int)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nSetPreserveAspectRatio")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nSetPreserveAspectRatio")
private external fun SVGSVG_nSetPreserveAspectRatio(ptr: NativePointer, align: Int, scale: Int)
@ExternalSymbolName("org_jetbrains_skia_svg_SVGSVG__1nSetViewBox")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_svg_SVGSVG__1nSetViewBox")
private external fun SVGSVG_nSetViewBox(ptr: NativePointer, l: Float, t: Float, r: Float, b: Float)
......@@ -13,6 +13,7 @@ class BreakIteratorTests {
@Test
@SkipJsTarget
@SkipWasmTarget
fun breakIteratorWordInstanceTest() {
// Wasm and iOS builds of Skia do not include required data to implement those iterators,
// see `third_party/externals/icu/flutter/README.md`.
......@@ -34,6 +35,7 @@ class BreakIteratorTests {
@Test
@SkipJsTarget
@SkipWasmTarget
fun breakIteratorCloneTest() {
// Wasm and iOS builds of Skia do not include required data to implement those iterators,
// see `third_party/externals/icu/flutter/README.md`.
......@@ -71,6 +73,7 @@ class BreakIteratorTests {
@Test
@SkipJsTarget
@SkipWasmTarget
fun breakIteratorSentenceInstanceTest() {
// Wasm and iOS builds of Skia do not include required data to implement those iterators,
// see `third_party/externals/icu/flutter/README.md`.
......
......@@ -3,10 +3,7 @@ package org.jetbrains.skia
import org.jetbrains.skia.impl.use
import org.jetbrains.skia.paragraph.TypefaceFontProvider
import org.jetbrains.skia.tests.makeFromResource
import org.jetbrains.skiko.tests.SkipJsTarget
import org.jetbrains.skiko.tests.SkipNativeTarget
import org.jetbrains.skiko.tests.makeFromFileName
import org.jetbrains.skiko.tests.runTest
import org.jetbrains.skiko.tests.*
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertNull
......@@ -95,6 +92,7 @@ class FontMgrTest {
@Test
@SkipJsTarget
@SkipWasmTarget
@SkipNativeTarget
fun makeFromDataTest() {
makeFromFileName("src/commonTest/resources/fonts/JetBrainsMono-Italic.ttf").use { data ->
......
......@@ -7,6 +7,7 @@ import org.jetbrains.skia.tests.assertContentCloseEnough
import org.jetbrains.skia.tests.makeFromResource
import org.jetbrains.skiko.tests.SkipJsTarget
import org.jetbrains.skiko.tests.SkipNativeTarget
import org.jetbrains.skiko.tests.SkipWasmTarget
import org.jetbrains.skiko.tests.runTest
import kotlin.test.Test
import kotlin.test.assertContentEquals
......@@ -30,6 +31,7 @@ class ParagraphTest {
@Test
@SkipJsTarget
@SkipWasmTarget
@SkipNativeTarget
fun findTypefaces() = runTest {
fontCollection().findTypefaces(emptyArray(), FontStyle.NORMAL)
......@@ -48,6 +50,7 @@ class ParagraphTest {
@Test
@SkipJsTarget
@SkipWasmTarget
@SkipNativeTarget
fun layoutParagraph() = runTest {
singleLineMetrics("aa").let { lineMetrics -> // latin
......
......@@ -80,46 +80,57 @@ class TestHelpers {
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nFillByteArrayOf5")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nFillByteArrayOf5")
private external fun _nFillByteArrayOf5(interopPointer: InteropPointer)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nFillFloatArrayOf5")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nFillFloatArrayOf5")
private external fun _nFillFloatArrayOf5(interopPointer: InteropPointer)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nFillShortArrayOf5")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nFillShortArrayOf5")
private external fun _nFillShortArrayOf5(interopPointer: InteropPointer)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nFillIntArrayOf5")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nFillIntArrayOf5")
private external fun _nFillIntArrayOf5(interopPointer: InteropPointer)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nFillDoubleArrayOf5")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nFillDoubleArrayOf5")
private external fun _nFillDoubleArrayOf5(interopPointer: InteropPointer)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nWriteArraysOfInts")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nWriteArraysOfInts")
private external fun _nWriteArraysOfInts(interopPointer: InteropPointer): NativePointer
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__nStringByIndex")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__nStringByIndex")
private external fun _nStringByIndex(index: Int): NativePointer
internal fun nativeStringByIndex(index: Int): NativePointer = _nStringByIndex(index)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nCreateTestGlContext")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nCreateTestGlContext")
private external fun TestGlContext_nCreate(): NativePointer
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nGlContextGetFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nGlContextGetFinalizer")
private external fun TestGlContext_nGetFinalizer(): NativePointer
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nMakeGlContextCurrent")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nMakeGlContextCurrent")
private external fun TestGlContext_nMakeCurrent(ptr: NativePointer)
@Suppress("OPTIONAL_DECLARATION_USAGE_IN_NON_COMMON_SOURCE") // See KT-44014
@ExternalSymbolName("org_jetbrains_skiko_tests_TestHelpers__1nGlContextSwapBuffers")
@ModuleImport("./skiko.mjs", "org_jetbrains_skiko_tests_TestHelpers__1nGlContextSwapBuffers")
private external fun TestGlContext_nSwapBuffers(ptr: NativePointer)
......@@ -4,7 +4,7 @@ import org.jetbrains.skia.Data
import org.jetbrains.skia.impl.InteropScope
import org.jetbrains.skia.impl.NativePointer
expect fun runTest(block: suspend () -> Unit)
expect fun <T> runTest(block: suspend () -> Unit): T
internal expect fun InteropScope.allocateBytesForPixels(size: Int): NativePointer
......@@ -12,6 +12,8 @@ expect annotation class SkipNativeTarget
expect annotation class SkipJsTarget
expect annotation class SkipWasmTarget
expect annotation class SkipJvmTarget
expect fun makeFromFileName(path: String?): Data
......
......@@ -9,7 +9,7 @@ import platform.darwin.dispatch_get_main_queue
import platform.darwin.dispatch_queue_t
import platform.posix.QOS_CLASS_BACKGROUND
import kotlin.coroutines.CoroutineContext
import kotlin.native.concurrent.AtomicNativePtr
import kotlin.concurrent.AtomicNativePtr
import kotlin.native.concurrent.freeze
import kotlin.native.internal.NativePtr
......
package org.jetbrains.skiko
actual interface SkikoInput {
/**
* A Boolean value that indicates whether the text-entry object has any text.
* https://developer.apple.com/documentation/uikit/uikeyinput/1614457-hastext
......
......@@ -81,6 +81,7 @@ class SkikoUIView : UIView, UIKeyInputProtocol, UITextInputProtocol {
pointInside: (Point, UIEvent?) -> Boolean = { _, _ -> true }
) : this(skiaLayer, frame, pointInside, skikoUITextInputTrains = object : SkikoUITextInputTraits {})
@OptIn(kotlin.experimental.ExperimentalNativeApi::class)
constructor(
skiaLayer: SkiaLayer,
frame: CValue<CGRect> = CGRectNull.readValue(),
......
package org.jetbrains.skia
import kotlinx.browser.window
actual abstract class OutputStream
internal actual fun <R> commonSynchronized(lock: Any, block: () -> R) {
block()
}
actual fun String.intCodePoints(): IntArray = IntArray(this.length) { this[it].code }
actual class Pattern constructor(regex: String) {
private val _regex = Regex(regex)
actual fun split(input: CharSequence): Array<String> = _regex.split(input).toTypedArray()
actual fun matcher(input: CharSequence): Matcher = Matcher(_regex, input)
}
actual class Matcher constructor(private val regex: Regex, private val input: CharSequence) {
private val matches: Boolean by lazy {
regex.matches(input)
}
private val groups: MatchGroupCollection? by lazy { regex.matchEntire(input)?.groups }
actual fun group(ix: Int): String? = groups?.get(ix)?.value
actual fun matches(): Boolean = matches
}
@Suppress("RedundantNullableReturnType")
val LANG: String by lazy {
val lang: String? = window.navigator.language
if (lang == null || lang.isEmpty()) { "en-US" } else { lang }
}
actual fun defaultLanguageTag(): String = LANG
actual fun compilePattern(regex: String): Pattern = Pattern(regex)
actual typealias ExternalSymbolName = kotlin.js.JsName
@Target(AnnotationTarget.FUNCTION)
actual annotation class ModuleImport(
actual val module: String,
actual val name: String
)
\ No newline at end of file
package org.jetbrains.skia.impl
private class FinalizationThunk(private val finalizer: NativePointer, private var obj: NativePointer) {
fun clean() {
if (obj != 0)
_nInvokeFinalizer(finalizer, obj)
obj = 0
}
}
internal external class FinalizationRegistry(cleanup: (dynamic) -> Unit) {
fun register(obj: dynamic, handle: dynamic)
fun unregister(obj: dynamic)
......@@ -18,43 +10,10 @@ private val registry = FinalizationRegistry {
thunk.clean()
}
private fun register(managed: Managed, thunk: FinalizationThunk) {
internal actual fun register(managed: Managed, thunk: FinalizationThunk) {
registry.register(managed, thunk)
}
private fun unregister(managed: Managed) {
internal actual fun unregister(managed: Managed) {
registry.unregister(managed)
}
actual abstract class Managed actual constructor(ptr: NativePointer, finalizer: NativePointer, managed: Boolean) : Native(ptr) {
private var cleaner: FinalizationThunk? = null
actual open fun close() {
if (NullPointer == _ptr)
throw RuntimeException("Object already closed: ${this::class.simpleName}, _ptr=$_ptr")
else if (null == cleaner)
throw RuntimeException("Object is not managed, can't close(): ${this::class.simpleName}, _ptr=$_ptr")
else {
unregister(this)
cleaner!!.clean()
cleaner = null
_ptr = 0
}
}
actual open val isClosed: Boolean
get() = _ptr == NullPointer
init {
if (managed) {
require(ptr != 0) { "Managed ptr is 0" }
require(finalizer != 0) { "Managed finalizer is 0" }
val thunk = FinalizationThunk(finalizer, ptr)
register(this, thunk)
cleaner = thunk
}
}
}
@JsName("org_jetbrains_skia_impl_Managed__invokeFinalizer")
private external fun _nInvokeFinalizer(finalizer: NativePointer, obj: NativePointer)
\ No newline at end of file
}
\ No newline at end of file
......@@ -2,57 +2,69 @@ package org.jetbrains.skia.impl
import org.khronos.webgl.ArrayBufferView
actual abstract class Native actual constructor(ptr: NativePointer) {
actual var _ptr: NativePointer
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (null == other) return false
if (other !is Native) return false
return if (_ptr == other._ptr) true else nativeEquals(other)
}
internal actual fun toWasm(dest: NativePointer, src: ByteArray): Unit = HEAPU8.set(src, dest)
internal actual fun toWasm(dest: NativePointer, src: ShortArray): Unit = HEAPU16.set(src, dest / 2)
internal actual fun toWasm(dest: NativePointer, src: CharArray): Unit = HEAPU16.set(src, dest / 2)
internal actual fun toWasm(dest: NativePointer, src: FloatArray): Unit = HEAPF32.set(src, dest / 4)
internal actual fun toWasm(dest: NativePointer, src: DoubleArray): Unit = HEAPF64.set(src, dest / 8)
internal actual fun toWasm(dest: NativePointer, src: IntArray): Unit = HEAPU32.set(src, dest / 4)
internal external interface HEAP<T> {
fun set(src: T, dest: NativePointer)
fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
internal external object HEAPU8: HEAP<ByteArray> {
override fun set(src: ByteArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
override fun hashCode(): Int = _ptr
internal external object HEAPU16: HEAP<ShortArray> {
override fun set(src: ShortArray, dest: NativePointer)
fun set(src: CharArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
internal actual open fun nativeEquals(other: Native?): Boolean {
return false
}
internal external object HEAPU32: HEAP<IntArray> {
override fun set(src: IntArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
actual companion object {
actual val NullPointer: NativePointer
get() = 0
}
internal external object HEAPF32: HEAP<FloatArray> {
override fun set(src: FloatArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
actual override fun toString(): String {
return this::class.simpleName + "(_ptr=0x" + _ptr.toString(16) + ")"
}
internal external object HEAPF64: HEAP<DoubleArray> {
override fun set(src: DoubleArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
init {
if (ptr == NullPointer) throw RuntimeException("Can't wrap nullptr")
_ptr = ptr
}
internal actual fun fromWasm(src: NativePointer, result: ByteArray) {
result.asDynamic().set(HEAPU8.subarray(src, src + result.size))
}
internal actual fun reachabilityBarrier(obj: Any?) {}
internal actual fun fromWasm(src: NativePointer, result: ShortArray) {
val startIndex = src / 2
result.asDynamic().set(HEAPU16.subarray(startIndex, startIndex + result.size))
}
actual typealias NativePointer = Int
actual typealias InteropPointer = Int
internal actual fun fromWasm(src: NativePointer, result: IntArray) {
val startIndex = src / 4
result.asDynamic().set(HEAPU32.subarray(startIndex, startIndex + result.size))
}
private val INTEROP_SCOPE = InteropScope()
private var interopScopeCounter = 0
internal actual fun fromWasm(src: NativePointer, result: FloatArray) {
val startIndex = src / 4
result.asDynamic().set(HEAPF32.subarray(startIndex, startIndex + result.size))
}
internal actual inline fun <T> interopScope(block: InteropScope.() -> T): T {
try {
interopScopeCounter++
return INTEROP_SCOPE.block()
} finally {
interopScopeCounter--
if (interopScopeCounter == 0) {
INTEROP_SCOPE.release()
}
}
internal actual fun fromWasm(src: NativePointer, result: DoubleArray) {
val startIndex = src / 8
result.asDynamic().set(HEAPF64.subarray(startIndex, startIndex + result.size))
}
internal actual external fun stringToUTF8(str: String, outPtr: NativePointer, maxBytesToWrite: Int)
internal actual class InteropScope actual constructor() {
private val elements = mutableListOf<NativePointer>()
private var callbacksInitialized = false
......@@ -231,18 +243,33 @@ internal actual class InteropScope actual constructor() {
return toInterop(interopPointers.toIntArray())
}
private fun <T> callbackImpl(callback: (() -> T)?): InteropPointer {
actual fun booleanCallback(callback: (() -> Boolean)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = js("({})") as CallbackDataBoolean
return _registerCallback({ data.value = callback() }, data, global = false)
}
val data = CallbackData<T>(null)
actual fun intCallback(callback: (() -> Int)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = js("({})") as CallbackDataInt
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun booleanCallback(callback: (() -> Boolean)?) = callbackImpl(callback)
actual fun intCallback(callback: (() -> Int)?) = callbackImpl(callback)
actual fun nativePointerCallback(callback: (() -> NativePointer)?) = callbackImpl(callback)
actual fun interopPointerCallback(callback: (() -> InteropPointer)?) = callbackImpl(callback)
actual fun nativePointerCallback(callback: (() -> NativePointer)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = js("({})") as CallbackDataNativePointer
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun interopPointerCallback(callback: (() -> InteropPointer)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = js("({})") as CallbackDataInteropPointer
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun callback(callback: (() -> Unit)?): InteropPointer {
if (callback == null) { return 0 }
......@@ -251,19 +278,29 @@ internal actual class InteropScope actual constructor() {
return _registerCallback({ callback() }, null, global = false)
}
private fun <T> virtualImpl(method: () -> T): InteropPointer {
val data = CallbackData<T>(null)
actual fun virtual(method: () -> Unit): InteropPointer {
return _registerCallback({ method() }, null, global = true)
}
actual fun virtualBoolean(method: () -> Boolean): InteropPointer {
val data = js("({})") as CallbackDataBoolean
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun virtual(method: () -> Unit): InteropPointer {
return _registerCallback({ method() }, null, global = true)
actual fun virtualInt(method: () -> Int): InteropPointer {
val data = js("({})") as CallbackDataInt
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun virtualNativePointer(method: () -> NativePointer): InteropPointer {
val data = js("({})") as CallbackDataNativePointer
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun virtualBoolean(method: () -> Boolean) = virtualImpl(method)
actual fun virtualInt(method: () -> Int) = virtualImpl(method)
actual fun virtualNativePointer(method: () -> NativePointer) = virtualImpl(method)
actual fun virtualInteropPointer(method: () -> InteropPointer) = virtualImpl(method)
actual fun virtualInteropPointer(method: () -> InteropPointer): InteropPointer {
val data = js("({})") as CallbackDataInteropPointer
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun release() {
elements.forEach {
......@@ -289,105 +326,12 @@ internal actual class InteropScope actual constructor() {
}
// Callbacks
private class CallbackData<T>(@JsName("value") var value: T?)
internal external interface CallbackDataBoolean { @JsName("value") var value: Boolean? }
internal external interface CallbackDataInt { @JsName("value") var value: Int? }
internal external interface CallbackDataNativePointer { @JsName("value") var value: NativePointer? }
internal external interface CallbackDataInteropPointer { @JsName("value") var value: InteropPointer? }
// See `setup.js`
private external fun _registerCallback(cb: () -> Unit, data: Any?, global: Boolean): Int
private external fun _createLocalCallbackScope()
private external fun _releaseLocalCallbackScope()
// Those functions are defined by Emscripten.
private external fun _malloc(size: Int): NativePointer
private external fun _free(ptr: NativePointer)
private external fun lengthBytesUTF8(str: String): Int
private external fun stringToUTF8(str: String, outPtr: NativePointer, maxBytesToWrite: Int)
private external fun UTF8ToString(ptr: NativePointer): String
private external interface HEAP<T> {
fun set(src: T, dest: NativePointer)
fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
private external object HEAPU8: HEAP<ByteArray> {
override fun set(src: ByteArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
private external object HEAPU16: HEAP<ShortArray> {
override fun set(src: ShortArray, dest: NativePointer)
fun set(src: CharArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
private external object HEAPU32: HEAP<IntArray> {
override fun set(src: IntArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
private external object HEAPF32: HEAP<FloatArray> {
override fun set(src: FloatArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
private external object HEAPF64: HEAP<DoubleArray> {
override fun set(src: DoubleArray, dest: NativePointer)
override fun subarray(startIndex: Int, endIndex: Int): ArrayBufferView
}
// Data copying routines.
private fun toWasm(dest: NativePointer, src: ByteArray): Unit = HEAPU8.set(src, dest)
private fun toWasm(dest: NativePointer, src: ShortArray): Unit = HEAPU16.set(src, dest / 2)
private fun toWasm(dest: NativePointer, src: CharArray): Unit = HEAPU16.set(src, dest / 2)
private fun toWasm(dest: NativePointer, src: FloatArray): Unit = HEAPF32.set(src, dest / 4)
private fun toWasm(dest: NativePointer, src: DoubleArray): Unit = HEAPF64.set(src, dest / 8)
private fun toWasm(dest: NativePointer, src: IntArray): Unit = HEAPU32.set(src, dest / 4)
private fun fromWasm(src: NativePointer, result: ByteArray) {
result.asDynamic().set(HEAPU8.subarray(src, src + result.size))
}
private fun fromWasm(src: NativePointer, result: ShortArray) {
val startIndex = src / 2
result.asDynamic().set(HEAPU16.subarray(startIndex, startIndex + result.size))
}
private fun fromWasm(src: NativePointer, result: IntArray) {
val startIndex = src / 4
result.asDynamic().set(HEAPU32.subarray(startIndex, startIndex + result.size))
}
private fun fromWasm(src: NativePointer, result: FloatArray) {
val startIndex = src / 4
result.asDynamic().set(HEAPF32.subarray(startIndex, startIndex + result.size))
}
private fun fromWasm(src: NativePointer, result: DoubleArray) {
val startIndex = src / 8
result.asDynamic().set(HEAPF64.subarray(startIndex, startIndex + result.size))
}
actual class NativePointerArray actual constructor(size: Int) {
internal val backing = IntArray(size)
actual operator fun get(index: Int): NativePointer {
return backing[index]
}
actual operator fun set(index: Int, value: NativePointer) {
backing[index] = value
}
actual val size: Int
get() = backing.size
companion object {
internal fun fromIntArray(intArray: IntArray): NativePointerArray {
return NativePointerArray(intArray.size).apply {
intArray.copyInto(backing)
}
}
}
}
private external fun _releaseLocalCallbackScope()
\ No newline at end of file
package org.jetbrains.skiko
import org.w3c.dom.HTMLElement
import org.w3c.dom.events.MouseEvent
import org.w3c.dom.events.UIEvent
internal actual inline fun <R> maybeSynchronized(lock: Any, block: () -> R): R =
block()
actual fun currentNanoTime(): Long = (kotlinx.browser.window.performance.now() * 1_000_000).toLong()
internal actual fun URIHandler_openUri(uri: String) {
kotlinx.browser.window.open(uri, target = "_blank")
}
internal actual fun ClipboardManager_setText(text: String) {
kotlinx.browser.window.navigator.clipboard.writeText(text)
}
internal actual fun ClipboardManager_getText(): String? {
// TODO("implement ClipboardManager_getText")
// kotlinx.browser.window.navigator.clipboard.readText()
return null
}
internal actual fun ClipboardManager_hasText(): Boolean = !ClipboardManager_getText().isNullOrEmpty()
actual typealias Cursor = String
internal actual fun CursorManager_setCursor(component: Any, cursor: Cursor) {
if (component is HTMLElement) {
component.style.cursor = cursor
}
}
internal actual fun CursorManager_getCursor(component: Any): Cursor? {
return if (component is HTMLElement) {
component.style.cursor
} else {
null
}
}
internal actual fun getCursorById(id: PredefinedCursorsId): Cursor =
when (id) {
PredefinedCursorsId.DEFAULT -> "default"
PredefinedCursorsId.CROSSHAIR -> "crosshair"
PredefinedCursorsId.HAND -> "pointer"
PredefinedCursorsId.TEXT -> "text"
}
\ No newline at end of file
internal actual fun getEventTimestamp(e: UIEvent): Long {
return e.timeStamp.toLong()
}
\ No newline at end of file
......@@ -2,7 +2,7 @@ package org.jetbrains.skiko.wasm
import org.jetbrains.skia.impl.NativePointer
import org.w3c.dom.HTMLCanvasElement
import kotlin.js.Promise
import kotlin.js.*
/**
* Invokes a callback [onReady] as soon as onRuntimeInitialized happens.
......@@ -13,31 +13,6 @@ external fun onWasmReady(onReady: () -> Unit)
internal external val wasmSetup: Promise<Boolean>
private external interface GLInterface {
fun createContext(context: HTMLCanvasElement, contextAttributes: dynamic): NativePointer;
fun makeContextCurrent(contextPointer: NativePointer): Boolean;
}
internal external object GL : GLInterface {
override fun createContext(context: HTMLCanvasElement, contextAttributes: dynamic): Int = definedExternally
override fun makeContextCurrent(contextPointer: NativePointer): Boolean = definedExternally
}
internal external interface ContextAttributes {
val alpha: Int?
val depth: Int?
val stencil: Int?
val antialias: Int?
val premultipliedAlpha: Int?
val preserveDrawingBuffer: Int?
val preferLowPowerToHighPerformance: Int?
val failIfMajorPerformanceCaveat: Int?
val enableExtensionsByDefault: Int?
val explicitSwapControl: Int?
val renderViaOffscreenBackBuffer: Int?
val majorVersion: Int?
}
internal fun ContextAttributes.asJsObject(): dynamic {
val jsObject = js("{}")
alpha?.let { jsObject.alpha = alpha }
......@@ -55,8 +30,18 @@ internal fun ContextAttributes.asJsObject(): dynamic {
return jsObject
}
private external interface GLInterface {
fun createContext(context: HTMLCanvasElement, contextAttributes: ContextAttributes): NativePointer;
fun makeContextCurrent(contextPointer: NativePointer): Boolean;
}
internal external object GL : GLInterface {
override fun createContext(context: HTMLCanvasElement, contextAttributes: ContextAttributes): Int = definedExternally
override fun makeContextCurrent(contextPointer: NativePointer): Boolean = definedExternally
}
internal fun createWebGLContext(canvas: HTMLCanvasElement, attr: ContextAttributes? = null): NativePointer {
internal actual fun createWebGLContext(canvas: HTMLCanvasElement, attr: ContextAttributes?): NativePointer {
val contextAttributes = object : ContextAttributes {
override val alpha = attr?.alpha ?: 1
override val depth = attr?.depth ?: 1
......@@ -69,7 +54,7 @@ internal fun createWebGLContext(canvas: HTMLCanvasElement, attr: ContextAttribut
override val enableExtensionsByDefault = attr?.enableExtensionsByDefault ?: 1
override val explicitSwapControl = attr?.explicitSwapControl ?: 0
override val renderViaOffscreenBackBuffer = attr?.renderViaOffscreenBackBuffer ?: 0
override val majorVersion = attr?.majorVersion ?: 1
override val majorVersion = attr?.majorVersion ?: 2
}
return GL.createContext(canvas, contextAttributes.asJsObject())
......
package org.jetbrains.skiko
import org.khronos.webgl.Int8Array
import kotlin.test.Test
import kotlin.test.assertContentEquals
class ResourcesTestJs {
@Test
fun typedArrayCastTest() {
val data = Int8Array(byteArrayOf(1, 2, 3, 4, 5).toTypedArray())
val casted = data.unsafeCast<ByteArray>()
assertContentEquals(byteArrayOf(1, 2, 3, 4, 5), casted)
}
}
\ No newline at end of file
package org.jetbrains.skiko
import org.jetbrains.skia.ExternalSymbolName
@ExternalSymbolName("require")
@JsName("require")
actual external fun resourcePath(resourceId: String): String
......@@ -18,21 +18,16 @@ private suspend fun <T> Promise<T>.await(): T = suspendCoroutine { cont ->
/**
* Awaits for `wasmSetup` and then runs the [block] in a coroutine.
*/
actual fun runTest(block: suspend () -> Unit): dynamic = MainScope().promise {
wasmSetup.await()
block()
actual fun <T> runTest(block: suspend () -> Unit): dynamic = MainScope().promise {
error("It's a fake actual. Not expected to be called")
}
internal actual fun InteropScope.allocateBytesForPixels(size: Int): NativePointer {
return toInterop(ByteArray(size))
fun runTest(block: suspend () -> Unit): dynamic = MainScope().promise {
wasmSetup.await()
block()
}
actual typealias SkipJsTarget = kotlin.test.Ignore
actual annotation class SkipJvmTarget
actual annotation class SkipNativeTarget
actual fun makeFromFileName(path: String?): Data = Data(0)
actual annotation class SkipWasmTarget
actual val isDebugModeOnJvm: Boolean = false
package org.jetbrains.skia
import kotlinx.browser.window
internal actual fun <R> commonSynchronized(lock: Any, block: () -> R) {
block()
}
actual fun String.intCodePoints(): IntArray = IntArray(this.length) { this[it].code }
actual class Pattern constructor(regex: String) {
private val _regex = Regex(regex)
actual fun split(input: CharSequence): Array<String> = _regex.split(input).toTypedArray()
actual fun matcher(input: CharSequence): Matcher = Matcher(_regex, input)
}
actual class Matcher constructor(private val regex: Regex, private val input: CharSequence) {
private val matches: Boolean by lazy {
regex.matches(input)
}
private val groups: MatchGroupCollection? by lazy { regex.matchEntire(input)?.groups }
actual fun group(ix: Int): String? = groups?.get(ix)?.value
actual fun matches(): Boolean = matches
}
@Suppress("RedundantNullableReturnType")
val LANG: String by lazy {
val lang: String? = window.navigator.language
if (lang == null || lang.isEmpty()) { "en-US" } else { lang }
}
actual fun defaultLanguageTag(): String = LANG
actual fun compilePattern(regex: String): Pattern = Pattern(regex)
\ No newline at end of file
package org.jetbrains.skia.impl
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.ExternalSymbolName
internal class FinalizationThunk(private val finalizer: NativePointer, private var obj: NativePointer) {
fun clean() {
if (obj != 0)
_nInvokeFinalizer(finalizer, obj)
obj = 0
}
}
internal expect fun register(managed: Managed, thunk: FinalizationThunk)
internal expect fun unregister(managed: Managed)
actual abstract class Managed actual constructor(ptr: NativePointer, finalizer: NativePointer, managed: Boolean) : Native(ptr) {
private var cleaner: FinalizationThunk? = null
actual open fun close() {
if (NullPointer == _ptr)
throw RuntimeException("Object already closed: ${this::class.simpleName}, _ptr=$_ptr")
else if (null == cleaner)
throw RuntimeException("Object is not managed, can't close(): ${this::class.simpleName}, _ptr=$_ptr")
else {
unregister(this)
cleaner!!.clean()
cleaner = null
_ptr = 0
}
}
actual open val isClosed: Boolean
get() = _ptr == NullPointer
init {
if (managed) {
require(ptr != 0) { "Managed ptr is 0" }
require(finalizer != 0) { "Managed finalizer is 0" }
val thunk = FinalizationThunk(finalizer, ptr)
register(this, thunk)
cleaner = thunk
}
}
}
@ExternalSymbolName("org_jetbrains_skia_impl_Managed__invokeFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_impl_Managed__invokeFinalizer")
private external fun _nInvokeFinalizer(finalizer: NativePointer, obj: NativePointer)
\ No newline at end of file
package org.jetbrains.skia.impl
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.ExternalSymbolName
actual abstract class Native actual constructor(ptr: NativePointer) {
actual var _ptr: NativePointer
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (null == other) return false
if (other !is Native) return false
return if (_ptr == other._ptr) true else nativeEquals(other)
}
override fun hashCode(): Int = _ptr
internal actual open fun nativeEquals(other: Native?): Boolean {
return false
}
actual companion object {
actual val NullPointer: NativePointer
get() = 0
}
actual override fun toString(): String {
return this::class.simpleName + "(_ptr=0x" + _ptr.toString(16) + ")"
}
init {
if (ptr == NullPointer) throw RuntimeException("Can't wrap nullptr")
_ptr = ptr
}
}
internal actual fun reachabilityBarrier(obj: Any?) {}
actual typealias NativePointer = Int
actual typealias InteropPointer = Int
private val INTEROP_SCOPE = InteropScope()
private var interopScopeCounter = 0
internal actual inline fun <T> interopScope(block: InteropScope.() -> T): T {
try {
interopScopeCounter++
return INTEROP_SCOPE.block()
} finally {
interopScopeCounter--
if (interopScopeCounter == 0) {
INTEROP_SCOPE.release()
}
}
}
// Those functions are defined by Emscripten.
@ExternalSymbolName("_malloc")
@ModuleImport("./skiko.mjs", "malloc")
internal external fun _malloc(size: Int): NativePointer
@ExternalSymbolName("_free")
@ModuleImport("./skiko.mjs", "free")
internal external fun _free(ptr: NativePointer)
private external fun lengthBytesUTF8(str: String): Int
internal expect fun stringToUTF8(str: String, outPtr: NativePointer, maxBytesToWrite: Int)
private external fun UTF8ToString(ptr: NativePointer): String
// Data copying routines.
internal expect fun toWasm(dest: NativePointer, src: ByteArray)
internal expect fun toWasm(dest: NativePointer, src: ShortArray)
internal expect fun toWasm(dest: NativePointer, src: CharArray)
internal expect fun toWasm(dest: NativePointer, src: FloatArray)
internal expect fun toWasm(dest: NativePointer, src: DoubleArray)
internal expect fun toWasm(dest: NativePointer, src: IntArray)
internal expect fun fromWasm(src: NativePointer, result: ByteArray)
internal expect fun fromWasm(src: NativePointer, result: ShortArray)
internal expect fun fromWasm(src: NativePointer, result: IntArray)
internal expect fun fromWasm(src: NativePointer, result: FloatArray)
internal expect fun fromWasm(src: NativePointer, result: DoubleArray)
actual class NativePointerArray actual constructor(size: Int) {
internal val backing = IntArray(size)
actual operator fun get(index: Int): NativePointer {
return backing[index]
}
actual operator fun set(index: Int, value: NativePointer) {
backing[index] = value
}
actual val size: Int
get() = backing.size
companion object {
internal fun fromIntArray(intArray: IntArray): NativePointerArray {
return NativePointerArray(intArray.size).apply {
intArray.copyInto(backing)
}
}
}
}
package org.jetbrains.skia.impl
import org.jetbrains.skia.ModuleImport
import org.jetbrains.skia.ExternalSymbolName
actual abstract class RefCnt : Managed {
......@@ -23,6 +24,9 @@ private object _FinalizerHolder {
}
@ExternalSymbolName("org_jetbrains_skia_impl_RefCnt__getFinalizer")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_impl_RefCnt__getFinalizer")
internal actual external fun RefCnt_nGetFinalizer(): NativePointer
@ExternalSymbolName("org_jetbrains_skia_impl_RefCnt__getRefCount")
@ModuleImport("./skiko.mjs", "org_jetbrains_skia_impl_RefCnt__getRefCount")
private external fun _nGetRefCount(ptr: NativePointer): Int
package org.jetbrains.skiko
import org.w3c.dom.HTMLElement
internal actual inline fun <R> maybeSynchronized(lock: Any, block: () -> R): R =
block()
actual fun currentNanoTime(): Long = (kotlinx.browser.window.performance.now() * 1_000_000).toLong()
internal actual fun URIHandler_openUri(uri: String) {
kotlinx.browser.window.open(uri, target = "_blank")
}
internal actual fun ClipboardManager_setText(text: String) {
kotlinx.browser.window.navigator.clipboard.writeText(text)
}
internal actual fun ClipboardManager_getText(): String? {
// TODO("implement ClipboardManager_getText")
// kotlinx.browser.window.navigator.clipboard.readText()
return null
}
internal actual fun ClipboardManager_hasText(): Boolean = !ClipboardManager_getText().isNullOrEmpty()
actual typealias Cursor = String
internal actual fun CursorManager_setCursor(component: Any, cursor: Cursor) {
if (component is HTMLElement) {
component.style.cursor = cursor
}
}
internal actual fun CursorManager_getCursor(component: Any): Cursor? {
return if (component is HTMLElement) {
component.style.cursor
} else {
null
}
}
internal actual fun getCursorById(id: PredefinedCursorsId): Cursor =
when (id) {
PredefinedCursorsId.DEFAULT -> "default"
PredefinedCursorsId.CROSSHAIR -> "crosshair"
PredefinedCursorsId.HAND -> "pointer"
PredefinedCursorsId.TEXT -> "text"
}
\ No newline at end of file
package org.jetbrains.skiko
import org.w3c.dom.events.MouseEvent
import org.w3c.dom.events.KeyboardEvent
import org.w3c.dom.events.WheelEvent
import org.w3c.dom.events.InputEvent
import org.w3c.dom.events.*
private val SPECIAL_KEYS = setOf(
"Unidentified",
......@@ -59,6 +56,8 @@ private val SPECIAL_KEYS = setOf(
"Clear"
)
internal expect fun getEventTimestamp(e: UIEvent): Long
fun toSkikoEvent(
event: MouseEvent,
kind: SkikoPointerEventKind
......@@ -70,7 +69,7 @@ fun toSkikoEvent(
button = toSkikoMouseButton(event),
modifiers = toSkikoModifiers(event),
kind = kind,
timestamp = event.timeStamp.toLong(),
timestamp = getEventTimestamp(event),
platform = event
)
}
......@@ -85,7 +84,7 @@ fun toSkikoDragEvent(
button = toSkikoMouseButton(event),
modifiers = toSkikoModifiers(event),
kind = SkikoPointerEventKind.DRAG,
timestamp = event.timeStamp.toLong(),
timestamp = getEventTimestamp(event),
platform = event
)
}
......@@ -123,7 +122,7 @@ fun toSkikoEvent(
SkikoKey.valueOf(toSkikoKey(event)),
toSkikoModifiers(event),
kind,
event.timeStamp.toLong(),
getEventTimestamp(event),
event
)
}
......@@ -140,7 +139,7 @@ fun toSkikoScrollEvent(
button = SkikoMouseButtons.NONE,
modifiers = toSkikoModifiers(event),
kind = SkikoPointerEventKind.SCROLL,
timestamp = event.timeStamp.toLong(),
timestamp = getEventTimestamp(event),
platform = event
)
}
......
......@@ -23,7 +23,7 @@ actual val kotlinBackend: KotlinBackend
* but not supported in all browsers
*/
private fun getNavigatorInfo(): String =
js("navigator.userAgentData ? navigator.userAgentData.platform : navigator.platform") as String
js("navigator.userAgentData ? navigator.userAgentData.platform : navigator.platform") //as String // k/wasm requires only 1 expression in a function calling `js`
/**
......
package org.jetbrains.skiko.wasm
import org.jetbrains.skia.impl.NativePointer
import org.w3c.dom.HTMLCanvasElement
import kotlin.js.*
internal external interface ContextAttributes {
val alpha: Int?
val depth: Int?
val stencil: Int?
val antialias: Int?
val premultipliedAlpha: Int?
val preserveDrawingBuffer: Int?
val preferLowPowerToHighPerformance: Int?
val failIfMajorPerformanceCaveat: Int?
val enableExtensionsByDefault: Int?
val explicitSwapControl: Int?
val renderViaOffscreenBackBuffer: Int?
val majorVersion: Int?
}
internal expect fun createWebGLContext(canvas: HTMLCanvasElement, attr: ContextAttributes? = null): NativePointer
\ No newline at end of file
// This file is merged with skiko.js by emcc
const { _callCallback, _registerCallback, _releaseCallback, _createLocalCallbackScope, _releaseLocalCallbackScope } = SkikoCallbacks;
var wasmSetup = new Promise(function(resolve, reject) {
Module['onRuntimeInitialized'] = _ => {
resolve(Module);
};
});
function onWasmReady(onReady) { wasmSetup.then(onReady); }
\ No newline at end of file
// This file is merged with skiko.mjs by emcc
export const { _callCallback, _registerCallback, _releaseCallback, _createLocalCallbackScope, _releaseLocalCallbackScope } = SkikoCallbacks;
const loadedWasm = await loadSkikoWASM()
export const { GL } = loadedWasm;
export const {
BackendRenderTarget_MakeDirect3D,
org_jetbrains_skia_BackendRenderTarget__1nMakeGL,
BackendRenderTarget_nMakeMetal,
org_jetbrains_skia_BackendRenderTarget__1nGetFinalizer,
org_jetbrains_skia_Bitmap__1nAllocPixels,
org_jetbrains_skia_Bitmap__1nAllocPixelsFlags,
org_jetbrains_skia_Bitmap__1nAllocPixelsRowBytes,
org_jetbrains_skia_Bitmap__1nComputeByteSize,
org_jetbrains_skia_Bitmap__1nComputeIsOpaque,
org_jetbrains_skia_Bitmap__1nErase,
org_jetbrains_skia_Bitmap__1nEraseColor,
org_jetbrains_skia_Bitmap__1nExtractAlpha,
org_jetbrains_skia_Bitmap__1nExtractSubset,
org_jetbrains_skia_Bitmap__1nGetAlphaf,
org_jetbrains_skia_Bitmap__1nGetGenerationId,
org_jetbrains_skia_Bitmap__1nGetImageInfo,
org_jetbrains_skia_Bitmap__1nGetPixelRef,
org_jetbrains_skia_Bitmap__1nGetPixelRefOriginX,
org_jetbrains_skia_Bitmap__1nGetPixelRefOriginY,
org_jetbrains_skia_Bitmap__1nGetPixmap,
org_jetbrains_skia_Bitmap__1nGetRowBytes,
org_jetbrains_skia_Bitmap__1nGetRowBytesAsPixels,
org_jetbrains_skia_Bitmap__1nInstallPixels,
org_jetbrains_skia_Bitmap__1nIsImmutable,
org_jetbrains_skia_Bitmap__1nIsNull,
org_jetbrains_skia_Bitmap__1nIsReadyToDraw,
org_jetbrains_skia_Bitmap__1nIsVolatile,
org_jetbrains_skia_Bitmap__1nMake,
org_jetbrains_skia_Bitmap__1nMakeClone,
org_jetbrains_skia_Bitmap__1nMakeShader,
org_jetbrains_skia_Bitmap__1nNotifyPixelsChanged,
org_jetbrains_skia_Bitmap__1nPeekPixels,
org_jetbrains_skia_Bitmap__1nReadPixels,
org_jetbrains_skia_Bitmap__1nReset,
org_jetbrains_skia_Bitmap__1nSetAlphaType,
org_jetbrains_skia_Bitmap__1nSetImageInfo,
org_jetbrains_skia_Bitmap__1nSetImmutable,
org_jetbrains_skia_Bitmap__1nSetPixelRef,
org_jetbrains_skia_Bitmap__1nSetVolatile,
org_jetbrains_skia_Bitmap__1nSwap,
org_jetbrains_skia_Bitmap__1nGetColor,
org_jetbrains_skia_Bitmap__1nGetFinalizer,
org_jetbrains_skia_BreakIterator__1nClone,
org_jetbrains_skia_BreakIterator__1nCurrent,
org_jetbrains_skia_BreakIterator__1nFirst,
org_jetbrains_skia_BreakIterator__1nFollowing,
org_jetbrains_skia_BreakIterator__1nGetRuleStatus,
org_jetbrains_skia_BreakIterator__1nGetRuleStatuses,
org_jetbrains_skia_BreakIterator__1nGetRuleStatusesLen,
org_jetbrains_skia_BreakIterator__1nIsBoundary,
org_jetbrains_skia_BreakIterator__1nLast,
org_jetbrains_skia_BreakIterator__1nMake,
org_jetbrains_skia_BreakIterator__1nNext,
org_jetbrains_skia_BreakIterator__1nPreceding,
org_jetbrains_skia_BreakIterator__1nPrevious,
org_jetbrains_skia_BreakIterator__1nSetText,
org_jetbrains_skia_BreakIterator__1nGetFinalizer,
org_jetbrains_skia_Canvas__1nClear,
org_jetbrains_skia_Canvas__1nClipPath,
org_jetbrains_skia_Canvas__1nClipRect,
org_jetbrains_skia_Canvas__1nClipRegion,
org_jetbrains_skia_Canvas__1nClipRRect,
org_jetbrains_skia_Canvas__1nConcat,
org_jetbrains_skia_Canvas__1nConcat44,
org_jetbrains_skia_Canvas__1nDrawArc,
org_jetbrains_skia_Canvas__1nDrawDrawable,
org_jetbrains_skia_Canvas__1nDrawDRRect,
org_jetbrains_skia_Canvas__1nDrawImageNine,
org_jetbrains_skia_Canvas__1nDrawImageRect,
org_jetbrains_skia_Canvas__1nDrawLine,
org_jetbrains_skia_Canvas__1nDrawOval,
org_jetbrains_skia_Canvas__1nDrawPaint,
org_jetbrains_skia_Canvas__1nDrawPatch,
org_jetbrains_skia_Canvas__1nDrawPath,
org_jetbrains_skia_Canvas__1nDrawPicture,
org_jetbrains_skia_Canvas__1nDrawPoint,
org_jetbrains_skia_Canvas__1nDrawPoints,
org_jetbrains_skia_Canvas__1nDrawRect,
org_jetbrains_skia_Canvas__1nDrawRegion,
org_jetbrains_skia_Canvas__1nDrawRRect,
org_jetbrains_skia_Canvas__1nDrawString,
org_jetbrains_skia_Canvas__1nDrawTextBlob,
org_jetbrains_skia_Canvas__1nDrawVertices,
org_jetbrains_skia_Canvas__1nGetLocalToDevice,
org_jetbrains_skia_Canvas__1nGetSaveCount,
org_jetbrains_skia_Canvas__1nMakeFromBitmap,
org_jetbrains_skia_Canvas__1nReadPixels,
org_jetbrains_skia_Canvas__1nResetMatrix,
org_jetbrains_skia_Canvas__1nRestore,
org_jetbrains_skia_Canvas__1nRestoreToCount,
org_jetbrains_skia_Canvas__1nRotate,
org_jetbrains_skia_Canvas__1nSave,
org_jetbrains_skia_Canvas__1nSaveLayer,
org_jetbrains_skia_Canvas__1nSaveLayerRect,
org_jetbrains_skia_Canvas__1nScale,
org_jetbrains_skia_Canvas__1nSetMatrix,
org_jetbrains_skia_Canvas__1nSkew,
org_jetbrains_skia_Canvas__1nTranslate,
org_jetbrains_skia_Canvas__1nWritePixels,
org_jetbrains_skia_Canvas__1nGetFinalizer,
org_jetbrains_skia_Codec__1nGetEncodedImageFormat,
org_jetbrains_skia_Codec__1nGetEncodedOrigin,
org_jetbrains_skia_Codec__1nGetFrameCount,
org_jetbrains_skia_Codec__1nGetFrameInfo,
org_jetbrains_skia_Codec__1nGetFramesInfo,
org_jetbrains_skia_Codec__1nGetRepetitionCount,
org_jetbrains_skia_Codec__1nGetSizeHeight,
org_jetbrains_skia_Codec__1nGetSizeWidth,
org_jetbrains_skia_Codec__1nMakeFromData,
org_jetbrains_skia_Codec__1nGetFinalizer,
org_jetbrains_skia_Codec__1nGetImageInfo,
org_jetbrains_skia_Codec__1nReadPixels,
org_jetbrains_skia_Codec__1nFramesInfo_Delete,
org_jetbrains_skia_Codec__1nFramesInfo_GetInfos,
org_jetbrains_skia_Codec__1nFramesInfo_GetSize,
org_jetbrains_skia_ColorFilter__1nGetLinearToSRGBGamma,
org_jetbrains_skia_ColorFilter__1nGetLuma,
org_jetbrains_skia_ColorFilter__1nGetSRGBToLinearGamma,
org_jetbrains_skia_ColorFilter__1nMakeBlend,
org_jetbrains_skia_ColorFilter__1nMakeComposed,
org_jetbrains_skia_ColorFilter__1nMakeHighContrast,
org_jetbrains_skia_ColorFilter__1nMakeHSLAMatrix,
org_jetbrains_skia_ColorFilter__1nMakeLerp,
org_jetbrains_skia_ColorFilter__1nMakeLighting,
org_jetbrains_skia_ColorFilter__1nMakeMatrix,
org_jetbrains_skia_ColorFilter__1nMakeOverdraw,
org_jetbrains_skia_ColorFilter__1nMakeTable,
org_jetbrains_skia_ColorFilter__1nMakeTableARGB,
org_jetbrains_skia_ColorSpace__nConvert,
org_jetbrains_skia_ColorSpace__1nIsGammaCloseToSRGB,
org_jetbrains_skia_ColorSpace__1nIsGammaLinear,
org_jetbrains_skia_ColorSpace__1nIsSRGB,
org_jetbrains_skia_ColorSpace__1nMakeDisplayP3,
org_jetbrains_skia_ColorSpace__1nMakeSRGB,
org_jetbrains_skia_ColorSpace__1nMakeSRGBLinear,
org_jetbrains_skia_ColorSpace__1nGetFinalizer,
org_jetbrains_skia_ColorType__1nIsAlwaysOpaque,
org_jetbrains_skia_Data__1nBytes,
org_jetbrains_skia_Data__1nEquals,
org_jetbrains_skia_Data__1nMakeEmpty,
org_jetbrains_skia_Data__1nMakeFromBytes,
org_jetbrains_skia_Data__1nMakeFromFileName,
org_jetbrains_skia_Data__1nMakeSubset,
org_jetbrains_skia_Data__1nMakeUninitialized,
org_jetbrains_skia_Data__1nMakeWithoutCopy,
org_jetbrains_skia_Data__1nSize,
org_jetbrains_skia_Data__1nWritableData,
org_jetbrains_skia_Data__1nGetFinalizer,
org_jetbrains_skia_DirectContext__1nAbandon,
org_jetbrains_skia_DirectContext__1nMakeDirect3D,
org_jetbrains_skia_DirectContext__1nMakeGL,
org_jetbrains_skia_DirectContext__1nMakeMetal,
org_jetbrains_skia_DirectContext__1nReset,
org_jetbrains_skia_DirectContext__1nSubmit,
org_jetbrains_skia_DirectContext__1nFlush,
org_jetbrains_skia_Drawable__1nDraw,
org_jetbrains_skia_Drawable__1nGetOnDrawCanvas,
org_jetbrains_skia_Drawable__1nMakePictureSnapshot,
org_jetbrains_skia_Drawable__1nNotifyDrawingChanged,
org_jetbrains_skia_Drawable__1nSetBounds,
org_jetbrains_skia_Drawable__1nGetBounds,
org_jetbrains_skia_Drawable__1nGetFinalizer,
org_jetbrains_skia_Drawable__1nGetGenerationId,
org_jetbrains_skia_Drawable__1nInit,
org_jetbrains_skia_Drawable__1nMake,
org_jetbrains_skia_Font__1nAreBitmapsEmbedded,
org_jetbrains_skia_Font__1nAreMetricsLinear,
org_jetbrains_skia_Font__1nGetBounds,
org_jetbrains_skia_Font__1nGetEdging,
org_jetbrains_skia_Font__1nGetHinting,
org_jetbrains_skia_Font__1nGetMetrics,
org_jetbrains_skia_Font__1nGetPath,
org_jetbrains_skia_Font__1nGetPaths,
org_jetbrains_skia_Font__1nGetPositions,
org_jetbrains_skia_Font__1nGetScaleX,
org_jetbrains_skia_Font__1nGetSkewX,
org_jetbrains_skia_Font__1nGetSpacing,
org_jetbrains_skia_Font__1nGetStringGlyphsCount,
org_jetbrains_skia_Font__1nGetTypeface,
org_jetbrains_skia_Font__1nGetTypefaceOrDefault,
org_jetbrains_skia_Font__1nGetUTF32Glyph,
org_jetbrains_skia_Font__1nGetUTF32Glyphs,
org_jetbrains_skia_Font__1nGetWidths,
org_jetbrains_skia_Font__1nGetXPositions,
org_jetbrains_skia_Font__1nIsAutoHintingForced,
org_jetbrains_skia_Font__1nIsBaselineSnapped,
org_jetbrains_skia_Font__1nIsEmboldened,
org_jetbrains_skia_Font__1nIsSubpixel,
org_jetbrains_skia_Font__1nMakeDefault,
org_jetbrains_skia_Font__1nMakeTypeface,
org_jetbrains_skia_Font__1nMakeTypefaceSize,
org_jetbrains_skia_Font__1nMakeTypefaceSizeScaleSkew,
org_jetbrains_skia_Font__1nMeasureText,
org_jetbrains_skia_Font__1nMeasureTextWidth,
org_jetbrains_skia_Font__1nSetAutoHintingForced,
org_jetbrains_skia_Font__1nSetBaselineSnapped,
org_jetbrains_skia_Font__1nSetBitmapsEmbedded,
org_jetbrains_skia_Font__1nSetEdging,
org_jetbrains_skia_Font__1nSetEmboldened,
org_jetbrains_skia_Font__1nSetHinting,
org_jetbrains_skia_Font__1nSetMetricsLinear,
org_jetbrains_skia_Font__1nSetScaleX,
org_jetbrains_skia_Font__1nSetSize,
org_jetbrains_skia_Font__1nSetSkewX,
org_jetbrains_skia_Font__1nSetSubpixel,
org_jetbrains_skia_Font__1nSetTypeface,
org_jetbrains_skia_Font__1nEquals,
org_jetbrains_skia_Font__1nGetFinalizer,
org_jetbrains_skia_Font__1nGetSize,
org_jetbrains_skia_Font__1nMakeClone,
org_jetbrains_skia_FontMgr__1nDefault,
org_jetbrains_skia_FontMgr__1nGetFamiliesCount,
org_jetbrains_skia_FontMgr__1nGetFamilyName,
org_jetbrains_skia_FontMgr__1nMakeFromData,
org_jetbrains_skia_FontMgr__1nMakeStyleSet,
org_jetbrains_skia_FontMgr__1nMatchFamily,
org_jetbrains_skia_FontMgr__1nMatchFamilyStyle,
org_jetbrains_skia_FontMgr__1nMatchFamilyStyleCharacter,
org_jetbrains_skia_FontStyleSet__1nCount,
org_jetbrains_skia_FontStyleSet__1nGetStyle,
org_jetbrains_skia_FontStyleSet__1nGetStyleName,
org_jetbrains_skia_FontStyleSet__1nGetTypeface,
org_jetbrains_skia_FontStyleSet__1nMatchStyle,
org_jetbrains_skia_FontStyleSet__1nMakeEmpty,
org_jetbrains_skia_GraphicsKt__1nGetFontCacheCountLimit,
org_jetbrains_skia_GraphicsKt__1nGetFontCacheCountUsed,
org_jetbrains_skia_GraphicsKt__1nGetFontCacheLimit,
org_jetbrains_skia_GraphicsKt__1nGetFontCacheUsed,
org_jetbrains_skia_GraphicsKt__1nGetResourceCacheSingleAllocationByteLimit,
org_jetbrains_skia_GraphicsKt__1nGetResourceCacheTotalByteLimit,
org_jetbrains_skia_GraphicsKt__1nGetResourceCacheTotalBytesUsed,
org_jetbrains_skia_GraphicsKt__1nPurgeAllCaches,
org_jetbrains_skia_GraphicsKt__1nPurgeFontCache,
org_jetbrains_skia_GraphicsKt__1nPurgeResourceCache,
org_jetbrains_skia_GraphicsKt__1nSetFontCacheCountLimit,
org_jetbrains_skia_GraphicsKt__1nSetFontCacheLimit,
org_jetbrains_skia_GraphicsKt__1nSetResourceCacheSingleAllocationByteLimit,
org_jetbrains_skia_GraphicsKt__1nSetResourceCacheTotalByteLimit,
org_jetbrains_skia_Image__1nEncodeToData,
org_jetbrains_skia_Image__1nMakeFromBitmap,
org_jetbrains_skia_Image__1nMakeFromEncoded,
org_jetbrains_skia_Image__1nMakeFromPixmap,
org_jetbrains_skia_Image__1nMakeRaster,
org_jetbrains_skia_Image__1nMakeRasterData,
org_jetbrains_skia_Image__1nPeekPixelsToPixmap,
org_jetbrains_skia_Image__1nReadPixelsBitmap,
org_jetbrains_skia_Image__1nReadPixelsPixmap,
org_jetbrains_skia_Image__1nScalePixels,
org_jetbrains_skia_Image__1nGetImageInfo,
org_jetbrains_skia_Image__1nMakeShader,
org_jetbrains_skia_Image__1nPeekPixels,
org_jetbrains_skia_ImageFilter__1nMakeArithmetic,
org_jetbrains_skia_ImageFilter__1nMakeBlend,
org_jetbrains_skia_ImageFilter__1nMakeBlur,
org_jetbrains_skia_ImageFilter__1nMakeColorFilter,
org_jetbrains_skia_ImageFilter__1nMakeCompose,
org_jetbrains_skia_ImageFilter__1nMakeDilate,
org_jetbrains_skia_ImageFilter__1nMakeDisplacementMap,
org_jetbrains_skia_ImageFilter__1nMakeDistantLitDiffuse,
org_jetbrains_skia_ImageFilter__1nMakeDistantLitSpecular,
org_jetbrains_skia_ImageFilter__1nMakeDropShadow,
org_jetbrains_skia_ImageFilter__1nMakeDropShadowOnly,
org_jetbrains_skia_ImageFilter__1nMakeErode,
org_jetbrains_skia_ImageFilter__1nMakeImage,
org_jetbrains_skia_ImageFilter__1nMakeMagnifier,
org_jetbrains_skia_ImageFilter__1nMakeMatrixConvolution,
org_jetbrains_skia_ImageFilter__1nMakeMatrixTransform,
org_jetbrains_skia_ImageFilter__1nMakeMerge,
org_jetbrains_skia_ImageFilter__1nMakeOffset,
org_jetbrains_skia_ImageFilter__1nMakePicture,
org_jetbrains_skia_ImageFilter__1nMakePointLitDiffuse,
org_jetbrains_skia_ImageFilter__1nMakePointLitSpecular,
org_jetbrains_skia_ImageFilter__1nMakeRuntimeShader,
org_jetbrains_skia_ImageFilter__1nMakeRuntimeShaderFromArray,
org_jetbrains_skia_ImageFilter__1nMakeShader,
org_jetbrains_skia_ImageFilter__1nMakeSpotLitDiffuse,
org_jetbrains_skia_ImageFilter__1nMakeSpotLitSpecular,
org_jetbrains_skia_ImageFilter__1nMakeTile,
org_jetbrains_skia_ManagedString__1nAppend,
org_jetbrains_skia_ManagedString__1nInsert,
org_jetbrains_skia_ManagedString__1nMake,
org_jetbrains_skia_ManagedString__1nRemove,
org_jetbrains_skia_ManagedString__1nRemoveSuffix,
org_jetbrains_skia_ManagedString__nStringData,
org_jetbrains_skia_ManagedString__nStringSize,
org_jetbrains_skia_ManagedString__1nGetFinalizer,
org_jetbrains_skia_MaskFilter__1nMakeBlur,
org_jetbrains_skia_MaskFilter__1nMakeClip,
org_jetbrains_skia_MaskFilter__1nMakeGamma,
org_jetbrains_skia_MaskFilter__1nMakeShader,
org_jetbrains_skia_MaskFilter__1nMakeTable,
org_jetbrains_skia_Paint__1nGetBlendMode,
org_jetbrains_skia_Paint__1nGetColor4f,
org_jetbrains_skia_Paint__1nGetColorFilter,
org_jetbrains_skia_Paint__1nGetImageFilter,
org_jetbrains_skia_Paint__1nGetMaskFilter,
org_jetbrains_skia_Paint__1nGetMode,
org_jetbrains_skia_Paint__1nGetPathEffect,
org_jetbrains_skia_Paint__1nGetShader,
org_jetbrains_skia_Paint__1nGetStrokeCap,
org_jetbrains_skia_Paint__1nGetStrokeJoin,
org_jetbrains_skia_Paint__1nGetStrokeMiter,
org_jetbrains_skia_Paint__1nGetStrokeWidth,
org_jetbrains_skia_Paint__1nHasNothingToDraw,
org_jetbrains_skia_Paint__1nIsAntiAlias,
org_jetbrains_skia_Paint__1nIsDither,
org_jetbrains_skia_Paint__1nSetAntiAlias,
org_jetbrains_skia_Paint__1nSetBlendMode,
org_jetbrains_skia_Paint__1nSetColor,
org_jetbrains_skia_Paint__1nSetColor4f,
org_jetbrains_skia_Paint__1nSetColorFilter,
org_jetbrains_skia_Paint__1nSetDither,
org_jetbrains_skia_Paint__1nSetImageFilter,
org_jetbrains_skia_Paint__1nSetMaskFilter,
org_jetbrains_skia_Paint__1nSetMode,
org_jetbrains_skia_Paint__1nSetPathEffect,
org_jetbrains_skia_Paint__1nSetShader,
org_jetbrains_skia_Paint__1nSetStrokeCap,
org_jetbrains_skia_Paint__1nSetStrokeJoin,
org_jetbrains_skia_Paint__1nSetStrokeMiter,
org_jetbrains_skia_Paint__1nSetStrokeWidth,
org_jetbrains_skia_Paint__1nEquals,
org_jetbrains_skia_Paint__1nGetColor,
org_jetbrains_skia_Paint__1nGetFinalizer,
org_jetbrains_skia_Paint__1nMake,
org_jetbrains_skia_Paint__1nMakeClone,
org_jetbrains_skia_Paint__1nReset,
org_jetbrains_skia_PaintFilterCanvas__1nGetOnFilterPaint,
org_jetbrains_skia_PaintFilterCanvas__1nInit,
org_jetbrains_skia_PaintFilterCanvas__1nMake,
org_jetbrains_skia_Path__1nAddArc,
org_jetbrains_skia_Path__1nAddCircle,
org_jetbrains_skia_Path__1nAddOval,
org_jetbrains_skia_Path__1nAddPath,
org_jetbrains_skia_Path__1nAddPathOffset,
org_jetbrains_skia_Path__1nAddPathTransform,
org_jetbrains_skia_Path__1nAddPoly,
org_jetbrains_skia_Path__1nAddRect,
org_jetbrains_skia_Path__1nAddRRect,
org_jetbrains_skia_Path__1nApproximateBytesUsed,
org_jetbrains_skia_Path__1nArcTo,
org_jetbrains_skia_Path__1nClosePath,
org_jetbrains_skia_Path__1nComputeTightBounds,
org_jetbrains_skia_Path__1nConicTo,
org_jetbrains_skia_Path__1nConservativelyContainsRect,
org_jetbrains_skia_Path__1nContains,
org_jetbrains_skia_Path__1nConvertConicToQuads,
org_jetbrains_skia_Path__1nCountVerbs,
org_jetbrains_skia_Path__1nCubicTo,
org_jetbrains_skia_Path__1nDump,
org_jetbrains_skia_Path__1nDumpHex,
org_jetbrains_skia_Path__1nEllipticalArcTo,
org_jetbrains_skia_Path__1nGetBounds,
org_jetbrains_skia_Path__1nGetFillMode,
org_jetbrains_skia_Path__1nGetLastPt,
org_jetbrains_skia_Path__1nGetPoint,
org_jetbrains_skia_Path__1nGetPoints,
org_jetbrains_skia_Path__1nGetPointsCount,
org_jetbrains_skia_Path__1nGetSegmentMasks,
org_jetbrains_skia_Path__1nGetVerbs,
org_jetbrains_skia_Path__1nIncReserve,
org_jetbrains_skia_Path__1nIsConvex,
org_jetbrains_skia_Path__1nIsCubicDegenerate,
org_jetbrains_skia_Path__1nIsEmpty,
org_jetbrains_skia_Path__1nIsFinite,
org_jetbrains_skia_Path__1nIsInterpolatable,
org_jetbrains_skia_Path__1nIsLastContourClosed,
org_jetbrains_skia_Path__1nIsLineDegenerate,
org_jetbrains_skia_Path__1nIsOval,
org_jetbrains_skia_Path__1nIsQuadDegenerate,
org_jetbrains_skia_Path__1nIsRect,
org_jetbrains_skia_Path__1nIsRRect,
org_jetbrains_skia_Path__1nIsValid,
org_jetbrains_skia_Path__1nLineTo,
org_jetbrains_skia_Path__1nMakeCombining,
org_jetbrains_skia_Path__1nMakeFromBytes,
org_jetbrains_skia_Path__1nMakeFromSVGString,
org_jetbrains_skia_Path__1nMakeLerp,
org_jetbrains_skia_Path__1nMaybeGetAsLine,
org_jetbrains_skia_Path__1nMoveTo,
org_jetbrains_skia_Path__1nOffset,
org_jetbrains_skia_Path__1nQuadTo,
org_jetbrains_skia_Path__1nRConicTo,
org_jetbrains_skia_Path__1nRCubicTo,
org_jetbrains_skia_Path__1nREllipticalArcTo,
org_jetbrains_skia_Path__1nReverseAddPath,
org_jetbrains_skia_Path__1nRewind,
org_jetbrains_skia_Path__1nRLineTo,
org_jetbrains_skia_Path__1nRMoveTo,
org_jetbrains_skia_Path__1nRQuadTo,
org_jetbrains_skia_Path__1nSerializeToBytes,
org_jetbrains_skia_Path__1nSetFillMode,
org_jetbrains_skia_Path__1nSetLastPt,
org_jetbrains_skia_Path__1nTangentArcTo,
org_jetbrains_skia_Path__1nTransform,
org_jetbrains_skia_Path__1nUpdateBoundsCache,
org_jetbrains_skia_Path__1nEquals,
org_jetbrains_skia_Path__1nGetFinalizer,
org_jetbrains_skia_Path__1nGetGenerationId,
org_jetbrains_skia_Path__1nIsVolatile,
org_jetbrains_skia_Path__1nMake,
org_jetbrains_skia_Path__1nReset,
org_jetbrains_skia_Path__1nSetVolatile,
org_jetbrains_skia_Path__1nSwap,
org_jetbrains_skia_PathEffect__1nMakeCorner,
org_jetbrains_skia_PathEffect__1nMakeDash,
org_jetbrains_skia_PathEffect__1nMakeDiscrete,
org_jetbrains_skia_PathEffect__1nMakeLine2D,
org_jetbrains_skia_PathEffect__1nMakePath1D,
org_jetbrains_skia_PathEffect__1nMakePath2D,
org_jetbrains_skia_PathEffect__1nMakeSum,
org_jetbrains_skia_PathEffect__1nMakeCompose,
org_jetbrains_skia_PathMeasure__1nGetLength,
org_jetbrains_skia_PathMeasure__1nGetMatrix,
org_jetbrains_skia_PathMeasure__1nGetPosition,
org_jetbrains_skia_PathMeasure__1nGetRSXform,
org_jetbrains_skia_PathMeasure__1nGetSegment,
org_jetbrains_skia_PathMeasure__1nGetTangent,
org_jetbrains_skia_PathMeasure__1nIsClosed,
org_jetbrains_skia_PathMeasure__1nMakePath,
org_jetbrains_skia_PathMeasure__1nNextContour,
org_jetbrains_skia_PathMeasure__1nSetPath,
org_jetbrains_skia_PathMeasure__1nGetFinalizer,
org_jetbrains_skia_PathMeasure__1nMake,
org_jetbrains_skia_PathSegmentIterator__1nMake,
org_jetbrains_skia_PathSegmentIterator__1nGetFinalizer,
org_jetbrains_skia_PathSegmentIterator__1nNext,
org_jetbrains_skia_PathUtils__1nFillPathWithPaint,
org_jetbrains_skia_PathUtils__1nFillPathWithPaintCull,
org_jetbrains_skia_Picture__1nGetApproximateBytesUsed,
org_jetbrains_skia_Picture__1nGetApproximateOpCount,
org_jetbrains_skia_Picture__1nGetCullRect,
org_jetbrains_skia_Picture__1nGetUniqueId,
org_jetbrains_skia_Picture__1nMakePlaceholder,
org_jetbrains_skia_Picture__1nMakeShader,
org_jetbrains_skia_Picture__1nPlayback,
org_jetbrains_skia_Picture__1nSerializeToData,
org_jetbrains_skia_Picture__1nMakeFromData,
org_jetbrains_skia_PictureRecorder__1nBeginRecording,
org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsDrawable,
org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsPicture,
org_jetbrains_skia_PictureRecorder__1nFinishRecordingAsPictureWithCull,
org_jetbrains_skia_PictureRecorder__1nGetRecordingCanvas,
org_jetbrains_skia_PictureRecorder__1nGetFinalizer,
org_jetbrains_skia_PictureRecorder__1nMake,
org_jetbrains_skia_PixelRef__1nGetHeight,
org_jetbrains_skia_PixelRef__1nGetWidth,
org_jetbrains_skia_PixelRef__1nGetGenerationId,
org_jetbrains_skia_PixelRef__1nGetRowBytes,
org_jetbrains_skia_PixelRef__1nIsImmutable,
org_jetbrains_skia_PixelRef__1nNotifyPixelsChanged,
org_jetbrains_skia_PixelRef__1nSetImmutable,
org_jetbrains_skia_Pixmap__1nErase,
org_jetbrains_skia_Pixmap__1nEraseSubset,
org_jetbrains_skia_Pixmap__1nGetAddr,
org_jetbrains_skia_Pixmap__1nGetAddrAt,
org_jetbrains_skia_Pixmap__1nGetAlphaF,
org_jetbrains_skia_Pixmap__1nGetInfo,
org_jetbrains_skia_Pixmap__1nMakeNull,
org_jetbrains_skia_Pixmap__1nReadPixels,
org_jetbrains_skia_Pixmap__1nReadPixelsFromPoint,
org_jetbrains_skia_Pixmap__1nReadPixelsToPixmap,
org_jetbrains_skia_Pixmap__1nReadPixelsToPixmapFromPoint,
org_jetbrains_skia_Pixmap__1nResetWithInfo,
org_jetbrains_skia_Pixmap__1nScalePixels,
org_jetbrains_skia_Pixmap__1nSetColorSpace,
org_jetbrains_skia_Pixmap__1nComputeByteSize,
org_jetbrains_skia_Pixmap__1nComputeIsOpaque,
org_jetbrains_skia_Pixmap__1nExtractSubset,
org_jetbrains_skia_Pixmap__1nGetColor,
org_jetbrains_skia_Pixmap__1nGetFinalizer,
org_jetbrains_skia_Pixmap__1nGetRowBytes,
org_jetbrains_skia_Pixmap__1nGetRowBytesAsPixels,
org_jetbrains_skia_Pixmap__1nMake,
org_jetbrains_skia_Pixmap__1nReset,
org_jetbrains_skia_Region__1nComputeRegionComplexity,
org_jetbrains_skia_Region__1nContainsIPoint,
org_jetbrains_skia_Region__1nContainsIRect,
org_jetbrains_skia_Region__1nContainsRegion,
org_jetbrains_skia_Region__1nGetBoundaryPath,
org_jetbrains_skia_Region__1nGetBounds,
org_jetbrains_skia_Region__1nGetFinalizer,
org_jetbrains_skia_Region__1nIntersectsIRect,
org_jetbrains_skia_Region__1nIntersectsRegion,
org_jetbrains_skia_Region__1nIsComplex,
org_jetbrains_skia_Region__1nIsEmpty,
org_jetbrains_skia_Region__1nIsRect,
org_jetbrains_skia_Region__1nMake,
org_jetbrains_skia_Region__1nOpIRect,
org_jetbrains_skia_Region__1nOpIRectRegion,
org_jetbrains_skia_Region__1nOpRegion,
org_jetbrains_skia_Region__1nOpRegionIRect,
org_jetbrains_skia_Region__1nOpRegionRegion,
org_jetbrains_skia_Region__1nQuickContains,
org_jetbrains_skia_Region__1nQuickRejectIRect,
org_jetbrains_skia_Region__1nQuickRejectRegion,
org_jetbrains_skia_Region__1nSet,
org_jetbrains_skia_Region__1nSetEmpty,
org_jetbrains_skia_Region__1nSetPath,
org_jetbrains_skia_Region__1nSetRect,
org_jetbrains_skia_Region__1nSetRects,
org_jetbrains_skia_Region__1nSetRegion,
org_jetbrains_skia_Region__1nTranslate,
org_jetbrains_skia_RuntimeEffect__1nMakeForColorFilter,
org_jetbrains_skia_RuntimeEffect__1nMakeForShader,
org_jetbrains_skia_RuntimeEffect__1nMakeShader,
org_jetbrains_skia_RuntimeEffect__1Result_nDestroy,
org_jetbrains_skia_RuntimeEffect__1Result_nGetError,
org_jetbrains_skia_RuntimeEffect__1Result_nGetPtr,
org_jetbrains_skia_RuntimeShaderBuilder__1nChildColorFilter,
org_jetbrains_skia_RuntimeShaderBuilder__1nChildShader,
org_jetbrains_skia_RuntimeShaderBuilder__1nMakeFromRuntimeEffect,
org_jetbrains_skia_RuntimeShaderBuilder__1nMakeShader,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat2,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat3,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloat4,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix22,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix33,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformFloatMatrix44,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt2,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt3,
org_jetbrains_skia_RuntimeShaderBuilder__1nUniformInt4,
org_jetbrains_skia_RuntimeShaderBuilder__1nGetFinalizer,
org_jetbrains_skia_Shader__1nMakeBlend,
org_jetbrains_skia_Shader__1nMakeColor,
org_jetbrains_skia_Shader__1nMakeColorCS,
org_jetbrains_skia_Shader__1nMakeFractalNoise,
org_jetbrains_skia_Shader__1nMakeLinearGradient,
org_jetbrains_skia_Shader__1nMakeLinearGradientCS,
org_jetbrains_skia_Shader__1nMakeRadialGradient,
org_jetbrains_skia_Shader__1nMakeRadialGradientCS,
org_jetbrains_skia_Shader__1nMakeSweepGradient,
org_jetbrains_skia_Shader__1nMakeSweepGradientCS,
org_jetbrains_skia_Shader__1nMakeTurbulence,
org_jetbrains_skia_Shader__1nMakeTwoPointConicalGradient,
org_jetbrains_skia_Shader__1nMakeTwoPointConicalGradientCS,
org_jetbrains_skia_Shader__1nMakeWithColorFilter,
org_jetbrains_skia_Shader__1nMakeEmpty,
org_jetbrains_skia_ShadowUtils__1nComputeTonalAmbientColor,
org_jetbrains_skia_ShadowUtils__1nComputeTonalSpotColor,
org_jetbrains_skia_ShadowUtils__1nDrawShadow,
org_jetbrains_skia_StdVectorDecoder__1nDisposeArray,
org_jetbrains_skia_StdVectorDecoder__1nGetArraySize,
org_jetbrains_skia_StdVectorDecoder__1nReleaseElement,
org_jetbrains_skia_Surface__1nDraw,
org_jetbrains_skia_Surface__1nFlushAndSubmit,
org_jetbrains_skia_Surface__1nGenerationId,
org_jetbrains_skia_Surface__1nGetCanvas,
org_jetbrains_skia_Surface__1nGetRecordingContext,
org_jetbrains_skia_Surface__1nMakeFromBackendRenderTarget,
org_jetbrains_skia_Surface__1nMakeFromMTKView,
org_jetbrains_skia_Surface__1nMakeImageSnapshot,
org_jetbrains_skia_Surface__1nMakeImageSnapshotR,
org_jetbrains_skia_Surface__1nMakeNull,
org_jetbrains_skia_Surface__1nMakeRaster,
org_jetbrains_skia_Surface__1nMakeRasterDirect,
org_jetbrains_skia_Surface__1nMakeRasterDirectWithPixmap,
org_jetbrains_skia_Surface__1nMakeRasterN32Premul,
org_jetbrains_skia_Surface__1nMakeRenderTarget,
org_jetbrains_skia_Surface__1nMakeSurface,
org_jetbrains_skia_Surface__1nMakeSurfaceI,
org_jetbrains_skia_Surface__1nNotifyContentWillChange,
org_jetbrains_skia_Surface__1nPeekPixels,
org_jetbrains_skia_Surface__1nReadPixelsToPixmap,
org_jetbrains_skia_Surface__1nUnique,
org_jetbrains_skia_Surface__1nWritePixelsFromPixmap,
org_jetbrains_skia_Surface__1nFlush,
org_jetbrains_skia_Surface__1nGetHeight,
org_jetbrains_skia_Surface__1nGetImageInfo,
org_jetbrains_skia_Surface__1nGetWidth,
org_jetbrains_skia_Surface__1nReadPixels,
org_jetbrains_skia_Surface__1nWritePixels,
org_jetbrains_skia_TextBlob__1nBounds,
org_jetbrains_skia_TextBlob__1nGetBlockBounds,
org_jetbrains_skia_TextBlob__1nGetClusters,
org_jetbrains_skia_TextBlob__1nGetClustersLength,
org_jetbrains_skia_TextBlob__1nGetFirstBaseline,
org_jetbrains_skia_TextBlob__1nGetGlyphs,
org_jetbrains_skia_TextBlob__1nGetGlyphsLength,
org_jetbrains_skia_TextBlob__1nGetIntercepts,
org_jetbrains_skia_TextBlob__1nGetInterceptsLength,
org_jetbrains_skia_TextBlob__1nGetLastBaseline,
org_jetbrains_skia_TextBlob__1nGetPositions,
org_jetbrains_skia_TextBlob__1nGetPositionsLength,
org_jetbrains_skia_TextBlob__1nGetTightBounds,
org_jetbrains_skia_TextBlob__1nMakeFromPos,
org_jetbrains_skia_TextBlob__1nMakeFromPosH,
org_jetbrains_skia_TextBlob__1nMakeFromRSXform,
org_jetbrains_skia_TextBlob_Iter__1nCreate,
org_jetbrains_skia_TextBlob_Iter__1nFetch,
org_jetbrains_skia_TextBlob_Iter__1nGetFinalizer,
org_jetbrains_skia_TextBlob_Iter__1nGetGlyphCount,
org_jetbrains_skia_TextBlob_Iter__1nGetGlyphs,
org_jetbrains_skia_TextBlob_Iter__1nGetTypeface,
org_jetbrains_skia_TextBlob_Iter__1nHasNext,
org_jetbrains_skia_TextBlob__1nGetFinalizer,
org_jetbrains_skia_TextBlob__1nGetUniqueId,
org_jetbrains_skia_TextBlob__1nMakeFromData,
org_jetbrains_skia_TextBlob__1nSerializeToData,
org_jetbrains_skia_TextBlobBuilder__1nAppendRun,
org_jetbrains_skia_TextBlobBuilder__1nAppendRunPos,
org_jetbrains_skia_TextBlobBuilder__1nAppendRunPosH,
org_jetbrains_skia_TextBlobBuilder__1nAppendRunRSXform,
org_jetbrains_skia_TextBlobBuilder__1nBuild,
org_jetbrains_skia_TextBlobBuilder__1nGetFinalizer,
org_jetbrains_skia_TextBlobBuilder__1nMake,
org_jetbrains_skia_TextLine__1nGetAscent,
org_jetbrains_skia_TextLine__1nGetBreakOffsets,
org_jetbrains_skia_TextLine__1nGetBreakOffsetsCount,
org_jetbrains_skia_TextLine__1nGetBreakPositions,
org_jetbrains_skia_TextLine__1nGetBreakPositionsCount,
org_jetbrains_skia_TextLine__1nGetCapHeight,
org_jetbrains_skia_TextLine__1nGetCoordAtOffset,
org_jetbrains_skia_TextLine__1nGetDescent,
org_jetbrains_skia_TextLine__1nGetLeading,
org_jetbrains_skia_TextLine__1nGetLeftOffsetAtCoord,
org_jetbrains_skia_TextLine__1nGetOffsetAtCoord,
org_jetbrains_skia_TextLine__1nGetRunPositions,
org_jetbrains_skia_TextLine__1nGetRunPositionsCount,
org_jetbrains_skia_TextLine__1nGetTextBlob,
org_jetbrains_skia_TextLine__1nGetXHeight,
org_jetbrains_skia_TextLine__1nGetFinalizer,
org_jetbrains_skia_TextLine__1nGetGlyphs,
org_jetbrains_skia_TextLine__1nGetGlyphsLength,
org_jetbrains_skia_TextLine__1nGetHeight,
org_jetbrains_skia_TextLine__1nGetPositions,
org_jetbrains_skia_TextLine__1nGetWidth,
org_jetbrains_skia_Typeface__1nGetFamilyName,
org_jetbrains_skia_Typeface__1nGetFamilyNames,
org_jetbrains_skia_Typeface__1nGetFontStyle,
org_jetbrains_skia_Typeface__1nGetGlyphsCount,
org_jetbrains_skia_Typeface__1nGetKerningPairAdjustments,
org_jetbrains_skia_Typeface__1nGetTableData,
org_jetbrains_skia_Typeface__1nGetTablesCount,
org_jetbrains_skia_Typeface__1nGetTableSize,
org_jetbrains_skia_Typeface__1nGetTableTags,
org_jetbrains_skia_Typeface__1nGetTableTagsCount,
org_jetbrains_skia_Typeface__1nGetUnitsPerEm,
org_jetbrains_skia_Typeface__1nGetVariationAxes,
org_jetbrains_skia_Typeface__1nGetVariationAxesCount,
org_jetbrains_skia_Typeface__1nGetVariations,
org_jetbrains_skia_Typeface__1nGetVariationsCount,
org_jetbrains_skia_Typeface__1nIsFixedPitch,
org_jetbrains_skia_Typeface__1nMakeClone,
org_jetbrains_skia_Typeface__1nMakeFromData,
org_jetbrains_skia_Typeface__1nMakeFromFile,
org_jetbrains_skia_Typeface__1nMakeFromName,
org_jetbrains_skia_Typeface__1nEquals,
org_jetbrains_skia_Typeface__1nGetBounds,
org_jetbrains_skia_Typeface__1nGetUniqueId,
org_jetbrains_skia_Typeface__1nGetUTF32Glyph,
org_jetbrains_skia_Typeface__1nGetUTF32Glyphs,
org_jetbrains_skia_Typeface__1nMakeDefault,
org_jetbrains_skia_U16String__1nGetFinalizer,
org_jetbrains_skia_icu_Unicode_charDirection,
org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallback,
org_jetbrains_skia_paragraph_FontCollection__1nDefaultFallbackChar,
org_jetbrains_skia_paragraph_FontCollection__1nFindTypefaces,
org_jetbrains_skia_paragraph_FontCollection__1nGetFallbackManager,
org_jetbrains_skia_paragraph_FontCollection__1nGetFontManagersCount,
org_jetbrains_skia_paragraph_FontCollection__1nGetParagraphCache,
org_jetbrains_skia_paragraph_FontCollection__1nMake,
org_jetbrains_skia_paragraph_FontCollection__1nSetAssetFontManager,
org_jetbrains_skia_paragraph_FontCollection__1nSetDefaultFontManager,
org_jetbrains_skia_paragraph_FontCollection__1nSetDynamicFontManager,
org_jetbrains_skia_paragraph_FontCollection__1nSetEnableFallback,
org_jetbrains_skia_paragraph_FontCollection__1nSetTestFontManager,
org_jetbrains_skia_paragraph_LineMetrics__1nDisposeArray,
org_jetbrains_skia_paragraph_LineMetrics__1nGetArrayElement,
org_jetbrains_skia_paragraph_LineMetrics__1nGetArraySize,
org_jetbrains_skia_paragraph_Paragraph__1nDidExceedMaxLines,
org_jetbrains_skia_paragraph_Paragraph__1nGetAlphabeticBaseline,
org_jetbrains_skia_paragraph_Paragraph__1nGetGlyphPositionAtCoordinate,
org_jetbrains_skia_paragraph_Paragraph__1nGetHeight,
org_jetbrains_skia_paragraph_Paragraph__1nGetIdeographicBaseline,
org_jetbrains_skia_paragraph_Paragraph__1nGetLineMetrics,
org_jetbrains_skia_paragraph_Paragraph__1nGetLineNumber,
org_jetbrains_skia_paragraph_Paragraph__1nGetLongestLine,
org_jetbrains_skia_paragraph_Paragraph__1nGetMaxIntrinsicWidth,
org_jetbrains_skia_paragraph_Paragraph__1nGetMaxWidth,
org_jetbrains_skia_paragraph_Paragraph__1nGetMinIntrinsicWidth,
org_jetbrains_skia_paragraph_Paragraph__1nGetRectsForPlaceholders,
org_jetbrains_skia_paragraph_Paragraph__1nGetRectsForRange,
org_jetbrains_skia_paragraph_Paragraph__1nGetUnresolvedGlyphsCount,
org_jetbrains_skia_paragraph_Paragraph__1nGetWordBoundary,
org_jetbrains_skia_paragraph_Paragraph__1nLayout,
org_jetbrains_skia_paragraph_Paragraph__1nMarkDirty,
org_jetbrains_skia_paragraph_Paragraph__1nPaint,
org_jetbrains_skia_paragraph_Paragraph__1nUpdateAlignment,
org_jetbrains_skia_paragraph_Paragraph__1nUpdateBackgroundPaint,
org_jetbrains_skia_paragraph_Paragraph__1nUpdateFontSize,
org_jetbrains_skia_paragraph_Paragraph__1nUpdateForegroundPaint,
org_jetbrains_skia_paragraph_Paragraph__1nGetFinalizer,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddPlaceholder,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nAddText,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nBuild,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nMake,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nPopStyle,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nPushStyle,
org_jetbrains_skia_paragraph_ParagraphBuilder__1nGetFinalizer,
org_jetbrains_skia_paragraph_ParagraphCache__1nAbandon,
org_jetbrains_skia_paragraph_ParagraphCache__1nFindParagraph,
org_jetbrains_skia_paragraph_ParagraphCache__1nGetCount,
org_jetbrains_skia_paragraph_ParagraphCache__1nPrintStatistics,
org_jetbrains_skia_paragraph_ParagraphCache__1nReset,
org_jetbrains_skia_paragraph_ParagraphCache__1nSetEnabled,
org_jetbrains_skia_paragraph_ParagraphCache__1nUpdateParagraph,
org_jetbrains_skia_paragraph_ParagraphStyle__1nDisableHinting,
org_jetbrains_skia_paragraph_ParagraphStyle__1nEquals,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetAlignment,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetDirection,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEdging,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEffectiveAlignment,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetEllipsis,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHeightMode,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHinting,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetMaxLinesCount,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetStrutStyle,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetSubpixel,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTextIndent,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetTextStyle,
org_jetbrains_skia_paragraph_ParagraphStyle__1nIsHintingEnabled,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetAlignment,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetDirection,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetEllipsis,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetFontRastrSettings,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetHeight,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetHeightMode,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetMaxLinesCount,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetStrutStyle,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetTextIndent,
org_jetbrains_skia_paragraph_ParagraphStyle__1nSetTextStyle,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetFinalizer,
org_jetbrains_skia_paragraph_ParagraphStyle__1nGetHeight,
org_jetbrains_skia_paragraph_ParagraphStyle__1nMake,
org_jetbrains_skia_paragraph_StrutStyle__1nGetFontFamilies,
org_jetbrains_skia_paragraph_StrutStyle__1nGetFontSize,
org_jetbrains_skia_paragraph_StrutStyle__1nGetFontStyle,
org_jetbrains_skia_paragraph_StrutStyle__1nGetLeading,
org_jetbrains_skia_paragraph_StrutStyle__1nIsEnabled,
org_jetbrains_skia_paragraph_StrutStyle__1nIsHalfLeading,
org_jetbrains_skia_paragraph_StrutStyle__1nIsHeightForced,
org_jetbrains_skia_paragraph_StrutStyle__1nIsHeightOverridden,
org_jetbrains_skia_paragraph_StrutStyle__1nSetFontSize,
org_jetbrains_skia_paragraph_StrutStyle__1nSetFontStyle,
org_jetbrains_skia_paragraph_StrutStyle__1nSetHalfLeading,
org_jetbrains_skia_paragraph_StrutStyle__1nSetHeightForced,
org_jetbrains_skia_paragraph_StrutStyle__1nSetHeightOverridden,
org_jetbrains_skia_paragraph_StrutStyle__1nSetLeading,
org_jetbrains_skia_paragraph_StrutStyle__1nEquals,
org_jetbrains_skia_paragraph_StrutStyle__1nGetFinalizer,
org_jetbrains_skia_paragraph_StrutStyle__1nGetHeight,
org_jetbrains_skia_paragraph_StrutStyle__1nMake,
org_jetbrains_skia_paragraph_StrutStyle__1nSetEnabled,
org_jetbrains_skia_paragraph_StrutStyle__1nSetFontFamilies,
org_jetbrains_skia_paragraph_StrutStyle__1nSetHeight,
org_jetbrains_skia_paragraph_TextBox__1nDisposeArray,
org_jetbrains_skia_paragraph_TextBox__1nGetArrayElement,
org_jetbrains_skia_paragraph_TextBox__1nGetArraySize,
org_jetbrains_skia_paragraph_TextStyle__1nAddFontFeature,
org_jetbrains_skia_paragraph_TextStyle__1nAddShadow,
org_jetbrains_skia_paragraph_TextStyle__1nAttributeEquals,
org_jetbrains_skia_paragraph_TextStyle__1nClearFontFeatures,
org_jetbrains_skia_paragraph_TextStyle__1nClearShadows,
org_jetbrains_skia_paragraph_TextStyle__1nGetBackground,
org_jetbrains_skia_paragraph_TextStyle__1nGetBaselineMode,
org_jetbrains_skia_paragraph_TextStyle__1nGetColor,
org_jetbrains_skia_paragraph_TextStyle__1nGetDecorationStyle,
org_jetbrains_skia_paragraph_TextStyle__1nGetFontFeatures,
org_jetbrains_skia_paragraph_TextStyle__1nGetFontFeaturesSize,
org_jetbrains_skia_paragraph_TextStyle__1nGetFontMetrics,
org_jetbrains_skia_paragraph_TextStyle__1nGetForeground,
org_jetbrains_skia_paragraph_TextStyle__1nGetLetterSpacing,
org_jetbrains_skia_paragraph_TextStyle__1nGetLocale,
org_jetbrains_skia_paragraph_TextStyle__1nGetShadows,
org_jetbrains_skia_paragraph_TextStyle__1nGetShadowsCount,
org_jetbrains_skia_paragraph_TextStyle__1nGetTypeface,
org_jetbrains_skia_paragraph_TextStyle__1nGetWordSpacing,
org_jetbrains_skia_paragraph_TextStyle__1nIsPlaceholder,
org_jetbrains_skia_paragraph_TextStyle__1nSetBackground,
org_jetbrains_skia_paragraph_TextStyle__1nSetBaselineMode,
org_jetbrains_skia_paragraph_TextStyle__1nSetColor,
org_jetbrains_skia_paragraph_TextStyle__1nSetDecorationStyle,
org_jetbrains_skia_paragraph_TextStyle__1nSetFontFamilies,
org_jetbrains_skia_paragraph_TextStyle__1nSetForeground,
org_jetbrains_skia_paragraph_TextStyle__1nSetLetterSpacing,
org_jetbrains_skia_paragraph_TextStyle__1nSetLocale,
org_jetbrains_skia_paragraph_TextStyle__1nSetPlaceholder,
org_jetbrains_skia_paragraph_TextStyle__1nSetTypeface,
org_jetbrains_skia_paragraph_TextStyle__1nSetWordSpacing,
org_jetbrains_skia_paragraph_TextStyle__1nEquals,
org_jetbrains_skia_paragraph_TextStyle__1nGetBaselineShift,
org_jetbrains_skia_paragraph_TextStyle__1nGetFinalizer,
org_jetbrains_skia_paragraph_TextStyle__1nGetFontFamilies,
org_jetbrains_skia_paragraph_TextStyle__1nGetFontSize,
org_jetbrains_skia_paragraph_TextStyle__1nGetFontStyle,
org_jetbrains_skia_paragraph_TextStyle__1nGetHalfLeading,
org_jetbrains_skia_paragraph_TextStyle__1nGetHeight,
org_jetbrains_skia_paragraph_TextStyle__1nMake,
org_jetbrains_skia_paragraph_TextStyle__1nSetBaselineShift,
org_jetbrains_skia_paragraph_TextStyle__1nSetFontSize,
org_jetbrains_skia_paragraph_TextStyle__1nSetFontStyle,
org_jetbrains_skia_paragraph_TextStyle__1nSetHalfLeading,
org_jetbrains_skia_paragraph_TextStyle__1nSetHeight,
org_jetbrains_skia_paragraph_TypefaceFontProvider__1nRegisterTypeface,
org_jetbrains_skia_paragraph_TypefaceFontProvider__1nMake,
org_jetbrains_skia_shaper_FontMgrRunIterator__1nGetCurrentFont,
org_jetbrains_skia_shaper_FontMgrRunIterator__1nMake,
org_jetbrains_skia_shaper_HbIcuScriptRunIterator__1nGetCurrentScriptTag,
org_jetbrains_skia_shaper_HbIcuScriptRunIterator__1nMake,
org_jetbrains_skia_shaper_IcuBidiRunIterator__1nGetCurrentLevel,
org_jetbrains_skia_shaper_IcuBidiRunIterator__1nMake,
org_jetbrains_skia_shaper_ManagedRunIterator__1nConsume,
org_jetbrains_skia_shaper_ManagedRunIterator__1nGetEndOfCurrentRun,
org_jetbrains_skia_shaper_ManagedRunIterator__1nGetFinalizer,
org_jetbrains_skia_shaper_ManagedRunIterator__1nIsAtEnd,
org_jetbrains_skia_shaper_Shaper__1nMakeCoreText,
org_jetbrains_skia_shaper_Shaper__1nMakePrimitive,
org_jetbrains_skia_shaper_Shaper__1nMakeShapeDontWrapOrReorder,
org_jetbrains_skia_shaper_Shaper__1nMakeShaperDrivenWrapper,
org_jetbrains_skia_shaper_Shaper__1nMakeShapeThenWrap,
org_jetbrains_skia_shaper_Shaper__1nShapeBlob,
org_jetbrains_skia_shaper_Shaper__1nShapeLine,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nCreate,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetClusters,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetFinalizer,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetGlyphs,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetPositions,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nGetRunInfo,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nInit,
org_jetbrains_skia_shaper_Shaper_RunHandler_1nSetOffset,
org_jetbrains_skia_shaper_Shaper_RunIterator_1nCreateRunIterator,
org_jetbrains_skia_shaper_Shaper_RunIterator_1nGetFinalizer,
org_jetbrains_skia_shaper_Shaper_RunIterator_1nInitRunIterator,
org_jetbrains_skia_shaper_Shaper__1nGetFinalizer,
org_jetbrains_skia_shaper_Shaper__1nMake,
org_jetbrains_skia_shaper_Shaper__1nShape,
org_jetbrains_skia_TextBlobBuilderRunHandler__1nMakeBlob,
org_jetbrains_skia_TextBlobBuilderRunHandler__1nGetFinalizer,
org_jetbrains_skia_TextBlobBuilderRunHandler__1nMake,
org_jetbrains_skia_skottie_Animation__1nGetDuration,
org_jetbrains_skia_skottie_Animation__1nGetFinalizer,
org_jetbrains_skia_skottie_Animation__1nGetFPS,
org_jetbrains_skia_skottie_Animation__1nGetInPoint,
org_jetbrains_skia_skottie_Animation__1nGetOutPoint,
org_jetbrains_skia_skottie_Animation__1nGetSize,
org_jetbrains_skia_skottie_Animation__1nGetVersion,
org_jetbrains_skia_skottie_Animation__1nMakeFromData,
org_jetbrains_skia_skottie_Animation__1nMakeFromFile,
org_jetbrains_skia_skottie_Animation__1nMakeFromString,
org_jetbrains_skia_skottie_Animation__1nRender,
org_jetbrains_skia_skottie_Animation__1nSeek,
org_jetbrains_skia_skottie_Animation__1nSeekFrame,
org_jetbrains_skia_skottie_Animation__1nSeekFrameTime,
org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromData,
org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromFile,
org_jetbrains_skia_skottie_AnimationBuilder__1nBuildFromString,
org_jetbrains_skia_skottie_AnimationBuilder__1nSetFontManager,
org_jetbrains_skia_skottie_AnimationBuilder__1nSetLogger,
org_jetbrains_skia_skottie_AnimationBuilder__1nGetFinalizer,
org_jetbrains_skia_skottie_AnimationBuilder__1nMake,
org_jetbrains_skia_skottie_Logger__1nMake,
org_jetbrains_skia_skottie_Logger__1nGetLogJson,
org_jetbrains_skia_skottie_Logger__1nGetLogLevel,
org_jetbrains_skia_skottie_Logger__1nGetLogMessage,
org_jetbrains_skia_skottie_Logger__1nInit,
org_jetbrains_skia_sksg_InvalidationController_nGetBounds,
org_jetbrains_skia_sksg_InvalidationController_nGetFinalizer,
org_jetbrains_skia_sksg_InvalidationController_nInvalidate,
org_jetbrains_skia_sksg_InvalidationController_nMake,
org_jetbrains_skia_sksg_InvalidationController_nReset,
org_jetbrains_skia_svg_SVGCanvasKt__1nMake,
org_jetbrains_skia_svg_SVGDOM__1nGetContainerSize,
org_jetbrains_skia_svg_SVGDOM__1nGetRoot,
org_jetbrains_skia_svg_SVGDOM__1nMakeFromData,
org_jetbrains_skia_svg_SVGDOM__1nRender,
org_jetbrains_skia_svg_SVGDOM__1nSetContainerSize,
org_jetbrains_skia_svg_SVGNode__1nGetTag,
org_jetbrains_skia_svg_SVGSVG__1nGetHeight,
org_jetbrains_skia_svg_SVGSVG__1nGetIntrinsicSize,
org_jetbrains_skia_svg_SVGSVG__1nGetPreserveAspectRatio,
org_jetbrains_skia_svg_SVGSVG__1nGetViewBox,
org_jetbrains_skia_svg_SVGSVG__1nGetWidth,
org_jetbrains_skia_svg_SVGSVG__1nGetX,
org_jetbrains_skia_svg_SVGSVG__1nGetY,
org_jetbrains_skia_svg_SVGSVG__1nSetHeight,
org_jetbrains_skia_svg_SVGSVG__1nSetPreserveAspectRatio,
org_jetbrains_skia_svg_SVGSVG__1nSetViewBox,
org_jetbrains_skia_svg_SVGSVG__1nSetWidth,
org_jetbrains_skia_svg_SVGSVG__1nSetX,
org_jetbrains_skia_svg_SVGSVG__1nSetY,
org_jetbrains_skiko_tests_TestHelpers__1nFillByteArrayOf5,
org_jetbrains_skiko_tests_TestHelpers__1nFillDoubleArrayOf5,
org_jetbrains_skiko_tests_TestHelpers__1nFillFloatArrayOf5,
org_jetbrains_skiko_tests_TestHelpers__1nFillIntArrayOf5,
org_jetbrains_skiko_tests_TestHelpers__1nFillShortArrayOf5,
org_jetbrains_skiko_tests_TestHelpers__nStringByIndex,
org_jetbrains_skiko_tests_TestHelpers__1nWriteArraysOfInts,
org_jetbrains_skiko_tests_TestHelpers__1nCreateTestGlContext,
org_jetbrains_skiko_tests_TestHelpers__1nGlContextGetFinalizer,
org_jetbrains_skiko_tests_TestHelpers__1nMakeGlContextCurrent,
org_jetbrains_skiko_tests_TestHelpers__1nGlContextSwapBuffers,
org_jetbrains_skia_impl_Managed__invokeFinalizer,
free,
malloc,
org_jetbrains_skia_impl_RefCnt__getRefCount,
org_jetbrains_skia_impl_RefCnt__getFinalizer,
org_jetbrains_skia_OutputWStream__1nMake,
org_jetbrains_skia_OutputWStream__1nGetFinalizer,
skia_memGetByte,
skia_memGetChar,
skia_memGetDouble,
skia_memGetFloat,
skia_memGetInt,
skia_memGetShort,
skia_memSetByte,
skia_memSetChar,
skia_memSetDouble,
skia_memSetFloat,
skia_memSetInt,
skia_memSetShort
} = loadedWasm.wasmExports;
\ No newline at end of file
var {_callCallback, _registerCallback, _releaseCallback, _createLocalCallbackScope, _releaseLocalCallbackScope} = (() => {
// This file is merged with skiko.js and skiko.mjs by emcc
// It used by setup.js and setup.mjs (see in the same directory)
const SkikoCallbacks = (() => {
const CB_NULL = {
callback: () => { throw new RangeError("attempted to call a callback at NULL") },
data: null
......@@ -68,12 +72,4 @@ var {_callCallback, _registerCallback, _releaseCallback, _createLocalCallbackSco
scope = GLOBAL_SCOPE
},
}
})();
var wasmSetup = new Promise(function(resolve, reject) {
Module['onRuntimeInitialized'] = _ => {
resolve(Module);
};
});
function onWasmReady(onReady) { wasmSetup.then(onReady); }
\ No newline at end of file
})();
\ No newline at end of file
......@@ -48,11 +48,4 @@ class ResourcesTest {
0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04
), loadFont("Regular"))
}
@Test
fun typedArrayCastTest() {
val data = Int8Array(byteArrayOf(1, 2, 3, 4, 5).toTypedArray())
val casted = data.unsafeCast<ByteArray>()
assertContentEquals(byteArrayOf(1, 2, 3, 4, 5), casted)
}
}
\ No newline at end of file
package org.jetbrains.skiko.tests
import org.jetbrains.skia.Data
import org.jetbrains.skia.impl.InteropScope
import org.jetbrains.skia.impl.NativePointer
internal actual fun InteropScope.allocateBytesForPixels(size: Int): NativePointer {
return toInterop(ByteArray(size))
}
actual annotation class SkipJvmTarget
actual annotation class SkipNativeTarget
actual fun makeFromFileName(path: String?): Data = Data(0)
actual val isDebugModeOnJvm: Boolean = false
\ No newline at end of file
......@@ -15,5 +15,3 @@ actual typealias Matcher = java.util.regex.Matcher
actual fun defaultLanguageTag(): String = Locale.getDefault().toLanguageTag()
internal actual fun compilePattern(regex: String): Pattern = Pattern.compile(regex)
actual typealias OutputStream = java.io.OutputStream
......@@ -3,6 +3,7 @@ package org.jetbrains.skia
import org.jetbrains.skia.impl.Library.Companion.staticLoad
import org.jetbrains.skia.impl.Stats
import org.jetbrains.skia.impl.NativePointer
import java.io.OutputStream
class OutputWStream(out: OutputStream?) : WStream(_nMake(out), _FinalizerHolder.PTR) {
companion object {
......
......@@ -48,6 +48,7 @@ internal actual fun reachabilityBarrier(obj: Any?) {
actual typealias NativePointer = Long
@Suppress("ACTUAL_TYPE_ALIAS_TO_NULLABLE_TYPE")
actual typealias InteropPointer = Any?
internal object theScope: InteropScope()
......
......@@ -8,8 +8,12 @@ import org.jetbrains.skia.impl.NativePointer
import org.jetbrains.skia.makeFromFileName
import java.nio.ByteBuffer
actual fun runTest(block: suspend () -> Unit) {
runBlocking { block() }
actual fun <T> runTest(block: suspend () -> Unit): T {
error("It's a fake actual. Not expected to be called")
}
fun runTest(block: suspend () -> Unit): Unit {
return runBlocking { block() }
}
internal actual fun InteropScope.allocateBytesForPixels(size: Int): NativePointer {
......@@ -18,6 +22,8 @@ internal actual fun InteropScope.allocateBytesForPixels(size: Int): NativePointe
actual annotation class SkipJsTarget
actual annotation class SkipWasmTarget
actual typealias SkipJvmTarget = org.junit.Ignore
actual annotation class SkipNativeTarget
......
......@@ -188,4 +188,4 @@ class FrameDispatcherTest {
assertEquals(listOf("frame0", "task", "frame1"), history)
}
}
\ No newline at end of file
}
......@@ -21,9 +21,9 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeGLWithInterf
return reinterpret_cast<KNativePointer>(GrDirectContext::MakeGL(iface).release());
}
#ifdef SK_METAL
SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeMetal
(long devicePtr, long queuePtr) {
(KNativePointer devicePtr, KNativePointer queuePtr) {
#ifdef SK_METAL
GrMtlBackendContext backendContext = {};
GrMTLHandle device = reinterpret_cast<GrMTLHandle>((devicePtr));
GrMTLHandle queue = reinterpret_cast<GrMTLHandle>((queuePtr));
......@@ -31,8 +31,10 @@ SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeMetal
backendContext.fQueue.retain(queue);
sk_sp<GrDirectContext> instance = GrDirectContext::MakeMetal(backendContext);
return reinterpret_cast<KNativePointer>(instance.release());
}
#else
return nullptr;
#endif // SK_METAL
}
SKIKO_EXPORT KNativePointer org_jetbrains_skia_DirectContext__1nMakeDirect3D
(KNativePointer adapterPtr, KNativePointer devicePtr, KNativePointer queuePtr) {
......
......@@ -378,6 +378,25 @@ void callVoidCallback(KInteropPointer cb) {
}, cb);
}
SKIKO_EXPORT KByte skia_memGetByte(KByte* address) { return *address; }
SKIKO_EXPORT void skia_memSetByte(KByte* address, KByte value) { address[0] = value; }
SKIKO_EXPORT KChar skia_memGetChar(KChar* address) { return *address; }
SKIKO_EXPORT void skia_memSetChar(KChar* address, KChar value) { address[0] = value; }
SKIKO_EXPORT KShort skia_memGetShort(KShort* address) { return *address; }
SKIKO_EXPORT void skia_memSetShort(KShort* address, KShort value) { address[0] = value; }
SKIKO_EXPORT KInt skia_memGetInt(KInt* address) { return *address; }
SKIKO_EXPORT void skia_memSetInt(KInt* address, KInt value) { address[0] = value; }
SKIKO_EXPORT KFloat skia_memGetFloat(KFloat* address) { return *address; }
SKIKO_EXPORT void skia_memSetFloat(KFloat* address, KFloat value) { address[0] = value; }
SKIKO_EXPORT KDouble skia_memGetDouble(KDouble* address) { return *address; }
SKIKO_EXPORT void skia_memSetDouble(KDouble* address, KDouble value) { address[0] = value; }
#else // __EMSCRIPTEN__
static SkikoDisposeCallback disposeCallbackImpl = nullptr;
......
......@@ -5,8 +5,6 @@ import kotlinx.cinterop.CPointer
import org.jetbrains.skia.impl.InteropPointer
import org.jetbrains.skia.impl.withResult
actual abstract class OutputStream
internal actual fun <R> commonSynchronized(lock: Any, block: () -> R) {
block()
}
......
......@@ -2,7 +2,7 @@ package org.jetbrains.skia.impl
import kotlinx.cinterop.nativeNullPtr
import org.jetbrains.skia.ExternalSymbolName
import kotlin.native.concurrent.AtomicNativePtr
import kotlin.concurrent.AtomicNativePtr
import kotlin.native.concurrent.freeze
import kotlin.native.internal.createCleaner
......
package org.jetbrains.skia.impl
import kotlin.native.concurrent.AtomicLong
import kotlin.concurrent.AtomicLong
actual object Stats {
val enabled = false
......@@ -8,19 +8,19 @@ actual object Stats {
val allocated = AtomicLong(0)
actual fun onNativeCall() {
if (enabled) nativeCalls.increment()
if (enabled) nativeCalls.incrementAndGet()
}
actual fun onAllocated(className: String) {
if (enabled) {
allocated.increment()
allocated.incrementAndGet()
println("AFTER ALLOC: $allocated")
}
}
actual fun onDeallocated(className: String) {
if (enabled) {
allocated.decrement()
allocated.decrementAndGet()
println("AFTER DEALLOC: $allocated")
}
}
......
package org.jetbrains.skiko
import kotlin.experimental.ExperimentalNativeApi
@OptIn(ExperimentalNativeApi::class)
actual val hostOs: OS by lazy {
when (Platform.osFamily) {
OsFamily.MACOSX -> OS.MacOS
......@@ -10,6 +13,7 @@ actual val hostOs: OS by lazy {
}
}
@OptIn(ExperimentalNativeApi::class)
actual val hostArch: Arch by lazy {
when (Platform.cpuArchitecture) {
CpuArchitecture.X64 -> Arch.X64
......
......@@ -6,8 +6,12 @@ import org.jetbrains.skia.impl.InteropScope
import org.jetbrains.skia.impl.NativePointer
import org.jetbrains.skia.makeFromFileName
actual fun runTest(block: suspend () -> Unit) {
runBlocking { block() }
actual fun <T> runTest(block: suspend () -> Unit): T {
error("It's a fake actual. Not expected to be called")
}
fun runTest(block: suspend () -> Unit): Unit {
return runBlocking { block() }
}
internal actual fun InteropScope.allocateBytesForPixels(size: Int): NativePointer {
......@@ -16,6 +20,8 @@ internal actual fun InteropScope.allocateBytesForPixels(size: Int): NativePointe
actual annotation class SkipJsTarget
actual annotation class SkipWasmTarget
actual annotation class SkipJvmTarget
actual typealias SkipNativeTarget = kotlin.test.Ignore
......
package org.jetbrains.skia
actual annotation class ExternalSymbolName(actual val name: String)
actual typealias ModuleImport = kotlin.wasm.WasmImport
\ No newline at end of file
package org.jetbrains.skia.impl
internal external class FinalizationRegistry(cleanup: (JsReference<FinalizationThunk>) -> Unit) {
fun register(obj: JsReference<Managed>, handle: JsReference<FinalizationThunk>)
fun unregister(obj: JsReference<Managed>)
}
private val registry = FinalizationRegistry { thunk: JsReference<FinalizationThunk> ->
thunk.get().clean()
}
internal actual fun register(managed: Managed, thunk: FinalizationThunk) {
registry.register(managed.toJsReference(), thunk.toJsReference())
}
internal actual fun unregister(managed: Managed) {
registry.unregister(managed.toJsReference())
}
\ No newline at end of file
package org.jetbrains.skia.impl
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memSetByte")
external fun skia_memSetByte(address: NativePointer, value: Byte)
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memGetByte")
external fun skia_memGetByte(address: NativePointer): Byte
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memSetChar")
external fun skia_memSetChar(address: NativePointer, value: Char)
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memGetChar")
external fun skia_memGetChar(address: NativePointer): Char
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memSetShort")
external fun skia_memSetShort(address: NativePointer, value: Short)
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memGetShort")
external fun skia_memGetShort(address: NativePointer): Short
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memSetInt")
external fun skia_memSetInt(address: NativePointer, value: Int)
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memGetInt")
external fun skia_memGetInt(address: NativePointer): Int
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memSetFloat")
external fun skia_memSetFloat(address: NativePointer, value: Float)
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memGetFloat")
external fun skia_memGetFloat(address: NativePointer): Float
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memSetDouble")
external fun skia_memSetDouble(address: NativePointer, value: Double)
@kotlin.wasm.WasmImport("./skiko.mjs", "skia_memGetDouble")
external fun skia_memGetDouble(address: NativePointer): Double
internal actual fun toWasm(dest: NativePointer, src: ByteArray) {
var address = dest
for (value in src) {
skia_memSetByte(address, value)
address += Byte.SIZE_BYTES
}
}
internal actual fun toWasm(dest: NativePointer, src: ShortArray) {
var address = dest
for (value in src) {
skia_memSetShort(address, value)
address += Short.SIZE_BYTES
}
}
internal actual fun toWasm(dest: NativePointer, src: CharArray) {
var address = dest
for (value in src) {
skia_memSetChar(address, value)
address += Char.SIZE_BYTES
}
}
internal actual fun toWasm(dest: NativePointer, src: IntArray) {
var address = dest
for (value in src) {
skia_memSetInt(address, value)
address += Int.SIZE_BYTES
}
}
internal actual fun toWasm(dest: NativePointer, src: FloatArray) {
var address = dest
for (value in src) {
skia_memSetFloat(address, value)
address += Float.SIZE_BYTES
}
}
internal actual fun toWasm(dest: NativePointer, src: DoubleArray) {
var address = dest
for (value in src) {
skia_memSetDouble(address, value)
address += Double.SIZE_BYTES
}
}
internal actual fun fromWasm(src: NativePointer, result: ByteArray) {
var address = src
for (index in result.indices) {
result[index] = skia_memGetByte(address)
address += Byte.SIZE_BYTES
}
}
internal actual fun fromWasm(src: NativePointer, result: ShortArray) {
var address = src
for (index in result.indices) {
result[index] = skia_memGetShort(address)
address += Short.SIZE_BYTES
}
}
internal actual fun fromWasm(src: NativePointer, result: IntArray) {
var address = src
for (index in result.indices) {
result[index] = skia_memGetInt(address)
address += Int.SIZE_BYTES
}
}
internal actual fun fromWasm(src: NativePointer, result: FloatArray) {
var address = src
for (index in result.indices) {
result[index] = skia_memGetFloat(address)
address += Float.SIZE_BYTES
}
}
internal actual fun fromWasm(src: NativePointer, result: DoubleArray) {
var address = src
for (index in result.indices) {
result[index] = skia_memGetDouble(address)
address += Double.SIZE_BYTES
}
}
internal actual fun stringToUTF8(str: String, outPtr: NativePointer, maxBytesToWrite: Int) {
if (maxBytesToWrite <= 0) return
val utf8 = str.encodeToByteArray()
val lastIndex = minOf(maxBytesToWrite - 1, utf8.size)
var index = 0
while (index < lastIndex) {
skia_memSetByte(outPtr + index, utf8[index])
index++
}
skia_memSetByte(outPtr + index, 0)
}
internal actual class InteropScope actual constructor() {
private val elements = mutableListOf<NativePointer>()
private var callbacksInitialized = false
actual fun toInterop(string: String?): InteropPointer {
return if (string != null) {
val data = _malloc(string.length * 4)
stringToUTF8(string, data, string.length * 4)
elements.add(data)
data
} else {
0
}
}
private fun toInterop(array: ByteArray?, copyArrayToWasm: Boolean): InteropPointer {
return if (array != null && array.isNotEmpty()) {
val data = _malloc(array.size)
elements.add(data)
if (copyArrayToWasm) toWasm(data, array)
data
} else {
0
}
}
actual fun toInterop(array: ByteArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = true)
actual fun toInteropForResult(array: ByteArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = false)
actual fun InteropPointer.fromInterop(result: ShortArray) {
fromWasm(this@fromInterop, result)
}
private fun toInterop(array: ShortArray?, copyArrayToWasm: Boolean): InteropPointer {
return if (array != null && array.isNotEmpty()) {
val data = _malloc(array.size * 2)
elements.add(data)
if (copyArrayToWasm) toWasm(data, array)
data
} else {
0
}
}
actual fun toInterop(array: ShortArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = true)
actual fun toInteropForResult(array: ShortArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = false)
actual fun InteropPointer.fromInterop(result: IntArray) {
fromWasm(this@fromInterop, result)
}
private fun toInterop(array: IntArray?, copyArrayToWasm: Boolean): InteropPointer {
return if (array != null && array.isNotEmpty()) {
val data = _malloc(array.size * 4)
elements.add(data)
if (copyArrayToWasm) toWasm(data, array)
data
} else {
0
}
}
actual fun toInterop(array: IntArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = true)
actual fun toInteropForResult(array: IntArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = false)
actual fun InteropPointer.fromInterop(result: LongArray) {
TODO("implement wasm fromInterop(LongArray)")
}
actual fun toInterop(array: LongArray?): InteropPointer {
TODO("implement wasm toInterop(LongArray)")
}
actual fun InteropPointer.fromInterop(result: FloatArray) {
fromWasm(this@fromInterop, result)
}
private fun toInterop(array: FloatArray?, copyArrayToWasm: Boolean): InteropPointer {
return if (array != null && array.isNotEmpty()) {
val data = _malloc(array.size * 4)
elements.add(data)
if (copyArrayToWasm) toWasm(data, array)
data
} else {
0
}
}
actual fun toInterop(array: FloatArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = true)
actual fun toInteropForResult(array: FloatArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = false)
actual fun InteropPointer.fromInterop(result: DoubleArray) {
fromWasm(this@fromInterop, result)
}
private fun toInterop(array: DoubleArray?, copyArrayToWasm: Boolean): InteropPointer {
return if (array != null && array.isNotEmpty()) {
val data = _malloc(array.size * 8)
elements.add(data)
if (copyArrayToWasm) toWasm(data, array)
data
} else {
0
}
}
actual fun toInterop(array: DoubleArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = true)
actual fun toInteropForResult(array: DoubleArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = false)
actual fun InteropPointer.fromInterop(result: ByteArray) {
fromWasm(this@fromInterop, result)
}
private fun toInterop(array: NativePointerArray?, copyArrayToWasm: Boolean): InteropPointer {
return if (array != null && array.size > 0) {
val data = _malloc(array.size * 4)
elements.add(data)
if (copyArrayToWasm) toWasm(data, array.backing)
data
} else {
0
}
}
actual fun toInterop(array: NativePointerArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = true)
actual fun toInteropForResult(array: NativePointerArray?): InteropPointer =
toInterop(array = array, copyArrayToWasm = false)
actual fun InteropPointer.fromInterop(result: NativePointerArray) {
return fromWasm(this@fromInterop, result.backing)
}
actual fun toInterop(stringArray: Array<String>?): InteropPointer {
return if (stringArray != null && stringArray.isNotEmpty()) {
val ptrs = stringArray.map {
toInterop(it)
}.toIntArray()
toInterop(ptrs)
} else {
0
}
}
actual fun InteropPointer.fromInteropNativePointerArray(): NativePointerArray {
TODO("implement wasm fromInteropNativePointerArray")
}
actual inline fun <reified T> InteropPointer.fromInterop(decoder: ArrayInteropDecoder<T>): Array<T> {
val size = decoder.getArraySize(this)
val result = Array(size) {
decoder.getArrayElement(this, it)
}
decoder.disposeArray(this)
return result
}
actual fun toInteropForArraysOfPointers(interopPointers: Array<InteropPointer>): InteropPointer {
return toInterop(interopPointers.toIntArray())
}
actual fun booleanCallback(callback: (() -> Boolean)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = crateCallbackObj() as CallbackDataBoolean
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun intCallback(callback: (() -> Int)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = crateCallbackObj() as CallbackDataInt
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun nativePointerCallback(callback: (() -> NativePointer)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = crateCallbackObj() as CallbackDataNativePointer
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun interopPointerCallback(callback: (() -> InteropPointer)?): NativePointer {
if (callback == null) { return 0 }
initCallbacks()
val data = crateCallbackObj() as CallbackDataInteropPointer
return _registerCallback({ data.value = callback() }, data, global = false)
}
actual fun callback(callback: (() -> Unit)?): InteropPointer {
if (callback == null) { return 0 }
initCallbacks()
return _registerCallback({ callback() }, null, global = false)
}
actual fun virtual(method: () -> Unit): InteropPointer {
return _registerCallback({ method() }, null, global = true)
}
actual fun virtualBoolean(method: () -> Boolean): InteropPointer {
val data = crateCallbackObj() as CallbackDataBoolean
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun virtualInt(method: () -> Int): InteropPointer {
val data = crateCallbackObj() as CallbackDataInt
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun virtualNativePointer(method: () -> NativePointer): InteropPointer {
val data = crateCallbackObj() as CallbackDataNativePointer
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun virtualInteropPointer(method: () -> InteropPointer): InteropPointer {
val data = crateCallbackObj() as CallbackDataInteropPointer
return _registerCallback({ data.value = method() }, data, global = true)
}
actual fun release() {
elements.forEach {
_free(it)
}
elements.clear()
releaseCallbacks()
}
private inline fun initCallbacks() {
if (!callbacksInitialized) {
_createLocalCallbackScope()
callbacksInitialized = true
}
}
private inline fun releaseCallbacks() {
if (callbacksInitialized) {
_releaseLocalCallbackScope()
callbacksInitialized = false
}
}
}
@JsFun("() => { return {} }")
private external fun crateCallbackObj(): JsAny
// Callbacks
internal external interface CallbackDataBoolean : JsAny { @JsName("value") var value: Boolean? }
internal external interface CallbackDataInt : JsAny { @JsName("value") var value: Int? }
internal external interface CallbackDataNativePointer : JsAny { @JsName("value") var value: NativePointer? }
internal external interface CallbackDataInteropPointer: JsAny { @JsName("value") var value: InteropPointer? }
\ No newline at end of file
@file:JsModule("./skiko.mjs")
package org.jetbrains.skia.impl
// See `setup.mjs`
internal external fun _registerCallback(cb: () -> Unit, data: JsAny?, global: Boolean): Int
internal external fun _createLocalCallbackScope()
internal external fun _releaseLocalCallbackScope()
\ No newline at end of file
package org.jetbrains.skiko
import org.w3c.dom.events.MouseEvent
import org.w3c.dom.events.UIEvent
internal actual fun getEventTimestamp(e: UIEvent): Long {
// TODO: why can't do timestamp.toLong()
return e.timeStamp.toInt().toLong()
}
\ No newline at end of file
package org.jetbrains.skiko
import kotlin.js.*
import kotlinx.coroutines.asDeferred
@JsFun("(path) => window.fetch(path).then((r) => r.arrayBuffer()).then((b) => new Int8Array(b))")
private external fun loadResource(path: String): Promise<JsAny>
@JsFun("(array) => array.length")
private external fun arrayLength(array: JsAny): Int
@JsFun("(array, index) => array[index]")
private external fun arrayGet(array: JsAny, index: Int): Byte
actual suspend fun loadBytesFromPath(path: String): ByteArray {
val resourceArray = loadResource(path).asDeferred<JsAny>().await()
return ByteArray(arrayLength(resourceArray)) {
arrayGet(resourceArray, it)
}
}
@file:JsModule("./skiko.mjs")
package org.jetbrains.skiko.wasm
import org.jetbrains.skia.impl.NativePointer
import org.w3c.dom.HTMLCanvasElement
import kotlin.js.*
internal external object GL : GLInterface {
override fun createContext(context: HTMLCanvasElement, contextAttributes: ContextAttributes): Int = definedExternally
override fun makeContextCurrent(contextPointer: NativePointer): Boolean = definedExternally
}
private external interface GLInterface {
fun createContext(context: HTMLCanvasElement, contextAttributes: ContextAttributes): NativePointer;
fun makeContextCurrent(contextPointer: NativePointer): Boolean;
}
\ No newline at end of file
package org.jetbrains.skiko.wasm
import org.jetbrains.skia.impl.NativePointer
import org.w3c.dom.HTMLCanvasElement
@JsFun(
"""() => {
return {
alpha: 1,
depth: 1,
stencil: 8,
antialias: 0,
premultipliedAlpha: 1,
preserveDrawingBuffer: 0,
preferLowPowerToHighPerformance: 0,
failIfMajorPerformanceCaveat: 0,
enableExtensionsByDefault: 1,
explicitSwapControl: 0,
renderViaOffscreenBackBuffer: 0,
majorVersion: 2,
}
}
""")
private external fun createDefaultContextAttributes(): ContextAttributes
internal actual fun createWebGLContext(canvas: HTMLCanvasElement, attr: ContextAttributes?): NativePointer {
check(attr === null) { "TODO!" }
return GL.createContext(canvas, createDefaultContextAttributes())
}
package org.jetbrains.skiko
actual fun resourcePath(resourceId: String): String = "resources/" + resourceId
package org.jetbrains.skiko.tests
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.promise
actual annotation class SkipJsTarget
actual typealias SkipWasmTarget = kotlin.test.Ignore
@JsFun("() => ''")
private external fun jsRef(): JsAny
/**
* Runs the [block] in a coroutine.
*/
actual fun <T> runTest(block: suspend () -> Unit): T {
error("It's a fake actual. Not expected to be called")
}
fun runTest(block: suspend () -> Unit): Any = MainScope().promise {
block()
jsRef()
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment