Graphical Device Interface

The Graphical Device Interface (GDI) is the graphical system that manages what appears on the screen. It also provides graphics support for printers and other output devices. It draws graphic primitives, manipulates bitmaps, and interacts with device-independent graphics drivers, including those for display and printer output device drivers.

Graphics Subsystem

The graphics subsystem provides graphics support for input and output devices.

To gain reliability and better performance, Microsoft developed a new 32-bit graphics engine (also known as the Device Independent Bitmaps, or DIB, engine). This engine directly controls graphics output to the screen, which results in more reliable system performance. It also provides a set of optimized generic drawing functions for monochrome, 16-color, 16-bit high color, 256-color, and 24-bit true color graphic devices, and supports Bézier curves and paths.

The graphics subsystem supports Image Color Matching for better color-matching between display and color output devices. With Image Color Matching in Windows 95, users can see a better match between the colors displayed on the screen and the colors printed on a color printing device. Image Color Matching is implemented as a service within Windows 95. Applications can use the corresponding APIs and DLL to take advantage of Image Color Matching features.

As with other parts of the operating system, the Windows 95 graphics subsystem includes a universal driver/mini-driver model. As illustrated in the following, display drivers for Windows 3.1 included hardware-specific instructions, in addition to general instructions for the operating system. Now, all instructions about drawing to the screen or output device are included in the universal display driver. Mini-drivers for Windows 95 define only hardware-specific instructions. Mini-drivers are available for most leading Super VGA adapters and graphics accelerators, including S3, ATI, Tseng, Paradise, Western Digital, and Cirrus Logic.

Tip

Problems can result when Windows 95 assumes that a display adapter can support certain functionality that, in fact, it cannot. If this occurs, the side effects might be anything from small display irregularities to system lockup.

To determine whether any performance problems might be related to the display adapter, you can progressively disable enhanced display functionality using the System option in Control Panel. For information, see Chapter 17, "Performance Tuning."

Printing Subsystem

The 32-bit Windows 95 printing subsystem improves performance through smoother background printing and faster return-to-application time. The Windows 95 spooler passes data to the printer as the printer is ready to receive more information, by using background thread processing.

Windows 95 spools enhanced metafile (EMF) format files, rather than raw printer data, to ensure quick return-to-application time (as much as two times faster than with Windows 3.1). When spooled, the EMF information is interpreted in the background, and the output is sent to the printer.

The printing subsystem supports Point and Print. When users browse the network to choose the printers they want to use, Windows 95 automatically installs the appropriate printer driver from the Windows 95 or Windows NT server.

Another feature of the Windows 95 printing subsystem is deferred printing. If no printing device is available, the user can still "print" the job. Windows 95 generates the print job, then saves it for output to the print device when one is available. Then, when the user docks the portable computer after returning to the office, the print job that was "printed" begins generating pages at the print device.

The printing subsystem also provides system-level support of bidirectional communication protocols for printers adhering to the Extended Communication Port (ECP) printer communication standard, developed by Microsoft and Hewlett-Packard. This capability allows printers to send unsolicited messages to Windows 95 and to applications. For example, the printer might send an "out of paper" or "printer offline" message. Bidirectional communication enables much more detailed status reporting on a wider variety of information, such as information about a low toner condition, details about a paper jam, instructions related to maintenance needs, and so on.