summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang, FrankR <FrankR.Huang@amd.com>2010-07-23 17:17:15 +0800
committerMartin-Éric Racine <q-funk@iki.fi>2010-08-06 07:52:08 +0300
commit2771fb365107976e76e175e7f8953dd41ecb91c1 (patch)
treeb6bbe15c5e83aa9e8d69e6e58567f433b235b329
parente9effca821c1d604aeffeb3d3e7a49539485117d (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>
-rw-r--r--src/lx_exa.c6
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 */