summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorsiva.gunturi@samsung.com <siva.gunturi@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-02 14:13:54 +0000
committersiva.gunturi@samsung.com <siva.gunturi@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-02 14:13:54 +0000
commitd0b57b39937f4088eaa09b4a67fdd99f896209cf (patch)
tree560bb6c715f83f46b4a597e32e5fc2eed6827ff3 /ui
parent0d6e03609dbecfaf4affdd6ef95a7b7d79da204a (diff)
downloadchromium_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.java7
-rw-r--r--ui/gfx/android/java_bitmap.cc14
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();