1 --- xc/programs/Xserver/hw/xfree86/xaa/xaaPict.c 3 Jul 2005 08:53:49 -0000 1.10
2 +++ xc/programs/Xserver/hw/xfree86/xaa/xaaPict.c 2 Feb 2006 17:33:58 -0000
3 @@ -506,12 +506,21 @@ XAAComposite (CARD8 op,
4 XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
5 XAA_RENDER_PROLOGUE(pScreen, Composite);
7 - if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema &&
8 - infoRec->ScreenToScreenBitBlt &&
10 - DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
11 - DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
12 - !pSrc->transform && !pSrc->repeat && (pSrc->format == pDst->format))
13 + if(!pMask && infoRec->pScrn->vtSema &&
14 + infoRec->ScreenToScreenBitBlt &&
16 + DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
17 + DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
19 + (!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 &&
20 + xSrc+width<=pSrc->pDrawable->width &&
21 + ySrc+height<=pSrc->pDrawable->height)) &&
22 + ((op == PictOpSrc && pSrc->format == pDst->format) ||
23 + (op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap &&
24 + ((pSrc->format==PICT_x8r8g8b8 &&
25 + (pDst->format==PICT_x8r8g8b8 || pDst->format==PICT_a8r8g8b8)) ||
26 + (pSrc->format==PICT_x8b8g8r8 &&
27 + (pDst->format==PICT_x8b8g8r8 || pDst->format==PICT_a8b8g8r8))))))
29 XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
30 } else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||