Merge "Cleanup/document Shaders for UI rendering module"
diff --git a/graphics/java/android/graphics/BitmapShader.java b/graphics/java/android/graphics/BitmapShader.java
index edf53c4..1cb5912 100644
--- a/graphics/java/android/graphics/BitmapShader.java
+++ b/graphics/java/android/graphics/BitmapShader.java
@@ -17,7 +17,6 @@
package android.graphics;
import android.annotation.NonNull;
-import android.compat.annotation.UnsupportedAppUsage;
/**
* Shader used to draw a bitmap as a texture. The bitmap can be repeated or
@@ -26,15 +25,10 @@
public class BitmapShader extends Shader {
/**
* Prevent garbage collection.
- * @hide
*/
- @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"})
- @UnsupportedAppUsage
- public Bitmap mBitmap;
+ /*package*/ Bitmap mBitmap;
- @UnsupportedAppUsage
private int mTileX;
- @UnsupportedAppUsage
private int mTileY;
/**
@@ -52,16 +46,14 @@
if (bitmap == null) {
throw new IllegalArgumentException("Bitmap must be non-null");
}
- if (bitmap == mBitmap && tileX == mTileX && tileY == mTileY) {
- return;
- }
mBitmap = bitmap;
mTileX = tileX;
mTileY = tileY;
}
+ /** @hide */
@Override
- long createNativeInstance(long nativeMatrix) {
+ protected long createNativeInstance(long nativeMatrix) {
return nativeCreate(nativeMatrix, mBitmap.getNativeInstance(), mTileX, mTileY);
}
diff --git a/graphics/java/android/graphics/ComposeShader.java b/graphics/java/android/graphics/ComposeShader.java
index 64ee6bf..279e293 100644
--- a/graphics/java/android/graphics/ComposeShader.java
+++ b/graphics/java/android/graphics/ComposeShader.java
@@ -84,8 +84,9 @@
mPorterDuffMode = nativeMode;
}
+ /** @hide */
@Override
- long createNativeInstance(long nativeMatrix) {
+ protected long createNativeInstance(long nativeMatrix) {
mNativeInstanceShaderA = mShaderA.getNativeInstance();
mNativeInstanceShaderB = mShaderB.getNativeInstance();
return nativeCreate(nativeMatrix,
diff --git a/graphics/java/android/graphics/LinearGradient.java b/graphics/java/android/graphics/LinearGradient.java
index 3f3ad96..ebe34ca 100644
--- a/graphics/java/android/graphics/LinearGradient.java
+++ b/graphics/java/android/graphics/LinearGradient.java
@@ -151,8 +151,9 @@
this(x0, y0, x1, y1, new long[] {color0, color1}, null, tile);
}
+ /** @hide */
@Override
- long createNativeInstance(long nativeMatrix) {
+ protected long createNativeInstance(long nativeMatrix) {
return nativeCreate(nativeMatrix, mX0, mY0, mX1, mY1,
mColorLongs, mPositions, mTileMode.nativeInt,
colorSpace().getNativeInstance());
diff --git a/graphics/java/android/graphics/RadialGradient.java b/graphics/java/android/graphics/RadialGradient.java
index 96b7b9a..089d6de 100644
--- a/graphics/java/android/graphics/RadialGradient.java
+++ b/graphics/java/android/graphics/RadialGradient.java
@@ -147,8 +147,9 @@
this(centerX, centerY, radius, new long[] {centerColor, edgeColor}, null, tileMode);
}
+ /** @hide */
@Override
- long createNativeInstance(long nativeMatrix) {
+ protected long createNativeInstance(long nativeMatrix) {
return nativeCreate(nativeMatrix, mX, mY, mRadius,
mColorLongs, mPositions, mTileMode.nativeInt,
colorSpace().getNativeInstance());
diff --git a/graphics/java/android/graphics/RuntimeShader.java b/graphics/java/android/graphics/RuntimeShader.java
index 5a3f2a9..5a0b4a9 100644
--- a/graphics/java/android/graphics/RuntimeShader.java
+++ b/graphics/java/android/graphics/RuntimeShader.java
@@ -74,8 +74,9 @@
discardNativeInstance();
}
+ /** @hide */
@Override
- long createNativeInstance(long nativeMatrix) {
+ protected long createNativeInstance(long nativeMatrix) {
return nativeCreate(mNativeInstanceRuntimeShaderFactory, nativeMatrix, mUniforms,
colorSpace().getNativeInstance(), mIsOpaque);
}
diff --git a/graphics/java/android/graphics/Shader.java b/graphics/java/android/graphics/Shader.java
index 5335aa4..3b0795a 100644
--- a/graphics/java/android/graphics/Shader.java
+++ b/graphics/java/android/graphics/Shader.java
@@ -20,12 +20,11 @@
import android.annotation.ColorLong;
import android.annotation.NonNull;
import android.annotation.Nullable;
-import android.compat.annotation.UnsupportedAppUsage;
import libcore.util.NativeAllocationRegistry;
/**
- * Shader is the based class for objects that return horizontal spans of colors
+ * Shader is the base class for objects that return horizontal spans of colors
* during drawing. A subclass of Shader is installed in a Paint calling
* paint.setShader(shader). After that any object (other than a bitmap) that is
* drawn with that paint will get its color(s) from the shader.
@@ -47,9 +46,9 @@
}
/**
- * @hide
+ * @hide Only to be used by subclasses in android.graphics.
*/
- public Shader(ColorSpace colorSpace) {
+ protected Shader(ColorSpace colorSpace) {
mColorSpace = colorSpace;
if (colorSpace == null) {
throw new IllegalArgumentException(
@@ -63,7 +62,7 @@
private final ColorSpace mColorSpace;
/**
- * @hide
+ * @hide Only to be used by subclasses in android.graphics.
*/
protected ColorSpace colorSpace() {
return mColorSpace;
@@ -97,11 +96,10 @@
* mirror images so that adjacent images always seam
*/
MIRROR (2);
-
+
TileMode(int nativeInt) {
this.nativeInt = nativeInt;
}
- @UnsupportedAppUsage
final int nativeInt;
}
@@ -142,11 +140,16 @@
}
}
- long createNativeInstance(long nativeMatrix) {
+ /**
+ * @hide Only to be used by subclasses in the graphics package.
+ */
+ protected long createNativeInstance(long nativeMatrix) {
return 0;
}
- /** @hide */
+ /**
+ * @hide Only to be used by subclasses in the graphics package.
+ */
protected final void discardNativeInstance() {
if (mNativeInstance != 0) {
mCleaner.run();
@@ -158,14 +161,15 @@
/**
* Callback for subclasses to call {@link #discardNativeInstance()} if the most recently
* constructed native instance is no longer valid.
- * @hide
+ * @hide Only to be used by subclasses in the graphics package.
*/
protected void verifyNativeInstance() {
}
/**
- * @hide
+ * @hide so it can be called by android.graphics.drawable but must not be called from outside
+ * the module.
*/
public final long getNativeInstance() {
// verify mNativeInstance is valid
@@ -183,9 +187,9 @@
}
/**
- * @hide
+ * @hide Only to be called by subclasses in the android.graphics package.
*/
- public static @ColorLong long[] convertColors(@NonNull @ColorInt int[] colors) {
+ protected static @ColorLong long[] convertColors(@NonNull @ColorInt int[] colors) {
if (colors.length < 2) {
throw new IllegalArgumentException("needs >= 2 number of colors");
}
@@ -204,9 +208,9 @@
* @throws IllegalArgumentException if the colors do not all share the same,
* valid ColorSpace, or if there are less than 2 colors.
*
- * @hide
+ * @hide Only to be called by subclasses in the android.graphics package.
*/
- public static ColorSpace detectColorSpace(@NonNull @ColorLong long[] colors) {
+ protected static ColorSpace detectColorSpace(@NonNull @ColorLong long[] colors) {
if (colors.length < 2) {
throw new IllegalArgumentException("needs >= 2 number of colors");
}
diff --git a/graphics/java/android/graphics/SweepGradient.java b/graphics/java/android/graphics/SweepGradient.java
index 0852004..f1ca198 100644
--- a/graphics/java/android/graphics/SweepGradient.java
+++ b/graphics/java/android/graphics/SweepGradient.java
@@ -130,8 +130,9 @@
this(cx, cy, new long[] {color0, color1}, null);
}
+ /** @hide */
@Override
- long createNativeInstance(long nativeMatrix) {
+ protected long createNativeInstance(long nativeMatrix) {
return nativeCreate(nativeMatrix, mCx, mCy, mColorLongs, mPositions,
colorSpace().getNativeInstance());
}