CIIPrivate.mesa
Copyright Ó 1993 by Xerox Corporation. All rights reserved.
Michael Plass, October 28, 1993 1:35 pm PDT
DIRECTORY CStrings, CII, ImagerClipper, ImagerColor, ImagerDevice, ImagerDeviceVector, ImagerPixel, ImagerSample, ImagerTransformation, RefTab, ImagerBrick;
CIIPrivate: DEFINITIONS
~ BEGIN
ScanMode: TYPE ~ MACHINE DEPENDENT {
slowRightFastUp,
slowDownFastRight,
slowLeftFastDown,
slowUpFastLeft,
slowRightFastDown,
slowDownFastLeft,
slowLeftFastUp,
slowUpFastRight
};
CString: TYPE = CStrings.CString;
MatchCString: PROC [s: CStrings.CString, text: REF TEXT] RETURNS [BOOL];
AtomFromCString: PROC [s: CStrings.CString] RETURNS [ATOM];
SetupStandardParams: SetupStandardParamsProc;
SetupStandardParamsProc: TYPE = PROC [
s: SetupHandle,
sSizeDevice: CARDINAL,
fSizeDevice: CARDINAL,
scanMode: ScanMode,
surfaceUnitsPerInchX: REAL,
surfaceUnitsPerInchY: REAL
] RETURNS [CII.RES];
DefaultSetupArrayParamSize: SetupArrayParamSizeProc; -- default impl - returns accessError
SetupArrayParamSizeProc: TYPE = PROC [s: SetupHandle, name: CString, size: CARDINAL] RETURNS [CII.RES];
DefaultSetupIntParam: SetupIntParamProc; -- default impl - returns accessError
SetupIntParamProc: TYPE = PROC [s: SetupHandle, name: CString, index: CARDINAL, value: INT] RETURNS [CII.RES];
DefaultSetupFloatParam: SetupFloatParamProc; -- default impl - returns accessError
SetupFloatParamProc: TYPE = PROC [s: SetupHandle, name: CString, index: CARDINAL, value: REAL] RETURNS [CII.RES];
DefaultSetupNameParam: SetupNameParamProc; -- default impl - returns accessError
SetupNameParamProc: TYPE = PROC [s: SetupHandle, name: CString, index: CARDINAL, value: CString] RETURNS [CII.RES];
DefaultCreateHandleFromRasters: CreateHandleFromRastersProc; -- default impl - returns accessError
CreateHandleFromRastersProc: TYPE = PROC [
s: SetupHandle,
logicalDevice: CARDINAL,
nRasters: CARDINAL,
rasters: POINTER TO ARRAY [0..0) OF CII.RasterRep,
handleResult: POINTER TO CII.Handle
] RETURNS [CII.RES];
DestroySetupObjectProc: TYPE = PROC [s: SetupHandle] RETURNS [CII.RES];
CreateSetupHandle: PROC [
data: REF,
SetupArrayParamSize: SetupArrayParamSizeProc ¬ DefaultSetupArrayParamSize,
SetupIntParam: SetupIntParamProc ¬ DefaultSetupIntParam,
SetupFloatParam: SetupFloatParamProc ¬ DefaultSetupFloatParam,
SetupNameParam: SetupNameParamProc ¬ DefaultSetupNameParam,
CreateHandleFromRasters: CreateHandleFromRastersProc ¬ DefaultCreateHandleFromRasters
] RETURNS [SetupHandle];
SetupHandle: TYPE = REF SetupObjectRep;
SetupObjectRep: TYPE = RECORD [
data: REF SetupHandleDataRep,
procs: SEQUENCE COMPUTED CARDINAL OF CII.CProc
];
SetupHandleData: TYPE = REF SetupHandleDataRep;
SetupHandleDataRep: TYPE = RECORD [
data: REF ANY, -- For the more device-specific data
sSizeDevice: CARDINAL,
fSizeDevice: CARDINAL,
scanMode: ImagerTransformation.ScanMode,
surfaceUnitsPerInchX: REAL,
surfaceUnitsPerInchY: REAL
];
ScanModeTranslate: PROC [scanMode: ScanMode] RETURNS [ImagerTransformation.ScanMode];
StateRep: TYPE ~ RECORD [
refTab: RefTab.Ref ¬ NIL, -- Things passed out to clients & not destroyed, w/ ref counts
device: ImagerDevice.Device,
initialTransformation: ImagerTransformation.Transformation ¬ NIL, -- for GetInitialMatrix
savedDevice: ImagerDevice.Device ¬ NIL, -- For use during BuildClipper scope
color: ImagerColor.Color, -- color that has been set by the client
dcolor: ImagerColor.Color, -- color that has been pushed into the device
transformation: ImagerTransformation.Transformation, -- client to device
viewClipper: ImagerDevice.DeviceClipper,
clientClipper: ImagerClipper.Clipper,
halftoneProperties: REF HalftonePropertiesRep, -- set by the client
dhalftoneProperties: REF HalftonePropertiesRep, -- pushed into the device
cp: ImagerDeviceVector.DVec,
scratchDesc: ImagerSample.RasterSampleMap,
cleanups: LIST OF CII.CleanupObject
];
HalftonePropertiesRep: TYPE = RECORD [
p: ImagerBrick.HalftoneProperties
];
The following are for the benefit of Cedar-language implementations of the cii interface.
ValidateClipper: PROC [state: REF StateRep];
PixelMapFromRasters: UNSAFE PROC [samplesPerPixel: CARD, buffers: POINTER TO ARRAY[0..0) OF POINTER TO CII.RasterRep] RETURNS [ImagerPixel.PixelMap];
MakeSampleMap: UNSAFE PROC [raster: POINTER TO CII.RasterRep, scratch: ImagerSample.RasterSampleMap ¬ NIL] RETURNS [ImagerSample.RasterSampleMap];
END.