diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2023-01-08 10:44:47 +0000 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2023-01-08 10:50:39 +0000 |
commit | 593103cd8bdae024e28932c94ce5441283161393 (patch) | |
tree | e250e86f717d8c8c7771b25c3320a15ed90cf622 /firmware | |
parent | 528b6a9a15041999ab205af2ce9674b0277334f7 (diff) | |
download | rockbox-593103cd8bdae024e28932c94ce5441283161393.tar.gz rockbox-593103cd8bdae024e28932c94ce5441283161393.zip |
lcd: Fix 4bpp optimized 16-bit alpha blit
Fixes a bug introduced by commit 5d0c382a59 that caused graphical
corruption on anti-aliased fonts.
Change-Id: I6052ca758382bd9a1154d2e2208dee633dd17715
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd-16bit-common.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/firmware/drivers/lcd-16bit-common.c b/firmware/drivers/lcd-16bit-common.c index af1171b401..9d24dfe16e 100644 --- a/firmware/drivers/lcd-16bit-common.c +++ b/firmware/drivers/lcd-16bit-common.c | |||
@@ -498,10 +498,11 @@ static void ICODE_ATTR lcd_alpha_bitmap_part_mix( | |||
498 | if (stride_alpha) { \ | 498 | if (stride_alpha) { \ |
499 | alpha_pixels = stride_alpha - alpha_pixels; \ | 499 | alpha_pixels = stride_alpha - alpha_pixels; \ |
500 | alpha += alpha_pixels / ALPHA_PIXELS_PER_BYTE; \ | 500 | alpha += alpha_pixels / ALPHA_PIXELS_PER_BYTE; \ |
501 | alpha_data = *alpha++ ^ dmask; \ | ||
502 | alpha_pixels &= 1; \ | 501 | alpha_pixels &= 1; \ |
503 | if (alpha_pixels) \ | 502 | if (alpha_pixels) { \ |
503 | alpha_data = *alpha++ ^ dmask; \ | ||
504 | alpha_data >>= ALPHA_BPP; \ | 504 | alpha_data >>= ALPHA_BPP; \ |
505 | } \ | ||
505 | } \ | 506 | } \ |
506 | } while(0) | 507 | } while(0) |
507 | #define READ_ALPHA() \ | 508 | #define READ_ALPHA() \ |