diff options
author | Leon Scroggins <scroggo@google.com> | 2020-01-22 19:37:36 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-22 19:37:36 +0000 |
commit | 69bfed8d609e6a6d85c7098871731938ec7d194a (patch) | |
tree | b293944945b88351b57fbfd24f3cd2949aa9248f /native | |
parent | d50c7697a62c242b3bdde655e9d25d2dd000aa08 (diff) | |
parent | 84a2afcbfbfbbc91cbaf83d55a8ebccc987e66f1 (diff) |
Merge "Update NDK methods for HARDWARE Bitmaps"
Diffstat (limited to 'native')
-rw-r--r-- | native/graphics/jni/bitmap.cpp | 15 | ||||
-rw-r--r-- | native/graphics/jni/libjnigraphics.map.txt | 1 |
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: *; }; |