skia2/modules/androidkit
Florin Malita 05bb5a8b30 [androidkit] Introduce RuntimeShader
- opaque Shader class to act as a Java SkShader wrapper
 - shader slot on Paint
 - RuntimeShaderBuilder utility to enable the same use pattern as native
   Skia:

  RuntimeShaderBuilder builder(sksl_string);
  builder.setUniform("foo", 1);
  builder.setUniform("bar", 2);
  paint.setShader(builder.makeShader());

or, more fluent:

  paint.setShader(
      RuntimeShaderBuilder(sksl_string)
          .setUniform("foo", 1)
          .setUniform("bar", 2)
          .makeShader());


Change-Id: I7cd241a2f64bc54dcae2175ed35040edf6506ed3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399736
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-04-23 14:38:36 +00:00
..
src [androidkit] Introduce RuntimeShader 2021-04-23 14:38:36 +00:00
README [androidkit] Split Canvas backing store into Surface 2021-04-13 13:56:04 +00:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

AndroidKit is an AAR, or Android Library, that compiles Skia's native code, 
JNI bindings, and Java wrapper classes into a shared library.

BUILDING

1) Through Android Studio
-  Start a project by opening skia/platform_tools/android/apps with Android Studio.
-  Ensure that you're local.properties file is filled out with paths to your 
   Skia out directories. It should look like this:

   sdk.dir=[sdk file path]
   depot_tools.dir=[depot tools file path]
   x86.out.dir=[out file for x86]
   x64.out.dir=[out file for x64]
   arm64.out.dir=[out file for xarm64]
   arm.out.dir=[out file for arm]

-  Click on AndroidKit on the project tree, click Build in the toolbar, and select
   " Make Module 'apps.androidkit' "
-  The AAR will be under the build/outputs/aar directory.

2) Through the terminal
-  Run: platform_tools/android/bin/android_build_app -C  out/[out_dir] androidkit
-  If it builds with no errors, youll find the AAR in the out directory you were building from


LOADING

Before using AndroidKit classes, client applications must explicitly load the native library.
This is usually accomplished via a static class initializer, e.g.

  public class MyApp {
      static {
          System.loadLibrary("androidkit");
      }

      ...
  }