In previous Windows versions, a system library called Graphics Device Interface (GDI) was responsible for displaying all of elements of the graphical user interface (GDI), including windows, text, menus, icons, mouse cursors, and anything else you can think of, and interacted with video drivers and printer drives to provide output to the user. Windows 9x and Me utilized 16-bit and 32-bit GDI functionality, while NT-based Windows versions utilized a fully 32-bit GDI, but the concepts were the same: In all Windows versions, GDI supplied device-independent display capabilities that are based on raster graphics technology. Raster graphics, for the uninitiated, are bitmapped graphics, pixel-based arrays of bits with a direct relationship between the data and what's displayed onscreen.

In Longhorn, a new presentation layer code-named Avalon is responsible for the entire user experience, including the display of graphics. Unlike GDI, Avalon is vector-based. Vector-based graphics are essentially mathematical descriptions, and they can be scaled in ways that are impossible with bitmapped-based raster graphics. To understand the difference, consider a typical icon in Windows XP: When created correctly, there will be handmade 16-, 32-, and 64-pixel versions of the icon available so that when the user switches between the various (limited) icon display modes (list view, details, icons, tiles, and thumbnails/large icons) it looks decent, but when you try to scale above the sizes specified by the system, things get ugly quickly.


Figure: Small bitmmapped icons look horrible when stretched.

With vector graphics, this isn't an issue. Today, Mac OS X is the only mainstream operating system that offers a somewhat vector-based user interface, and the quality of this system's icons benefit as a result. As shown below, a well-designed Mac OS X icon can be scaled extensively and retain its high-quality look. Like their Windows counterparts, Mac OS X icons are technically bitmaps, but they're created at a resolution of 128 x 128 pixels, and resized dynamically with vector transformations. That means they will look fantastic at the various sizes one might use on today's displays. Longhorn will utilize a similar graphics technology, albeit a more powerful one, to display icons and other system graphics as vectors, not bitmaps. That means that Longhorn icons will look fantastic at virtually any size, on today's displays and on tomorrow's high-DPI displays.


Figure: Large bitmmapped icons look nice when resized dynamically with vector transformations.

More important, perhaps, moving to vector graphics will enable Microsoft to achieve true display scaling in Longhorn, enabling a far more malleable interface than is capable today. The implications are exciting, especially for users with visual impairments, as all graphics, including text, will be almost infinitely scalable with no loss in display quality. Furthermore, because Longhorn will automatically take advantage of a new generation of high DPI displays, it will enable richer graphics displays in the same display area than is possible with today's monitors. In such a system, it will be possible to scale, say, icons independently from the other onscreen elements, virtually an impossibility in today's Windows.

That said, the shell in Longhorn build 4051 doesn't expose any of the underlying vector technology that's already baked in, because Microsoft is still secretively working on the final Longhorn look and feel, code-named Aero. Instead, we're left with the "Slate" user interface, essentially an XP visual style that mimics the upcoming Aero look and feel but is bitmapped, not vector-based. There are hints of the vector display niceties to come--the slider-based Zoom control in Explorer windows (Figure), for example, but to see where Microsoft is going with its vector-based work, we currently need to write our own programs. In one example application I wrote, it's possible to see Longhorn's text scaling features at work, as you move a slider control to zoom the window's display area from 100 percent to 400 percent (Figure). Eventually, this capability will be available everywhere in the system. Expect to see Aero debut in Beta 2, due in early 2005.

Next: Part Four: Introducing User Experiences