summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann <ssp@redhat.com>2012-08-14 14:20:11 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2012-09-05 18:17:21 -0400
commitafd8d20b84a4b4e9b22483e379d594517333e8c7 (patch)
tree07c18ecaf9b73229e7f4b7a0c8932df8777f6f8a
parente738d00e1fb3cd469f850765e2b42976c2a85764 (diff)
uxa-glyphs: don't prepare composite when dest is not offscreen
It is possbible for a pixmap to not be in video memory after uxa_clear_pixmap() was called. When this happens, we need to destroy the pixmap and return 1 to indicate that the operation can't be accelerated.
-rw-r--r--src/uxa/uxa-glyphs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/uxa/uxa-glyphs.c b/src/uxa/uxa-glyphs.c
index dd50dfc..997feb7 100644
--- a/src/uxa/uxa-glyphs.c
+++ b/src/uxa/uxa-glyphs.c
@@ -932,6 +932,11 @@ uxa_glyphs_via_mask(CARD8 op,
uxa_clear_pixmap(screen, uxa_screen, pixmap);
+ if (!uxa_pixmap_is_offscreen(pixmap)) {
+ screen->DestroyPixmap(pixmap);
+ return 1;
+ }
+
component_alpha = NeedsComponent(maskFormat->format);
mask = CreatePicture(0, &pixmap->drawable,
maskFormat, CPComponentAlpha,