<<>> <> <> <> <> <> <<>> DIRECTORY Imager USING [Color, ColorOperator, SpecialColor, Context, Font, Outline, PathProc, PixelMap, Rectangle, SampleMap, Transformation, VEC]; ImagerBackdoor: CEDAR DEFINITIONS ~ BEGIN OPEN Imager; <> <<>> IntKey: TYPE ~ { -- for SetInt, GetInt priorityImportant, noImage, strokeEnd, strokeJoint, correctPass, raiseWarnings, intA, intB, intC -- spares }; RealKey: TYPE ~ { -- for SetReal, GetReal DCScpx, DCScpy, mediumXSize, mediumYSize, fieldXMin, fieldYMin, fieldXMax, fieldYMax, strokeWidth, underlineStart, amplifySpace, correctShrink, correctMX, correctMY, correctTX, correctTY, correctStretch, -- not present in Interpress 3.1 miterLimit, -- not present in Interpress 3.1 realA, realB, realC -- spares }; Clipper: TYPE ~ LIST OF ClipperItem; -- for SetClipper, GetClipper ClipperItem: TYPE ~ RECORD [outline: Outline, oddWrap, exclude: BOOL ¬ FALSE]; SetInt: PROC [context: Context, key: IntKey, val: INT]; SetReal: PROC [context: Context, key: RealKey, val: REAL]; SetT: PROC [context: Context, m: Transformation]; SetClipper: PROC [context: Context, clipper: Clipper]; GetInt: PROC [context: Context, key: IntKey] RETURNS [INT]; GetReal: PROC [context: Context, key: RealKey] RETURNS [REAL]; GetT: PROC [context: Context] RETURNS [Transformation]; GetFont: PROC [context: Context] RETURNS [Font]; GetColor: PROC [context: Context] RETURNS [Color]; GetClipper: PROC [context: Context] RETURNS [Clipper]; GetCP: PROC [context: Context, rounded: BOOL ¬ FALSE] RETURNS [VEC]; <> <> GetBounds: PROC [context: Context] RETURNS [Rectangle]; <> <<>> <> <> <> <> <<>> Save: PROC [context: Context, all: BOOL ¬ FALSE] RETURNS [REF]; Restore: PROC [context: Context, ref: REF]; <> CoordSys: TYPE ~ {client, view, surface, device}; <> TransformPoint: PROC [context: Context, p: VEC, from, to: CoordSys] RETURNS [VEC]; TransformVec: PROC [context: Context, v: VEC, from, to: CoordSys] RETURNS [VEC]; GetTransformation: PROC [context: Context, from, to: CoordSys] RETURNS [Transformation]; <> <> ViewReset: PROC [context: Context]; ViewClip: PROC [context: Context, path: PathProc, oddWrap, exclude: BOOL ¬ FALSE]; ViewClipRectangleI: PROC [context: Context, x, y, w, h: INTEGER, exclude: BOOL ¬ FALSE]; <> <<>> ViewTranslateI: PROC [context: Context, x, y: INTEGER]; Visibility: TYPE ~ {none, part, all}; TestViewRectangle: PROC [context: Context, x, y, w, h: INTEGER] RETURNS [Visibility]; MoveViewRectangle: PROC [context: Context, width, height, fromX, fromY, toX, toY: INTEGER]; <> <> <<>> NewBitmap: PROC [width, height: NAT] RETURNS [SampleMap]; BitmapContext: PROC [bitmap: SampleMap] RETURNS [Context]; <> GetBufferColorOperator: PROC [context: Context] RETURNS [ColorOperator]; <> AccessBuffer: PROC [context: Context, action: PROC [pixelMap: PixelMap], path: PathProc, oddWrap: BOOL ¬ FALSE]; <> <<>> AccessBufferRectangle: PROC [context: Context, action: PROC [pixelMap: PixelMap], rectangle: Rectangle]; SaveBuffer: PROC [context: Context, id: ATOM, path: PathProc, oddWrap: BOOL ¬ FALSE]; <> SaveBufferRectangle: PROC [context: Context, id: ATOM, rectangle: Rectangle]; <> RestoreBuffer: PROC [context: Context, id: ATOM]; <> DiscardBuffer: PROC [context: Context, id: ATOM]; <> <> invert: READONLY SpecialColor; MakeStipple: PROC [stipple: WORD, xor: BOOL ¬ FALSE] RETURNS [SpecialColor]; MaskBits: PROC [context: Context, base: LONG POINTER, wordsPerLine: NAT, sMin, fMin, sSize, fSize: NAT, tx, ty: INTEGER ¬ 0]; <> <<[base, wordsPerLine, sMin, fMin, sSize, fSize] describes a raw raster;>> <> <<[tx, ty] is the position in client coordinates at which to place the upper left corner of the raster>> <<>> DrawBits: PROC [context: Context, base: LONG POINTER, wordsPerLine: NAT, sMin, fMin, sSize, fSize: NAT, tx, ty: INTEGER ¬ 0]; <> ClientFromView: PROC [context: Context, p: VEC] RETURNS [VEC] ~ INLINE {RETURN [TransformPoint[context: context, p: p, from: view, to: client]]}; ViewFromClient: PROC [context: Context, p: VEC] RETURNS [VEC] ~ INLINE {RETURN [TransformPoint[context: context, p: p, from: client, to: view]]}; ViewFromDevice: PROC [context: Context, p: VEC] RETURNS [VEC] ~ INLINE {RETURN [TransformPoint[context: context, p: p, from: device, to: view]]}; DeviceFromView: PROC [context: Context, p: VEC] RETURNS [VEC] ~ INLINE {RETURN [TransformPoint[context: context, p: p, from: view, to: device]]}; ClientFromDevice: PROC [context: Context, p: VEC] RETURNS [VEC] ~ INLINE {RETURN [TransformPoint[context: context, p: p, from: device, to: client]]}; DeviceFromClient: PROC [context: Context, p: VEC] RETURNS [VEC] ~ INLINE {RETURN [TransformPoint[context: context, p: p, from: client, to: device]]}; END.