summaryrefslogtreecommitdiff
path: root/uxa
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-08-25 14:59:04 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-08-25 15:01:50 +0100
commit68a5ad497b557ab9e8bff301098ea78c84d385a2 (patch)
treeff007e158c18b98a601c48fcaac6452de137800c /uxa
parent9c3e34703dcdc2155faeb2c1886930def19d9989 (diff)
uxa: Fallback if faced with large A1 glyphs.
Rather than assert, we should fixup the use of large A1 glyphs. However, the simplest approach is to simply fallback to s/w. Fixes: Bug 29430 - [UXA] Crash due assert (uxa_pixmap_is_offscreen(src_pixmap)); https://bugs.freedesktop.org/show_bug.cgi?id=29430 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'uxa')
-rw-r--r--uxa/uxa-glyphs.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
index 68d1c228..8c00e900 100644
--- a/uxa/uxa-glyphs.c
+++ b/uxa/uxa-glyphs.c
@@ -780,9 +780,8 @@ uxa_glyphs_to_dst(CARD8 op,
mask_pixmap =
uxa_get_drawable_pixmap(this_atlas->pDrawable);
- assert (uxa_pixmap_is_offscreen(mask_pixmap));
-
- if (!uxa_screen->info->prepare_composite(op,
+ if (!uxa_pixmap_is_offscreen(mask_pixmap) ||
+ !uxa_screen->info->prepare_composite(op,
localSrc, this_atlas, pDst,
src_pixmap, mask_pixmap, dst_pixmap))
return -1;
@@ -983,9 +982,8 @@ uxa_glyphs_via_mask(CARD8 op,
src_pixmap =
uxa_get_drawable_pixmap(this_atlas->pDrawable);
- assert (uxa_pixmap_is_offscreen(src_pixmap));
-
- if (!uxa_screen->info->prepare_composite(PictOpAdd,
+ if (!uxa_pixmap_is_offscreen(src_pixmap) ||
+ !uxa_screen->info->prepare_composite(PictOpAdd,
this_atlas, NULL, mask,
src_pixmap, NULL, pixmap))
return -1;