The graphics primitives and the functions that draw them are discussed in Line and Arc Primitives through Fonts. The primitive's function allows the attributes of the primitive to be set for all subsequent use of that primitive. The attributes are stored in data structures called bundles. There are functions that allow you to set the attributes of the primitives before the drawing of any primitive is performed. GpiSetAttrs allows you to not only specify the primitive for which the attributes are going to be set, but also, the settings for the specific attributes. GpiQueryAttrs returns the current values of specified attributes for specified primitives.
Two other functions, GpiSetAttrMode and GpiQueryAttrMode, enable you to define or query the attribute mode settings, AM_PRESERVE and AM_NOPRESERVE. The AM_PRESERVE setting preserves the value of an attribute any time that attribute is changed. The previous value can be recovered easily if, for example, you need six dotted lines, one solid line, then six more dotted lines. The AM_NOPRESERVE setting discards the previous value of an attribute once the value is changed. The values of the attributes are presentation space resources.