diff options
| author | 2022-01-04 14:03:42 +0000 | |
|---|---|---|
| committer | 2022-01-04 14:03:42 +0000 | |
| commit | 7c60f92104e85fc50dd5a7a96f8672fa7247b5aa (patch) | |
| tree | d8bf4de828e969b9b1c4047b3a2bd30d06f6b4d3 /graphics/java/android | |
| parent | 765e7acb60c74105da5739528613bdc64873f578 (diff) | |
| parent | 56c079839121da5d368d4aadeaceeff558ee106b (diff) | |
Merge "Add RuntimeShader API to RenderEffect"
Diffstat (limited to 'graphics/java/android')
| -rw-r--r-- | graphics/java/android/graphics/RenderEffect.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/RenderEffect.java b/graphics/java/android/graphics/RenderEffect.java index ad4c3fe86175..b8a46856601e 100644 --- a/graphics/java/android/graphics/RenderEffect.java +++ b/graphics/java/android/graphics/RenderEffect.java @@ -290,6 +290,22 @@ public final class RenderEffect { return new RenderEffect(nativeCreateShaderEffect(shader.getNativeInstance())); } + /** + * Create a {@link RenderEffect} that executes the provided {@link RuntimeShader} and passes + * the contents of the {@link android.graphics.RenderNode} that this RenderEffect is installed + * on as an input to the shader. + * @param shader the runtime shader that will bind the inputShaderName to the RenderEffect input + * @param uniformShaderName the uniform name defined in the RuntimeShader's program to which + * the contents of the RenderNode will be bound + */ + @NonNull + public static RenderEffect createRuntimeShaderEffect( + @NonNull RuntimeShader shader, @NonNull String uniformShaderName) { + return new RenderEffect( + nativeCreateRuntimeShaderEffect(shader.getNativeShaderBuilder(), + uniformShaderName)); + } + private final long mNativeRenderEffect; /* only constructed from static factory methods */ @@ -318,5 +334,7 @@ public final class RenderEffect { private static native long nativeCreateBlendModeEffect(long dst, long src, int blendmode); private static native long nativeCreateChainEffect(long outer, long inner); private static native long nativeCreateShaderEffect(long shader); + private static native long nativeCreateRuntimeShaderEffect( + long shaderBuilder, String inputShaderName); private static native long nativeGetFinalizer(); } |