summaryrefslogtreecommitdiff
path: root/hw/kdrive/src
diff options
context:
space:
mode:
authorLars Knoll <lars@trolltech.com>2005-06-29 11:57:16 +0000
committerLars Knoll <lars@trolltech.com>2005-06-29 11:57:16 +0000
commitd8a98454e305973dd7fec76db2ef80705cf7c298 (patch)
tree68445711b6075a247133a5f7d86d6b5ce2ecfe61 /hw/kdrive/src
parentce0e11aeac76119b96b463605bc1f5318e3d2bde (diff)
Add support for gradients and solid fills to Render.
Changed the semantics of the Convolution filter a bit. It now doesn't try to normalize the filter values but leaves this to the client. This gives more reasonable behaviour in the limit where the filter parameters sum up to 0.
Diffstat (limited to 'hw/kdrive/src')
-rw-r--r--hw/kdrive/src/kaapict.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/hw/kdrive/src/kaapict.c b/hw/kdrive/src/kaapict.c
index bbd1584ff..da093b224 100644
--- a/hw/kdrive/src/kaapict.c
+++ b/hw/kdrive/src/kaapict.c
@@ -546,11 +546,11 @@ kaaComposite(CARD8 op,
KaaScreenPriv (pDst->pDrawable->pScreen);
int ret = -1;
- if (!pMask)
+ if (!pMask && pSrc->pDrawable)
{
if (op == PictOpSrc)
{
- if (pScreenPriv->enabled && pSrc->pDrawable->width == 1 &&
+ if (pScreenPriv->enabled && pSrc->pDrawable && pSrc->pDrawable->width == 1 &&
pSrc->pDrawable->height == 1 && pSrc->repeat)
{
ret = kaaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst,
@@ -592,7 +592,8 @@ kaaComposite(CARD8 op,
}
}
- if (pScreenPriv->enabled && pKaaScr->info->PrepareComposite &&
+ if (pSrc->pDrawable && (!pMask || pMask->pDrawable) &&
+ pScreenPriv->enabled && pKaaScr->info->PrepareComposite &&
!pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap)
{
ret = kaaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask,