summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2008-04-28 21:00:55 +0200
committerMichel Dänzer <michel@tungstengraphics.com>2008-04-28 21:00:55 +0200
commite7eaac59c424a205dd106fc7d70734ff4b390f28 (patch)
treef7f196a9cbb614bf99efc43f9383f1de56603e9a /exa
parentcc08c06665ffe29ad44d023d75d0f86e5338875d (diff)
EXA: Glyph cache upload tweaks.
Track damage after using UploadToScreen directly. Don't waste any effort on empty glyphs.
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_glyphs.c9
1 files changed, 8 insertions, 1 deletions
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);