Here are the data structures that you need to define to create a basic display: struct View view; /* These get used in all versions of */ struct ViewPort viewPort; /* the OS */ struct BitMap bitMap; struct RasInfo rasInfo; struct ColorMap *cm; struct ViewExtra *vextra; /* Extra View data, new in Release 2 */ struct ViewPortExtra *vpextra; /* Extra ViewPort data, new in */ /* Release 2 */ struct MonitorSpec *monspec; /* Monitor data needed in Release 2 */ struct DimensionInfo dimquery; /* Display dimension data needed in */ /* Release 2 */ viewextra and viewportextra are new data structures used in release 2 to hold extended data about their corresponding parent structure. ViewExtra contains information about the video monitor being used to render the view. viewportextra contains information required for clipping of the viewport. gfxnew() is used to create these extended data structures and gfxassociate() is used to associate the extended data structure with an appropriate parent structure. Although GfxAssociate() can associate a viewportextra structure with a viewport, it is better to use videocontrol() with the vtag_viewportextra_set tag instead. keep in mind that GfxNew() allocates memory for the resulting data structure which must be returned using gfxfree() before the application exits. the function gfxlookup() will find the address of an extended data structure from the address of its parent. preparing the view structure preparing the bitmap structure preparing the rasinfo structure preparing the viewport structure preparing the colormap structure creating the display instructions