Releases: JetBrains/skiko
Releases Β· JetBrains/skiko
Version 0.8.3
Option to not throw RenderException when use OpenGL on macOS (#915) To allow using OpenGL on macOs, call: ``` System.setProperty("skiko.macos.opengl.enabled", "true") ``` By request from user in DM who uses LWJGL+Skiko on macOS.
Version 0.8.1
Windows. Fix a crash on CI without `dcomp.dll` (#909) ## Issues fixed Some CI don't have this library and when we run an application we have a crash: ``` ...\skiko-windows-x64.dll: Can't find dependent libraries java.lang.UnsatisfiedLinkError: ...\skiko-windows-x64.dll: Can't find dependent libraries at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394) at java.base/java.lang.Runtime.load0(Runtime.java:755) at java.base/java.lang.System.load(System.java:1957) at org.jetbrains.skiko.Library.loadLibraryOrCopy(Library.kt:17) at org.jetbrains.skiko.Library.findAndLoad(Library.kt:111) at org.jetbrains.skiko.Library.load(Library.kt:56) at org.jetbrains.skia.impl.Library$Companion.staticLoad(Library.jvm.kt:12) at org.jetbrains.skia.Surface.<clinit>(Surface.kt:539) at androidx.compose.ui.test.SkikoComposeUiTest.<init>(ComposeUiTest.skikoMain.kt:172) at androidx.compose.ui.test.SkikoComposeUiTest.<init>(ComposeUiTest.skikoMain.kt:118) at androidx.compose.ui.test.SkikoComposeUiTest.<init>(ComposeUiTest.skikoMain.kt:139) at androidx.compose.ui.test.SkikoComposeUiTest.<init>(ComposeUiTest.skikoMain.kt:134) at androidx.compose.ui.test.junit4.DesktopComposeTestRule.<init>(DesktopComposeTestRule.desktop.kt:54) at androidx.compose.ui.test.junit4.DesktopComposeTestRule_desktopKt.createComposeRule(DesktopComposeTestRule.desktop.kt:41) ``` Reported in https://jetbrains.slack.com/archives/C5VQN94SH/p1712564847131459?thread_ts=1712091431.760099&cid=C5VQN94SH ## Proposed changes Load this library in runtime, and fallback to `CreateSwapChainForComposition` ## Testing 1. Run Compose with transparent window: ``` import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.Surface import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Window import androidx.compose.ui.window.application import androidx.compose.material.Text import androidx.compose.runtime.* fun main() = application { var isOpen by remember { mutableStateOf(true) } if (isOpen) { Window( onCloseRequest = { isOpen = false }, title = "Transparent Window Example", transparent = true, undecorated = true, //transparent window must be undecorated ) { Surface( modifier = Modifier.fillMaxSize().padding(5.dp).shadow(3.dp, RoundedCornerShape(20.dp)), color = Color(55, 55, 55), shape = RoundedCornerShape(20.dp) //window has round corners now ) { Text("Hello World!", color = Color.White) } } } } ``` Transparency should work, there shouldn't be errors in the log. 2. change `transparent = false` Transparency shouldn't work, there shouldn't be errors in the log. This should be tested by QA. --------- Co-authored-by: Ivan Matkov <[email protected]>
Version 0.8.0
Remove input handling (#893) skiko is supposed to be a wrapper around skia, however it has unrelated features like input. This PR removes it from this library - it's supposed to be handled externally. - Removed `SkikoInput`, `SkikoKey`, `SkikoPlatform*Event` - Replaced `SkikoView` to `SkikoRenderDelegate` and related field in `SkiaLayer` - `SkiaLayer` on macOS native now receives `NSView` instead of creating it internally and attaching it to the `NSWindow`. In theory, it allows initializing non-full-window skia view there (not tested) - Updated samples and readme
Version 0.7.99
v0.7.99 Fix skiko.mjs import name (#895)
Version 0.7.98.1
Remove media events from Skiko completely (#892) This is the skiko part of https://youtrack.jetbrains.com/issue/COMPOSE-1149/wasm-js-Remove-media-events-from-Skiko This commit introduces following changes: * CanvasRenderer is html-agnostic and deals with NativePointer * SkiaLayer does not set any DOM dimensions of the canvas - it's up to the user of the Skia to resolve this dimensions * Media event listeners are removed completely
Version 0.7.97
Windows. Fix a crash when we resize to zero and then to non-zero (#883) Fixes https://github.com/JetBrains/compose-multiplatform/issues/4425 It is a regression after https://github.com/JetBrains/skiko/pull/858 The crash was because `d3dDevice->swapChain->GetBuffer` didn't return the buffer to draw on if we reused the buffer from the previous frame (we didn't change `surface` in case of zero size). I am not completely sure why, but I exhausted my the investigation limit and this fix is needed by other reasons (we need to wait for vsync). ## Testing An additional check in the existed test (fails before the fix)
Version 0.7.96
Update skiko build for ICU renamed symbols (#881) Now we build skia/icu with _skiko suffix to avoid clashes with Apple SDK Corresponding skia change: https://github.com/JetBrains/skia/pull/3 Corresponding skia commit: https://github.com/JetBrains/skia/commit/47d3027b8cbeea76135c0995d5886aa2e58e7512
Version 0.7.95.1
v0.7.95.1 Use CreateSwapChainForHwnd without transparency
Version 0.7.95
Add fallback to `CreateSwapChainForHwnd` (#856) It adds a fallback to the old initialization method in case of any problems.
Version 0.7.94
Offscreen, Linux. Fix native crash when OpenGL isn't available (#877) Instead, fallback to Software. Discovered during https://github.com/JetBrains/skiko/issues/876 investigation ## Explanation We throw RenderException, and Fallback mechanism catches it and switches to Software ## Testing 1. Setup the system without OpenGL 2. Run SkiaSwingLayer 3. See the native crash