diff options
author | 2025-02-13 15:09:11 -0800 | |
---|---|---|
committer | 2025-02-13 15:09:11 -0800 | |
commit | c897edb13f53f30f76cd3070fe04143f78419e74 (patch) | |
tree | 889ea67f0aa89426522a496e7ad4f849a81bb9d9 | |
parent | 20f48f47dc8c2dd7923ef0f7ef2ff3fb8ca75c10 (diff) |
Revert "Add RuntimeShader#setWorkingColorSpace"
Revert submission 31528465-runtimeshader_workingcolorspace
Reason for revert: Droidmonitor created revert due to b/396463303 . Will be verifying through ABTD before submission.
Reverted changes: /q/submissionid:31528465-runtimeshader_workingcolorspace
Change-Id: I4a8d06704ab559ed735343bd9ee8d365815cb810
-rw-r--r-- | core/api/current.txt | 1 | ||||
-rw-r--r-- | graphics/java/android/graphics/RuntimeShader.java | 39 | ||||
-rw-r--r-- | libs/hwui/aconfig/hwui_flags.aconfig | 8 | ||||
-rw-r--r-- | libs/hwui/jni/Shader.cpp | 10 |
4 files changed, 4 insertions, 54 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 9ec3e0f35657..b7f7a7f9e779 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -17603,7 +17603,6 @@ package android.graphics { method public void setIntUniform(@NonNull String, int, int, int); method public void setIntUniform(@NonNull String, int, int, int, int); method public void setIntUniform(@NonNull String, @NonNull int[]); - method @FlaggedApi("com.android.graphics.hwui.flags.shader_color_space") public void setWorkingColorSpace(@Nullable android.graphics.ColorSpace); } @FlaggedApi("com.android.graphics.hwui.flags.runtime_color_filters_blenders") public class RuntimeXfermode extends android.graphics.Xfermode { diff --git a/graphics/java/android/graphics/RuntimeShader.java b/graphics/java/android/graphics/RuntimeShader.java index 9016724b765e..3543e991924e 100644 --- a/graphics/java/android/graphics/RuntimeShader.java +++ b/graphics/java/android/graphics/RuntimeShader.java @@ -20,7 +20,6 @@ import android.annotation.ColorInt; import android.annotation.ColorLong; import android.annotation.FlaggedApi; import android.annotation.NonNull; -import android.annotation.Nullable; import android.util.ArrayMap; import android.view.Window; @@ -77,7 +76,6 @@ import libcore.util.NativeAllocationRegistry; * Additionally, if the shader is invoked by another using {@link #setInputShader(String, Shader)}, * then that parent shader may modify the input coordinates arbitrarily.</p> * - * <a id="agsl-and-color-spaces"/> * <h3>AGSL and Color Spaces</h3> * <p>Android Graphics and by extension {@link RuntimeShader} are color managed. The working * {@link ColorSpace} for an AGSL shader is defined to be the color space of the destination, which @@ -269,8 +267,6 @@ public class RuntimeShader extends Shader { private ArrayMap<String, ColorFilter> mColorFilterUniforms = new ArrayMap<>(); private ArrayMap<String, RuntimeXfermode> mXfermodeUniforms = new ArrayMap<>(); - private ColorSpace mWorkingColorSpace = null; - /** * Creates a new RuntimeShader. @@ -290,35 +286,6 @@ public class RuntimeShader extends Shader { } /** - * Sets the working color space for this shader. That is, the shader will be evaluated - * in the given colorspace before being converted to the output destination's colorspace. - * - * <p>By default the RuntimeShader is evaluated in the context of the - * <a href="#agsl-and-color-spaces">destination colorspace</a>. By calling this method - * that can be overridden to force the shader to be evaluated in the given colorspace first - * before then being color converted to the destination colorspace.</p> - * - * @param colorSpace The ColorSpace to evaluate in. Must be an {@link ColorSpace#getModel() RGB} - * ColorSpace. Passing null restores default behavior of working in the - * destination colorspace. - * @throws IllegalArgumentException If the colorspace is not RGB - */ - @FlaggedApi(Flags.FLAG_SHADER_COLOR_SPACE) - public void setWorkingColorSpace(@Nullable ColorSpace colorSpace) { - if (colorSpace != null && colorSpace.getModel() != ColorSpace.Model.RGB) { - throw new IllegalArgumentException("ColorSpace must be RGB, given " + colorSpace); - } - if (mWorkingColorSpace != colorSpace) { - mWorkingColorSpace = colorSpace; - if (mWorkingColorSpace != null) { - // Just to enforce this can be resolved instead of erroring out later - mWorkingColorSpace.getNativeInstance(); - } - discardNativeInstance(); - } - } - - /** * 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 * corresponding layout(color) annotation then an IllegalArgumentException is thrown. @@ -611,8 +578,7 @@ public class RuntimeShader extends Shader { /** @hide */ @Override protected long createNativeInstance(long nativeMatrix, boolean filterFromPaint) { - return nativeCreateShader(mNativeInstanceRuntimeShaderBuilder, nativeMatrix, - mWorkingColorSpace != null ? mWorkingColorSpace.getNativeInstance() : 0); + return nativeCreateShader(mNativeInstanceRuntimeShaderBuilder, nativeMatrix); } /** @hide */ @@ -622,8 +588,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, - long colorSpacePtr); + 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( diff --git a/libs/hwui/aconfig/hwui_flags.aconfig b/libs/hwui/aconfig/hwui_flags.aconfig index 2cddf24f6c72..5e71d3360f39 100644 --- a/libs/hwui/aconfig/hwui_flags.aconfig +++ b/libs/hwui/aconfig/hwui_flags.aconfig @@ -127,14 +127,6 @@ flag { } flag { - name: "shader_color_space" - is_exported: true - namespace: "core_graphics" - description: "API to set the working colorspace of a Shader or ColorFilter" - bug: "299670828" -} - -flag { name: "query_global_priority" namespace: "core_graphics" description: "Attempt to query whether the vulkan driver supports the requested global priority before queue creation." diff --git a/libs/hwui/jni/Shader.cpp b/libs/hwui/jni/Shader.cpp index c02508977eba..eadb9dea566f 100644 --- a/libs/hwui/jni/Shader.cpp +++ b/libs/hwui/jni/Shader.cpp @@ -266,17 +266,11 @@ 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, - jlong colorSpacePtr) { +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); - auto colorSpace = GraphicsJNI::getNativeColorSpace(colorSpacePtr); sk_sp<SkShader> shader = builder->makeShader(matrix); ThrowIAE_IfNull(env, shader); - if (colorSpace) { - shader = shader->makeWithWorkingColorSpace(colorSpace); - ThrowIAE_IfNull(env, shader); - } return reinterpret_cast<jlong>(shader.release()); } @@ -385,7 +379,7 @@ static const JNINativeMethod gComposeShaderMethods[] = { static const JNINativeMethod gRuntimeShaderMethods[] = { {"nativeGetFinalizer", "()J", (void*)RuntimeShader_getNativeFinalizer}, - {"nativeCreateShader", "(JJJ)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}, |