- 02 Jun, 2026 1 commit
-
-
ApoloApps authored
It transforms Matrix* classes to be value classes so that we avoid double allocation in these simple classes (1 fo FloatArray and 1 for the Matrix class itself) https://github.com/JetBrains/skiko/pull/1137 followup (at least partly) Fixes [SKIKO-1140](https://youtrack.jetbrains.com/issue/SKIKO-1140/Change-Matrix-to-value-classes) **Next** Follow-up PR in Compose Core to make use of the internal float array constructor to reuse if coming from another FLoatArray --------- Co-authored-by:
Ivan Matkov <matkov.ivan@gmail.com>
-
- 01 Jun, 2026 1 commit
-
-
Alexander Maryanovsky authored
-
- 27 May, 2026 3 commits
-
-
Pavel authored
We must use the same clang flags to build JNI cpp shims as we use to build skia
-
ApoloApps authored
-
Hubert Błaszczyk authored
This PR introduces the extraction of test utilities into a separate module. This is a required preparation step for extracting `Skottie` into a separate module, as it uses some of these test utilities. Fixes [SKIKO-1136](https://youtrack.jetbrains.com/issue/SKIKO-1136)
-
- 18 May, 2026 2 commits
-
-
Ivan Matkov authored
``` Failed to get resource: GET. [HTTP HTTP/1.1 429 Too Many Requests: https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/2.0.21/kotlin-gradle-plugins-bom-2.0.21.pom)] Failed to get resource: GET. [HTTP HTTP/1.1 429 Too Many Requests: https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/2.0.21/kotlin-stdlib-2.0.21.pom)] ```
-
Ivan Matkov authored
[CMP-10199](https://youtrack.jetbrains.com/issue/CMP-10199) [iOS] Undefined symbol '_org_jetbrains_skia_Path__1nUpdateBoundsCache It was removed in #1187 by accident, and there was no test to catch it
-
- 04 May, 2026 1 commit
-
-
Ivan Matkov authored
[SKIKO-1099](https://youtrack.jetbrains.com/issue/SKIKO-1099) Update skia to m148
-
- 27 Apr, 2026 1 commit
-
-
Hubert Błaszczyk authored
[SKIKO-1130](https://youtrack.jetbrains.com/issue/SKIKO-1130) Update skia to m147 and its consumption
-
- 24 Apr, 2026 1 commit
-
-
Bogdan Mitrović authored
PathSegment.hashCode() threw RuntimeException("Unreachable") for PathVerb.CLOSE segments when used in hash-based collections such as intersect(). Added CLOSE case consistent with what equals() checks for CLOSE segments. Also removed the else branch since all PathVerb values are now handled. Added a test which fails unless CLOSE is handled in hashCode(). ## Testing Ran test on awt locally — the new test `closedPathIntersectTest` fails before the fix and passes after. ## Release Notes Fix crash when using closed paths in hash-based collections such as `intersect()` Fixes: [SKIKO-1038](https://youtrack.jetbrains.com/issue/SKIKO-1038)
-
- 23 Apr, 2026 2 commits
-
-
Sebastiano Poggi authored
This PR fixes Metal Swing offscreen rendering behavior when the active `GraphicsConfiguration` is not compatible with JBR shared textures, and adds focused regression tests for the fallback path. `AcceleratedSwingPainter` now explicitly falls back to software painting for incompatible graphics configurations (for example, offscreen/`BufferedImage` paint flows). ## Changes - Introduced `SharedTexturesAdapter` as a small abstraction over JBR shared textures so production code keeps using JBR while tests can inject a fake adapter. - Updated `MetalSwingRedrawer` to create and pass the shared texture adapter into `AcceleratedSwingPainter`. - Updated `AcceleratedSwingPainter` to support test injection and preserve fallback behaviour for incompatible graphics configurations. - Added minimal test hooks in `AcceleratedSwingPainter` with `org.jetbrains.annotations.VisibleForTesting` so tests can validate cache-reset behaviour. - Added `org.jetbrains:annotations` as an `awtMain` dependency to use `VisibleForTesting`. I can undo this and remove the annotation, but I think it's worth keeping... - Added `AcceleratedSwingPainterTest` covering: - fallback is used for incompatible `GraphicsConfiguration` - accelerated cache state is cleared on fallback - `dispose()` delegates to fallback painter --- Fixes https://youtrack.jetbrains.com/issue/SKIKO-1082 --------- Co-authored-by:
Igor Demin <igordmn@users.noreply.github.com>
-
Andrei Salavei authored
Add the step to patch all C/C++ symbols for iOS and tvOS targets to prevent symbol clashes when the user's app uses another skia library, or one of its dependencies. Fixes: https://youtrack.jetbrains.com/issue/CMP-6845/How-to-use-compose-multiplatform-on-iOS-in-app-with-lib-skia-dependency --------- Co-authored-by:
Copilot <175728472+Copilot@users.noreply.github.com>
-
- 22 Apr, 2026 1 commit
-
-
Konstantin authored
-
- 17 Apr, 2026 1 commit
-
-
Ivan Matkov authored
-
- 09 Apr, 2026 1 commit
-
-
Ivan Matkov authored
[SKIKO-1098](https://youtrack.jetbrains.com/issue/SKIKO-1098) Update skia to m146
-
- 07 Apr, 2026 1 commit
-
-
Ivan Matkov authored
[SKIKO-1067](https://youtrack.jetbrains.com/issue/SKIKO-1067) Build Skiko with Kotlin 2.3.0
-
- 24 Mar, 2026 1 commit
-
-
Ivan Matkov authored
[SKIKO-1095](https://youtrack.jetbrains.com/issue/SKIKO-1095) Move build scripts from `skia-pack` to `skia` fork https://github.com/JetBrains/skia/pull/15
-
- 23 Mar, 2026 1 commit
-
-
Shagen Ogandzhanian authored
This is backport of https://github.com/JetBrains/skiko/pull/1173 to Kotlin 2.2.20 --------- Co-authored-by:
Ivan Matkov <ivan.matkov@jetbrains.com>
-
- 13 Mar, 2026 1 commit
-
-
Alexander Maryanovsky authored
-
- 06 Mar, 2026 1 commit
-
-
ApoloApps authored
Improve performance of critical paths by preventing allocating intermediate objects like lists, arrays,.... (chunked, map, to*Collection) --------- Co-authored-by:
Ivan Matkov <matkov.ivan@gmail.com> Co-authored-by:
Alexander Maryanovsky <msasha@gmail.com>
-
- 05 Mar, 2026 1 commit
-
-
Alexander Maryanovsky authored
-
- 03 Mar, 2026 1 commit
-
-
Alexander Maryanovsky authored
-
- 02 Mar, 2026 1 commit
-
-
Alexander Maryanovsky authored
-
- 26 Feb, 2026 3 commits
-
-
Ivan Matkov authored
Fixes from #1168 extracted as a followup patch for #1162
-
Luc Girardin authored
Added support for custom blend modes through RuntimeEffect.makeForBlender() and Paint.blender. There was a discussion on the topic at https://youtrack.jetbrains.com/issue/CMP-5046.
-
Ivan Matkov authored
Reverts #1168 in favor of merging #1162 instead
-
- 20 Feb, 2026 1 commit
-
-
Ivan Matkov authored
[SKIKO-1114](https://youtrack.jetbrains.com/issue/SKIKO-1114) Provide more smooth migration to skiko 0.144.*
-
- 19 Feb, 2026 4 commits
-
-
Igor Demin authored
Diff in https://github.com/JetBrains/compose-multiplatform: ``` git log --oneline buildHelpers_v0.1.18...buildHelpers_v0.1.28 -- ci/build-helpers ``` 98e1f7154d (tag: buildHelpers_v0.1.28, origin/master, origin/HEAD) Add retry for downloading artifacts from Space (https://github.com/JetBrains/compose-multiplatform/pull/5540) de33213773 Migrate dev maven (https://github.com/JetBrains/compose-multiplatform/pull/5524) 9fe7e9ae2e (tag: buildHelpers_v0.1.22) Increase Maven Upload socket timeout (https://github.com/JetBrains/compose-multiplatform/pull/5488) 37f161ff0b (tag: buildHelpers_v0.1.21) Increase Maven Upload socket timeout (https://github.com/JetBrains/compose-multiplatform/pull/5486) d949b7cc83 (tag: buildHelpers_v0.1.20) Bump versions (Kotlin, AGP, Gradle) (https://github.com/JetBrains/compose-multiplatform/pull/5399) b495789975 (tag: v1.9.0+dev2631, tag: buildHelpers_v0.1.19) Fix Maven Central API uploading (https://github.com/JetBrains/compose-multiplatform/pull/5353)
-
Ivan Matkov authored
[SKIKO-1113](https://youtrack.jetbrains.com/issue/SKIKO-1113) Calling detach() twice in a row on same PathBuilder Adding more tests to verify behavior from the report
-
Ivan Matkov authored
Required for [CMP-5046](https://youtrack.jetbrains.com/issue/CMP-5046) Supersedes #1162 with a cleaned-up and fixes --------- Co-authored-by:
Luc Girardin <luc.girardin@macrofocus.com>
-
Ivan Matkov authored
[SKIKO-1112](https://youtrack.jetbrains.com/issue/SKIKO-1112) Missed `PathBuilder.offset` and `PathBuilder.transform` in `0.144.0` Missed part from #1154 JNI/KN C++ bindings are already in place
-
- 18 Feb, 2026 1 commit
-
-
Ivan Matkov authored
Fixes [SKIKO-1094](https://youtrack.jetbrains.com/issue/SKIKO-1094) Update skia to m144
-
- 17 Feb, 2026 3 commits
-
-
Ivan Matkov authored
They are out of the scope of the skiko library. [SKIKO-1020](https://youtrack.jetbrains.com/issue/SKIKO-1020) Deprecate and remove URIManager [SKIKO-1021](https://youtrack.jetbrains.com/issue/SKIKO-1021) Deprecate and remove ClipboardManager [SKIKO-1022](https://youtrack.jetbrains.com/issue/SKIKO-1022) Deprecate and remove CursorManager
-
Ivan Matkov authored
-
Ivan Matkov authored
-
- 16 Feb, 2026 2 commits
-
-
Victor Kropp authored
All public links are updated to https://redirector.kotlinlang.org/maven/compose-dev Internal buildSrc links to maven directly to avoid unnecessary redirects Fixes SKIKO-1108
-
Ivan Matkov authored
Previously: - The bash script required specifying `SKIA_VERSION` separately from `gradle.properties`, leading to version mismatches - Script hardcoded `SKIA_TARGET` default to `iosSim`, requiring manual override on non-macOS systems This change: - Added `skiaVersionFromEnvOrProperties` property and `printSkiaVersion` task. The bash script now queries Gradle for the version instead of maintaining its own default. - Target platform now defaults to current OS (`hostOs.id`) instead of hardcoded `iosSim`. - Introduced `BuildLocalSkiaTask` that handles Python build script invocation, architecture detection, and validation. - Added `SkiaTarget` enum centralizing platform-specific Gradle flags and architecture mappings. - Simplified bash script: Now focuses solely on git operations (clone/checkout skia-pack), delegating all build logic to Gradle. ### Usage ```sh # Version from gradle.properties, target auto-detected from OS ./build-with-local-skia.sh # Override either via environment variables SKIA_VERSION=m138-80d088a-2 SKIA_TARGET=iosSim ./build-with-local-skia.sh # Or use Gradle tasks directly ./gradlew prepareLocalSkiaBuild -Pskia.target=linux ```
-
- 12 Feb, 2026 1 commit
-
-
Ivan Matkov authored
Fixes [SKIKO-1103](https://youtrack.jetbrains.com/issue/SKIKO-1103) Properly handle Dockerfile changes in CI ### 1. Handle Dockerfile Changes in CI When a PR modifies both the `Dockerfile` and C++ source, CI must build the library against the **new** container logic before merging to catch compatibility issues. Workflows now detect `Dockerfile` changes and automatically build images locally before running tests. When no `Dockerfile` changes are detected, published images from `ghcr.io` are used. ### 2. Avoid GLIBC Mismatches: Run GitHub Actions Outside Containers Running GitHub Actions native steps (like `actions/checkout`) inside custom containers causes GLIBC version mismatches since GitHub's Node.js-based actions require newer GLIBC than Amazon Linux 2 provides. This change introduced new composite action `docker-skiko-run` that runs GitHub actions outside the container on `ubuntu-24.04` runner, and only executes build/test commands inside the Docker container via `docker run`. ### 3. Environment Alignment: Use `linux-compat` for GitHub Actions Builds GitHub Actions used Ubuntu 20.04 images with GLIBC 2.31, while TeamCity publishing used Amazon Linux 2 with GLIBC 2.26. This mismatch could mask GLIBC compatibility issues during PR validation. Most GitHub Actions workflows now use `linux-compat` (Amazon Linux 2). - Web builds are out of the scope here because emsdk requires newer GLIBC. - Cross-compilation is out of the scope because there is no simply way to get arm shared libraries to x64 image on AL2 Note: TeamCity publishing should be updated to use `linux-compat` too ### 4. Introduce Orchestrator Workflows New orchestrator workflows compose existing test/build/docs workflows: - **`pull-request.yml`** - Runs on every PR: detects Docker changes, builds images if needed (dry-run), runs tests + publish dry run + docs validation - **`post-merge.yml`** - Runs on push to master/release: detects Docker changes, publishes images if changed, runs tests + publish dry run + docs publication So, we should have fewer "Run CI" temporary PRs now ### 5. Documentation as Pre-Merge Check Documentation builds now run inside the same `linux-compat` Docker environment used for library builds, and are validated as part of PR checks (previously only ran post-merge). ### 6. Docker Tags Use Branch Names Published Docker images are tagged with the branch name (e.g., `master`, `release/0.9.46`), so the release branches might publish its own version of the image. This way changes in `master` shouldn't prevent making a patch for a previous version if it's required
-
- 10 Feb, 2026 1 commit
-
-
ApoloApps authored
Fixes [SKIKO-1059](https://youtrack.jetbrains.com/issue/SKIKO-1059/Output-the-argument-size-in-ColorMatrix-in-case-of-error) Converts to value class for inlining and no class allocation and fixes the requirement message
-
- 06 Feb, 2026 1 commit
-
-
Alexander Maryanovsky authored
-