1. 12 Dec, 2023 1 commit
  2. 11 Dec, 2023 3 commits
  3. 06 Dec, 2023 1 commit
    • Oleksandr Karpovich's avatar
      Add k/wasm support (#831) · 2c092f87
      Oleksandr Karpovich authored
      * add k/wasm support
      
      * ES6 for skiko wasm
      
      Fix build files
      
      Add SkikoCallbacks external funs
      
      Add GL external object
      
      * cleanup
      
      * Update SkiaMultiplatformSample Composite build to run with k/wasm
      
      * Update SkiaJsSample
      
      * Update CI config
      
      * cleanup
      
      * Fix CI
      
      * Add -O2 flag to emcc link stage
      
      * cleanup
      
      * cleanup
      
      * update wasm.yml
      
      * update maven repositories
      
      * fixes after rebase
      
      * enable supportJs when supportWasm is true
      
      * Add a temporary coroutines version substitution for non-wasm
      
      * Apply PR review suggestions
      
      * Use coroutines 1.8.0-RC
      
      * Workaround an issue with atomicfu 0.23.1 - Add an explicit dependency on atomicfu from nativeMain
      
      * Fix typo
      
      * Renamed SKIKO_COMPOSITE_BUILD to skiko.composite.build in SkiaJsSample
      
      * Remove wasm/experimental maven repo
      
      * Remove wasm/experimental maven repo
      
      * Add wasmArtifactId to skikoArtifactIds
      
      * Remove redundant comment
      
      ---------
      Co-authored-by: 's avatarigoriakovlev <54274820+igoriakovlev@users.noreply.github.com>
      Co-authored-by: 's avatarIlya Goncharov <ilya.goncharov@jetbrains.com>
      Co-authored-by: 's avatarOleksandr Karpovich <oleksandr.karpovich@jetbrains.com>
      2c092f87
  4. 04 Dec, 2023 1 commit
  5. 03 Dec, 2023 1 commit
  6. 27 Nov, 2023 1 commit
    • Pavel's avatar
      Make tests pass with debug build (#833) · 3aa3db3b
      Pavel authored
      * remove unused param and fix incorrect signature
      
      * in debug mode skia enables trivial_abi
      
      related skia change:
      https://github.com/JetBrains/skia/commit/3cd41698078075347badbeb64e546d8539c29ff8
      
      * make paragraph tests pass with skiko.debug
      
      * extract clone break iterator into separate test
      
      it crashes with skiko.debug=true
      
      * set matrices instead of pointers
      
      before that it was failed with assert in debug mode
      
      set matrices instead of pointers JS/Native
      
      * remove unused function it was leading to wrong overload resolution and crash
      
      * fix quality level in png encoding/decoding
      
      * fail tests before they crash
      
      * skip `breakIteratorCloneTest` with Js target
      3aa3db3b
  7. 24 Nov, 2023 1 commit
  8. 22 Nov, 2023 1 commit
  9. 17 Nov, 2023 1 commit
  10. 10 Nov, 2023 1 commit
  11. 08 Nov, 2023 2 commits
  12. 07 Nov, 2023 1 commit
  13. 01 Nov, 2023 1 commit
    • Pavel's avatar
      Pavel.sergeev/set skia m116 (#808) · 4217f641
      Pavel authored
      * update bindings according to skia-m116
      
      * we don't have `ubuntu` suffix in skia artifacts anymore
      
      * fix compilation on windows
      
      * ignore the test because it was failing before
      
      * fix windows compilation
      
      * avgCharWidth is 0f on windows
      4217f641
  14. 26 Oct, 2023 1 commit
  15. 25 Oct, 2023 2 commits
    • James Morrissey's avatar
      Introduce SkPathUtils bindings (#815) · cc6f2006
      James Morrissey authored
      * Introduce SkPathUtils bindings
      
      This functionality used to exist elsewhere in Skia, but in m110 it was moved into SkPathUtils. When that change occurred, the functionality was removed from Skiko rather than moved, so this commit is to return the functionality by providing access to SkPathUtils.
      
      * use `assertTrue` instead of `assertEquals`
      
      to make KotlinJS happy
      
      ---------
      Co-authored-by: 's avatarPavel <sergeev.pavel.al@gmail.com>
      cc6f2006
    • Pavel's avatar
      remove obsolete test (#817) · f9aab263
      Pavel authored
      f9aab263
  16. 20 Oct, 2023 1 commit
    • Igor Demin's avatar
      Make dispatcherToBlockOn dispatcher based on daemon threads. (#814) · 1cbde7b1
      Igor Demin authored
      After https://github.com/JetBrains/skiko/pull/798, we changed Dispatcher.IO to custom dispatcher.
      
      Dispatcher.IO is based on daemon threads (thread that receives InterruptException on application exit).
      
      Our new dispatcher isn't. The proof:
      ```
      import java.util.concurrent.Executors
      import kotlinx.coroutines.Dispatchers
      import kotlinx.coroutines.asCoroutineDispatcher
      import kotlinx.coroutines.runBlocking
      
      fun main() {
          runBlocking(Dispatchers.IO) {
              println(Thread.currentThread().isDaemon) // prints true
          }
          runBlocking(Executors.newCachedThreadPool().asCoroutineDispatcher()) {
              println(Thread.currentThread().isDaemon) // prints false
          }
          val defaultFactory = Executors.defaultThreadFactory()
          runBlocking(Executors.newCachedThreadPool {
              defaultFactory.newThread(it).apply {
                  isDaemon = true
              }
          }.asCoroutineDispatcher()) {
              println(Thread.currentThread().isDaemon) // prints true
          }
      }
      ```
      
      This PR makes threads daemon.
      
      Reported in [Kotlin Slack](https://kotlinlang.slack.com/archives/C01D6HTPATV/p1697400320739369) - applications exits too long.
      1cbde7b1
  17. 12 Oct, 2023 2 commits
  18. 09 Oct, 2023 2 commits
    • Igor Demin's avatar
      Fix crash on Windows machines without OpenGL (#811) · 2fac6861
      Igor Demin authored
      * Fix crash on Windows machines without OpenGL
      
      Some Windows CI machines don't contain OpenGL, so Skiko/Compose will crash on them. It shouldn't crash, it should fallback to Software rendering
      
      To properly fallback, we need to load opengl32.dll dynamically in runtime.
      
      Fixes https://github.com/JetBrains/compose-multiplatform/issues/3243
      
      # Test 1
      - `gradlew publishToMavenLocal` is successful (if we use functions directly, it fails with "error LNK2019: unresolved external symbol")
      - `SkiaLayerTest` is successful (it tests OpenGL as well)
      
      # Test 2
      1. Remove `C:\Windows\System32\opengl32.dll`
      2. `SkiaLayerTest` still should be successful, but logs should contain that it fallbacks to Software rendering.
      
      # Test 3
      1. Compile local skiko
      2. Run Compose run1 and tests
      
      * Refactor
      
      * Discussions
      
      * Discussions
      
      * Split throwJavaRenderException
      
      It isn't valid to use FormatMessage for code from GetLastError
      2fac6861
    • Oleksandr Karpovich's avatar
      Add more ptr checks in AWT.kt (#810) · bd47a99a
      Oleksandr Karpovich authored
      * Add more checks
      
      * Update skiko/src/awtMain/kotlin/org/jetbrains/skiko/redrawer/WindowsOpenGLRedrawer.kt
      
      * Update skiko/src/awtMain/kotlin/org/jetbrains/skiko/AWT.kt
      Co-authored-by: 's avatarIgor Demin <igordmn@users.noreply.github.com>
      
      * Update skiko/src/awtMain/kotlin/org/jetbrains/skiko/redrawer/WindowsOpenGLRedrawer.kt
      Co-authored-by: 's avatarIgor Demin <igordmn@users.noreply.github.com>
      
      ---------
      Co-authored-by: 's avatarIgor Demin <igordmn@users.noreply.github.com>
      bd47a99a
  19. 04 Oct, 2023 1 commit
  20. 28 Sep, 2023 1 commit
  21. 27 Sep, 2023 2 commits
  22. 26 Sep, 2023 1 commit
  23. 15 Sep, 2023 1 commit
    • Pavel's avatar
      Set kotlinx.coroutines to 1.7.3; Use limited parallelism instead of `Dispatchers.IO` (#798) · ea067413
      Pavel authored
      * set `kotlinx.coroutines` to `1.7.3`
      
      * update tests after coroutines.tests update
      
      * use `limitedParallelism` instead of bare `Dispatchers.IO`
      
      rename
      
      * use virtual time aware dispatchers in tests that use `runTest`
      
      * better naming
      
      * remove usages of experimental coroutines api
      
      * remove usages of experimental time api
      
      * use dispatcher from `coroutineScope` in `FrameLimiter`
      
      `FrameLimiter` must cancel waiting when its scope canceled
      
      * extract the `dispatcherToBlockOn` into separate file
      
      * use dispatcher from `coroutineScope` in `FrameLimiter`
      
      * Fix FrameLimiterTest
      
      ---------
      Co-authored-by: 's avatarIgor Demin <igor.demin@jetbrains.com>
      ea067413
  24. 11 Sep, 2023 1 commit
  25. 04 Sep, 2023 1 commit
  26. 22 Aug, 2023 1 commit
  27. 15 Aug, 2023 1 commit
  28. 14 Aug, 2023 1 commit
  29. 11 Aug, 2023 1 commit
  30. 08 Aug, 2023 1 commit
  31. 07 Aug, 2023 3 commits
    • Elijah Semyonov's avatar
      Update RELEASE.md (#785) · 38090dc7
      Elijah Semyonov authored
      * Update RELEASE.md
      
      * Update skiko/RELEASE.md
      Co-authored-by: 's avatardima.avdeev <dima.avdeev@jetbrains.com>
      
      ---------
      Co-authored-by: 's avatardima.avdeev <dima.avdeev@jetbrains.com>
      38090dc7
    • dima.avdeev's avatar
      Remove old TODO comment (#782) · e35c9362
      dima.avdeev authored
      e35c9362
    • Elijah Semyonov's avatar
      Fix MetalRedrawer being a source of leak (#771) · ee58078e
      Elijah Semyonov authored
      * Break strong cycle
      
      * Add test proving it
      
      * Remove dead code
      
      * Explain test
      
      * Add remark about two passes
      
      * Add temporary ignore on test
      
      * Use assertTrue instead of assertEquals
      
      * Update test to ignore CI failure on Metal not supported
      
      * Update test
      
      * Refactor to reflect insight about memory model
      
      * Add contract comment.
      
      * Break strong reference from CADisplayLink -> MetalRedrawer
      
      * Bind logical lifetime of MetalRedrawer to caDisplayLink
      
      * Bind logical lifetime of MetalRedrawer to caDisplayLink
      
      * Close skia context on MetalRedrawer dispose.
      
      * Use `check`
      
      * Fix tests on iOS with Metal on GitHub Actions (#783)
      
      * iOS simulator warmup
      
      * comment redundant for now
      
      * sim ID
      
      * iPhone 8
      
      * iPhone 14
      
      * env.IOS_SIM_UUID
      
      * remove redundant
      
      * one line cmd
      
      * one line cmd
      
      * device
      
      * device
      
      * property
      
      * retry 3 times
      
      * retry 3 times
      
      * retry 5 times
      
      * retry 10 times
      
      * testMetalIosX64
      
      * test test fails
      
      * kotlin 1.8.20
      
      * success test
      
      * success test
      
      * temp fail
      
      * success test
      
      * simplify
      
      * simplify
      
      * simplify
      
      * Added iOS Metal tests only on MacOS
      
      * Gradle, check targets before adding iosX64TestWithMetal task
      
      ---------
      Co-authored-by: 's avatardima.avdeev <dima.avdeev@jetbrains.com>
      ee58078e