diff options
author | Søren Sandmann <ssp@redhat.com> | 2010-06-22 00:12:27 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2011-01-26 08:08:33 -0500 |
commit | 8f05e9149da590f4374557e8a41e8b9e35fa007f (patch) | |
tree | 7759df564df9b713e48e426086252dd64aa197de /src/uxa | |
parent | 1f9bf097d5e983afbc38b60dc44e9386c8e226e7 (diff) |
Make the fetched regions much tighter for core text
Diffstat (limited to 'src/uxa')
-rw-r--r-- | src/uxa/uxa-damage.c | 3 | ||||
-rw-r--r-- | src/uxa/uxa-unaccel.c | 17 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/uxa/uxa-damage.c b/src/uxa/uxa-damage.c index 8b4794a..63ad0ea 100644 --- a/src/uxa/uxa-damage.c +++ b/src/uxa/uxa-damage.c @@ -91,7 +91,6 @@ trim_region (RegionPtr pRegion, DrawablePtr pDrawable, int subWindowMode) { - RegionPtr pDamageRegion; RegionRec pixClip; int draw_x, draw_y; #ifdef COMPOSITE @@ -153,7 +152,7 @@ trim_region (RegionPtr pRegion, box.y2 = draw_y + pDrawable->height; REGION_INIT(pScreen, &pixClip, &box, 1); - REGION_INTERSECT (pScreen, pDamageRegion, pRegion, &pixClip); + REGION_INTERSECT (pScreen, pRegion, pRegion, &pixClip); REGION_UNINIT(pScreen, &pixClip); } 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 |