static RegionPtr kaaCopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GCPtr pGC, int srcx, int srcy, int width, int height, int dstx, int dsty) { return fbDoCopy (pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty, kaaCopyNtoN, 0, 0); }
RegionPtr xglCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, int srcX, int srcY, int w, int h, int dstX, int dstY) { RegionPtr pRegion; BoxRec box; XGL_GC_PRIV (pGC); box.x1 = pSrc->x + srcX; box.y1 = pSrc->y + srcY; box.x2 = box.x1 + w; box.y2 = box.y1 + h; if (pGC->alu != GXcopy || pGCPriv->flags) { if (!xglSyncBits (pSrc, &box)) FatalError (XGL_SW_FAILURE_STRING); XGL_GC_OP_FALLBACK_PROLOGUE (pDst); pRegion = (*pGC->ops->CopyArea) (pSrc, pDst, pGC, srcX, srcY, w, h, dstX, dstY); XGL_GC_OP_FALLBACK_EPILOGUE (pDst); } else { /* xglCopyProc handles fall-back */ pRegion = fbDoCopy (pSrc, pDst, pGC, srcX, srcY, w, h, dstX, dstY, xglCopyProc, 0, (void *) &box); } return pRegion; }
RegionPtr saa_copy_area(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GCPtr pGC, int srcx, int srcy, int width, int height, int dstx, int dsty) { struct saa_screen_priv *sscreen = saa_screen(pDstDrawable->pScreen); if (sscreen->fallback_count) { return saa_check_copy_area(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty); } #if (GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) >= 6) return miDoCopy(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty, saa_copy_nton, 0, NULL); #else return fbDoCopy(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty, saa_copy_nton, 0, NULL); #endif }