|
Lines 506-517
XAAComposite (CARD8 op,
Link Here
|
| 506 |
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); |
506 |
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); |
| 507 |
XAA_RENDER_PROLOGUE(pScreen, Composite); |
507 |
XAA_RENDER_PROLOGUE(pScreen, Composite); |
| 508 |
|
508 |
|
| 509 |
if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema && |
509 |
if(!pMask && infoRec->pScrn->vtSema && |
| 510 |
infoRec->ScreenToScreenBitBlt && |
510 |
infoRec->ScreenToScreenBitBlt && |
| 511 |
pSrc->pDrawable && |
511 |
pSrc->pDrawable && |
| 512 |
DRAWABLE_IS_ON_CARD(pSrc->pDrawable) && |
512 |
DRAWABLE_IS_ON_CARD(pSrc->pDrawable) && |
| 513 |
DRAWABLE_IS_ON_CARD(pDst->pDrawable) && |
513 |
DRAWABLE_IS_ON_CARD(pDst->pDrawable) && |
| 514 |
!pSrc->transform && !pSrc->repeat && (pSrc->format == pDst->format)) |
514 |
!pSrc->transform && |
|
|
515 |
(!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 && |
| 516 |
xSrc+width<=pSrc->pDrawable->width && |
| 517 |
ySrc+height<=pSrc->pDrawable->height)) && |
| 518 |
((op == PictOpSrc && pSrc->format == pDst->format) || |
| 519 |
(op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap && |
| 520 |
((pSrc->format==PICT_x8r8g8b8 && |
| 521 |
(pDst->format==PICT_x8r8g8b8 || pDst->format==PICT_a8r8g8b8)) || |
| 522 |
(pSrc->format==PICT_x8b8g8r8 && |
| 523 |
(pDst->format==PICT_x8b8g8r8 || pDst->format==PICT_a8b8g8r8)))))) |
| 515 |
{ |
524 |
{ |
| 516 |
XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height); |
525 |
XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height); |
| 517 |
} else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) || |
526 |
} else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) || |