diff options
author | Peter Maydell | 2021-02-15 11:32:09 +0100 |
---|---|---|
committer | Peter Maydell | 2021-03-06 14:30:38 +0100 |
commit | 8cfd41dd89981c49aa15c603c3e3233580620d72 (patch) | |
tree | a3a93e135faf47821699a3030ce3d27dce54bd00 /hw/display | |
parent | hw/display/tc6393xb: Remove dead code for handling non-32bpp surfaces (diff) | |
download | qemu-8cfd41dd89981c49aa15c603c3e3233580620d72.tar.gz qemu-8cfd41dd89981c49aa15c603c3e3233580620d72.tar.xz qemu-8cfd41dd89981c49aa15c603c3e3233580620d72.zip |
hw/display/tc6393xb: Expand out macros in template header
Now the template header is included only for BITS==32, expand
out all the macros that depended on the BITS setting.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210215103215.4944-4-peter.maydell@linaro.org
Diffstat (limited to 'hw/display')
-rw-r--r-- | hw/display/tc6393xb_template.h | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/hw/display/tc6393xb_template.h b/hw/display/tc6393xb_template.h index 78629c07f9..7789ffc439 100644 --- a/hw/display/tc6393xb_template.h +++ b/hw/display/tc6393xb_template.h @@ -21,25 +21,7 @@ * with this program; if not, see <http://www.gnu.org/licenses/>. */ -#if BITS == 8 -# define SET_PIXEL(addr, color) (*(uint8_t *)addr = color) -#elif BITS == 15 || BITS == 16 -# define SET_PIXEL(addr, color) (*(uint16_t *)addr = color) -#elif BITS == 24 -# define SET_PIXEL(addr, color) \ - do { \ - addr[0] = color; \ - addr[1] = (color) >> 8; \ - addr[2] = (color) >> 16; \ - } while (0) -#elif BITS == 32 -# define SET_PIXEL(addr, color) (*(uint32_t *)addr = color) -#else -# error unknown bit depth -#endif - - -static void glue(tc6393xb_draw_graphic, BITS)(TC6393xbState *s) +static void tc6393xb_draw_graphic32(TC6393xbState *s) { DisplaySurface *surface = qemu_console_surface(s->con); int i; @@ -49,24 +31,15 @@ static void glue(tc6393xb_draw_graphic, BITS)(TC6393xbState *s) data_buffer = s->vram_ptr; data_display = surface_data(surface); for(i = 0; i < s->scr_height; i++) { -#if (BITS == 16) - memcpy(data_display, data_buffer, s->scr_width * 2); - data_buffer += s->scr_width; - data_display += surface_stride(surface); -#else int j; - for (j = 0; j < s->scr_width; j++, data_display += BITS / 8, data_buffer++) { + for (j = 0; j < s->scr_width; j++, data_display += 4, data_buffer++) { uint16_t color = *data_buffer; - uint32_t dest_color = glue(rgb_to_pixel, BITS)( + uint32_t dest_color = rgb_to_pixel32( ((color & 0xf800) * 0x108) >> 11, ((color & 0x7e0) * 0x41) >> 9, ((color & 0x1f) * 0x21) >> 2 ); - SET_PIXEL(data_display, dest_color); + *(uint32_t *)data_display = dest_color; } -#endif } } - -#undef BITS -#undef SET_PIXEL |