In addition to the Screen structure, Intuition uses some other supporting structures defined in the include file <intuition/screens.h> and in <utility/tagitems.h>. (See the Amiga ROM Kernel Reference Manual: Includes and Autodocs for a complete listing.) Table 3-2: Data Structures Used with Intuition Screens Structure Name Description Defined in Include File -------------- ----------- ----------------------- Screen Main Intuition structure that <intuition/screens.h> defines a screen (see above) DrawInfo Holds the screen's pen, font <intuition/screens.h> and aspect data for Intuition TagItem General purpose parameter <utility/tagitem.h> structure used to set up screens in V36 NewScreen Parameter structure used to <intuition/screens.h> create a screen in V34 ExtNewScreen An extension to the NewScreen <intuition/screens.h> structure used in V37 for backward compatibility with older systems As previously mentioned, there is an Intuition Screen structure (and a corresponding graphics ViewPort) for every screen in memory. Under Release 2, whenever a new screen is created, Intuition also creates an auxiliary data structure called a DrawInfo. The DrawInfo structure is similar to a RastPort in that it holds drawing information. But where a RastPort is used at the lower graphics level, the DrawInfo structure is used at the higher Intuition level. Specifically, DrawInfo contains data needed to support the New Look of Intuition in Release 2. (For more information see the section below, "DrawInfo and the 3D Look".) Another new feature of Release 2 is tag items. A TagItem is a general purpose parameter structure used to pass arguments to many of the functions in the Release 2 system software. Each tag consists of a LONG tag ID (ti_Tag) and a LONG tag data value (ti_Data). With screens, tag items are used to describe the attributes an application wants for a new, custom screen. Tag items replace the NewScreen structure, the set of parameters used in older versions of the OS to set up a screen. Applications may wish to use tag items to set up a new screen instead of the NewScreen structure since tag items are often more convenient. For the sake of backwards compatibility, the ExtNewScreen structure is available. ExtNewScreen combines the NewScreen method used to define screens in older versions of the OS with the tag item method used in Release 2. The examples listed in the next section show how these various data structures can be used to set up a new screen.