Acked-by: Maarten Maathuis <[email protected]>
2009/12/28 Michel Dänzer <[email protected]>: > From: Michel Dänzer <[email protected]> > > Signed-off-by: Michel Dänzer <[email protected]> > --- > exa/exa_unaccel.c | 14 ++++++++++++-- > 1 files changed, 12 insertions(+), 2 deletions(-) > > diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c > index 0dbcd53..f077fc8 100644 > --- a/exa/exa_unaccel.c > +++ b/exa/exa_unaccel.c > @@ -313,8 +313,18 @@ ExaCheckCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, > RegionPtr prgnSrc) > EXA_PRE_FALLBACK(pScreen); > EXA_FALLBACK(("from %p\n", pWin)); > > - /* being both src and dest, src is safest. */ > - exaPrepareAccess(pDrawable, EXA_PREPARE_SRC); > + /* Only need the source bits, the destination region will be overwritten > */ > + if (pExaScr->prepare_access_reg) { > + PixmapPtr pPixmap = pScreen->GetWindowPixmap(pWin); > + int xoff, yoff; > + > + exaGetDrawableDeltas(&pWin->drawable, pPixmap, &xoff, &yoff); > + REGION_TRANSLATE(pScreen, prgnSrc, xoff, yoff); > + pExaScr->prepare_access_reg(pPixmap, EXA_PREPARE_SRC, prgnSrc); > + REGION_TRANSLATE(pScreen, prgnSrc, -xoff, -yoff); > + } else > + exaPrepareAccess(pDrawable, EXA_PREPARE_SRC); > + > swap(pExaScr, pScreen, CopyWindow); > pScreen->CopyWindow (pWin, ptOldOrg, prgnSrc); > swap(pExaScr, pScreen, CopyWindow); > -- > 1.6.5.7 > > _______________________________________________ > xorg-devel mailing list > [email protected] > http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
