DIRECTORY BitMap3d, Graphics, GraphicsOps, ViewerClasses; BitMap3dImpl: PROGRAM IMPORTS Graphics, GraphicsOps EXPORTS BitMap3d = BEGIN BitmapRef: TYPE = REF READONLY BitmapRep; BitmapRep: TYPE = GraphicsOps.BitmapRep; Viewer: TYPE = ViewerClasses.Viewer; AlternateDisplayContext: TYPE = REF AlternateDisplayContextObj; AlternateDisplayContextObj: TYPE = BitMap3d.AlternateDisplayContextObj; DrawAltDisplayContext: PUBLIC PROC [dc: Graphics.Context, altDC: AlternateDisplayContext] = { Graphics.SetCP[dc,0,0]; GraphicsOps.DrawBitmap[ dc, altDC.bitMap, altDC.bitMap.width, altDC.bitMap.height, 0,0, 0, altDC.bitMap.height ]; }; GetAltDisplayContext: PUBLIC PROC RETURNS [altDC: AlternateDisplayContext] = { bitMap: BitmapRef _ GraphicsOps.NewBitmap[10, 10]; dc: Graphics.Context _ GraphicsOps.NewContextFromBitmap[bitMap]; altDC _ NEW[AlternateDisplayContextObj _ [ dc: dc, bitMap: bitMap]]; }; ResizeBitMap: PUBLIC PROC [viewer: Viewer, altDC: AlternateDisplayContext] = { newBitMap: BitmapRef _ GraphicsOps.NewBitmap[viewer.cw, viewer.ch]; GraphicsOps.SetTargetBitmap[altDC.dc, newBitMap]; altDC.bitMap _ newBitMap; }; Erase: PUBLIC PROC [altDC: AlternateDisplayContext] = { mark: Graphics.Mark _ Graphics.Save[altDC.dc]; Graphics.SetColor[altDC.dc, Graphics.white]; Graphics.DrawBox[altDC.dc,Graphics.GetBounds[altDC.dc]]; Graphics.SetColor[altDC.dc, Graphics.white]; Graphics.Restore[altDC.dc,mark]; }; -- end of Erase END. File: BitMap3dImpl.mesa Last edited by Bier on December 18, 1982 1:41 am Copyright c 1984 by Xerox Corporation. All rights reserved. Author: Eric Allan Bier on August 19, 1984 3:22:57 pm PDT Contents: calls to GraphicsExtra.mesa to double buffer graphics Κ– "Mesa" style˜Iheadšœ™Iprocšœ0™0Jšœ Οmœ1™