Releases: JetBrains/skiko
Releases · JetBrains/skiko
Version 0.8.12
v0.8.12 Run invalidUnicode for js target, introduce additional test for Para…
Version 0.8.11
- Updated to skia m126
Version 0.8.10.1
v0.8.10.1 update to skia m126
Version 0.8.10
Add Windows Jump Lists support in AWT (#943) This PR adds Windows Jump Lists support to AWT and fixes compilation on Visual Studio 2022.
Version 0.8.9
v0.8.9 Add API to configure the fallback fonts provider when all default met…
Version 0.8.8
Allow paint before showing (#941) Fix compose tests after #923
Version 0.8.7
v0.8.7 Make getAccessibleContext return nullable AccessibleContext (#940)
Version 0.8.6
v0.8.6 Expose SkiaLayerProperties (#938)
Version 0.8.5
Redraw immediately on panel size change (#923) Fixes a couple of issues like: https://github.com/JetBrains/compose-multiplatform/issues/4744 (TODO: collect all references) Before (slow-mo) https://github.com/JetBrains/skiko/assets/1836384/5768b139-d08f-4142-8c14-2969107807f9 After (slow-mo) https://github.com/JetBrains/skiko/assets/1836384/cc9a5103-3d30-412e-a5a4-baf590d657b8
Version 0.8.4
Fix crash when creating SwingRedrawer on DirectX (#917) ### Changes Throw `RenderException` when constructing `Direct3DSwingRedrawer` with `nullptr` device. (Similar to `Direct3DRedrawer`) To avoid crash in: ``` DirectXOffscreenDevice *d3dDevice = fromJavaPointer<DirectXOffscreenDevice *>(devicePtr); GrD3DBackendContext backendContext = d3dDevice->backendContext; return toJavaPointer(GrDirectContext::MakeDirect3D(backendContext).release()); ``` ### Fixes Speculative fix for crash with a stack head below: ``` --------------- T H R E A D --------------- Current thread (0x000001cbcb0793f0): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=16744, stack(0x0000009488c00000,0x0000009488d00000)] Stack: [0x0000009488c00000,0x0000009488d00000], sp=0x0000009488cfc670, free space=1009k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [skiko-windows-x64.dll+0x58afa] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j org.jetbrains.skiko.swing.Direct3DSwingRedrawer.makeDirectXContext(J)J+0 ``` ### Note I've found suspicious place in ```kotlin // RedrawManager.kt:30 _renderApi = fallbackRenderApiQueue.removeAt(0) _redrawer = redrawerFactory(_renderApi, redrawer) ``` Seems like `redrawer` is disposed twice if `redrawerFactory` throws (both paths constructing `RedrawerManager` are affected). @igordmn can you have a look? It's a universal path for all desktop users, so I wonder why it didn't backfire, if it's indeed incorrect. May be it's because we don't really call `redrawerFactory` if a redrawer was constructed correctly, so disposal of old one doesn't ever get called in this context. I'm not sure where are the invariant boundaries here.