xf86-video-intel: uxa/uxa-glyphs.c

Eric Anholt anholt at kemper.freedesktop.org
Tue Jan 13 10:39:26 PST 2009


 uxa/uxa-glyphs.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit c80f1a9c5131721eaf87d12a7a67e603cdfed63b
Author: Bernhard Rosenkraenzer <bero at arklinux.org>
Date:   Tue Jan 13 10:35:19 2009 -0800

    UXA: Declare glyph cache picture as component-alpha when necessary.
    
    Without this, rendering component-alpha glyphs may break without a mask.
    
    Bug #19534.  Ported from fix by Michel Dänzer <daenzer at vmware.com> in
    xserver commit 639f289dcdbe00a516820f573c01a8339e120ed4

diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index dd26362..1c06e6d 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -140,6 +140,8 @@ uxa_unrealize_glyph_caches(ScreenPtr    pScreen,
     }
 }
 
+#define NeedsComponent(f) (PICT_FORMAT_A(f) != 0 && PICT_FORMAT_RGB(f) != 0)
+
 /* All caches for a single format share a single pixmap for glyph storage,
  * allowing mixing glyphs of different sizes without paying a penalty
  * for switching between source pixmaps. (Note that for a size of font
@@ -158,6 +160,7 @@ uxa_realize_glyph_caches(ScreenPtr    pScreen,
     PictFormatPtr   pPictFormat;
     PixmapPtr	    pPixmap;
     PicturePtr	    pPicture;
+    CARD32          component_alpha;
     int		    height;
     int		    i;
     int		    error;
@@ -190,8 +193,10 @@ uxa_realize_glyph_caches(ScreenPtr    pScreen,
     if (!pPixmap)
 	return FALSE;
 
+    component_alpha = NeedsComponent(pPictFormat->format);
     pPicture = CreatePicture(0, &pPixmap->drawable, pPictFormat,
-			     0, 0, serverClient, &error);
+			     CPComponentAlpha, &component_alpha, serverClient,
+			     &error);
 
     (*pScreen->DestroyPixmap) (pPixmap); /* picture holds a refcount */
 
@@ -729,8 +734,6 @@ uxa_glyphs_intersect(int nlist, GlyphListPtr list, GlyphPtr *glyphs)
     return FALSE;
 }
 
-#define NeedsComponent(f) (PICT_FORMAT_A(f) != 0 && PICT_FORMAT_RGB(f) != 0)
-
 void
 uxa_glyphs (CARD8 	 op,
 	   PicturePtr	 pSrc,


More information about the xorg-commit mailing list