Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a04c2370 authored by Derek Sollenberger's avatar Derek Sollenberger Committed by Android (Google) Code Review
Browse files

Merge "Remove isOpaque from RuntimeShader"

parents f696a439 7843e51a
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -15419,8 +15419,6 @@ package android.graphics {
  public class RuntimeShader extends android.graphics.Shader {
    ctor public RuntimeShader(@NonNull String);
    ctor public RuntimeShader(@NonNull String, boolean);
    method public boolean isForceOpaque();
    method public void setColorUniform(@NonNull String, @ColorInt int);
    method public void setColorUniform(@NonNull String, @ColorLong long);
    method public void setColorUniform(@NonNull String, @NonNull android.graphics.Color);
+2 −21
Original line number Diff line number Diff line
@@ -34,8 +34,6 @@ public class RuntimeShader extends Shader {
                RuntimeShader.class.getClassLoader(), nativeGetFinalizer());
    }

    private boolean mForceOpaque;

    /**
     * Current native shader builder instance.
     */
@@ -47,33 +45,17 @@ public class RuntimeShader extends Shader {
     * @param shader The text of AGSL shader program to run.
     */
    public RuntimeShader(@NonNull String shader) {
        this(shader, false);
    }

    /**
     * Creates a new RuntimeShader.
     *
     * @param shader The text of AGSL shader program to run.
     * @param forceOpaque If true then all pixels produced by the AGSL shader program will have an
     *                    alpha of 1.0f.
     */
    public RuntimeShader(@NonNull String shader, boolean forceOpaque) {
        // colorspace is required, but the RuntimeShader always produces colors in the destination
        // buffer's colorspace regardless of the value specified here.
        super(ColorSpace.get(ColorSpace.Named.SRGB));
        if (shader == null) {
            throw new NullPointerException("RuntimeShader requires a non-null AGSL string");
        }
        mForceOpaque = forceOpaque;
        mNativeInstanceRuntimeShaderBuilder = nativeCreateBuilder(shader);
        NoImagePreloadHolder.sRegistry.registerNativeAllocation(
                this, mNativeInstanceRuntimeShaderBuilder);
    }

    public boolean isForceOpaque() {
        return mForceOpaque;
    }

    /**
     * Sets the uniform color value corresponding to this shader.  If the shader does not have a
     * uniform with that name or if the uniform is declared with a type other than vec3 or vec4 and
@@ -322,7 +304,7 @@ public class RuntimeShader extends Shader {
    /** @hide */
    @Override
    protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) {
        return nativeCreateShader(mNativeInstanceRuntimeShaderBuilder, nativeMatrix, mForceOpaque);
        return nativeCreateShader(mNativeInstanceRuntimeShaderBuilder, nativeMatrix);
    }

    /** @hide */
@@ -332,8 +314,7 @@ public class RuntimeShader extends Shader {

    private static native long nativeGetFinalizer();
    private static native long nativeCreateBuilder(String agsl);
    private static native long nativeCreateShader(
            long shaderBuilder, long matrix, boolean isOpaque);
    private static native long nativeCreateShader(long shaderBuilder, long matrix);
    private static native void nativeUpdateUniforms(
            long shaderBuilder, String uniformName, float[] uniforms, boolean isColor);
    private static native void nativeUpdateUniforms(
+1 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ final class RippleShader extends RuntimeShader {
    private static final double PI_ROTATE_LEFT = Math.PI * -0.0078125;

    RippleShader() {
        super(SHADER, false);
        super(SHADER);
    }

    public void setShader(Shader shader) {
+3 −4
Original line number Diff line number Diff line
@@ -261,11 +261,10 @@ static jlong RuntimeShader_getNativeFinalizer(JNIEnv*, jobject) {
    return static_cast<jlong>(reinterpret_cast<uintptr_t>(&SkRuntimeShaderBuilder_delete));
}

static jlong RuntimeShader_create(JNIEnv* env, jobject, jlong shaderBuilder, jlong matrixPtr,
                                  jboolean isOpaque) {
static jlong RuntimeShader_create(JNIEnv* env, jobject, jlong shaderBuilder, jlong matrixPtr) {
    SkRuntimeShaderBuilder* builder = reinterpret_cast<SkRuntimeShaderBuilder*>(shaderBuilder);
    const SkMatrix* matrix = reinterpret_cast<const SkMatrix*>(matrixPtr);
    sk_sp<SkShader> shader = builder->makeShader(matrix, isOpaque == JNI_TRUE);
    sk_sp<SkShader> shader = builder->makeShader(matrix, false);
    ThrowIAE_IfNull(env, shader);
    return reinterpret_cast<jlong>(shader.release());
}
@@ -419,7 +418,7 @@ static const JNINativeMethod gComposeShaderMethods[] = {

static const JNINativeMethod gRuntimeShaderMethods[] = {
        {"nativeGetFinalizer", "()J", (void*)RuntimeShader_getNativeFinalizer},
        {"nativeCreateShader", "(JJZ)J", (void*)RuntimeShader_create},
        {"nativeCreateShader", "(JJ)J", (void*)RuntimeShader_create},
        {"nativeCreateBuilder", "(Ljava/lang/String;)J", (void*)RuntimeShader_createShaderBuilder},
        {"nativeUpdateUniforms", "(JLjava/lang/String;[FZ)V",
         (void*)RuntimeShader_updateFloatArrayUniforms},
+1 −1
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@ import android.util.MathUtils
 *
 * Modeled after frameworks/base/graphics/java/android/graphics/drawable/RippleShader.java.
 */
class DwellRippleShader internal constructor() : RuntimeShader(SHADER, false) {
class DwellRippleShader internal constructor() : RuntimeShader(SHADER) {
    companion object {
        private const val SHADER_UNIFORMS = """uniform vec2 in_origin;
                uniform float in_time;
Loading