diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2008-04-28 21:00:55 +0200 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2008-04-28 21:00:55 +0200 |
commit | e7eaac59c424a205dd106fc7d70734ff4b390f28 (patch) | |
tree | f7f196a9cbb614bf99efc43f9383f1de56603e9a /exa | |
parent | cc08c06665ffe29ad44d023d75d0f86e5338875d (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.c | 9 |
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); |