Important: The information in this document is obsolete and should not be used for new development.
GDevice
Color QuickDraw stores state information for video devices and offscreen graphics worlds inGDevice
records. When the system starts up, it allocates and initializes one handle to aGDevice
record for each video device it finds. When you use theNewGWorld
function (described in the chapter "Offscreen Graphics Worlds" in this book), Color QuickDraw automatically creates aGDevice
record for the new offscreen graphics world. The system links theseGDevice
records in a list, called the device list. (You can find a handle to the first element in the device list in the global variableDeviceList
.) By default, theGDevice
record corresponding to the first video device found is marked as the current device; all other graphics devices in the list are initially marked as inactive.
When the user moves a window or creates a window on another screen, and your application draws into that window, Color QuickDraw automatically makes the video device for that screen the current device. Color QuickDraw stores that information in the global variable
- Note
- Printing graphics ports, described in the chapter "Printing Manager" in this book, do not have
GDevice
records.TheGDevice
.
GDevice
records that correspond to video devices have drivers associated with them. These drivers can be used to change the mode of the video device from black and white to color and to change the pixel depth. The set of routines supported by a video driver is defined and described in Designing Cards and Drivers for the Macintosh Family, third edition. Application-createdGDevice
records usually don't require drivers.A
GDevice
record is defined as follows:
TYPE GDevice = RECORD gdRefNum: Integer; {reference number of screen } { driver} gdID: Integer; {reserved; set to 0} gdType: Integer; {device type--indexed or direct} gdITable: ITabHandle; {handle to inverse table for } { Color Manager} gdResPref: Integer; {preferred resolution} gdSearchProc: SProcHndl; {handle to list of search } { functions} gdCompProc: CProcHndl; {handle to list of complement } { functions} gdFlags: Integer; {graphics device flags} gdPMap: PixMapHandle; {handle to PixMap record for } { displayed image} gdRefCon: LongInt; {reference value} gdNextGD: GDHandle; {handle to next graphics device} gdRect: Rect; {graphics device's global bounds} gdMode: LongInt; {graphics device's current mode} gdCCBytes: Integer; {width of expanded cursor data} gdCCDepth: Integer; {depth of expanded cursor data} gdCCXData: Handle; {handle to cursor's expanded } { data} gdCCXMask: Handle; {handle to cursor's expanded } { mask} gdReserved: LongInt; {reserved for future use--must } { be 0} END;
Field Description
gdRefNum
- The reference number of the driver for the screen associated with the video device. For most video devices, this information is set at system startup time.
gdID
- Reserved. If you create your own
GDevice
record, set this field to 0.gdType
- The general type of graphics device. Values include
CONST clutType = 0; {CLUT device--that is, one with } { colors mapped with a color } { lookup table} fixedType = 1; {fixed colors--that is, the } { color lookup table can't } { be changed} directType = 2; {direct RGB colors}
- These types are described in more detail in the chapter "Color Manager" in Advanced Color Imaging on the Mac OS.
gdITable
- A handle to the inverse table for color mapping; the inverse table is described in the chapter "Color Manager" in Advanced Color Imaging on the Mac OS.
gdResPref
- The preferred resolution for inverse tables.
gdSearchProc
- A handle to the list of search functions, as described in the chapter "Color Manager" in Advanced Color Imaging on the Mac OS; its value is
NIL
for the default function.gdCompProc
- A handle to a list of complement functions, as described in the chapter "Color Manager" in Advanced Color Imaging on the Mac OS; its value is
NIL
for the default function.gdFlags
- The
GDevice
record's attributes. To set the attribute bits in thegdFlags
field, use theSetDeviceAttribute
procedure (described on page 5-21)--do not set these flags directly in theGDevice
record. The constants representing each bit are listed here.CONST {flag bits for gdFlags field of GDevice record} gdDevType = 0; {if bit is set to 0, graphics device is } { black and white; if set to 1, } { graphics device supports color} burstDevice = 7; {if bit is set to 1, graphics device } { supports block transfer} ext32Device = 8; {if bit is set to 1, graphics device } { must be used in 32-bit mode} ramInit = 10; {if bit is set to 1, graphics device has } { been initialized from RAM} mainScreen = 11; {if bit is set to 1, graphics device is } { the main screen} allInit = 12; {if bit is set to 1, all graphics devices } { were initialized from 'scrn' resource} screenDevice = 13; {if bit is set to 1, graphics device is } { a screen} noDriver = 14; {if bit is set to 1, GDevice } { record has no driver} screenActive = 15; {if bit is set to 1, graphics device is } { active}Your application should never need to directly change the fields of a
gdPMap
- A handle to a
PixMap
record giving the dimension of the image buffer, along with the characteristics of the graphics device (resolution, storage format, color depth, and color table).PixMap
records are described in the chapter "Color QuickDraw" in this book. ForGDevice
records, the high bit of the global variableTheGDevice^^.gdPMap^^.pmTable^^.ctFlags
is always set.gdRefCon
- A value used by system software to pass device-related parameters. Since a graphics device is shared, you shouldn't store data here.
gdNextGD
- A handle to the next graphics device in the device list. If this is the last graphics device in the device list, the field contains 0.
gdRect
- The boundary rectangle of the graphics device represented by the
GDevice
record. The main screen has the upper-left corner of the rectangle set to (0,0). All other graphics devices are relative to this point.gdMode
- The current setting for the graphics device mode. This value is passed to the video driver to set its pixel depth and to specify color or black and white; applications don't need this information. See Designing Cards and Drivers for the Macintosh Family, third edition, for more information about the modes specified in this field.
gdCCBytes
- The
rowBytes
value of the expanded cursor. Your application should not change this field. Cursors are described in the chapter "Cursor Utilities."gdCCDepth
- The depth of the expanded cursor. Your application should not change this field.
gdCCXData
- A handle to the cursor's expanded data. Your application should not change this field.
gdCCXMask
- A handle to the cursor's expanded mask. Your application should not change this field.
gdReserved
- Reserved for future expansion; it must be set to 0 for future compatibility.
GDevice
record. If you find it absolutely necessary for your application to so, immediately use theGDeviceChanged
procedure to notify Color QuickDraw that your application has changed theGDevice
record. TheGDeviceChanged
procedure is described in the chapter "Color QuickDraw" in this book.