<> <> <> <> DIRECTORY ImagerSample USING [RasterSampleMap], Rope USING [ ROPE ], G3dRender, ThreeDBasics USING [ Context, ContextProc, ImagerProc, Pair, PairSequence, Patch, PatchProc, Pixel, Quad, RealSequence, RGB, ShadingClass, SpotProc, Triple, VertexInfo ]; RenderWithPixels: CEDAR DEFINITIONS ~ BEGIN <> ROPE: TYPE ~ Rope.ROPE; Context: TYPE ~ G3dRender.Context; ContextProc: TYPE ~ ThreeDBasics.ContextProc; ShadingClass: TYPE ~ ThreeDBasics.ShadingClass; VertexInfo: TYPE ~ ThreeDBasics.VertexInfo; Patch: TYPE ~ ThreeDBasics.Patch; PatchProc: TYPE ~ ThreeDBasics.PatchProc; Triple: TYPE ~ ThreeDBasics.Triple; Quad: TYPE ~ ThreeDBasics.Quad; RGB: TYPE ~ ThreeDBasics.RGB; Pair: TYPE ~ ThreeDBasics.Pair; PairSequence: TYPE ~ ThreeDBasics.PairSequence; RealSequence: TYPE ~ ThreeDBasics.RealSequence; RasterSampleMapArray: TYPE ~ ARRAY [0..5) OF ImagerSample.RasterSampleMap; Pixel: TYPE ~ ThreeDBasics.Pixel; RopeDesc: TYPE ~ RECORD[rope: ROPE, position: Pair, color: Pixel, size: REAL, font: ROPE]; LerpVtx: TYPE = RECORD [ x, y: REAL, val: REF ThreeDBasics.RealSequence ]; LerpVtxSequence: TYPE ~ RECORD [ length: NAT, s: SEQUENCE maxLength: NAT OF REF LerpVtx ]; FancyPatch: TYPE = RECORD [ recurseLevel: NAT _ 0, shadingClass: REF ShadingClass, -- procs for texturing, etc. vtx: SEQUENCE length: NAT OF LerpVtx ]; <> AllocatePixelMemory: ContextProc; <> <<>> GetContext: PROC [type: ATOM, width, height: NAT] RETURNS[ctx: REF Context]; <> DepthBuffering: PROC[ context: Context, on: BOOLEAN _ TRUE ]; <> AntiAliasing: PROC[ context: Context, on: BOOLEAN _ TRUE ]; <> NormalBuffering: PROC[ context: Context, on: BOOLEAN _ TRUE ]; <> FillInBackGround: ContextProc; <> FillInConstantBackGround: PROC[context: Context, bkgrdClr: RGB, cvrge: BYTE _ 255]; <> <<>> <> BufferRendering: PROC[ context: Context, on: BOOLEAN _ TRUE ]; <> MakeFrame: ContextProc; <> <> ShadeSpot: ThreeDBasics.SpotProc; <> Draw2DLine: PROC[context: Context, p1, p2: Pair, color: Pixel]; <> Draw2DPoly: PROC[context: Context, poly: REF PairSequence, color: Pixel]; <> DrawRope: PROC[context: Context, rope: Rope.ROPE, position: Pair, color: Pixel _ [255,255,128,0,0] , size: REAL _ 20, font: Rope.ROPE _ NIL]; <> DoRope: ThreeDBasics.ImagerProc; <> <<>> <> PolygonTiler: PatchProc; <> <> << for Anti-aliasing, texture, etc.>> FancyTiler: PROC[context: REF ThreeDBasics.Context, poly: REF Patch]; <> RealFancyTiler: PROC[context: REF ThreeDBasics.Context, poly: REF FancyPatch]; END.