<> <> <> <<>> <> <<>> DIRECTORY ImagerColorDefs USING [SampledColor], ImagerDitheredDevice USING [MapEntries], ImagerDither USING [PackedColorDesc, Table], ImagerPixelMap USING [PixelMap], ImagerSample USING [Sampler, SampleBuffer], ImagerTransformation USING [Transformation], PrincOps USING [BitBltFlags], Terminal USING [Virtual] ; ImagerDitheredDevicePrivate: CEDAR DEFINITIONS ~ BEGIN Case: TYPE ~ {nil, constant, stipple, rgb, sampled}; StippleArray: TYPE ~ PACKED ARRAY [0..16) OF WORD; Data: TYPE ~ REF DataRep; DataRep: TYPE ~ RECORD[ terminal: Terminal.Virtual _ NIL, frame: ImagerPixelMap.PixelMap, mapEntries: ImagerDitheredDevice.MapEntries _ NIL, table: ImagerDither.Table _ NIL, case: Case _ nil, -- what type of color zerosAreClear: BOOL _ FALSE, -- special case for sampled black clear. flags: PrincOps.BitBltFlags _ [], -- bitblt flags grayWord: WORD _ 0, -- bitblt gray word packedRGB: WORD _ 0, -- for case = rgb stipple: StippleArray _ ALL[0], -- stipple pattern fTileOrg: NAT _ 0, sTileOrg: NAT _ 0, sampledColor: ImagerColorDefs.SampledColor _ NIL, -- sampled color sampledColorData: SampledColorData _ NIL, -- cached data associated with sampledColor paToDevice: ImagerTransformation.Transformation _ NIL, -- transformation from pa coords to display sampBuffer: ImagerSample.SampleBuffer _, -- scan line buffer for samples lineBuffer: ImagerSample.SampleBuffer _, -- for ops that cannot go directly to frame sampler: ImagerSample.Sampler _, -- sampler information extras: REF _ NIL ]; SampledColorData: TYPE ~ REF SampledColorDataRep; SampledColorDataRep: TYPE ~ RECORD [ packing: ImagerDither.PackedColorDesc, source: ImagerPixelMap.PixelMap -- 16 bits per pixel, packed RGB, with space for tile index. ]; END.