DIRECTORY DragOpsCross; DragonBitBlt: DEFINITIONS = BEGIN DragonPointer: TYPE = LONG POINTER TO DragOpsCross.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: DragOpsCross.Half _ DragOpsCross.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 = LONG 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. όDragonBitBlt.mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Willie-Sue, September 11, 1986 12:32:42 pm PDT Data Structures for DragonBitBlt (wizards only) determines the BitBlt function used with Src to describe gray brick ΚP˜™J™>Icode™.—J˜J˜šΟk ˜ J˜ —J˜šΟn œ ˜J˜Jšœ˜J˜Ihead™0Kš œœœœœ˜8K˜š œœœ œœ˜3Kšœ˜Kšœ˜K˜K˜—š œ œœ œœ˜.Kšœ™K˜Kšœ œœ˜Kšœœœ˜Kšœœœ˜K˜K˜Kšœ˜Kšœ6Οc˜HK˜K˜—Kšœ œ˜&K˜Kšœ œ˜%K˜š œ œœ œœ˜+Kšœ$™$Kšœ˜Kšœ˜Kšœ˜Kšœ˜K˜K˜—š œ œœ œœ˜*šœœ˜K˜Kšœœ˜Kš˜—Kšœ˜K˜—Jš œœœœœ ˜3š œ œœ œœ˜.K˜Kšœœ˜ K˜K˜Kšœœ˜ Kšœœ˜ K˜Kšœ˜K˜—Kšœ œ˜#J˜Jšœœ˜"J˜—J˜šœ˜J˜—J˜—…—ŽΪ