diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd-16bit-common.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/firmware/drivers/lcd-16bit-common.c b/firmware/drivers/lcd-16bit-common.c index 06bb0a25fd..86cb5eadd1 100644 --- a/firmware/drivers/lcd-16bit-common.c +++ b/firmware/drivers/lcd-16bit-common.c | |||
@@ -782,13 +782,14 @@ void lcd_mono_bitmap(const unsigned char *src, int x, int y, int width, int heig | |||
782 | 782 | ||
783 | /* About Rockbox' internal alpha channel format (for ALPHA_COLOR_FONT_DEPTH == 2) | 783 | /* About Rockbox' internal alpha channel format (for ALPHA_COLOR_FONT_DEPTH == 2) |
784 | * | 784 | * |
785 | * For each pixel, 4bit of alpha information is stored in a byte-stream, | 785 | * For each pixel, 4bit of alpha information is stored in a byte-stream, |
786 | * so two pixels are packed into one byte. | 786 | * so two pixels are packed into one byte. |
787 | * The lower nibble is the first pixel, the upper one the second. The stride is | 787 | * The lower nibble is the first pixel, the upper one the second. The stride is |
788 | * horizontal. E.g row0: pixel0: byte0[0:3], pixel1: byte0[4:7], pixel2: byte1[0:3],... | 788 | * horizontal. E.g row0: pixel0: byte0[0:3], pixel1: byte0[4:7], pixel2: byte1[0:3],... |
789 | * The format is independant of the internal display orientation and color | 789 | * The format is independant of the internal display orientation and color |
790 | * representation, as to support the same font files on all displays. | 790 | * representation, as to support the same font files on all displays. |
791 | * The values go linear from 0 (fully transparent) to 15 (fully opaque). | 791 | * The values go linear from 0 (fully opaque) to 15 (fully transparent) |
792 | * (note how this is the opposite of the alpha channel in the ARGB format). | ||
792 | * | 793 | * |
793 | * This might suggest that rows need to have an even number of pixels. | 794 | * This might suggest that rows need to have an even number of pixels. |
794 | * However this is generally not the case. lcd_alpha_bitmap_part_mix() can deal | 795 | * However this is generally not the case. lcd_alpha_bitmap_part_mix() can deal |
@@ -935,16 +936,15 @@ static void ICODE_ATTR lcd_alpha_bitmap_part_mix(const fb_data* image, | |||
935 | dmask = 0xffffffff; | 936 | dmask = 0xffffffff; |
936 | drmode &= DRMODE_SOLID; /* mask out inversevid */ | 937 | drmode &= DRMODE_SOLID; /* mask out inversevid */ |
937 | } | 938 | } |
938 | /* sourcing from an image ignore drawmode. | ||
939 | * Set to DRMODE_BG as we use its code path in the switch below */ | ||
940 | if (image != NULL) | ||
941 | { | ||
942 | drmode = DRMODE_BG; | ||
943 | } | ||
944 | if (drmode == DRMODE_BG) | 939 | if (drmode == DRMODE_BG) |
945 | { | 940 | { |
946 | dmask = ~dmask; | 941 | dmask = ~dmask; |
947 | } | 942 | } |
943 | /* Set to DRMODE_BG as we use its code path in the switch below */ | ||
944 | if (image != NULL) | ||
945 | { | ||
946 | drmode = DRMODE_BG; | ||
947 | } | ||
948 | 948 | ||
949 | dst_row = FBADDR(x, y); | 949 | dst_row = FBADDR(x, y); |
950 | 950 | ||