summaryrefslogtreecommitdiff
path: root/opengl
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2019-08-14 15:50:59 -0400
committerDerek Sollenberger <djsollen@google.com>2019-09-10 14:50:02 -0400
commit9ca5bbe39f54547dbe585c39459208719a9728b4 (patch)
tree945a0e0a7e58c128d31619e5034a9e104ca06766 /opengl
parent00f6e5d22db205765eeadbe6500f3f5500fb3d6a (diff)
Create C API for accessing android.graphics.Bitmap in native code.
Restrict access to SkBitmap for libandroid_runtime.so to be only within the boundaries of the graphics module. Test: CtsUiRenderingTestCases Bug: 137655431 Change-Id: I4d0ea227e91d22068966513c4e3a55021b9e924f
Diffstat (limited to 'opengl')
-rw-r--r--opengl/java/android/opengl/GLUtils.java30
1 files changed, 13 insertions, 17 deletions
diff --git a/opengl/java/android/opengl/GLUtils.java b/opengl/java/android/opengl/GLUtils.java
index ca8d5ac52021..cc46514ae96e 100644
--- a/opengl/java/android/opengl/GLUtils.java
+++ b/opengl/java/android/opengl/GLUtils.java
@@ -44,7 +44,7 @@ public final class GLUtils {
if (bitmap.isRecycled()) {
throw new IllegalArgumentException("bitmap is recycled");
}
- int result = native_getInternalFormat(bitmap.getNativeInstance());
+ int result = native_getInternalFormat(bitmap);
if (result < 0) {
throw new IllegalArgumentException("Unknown internalformat");
}
@@ -66,7 +66,7 @@ public final class GLUtils {
if (bitmap.isRecycled()) {
throw new IllegalArgumentException("bitmap is recycled");
}
- int result = native_getType(bitmap.getNativeInstance());
+ int result = native_getType(bitmap);
if (result < 0) {
throw new IllegalArgumentException("Unknown type");
}
@@ -103,8 +103,7 @@ public final class GLUtils {
if (bitmap.isRecycled()) {
throw new IllegalArgumentException("bitmap is recycled");
}
- if (native_texImage2D(target, level, internalformat, bitmap.getNativeInstance(), -1,
- border) != 0) {
+ if (native_texImage2D(target, level, internalformat, bitmap, -1, border) != 0) {
throw new IllegalArgumentException("invalid Bitmap format");
}
}
@@ -130,8 +129,7 @@ public final class GLUtils {
if (bitmap.isRecycled()) {
throw new IllegalArgumentException("bitmap is recycled");
}
- if (native_texImage2D(target, level, internalformat, bitmap.getNativeInstance(), type,
- border) != 0) {
+ if (native_texImage2D(target, level, internalformat, bitmap, type, border) != 0) {
throw new IllegalArgumentException("invalid Bitmap format");
}
}
@@ -153,7 +151,7 @@ public final class GLUtils {
if (bitmap.isRecycled()) {
throw new IllegalArgumentException("bitmap is recycled");
}
- if (native_texImage2D(target, level, -1, bitmap.getNativeInstance(), -1, border) != 0) {
+ if (native_texImage2D(target, level, -1, bitmap, -1, border) != 0) {
throw new IllegalArgumentException("invalid Bitmap format");
}
}
@@ -189,8 +187,7 @@ public final class GLUtils {
throw new IllegalArgumentException("bitmap is recycled");
}
int type = getType(bitmap);
- if (native_texSubImage2D(target, level, xoffset, yoffset, bitmap.getNativeInstance(), -1,
- type) != 0) {
+ if (native_texSubImage2D(target, level, xoffset, yoffset, bitmap, -1, type) != 0) {
throw new IllegalArgumentException("invalid Bitmap format");
}
}
@@ -214,8 +211,7 @@ public final class GLUtils {
if (bitmap.isRecycled()) {
throw new IllegalArgumentException("bitmap is recycled");
}
- if (native_texSubImage2D(target, level, xoffset, yoffset, bitmap.getNativeInstance(),
- format, type) != 0) {
+ if (native_texSubImage2D(target, level, xoffset, yoffset, bitmap, format, type) != 0) {
throw new IllegalArgumentException("invalid Bitmap format");
}
}
@@ -265,10 +261,10 @@ public final class GLUtils {
}
}
- native private static int native_getInternalFormat(long bitmapHandle);
- native private static int native_getType(long bitmapHandle);
- native private static int native_texImage2D(int target, int level, int internalformat,
- long bitmapHandle, int type, int border);
- native private static int native_texSubImage2D(int target, int level, int xoffset, int yoffset,
- long bitmapHandle, int format, int type);
+ private static native int native_getInternalFormat(Bitmap bitmap);
+ private static native int native_getType(Bitmap bitmap);
+ private static native int native_texImage2D(int target, int level, int internalformat,
+ Bitmap bitmap, int type, int border);
+ private static native int native_texSubImage2D(int target, int level, int xoffset, int yoffset,
+ Bitmap bitmap, int format, int type);
}