Because of the wide variety of graphics output devices, from video displays to laser printers and plotters, the most important characteristic of any graphics API is device-independence. Without device-independence, the application programmer would be faced with great complexity and the chore of implementing many versions of the same graphics programs.
Figure 11-1 illustrates the basic architecture of a graphics system. An application calls functions that are provided by a graphics API. Each supported graphics device comes with a suitable driver. The graphics system takes care of translating device-independent calls into device-specific calls through the driver.