1. 19 Feb, 2025 1 commit
  2. 14 Feb, 2025 1 commit
  3. 12 Feb, 2025 2 commits
  4. 11 Feb, 2025 1 commit
    • Alovchin91's avatar
      Remove BreakIterator.clone() method (#1024) · 3f95f4e7
      Alovchin91 authored
      This PR is split-off from and is a prerequisite of Clang-cl PR: #1020
      
      BreakIterator.clone() is broken on JVM and seemingly leads to a
      use-after-free behaviour. Clang-cl makes this issue more visible, likely
      due to address sanitisation.
      
      Explanation why it is deleted in an internal channel:
      https://jetbrains.slack.com/archives/C02DDNREC77/p1738678000232729
      * `breakIteratorCloneTest` is failing with an access violation in Debug
      mode with additional checks, so using it wasn't safe
      * it is not used anywhere
      
      This is a breaking change and will require bumping Skiko version to
      0.9.0.
      3f95f4e7
  5. 05 Feb, 2025 1 commit
  6. 31 Jan, 2025 1 commit
  7. 30 Jan, 2025 1 commit
    • Ivan Matkov's avatar
      Adoption of `RenderNode` approach (#1014) · 09dae793
      Ivan Matkov authored
      It is a simplified adoption of Android's `RenderNode`.
      
      ```kt
      /**
       * <p>RenderNode is used to build hardware accelerated rendering hierarchies. Each RenderNode
       * contains both a display list as well as a set of properties that affect the rendering of the
       * display list. RenderNodes are used internally for all Views by default and are not typically
       * used directly.</p>
       *
       * <p>RenderNodes are used to divide up the rendering content of a complex scene into smaller
       * pieces that can then be updated individually more cheaply. Updating part of the scene only needs
       * to update the display list or properties of a small number of RenderNode instead of redrawing
       * everything from scratch. A RenderNode only needs its display list re-recorded when its content
       * alone should be changed. RenderNodes can also be transformed without re-recording the display
       * list through the transform properties.</p>
       ```
       
       This is a more correct approach to make `GraphicsLayer` in Compose invalidation independently.
       - Moved drawing callback to C++ side to avoid extra interop costs
       - Switched from `SkPicture` placeholder to custom `SkDrawable` implementation
      09dae793
  8. 27 Jan, 2025 1 commit
    • Igor Demin's avatar
      DirectXOffscreenContext to allow drawing into offscreen texture (#1016) · 1af72c1c
      Igor Demin authored
      Needed to run benchmarks without vsync interference.
      
      The code extracted from Direct3DSwingRedrawer with minimal changes.
      
      - implementation for other API will be added when it is needed (Metal is
      considered later)
      - there are no plans to make commonMain abstraction in `skiko` as it is
      not needed at the moment
      
      ## Testing
      - manually in benchmarks with this code:
      ```
      @OptIn(ExperimentalSkikoApi::class)
      class DirectXGraphicsContext() : DesktopGraphicsContext {
          private val context = DirectXOffscreenContext()
          private var texture: DirectXOffscreenContext.Texture? = null
      
          override fun surface(width: Int, height: Int): Surface {
              texture?.close()
              texture = context.Texture(width, height)
              return Surface.makeFromBackendRenderTarget(
                  context.directContext,
                  texture!!.backendRenderTarget,
                  SurfaceOrigin.TOP_LEFT,
                  SurfaceColorFormat.BGRA_8888,
                  ColorSpace.sRGB,
                  SurfaceProps(pixelGeometry = PixelGeometry.UNKNOWN)
              ) ?: throw IllegalStateException("Can't create Surface")
          }
      
          override suspend fun awaitGPUCompletion() {
              texture?.waitForCompletion()
          }
      
          override fun close() {
              texture?.close()
              context.close()
          }
      }
      
      interface DesktopGraphicsContext : GraphicsContext, AutoCloseable
      ```
      - new test for SkiaSwingLayer
      - new test for DirectXOffscreenContext
      1af72c1c
  9. 24 Jan, 2025 1 commit
  10. 20 Jan, 2025 2 commits
  11. 15 Jan, 2025 1 commit
  12. 14 Jan, 2025 2 commits
  13. 13 Jan, 2025 1 commit
  14. 07 Jan, 2025 1 commit
  15. 12 Dec, 2024 2 commits
  16. 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
  17. 03 Dec, 2024 1 commit
  18. 01 Nov, 2024 1 commit
  19. 31 Oct, 2024 1 commit
  20. 29 Oct, 2024 1 commit
  21. 22 Oct, 2024 1 commit
  22. 18 Oct, 2024 1 commit
  23. 25 Sep, 2024 2 commits
  24. 18 Sep, 2024 2 commits
  25. 17 Sep, 2024 1 commit
  26. 09 Sep, 2024 1 commit
  27. 16 Aug, 2024 1 commit
  28. 14 Aug, 2024 1 commit
  29. 12 Aug, 2024 2 commits
  30. 07 Aug, 2024 1 commit
  31. 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
  32. 02 Aug, 2024 1 commit
  33. 30 Jul, 2024 1 commit