* [U-Boot] [PATCH v4 1/3]: LCD: display 32bpp decompressed bitmap image
@ 2012-05-04 6:39 Donghwa Lee
0 siblings, 0 replies; only message in thread
From: Donghwa Lee @ 2012-05-04 6:39 UTC (permalink / raw)
To: u-boot
This patch supports drawing 32bpp decompressed bitmap image.
Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Kyungmin.park <kyungmin.park@samsung.com>
---
Changes for v1/v2/v3:
- use lcd_line_length variable
- convert RGB to BGR because BMP data format aligned BGR.
common/lcd.c | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/common/lcd.c b/common/lcd.c
index bf1a6a9..460442d 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -616,6 +616,9 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
#if !defined(CONFIG_MCC200)
ushort *cmap = NULL;
#endif
+#if defined(CONFIG_BMP_32BPP)
+ uchar r, g, b, a;
+#endif
ushort *cmap_base = NULL;
ushort i, j;
uchar *fb;
@@ -645,14 +648,14 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
bpix = NBITS(panel_info.vl_bpix);
- if ((bpix != 1) && (bpix != 8) && (bpix != 16)) {
+ if ((bpix != 1) && (bpix != 8) && (bpix != 16) && (bpix != 32)) {
printf ("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n",
bpix, bmp_bpix);
return 1;
}
/* We support displaying 8bpp BMPs on 16bpp LCDs */
- if (bpix != bmp_bpix && (bmp_bpix != 8 || bpix != 16)) {
+ if (bpix != bmp_bpix && (bmp_bpix != 8 || bpix != 16 || bpix != 32)) {
printf ("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n",
bpix,
le16_to_cpu(bmp->header.bit_count));
@@ -669,7 +672,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
cmap = (ushort *)fbi->palette;
#elif defined(CONFIG_MPC823)
cmap = (ushort *)&(cp->lcd_cmap[255*sizeof(ushort)]);
-#elif !defined(CONFIG_ATMEL_LCD)
+#elif !defined(CONFIG_ATMEL_LCD) && !defined(CONFIG_EXYNOS_FB)
cmap = panel_info.cmap;
#endif
@@ -791,6 +794,24 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
break;
#endif /* CONFIG_BMP_16BPP */
+#if defined(CONFIG_BMP_32BPP)
+ case 32:
+ for (i = 0; i < height; ++i) {
+ for (j = 0; j < width; j++) {
+ b = *(bmap++);
+ g = *(bmap++);
+ r = *(bmap++);
+ a = *(bmap++);
+
+ *(fb++) = r;
+ *(fb++) = g;
+ *(fb++) = b;
+ *(fb++) = a;
+ }
+ fb -= (lcd_line_length + width * (bpix / 8));
+ }
+ break;
+#endif /* CONFIG_BMP_32BPP */
default:
break;
};
--
1.7.4.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-05-04 6:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-04 6:39 [U-Boot] [PATCH v4 1/3]: LCD: display 32bpp decompressed bitmap image Donghwa Lee
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.