diff options
Diffstat (limited to 'src/uxa/uxa-unaccel.c')
-rw-r--r-- | src/uxa/uxa-unaccel.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/uxa/uxa-unaccel.c b/src/uxa/uxa-unaccel.c index df5fbed..f980e94 100644 --- a/src/uxa/uxa-unaccel.c +++ b/src/uxa/uxa-unaccel.c @@ -22,6 +22,7 @@ */ #include "uxa-priv.h" +#include "uxa-damage.h" #ifdef RENDER #include "mipict.h" @@ -278,10 +279,14 @@ uxa_check_image_glyph_blt(DrawablePtr pDrawable, GCPtr pGC, CharInfoPtr * ppci, pointer pglyphBase) { ScreenPtr screen = pDrawable->pScreen; + RegionRec region; + + REGION_INIT (screen, ®ion, (BoxPtr)NULL, 0); + uxa_damage_image_glyph_blt (®ion, pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); UXA_FALLBACK(("to %p (%c)\n", pDrawable, uxa_drawable_location(pDrawable))); - if (uxa_prepare_access(pDrawable, NULL, UXA_ACCESS_RW)) { + if (uxa_prepare_access(pDrawable, ®ion, UXA_ACCESS_RW)) { if (uxa_prepare_access_gc(pGC)) { fbImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); @@ -289,6 +294,8 @@ uxa_check_image_glyph_blt(DrawablePtr pDrawable, GCPtr pGC, } uxa_finish_access(pDrawable); } + + REGION_UNINIT (screen, ®ion); } void @@ -297,11 +304,15 @@ uxa_check_poly_glyph_blt(DrawablePtr pDrawable, GCPtr pGC, CharInfoPtr * ppci, pointer pglyphBase) { ScreenPtr screen = pDrawable->pScreen; + RegionRec region; + + REGION_INIT (screen, ®ion, (BoxPtr)NULL, 0); + uxa_damage_poly_glyph_blt (®ion, pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); UXA_FALLBACK(("to %p (%c), style %d alu %d\n", pDrawable, uxa_drawable_location(pDrawable), pGC->fillStyle, pGC->alu)); - if (uxa_prepare_access(pDrawable, NULL, UXA_ACCESS_RW)) { + if (uxa_prepare_access(pDrawable, ®ion, UXA_ACCESS_RW)) { if (uxa_prepare_access_gc(pGC)) { fbPolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); @@ -309,6 +320,8 @@ uxa_check_poly_glyph_blt(DrawablePtr pDrawable, GCPtr pGC, } uxa_finish_access(pDrawable); } + + REGION_UNINIT (screen, ®ion); } void |