DragonBitBlt.mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Willie-Sue, September 11, 1986 12:32:42 pm PDT
DIRECTORY
DragOpsCross;
DragonBitBlt: DEFINITIONS
= BEGIN
Data Structures for DragonBitBlt (wizards only)
DragonPointer: TYPE = LONG POINTER TO DragOpsCross.Word;
DragonBitAddress: TYPE = MACHINE DEPENDENT RECORD [
word: DragonPointer,
bit: INT
];
BitBltFlags: TYPE = MACHINE DEPENDENT RECORD [
determines the BitBlt function
direction: Direction ← forward,
disjoint: BOOLFALSE,
disjointItems: BOOLFALSE,
gray: BOOLFALSE,
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 [
used with Src to describe gray brick
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.