mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-12-12 20:29:12 +00:00
613 lines
32 KiB
R
613 lines
32 KiB
R
// Version: 2.26
|
||
// Created: Wednesday, July 12, 1989 at 1:35:29 PM
|
||
//
|
||
// File: Quickdraw.a
|
||
//
|
||
// Assembler Interface to the Macintosh Libraries
|
||
// Copyright Apple Computer, Inc. 1984-1992
|
||
// All Rights Reserved
|
||
//
|
||
// Change History (most recent first):
|
||
//
|
||
// <SM3> 7/7/92 CSS Roll in the following changes from reality and rename this
|
||
// file from QuickEqu.a to QuickDraw.a per <23>.
|
||
// <25> 7/6/92 KON No longer need bits 5 and 6 in gdFlags. Move bit 4 to bit 6.
|
||
// <24> 6/30/92 KON Add three new gdFlags: Bit 4 hasAuxMenuBar, Bit 5
|
||
// pixelsAreSlewSlow, and Bit 6 whiteIsOff.
|
||
// <23> 6/30/92 DCL This file is the replacement for the now obsolete QuickEqu.a.
|
||
// Changed the 'including' name to match the new file name.
|
||
// <SM2> 6/4/92 KW (fau,P2) Added XColorSpec to support the alpha channel on
|
||
// Cyclone. KW commented out value,rgb to prevent warning
|
||
// <22> 6/14/91 JL Checked in official MPW 3.2ƒ version. Moved the color manager
|
||
// equates; they were in the middle of GrafPort.
|
||
// <21> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to
|
||
// all uppercase (for security reasons)
|
||
// <20> 1/20/91 JT Removed the change to pnLocFixed since Peter was unhappy about
|
||
// it. This fix will have to wait for some future release.
|
||
// <19> 1/18/91 JT Expand pnLocFixed into a full fixed-point number in the
|
||
// QuickDraw globals area.
|
||
// <18> 12/14/90 KON Change name of PICT2Header to OpenCPicParams.[smc]
|
||
// <17> 9/24/90 KON Fix Pict2Header record.
|
||
// <16> 9/15/90 KON Added PICT2Header record.
|
||
// <15> 9/14/90 csd Added equates for the DeviceLoop call.
|
||
// <14> 8/26/90 PKE Deleted old names QDSmgrSlop and QDSmgrCharExtra.
|
||
// <13> 8/23/90 PKE (per JT) Renamed QDSmgrSlop and QDSmgrCharExtra to qdRunSlop and
|
||
// qdChExtra. Keep old names too until we can update all relevant
|
||
// sources.
|
||
// <12> 8/17/90 dvb Change grayishTextCopy to grayishTextOr
|
||
// <11> 8/2/90 PKE Claim two previously unused longs in fontData globals for Script
|
||
// Mgr charExtra and slop.
|
||
// <10> 7/17/90 DVB Add "GrayishTextCopy" mode.
|
||
// <9> 5/30/90 JT Claimed the first word of the fontData globals for the
|
||
// horizontal pen fraction.
|
||
// <8> 5/15/90 KON Add equates for RGBDirect, baseAddr32, ditherCopy.
|
||
// <4> 2/2/90 BAL Moved 32-bit addressing flag and Burst mode flag down one in bit
|
||
// ordering since monitors is already using bit 9 for a swapped out
|
||
// debugger screen.
|
||
// <3> 1/30/90 DAF Added GDFlag bit flag equates for 32-bit addressable frame
|
||
// buffers and block transfer capabilities.
|
||
// <2> 1/11/90 DVB Add the equate "ctFlags", which is the correct name of the
|
||
// obsolete "transIndex" field of a color table.
|
||
// <1> 12/17/89 CCH Adding for the first time into BBS.
|
||
// <1.1> 6/10/89 CEL Moved Private.a QuickDraw Equates into proper QuickDraw private
|
||
// file (colorequ.a), got rid of QuickDraw nFiles dependencies and
|
||
// fixed up necessary files…
|
||
// <1.0> 11/9/88 CCH Adding to EASE.
|
||
// <•1.1> 9/14/88 CCH Updated EASE with the current rev of this file.
|
||
// 8/25/87 KLH MatchRec restored, it is used.
|
||
// 7/7/87 KLH MatchRec removed, no longer used.
|
||
// 7/2/87 KLH mainScrn & scrnActive changed to mainScreen & screenActive
|
||
// 5/8/87 KLH protect changed to protectBit
|
||
// 3/16/87 KLH pmNewFlag is same offset as pmRowBytes in PixMap record.
|
||
// <C621> 1/13/87 DAF Moved BadEntry equate in for colormgr and renamed it
|
||
// invalColReq.
|
||
// <C533> 12/15/86 DAF added gamma table format
|
||
// <C387> 11/9/86 DAF added request list structure
|
||
// 9/23/86 NSJ new this date
|
||
//
|
||
// To Do:
|
||
//__________________________________________________________________________________________________
|
||
|
||
//EASE$$$ READ ONLY COPY of file “QuickEqu.a”
|
||
// 1.1 CEL 06/10/1989 Moved Private.a QuickDraw Equates into proper QuickDraw
|
||
// private file (colorequ.a), got rid of QuickDraw nFiles dependencies
|
||
// and fixed up necessary files…
|
||
// 1.0 CCH 11/ 9/1988 Adding to EASE.
|
||
// END EASE MODIFICATION HISTORY
|
||
//•1.1 CCH 9/14/1988 Updated EASE with the current rev of this file.
|
||
//
|
||
// Modification history
|
||
//
|
||
// <23sep86> NSJ new this date
|
||
// <C387/09Nov86> DAF added request list structure
|
||
// <C533/15Dec86> DAF added gamma table format
|
||
// <C621/13Jan87> DAF Moved BadEntry equate in for colormgr and renamed it invalColReq.
|
||
// 16 Mar 87 KLH pmNewFlag is same offset as pmRowBytes in PixMap record.
|
||
// 8 May 87 KLH protect changed to protectBit
|
||
// 2 Jul 87 KLH mainScrn & scrnActive changed to mainScreen & screenActive
|
||
// to agree w/ screenDevice
|
||
// *** MPW 2.0 ***
|
||
// 7 Jul 87 KLH MatchRec removed, no longer used.
|
||
// 25 Aug 87 KLH MatchRec restored, it is used.
|
||
//--------------------------------------------------------------------
|
||
|
||
#ifndef __INCLUDINGQUICKDRAW__
|
||
#define __INCLUDINGQUICKDRAW__ 1
|
||
|
||
// Transfer modes
|
||
|
||
#define srcCopy 0
|
||
#define srcOr 1
|
||
#define srcXor 2
|
||
#define srcBic 3
|
||
#define notSrcCopy 4
|
||
#define notSrcOr 5
|
||
#define notSrcXor 6
|
||
#define notSrcBic 7
|
||
#define patCopy 8
|
||
#define patOr 9
|
||
#define patXor 10
|
||
#define patBic 11
|
||
#define notPatCopy 12
|
||
#define notPatOr 13
|
||
#define notPatXor 14
|
||
#define notPatBic 15
|
||
|
||
// Arithmetic transfer modes
|
||
#define blend 32
|
||
#define addPin 33
|
||
#define addOver 34
|
||
#define subPin 35
|
||
#define adMax 37
|
||
#define subOver 38
|
||
#define adMin 39
|
||
|
||
// Special text mode
|
||
#define grayishTextOr 49
|
||
|
||
#define ditherCopy 64 //promote source to 32-bit and then dither down
|
||
|
||
// Flags passed to DeviceLoop
|
||
|
||
#define singleDevicesBit 0
|
||
#define dontMatchSeedsBit 1
|
||
#define allDevicesBit 2
|
||
|
||
#define singleDevices 1
|
||
#define dontMatchSeeds 2
|
||
#define allDevices 4
|
||
|
||
// Definitions for Font Style Bits (right to left)
|
||
|
||
#define boldBit 0
|
||
|
||
// Transparent mode constant
|
||
#define transparent 36
|
||
#define italicBit 1
|
||
#define ulineBit 2
|
||
#define outlineBit 3
|
||
#define shadowBit 4
|
||
#define condenseBit 5
|
||
#define extendBit 6
|
||
|
||
|
||
// FontInfo record
|
||
|
||
#define ascent 0 // ascent [word]
|
||
#define descent 2 // descent [word]
|
||
#define widMax 4 // maximum width [word]
|
||
#define leading 6 // leading [word]
|
||
|
||
// Rectangle structure
|
||
|
||
#define topLeft 0 // upper left corner [point]
|
||
#define botRight 4 // lower right corner [point]
|
||
#define top 0 // top coordinate [word]
|
||
#define left 2 // left coordinate [word]
|
||
#define bottom 4 // bottom coordinate [word]
|
||
#define right 6 // right coordinate [word]
|
||
|
||
// Bitmap Structure
|
||
|
||
#define baseAddr 0 // bitmap base address [pointer]
|
||
#define rowBytes 4 // row bytes (must be even) [word]
|
||
#define bounds 6 // bounding box [rectangle]
|
||
#define bitmapRec 14 // size of a bitmap
|
||
|
||
// Cursor Structure
|
||
|
||
//#define data 0 // visible bits [32 bytes]
|
||
#define mask $20 // mask bits [32 bytes]
|
||
#define hotSpot $40 // relative origin [point]
|
||
#define cursRec 68 // size of a cursor
|
||
|
||
// PenState record
|
||
|
||
#define psLoc 0 // pen location [point]
|
||
#define psSize 4 // pen size [point]
|
||
#define psMode 8 // pen mode [word]
|
||
#define psPat 10 // pen [pattern]
|
||
#define psRec 18 // size of pen state
|
||
|
||
// Polygon record
|
||
|
||
#define polySize 0 // total bytes [word]
|
||
#define polyBBox 2 // bounding box [rectangle]
|
||
#define polyPoints 10 // vertices [Points]
|
||
|
||
// Region Structure
|
||
|
||
#define rgnSize 0 // total bytes [word]
|
||
#define rgnBBox 2 // bounding box [rectangle]
|
||
#define rgnData 10 // region data [array]
|
||
|
||
// Picture Structure
|
||
|
||
#define picSize 0 // total bytes [word]
|
||
#define picFrame 2 // bounding box [rectangle]
|
||
#define picData 10 // picture byte codes [array]
|
||
|
||
#define OpenCPicParams 0
|
||
#define OpenCPicParams_srcRect 0
|
||
#define OpenCPicParams_hRes 8
|
||
#define OpenCPicParams_vRes 12
|
||
#define OpenCPicParams_version 16
|
||
#define OpenCPicParams_reserved1 18
|
||
#define OpenCPicParams_reserved2 20
|
||
// endr OpenCPicParams
|
||
|
||
// QDProcs structure
|
||
|
||
#define textProc 0 // [pointer]
|
||
#define lineProc 4 // [pointer]
|
||
#define rectProc 8 // [pointer]
|
||
#define rRectProc $C // [pointer]
|
||
#define ovalProc $10 // [pointer]
|
||
#define arcProc $14 // [pointer]
|
||
#define polyProc $18 // [pointer]
|
||
#define rgnProc $1C // [pointer]
|
||
#define bitsProc $20 // [pointer]
|
||
#define commentProc $24 // [pointer]
|
||
#define txMeasProc $28 // [pointer]
|
||
#define getPicProc $2C // [pointer]
|
||
#define putPicProc $30 // [pointer]
|
||
#define qdProcsRec $34 // size of QDProcs record
|
||
|
||
// GrafPort Structure
|
||
|
||
#define device $0 // device code [word]
|
||
#define portBits $2 // port's bitmap [bitmap]
|
||
#define portBounds $8 // bounding box of bitmap [rect]
|
||
#define portRect $10 // port's rectangle [rect]
|
||
#define visRgn $18 // visible region [handle]
|
||
#define clipRgn $1C // clipping region [handle]
|
||
#define bkPat $20 // background [pattern]
|
||
#define fillPat $28 // fill [pattern]
|
||
#define pnLoc $30 // pen location [point]
|
||
#define pnSize $34 // pen size [point]
|
||
#define pnMode $38 // pen mode [word]
|
||
#define pnPat $3A // pen [pattern]
|
||
#define pnVis $42 // pen visible [word]
|
||
#define txFont $44 // text font [word]
|
||
#define txFace $46 // text face [word]
|
||
#define txMode $48 // text mode [word]
|
||
#define txSize $4A // text size [word]
|
||
#define spExtra $4C // space extra [fixed]
|
||
#define fgColor $50 // foreground color mask [long]
|
||
#define bkColor $54 // background color mask [long]
|
||
#define colrBit $58 // color bit [word]
|
||
#define patStretch $5A // pattern stretch [word]
|
||
#define picSave $5C // picture being saved [handle]
|
||
#define rgnSave $60 // region being saved [handle]
|
||
#define polySave $64 // polygon being saved [handle]
|
||
#define grafProcs $68 // QDProcs array [pointer]
|
||
#define portRec $6C // size of grafport
|
||
|
||
|
||
// QuickDraw Global Variables
|
||
|
||
|
||
#define GrafGlobals 0 // A5 offset to globptr
|
||
#define thePort 0 //GrafPtr
|
||
#define white (thePort-8) //Pattern
|
||
#define black (white-8) //Pattern
|
||
#define gray (black-8) //Pattern
|
||
#define ltGray (gray-8) //Pattern
|
||
#define dkGray (ltGray-8) //Pattern
|
||
#define arrow (dkGray-68) //Cursor
|
||
#define screenBits (arrow-14) //BitMap
|
||
#define randSeed (screenBits-4) //LONGINT
|
||
|
||
// color manager equates
|
||
|
||
// RGBColor structure
|
||
|
||
#define red $0 //red channel intensity [short]
|
||
#define green $2 //green channel intensity[short]
|
||
#define blue $4 //blue channel intensity [short]
|
||
#define rgbColor $6 //size of record
|
||
|
||
// ColorSpec structure
|
||
|
||
#define value $0 //value field [short]
|
||
#define rgb $2 //rgb values [rgbColor]
|
||
#define colorSpecSize $8 //size of record
|
||
|
||
// XColorSpec structure value,rgb commented out to prevent <SM2>
|
||
//warning <SM2>
|
||
|
||
//value EQU $0 ;value field [short] <SM2>
|
||
//rgb EQU $2 ;rgb values [rgbColor] <SM2>
|
||
#define alpha $8
|
||
#define xColorSpecSize $a //size of record <SM2>
|
||
|
||
// MatchRec structure
|
||
|
||
//red EQU $0 ;defined in RGBColor
|
||
//green EQU $2 ;defined in RGBColor
|
||
//blue EQU $4 ;defined in RGBColor
|
||
#define matchData $6 // [long]
|
||
#define matchRecSize $A
|
||
|
||
// Color Separation
|
||
|
||
#define normalBit 0 // normal screen mapping
|
||
#define inverseBit 1 // inverse screen mapping
|
||
#define redBit 4 // RGB additive mapping
|
||
#define greenBit 3 // for photos from screen
|
||
#define blueBit 2
|
||
#define cyanBit 8 // CMYBk subtractive mapping
|
||
#define yellowBit 6
|
||
#define magentaBit 7 // for ink jet printer
|
||
#define blackBit 5
|
||
#define blackColor 33
|
||
#define whiteColor 30
|
||
#define redColor 205
|
||
#define greenColor 341
|
||
#define blueColor 409
|
||
#define cyanColor 273
|
||
#define magentaColor 137
|
||
#define yellowColor 69
|
||
|
||
|
||
// Standard Picture Comments
|
||
|
||
#define picLParen 0
|
||
#define picRParen 1
|
||
|
||
// QuickDraw verbs
|
||
|
||
#define frame 0
|
||
#define paint 1
|
||
#define erase 2
|
||
#define invert 3
|
||
#define fill 4
|
||
|
||
// QuickDraw private global variables
|
||
|
||
#define wideOpen (randSeed-4) //RgnHandle
|
||
#define wideMaster (wideOpen-4) //RgnPtr
|
||
#define wideData (wideMaster-10) //Fake Region
|
||
#define rgnBuf (wideData-4) //PointsHandle
|
||
#define rgnIndex (rgnBuf-2) //INTEGER
|
||
#define rgnMax (rgnIndex-2) //INTEGER
|
||
#define playPic (rgnMax-4) //Long
|
||
#define qdSpare0 (playPic-2) //unused word
|
||
#define thePoly (qdSpare0-4) //POLYHANDLE
|
||
#define polyMax (thePoly-2) //INTEGER
|
||
#define patAlign (polyMax-4) //Point
|
||
#define fontAdj (patAlign-4) //Fixed Point
|
||
#define fontPtr (fontAdj-4) //long, ^FMOutput record
|
||
#define playIndex (fontPtr-4) //long
|
||
#define pnLocFixed (playIndex-2) //word, horizontal pen fraction <9>
|
||
#define qdRunSlop (pnLocFixed-4) //fixed point, Script Mgr run slop <11><13>
|
||
#define qdChExtra (qdRunSlop-4) //fixed point, Script Mgr char extra <11><13>
|
||
#define fontData (qdChExtra-12) //unused words <9><11><13>
|
||
#define lastGrafGlob (fontData)
|
||
#define grafSize (4-lastGrafGlob) //total size in bytes
|
||
|
||
// A record version of the Quickdraw globals
|
||
// It is here rather than with the complementary equates because it needs other equates
|
||
// ...(bitmapRec, grafSize, cursRec)
|
||
|
||
|
||
//*********** THESE VALUES ARE WRONG. DON'T USE ///
|
||
//#define QDGlobals 0,DECREMENT
|
||
//#define QDGlobals_thePort 0
|
||
//#define QDGlobals_white 4
|
||
//#define QDGlobals_black 12
|
||
//#define QDGlobals_gray 20
|
||
//#define QDGlobals_ltGray 28
|
||
//#define QDGlobals_dkGray 36
|
||
//***CONFUSED***:arrow DS.B cursRec
|
||
//***CONFUSED***:screenBits DS.B bitmapRec
|
||
//#define QDGlobals_randSeed 44
|
||
//***CONFUSED***: ORG -grafSize
|
||
// endr QDGlobals
|
||
//*********************************************
|
||
|
||
//************** FROM HERE TO THE ENDIF IS ALL THE NEW STUFF FOR COLOR QUICKDRAW *************
|
||
|
||
#define hiliteBit 7 // flag bit in HiliteMode (lowMem flag)
|
||
|
||
// Equates for resource ID's
|
||
|
||
#define defQDColors 127 // resource ID of clut for default QDColors
|
||
|
||
//
|
||
// PixMap field offsets
|
||
|
||
#define pmBaseAddr $0 // [long]
|
||
#define pmNewFlag $4 // [1 bit] upper bit of rowbytes is flag
|
||
#define pmRowBytes $4 // [word]
|
||
#define pmBounds $6 // [rect]
|
||
#define pmVersion $E // [word] pixMap version number
|
||
#define pmPackType $10 // [word] defines packing format
|
||
#define pmPackSize $12 // [long] size of pixel data
|
||
#define pmHRes $16 // [fixed] h. resolution (ppi)
|
||
#define pmVRes $1A // [fixed] v. resolution (ppi)
|
||
#define pmPixelType $1E // [word] defines pixel type
|
||
#define pmPixelSize $20 // [word] # bits in pixel
|
||
#define pmCmpCount $22 // [word] # components in pixel
|
||
#define pmCmpSize $24 // [word] # bits per field
|
||
#define pmPlaneBytes $26 // [long] offset to next plane
|
||
#define pmTable $2A // [long] color map
|
||
#define pmReserved $2E // [long] MUST BE 0
|
||
#define pmRec $32 // size of pixMap record
|
||
|
||
// pixel types
|
||
|
||
#define chunky 0
|
||
#define chunkyPlanar 1
|
||
#define planar 2
|
||
#define RGBDirect 16
|
||
|
||
//
|
||
// pmVersion values
|
||
|
||
#define baseAddr32 4 // pixmap base address is 32-bit address
|
||
|
||
// PixPat field offsets
|
||
//
|
||
|
||
#define patType $0 // [word] type of pattern
|
||
#define patMap $2 // [long] handle to pixmap
|
||
#define patData $6 // [long] handle to data
|
||
#define patXData $A // [long] handle to expanded pattern data
|
||
#define patXValid $E // [word] flags whether expanded pattern valid
|
||
#define patXMap $10 // [long] handle to expanded pattern data
|
||
#define pat1Data $14 // [8 bytes] old-style pattern/RGB color
|
||
#define ppRec $1C // size of pixPat record
|
||
|
||
|
||
// Pattern types
|
||
//
|
||
|
||
#define oldPat 0 // foreground/background pattern
|
||
#define newPat 1 // self-contained color pattern
|
||
#define ditherPat 2 // rgb value to be dithered
|
||
#define oldCrsrPat $8000 // old-style cursor
|
||
#define cCrsrPat $8001 // new-style cursor
|
||
|
||
|
||
// additional offsets in a color GrafPort
|
||
//
|
||
|
||
#define portPixMap (portBits) // [long] pixelMap handle
|
||
#define portVersion (portPixMap+4) // [word] port version number
|
||
#define grafVars (portVersion+2) // [long] handle to more fields
|
||
#define chExtra (grafVars+4) // [word] character extra
|
||
#define pnLocHFrac (chExtra+2) // [word] pen fraction
|
||
#define bkPixPat (bkPat) // [long] handle to bk pattern
|
||
#define rgbFgColor (bkPixPat+4) // [6 bytes] RGB components of fg color
|
||
#define rgbBkColor (rgbFgColor+6) // [6 bytes] RGB components of bk color
|
||
#define pnPixPat (pnPat) // [long] handle to pen's pattern
|
||
#define fillPixPat (pnPixPat+4) // [long] handle to fill pattern
|
||
|
||
|
||
// GDevice field offsets
|
||
//
|
||
|
||
#define gdRefNum $0 // [word] unitNum of driver
|
||
#define gdID $2 // [word] client ID for search procs
|
||
#define gdType $4 // [word] fixed/CLUT/direct
|
||
#define gdITable $6 // [long] handle to inverse table
|
||
#define gdResPref $A // [word] preferred resolution for inverse tables
|
||
#define gdSearchProc $C // [long] search proc (list?) pointer
|
||
#define gdCompProc $10 // [long] complement proc (list?) pointer
|
||
#define gdFlags $14 // [word] grafDevice flags word
|
||
#define gdPMap $16 // [long] handle to pixMap describing device
|
||
#define gdRefCon $1A // [long] reference value
|
||
#define gdNextGD $1E // [long] handle of next gDevice
|
||
#define gdRect $22 // [rect] device's bounds in global coordinates
|
||
#define gdMode $2A // [long] device's current mode
|
||
#define gdCCBytes $2E // [word] depth of expanded cursor data
|
||
#define gdCCDepth $30 // [word] depth of expanded cursor data
|
||
#define gdCCXData $32 // [long] handle to cursor's expanded data
|
||
#define gdCCXMask $36 // [long] handle to cursor's expanded mask
|
||
#define gdReserved $3A // [long] MUST BE 0
|
||
#define gdRec $3E // size of GrafDevice record
|
||
|
||
// VALUES FOR GDType
|
||
|
||
#define clutType 0 // 0 if lookup table
|
||
#define fixedType 1 // 1 if fixed table
|
||
#define directType 2 // 2 if direct values
|
||
|
||
// BIT ASSIGNMENTS FOR GDFlags
|
||
|
||
#define gdDevType 0 // 0 = monochrome; 1 = color
|
||
#define hasAuxMenuBar 06 // 1 if device has an Aux menu bar on it
|
||
#define BurstDevice 07 // 1 if this device support burst xfer
|
||
#define ext32Device 08 // 1 if this device must be accessed in 32-bit mode
|
||
#define frozenDevice 09 // reserved for future use
|
||
#define ramInit 10 // 1 if initialized from 'scrn' resource
|
||
#define mainScreen 11 // 1 if main screen
|
||
#define allInit 12 // 1 if all devices initialized
|
||
#define screenDevice 13 // 1 if screen device [not used]
|
||
#define noDriver 14 // 1 if no driver for this GDevice
|
||
#define screenActive 15 // 1 if in use
|
||
|
||
// CCrsr (Color Cursor) field offsets
|
||
//
|
||
// NOTE THAT THE FIRST FOUR FIELDS ARE PARALLEL TO THE FIRST FOUR FIELDS
|
||
// OF A PATTERN SO THAT PATCONVERT CAN BE USED TO EXPAND A CURSOR
|
||
//
|
||
|
||
#define crsrType 0 //[WORD] CURSOR TYPE
|
||
#define crsrMap (crsrType+2) //[LONG] HANDLE TO CURSOR'S PIXMAP
|
||
#define crsrData (crsrMap+4) //[LONG] HANDLE TO CURSOR'S COLOR DATA
|
||
#define crsrXData (crsrData+4) //[LONG] HANDLE TO EXPANDED DATA
|
||
#define crsrXValid (crsrXData+4) //[WORD] DEPTH OF EXPANDED DATA (0 IF NONE)
|
||
#define crsrXHandle (crsrXValid+2) //[LONG] HANDLE FOR FUTURE USE
|
||
#define crsr1Data (crsrXHandle+4) //[16 WORDS] ONE-BIT DATA
|
||
#define crsrMask (crsr1Data+32) //[16 WORDS] ONE-BIT MASK
|
||
#define crsrHotSpot (crsrMask+32) //[POINT] HOT-SPOT FOR CURSOR
|
||
#define crsrXTable (crsrHotSpot+4) //[LONG] TABLE ID FOR EXPANDED DATA
|
||
#define crsrID (crsrXTable+4) //[LONG] ID FOR CURSOR
|
||
#define crsrRec (crsrID+4) //SIZE OF CURSOR SAVE AREA
|
||
|
||
|
||
// CIcon (Color Icon) field offsets
|
||
//
|
||
|
||
#define iconPMap 0 //[PIXMAP] ICON'S PIXMAP
|
||
#define iconMask (iconPMap+pmRec) //[BITMAP] 1-BIT VERSION OF ICON ONE-BIT MASK FOR ICON
|
||
#define iconBMap (iconMask+bitmapRec) //[BITMAP] 1-BIT VERSION OF ICON
|
||
#define iconData (iconBMap+bitmapRec) //[LONG] HANDLE TO PIXMAP DATA
|
||
//FOLLOWED BY BMAP AND MASK DATA
|
||
#define iconRec (iconData+4) //SIZE OF ICON HEADER
|
||
|
||
//
|
||
// Gamma Table format
|
||
//
|
||
#define gVersion 0 // [word] gamma version number
|
||
#define gType (gVersion+2) // [word] gamma data type
|
||
#define gFormulaSize (gType+2) // [word] Formula data size
|
||
#define gChanCnt (gFormulaSize+2) // [word] number of channels of data
|
||
#define gDataCnt (gChanCnt+2) // [word] number of values/channel
|
||
#define gDataWidth (gDataCnt+2) // [word] bits/corrected value (data packed to next larger byte size)
|
||
#define gFormulaData (gDataWidth+2) // [array] data for formulas, followed by gamma values
|
||
|
||
|
||
// EXTENSIONS TO THE QDPROCS RECORD
|
||
//
|
||
|
||
#define opcodeProc $34 // [pointer]
|
||
#define newProc1 $38 // [pointer]
|
||
#define newProc2 $3C // [pointer]
|
||
#define newProc3 $40 // [pointer]
|
||
#define newProc4 $44 // [pointer]
|
||
#define newProc5 $48 // [pointer]
|
||
#define newProc6 $4C // [pointer]
|
||
#define cqdProcsRec $50 // size of QDProcs record
|
||
|
||
// OFFSETS WITHIN GRAFVARS:
|
||
//
|
||
#define rgbOpColor 0 // [6 bytes] color for addPin, subPin and average
|
||
#define rgbHiliteColor (rgbOpColor+6) // [6 bytes] color for hiliting
|
||
#define pmFgColor (rgbHiliteColor+6) // [4 bytes] palette handle for foreground color
|
||
#define pmFgIndex (pmFgColor+4) // [2 bytes] index value for foreground
|
||
#define pmBkColor (pmFgIndex+2) // [4 bytes] palette handle for background color
|
||
#define pmBkIndex (pmBkColor+4) // [2 bytes] index value for background
|
||
#define pmFlags (pmBkIndex+2) // [2 bytes] flags for Palette Manager
|
||
#define grafVarRec (pmFlags+2) // size of grafVar record
|
||
|
||
// ColorTable field offsets
|
||
|
||
#define ctSeed 0 // [long] id number for table
|
||
#define transIndex (ctSeed+4) // [word] index of transparent pixel (obsolete)
|
||
#define ctFlags (ctSeed+4) // [word] hibh bit: 0 = PixMap; 1 = device
|
||
#define ctSize (ctFlags+2) // [word] number of entries in CTTable
|
||
#define ctTable (ctSize+2) // [variant] array of color spec
|
||
#define ctRec (ctTable) // size of record without color table
|
||
#define ctEntrySize 8 // size of each entry in table
|
||
#define minSeed 1023 // minimum seed value (< minSeed reserved for rsrc ID's)
|
||
#define protectBit 7 // protect bit in device color table
|
||
#define reserveBit 6 // reserve bit in device color table
|
||
#define invalColReq (-1) // invalid color table request
|
||
|
||
// CProcRec structure
|
||
|
||
#define nxtComp $0 //link to next proc [pointer]
|
||
#define compProc $4 //pointer to routine [pointer]
|
||
#define cProcSize 8 // size of CProcRec
|
||
// SProcRec structure
|
||
|
||
#define nxtSrch $0 //[pointer] link to next proc
|
||
#define srchproc $4 //[pointer] pointer to routine
|
||
#define sProcSize 8 // size of SProcRec
|
||
|
||
// request List structure
|
||
|
||
#define reqLSize 0 // request list size [word]
|
||
#define reqLData 2 // request list data [words]
|
||
|
||
|
||
// Point structure
|
||
|
||
#define v 0 // vertical coordinate [word]
|
||
#define h 2 // horizontal coordinate [word]
|
||
|
||
#endif // ...already included
|