[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

For each ModeID, the graphics library has a body of data that enables the
set up of the display hardware and provides applications with information
about the properties of the display mode.

The display information in the database is accessed by searching it for a
record with a given ModeID.  For performance reasons, a look-up function
named FindDisplayInfo() is provided which, given a ModeID, will return a
handle to the internal data record about the attributes of the display.

This handle is then used for queries to the display database and
specification of display mode to the low-level graphics routines.  It is
never used as a pointer.  The private data structure associated with a
given ModeID is called a DisplayInfo.  From the <graphics/displayinfo.h>
include file:

    /* the "public" handle to a DisplayInfo  */

     typedef APTR DisplayInfoHandle;

In order to obtain database information about an existing ViewPort, you
must first gain reference to its 32-bit ModeID.  A graphics function
GetVPModeID() simplifies this operation:

    modeID = ULONG GetVPModeID(struct ViewPort *vp )

The vp argument is pointer to a ViewPort structure.  This function returns
the normal display ModeID, if one is currently associated with this
ViewPort.  If no ModeID exists this function returns INVALID_ID.

Each new valid 32-bit ModeID is associated with data initialized by the
graphics library at powerup.  This data is accessed by obtaining a handle
to it with the graphics function FindDisplayInfo().

    handle = DisplayInfoHandle FindDisplayInfo(ULONG modeID);

Given a 32-bit ModeID key (modeID in the prototype above)
FindDisplayInfo() returns a handle to a valid DisplayInfo Record found in
the graphics database, or NULL.  Using this handle, you can obtain
information about this video mode, including its default dimensions,
properties and whether it is currently available for use.

For instance, you can use a DisplayInfoHandle with the GetDisplayInfoData()
function to look up the properties of a mode (see below).  Or use the
DisplayInfoHandle with VideoControl() and the VTAG_NORMAL_DISP_SET tag to
set up a custom ViewPort.


[Back to Amiga Developer Docs]