GRAPHICS DEVICE INTERFACE

Video cards all have to fulfill some basic functionality to be able to boot DOS etc. Worse they also have to have a small BIOS to contain the bit mask for the characters on the DOS VGA display. By using a separate ROM on the video card make it possible to use different models. The original PC came with a monochrome display or it could be equipped with a color display. Over time the EVGA and VGA cards replaced the old cards with more color and resolution.

Over time the CPU has evolved considerably as engineers have figured out how to ramp up the performance. The VGA card also underwent a lot of change such as color depth and the amount of display buffer etc.

The GDI can also be seen from the idea of the device independent graphics output. This is an outgrowth to the way the BIOS delegated the video display to the card’s BIOS.

GDI was present in the initial release of Windows back in 1983. 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, which resides in user32.dll and is built atop GDI.

The first native Windows program we used was Word 1.0 which was crude but at the time it was a technological marvel.

GDI’s most significant advantages over more direct methods of accessing the hardware are perhaps its scaling capabilities and its abstract representation 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 center of all What You See Is What You Get applications for Microsoft Windows.

Simple games that do not require fast graphics rendering may use GDI. However, GDI is relatively hard to use for advanced animation, and lacks a notion for synchronizing with individual video frames in the video card, lacks hardware rasterization for 3D, etc. Modern games usually use DirectX or OpenGL instead, which let programmers exploit the features of modern hardware.

When Microsoft started with their Longhorn project that ended up with Windows Vista, they still had not completely finished converting all of the old APIs. This is why some old games would not work, but by the time SP2 was released much of the missing functionality was finally completed. Once the GDI+ was done, even old DX6 games will run.