(******************************************************************************) (* GRPORTS.DEF - MetaWINDOW 'Port' and 'Bitmap' Definitions *) (* *) (* Transcribed form GPORTS.H by Metagraphics Software Corporation *) (* *) (* PSW 06/28/91 08:30am *) (******************************************************************************) (*# module(implementation=>off, init_code=>off) *) DEFINITION MODULE GrPorts; (* * Graphix * Release 3.7 * (c) Copyright 1986-1992 PMI * Green Bay, Wisconsin * (414) 468-6040 * All rights reserved * *) (******************************************************************************) (* WARNING - USE ONLY WITH LARGE MEMORY MODEL CONFIGURATIONS *) (* If you use "metaPort" or "bitmap" data structures within your program, you *) (* must operate with either a "data" or "large" memory model configuration. *) (* The pointer variables used within these structures must be 32 bit (4 byte, *) (* far) pointers. The "small" and "program" memory models use only 16 bit (2 *) (* byte, near) pointers and will not allocate these data structures properly. *) (******************************************************************************) FROM GrFonts IMPORT adsFont; FROM GrConst IMPORT rect, point; CONST (*** Bitmap Device Type (devType) Definitions ***) devSTD = 0; (* Standard memory mapped bitmap *) devEGA = 1; (* IBM EGA/VGA display bitmap *) devND1 = 40H; (* NDI Genesis-1024 bitmap *) devND2 = 41H; (* NDI Genesis-1280 bitmap *) devHP1 = 42H; (* Hewlett Packard1 *) devEMS = 80H; (* EMS expanded memory bitmap *) devWYS = 81H; (* Wyse 1280x800 display bitmap *) devSIG = 82H; (* Sigma Design Color-400 bitmap *) devLASVU = 83H; (* Sigma Design LaserView *) devVISTA = 84H; (* Cornerstone VISTA 1600 *) devREV512 = 85H; (* Number Nine Revolution 512x484 *) devDUALPG = 86H; (* Cornerstone DualPage System *) devTSENG = 87H; (* Tseng Labs chip set *) devDUALGRAY = 88H; (* Cornerstone, extended *) TYPE Proc = PROCEDURE (): INTEGER; adsMem = POINTER TO BYTE; devProc = RECORD (* Device Procedure List Structure *) procSign: ARRAY[0..7] OF CHAR; (* devProc signature "devProc" *) procMeta: ARRAY[0..5] OF Proc; (* optimization pointers *) procDev: ARRAY[0..255] OF Proc;(* device procedure pointers *) END; map = RECORD (* "rowTable" Raster Line Pointers *) rowTable: ARRAY [0..1280] OF adsMem; (* Table of row pointers *) END; rowTblPtr = POINTER TO map; bitmap = RECORD (* "bitmap" Data Structure *) devClass: INTEGER; (* Device class *) devType: INTEGER; (* Device type *) devProcs: POINTER TO devProc; (* Ptr to device procedure list *) rowBytes: INTEGER; (* Bytes per scan line *) pixWidth: INTEGER; (* Pixels horizontal *) pixHeight: INTEGER; (* Pixels vertical *) pixResX: INTEGER; (* Pixels per inch horzontally *) pixResY: INTEGER; (* Pixels per inch vertically *) pixBits: INTEGER; (* Color bits per pixel *) pixPlanes: INTEGER; (* Color planes per pixel *) mapTable: ARRAY [0..23] OF rowTblPtr; (* Pointers to rowTable(s) *) mapActive: INTEGER; (* Active logical page *) mapPages: INTEGER; (* Number of mapList entries,1-4 *) mapList: ARRAY [0..3] OF INTEGER; (* List of logical pages loaded *) mapRsvd: ARRAY [0..5] OF INTEGER; (* (reserved for future use) *) mapSegment: INTEGER; (* Map segment *) mapHandle: INTEGER; (* Map handle *) mapManager: Proc; (* Pointer to paging manager *) END; adsBMap = POINTER TO bitmap; metaPort = RECORD (* "metaPort" Data Structure *) portBMap: adsBMap; (* Pointer to "bitmap" record *) portRect: rect; (* 'Local' coordinate port bounds *) portOrgn: point; (* 'Global' origin of portRect *) portVirt: rect; (* 'Virtual' port bounds *) portFlgs: INTEGER; (* Port Flags *) portClip: rect; (* 'Local' clipping rectangle *) portRgn: POINTER TO INTEGER; (* (reserved) *) bkPat: INTEGER; (* Background pattern index *) bkColor: LONGINT; (* Background color *) pnColor: LONGINT; (* Pen color *) pnLoc: point; (* Pen location *) pnSize: point; (* Pen size *) pnMode: INTEGER; (* Pen mode (rasterOp) *) pnPat: INTEGER; (* Pen pattern index *) pnCap: INTEGER; (* Pen end-cap style *) pnJoin: INTEGER; (* Line join style *) pnDash: INTEGER; (* Line dash style *) pnOffset: INTEGER; (* Dash sequence offset *) pnLevel: INTEGER; (* Pen visibility level *) txFont: adsFont; (* Pointer to current font record *) txFace: INTEGER; (* Text facing flags *) txMode: INTEGER; (* Text mode (rasterOp) *) txUnder: INTEGER; (* Text underline position *) txScore: INTEGER; (* Text underline scoring *) txPath: INTEGER; (* Text path *) txAlign: point; (* Text alignment *) txAngle: INTEGER; (* Text angle (stroked) *) txSize: point; (* Text size (stroked) *) txSlant: INTEGER; (* Text slant (stroked) *) txExtra: INTEGER; (* Text justify bits *) txSpace: INTEGER; (* Space justify bits *) mkType: INTEGER; (* Marker type index *) mkSize: point; (* Marker size *) mkAngle: INTEGER; (* Marker angle *) spare: ARRAY [0..24] OF INTEGER; (* (spares) *) END; adsPort = POINTER TO metaPort; pusharea = RECORD (* PUSHGRAFIX/POPGRAFIX savearea *) saveArea: ARRAY [0..155] OF BYTE; END; (*T MW_Ver4 * grafMap = bitmap; grafMapp = bitmap; portMap = portBMap; grafPort = metaPort; pixBytes = rowBytes; portFlags = portFlgs; rowMap = map; E MW_Ver4 *) END GrPorts.