IISampleExtras.mesa
Copyright Ó 1986 by Xerox Corporation. All rights reserved.
Michael Plass, September 24, 1986 10:21:59 am PDT
DIRECTORY PrincOps, IISample, Scaled;
IISampleExtras: CEDAR DEFINITIONS
~ BEGIN OPEN IISample;
RawGenerator: TYPE ~ PROC [rawAction: RawAction];
RawAction: TYPE ~ PROC [box: Box, bitsPerLine: NAT, base: PrincOps.BitAddress];
RawTransfer: PROC [dst: SampleMap, rawGenerator: RawGenerator, function: Function ← nullFunction];
RawDescriptor: TYPE ~ RECORD [box: Box, bitsPerLine: NAT, basePointer: LONG POINTER];
rawArraySize: NAT ~ 32;
RawArray: TYPE ~ ARRAY [0..rawArraySize) OF RawDescriptor;
MultipleTransfer: PROC [dst: SampleMap, n: [0..rawArraySize], a: POINTER TO RawArray, function: Function ← nullFunction];
Must have bits per sample = 1 in both source and dst.
EdgeAction: TYPE ~ PROC [
which: [0..1], -- Which side this specifies
sMin: INTEGER, -- First scan line touched
sCount: NAT, -- Number of scan lines touched
f0: Scaled.Value, -- Initial value of f, offset by 1/2 pixel
df: Scaled.Value -- df/ds
];
RegionFill: PROC [dst: SampleMap, edgeGenerator: PROC [EdgeAction], value: Sample ← maxSample, function: Function ← nullFunction];
Fills a monotone region designated by the edges. The edgeGenerator must specify the edges in nondecreasing sMin order. Clips to the destination bounds.
END.