summaryrefslogtreecommitdiff
path: root/uxa/uxa-accel.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-15 00:48:31 +0100
committerOwain G. Ainsworth <oga@openbsd.org>2010-05-17 20:39:38 +0100
commit416a450d1ffdbf8838a68b898320d7d667ed8623 (patch)
tree4d1a1e4052a4f844841c93b0cf0cfd7368958c0e /uxa/uxa-accel.c
parentad85f4f0e0a8f268aeb352aa8ab9a05b72057a59 (diff)
uxa: Call check_solid before running the solid blitter.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit 3bca186a7ead84d4f0e71dfd83847ef77a4e390b) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
Diffstat (limited to 'uxa/uxa-accel.c')
-rw-r--r--uxa/uxa-accel.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
index bf81b482..e7caf5d2 100644
--- a/uxa/uxa-accel.c
+++ b/uxa/uxa-accel.c
@@ -909,12 +909,16 @@ uxa_fill_region_solid(DrawablePtr pDrawable,
int xoff, yoff;
Bool ret = FALSE;
- uxa_get_drawable_deltas(pDrawable, pPixmap, &xoff, &yoff);
+ if (uxa_screen->info->check_solid && !uxa_screen->info->check_solid(pDrawable, alu, planemask))
+ return FALSE;
+
+ pPixmap = uxa_get_offscreen_pixmap(pDrawable, &xoff, &yoff);
+ if (!pPixmap)
+ return FALSE;
+
REGION_TRANSLATE(pScreen, pRegion, xoff, yoff);
- if (uxa_pixmap_is_offscreen(pPixmap) &&
- (*uxa_screen->info->prepare_solid) (pPixmap, alu, planemask, pixel))
- {
+ if ((*uxa_screen->info->prepare_solid) (pPixmap, alu, planemask, pixel)) {
int nbox;
BoxPtr pBox;