remove bgr
PATCH 1/1 remove bgr
Do not handle bgr host displays in the backends.
Right now a bgr flag exists so that sdl can set it, if the SDL_Surface is bgr.
Afterwards the graphic device (e.g. vga.c) does the needed conversion.
With this patch series is sdl that is responsible for rendering the format provided by the graphic device that must provide a DisplaySurface (ds->surface) in 16 or 32 bpp, rgb.
Afterwards sdl creates a SDL_Surface from the given DisplaySurface and blits it into the main SDL_Surface using SDL_BlitSurface.
Everything is handled by sdl transparently, because SDL_BlitSurface is perfectly capable of handling bgr displays by itself.
Compared to the last version few more "if (bgr)" have been removed in hw/sm501.c.
---
hw/musicpal.c +1 -1
@@ -835,7 +835,7 @@break ; LCD_REFRESH(8, rgb_to_pixel8) LCD_REFRESH(16, rgb_to_pixel16) - LCD_REFRESH(32, (s->ds->bgr ? rgb_to_pixel32bgr : rgb_to_pixel32)) + LCD_REFRESH(32, rgb_to_pixel32)default :cpu_abort (cpu_single_env,"unsupported colour depth %i\n" ,ds_get_bits_per_pixel (s->ds));
hw/sm501.c +3 -12
@@ -960,20 +960,11 @@case 8 :return 0 ;case 15 : -if (s->bgr) -return 5 ; -else -return 1 ; +return 1 ;case 16 : -if (s->bgr) -return 6 ; -else -return 2 ; +return 2 ;case 32 : -if (s->bgr) -return 4 ; -else -return 3 ; +return 3 ; } }
hw/tcx.c +5 -18
@@ -61,22 +61,13 @@ s->palette[i] =rgb_to_pixel8 (s->r[i], s->g[i], s->b[i]);break ;case 15 : -if (s->ds->bgr) - s->palette[i] =rgb_to_pixel15bgr (s->r[i], s->g[i], s->b[i]); -else - s->palette[i] =rgb_to_pixel15 (s->r[i], s->g[i], s->b[i]); + s->palette[i] =rgb_to_pixel15 (s->r[i], s->g[i], s->b[i]);break ;case 16 : -if (s->ds->bgr) - s->palette[i] =rgb_to_pixel16bgr (s->r[i], s->g[i], s->b[i]); -else - s->palette[i] =rgb_to_pixel16 (s->r[i], s->g[i], s->b[i]); + s->palette[i] =rgb_to_pixel16 (s->r[i], s->g[i], s->b[i]);break ;case 32 : -if (s->ds->bgr) - s->palette[i] =rgb_to_pixel32bgr (s->r[i], s->g[i], s->b[i]); -else - s->palette[i] =rgb_to_pixel32 (s->r[i], s->g[i], s->b[i]); + s->palette[i] =rgb_to_pixel32 (s->r[i], s->g[i], s->b[i]);break ; } }
@@ -134,12 +125,11 @@const uint32_t *cplane, const uint32_t *s24) { - int x, bgr, r, g, b; + int x, r, g, b;uint8_t val, *p8;uint32_t *p = (uint32_t *)d;uint32_t dval; - bgr = s1->ds->bgr;for (x =0 ; x < width; x++, s++, s24++) {if ((be32_to_cpu (*cplane++) &0xff000000 ) ==0x03000000 ) {// 24-bit direct, BGR order
@@ -148,10 +138,7 @@ b = *p8++; g = *p8++; r = *p8++; -if (bgr) - dval =rgb_to_pixel32bgr (r, g, b); -else - dval =rgb_to_pixel32 (r, g, b); + dval =rgb_to_pixel32 (r, g, b); }else { val = *s; dval = s1->palette[val];
hw/vga.c +3 -12
@@ -1157,20 +1157,11 @@case 8 :return 0 ;case 15 : -if (s->bgr) -return 5 ; -else -return 1 ; +return 1 ;case 16 : -if (s->bgr) -return 6 ; -else -return 2 ; +return 2 ;case 32 : -if (s->bgr) -return 4 ; -else -return 3 ; +return 3 ; } }
sdl.c +0 -5
@@ -99,11 +99,6 @@ mask |= screen->format->Bmask;if ((mask &0x8000 ) ==0 ) ds->depth =15 ; - } -if (ds->depth ==32 && screen->format->Rshift ==0 ) { - ds->bgr =1 ; - }else { - ds->bgr =0 ; } ds->width = w; ds->height = h;
Quoted 12 lines · Stefano Stabellini
Do not handle bgr host displays in the backends.
Right now a bgr flag exists so that sdl can set it, if the
SDL_Surfaceis bgr.
Afterwards the graphic device (e.g.vga.c) does the needed conversion.With this patch series is sdl that is responsible for rendering the format provided by the graphic device that must provide a DisplaySurface (
ds->surface) in 16 or 32 bpp, rgb.
Afterwards sdl creates aSDL_Surfacefrom the given DisplaySurface and blits it into the mainSDL_SurfaceusingSDL_BlitSurface.
Quoted 8 lines
Everything is handled by sdl transparently, because
SDL_BlitSurfaceis perfectly capable of handling bgr displays by itself.Compared to the last version few more "if (bgr)" have been removed in
hw/sm501.c.Signed-off-by Stefano Stabellini <[email protected]>
This breaks bgr support until the additional patches, correct?
Regards,
Anthony Liguori
Anthony Liguori wrote
Quoted 3 lines
This breaks bgr support until the additional patches, correct?
Yes.