Commit eb871451 authored by vivek.vg@samsung.com's avatar vivek.vg@samsung.com

[Android] Modify CreateJavaBitmap to accept SkBitmap::Config and export the API.

Export the API CreateJavaBitmap to be utilized from other places instead of
using the BitmapHelper class.

Review URL: https://codereview.chromium.org/183023002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255327 0039d316-1c4b-4281-b951-d872f2087c98
parent 14398630
......@@ -41,14 +41,6 @@ bool JavaBitmap::RegisterJavaBitmap(JNIEnv* env) {
return RegisterNativesImpl(env);
}
static ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width,
int height,
int bitmap_config) {
return Java_BitmapHelper_createBitmap(
AttachCurrentThread(), width, height, bitmap_config);
}
static int SkBitmapConfigToBitmapFormat(SkBitmap::Config bitmap_config) {
switch (bitmap_config) {
case SkBitmap::kA8_Config:
......@@ -66,14 +58,21 @@ static int SkBitmapConfigToBitmapFormat(SkBitmap::Config bitmap_config) {
}
}
ScopedJavaLocalRef<jobject> CreateJavaBitmap(int width,
int height,
SkBitmap::Config bitmap_config) {
int java_bitmap_config = SkBitmapConfigToBitmapFormat(bitmap_config);
return Java_BitmapHelper_createBitmap(
AttachCurrentThread(), width, height, java_bitmap_config);
}
ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) {
DCHECK(skbitmap);
SkBitmap::Config config = skbitmap->getConfig();
DCHECK((config == SkBitmap::kRGB_565_Config) ||
(config == SkBitmap::kARGB_8888_Config));
int java_bitmap_config = SkBitmapConfigToBitmapFormat(config);
SkBitmap::Config bitmap_config = skbitmap->getConfig();
DCHECK((bitmap_config == SkBitmap::kRGB_565_Config) ||
(bitmap_config == SkBitmap::kARGB_8888_Config));
ScopedJavaLocalRef<jobject> jbitmap = CreateJavaBitmap(
skbitmap->width(), skbitmap->height(), java_bitmap_config);
skbitmap->width(), skbitmap->height(), bitmap_config);
SkAutoLockPixels src_lock(*skbitmap);
JavaBitmap dst_lock(jbitmap.obj());
void* src_pixels = skbitmap->getPixels();
......
......@@ -49,6 +49,13 @@ class GFX_EXPORT JavaBitmap {
DISALLOW_COPY_AND_ASSIGN(JavaBitmap);
};
// Allocates a Java-backed bitmap (android.graphics.Bitmap) with the given size
// and configuration.
GFX_EXPORT base::android::ScopedJavaLocalRef<jobject> CreateJavaBitmap(
int width,
int height,
SkBitmap::Config bitmap_config);
GFX_EXPORT base::android::ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(
const SkBitmap* skbitmap);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment