• Igor Demin's avatar
    Pack ANGLE into a separate jar (#1082) · 3e870638
    Igor Demin authored
    An addition to [the feature
    PR](https://github.com/JetBrains/skiko/pull/1017) that allows including
    ANGLE the same way as Skiko native libraries included:
    - unpack it from an additional jar
    `org.jetbrains.skiko:skiko-awt-runtime-angle-$target:$version`
    - find them in `skiko.library.path` directoty (a system property)
    - find them in `java.home`
    
    It reuses the same logic that is used to load `Skiko.dll`.
    
    Currently only Windows supported, the same way as in the original PR.
    
    No CI changes needed, as building of this jar is added as a dependency
    for
    `publishSkikoJvmRuntimeWindowsX64PublicationToComposeRepoRepository`/`publishSkikoJvmRuntimeWindowsArm64PublicationToComposeRepoRepository`
    
    ## Testing
    
    Manually with `skiko.rendering.angle.enabled` true/false on
    SkikoAwtSample.
    
    ## Release Notes (Skiko)
    ### Features - Desktop
    A new experimental renderer is introduced for Windows. It uses [the
    ANGLE library](https://github.com/google/angle) which has proven to be
    stable because it is used inside Chromium, compared to the `DIRECT3D`
    renderer that has issues on a few machines. Note that `ANGLE` still uses
    `DIRECT3D` API under the hood.
    
    1. Add this to the code to enable it:
    ```
    System.setProperty("skiko.rendering.angle.enabled", "true")
    ```
    
    2. Add the ANGLE library into the dependencies:
      - If you use Gradle:
      ```
      if (System.getProperty("os.name").startsWith("Win")) {
    
    implementation("org.jetbrains.skiko:skiko-awt-runtime-angle-$target:$version")
      }
      ```
    - If you set `skiko.library.path`. Extract `libEGL.dll`, `libGLESv2.dll`
    from https://github.com/JetBrains/angle-pack/releases into this
    directory.
    
    ## Release Notes (Compose)
    ### Features - Desktop
    N/A
    
    Until we specify how to match Skiko and Compose versions, or include it
    in Compose, it is a Skiko-only experimental feature. Some projects can
    include Skiko directly, it should work, but not supported as a Compose
    feature.
    3e870638
Name
Last commit
Last update
.github Loading commit data...
.run Loading commit data...
gradle/wrapper Loading commit data...
samples Loading commit data...
skiko Loading commit data...
.gitignore Loading commit data...
DEVELOPMENT.md Loading commit data...
LICENSE Loading commit data...
NOTICE Loading commit data...
README.md Loading commit data...
gradle.properties Loading commit data...
gradlew Loading commit data...
gradlew.bat Loading commit data...
settings.gradle.kts Loading commit data...