summaryrefslogtreecommitdiff
path: root/uxa/uxa-render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-15 18:34:54 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-05-15 18:34:54 +0100
commit89f43f69a9c854fb2b82538a8938002675ca19e4 (patch)
tree331f9ab838436c7d52eea410c45406d90776c888 /uxa/uxa-render.c
parent524fd2dd0da8f69d4c3f5aebe3a345fe34af609d (diff)
uxa: Force an alpha channel when rendering source fallbacks
As the source may not cover the extents, we need to represent those areas as transparent in the fallback picture, ergo we need an alpha channel. We could be smarter and force a format conversion when necessary, and we could let the backend choose the most appropriate format. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'uxa/uxa-render.c')
-rw-r--r--uxa/uxa-render.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index ecc95163..d2c11a39 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -729,6 +729,12 @@ uxa_render_picture(ScreenPtr screen,
PicturePtr picture;
int ret = 0;
+ /* XXX we need a mechanism for the card to choose the fallback format */
+
+ /* force alpha channel in case source does not entirely cover the extents */
+ if (PIXMAN_FORMAT_A(format) == 0)
+ format = PIXMAN_a8r8g8b8; /* available on all hardware */
+
picture = uxa_picture_for_pixman_format(screen, format, width, height);
if (!picture)
return 0;