- 04 Sep, 2023 1 commit
-
-
Nikolai Rykunov authored
* Introduce a way to initialize CAccessible for Accessible to build proper context -> accessible mapping * Add test for getCAccessible call
-
- 22 Aug, 2023 1 commit
-
-
Nikolai Rykunov authored
-
- 15 Aug, 2023 1 commit
-
-
Elijah Semyonov authored
* Pause metal redrawer when app is background. * Add comment * Add logic for synchronous scheduling * Add logic for synchronous scheduling * Add correct initial state
-
- 14 Aug, 2023 1 commit
-
-
Pavel authored
Add comment to clarify that coordinates refer a baseline position, not a top left angle of text rectangle (#788)
-
- 11 Aug, 2023 1 commit
-
-
Elijah Semyonov authored
* Fix memory leak on iOS * Add check for caDisplayLink being disposed before drawing * Add logger warn
-
- 08 Aug, 2023 1 commit
-
-
Elijah Semyonov authored
* Correctly handle nulls when working with Obj-C API. Throw RenderException if MTLDevice is null to allow RedrawerManager fallback to software renderer. * Perform minor refactor
-
- 07 Aug, 2023 3 commits
-
-
Elijah Semyonov authored
* Update RELEASE.md * Update skiko/RELEASE.md Co-authored-by:
dima.avdeev <dima.avdeev@jetbrains.com> --------- Co-authored-by:
dima.avdeev <dima.avdeev@jetbrains.com>
-
dima.avdeev authored
-
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:dima.avdeev <dima.avdeev@jetbrains.com>
-
- 03 Aug, 2023 1 commit
-
-
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
-
- 31 Jul, 2023 3 commits
-
-
Nikolai Rykunov authored
-
Elijah Semyonov authored
--------- Co-authored-by:
Nikolay Rykunov <nikolay.rykunov@jetbrains.com> Co-authored-by:
Ivan Matkov <ivan.matkov@jetbrains.com>
-
Elijah Semyonov authored
-
- 26 Jul, 2023 1 commit
-
-
Elijah Semyonov authored
-
- 24 Jul, 2023 1 commit
-
-
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.
-
- 21 Jul, 2023 2 commits
-
-
Alexey Tsvetkov authored
Resolves #766
-
Nikolai Rykunov authored
* Reuse Metal texture if size is not changed * Reuse bitmap storage and recreate it only when size is changed * Reuse ByteArrays if size is not changed
-
- 19 Jul, 2023 1 commit
-
-
Nikolai Rykunov authored
-
- 18 Jul, 2023 2 commits
-
-
Alexey Tsvetkov authored
* Fix dynamic framework support and fix binary compatibility of SkikoUIView This change configures Kotlin Gradle plugin to include a CInterop def file (https://kotlinlang.org/docs/native-c-interop.html) to fix linking a dynamic framework for iOS Also helps with https://youtrack.jetbrains.com/issue/KT-60399 (at least in some cases). Internal discussion https://jetbrains.slack.com/archives/G017NLN12D8/p1689594898607469 * CR fix: use flatmap
-
Elijah Semyonov authored
-
- 10 Jul, 2023 1 commit
-
-
Elijah Semyonov authored
* Add repro * Add ignore * Remove redundant retain * Add DisplayLinkThrottler implementation * Create Kotlin wrapper and JNI wrapper. * Integrate throttler into redrawer * Release CVDisplayLink in case of error * Fix wrong screen dictionary retrieval. * Remove temporary changes. * Rename test. * Add overcommitment prevention mechanism (#754) * Add overcommitment prevention mechanism * Replace hardcoded value with CAMetalLayer property * Update skiko/src/awtMain/objectiveC/macos/MetalContextHandler.mm Co-authored-by:
Igor Demin <igordmn@users.noreply.github.com> --------- Co-authored-by:
Igor Demin <igordmn@users.noreply.github.com> * Remove _displayLinkOk (#756) * Remove _displayLinkOk * Discussions * Fix build --------- Co-authored-by:
Igor Demin <igordmn@users.noreply.github.com>
-
- 07 Jul, 2023 1 commit
-
-
Elijah Semyonov authored
-
- 06 Jul, 2023 4 commits
-
-
dima.avdeev authored
Workaround was added in this PR: https://github.com/JetBrains/skiko/pull/682
-
dima.avdeev authored
-
dima.avdeev authored
Use workaround with Java sources. Because a platform Java type can be used as a platform type MotionEvent!
-
dima.avdeev authored
Rename interface to SkikoUITextInputTraits Also added missing functions from https://developer.apple.com/documentation/uikit/uitextinputtraits?language=objc
-
- 05 Jul, 2023 2 commits
-
-
dima.avdeev authored
Fixes after removing `fun onTouchEvent(events: Array<SkikoTouchEvent>)` in this PR: https://github.com/JetBrains/skiko/pull/725
-
dima.avdeev authored
-
- 04 Jul, 2023 1 commit
-
-
dima.avdeev authored
* iOS TextField add keyboard options * Simplify lateinit vars
-
- 30 Jun, 2023 2 commits
-
-
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
-
Nikolai Rykunov authored
-
- 29 Jun, 2023 4 commits
-
-
Oleksandr Karpovich authored
-
-
Ivan Matkov authored
-
Ivan Matkov authored
-
- 28 Jun, 2023 1 commit
-
-
Nikolai Rykunov authored
--------- Co-authored-by:Igor Demin <igordmn@users.noreply.github.com>
-
- 26 Jun, 2023 4 commits
-
-
Igor Demin authored
* Refactoring from AWT Font PR Thanks, @rock3r, for refactorings! I extracted them from the AWT font PR (they were reverted in https://github.com/JetBrains/skiko/pull/639/commits/53f00c7d6be5ac0834ba4b4c3b9b4e3ea5cb0f10) - fix formatting - fix comments - split CI steps I am not sure about mikepenz/action-junit-report. Let's remove it for now (otherwise it should be investigated from functionality and security perspective) * Refactoring from AWT Font PR Thanks, @rock3r, for refactorings! I extracted them from the AWT font PR (they were reverted in https://github.com/JetBrains/skiko/pull/639/commits/53f00c7d6be5ac0834ba4b4c3b9b4e3ea5cb0f10) - fix formatting - fix comments - split CI steps I am not sure about mikepenz/action-junit-report. Let's remove it for now (otherwise it should be investigated from functionality and security perspective) Also, removed implementation("pl.pragmatists:JUnitParams:1.1.1"), as it isn't used.
-
Ivan Matkov authored
-
Ivan Matkov authored
-
Sebastiano Poggi authored
## Improve font loading and listing Available font listing doesn't rely anymore on discovering and loading font files from the disk. This is MUCH faster than the previous solution, which could take seconds on a performant machine. Besides, this greatly reduces memory usage as we're only holding the font family names list in memory, and cache items in memory lazily only once they are requested to speed up later lookups. Users can manually clear the memory cache, and register custom fonts (from files or resources). We now get the list of available font families directly from Skia, with some additional features such as adding entries for the system font on macOS (which is hidden by default). To note, the list of fonts available to Skia is not the same as available to AWT, for a number of reasons: 1. AWT adds logical fonts (e.g., `Dialog`) 2. AWT silently substitutes broken fonts 3. AWT lists the macOS system font, but under a weird name, `.AppleSystemUIFont`, whereas Skia doesn't 4. AWT and Skia don't use the same logic to list installed fonts on all platforms 5. AWT includes fonts embedded into the JVM automatically This makes things a bit more complicated, but if you _know_ the correct family name, everything works fine. While AWT silently substitutes invalid font family names with others, Skia will return `null` if it can't find a font. We follow the Skia approach, returning null if we can't match a font family name. ## Improve AWT `Font` conversion to Skiko `Typeface` On the JetBrains Runtime, the `Font.toSkikoTypefaceOrNull()` will be able to properly match an AWT `Font` to a Skiko `Typeface`, even on OSes other than macOS. If running on other JVMs, this returns `null`, as requested by @igordmn. This requirement is documented in the KDocs. The necessity to be on the JBR is due to the "regular" AWT implementations of `sun.font.Font2D` and `sun.funt.TrueTypeFont` being essentially broken: they read the wrong entry from the `name` table in TrueType fonts and use it as font family name. In the JBR, additional logic has been added to read the correct entry, the [_preferred family_](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html), and we can use this information to match with Skia font families, as Skia uses the correct _preferred family name_.
-