From e7eaac59c424a205dd106fc7d70734ff4b390f28 Mon Sep 17 00:00:00 2001 From: Michel Dänzer Date: Mon, 28 Apr 2008 21:00:55 +0200 Subject: EXA: Glyph cache upload tweaks. Track damage after using UploadToScreen directly. Don't waste any effort on empty glyphs. --- exa/exa_glyphs.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/exa/exa_glyphs.c b/exa/exa_glyphs.c index 95ff4d8d1..b618365e6 100644 --- a/exa/exa_glyphs.c +++ b/exa/exa_glyphs.c @@ -394,6 +394,12 @@ exaGlyphCacheUploadGlyph(ScreenPtr pScreen, pExaPixmap->sys_pitch)) return FALSE; + exaPixmapDirty (pCachePixmap, + CACHE_X(pos) + cacheXoff, + CACHE_Y(pos) + cacheYoff, + CACHE_X(pos) + cacheXoff + pGlyph->info.width, + CACHE_Y(pos) + cacheYoff + pGlyph->info.height); + return TRUE; } @@ -737,7 +743,8 @@ exaGlyphs (CARD8 op, glyph = *glyphs++; pPicture = GlyphPicture (glyph)[pScreen->myNum]; - if (exaBufferGlyph(pScreen, &buffer, glyph, x, y) == ExaGlyphNeedFlush) + if (glyph->info.width > 0 && glyph->info.height > 0 && + exaBufferGlyph(pScreen, &buffer, glyph, x, y) == ExaGlyphNeedFlush) { if (maskFormat) exaGlyphsToMask(pMask, &buffer); -- cgit v1.2.3