summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-11-10 11:00:43 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2009-11-10 15:18:56 +0000
commit998d6b3d8c549086fbc8a9f0e309694b23398d8d (patch)
tree5fbf1ee012f0b270fefd1e212672e9edc7e9d3f9
parentdbb68168dc909ab2ec1d935322c3fd8581e666f1 (diff)
uxa: Force alpha bits to fill remaining bits
In the case of x8r8g8b8 and similar where the alpha channel is ignored, but should be interpreted as being 1, then it is convenient if those bits are set appropriately in the colour. In order to do so for these formats, where PIXMAN_FORMAT_A() returns 0 we need to compute the alpha channel width as the remaining bits instead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--uxa/uxa-render.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index 7c0dbe53..ee1e4e10 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -147,6 +147,8 @@ uxa_get_pixel_from_rgba(CARD32 * pixel,
gbits = PICT_FORMAT_G(format);
bbits = PICT_FORMAT_B(format);
abits = PICT_FORMAT_A(format);
+ if (abits == 0)
+ abits = PICT_FORMAT_BPP(format) - (rbits+gbits+bbits);
if (PICT_FORMAT_TYPE(format) == PICT_TYPE_ARGB) {
bshift = 0;