shared/java/RuntimeEffect.java (35 lines of code) (raw):

package org.jetbrains.skija; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import org.jetbrains.skija.impl.*; public class RuntimeEffect extends RefCnt { static { Library.staticLoad(); } public Shader makeShader(@Nullable Data uniforms, @Nullable Shader[] children, @Nullable Matrix33 localMatrix, boolean isOpaque) { Stats.onNativeCall(); int childCount = children == null ? 0 : children.length; long[] childrenPtrs = new long[childCount]; for (int i = 0; i < childCount; i++) childrenPtrs[i] = Native.getPtr(children[i]); float[] matrix = localMatrix == null ? null : localMatrix._mat; return new Shader(_nMakeShader(_ptr, Native.getPtr(uniforms), childrenPtrs, matrix, isOpaque)); } public static RuntimeEffect makeForShader(String sksl) { Stats.onNativeCall(); return new RuntimeEffect(_nMakeForShader(sksl)); } public static RuntimeEffect makeForColorFilter(String sksl) { Stats.onNativeCall(); return new RuntimeEffect(_nMakeForColorFilter(sksl)); } @ApiStatus.Internal public RuntimeEffect(long ptr) { super(ptr); } public static native long _nMakeShader(long runtimeEffectPtr, long uniformPtr, long[] childrenPtrs, float[] localMatrix, boolean isOpaque); public static native long _nMakeForShader(String sksl); public static native long _nMakeForColorFilter(String sksl); }