Don't treat convolution filters as transformations.

Some rearrangement of code to get it closer to pixman.
This commit is contained in:
Soren Sandmann Pedersen 2007-04-25 14:19:39 -04:00
parent c056ce95d8
commit 67347739b0

View File

@ -1461,9 +1461,9 @@ fbComposite (CARD8 op,
int n;
BoxPtr pbox;
CompositeFunc func = NULL;
Bool srcRepeat = pSrc->pDrawable && pSrc->repeat;
Bool srcRepeat = pSrc->pDrawable && pSrc->repeatType == RepeatNormal;
Bool maskRepeat = FALSE;
Bool srcTransform = pSrc->pDrawable && pSrc->transform;
Bool srcTransform = pSrc->transform != 0;
Bool maskTransform = FALSE;
Bool srcAlphaMap = pSrc->alphaMap != 0;
Bool maskAlphaMap = FALSE;
@ -1479,9 +1479,6 @@ fbComposite (CARD8 op,
}
#endif
if (pSrc->filter == PictFilterConvolution)
srcTransform = TRUE;
xDst += pDst->pDrawable->x;
yDst += pDst->pDrawable->y;
if (pSrc->pDrawable) {
@ -1517,21 +1514,6 @@ fbComposite (CARD8 op,
&& (pSrc->filter != PictFilterConvolution)
&& (!pMask || pMask->filter != PictFilterConvolution))
switch (op) {
case PictOpSrc:
#ifdef USE_MMX
if (!pMask && pSrc->format == pDst->format &&
pSrc->format != PICT_a8 && pSrc->pDrawable != pDst->pDrawable)
{
func = fbCompositeCopyAreammx;
}
else
#endif
if (pMask == 0)
{
if (pSrc->format == pDst->format)
func = fbCompositeSrcSrc_nxn;
}
break;
case PictOpOver:
if (pMask)
{
@ -1975,6 +1957,21 @@ fbComposite (CARD8 op,
}
}
break;
case PictOpSrc:
#ifdef USE_MMX
if (!pMask && pSrc->format == pDst->format &&
pSrc->format != PICT_a8 && pSrc->pDrawable != pDst->pDrawable)
{
func = fbCompositeCopyAreammx;
}
else
#endif
if (pMask == 0)
{
if (pSrc->format == pDst->format)
func = fbCompositeSrcSrc_nxn;
}
break;
}
if (!func) {