DIRECTORY DragOps; BitBlt: DEFINITIONS = BEGIN DragonPointer: TYPE = POINTER TO DragOps.Word; DragonBitAddress: TYPE = MACHINE DEPENDENT RECORD [ word: DragonPointer, bit: INT ]; BitBltFlags: TYPE = MACHINE DEPENDENT RECORD [ direction: Direction _ forward, disjoint: BOOL _ FALSE, disjointItems: BOOL _ FALSE, gray: BOOL _ FALSE, srcFunc: SrcFunc _ null, dstFunc: DstFunc _ null, reserved: [0..511] _ 0, reserved1: DragOps.Half _ DragOps.ZerosHalf -- so uses 32 bits ]; Direction: TYPE = {forward, backward}; DstFunc: TYPE = {null, and, or, xor}; GrayParm: TYPE = MACHINE DEPENDENT RECORD [ reserved: [0..255] _ 0, yOffset: [0..255], widthMinusOne: [0..255], heightMinusOne: [0..255] ]; SrcDesc: TYPE = MACHINE DEPENDENT RECORD [ SELECT OVERLAID * FROM gray => [gray: GrayParm], srcBpl => [srcBpl: INT], ENDCASE ]; BitBltTablePtr: TYPE = POINTER TO BitBltTable; BitBltTable: TYPE = MACHINE DEPENDENT RECORD [ dst: DragonBitAddress, dstBpl: INT, src: DragonBitAddress, srcDesc: SrcDesc, width: INT, height: INT, flags: BitBltFlags ]; SrcFunc: TYPE = {null, complement}; BITBLT: PROC[bbt: BitBltTablePtr]; END. (BitBlt.mesa For Dragon Copyright (C) 1986 by Xerox Corporation. All rights reserved. Willie-Sue, September 11, 1986 12:32:42 pm PDT Carl Hauser, November 12, 1986 1:02:23 pm PST Data Structures for BitBlt (wizards only) determines the BitBlt function used with Src to describe gray brick ΚX˜™ JšΠbl ™ J™>Icode™.K™-—J˜J˜šΟk ˜ J˜—J˜šΟnœž ˜J˜Jšœž˜J˜Ihead™*Kš œžœžœžœž œ˜.K˜š œžœžœž œžœ˜3Kšœ˜Kšœž˜K˜K˜—š œ žœžœž œžœ˜.Kšœ™K˜Kšœ žœžœ˜Kšœžœžœ˜Kšœžœžœ˜K˜K˜Kšœ˜Kšœ,Οc˜>K˜K˜—Kšœ žœ˜&K˜Kšœ žœ˜%K˜š œ žœžœž œžœ˜+Kšœ$™$Kšœ˜Kšœ˜Kšœ˜Kšœ˜K˜K˜—š œ žœžœž œžœ˜*šžœžœž˜K˜Kšœžœ˜Kšž˜—Kšœ˜K˜—Jšœžœžœžœ ˜.š œ žœžœž œžœ˜.K˜Kšœžœ˜ K˜K˜Kšœžœ˜ Kšœžœ˜ K˜Kšœ˜K˜—Kšœ žœ˜#J˜Jšžœžœ˜"J˜—J˜šžœ˜J˜—J˜—…—jκ