From e550bd29a17a792f7956f3120e5c160967fe3bed Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Wed, 18 Dec 2013 14:54:30 +0100 Subject: graphics: support smaller than 2^n colormaps --- src/efi/graphics.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/efi/graphics.c b/src/efi/graphics.c index 23b5d7d..69a77a4 100644 --- a/src/efi/graphics.c +++ b/src/efi/graphics.c @@ -179,16 +179,20 @@ EFI_STATUS bmp_to_blt(UINT8 *bmp, UINTN size, UINT32 map_count; UINTN map_size; - switch (dib->depth) { - case 1: - case 4: - case 8: - map_count = 1 << dib->depth; - break; - - default: - map_count = 0; - break; + if (dib->colors_used) + map_count = dib->colors_used; + else { + switch (dib->depth) { + case 1: + case 4: + case 8: + map_count = 1 << dib->depth; + break; + + default: + map_count = 0; + break; + } } map_size = file->offset - (sizeof(struct bmp_file) + dib->size); -- cgit v1.2.3