[PATCH] fb_cmap and transparency

From: Geert Uytterhoeven (geert@linux-m68k.org)
Date: Sun Jun 15 2003 - 14:10:32 EST


If a colormap contains no transparency information, fb_set_cmap() calls
fb_setcolreg() with trans = 0. This causes all CLUT entries to be fully
transparent on hardware that does have transparency information in the CLUT
registers.

The following patch solves this problem by changing the default transparency
from 0 (full transparent) to 0xffff (full opaque).

--- linux-2.4.x/drivers/video/fbcmap.c.orig Mon Mar 5 09:29:30 2001
+++ linux-2.4.x/drivers/video/fbcmap.c Mon Mar 17 17:39:59 2003
@@ -271,7 +271,7 @@
             hred = *red;
             hgreen = *green;
             hblue = *blue;
- htransp = transp ? *transp : 0;
+ htransp = transp ? *transp : 0xffff;
         } else {
             get_user(hred, red);
             get_user(hgreen, green);
@@ -279,7 +279,7 @@
             if (transp)
                 get_user(htransp, transp);
             else
- htransp = 0;
+ htransp = 0xffff;
         }
         red++;
         green++;

Gr{oetje,eeting}s,

                                                Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Jun 15 2003 - 22:00:43 EST