The GDI reference article from the English Wikipedia on 24-Jul-2004
(provided by Fixed Reference: snapshots of Wikipedia from wikipedia.org)

GDI

Sponsorship the way you would do it
GDI is short for Graphics Device Interface, and is one of the three core components or "subsystems" of Microsoft Windows.

Table of contents
1 GDI
2 GDI printers
3 GDI+
4 External link

GDI

GDI is responsible for tasks such as drawing lines and curves, rendering fonts and handling palettes. It is not directly responsible for drawing windows, menus, etc.: that task is reserved for the user subsystem.

Perhaps the most significant capability of GDI over more direct methods of accessing the hardware is its scaling capabilities, and abstraction of target devices. Using GDI, it is very easy to draw on multiple devices, such as a screen and a printer, and expect proper reproduction in each case. This capability is at the centre of all WYSIWYG applications for Microsoft Windows.

Simple games which do not require fast graphics rendering, such as Freecell or Minesweeper, use GDI. However, GDI cannot animate properly (no notion of syncronizing with the framebuffer) and lacks rasterization for 3D. Modern games use DirectX, which gives programmers acess to more hardwares capabilities. DirectX probably got its name from its ability to access screen memory with the cpu, a method which however played no more role soon after DirectX was born. Some take the name to mean that you "run the hardware more direct", which however is a misconception. It works by API calls as usual in a protected OS.


GDI printers

GDI printers (also known as Winprinters akin to Winmodems), in particular GDI laser printers, replace the traditional processing power of the printer itself with capabilities "borrowed" from the host computer. There are two advantages:

The disadvantages are that:

Most current model inkjet printers are GDI-based (largely for performance reasons, as the cost factor is primarily to do with lasers), but the trend is to add more flexibility: many offer Mac support and the Linux community has become increasingly good at making Linux drivers available. Some (notably Epson) often also offer a more traditional emulation as a fallback.

In general, the cheapest current model laser printers are GDI devices. Most manufacturers also produce more flexible models that add PCL compatibility, or Postscript, or both. In most cases it is only the very cheapest models in any given manufacturer's range that are GDI only.

GDI+

With the introduction of Windows XP, GDI was deprecated in favor of its successor, the C++ based GDI+ subsystem. GDI+ is a "next generation" 2D graphics environment, adding advanced features such as alpha blending, gradient shading, more complex path management, intrinsic support for modern graphics-file formats like JPEG and PNG (which were conspicuously absent in GDI), and general support for composition of affine transformations in the 2D view pipeline. Use of these features are apparent in Windows XP's user interface, and their presence in the basic graphics layer greatly simplifies implementations of vector-graphics systems such as flash or SVG.

GDI+ is similar (in purpose and structure) to Apple's "Quartz 2D" subsystem, and the open-source "libart".

External link