DIRECTORY BitMap3d, Imager, ImagerBackdoor, ViewerClasses; BitMap3dImpl: PROGRAM IMPORTS Imager, ImagerBackdoor EXPORTS BitMap3d = BEGIN Bitmap: TYPE = ImagerBackdoor.Bitmap; Viewer: TYPE = ViewerClasses.Viewer; AlternateDisplayContext: TYPE = REF AlternateDisplayContextObj; AlternateDisplayContextObj: TYPE = BitMap3d.AlternateDisplayContextObj; DrawAltDisplayContext: PUBLIC PROC [dc: Imager.Context, altDC: AlternateDisplayContext] = { Imager.SetXY[dc,[0,0]]; ImagerBackdoor.DrawBits[dc, altDC.bitMap.base, altDC.bitMap.wordsPerLine, 0, 0, altDC.bitMap.height, altDC.bitMap.width, 0, altDC.bitMap.height]; }; GetAltDisplayContext: PUBLIC PROC RETURNS [altDC: AlternateDisplayContext] = { bitMap: Bitmap _ ImagerBackdoor.NewBitmap[10, 10]; dc: Imager.Context _ ImagerBackdoor.BitmapContext[bitMap]; altDC _ NEW[AlternateDisplayContextObj _ [ dc: dc, bitMap: bitMap]]; }; ResizeBitMap: PUBLIC PROC [viewer: Viewer, altDC: AlternateDisplayContext] = { newBitMap: Bitmap _ ImagerBackdoor.NewBitmap[viewer.cw, viewer.ch]; dc: Imager.Context _ ImagerBackdoor.BitmapContext[newBitMap]; altDC.bitMap _ newBitMap; altDC.dc _ dc; }; Erase: PUBLIC PROC [altDC: AlternateDisplayContext] = { EraseAux: SAFE PROC = TRUSTED { Imager.SetColor[altDC.dc, Imager.white]; Imager.MaskRectangle[altDC.dc, ImagerBackdoor.GetBounds[altDC.dc]]; Imager.SetColor[altDC.dc, Imager.white]; }; Imager.DoSaveAll[altDC.dc, EraseAux]; }; -- 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 1, 1985 7:12:48 pm PDT Contents: calls to GraphicsExtra.mesa to double buffer graphics Κβ– "Mesa" style˜Iheadšœ™Iprocšœ0™0Jšœ Οmœ1™