|
|
1.1 ! root 1: #ifndef lint ! 2: static char *rcsid_copy_c = "$Header: copy.c,v 10.1 86/11/19 10:40:31 jg Exp $"; ! 3: #endif lint ! 4: /* copy.c - Copy one rectangular section of the screen buffer to another ! 5: * ! 6: * CopyArea Copies a rectangular section of the screen buffer ! 7: * ! 8: * Author: ! 9: * Scott Bates ! 10: * Brown University ! 11: * IRIS, Box 1946 ! 12: * Providence, RI 02912 ! 13: * ! 14: * ! 15: * Copyright (c) 1986 Brown University ! 16: * ! 17: * Permission to use, copy, modify and distribute this software and its ! 18: * documentation for any purpose and without fee is hereby granted, provided ! 19: * that the above copyright notice appear in all copies, and that both ! 20: * that copyright notice and this permission notice appear in supporting ! 21: * documentation, and that the name of Brown University not be used in ! 22: * advertising or publicity pertaining to distribution of the software ! 23: * without specific, written prior permission. Brown University makes no ! 24: * representations about the suitability of this software for any purpose. ! 25: * It is provided "as-is" without express or implied warranty. ! 26: */ ! 27: ! 28: #include "private.h" ! 29: #include "bitblt.h" ! 30: ! 31: /* ! 32: * Screen to screen copy ! 33: */ ! 34: ! 35: CopyArea (srcx, srcy, width, height, dstx, dsty, clips, clipcount, func, zmask) ! 36: register srcx, srcy, dstx, dsty; ! 37: int clipcount, zmask, func; ! 38: int width, height; ! 39: CLIP *clips; ! 40: { ! 41: register Blt_Rectangle *source = &SrcRect; ! 42: register Blt_Rectangle *dest = &DstRect; ! 43: ! 44: #ifdef TRACE_X ! 45: fprintf(stderr, "In CopyArea\n"); ! 46: fflush(stderr); ! 47: #endif TRACE_X ! 48: ! 49: /* ! 50: * Limit copy to one plane ! 51: */ ! 52: ! 53: if ((zmask & 1) == 0) ! 54: return; ! 55: ! 56: /* ! 57: * Fill in source and destination rectangles ! 58: */ ! 59: ! 60: FillInRect(srcx, srcy, width, height, source); ! 61: FillInRect(dstx, dsty, width, height, dest); ! 62: ! 63: /* ! 64: * Copy screen source to screen destination ! 65: */ ! 66: ! 67: CopyBits((u_short *) pbm.data, pbm.width, pbm.height, source, ! 68: (u_short *) pbm.data, pbm.width, pbm.height, dest, ! 69: NILMASK, NIL, NIL, func, clipcount, clips); ! 70: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.