BoxRec mouseBB; Bool hidden = pVMWARE->mouseHidden;
vmwareCopyArea(DrawablePtr pSrcDrawable,DrawablePtr pDstDrawable,GCPtr pGC, int srcx, int srcy, int width, int height, int dstx, int dsty){    RegionPtr prgn;    VMWAREPtr pVMWARE = VMWAREPTR(infoFromScreen(pGC->pScreen));    TRACEPOINT    if ((pVMWARE->vmwareCapability & SVGA_CAP_RECT_COPY) &&	(pGC->alu == GXcopy || (pVMWARE->vmwareCapability & SVGA_CAP_RASTER_OP)) &&	pSrcDrawable->type == DRAWABLE_WINDOW &&	pDstDrawable->type == DRAWABLE_WINDOW &&	(pGC->planemask & pVMWARE->Pmsk) == pVMWARE->Pmsk) {	fbCopyProc  doBitBlt;	BoxRec updateBB;	BoxRec mouseBB;	Bool hidden = pVMWARE->mouseHidden;	updateBB.x1 = pDstDrawable->x + dstx;	updateBB.y1 = pDstDrawable->y + dsty;	updateBB.x2 = updateBB.x1 + width;	updateBB.y2 = updateBB.y1 + height;	mouseBB.x1 = MIN(pSrcDrawable->x + srcx, pDstDrawable->x + dstx);	mouseBB.y1 = MIN(pSrcDrawable->y + srcy, pDstDrawable->y + dsty);	mouseBB.x2 = MAX(pSrcDrawable->x + srcx, pDstDrawable->x + dstx) + width;	mouseBB.y2 = MAX(pSrcDrawable->y + srcy, pDstDrawable->y + dsty) + height;	doBitBlt = vmwareDoBitblt;	if (!hidden) {	    HIDE_CURSOR_ACCEL(pVMWARE, mouseBB);	}	prgn = fbDoCopy (pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width,			 height, dstx, dsty, doBitBlt, 0, 0);	if (!hidden) {	    SHOW_CURSOR(pVMWARE, mouseBB);	}	UPDATE_ACCEL_AREA(pVMWARE, updateBB);    } else if (pDstDrawable->type == DRAWABLE_WINDOW ||	pSrcDrawable->type == DRAWABLE_WINDOW) {	if (pVMWARE->vmwareBBLevel == 0) {	    BoxRec updateBB;	    BoxRec mouseBB;	    if (pDstDrawable->type == DRAWABLE_WINDOW &&		pSrcDrawable->type != DRAWABLE_WINDOW) {		updateBB.x1 = pDstDrawable->x + dstx;		updateBB.y1 = pDstDrawable->y + dsty;		updateBB.x2 = updateBB.x1 + width;		updateBB.y2 = updateBB.y1 + height;		mouseBB = updateBB;	    } else if (pDstDrawable->type != DRAWABLE_WINDOW &&		       pSrcDrawable->type == DRAWABLE_WINDOW) {		updateBB.x1 = pSrcDrawable->x + srcx;		updateBB.y1 = pSrcDrawable->y + srcy;		updateBB.x2 = updateBB.x1 + width;		updateBB.y2 = updateBB.y1 + height;		mouseBB = updateBB;	    } else {		updateBB.x1 = pDstDrawable->x + dstx;		updateBB.y1 = pDstDrawable->y + dsty;		updateBB.x2 = updateBB.x1 + width;		updateBB.y2 = updateBB.y1 + height;		mouseBB.x1 = MIN(pSrcDrawable->x + srcx, pDstDrawable->x + dstx);		mouseBB.y1 = MIN(pSrcDrawable->y + srcy, pDstDrawable->y + dsty);		mouseBB.x2 = MAX(pSrcDrawable->x + srcx, pDstDrawable->x + dstx) + width;		mouseBB.y2 = MAX(pSrcDrawable->y + srcy, pDstDrawable->y + dsty) + height;	    }	    HIDE_CURSOR(pVMWARE, mouseBB);	    vmwareWaitForFB(pVMWARE);	    pVMWARE->vmwareBBLevel++;	    prgn =		GC_OPS(pGC)->CopyArea(pSrcDrawable,		pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty);	    pVMWARE->vmwareBBLevel--;	    if (pDstDrawable->type == DRAWABLE_WINDOW) {		vmwareSendSVGACmdUpdate(pVMWARE, &updateBB);	    }	    SHOW_CURSOR(pVMWARE, mouseBB);	} else {	    vmwareWaitForFB(pVMWARE);	    prgn =		GC_OPS(pGC)->CopyArea(pSrcDrawable,		pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty);	}    } else {	prgn =	    GC_OPS(pGC)->CopyArea(pSrcDrawable, pDstDrawable,	    pGC, srcx, srcy, width, height, dstx, dsty);    }    return prgn;}