From 8c77d6b6d3303fdb75aa4b4fab9f8f9d299438e0 Mon Sep 17 00:00:00 2001 From: Rangi Date: Sun, 17 Apr 2022 15:27:31 -0400 Subject: [PATCH] Simplify mingle_2bpp_planes Fixes #891 --- tools/bpp2png.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/bpp2png.c b/tools/bpp2png.c index 5ccd570b9..8dbc2e9ee 100644 --- a/tools/bpp2png.c +++ b/tools/bpp2png.c @@ -70,8 +70,8 @@ void mingle_2bpp_planes(uint8_t *bpp_data, long size) { for (long i = 0; i < size; i += 2) { // Interleave aka "mingle" bits // -#define EXPAND_PLANE(b) (((b) * 0x0101010101010101ULL & 0x8040201008040201ULL) * 0x0102040810204081ULL) - uint16_t r = ((EXPAND_PLANE(bpp_data[i]) >> 49) & 0x5555) | ((EXPAND_PLANE(bpp_data[i + 1]) >> 48) & 0xAAAA); +#define EXPAND_PLANE(b) (((((b) * 0x0101010101010101ULL & 0x8040201008040201ULL) * 0x0102040810204081ULL) >> 48) & 0xAAAA) + uint16_t r = (EXPAND_PLANE(bpp_data[i]) >> 1) | EXPAND_PLANE(bpp_data[i + 1]); bpp_data[i] = r >> 8; bpp_data[i + 1] = r & 0xff; }