Linked by Eugenia Loli-Queru on Mon 15th Sep 2003 20:37 UTC
Original OSNews Interviews Today we feature a very interesting interview with Havoc Pennington. Havoc works for Red Hat, he is heading the desktop team, while he is well known also for his major contributions to GNOME, his GTK+ programming book, plus the freedesktop.org initiative which aims to standardize the X11 desktop environments. In the following interview we discuss about the changes inside Red Hat, Xouvert, freedesktop.org and Gnome's future, and how Linux, in general, is doing in the desktop market.
Permalink for comment
To read all comments associated with this story, please click here.
u
by Mike Hearn on Mon 15th Sep 2003 12:03 UTC

.... is a distinction that I'm pretty sure is very vague at the levels needed to catch up with MacOS.

Basically, video cards have on board chips which can be used to accelerate common operations like scaling, rotating, filling polygons, transforming vertice data and so on.

Now, these operations are hardware specific, and take the form of opcodes to the chips. The purpose then of the driver is the take this low level interface and wrap it into a higher level one. Fortunately we have a standard for this in the 3D world, it's called OpenGL, and it provides a very nice API and set of tools to do 3D graphics.

I see some people here saying "We should use OpenGL for all our graphics!". I think that's the wrong approach.

Ultimately, what we want is an API that is designed for 2D graphics and makes that easy (because let me tell you OpenGL was not designed for rendering widgets and UIs, I've written an OpenGL based widget toolkit and it was Not Fun), but that still eventually is translated into hardware acceleration opcodes.

Does such an API exist? Yes, in fact it does. It's called XRender, and was designed to map very well to modern hardware (both 2D and 3D acceleration engines). XRender is a new API, so it doesn't have the wide driver or hardware support that OpenGL has yet, but that will start to come faster once KeithP has finished his test cases so driver authors know what they are doing is correct.

Theoretically, no matter what you use, whether it be XRender or OpenGL or Direct3D, the instructions to the card are basically similar. There's no reason why a desktop drawn and composited using XAA and XRender should not be as fast as ones done via Quartz Extreme - in fact, they should even be faster as Quartz itself is not hardware accelerated, only Quartz Compositing is. With the necessary changes to the innards of XFree, there's no reason why it couldn't all be accelerated.

So, in other words, don't get distracted by 3D vs 2D, OpenGL vs X. They are all different sides of the same coin.