diff options
author | Soren Sandmann Pedersen <ssp@dhcp83-218.boston.redhat.com> | 2007-04-25 14:19:39 -0400 |
---|---|---|
committer | Soren Sandmann Pedersen <ssp@dhcp83-218.boston.redhat.com> | 2007-04-25 22:22:22 -0400 |
commit | 67347739b0571b2978468e8088480b105f505ad2 (patch) | |
tree | b5afebad6f0a38aed8bf2560e0bcd070a95814f6 /fb | |
parent | c056ce95d89ef1df57edf47149fc34cd3925496e (diff) |
Don't treat convolution filters as transformations.
Some rearrangement of code to get it closer to pixman.
Diffstat (limited to 'fb')
-rw-r--r-- | fb/fbpict.c | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/fb/fbpict.c b/fb/fbpict.c index f9f536863..4fb949dcc 100644 --- a/fb/fbpict.c +++ b/fb/fbpict.c @@ -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) { |