• 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
..
SkiaAndroidSample Loading commit data...
SkiaAwtSample Loading commit data...
SkiaMultiplatformSample Loading commit data...
SkiaWebSample Loading commit data...