February 6, 2006 9:00 PM PST
Novell seeks to boost Linux graphics
(continued from previous page)
Xgl is a framework that lets people build plug-in effects modules that alter the user interface behavior. For example, Novell programmers recreated a "wobbly windows" idea--which makes windows jiggle like gelatin--from the company's chief rival, Red Hat.
Xgl uses the graphics instructions of OpenGL, a 3D drawing standard widely supported by graphics cards. However, one complication of Xgl is that it works best with good 3D graphics driver software, and that typically means proprietary software from companies such as Nvidia or ATI. Some open-source programmers object to proprietary drivers, and many versions of Linux, such as Red Hat's Fedora, shun them.
The technology also works in conjunction with the X server, an older element of the X window system that is overseen by X.org. Without Xgl, a program that uses graphics--the Firefox Web browser, say--tells the X server what to display, and the X server then communicates with the graphics hardware.
Xgl steps in to handle much of the X server's work--to draw a line or fill a rectangle with white, for instance. The use of OpenGL commands lets the graphics hardware manage many operations that otherwise would require constant coordination between the X server and its applications, Friedman said.
"We're offloading a lot of the work to the hardware," Friedman said. "The result is things look and feel a lot smoother."
For example, the video hardware can store whatever information is contained in windows that have been hidden by other windows. That means the contents of the hidden panes can be redrawn quickly when an upper window is moved and the window underneath is revealed. In contrast, with regular X servers, the text underneath must be retrieved by numerous requests by the X server.
Foundation for the future
There's another potential benefit for the Linux user interface from Xgl. It enables developers to shift away from bitmaps--which store graphics as a grid of pixels--toward vectors, which use mathematical abstractions independent of the pixel grid. For example, vectors are used today to allow a single typeface to be seen as text of varying size; bitmaps require separate versions for 10-point, 12-point and 14-point type sizes.
GNOME and the Mozilla browser project both have adopted a vector graphics engine called Cairo. It can be used to display buttons or other graphical elements and to arrange Web page elements using flexible descriptions rather than hard-coding positions by counting pixels.
Vector graphics help solve one problem that Microsoft is addressing in Vista: the difference in pixel sizes on different computers. For example, the pixels on a laptop with a 15-inch, 1600-by-1200 screen are much smaller than those on a 19-inch, 1024-by-768 monitor. That means objects such as menus, buttons and icons are much harder to see and click on using a mouse.
Cherry agreed work needs to be done there. "On some monitors and graphics cards, the controls become almost impossible to work with," he said.
Xgl accelerates Cairo, so its future use will benefit from hardware acceleration, Friedman said.
"If you're using Cairo, all your Cairo operations are accelerated--fonts, windows, special effects," Friedman said. "In terms of vectorizing the desktop, this moves us way ahead."
The vector feature, like other aspects of Xgl, has Friedman excited about the prospects for the technology and the boost it could give Linux. "This puts us up at the frontier with anybody using accelerated video hardware," he said.
20 commentsJoin the conversation! Add your comment