From ff433adba3a643512fdd44e41cd08965fab9c9cb Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 19 Jan 2005 06:35:28 +0000 Subject: [PATCH] Prefer 32bpp to 24bpp. Fix 16 color planar mode (!) --- hw/kdrive/vesa/vesa.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/kdrive/vesa/vesa.c b/hw/kdrive/vesa/vesa.c index bcc871907..f09f4f3f9 100644 --- a/hw/kdrive/vesa/vesa.c +++ b/hw/kdrive/vesa/vesa.c @@ -403,6 +403,8 @@ vesaModeBetter (KdScreenInfo *screen, if (vabs (screen->fb[0].depth - vesaDepth (a)) < vabs (screen->fb[0].depth - vesaDepth (b))) return TRUE; + if (a->BitsPerPixel == 32 && b->BitsPerPixel == 24) + return TRUE; return FALSE; } @@ -845,7 +847,6 @@ vesaSetShadow (ScreenPtr pScreen) window = vesaWindowWindowed; break; case VESA_PLANAR: - pScreen->CreateColormap = vesaCreateColormap16; if (pScreenPriv->screen->fb[0].bitsPerPixel == 8) update = shadowUpdatePlanar4x8; else @@ -909,7 +910,7 @@ vesaComputeFramebufferMapping (KdScreenInfo *screen) while (depth && !(allbits & (1 << (depth - 1)))) depth--; if (vesa_verbose) - ErrorF ("\tTrue Color red 0x%x green 0x%x blue 0x%x\n", + ErrorF ("\tTrue Color %d/%d red 0x%x green 0x%x blue 0x%x\n", bpp, depth, screen->fb[0].redMask, screen->fb[0].greenMask, @@ -1302,6 +1303,13 @@ vesaRandRInit (ScreenPtr pScreen) Bool vesaInitScreen(ScreenPtr pScreen) { + KdScreenPriv(pScreen); + VesaScreenPrivPtr pscr = pScreenPriv->screen->driver; + switch (pscr->mapping) { + case VESA_PLANAR: + pScreen->CreateColormap = vesaCreateColormap16; + break; + } return TRUE; }