summaryrefslogtreecommitdiff
path: root/native/graphics
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2019-11-08 08:50:58 -0500
committerDerek Sollenberger <djsollen@google.com>2019-11-21 12:49:20 -0500
commit6c41ab13d0734dc1d154f5fd3f05e922e3a1e4f0 (patch)
treea1b37ec5156c9ec6911dc49c86b229c624d1a3d8 /native/graphics
parent17c36347cc929a5dd40558fe14eeea14676253b4 (diff)
Consolidate NDK and APEX implementations
the NDK APIs are implemented in terms of the APEX APIs to reduce the number of different implementations serving the same fundamental purpose. Bug: 137655431 Test: CtsGraphicsTestCases Change-Id: Idc7b85403a7e546843b9c1d822acc0a1e740059a
Diffstat (limited to 'native/graphics')
-rw-r--r--native/graphics/jni/bitmap.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/native/graphics/jni/bitmap.cpp b/native/graphics/jni/bitmap.cpp
index ff14832a2f0f..1aebeaf1e7e8 100644
--- a/native/graphics/jni/bitmap.cpp
+++ b/native/graphics/jni/bitmap.cpp
@@ -15,7 +15,7 @@
*/
#include <android/bitmap.h>
-#include <android/graphics/Bitmap.h>
+#include <android/graphics/bitmap.h>
int AndroidBitmap_getInfo(JNIEnv* env, jobject jbitmap,
AndroidBitmapInfo* info) {
@@ -24,7 +24,7 @@ int AndroidBitmap_getInfo(JNIEnv* env, jobject jbitmap,
}
if (info) {
- android::bitmap::imageInfo(env, jbitmap, info);
+ *info = ABitmap_getInfoFromJava(env, jbitmap);
}
return ANDROID_BITMAP_RESULT_SUCCESS;
}
@@ -34,11 +34,15 @@ int AndroidBitmap_lockPixels(JNIEnv* env, jobject jbitmap, void** addrPtr) {
return ANDROID_BITMAP_RESULT_BAD_PARAMETER;
}
- void* addr = android::bitmap::lockPixels(env, jbitmap);
+ android::graphics::Bitmap bitmap(env, jbitmap);
+ void* addr = bitmap.isValid() ? bitmap.getPixels() : nullptr;
+
if (!addr) {
return ANDROID_BITMAP_RESULT_JNI_EXCEPTION;
}
+ ABitmap_acquireRef(bitmap.get());
+
if (addrPtr) {
*addrPtr = addr;
}
@@ -50,9 +54,13 @@ int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap) {
return ANDROID_BITMAP_RESULT_BAD_PARAMETER;
}
- bool unlocked = android::bitmap::unlockPixels(env, jbitmap);
- if (!unlocked) {
+ android::graphics::Bitmap bitmap(env, jbitmap);
+
+ if (!bitmap.isValid()) {
return ANDROID_BITMAP_RESULT_JNI_EXCEPTION;
}
+
+ bitmap.notifyPixelsChanged();
+ ABitmap_releaseRef(bitmap.get());
return ANDROID_BITMAP_RESULT_SUCCESS;
}