| Index: ui/gfx/android/java_bitmap.cc
|
| diff --git a/ui/gfx/android/java_bitmap.cc b/ui/gfx/android/java_bitmap.cc
|
| index ea0a50fe6a927e133d71336bbcfbe2274cda9d3a..77b29766b5b9d90eec0120b9de6aacfd6bbd5381 100644
|
| --- a/ui/gfx/android/java_bitmap.cc
|
| +++ b/ui/gfx/android/java_bitmap.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <android/bitmap.h>
|
|
|
| +#include "base/android/jni_android.h"
|
| #include "base/android/jni_string.h"
|
| #include "base/logging.h"
|
| #include "jni/BitmapHelper_jni.h"
|
| @@ -86,6 +87,27 @@ ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) {
|
| return jbitmap;
|
| }
|
|
|
| +ScopedJavaLocalRef<jobjectArray> ConvertToJavaBitmaps(
|
| + const std::vector<SkBitmap>& skbitmaps) {
|
| + JNIEnv* env = AttachCurrentThread();
|
| + ScopedJavaLocalRef<jclass> clazz =
|
| + base::android::GetClass(env, "android/graphics/Bitmap");
|
| + jobjectArray array = env->NewObjectArray(skbitmaps.size(), clazz.obj(),
|
| + nullptr /* initialElement */);
|
| + base::android::CheckException(env);
|
| +
|
| + for (size_t i = 0; i < skbitmaps.size(); ++i) {
|
| + if (skbitmaps[i].drawsNothing()) {
|
| + env->SetObjectArrayElement(array, i, nullptr);
|
| + } else {
|
| + env->SetObjectArrayElement(array, i,
|
| + ConvertToJavaBitmap(&(skbitmaps[i])).obj());
|
| + }
|
| + }
|
| +
|
| + return ScopedJavaLocalRef<jobjectArray>(env, array);
|
| +}
|
| +
|
| SkBitmap CreateSkBitmapFromJavaBitmap(const JavaBitmap& jbitmap) {
|
| DCHECK(!jbitmap.size().IsEmpty());
|
| DCHECK_GT(jbitmap.stride(), 0U);
|
|
|