summaryrefslogtreecommitdiff
path: root/graphics/java/android
diff options
context:
space:
mode:
author Derek Sollenberger <djsollen@google.com> 2022-01-04 14:03:42 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-01-04 14:03:42 +0000
commit7c60f92104e85fc50dd5a7a96f8672fa7247b5aa (patch)
treed8bf4de828e969b9b1c4047b3a2bd30d06f6b4d3 /graphics/java/android
parent765e7acb60c74105da5739528613bdc64873f578 (diff)
parent56c079839121da5d368d4aadeaceeff558ee106b (diff)
Merge "Add RuntimeShader API to RenderEffect"
Diffstat (limited to 'graphics/java/android')
-rw-r--r--graphics/java/android/graphics/RenderEffect.java18
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();
}