From e444ea34f8ec27acfa9ead7eaa9904238c831e69 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Tue, 3 Mar 2015 12:25:27 -0500 Subject: sdl2: Fix RGB555 Reproducable with: $ x86_64-softmmu/qemu-system-x86_64 \ -kernel $vmlinuz_of_your_choice \ -append vga=0x313 -sdl Signed-off-by: Max Reitz Signed-off-by: Gerd Hoffmann --- ui/sdl2-2d.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'ui/sdl2-2d.c') diff --git a/ui/sdl2-2d.c b/ui/sdl2-2d.c index bb56747140..d0b340f956 100644 --- a/ui/sdl2-2d.c +++ b/ui/sdl2-2d.c @@ -89,10 +89,21 @@ void sdl2_2d_switch(DisplayChangeListener *dcl, surface_width(new_surface), surface_height(new_surface)); - if (surface_bits_per_pixel(scon->surface) == 16) { + switch (surface_format(scon->surface)) { + case PIXMAN_x1r5g5b5: + format = SDL_PIXELFORMAT_ARGB1555; + break; + case PIXMAN_r5g6b5: format = SDL_PIXELFORMAT_RGB565; - } else if (surface_bits_per_pixel(scon->surface) == 32) { + break; + case PIXMAN_x8r8g8b8: format = SDL_PIXELFORMAT_ARGB8888; + break; + case PIXMAN_r8g8b8x8: + format = SDL_PIXELFORMAT_RGBA8888; + break; + default: + g_assert_not_reached(); } scon->texture = SDL_CreateTexture(scon->real_renderer, format, SDL_TEXTUREACCESS_STREAMING, -- cgit v1.2.1