summaryrefslogtreecommitdiff
path: root/native
diff options
context:
space:
mode:
authorLeon Scroggins <scroggo@google.com>2020-01-22 19:37:36 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-01-22 19:37:36 +0000
commit69bfed8d609e6a6d85c7098871731938ec7d194a (patch)
treeb293944945b88351b57fbfd24f3cd2949aa9248f /native
parentd50c7697a62c242b3bdde655e9d25d2dd000aa08 (diff)
parent84a2afcbfbfbbc91cbaf83d55a8ebccc987e66f1 (diff)
Merge "Update NDK methods for HARDWARE Bitmaps"
Diffstat (limited to 'native')
-rw-r--r--native/graphics/jni/bitmap.cpp15
-rw-r--r--native/graphics/jni/libjnigraphics.map.txt1
2 files changed, 16 insertions, 0 deletions
diff --git a/native/graphics/jni/bitmap.cpp b/native/graphics/jni/bitmap.cpp
index ea8a521c9d5f..4f21ccba2419 100644
--- a/native/graphics/jni/bitmap.cpp
+++ b/native/graphics/jni/bitmap.cpp
@@ -76,6 +76,21 @@ int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap) {
return ANDROID_BITMAP_RESULT_SUCCESS;
}
+int AndroidBitmap_getHardwareBuffer(JNIEnv* env, jobject jbitmap, AHardwareBuffer** outBuffer) {
+ if (NULL == env || NULL == jbitmap || NULL == outBuffer) {
+ return ANDROID_BITMAP_RESULT_BAD_PARAMETER;
+ }
+
+ android::graphics::Bitmap bitmap(env, jbitmap);
+
+ if (!bitmap.isValid()) {
+ return ANDROID_BITMAP_RESULT_JNI_EXCEPTION;
+ }
+
+ *outBuffer = bitmap.getHardwareBuffer();
+ return *outBuffer == NULL ? ANDROID_BITMAP_RESULT_BAD_PARAMETER : ANDROID_BITMAP_RESULT_SUCCESS;
+}
+
int AndroidBitmap_compress(const AndroidBitmapInfo* info,
int32_t dataSpace,
const void* pixels,
diff --git a/native/graphics/jni/libjnigraphics.map.txt b/native/graphics/jni/libjnigraphics.map.txt
index d9e7828d852a..31a1b9c18ee8 100644
--- a/native/graphics/jni/libjnigraphics.map.txt
+++ b/native/graphics/jni/libjnigraphics.map.txt
@@ -23,6 +23,7 @@ LIBJNIGRAPHICS {
AndroidBitmap_lockPixels;
AndroidBitmap_unlockPixels;
AndroidBitmap_compress; # introduced=30
+ AndroidBitmap_getHardwareBuffer; #introduced=30
local:
*;
};