1. 12 Oct, 2023 1 commit
  2. 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
  3. 04 Oct, 2023 1 commit
  4. 28 Sep, 2023 1 commit
  5. 27 Sep, 2023 2 commits
  6. 26 Sep, 2023 1 commit
  7. 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
  8. 11 Sep, 2023 1 commit
  9. 04 Sep, 2023 1 commit
  10. 22 Aug, 2023 1 commit
  11. 15 Aug, 2023 1 commit
  12. 14 Aug, 2023 1 commit
  13. 11 Aug, 2023 1 commit
  14. 08 Aug, 2023 1 commit
  15. 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
  16. 03 Aug, 2023 1 commit
    • Elijah Semyonov's avatar
      Refactoring pass for iOS counterpart of Skiko (#781) · 163aec11
      Elijah Semyonov authored
      * Refactor SkikoUIView and Metal interaction
      
      * Move load logic to init
      
      * Remove dead code
      
      * Use contentScaleFactor for calculating drawable size
      
      * Move UITouch.isPressed to filescope
      
      * Add trace logs for anomaly situations
      163aec11
  17. 31 Jul, 2023 3 commits
  18. 26 Jul, 2023 1 commit
  19. 24 Jul, 2023 1 commit
    • Elijah Semyonov's avatar
      Prevent needRedraw reentry on iOS (#769) · 68677fd5
      Elijah Semyonov authored
      * Move flush to `finally` block.
      
      * Prevent reentry when scene is invalidated within draw.
      
      * Revert "Move flush to `finally` block."
      
      This reverts commit 25b04b811c2425c27a04b7508dbd7de70b8ef735.
      
      * Prevent within frameListener as well.
      68677fd5
  20. 21 Jul, 2023 2 commits
  21. 19 Jul, 2023 1 commit
  22. 18 Jul, 2023 2 commits
  23. 10 Jul, 2023 1 commit
  24. 07 Jul, 2023 1 commit
  25. 06 Jul, 2023 4 commits
  26. 05 Jul, 2023 2 commits
  27. 04 Jul, 2023 1 commit
  28. 30 Jun, 2023 1 commit
    • Oleksandr Karpovich's avatar
      Implement hostOs detection for web target (#738) · 52c586f9
      Oleksandr Karpovich authored
      * Implement hostOs detection for web target
      
      * Refactor hostOs initialization in OsArch.js.kt
      
      Instead of using a lazy initialization, this change allows immediate initialization.
      
      * Deprecate incorrect enum OS.JS value in OsArch.kt
      
      Deprecation annotation has been added to JS enum in OsArch. This is done as 'JS' is not a valid host OS name. Added 'Unknown' enum for undefined or unknown cases to handle from now on. Consider using enum 'KotlinBackend' to detect JS.
      
      * Deprecate invalid Arch values and modify hostArch
      
      The Arch values 'JS' and 'WASM' were deprecated as they were found to be invalid. An 'Unknown' value was introduced to accommodate for unforeseen cases in the future. The 'hostArch' value under 'OsArch.js.kt' has been updated accordingly to use this new 'Unknown' value.
      
      * Add OS.Unknown to `when` expressions to make them exhaustive
      52c586f9