diff options
author | siva.gunturi@samsung.com <siva.gunturi@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-02 14:13:54 +0000 |
---|---|---|
committer | siva.gunturi@samsung.com <siva.gunturi@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-02 14:13:54 +0000 |
commit | d0b57b39937f4088eaa09b4a67fdd99f896209cf (patch) | |
tree | 560bb6c715f83f46b4a597e32e5fc2eed6827ff3 /ui | |
parent | 0d6e03609dbecfaf4affdd6ef95a7b7d79da204a (diff) | |
download | chromium_src-d0b57b39937f4088eaa09b4a67fdd99f896209cf.zip chromium_src-d0b57b39937f4088eaa09b4a67fdd99f896209cf.tar.gz chromium_src-d0b57b39937f4088eaa09b4a67fdd99f896209cf.tar.bz2 |
Support creation of RGB565 JavaBitmap from helper.
Now we have the copyFromCompositingSurface with format support. We should be able to create the JavaBitmap with the selected Config.
BUG=323150
Review URL: https://codereview.chromium.org/146703005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248404 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/android/java/src/org/chromium/ui/gfx/BitmapHelper.java | 7 | ||||
-rw-r--r-- | ui/gfx/android/java_bitmap.cc | 14 |
2 files changed, 15 insertions, 6 deletions
diff --git a/ui/android/java/src/org/chromium/ui/gfx/BitmapHelper.java b/ui/android/java/src/org/chromium/ui/gfx/BitmapHelper.java index 913890223..10eb53a 100644 --- a/ui/android/java/src/org/chromium/ui/gfx/BitmapHelper.java +++ b/ui/android/java/src/org/chromium/ui/gfx/BitmapHelper.java @@ -17,7 +17,12 @@ import org.chromium.base.JNINamespace; @JNINamespace("gfx") public class BitmapHelper { @CalledByNative - public static Bitmap createBitmap(int width, int height) { + private static Bitmap createBitmap(int width, + int height, + boolean is565Config) { + if (is565Config) { + return Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); + } return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); } diff --git a/ui/gfx/android/java_bitmap.cc b/ui/gfx/android/java_bitmap.cc index 2a1be65..0127ec8 100644 --- a/ui/gfx/android/java_bitmap.cc +++ b/ui/gfx/android/java_bitmap.cc @@ -42,17 +42,21 @@ bool JavaBitmap::RegisterJavaBitmap(JNIEnv* env) { return RegisterNativesImpl(env); } -static ScopedJavaLocalRef<jobject> CreateJavaBitmap(const gfx::Size& size) { +static ScopedJavaLocalRef<jobject> CreateJavaBitmap(const gfx::Size& size, + bool is565_config) { return Java_BitmapHelper_createBitmap(AttachCurrentThread(), - size.width(), size.height()); + size.width(), size.height(), is565_config); } ScopedJavaLocalRef<jobject> ConvertToJavaBitmap(const SkBitmap* skbitmap) { DCHECK(skbitmap); - DCHECK_EQ(skbitmap->bytesPerPixel(), 4); - + SkBitmap::Config config = skbitmap->getConfig(); + DCHECK((config == SkBitmap::kRGB_565_Config) || + (config == SkBitmap::kARGB_8888_Config)); + // If the Config is not RGB565 it is default i.e ARGB8888 ScopedJavaLocalRef<jobject> jbitmap = - CreateJavaBitmap(gfx::Size(skbitmap->width(), skbitmap->height())); + CreateJavaBitmap(gfx::Size(skbitmap->width(), skbitmap->height()), + (config == SkBitmap::kRGB_565_Config)); SkAutoLockPixels src_lock(*skbitmap); JavaBitmap dst_lock(jbitmap.obj()); void* src_pixels = skbitmap->getPixels(); |