Skip to content

Releases: JetBrains/skiko

Version 0.8.12

16 Aug 17:24
c479fc9
Compare
Choose a tag to compare
v0.8.12

 Run invalidUnicode for js target, introduce additional test for Para…

Version 0.8.11

09 Aug 18:41
Compare
Choose a tag to compare
  • Updated to skia m126

Version 0.8.10.1

05 Aug 10:37
Compare
Choose a tag to compare
v0.8.10.1

update to skia m126

Version 0.8.10

10 Jul 09:00
c4db278
Compare
Choose a tag to compare
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

19 Jun 12:49
45c1a7d
Compare
Choose a tag to compare
v0.8.9

Add API to configure the fallback fonts provider when all default met…

Version 0.8.8

14 Jun 09:03
a03d0a5
Compare
Choose a tag to compare
Allow paint before showing (#941)

Fix compose tests after #923

Version 0.8.7

12 Jun 13:24
3e41541
Compare
Choose a tag to compare
v0.8.7

Make getAccessibleContext return nullable AccessibleContext (#940)

Version 0.8.6

12 Jun 10:04
5ed970f
Compare
Choose a tag to compare
v0.8.6

Expose SkiaLayerProperties (#938)

Version 0.8.5

30 May 02:46
c66eebc
Compare
Choose a tag to compare
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

26 Apr 10:10
57dea50
Compare
Choose a tag to compare
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.