diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-02-24 09:22:09 +0100 |
---|---|---|
committer | Michel Dänzer <daenzer@vmware.com> | 2009-02-24 09:22:09 +0100 |
commit | 170cf1270dff38d3cce7f5ba5b940d1c0d70eff5 (patch) | |
tree | 3c8257191fd843070f2a9701e999d6868a775d2a /exa/exa_render.c | |
parent | d3b355875ac46104a174966e1974e6af99e40fd6 (diff) |
EXA: Handle separate alpha maps properly in Composite fallback.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=18710 .
As this can't work without new EXA_PREPARE_AUX* indices, this requires a major
version bump, so we can also drop the UploadToScratch driver hook and
ExaOffscreenSwap*(). So this also fixes
http://bugs.freedesktop.org/show_bug.cgi?id=20213 .
Moreover, introduce EXA_DRIVER_KNOWN_MAJOR to break compilation of drivers
which may not be able to handle EXA_PREPARE_AUX*, giving instructions how to
make them build again in the #error message.
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Diffstat (limited to 'exa/exa_render.c')
-rw-r--r-- | exa/exa_render.c | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/exa/exa_render.c b/exa/exa_render.c index 17885317f..bdc1ed195 100644 --- a/exa/exa_render.c +++ b/exa/exa_render.c @@ -342,7 +342,6 @@ exaTryDriverCompositeRects(CARD8 op, int src_off_x, src_off_y, dst_off_x, dst_off_y; PixmapPtr pSrcPix, pDstPix; ExaPixmapPrivPtr pSrcExaPix, pDstExaPix; - struct _Pixmap scratch; ExaMigrationRec pixmaps[2]; if (!pExaScr->info->PrepareComposite) @@ -386,13 +385,6 @@ exaTryDriverCompositeRects(CARD8 op, if (!exaPixmapIsOffscreen(pDstPix)) return 0; - if (!pSrcPix && pExaScr->info->UploadToScratch) - { - pSrcPix = exaGetDrawablePixmap (pSrc->pDrawable); - if ((*pExaScr->info->UploadToScratch) (pSrcPix, &scratch)) - pSrcPix = &scratch; - } - if (!pSrcPix) return 0; @@ -573,7 +565,6 @@ exaTryDriverComposite(CARD8 op, int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y; PixmapPtr pSrcPix, pMaskPix = NULL, pDstPix; ExaPixmapPrivPtr pSrcExaPix, pMaskExaPix = NULL, pDstExaPix; - struct _Pixmap scratch; ExaMigrationRec pixmaps[3]; pSrcPix = exaGetDrawablePixmap(pSrc->pDrawable); @@ -652,16 +643,6 @@ exaTryDriverComposite(CARD8 op, return 0; } - if (!pSrcPix && (!pMask || pMaskPix) && pExaScr->info->UploadToScratch) { - pSrcPix = exaGetDrawablePixmap (pSrc->pDrawable); - if ((*pExaScr->info->UploadToScratch) (pSrcPix, &scratch)) - pSrcPix = &scratch; - } else if (pSrcPix && pMask && !pMaskPix && pExaScr->info->UploadToScratch) { - pMaskPix = exaGetDrawablePixmap (pMask->pDrawable); - if ((*pExaScr->info->UploadToScratch) (pMaskPix, &scratch)) - pMaskPix = &scratch; - } - if (!pSrcPix || (pMask && !pMaskPix)) { REGION_UNINIT(pDst->pDrawable->pScreen, ®ion); return 0; |