diff options
author | Huang, FrankR <FrankR.Huang@amd.com> | 2010-07-23 17:17:15 +0800 |
---|---|---|
committer | Martin-Éric Racine <q-funk@iki.fi> | 2010-08-06 07:52:08 +0300 |
commit | 2771fb365107976e76e175e7f8953dd41ecb91c1 (patch) | |
tree | b6bbe15c5e83aa9e8d69e6e58567f433b235b329 /src | |
parent | e9effca821c1d604aeffeb3d3e7a49539485117d (diff) |
Put the one pixel rendering work back to the server to handle if the pMsk is not zero
Put the one pixel rendering work back to the server to handle if the pMsk is not zero
*exaScratch.srcWidth and exaScratch.srcHeight are used to reocrd
mask's width and mask's height if mask is not zero. So the one pixel
source's width and height are missing in lx_do_composite. So we must
fallback. Otherwise, bigger region will be wrongly rendered.
Signed-off-by: Frank Huang <frankr.huang@amd.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/lx_exa.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lx_exa.c b/src/lx_exa.c index a70766f..5d95e26 100644 --- a/src/lx_exa.c +++ b/src/lx_exa.c @@ -605,6 +605,12 @@ lx_check_composite(int op, PicturePtr pSrc, PicturePtr pMsk, PicturePtr pDst) /* The pSrc should be 1x1 pixel if the pMsk is not zero */ if (pSrc->pDrawable->width != 1 || pSrc->pDrawable->height != 1) return FALSE; + /* FIXME: In lx_prepare_composite, there are no variables to record the + * one pixel source's width and height when the mask is not zero. + * That will lead to bigger region to render instead of one pixel in lx + * _do_composite, so we should fallback currently to avoid this */ + if (!pSrc->repeat) + return FALSE; } /* Get the formats for the source and destination */ |