Publicly Expose drawMesh APIs
Bug: b/253321460
Test: None
Change-Id: I65486ba995577391a2886fe0d5f472c2a34480da
diff --git a/core/api/current.txt b/core/api/current.txt
index 74b3ba9..9c4cc2e 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -14631,6 +14631,7 @@
method public void drawLine(float, float, float, float, @NonNull android.graphics.Paint);
method public void drawLines(@NonNull @Size(multiple=4) float[], int, int, @NonNull android.graphics.Paint);
method public void drawLines(@NonNull @Size(multiple=4) float[], @NonNull android.graphics.Paint);
+ method public void drawMesh(@NonNull android.graphics.Mesh, android.graphics.BlendMode, @NonNull android.graphics.Paint);
method public void drawOval(@NonNull android.graphics.RectF, @NonNull android.graphics.Paint);
method public void drawOval(float, float, float, float, @NonNull android.graphics.Paint);
method public void drawPaint(@NonNull android.graphics.Paint);
@@ -15206,6 +15207,49 @@
enum_constant public static final android.graphics.Matrix.ScaleToFit START;
}
+ public class Mesh {
+ method @NonNull public static android.graphics.Mesh make(@NonNull android.graphics.MeshSpecification, int, @NonNull java.nio.Buffer, int, @NonNull android.graphics.Rect);
+ method @NonNull public static android.graphics.Mesh makeIndexed(@NonNull android.graphics.MeshSpecification, int, @NonNull java.nio.Buffer, int, @NonNull java.nio.ShortBuffer, @NonNull android.graphics.Rect);
+ method public void setColorUniform(@NonNull String, int);
+ method public void setColorUniform(@NonNull String, long);
+ method public void setColorUniform(@NonNull String, @NonNull android.graphics.Color);
+ method public void setFloatUniform(@NonNull String, float);
+ method public void setFloatUniform(@NonNull String, float, float);
+ method public void setFloatUniform(@NonNull String, float, float, float);
+ method public void setFloatUniform(@NonNull String, float, float, float, float);
+ method public void setFloatUniform(@NonNull String, @NonNull float[]);
+ method public void setIntUniform(@NonNull String, int);
+ method public void setIntUniform(@NonNull String, int, int);
+ 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[]);
+ field public static final int TRIANGLES = 0; // 0x0
+ field public static final int TRIANGLE_STRIP = 1; // 0x1
+ }
+
+ public class MeshSpecification {
+ method @NonNull public static android.graphics.MeshSpecification make(@NonNull java.util.List<android.graphics.MeshSpecification.Attribute>, int, @NonNull java.util.List<android.graphics.MeshSpecification.Varying>, @NonNull String, @NonNull String);
+ method @NonNull public static android.graphics.MeshSpecification make(@NonNull java.util.List<android.graphics.MeshSpecification.Attribute>, int, @NonNull java.util.List<android.graphics.MeshSpecification.Varying>, @NonNull String, @NonNull String, @NonNull android.graphics.ColorSpace);
+ method @NonNull public static android.graphics.MeshSpecification make(@NonNull java.util.List<android.graphics.MeshSpecification.Attribute>, int, @NonNull java.util.List<android.graphics.MeshSpecification.Varying>, @NonNull String, @NonNull String, @NonNull android.graphics.ColorSpace, int);
+ field public static final int FLOAT = 0; // 0x0
+ field public static final int FLOAT2 = 1; // 0x1
+ field public static final int FLOAT3 = 2; // 0x2
+ field public static final int FLOAT4 = 3; // 0x3
+ field public static final int OPAQUE = 1; // 0x1
+ field public static final int PREMUL = 2; // 0x2
+ field public static final int UBYTE4 = 4; // 0x4
+ field public static final int UNKNOWN = 0; // 0x0
+ field public static final int UNPREMULT = 3; // 0x3
+ }
+
+ public static class MeshSpecification.Attribute {
+ ctor public MeshSpecification.Attribute(int, int, @NonNull String);
+ }
+
+ public static class MeshSpecification.Varying {
+ ctor public MeshSpecification.Varying(int, @NonNull String);
+ }
+
@Deprecated public class Movie {
method @Deprecated public static android.graphics.Movie decodeByteArray(byte[], int, int);
method @Deprecated public static android.graphics.Movie decodeFile(String);
@@ -15721,6 +15765,7 @@
}
public final class RecordingCanvas extends android.graphics.Canvas {
+ method public final void drawMesh(@NonNull android.graphics.Mesh, android.graphics.BlendMode, @NonNull android.graphics.Paint);
}
public final class Rect implements android.os.Parcelable {
diff --git a/graphics/java/android/graphics/BaseCanvas.java b/graphics/java/android/graphics/BaseCanvas.java
index 2f396c0..00ffd09 100644
--- a/graphics/java/android/graphics/BaseCanvas.java
+++ b/graphics/java/android/graphics/BaseCanvas.java
@@ -673,8 +673,6 @@
* @param mesh {@link Mesh} object that will be drawn to the screen
* @param blendMode {@link BlendMode} used to blend mesh primitives with the Paint color/shader
* @param paint {@link Paint} used to provide a color/shader/blend mode.
- *
- * @hide
*/
public void drawMesh(@NonNull Mesh mesh, BlendMode blendMode, @NonNull Paint paint) {
if (!isHardwareAccelerated() && onHwFeatureInSwMode()) {
diff --git a/graphics/java/android/graphics/Mesh.java b/graphics/java/android/graphics/Mesh.java
index e186386..a599b2c 100644
--- a/graphics/java/android/graphics/Mesh.java
+++ b/graphics/java/android/graphics/Mesh.java
@@ -34,8 +34,6 @@
* detailing the mesh object, including a mode, vertex buffer, optional index buffer, and bounds
* for the mesh. Once generated, a mesh object can be drawn through
* {@link Canvas#drawMesh(Mesh, BlendMode, Paint)}
- *
- * @hide
*/
public class Mesh {
private long mNativeMeshWrapper;
diff --git a/graphics/java/android/graphics/MeshSpecification.java b/graphics/java/android/graphics/MeshSpecification.java
index 6ef3596..52b4002 100644
--- a/graphics/java/android/graphics/MeshSpecification.java
+++ b/graphics/java/android/graphics/MeshSpecification.java
@@ -38,8 +38,6 @@
*
* These should be kept in mind when generating a mesh specification, as exceeding them will
* lead to errors.
- *
- * @hide
*/
public class MeshSpecification {
long mNativeMeshSpec;