1. 09 Dec, 2024 1 commit
    • jakub-senohrabek-jb's avatar
      Allow setting skiko properties using skiko.properties file inside jar (#994) · bccb17a4
      jakub-senohrabek-jb authored
      In order to use two different versions of skiko in one app (using
      multiple classloaders), it is required to use the unpacking strategy, as
      the skiko.library.path is a system property, which is same for all
      classloaders.
      
      This change will allow to use presigned natives shipped together with
      the app, while still being able to use multiple versions as the property
      skiko.library.path will be loaded from current classloader resources,
      with fallback to system property.
      Co-authored-by: 's avatarJakub Senohrabek <jakub@senohrabek.net>
      bccb17a4
  2. 03 Dec, 2024 1 commit
  3. 01 Nov, 2024 1 commit
  4. 31 Oct, 2024 1 commit
  5. 29 Oct, 2024 1 commit
  6. 22 Oct, 2024 1 commit
  7. 18 Oct, 2024 1 commit
  8. 25 Sep, 2024 2 commits
  9. 18 Sep, 2024 2 commits
  10. 17 Sep, 2024 1 commit
  11. 09 Sep, 2024 1 commit
  12. 16 Aug, 2024 1 commit
  13. 14 Aug, 2024 1 commit
  14. 12 Aug, 2024 2 commits
  15. 07 Aug, 2024 1 commit
  16. 05 Aug, 2024 1 commit
    • Oleksandr Karpovich's avatar
      Fix skia download destination directory (#971) · c1f81974
      Oleksandr Karpovich authored
      The download directory path now depends on the buildType: Debug and
      Release
      
      
      ___
      It affected our buildServer CI pipeline where it builds Release first
      and then Debug. And downloadTask was considered UP-TO-DATE when Debug
      build was attempted. Therefore the build used "Release" version of skia
      instead of "Debug. "
      
      Added a Debug build to the githiub workflow too.
      c1f81974
  17. 02 Aug, 2024 1 commit
  18. 30 Jul, 2024 1 commit
  19. 23 Jul, 2024 2 commits
  20. 10 Jul, 2024 1 commit
  21. 09 Jul, 2024 3 commits
  22. 19 Jun, 2024 1 commit
  23. 13 Jun, 2024 1 commit
  24. 12 Jun, 2024 2 commits
  25. 11 Jun, 2024 2 commits
  26. 10 Jun, 2024 1 commit
  27. 28 May, 2024 1 commit
  28. 27 May, 2024 1 commit
  29. 21 May, 2024 2 commits
  30. 09 May, 2024 1 commit
  31. 26 Apr, 2024 1 commit
    • Elijah Semyonov's avatar
      Fix crash when creating SwingRedrawer on DirectX (#917) · 57dea506
      Elijah Semyonov authored
      ### 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.
      57dea506