ProcsRec:
PUBLIC
TYPE =
RECORD [
CreateContext: PROC [imagingDevice: ImagingDevice] RETURNS [Context],
DestroyContext: PROC [context: Context],
Save: PROC [context: Context, what: Inclusions] RETURNS [Mark],
Restore: PROC [context: Context, mark: Mark],
NewFrame: PROC [context: Context],
Translate: PROC [context: Context, dx, dy: REAL],
Rotate: PROC [context: Context, degrees: REAL],
Scale: PROC [context: Context, sx, sy: REAL],
IntTranslate: PROC [context: Context, dx, dy: INTEGER],
IntRotate: PROC [context: Context, degrees: INTEGER],
IntScale: PROC [context: Context, x, y: INTEGER],
ResetTransform: PROC [context: Context],
SetClipArea: PROC [context: Context, area: Path],
ConcatArea: PROC [context: Context, area: Path, exclude: BOOLEAN ← FALSE],
TestArea: PROC [context: Context, area: Path] RETURNS [Visibility],
TestPoint: PROC [context: Context, point: Vec] RETURNS [BOOLEAN],
ClipArea: PROC [context: Context, area: Path] RETURNS [Path],
SetClipRectangle: PROC [context: Context, area: IntRectangle],
ConcatRectangle: PROC [context: Context, area: IntRectangle],
TestRectangle: PROC [context: Context, area: IntRectangle] RETURNS [Visibility],
TestIntPoint: PROC [context: Context, point: IntVec] RETURNS [BOOLEAN],
ClipRectangle: PROC [context: Context, area: IntRectangle] RETURNS [IntRectangle],
DoWithoutClipping: PROC [context: Context, callBack: PROC[Context]],
RegisterDevice: PROC [name: ATOM, procs: ImagerBasic.DeviceProcs],
EnumerateRegisteredDevices: PROC [] RETURNS [LIST OF ATOM],
SetDevice: PROC [context: Context, device: ImagingDevice],
GetDevice: PROC [context: Context] RETURNS [ImagingDevice],
SetFont: PROC [context: Context, font: Font],
GetFont: PROC [context: Context] RETURNS [font: Font],
SetSource: PROC [context: Context, source: SourceRecord],
GetSource: PROC [context: Context] RETURNS [source: SourceRecord],
SourceFromColor: PROC [color: RGBValue] RETURNS [source: SourceRecord],
SourceFromImage: PROC [context: Context] RETURNS [source: SourceRecord],
SourceFromAIS: PROC [file: AISFile] RETURNS [source: SourceRecord],
PathFromIntRectangle: PROC [area: IntRectangle] RETURNS [Path],
MaskStroke: PROC [context: Context, path: Path],
MaskFill: PROC [context: Context, path: Path],
MaskPixel: PROC [context: Context, pixelArray: PixelArray],
MoveTo: PROC [context: Context, p: IntVec],
DrawTo: PROC [context: Context, p: IntVec],
DrawPath: PROC [context: Context, path: Path],
FillRectangle: PROC [context: Context, r: Rectangle],
SetCP: PROC [context: Context, cp: Vec],
GetCP: PROC [context: Context, cp: Vec],
SetIntCP: PROC [context: Context, cp: IntVec],
GetIntCP: PROC [context: Context, cp: IntVec],
MaskChar: PROC [context: Context, char: CHAR],
MaskCharacters: PROC [context: Context, characters: REF, start: INT ← 0, length: INT ← LAST[INT]],
MaskCharSeq: PROC [context: Context, length: NAT, charPtr: LONG POINTER TO CHAR, charIncrement: NAT, deltaXptr: LONG POINTER TO INTEGER, deltaXincrement: NAT, deltaYptr: LONG POINTER TO INTEGER, deltaYincrement: NAT],
Interactive: PROC [context: Context] RETURNS [BOOLEAN],
InvertArea: PROC [context: Context, area: Path],
InvertIntRectangle: PROC [context: Context, area: IntRectangle],
MoveIntRectangle: PROC [context: Context, source: IntRectangle, destination: IntVec],
GetPixelArray: PROC [context: Context, source: IntRectangle, image: PixelArray ← NIL] RETURNS [PixelArray],
PutPixelArray: PROC [context: Context, destination: IntRectangle, image: PixelArray],
StartDoubleBuffering: PROC [context: Context],
StopDoubleBuffering: PROC [context: Context]