(FILECREATED "29-May-86 23:42:08" {ERIS}<LISPUSERS>KOTO>IDLESWAP.;4 2353
changes to: (FNS IDLE-SWAP)
(VARS IDLESWAPCOMS)
previous date: "29-May-86 23:10:51" {ERIS}<LISPUSERS>KOTO>IDLESWAP.;2)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT IDLESWAPCOMS)
(RPAQQ IDLESWAPCOMS [(INITVARS (IDLE-SWAP-SIZE 64))
(FNS IDLE-SWAP)
(ADDVARS (IDLE.FUNCTIONS ("Swap" (QUOTE IDLE-SWAP])
(RPAQ? IDLE-SWAP-SIZE 64)
(DEFINEQ
(IDLE-SWAP
[LAMBDA (WINDOW) (* hdj "29-May-86 23:41")
(DECLARE (GLOBALVARS IDLE-SWAP-SIZE))
(BITBLT (WINDOWPROP WINDOW (QUOTE IMAGECOVERED))
NIL NIL WINDOW NIL NIL NIL NIL (QUOTE INVERT)
(QUOTE REPLACE))
(LET [(WIDTH (WINDOWPROP WINDOW (QUOTE WIDTH)))
(HEIGHT (WINDOWPROP WINDOW (QUOTE HEIGHT]
(do (BLOCK (RAND 0 5000))
(LET [[RAND-X-1 (TIMES IDLE-SWAP-SIZE (RAND 0 (IQUOTIENT WIDTH IDLE-SWAP-SIZE]
[RAND-Y-1 (TIMES IDLE-SWAP-SIZE (RAND 0 (IQUOTIENT HEIGHT IDLE-SWAP-SIZE]
[RAND-X-2 (TIMES IDLE-SWAP-SIZE (RAND 0 (IQUOTIENT WIDTH IDLE-SWAP-SIZE]
(RAND-Y-2 (TIMES IDLE-SWAP-SIZE (RAND 0 (IQUOTIENT HEIGHT IDLE-SWAP-SIZE]
(if (AND (NEQ RAND-X-1 RAND-X-2)
(NEQ RAND-Y-1 RAND-Y-2))
then
(* * swap the two regions of the window using BITBLT only)
(BITBLT WINDOW RAND-X-1 RAND-Y-1 WINDOW RAND-X-2 RAND-Y-2 IDLE-SWAP-SIZE
IDLE-SWAP-SIZE (QUOTE INPUT)
(QUOTE INVERT))
(BITBLT WINDOW RAND-X-2 RAND-Y-2 WINDOW RAND-X-1 RAND-Y-1 IDLE-SWAP-SIZE
IDLE-SWAP-SIZE (QUOTE INPUT)
(QUOTE INVERT))
(BITBLT WINDOW RAND-X-1 RAND-Y-1 WINDOW RAND-X-2 RAND-Y-2 IDLE-SWAP-SIZE
IDLE-SWAP-SIZE (QUOTE INPUT)
(QUOTE INVERT])
)
(ADDTOVAR IDLE.FUNCTIONS ("Swap" (QUOTE IDLE-SWAP)))
(PUTPROPS IDLESWAP COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (532 2216 (IDLE-SWAP 542 . 2214)))))
STOP