|
|
BSD 4.3tahoe
/*
* $Source: /var/lib/cvsd/repos/CSRG/43BSDTahoe/new/X/libis/copy.c,v $
* $Header: /var/lib/cvsd/repos/CSRG/43BSDTahoe/new/X/libis/copy.c,v 1.1.1.1 2018/04/24 16:12:58 root Exp $
*/
#ifndef lint
static char *rcsid_copy_c = "$Header: /var/lib/cvsd/repos/CSRG/43BSDTahoe/new/X/libis/copy.c,v 1.1.1.1 2018/04/24 16:12:58 root Exp $";
#endif lint
#include "is-copyright.h"
/* copy.c Copy one section of the framebuffer to another
*
* CopyArea Copies a section of the framebuffer
*
* Copyright (c) 1986, Integrated Solutions, Inc.
*/
#include "Xis.h"
CopyArea(srcx, srcy, width, height, dstx, dsty, clips, clipcount, func, zmask)
register int srcx, srcy;
int width, height;
register int dstx, dsty;
register CLIP *clips;
register int clipcount;
int func;
int zmask;
{
CLIP dbounds;
#ifdef DEBUG
if (debug & D_CopyArea)
printf("CopyArea(srcx=%d, srcy=%d, width=%d, height=%d, dstx=%d, dsty=%d, clips=0x%x, clipcount=%d, func=%d, zmask=0x%04x)\n",
srcx, srcy, width, height, dstx, dsty, clips, clipcount, func, zmask);
#endif DEBUG
dbounds.top = dsty;
dbounds.left = dstx;
dbounds.width = width;
dbounds.height = height;
for ( ; clipcount; clipcount--, ++clips) {
if (Overlap(clips[0], dbounds)) {
CLIP i, sbounds;
i = Intersection(clips[0], dbounds);
CheckCursor(i);
sbounds.left = (i.left - dstx) + srcx;
sbounds.top = (i.top - dsty) + srcy;
sbounds.width = i.width;
sbounds.height = i.height;
CheckCursor(sbounds);
GIP_RasterOp((unsigned char)func,
&ScreenPixmap, sbounds.left, sbounds.top,
&ScreenPixmap, i.left, i.top,
(BITMAP *)NULL, 0, 0,
i.width, i.height, zmask);
}
}
RestoreCursor();
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.