ImagerMasksPrivate.mesa
Michael Plass, July 6, 1983 9:05 am
Provides reader-style access to masks as runs.
DIRECTORY ImagerMasks;
ImagerMasksPrivate: CEDAR DEFINITIONS ~ BEGIN
Mask: TYPE ~ ImagerMasks.Mask;
Representation: TYPE ~ {bitmap, pdruns, runs, box};
Reader: TYPE ~ RECORD [
s, fMin, fMax: INTEGER,
firstRunOnLine: BOOLEAN,
repeatCount: CARDINAL,
done: BOOLEAN,
fTranslate: INTEGER,
index: CARDINAL,
representation: Representation,
bitmap =>
currentWord: INTEGER, -- the valid bits are high-order; non-valid bits are zero.
validBitCount: CARDINAL,
currentLinePtr: LONG POINTER,
nextWordPtr: LONG POINTER TO INTEGER,
fCurrent: CARDINAL,
fSize: CARDINAL,
sMax: INTEGER,
wordsPerLine: CARDINAL,
pdruns =>
pdRunGroup: ImagerMasks.PDRunGroup,
runs =>
blockDirectory: REF ImagerMasks.MaskRep.runs,
blockDirectoryIndex: CARDINAL,
runBlock: ImagerMasks.RunBlock,
lineStartBlockDirectoryIndex: CARDINAL,
lineStartIndex: CARDINAL
];
SetReader: UNSAFE PROC [reader: POINTER TO Reader, mask: Mask];
Advance: UNSAFE PROC [r: POINTER TO Reader];
SkipTo: UNSAFE PROC [r: POINTER TO Reader, s: INTEGER];
END.