diff --git a/api/current.txt b/api/current.txt index a38ff53577b42..6785d28c5c337 100644 --- a/api/current.txt +++ b/api/current.txt @@ -11972,6 +11972,118 @@ package android.graphics { ctor public ColorMatrixColorFilter(float[]); } + public abstract class ColorSpace { + method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[]); + method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[], android.graphics.ColorSpace.Adaptation); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent); + method public float[] fromXyz(float, float, float); + method public abstract float[] fromXyz(float[]); + method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named); + method public int getComponentCount(); + method public int getId(); + method public abstract float getMaxValue(int); + method public abstract float getMinValue(int); + method public android.graphics.ColorSpace.Model getModel(); + method public java.lang.String getName(); + method public boolean isSrgb(); + method public abstract boolean isWideGamut(); + method public float[] toXyz(float, float, float); + method public abstract float[] toXyz(float[]); + field public static final float[] ILLUMINANT_A; + field public static final float[] ILLUMINANT_B; + field public static final float[] ILLUMINANT_C; + field public static final float[] ILLUMINANT_D50; + field public static final float[] ILLUMINANT_D55; + field public static final float[] ILLUMINANT_D60; + field public static final float[] ILLUMINANT_D65; + field public static final float[] ILLUMINANT_D75; + field public static final float[] ILLUMINANT_E; + field public static final int MAX_ID = 64; // 0x40 + field public static final int MIN_ID = -1; // 0xffffffff + } + + public static final class ColorSpace.Adaptation extends java.lang.Enum { + method public static android.graphics.ColorSpace.Adaptation valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Adaptation[] values(); + enum_constant public static final android.graphics.ColorSpace.Adaptation BRADFORD; + enum_constant public static final android.graphics.ColorSpace.Adaptation VON_KRIES; + } + + public static class ColorSpace.Connector { + method public android.graphics.ColorSpace getDestination(); + method public android.graphics.ColorSpace.RenderIntent getIntent(); + method public android.graphics.ColorSpace getSource(); + method public float[] transform(float, float, float); + method public float[] transform(float[]); + } + + public static final class ColorSpace.Model extends java.lang.Enum { + method public int getComponentCount(); + method public static android.graphics.ColorSpace.Model valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Model[] values(); + enum_constant public static final android.graphics.ColorSpace.Model CMYK; + enum_constant public static final android.graphics.ColorSpace.Model LAB; + enum_constant public static final android.graphics.ColorSpace.Model RGB; + enum_constant public static final android.graphics.ColorSpace.Model XYZ; + } + + public static final class ColorSpace.Named extends java.lang.Enum { + method public static android.graphics.ColorSpace.Named valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Named[] values(); + enum_constant public static final android.graphics.ColorSpace.Named ACES; + enum_constant public static final android.graphics.ColorSpace.Named ACESCG; + enum_constant public static final android.graphics.ColorSpace.Named ADOBE_RGB; + enum_constant public static final android.graphics.ColorSpace.Named BT2020; + enum_constant public static final android.graphics.ColorSpace.Named BT709; + enum_constant public static final android.graphics.ColorSpace.Named CIE_LAB; + enum_constant public static final android.graphics.ColorSpace.Named CIE_XYZ; + enum_constant public static final android.graphics.ColorSpace.Named DCI_P3; + enum_constant public static final android.graphics.ColorSpace.Named DISPLAY_P3; + enum_constant public static final android.graphics.ColorSpace.Named EXTENDED_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named LINEAR_EXTENDED_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named LINEAR_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named NTSC_1953; + enum_constant public static final android.graphics.ColorSpace.Named PRO_PHOTO_RGB; + enum_constant public static final android.graphics.ColorSpace.Named SMPTE_C; + enum_constant public static final android.graphics.ColorSpace.Named SRGB; + } + + public static final class ColorSpace.RenderIntent extends java.lang.Enum { + method public static android.graphics.ColorSpace.RenderIntent valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.RenderIntent[] values(); + enum_constant public static final android.graphics.ColorSpace.RenderIntent ABSOLUTE; + enum_constant public static final android.graphics.ColorSpace.RenderIntent PERCEPTUAL; + enum_constant public static final android.graphics.ColorSpace.RenderIntent RELATIVE; + enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION; + } + + public static class ColorSpace.Rgb extends android.graphics.ColorSpace { + ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator); + ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float); + method public float[] fromLinear(float, float, float); + method public float[] fromLinear(float[]); + method public float[] fromXyz(float[]); + method public java.util.function.DoubleUnaryOperator getEotf(); + method public float[] getInverseTransform(float[]); + method public float[] getInverseTransform(); + method public float getMaxValue(int); + method public float getMinValue(int); + method public java.util.function.DoubleUnaryOperator getOetf(); + method public float[] getPrimaries(float[]); + method public float[] getPrimaries(); + method public float[] getTransform(float[]); + method public float[] getTransform(); + method public float[] getWhitePoint(float[]); + method public float[] getWhitePoint(); + method public boolean isWideGamut(); + method public float[] toLinear(float, float, float); + method public float[] toLinear(float[]); + method public float[] toXyz(float[]); + } + public class ComposePathEffect extends android.graphics.PathEffect { ctor public ComposePathEffect(android.graphics.PathEffect, android.graphics.PathEffect); } diff --git a/api/system-current.txt b/api/system-current.txt index bcf4897c86615..517fe256b929e 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -12455,6 +12455,118 @@ package android.graphics { ctor public ColorMatrixColorFilter(float[]); } + public abstract class ColorSpace { + method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[]); + method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[], android.graphics.ColorSpace.Adaptation); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent); + method public float[] fromXyz(float, float, float); + method public abstract float[] fromXyz(float[]); + method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named); + method public int getComponentCount(); + method public int getId(); + method public abstract float getMaxValue(int); + method public abstract float getMinValue(int); + method public android.graphics.ColorSpace.Model getModel(); + method public java.lang.String getName(); + method public boolean isSrgb(); + method public abstract boolean isWideGamut(); + method public float[] toXyz(float, float, float); + method public abstract float[] toXyz(float[]); + field public static final float[] ILLUMINANT_A; + field public static final float[] ILLUMINANT_B; + field public static final float[] ILLUMINANT_C; + field public static final float[] ILLUMINANT_D50; + field public static final float[] ILLUMINANT_D55; + field public static final float[] ILLUMINANT_D60; + field public static final float[] ILLUMINANT_D65; + field public static final float[] ILLUMINANT_D75; + field public static final float[] ILLUMINANT_E; + field public static final int MAX_ID = 64; // 0x40 + field public static final int MIN_ID = -1; // 0xffffffff + } + + public static final class ColorSpace.Adaptation extends java.lang.Enum { + method public static android.graphics.ColorSpace.Adaptation valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Adaptation[] values(); + enum_constant public static final android.graphics.ColorSpace.Adaptation BRADFORD; + enum_constant public static final android.graphics.ColorSpace.Adaptation VON_KRIES; + } + + public static class ColorSpace.Connector { + method public android.graphics.ColorSpace getDestination(); + method public android.graphics.ColorSpace.RenderIntent getIntent(); + method public android.graphics.ColorSpace getSource(); + method public float[] transform(float, float, float); + method public float[] transform(float[]); + } + + public static final class ColorSpace.Model extends java.lang.Enum { + method public int getComponentCount(); + method public static android.graphics.ColorSpace.Model valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Model[] values(); + enum_constant public static final android.graphics.ColorSpace.Model CMYK; + enum_constant public static final android.graphics.ColorSpace.Model LAB; + enum_constant public static final android.graphics.ColorSpace.Model RGB; + enum_constant public static final android.graphics.ColorSpace.Model XYZ; + } + + public static final class ColorSpace.Named extends java.lang.Enum { + method public static android.graphics.ColorSpace.Named valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Named[] values(); + enum_constant public static final android.graphics.ColorSpace.Named ACES; + enum_constant public static final android.graphics.ColorSpace.Named ACESCG; + enum_constant public static final android.graphics.ColorSpace.Named ADOBE_RGB; + enum_constant public static final android.graphics.ColorSpace.Named BT2020; + enum_constant public static final android.graphics.ColorSpace.Named BT709; + enum_constant public static final android.graphics.ColorSpace.Named CIE_LAB; + enum_constant public static final android.graphics.ColorSpace.Named CIE_XYZ; + enum_constant public static final android.graphics.ColorSpace.Named DCI_P3; + enum_constant public static final android.graphics.ColorSpace.Named DISPLAY_P3; + enum_constant public static final android.graphics.ColorSpace.Named EXTENDED_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named LINEAR_EXTENDED_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named LINEAR_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named NTSC_1953; + enum_constant public static final android.graphics.ColorSpace.Named PRO_PHOTO_RGB; + enum_constant public static final android.graphics.ColorSpace.Named SMPTE_C; + enum_constant public static final android.graphics.ColorSpace.Named SRGB; + } + + public static final class ColorSpace.RenderIntent extends java.lang.Enum { + method public static android.graphics.ColorSpace.RenderIntent valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.RenderIntent[] values(); + enum_constant public static final android.graphics.ColorSpace.RenderIntent ABSOLUTE; + enum_constant public static final android.graphics.ColorSpace.RenderIntent PERCEPTUAL; + enum_constant public static final android.graphics.ColorSpace.RenderIntent RELATIVE; + enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION; + } + + public static class ColorSpace.Rgb extends android.graphics.ColorSpace { + ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator); + ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float); + method public float[] fromLinear(float, float, float); + method public float[] fromLinear(float[]); + method public float[] fromXyz(float[]); + method public java.util.function.DoubleUnaryOperator getEotf(); + method public float[] getInverseTransform(float[]); + method public float[] getInverseTransform(); + method public float getMaxValue(int); + method public float getMinValue(int); + method public java.util.function.DoubleUnaryOperator getOetf(); + method public float[] getPrimaries(float[]); + method public float[] getPrimaries(); + method public float[] getTransform(float[]); + method public float[] getTransform(); + method public float[] getWhitePoint(float[]); + method public float[] getWhitePoint(); + method public boolean isWideGamut(); + method public float[] toLinear(float, float, float); + method public float[] toLinear(float[]); + method public float[] toXyz(float[]); + } + public class ComposePathEffect extends android.graphics.PathEffect { ctor public ComposePathEffect(android.graphics.PathEffect, android.graphics.PathEffect); } diff --git a/api/test-current.txt b/api/test-current.txt index fa75e9b4d0a5e..baebeb2bf5869 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -11997,6 +11997,118 @@ package android.graphics { ctor public ColorMatrixColorFilter(float[]); } + public abstract class ColorSpace { + method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[]); + method public static android.graphics.ColorSpace adapt(android.graphics.ColorSpace, float[], android.graphics.ColorSpace.Adaptation); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace); + method public static android.graphics.ColorSpace.Connector connect(android.graphics.ColorSpace, android.graphics.ColorSpace.RenderIntent); + method public float[] fromXyz(float, float, float); + method public abstract float[] fromXyz(float[]); + method public static android.graphics.ColorSpace get(android.graphics.ColorSpace.Named); + method public int getComponentCount(); + method public int getId(); + method public abstract float getMaxValue(int); + method public abstract float getMinValue(int); + method public android.graphics.ColorSpace.Model getModel(); + method public java.lang.String getName(); + method public boolean isSrgb(); + method public abstract boolean isWideGamut(); + method public float[] toXyz(float, float, float); + method public abstract float[] toXyz(float[]); + field public static final float[] ILLUMINANT_A; + field public static final float[] ILLUMINANT_B; + field public static final float[] ILLUMINANT_C; + field public static final float[] ILLUMINANT_D50; + field public static final float[] ILLUMINANT_D55; + field public static final float[] ILLUMINANT_D60; + field public static final float[] ILLUMINANT_D65; + field public static final float[] ILLUMINANT_D75; + field public static final float[] ILLUMINANT_E; + field public static final int MAX_ID = 64; // 0x40 + field public static final int MIN_ID = -1; // 0xffffffff + } + + public static final class ColorSpace.Adaptation extends java.lang.Enum { + method public static android.graphics.ColorSpace.Adaptation valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Adaptation[] values(); + enum_constant public static final android.graphics.ColorSpace.Adaptation BRADFORD; + enum_constant public static final android.graphics.ColorSpace.Adaptation VON_KRIES; + } + + public static class ColorSpace.Connector { + method public android.graphics.ColorSpace getDestination(); + method public android.graphics.ColorSpace.RenderIntent getIntent(); + method public android.graphics.ColorSpace getSource(); + method public float[] transform(float, float, float); + method public float[] transform(float[]); + } + + public static final class ColorSpace.Model extends java.lang.Enum { + method public int getComponentCount(); + method public static android.graphics.ColorSpace.Model valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Model[] values(); + enum_constant public static final android.graphics.ColorSpace.Model CMYK; + enum_constant public static final android.graphics.ColorSpace.Model LAB; + enum_constant public static final android.graphics.ColorSpace.Model RGB; + enum_constant public static final android.graphics.ColorSpace.Model XYZ; + } + + public static final class ColorSpace.Named extends java.lang.Enum { + method public static android.graphics.ColorSpace.Named valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.Named[] values(); + enum_constant public static final android.graphics.ColorSpace.Named ACES; + enum_constant public static final android.graphics.ColorSpace.Named ACESCG; + enum_constant public static final android.graphics.ColorSpace.Named ADOBE_RGB; + enum_constant public static final android.graphics.ColorSpace.Named BT2020; + enum_constant public static final android.graphics.ColorSpace.Named BT709; + enum_constant public static final android.graphics.ColorSpace.Named CIE_LAB; + enum_constant public static final android.graphics.ColorSpace.Named CIE_XYZ; + enum_constant public static final android.graphics.ColorSpace.Named DCI_P3; + enum_constant public static final android.graphics.ColorSpace.Named DISPLAY_P3; + enum_constant public static final android.graphics.ColorSpace.Named EXTENDED_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named LINEAR_EXTENDED_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named LINEAR_SRGB; + enum_constant public static final android.graphics.ColorSpace.Named NTSC_1953; + enum_constant public static final android.graphics.ColorSpace.Named PRO_PHOTO_RGB; + enum_constant public static final android.graphics.ColorSpace.Named SMPTE_C; + enum_constant public static final android.graphics.ColorSpace.Named SRGB; + } + + public static final class ColorSpace.RenderIntent extends java.lang.Enum { + method public static android.graphics.ColorSpace.RenderIntent valueOf(java.lang.String); + method public static final android.graphics.ColorSpace.RenderIntent[] values(); + enum_constant public static final android.graphics.ColorSpace.RenderIntent ABSOLUTE; + enum_constant public static final android.graphics.ColorSpace.RenderIntent PERCEPTUAL; + enum_constant public static final android.graphics.ColorSpace.RenderIntent RELATIVE; + enum_constant public static final android.graphics.ColorSpace.RenderIntent SATURATION; + } + + public static class ColorSpace.Rgb extends android.graphics.ColorSpace { + ctor public ColorSpace.Rgb(java.lang.String, float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator); + ctor public ColorSpace.Rgb(java.lang.String, float[], float[], java.util.function.DoubleUnaryOperator, java.util.function.DoubleUnaryOperator, float, float); + method public float[] fromLinear(float, float, float); + method public float[] fromLinear(float[]); + method public float[] fromXyz(float[]); + method public java.util.function.DoubleUnaryOperator getEotf(); + method public float[] getInverseTransform(float[]); + method public float[] getInverseTransform(); + method public float getMaxValue(int); + method public float getMinValue(int); + method public java.util.function.DoubleUnaryOperator getOetf(); + method public float[] getPrimaries(float[]); + method public float[] getPrimaries(); + method public float[] getTransform(float[]); + method public float[] getTransform(); + method public float[] getWhitePoint(float[]); + method public float[] getWhitePoint(); + method public boolean isWideGamut(); + method public float[] toLinear(float, float, float); + method public float[] toLinear(float[]); + method public float[] toXyz(float[]); + } + public class ComposePathEffect extends android.graphics.PathEffect { ctor public ComposePathEffect(android.graphics.PathEffect, android.graphics.PathEffect); } diff --git a/core/java/android/annotation/ColorLong.java b/core/java/android/annotation/ColorLong.java new file mode 100644 index 0000000000000..9b19c76802c9f --- /dev/null +++ b/core/java/android/annotation/ColorLong.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.LOCAL_VARIABLE; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.RetentionPolicy.SOURCE; + +/** + *

Denotes that the annotated element represents a packed color + * long. If applied to a long array, every element in the array + * represents a color long. For more information on how colors + * are packed in a long, please refer to the documentation of + * the {@link android.graphics.Color} class.

+ * + *

Example:

+ * + *
{@code
+ *  public void setFillColor(@ColorLong long color);
+ * }
+ * + * @see android.graphics.Color + * + * @hide + */ +@Retention(SOURCE) +@Target({PARAMETER,METHOD,LOCAL_VARIABLE,FIELD}) +public @interface ColorLong { +} diff --git a/core/java/android/util/Half.java b/core/java/android/util/Half.java index 1abc10d63509c..e4f8dd1b12b83 100644 --- a/core/java/android/util/Half.java +++ b/core/java/android/util/Half.java @@ -543,9 +543,9 @@ public final class Half { /** *

Converts the specified half-precision float value into a - * single-precision float value with the following special cases:

+ * single-precision float value. The following special cases are handled:

*