Skip to content
Snippets Groups Projects
Commit 68f6618b authored by Timur Tabi's avatar Timur Tabi Committed by Anatolij Gustschin
Browse files

video: cfb_console: add support for 4bpp bitmaps with GDF_32BIT_X888RGB


Add support for 4bpp bitmaps, currently only for GDF_32BIT_X888RGB
frame buffer format.

Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
parent ef351fe1
No related branches found
No related tags found
No related merge requests found
......@@ -1114,8 +1114,44 @@ int video_display_bitmap (ulong bmp_image, int x, int y)
}
#endif
/* We handle only 8bpp or 24 bpp bitmap */
/* We handle only 4, 8, or 24 bpp bitmaps */
switch (le16_to_cpu (bmp->header.bit_count)) {
case 4:
padded_line -= width / 2;
ycount = height;
switch (VIDEO_DATA_FORMAT) {
case GDF_32BIT_X888RGB:
while (ycount--) {
WATCHDOG_RESET ();
/*
* Don't assume that 'width' is an
* even number
*/
for (xcount = 0; xcount < width; xcount++) {
uchar idx;
if (xcount & 1) {
idx = *bmap & 0xF;
bmap++;
} else
idx = *bmap >> 4;
cte = bmp->color_table[idx];
FILL_32BIT_X888RGB(cte.red, cte.green,
cte.blue);
}
bmap += padded_line;
fb -= (VIDEO_VISIBLE_COLS + width) *
VIDEO_PIXEL_SIZE;
}
break;
default:
puts("4bpp bitmap unsupported with current "
"video mode\n");
break;
}
break;
case 8:
padded_line -= width;
if (VIDEO_DATA_FORMAT == GDF__8BIT_INDEX) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment