summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2011-04-04 14:42:32 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-04-04 14:42:32 -0700
commit7b584867cdfef3ba393e308471d5da76024e249c (patch)
treea19f5a7537958e81d2f1bbd5878b4eb41a05d956
parent3629275560f4a952cedd69c76b7b96b3b490f6f6 (diff)
parentcd347fdf74d5f2e0af856455c514e655f40a6fdb (diff)
downloadhardware_libhardware-7b584867cdfef3ba393e308471d5da76024e249c.zip
hardware_libhardware-7b584867cdfef3ba393e308471d5da76024e249c.tar.gz
hardware_libhardware-7b584867cdfef3ba393e308471d5da76024e249c.tar.bz2
am cd347fdf: Allow to force 16bpp when 32bpp has problems
* commit 'cd347fdf74d5f2e0af856455c514e655f40a6fdb': Allow to force 16bpp when 32bpp has problems
-rw-r--r--modules/gralloc/Android.mk3
-rw-r--r--modules/gralloc/framebuffer.cpp18
2 files changed, 21 insertions, 0 deletions
diff --git a/modules/gralloc/Android.mk b/modules/gralloc/Android.mk
index ac09e5a..cbfd82b 100644
--- a/modules/gralloc/Android.mk
+++ b/modules/gralloc/Android.mk
@@ -32,5 +32,8 @@ LOCAL_CFLAGS:= -DLOG_TAG=\"gralloc\"
ifeq ($(BOARD_NO_PAGE_FLIPPING),true)
LOCAL_CFLAGS += -DNO_PAGE_FLIPPING
endif
+ifeq ($(BOARD_NO_32BPP),true)
+LOCAL_CFLAGS += -DNO_32BPP
+endif
include $(BUILD_SHARED_LIBRARY)
diff --git a/modules/gralloc/framebuffer.cpp b/modules/gralloc/framebuffer.cpp
index e1323c2..fe57a8a 100644
--- a/modules/gralloc/framebuffer.cpp
+++ b/modules/gralloc/framebuffer.cpp
@@ -176,6 +176,21 @@ int mapFrameBufferLocked(struct private_module_t* module)
info.yoffset = 0;
info.activate = FB_ACTIVATE_NOW;
+#if defined(NO_32BPP)
+ /*
+ * Explicitly request 5/6/5
+ */
+ info.bits_per_pixel = 16;
+ info.red.offset = 11;
+ info.red.length = 5;
+ info.green.offset = 5;
+ info.green.length = 6;
+ info.blue.offset = 0;
+ info.blue.length = 5;
+ info.transp.offset = 0;
+ info.transp.length = 0;
+#endif
+
/*
* Request NUM_BUFFERS screens (at lest 2 for page flipping)
*/
@@ -342,6 +357,9 @@ int fb_device_open(hw_module_t const* module, const char* name,
int format = (m->info.bits_per_pixel == 32)
? HAL_PIXEL_FORMAT_RGBX_8888
: HAL_PIXEL_FORMAT_RGB_565;
+#ifdef NO_32BPP
+ format = HAL_PIXEL_FORMAT_RGB_565;
+#endif
const_cast<uint32_t&>(dev->device.flags) = 0;
const_cast<uint32_t&>(dev->device.width) = m->info.xres;
const_cast<uint32_t&>(dev->device.height) = m->info.yres;