“Ars was at FOSSCamp this weekend. Think of FOSSCamp as an ‘un-conference’ without a set agenda where the minds behind open source projects get together and plot world domination (and, err, ways to improve their code). One fascinating session (and one that shows how FOSSCamp works and why it’s so productive) was given by Mirco Muller, who discussed using OpenGL in GTK applications. Muller – the developer behind Cairo-Clock and the LowFat image viewer – talked about the state of OpenGL support in desktop applications and described various techniques that developers can use to make OpenGL content integrate better with conventional GTK user interfaces.”
Part of the enduring appeal behind many open source systems to me is the lack of visual bling: my system isn’t being bogged down by CPU-intensive glitter that contributes nothing to the actual task I’m trying to accomplish. I don’t need anything to fade, swirl, swoosh, scrunch, or flit about, EVER, unless that’s part of the core purpose of the application. My system is busy enough crunching large data sets without losing memory to ridiculous eye candy that doesn’t make me a whit more productive or happy.
Eye candy isn’t the only use for 3D implementations that are capable of taking advantage of the graphics card. Someone over at OOo has been developing an extension that allows Impress to leverage DirectX for presentations. The result is an improvement in performance because the CPU is actually relieved of work by offloading appropriate tasks. I would have preferred to see the work done in OpenGL, but it is an example of a more effective use of graphics.
I realize that some people will want to use OpenGL for eye candy, and to be honest, I really don’t care as long as it doesn’t get in my way. If it does though, I’ll just turn it off or use a different program.
Yes you are exactly right. The article even says things like Even though conventional Linux GUI toolkits haven’t bought into bling just yet, and all I can think is thank God. Bling is for entertainment purposes only, it might be ok in a game but not in a work app. Of course by everyone focusing on Bling in work apps they are neglecting the actual proper need for 3D effects in applications. Take 3D charts for example, they could use OpenGL to be rendered taking a load off the system and making them more useful. For instance if you have an array of 2D numbers like
1 3 2 5
4 2 1 3
5 3 1 2
And you try to display that as a 3D Bar chart some bars will not be visible. The answer is to make the chart rotate and the outer bars to be transparent so you can see the data at the center. You can implement that in software but why re-invent the wheel? 3D accelerated graphics do have a place in applications just not as Bling.
Say NO to Bling!
Fundamentally I don’t think that there is anything wrong with bling, however the way that it is implemented in almost every platform really sucks. We need to move towards having an option that augments what is already available. We need to remember that in several years time the processing time that will be required to perform these steps will be negligible.
So why don’t we do it the good Unix way and do it right. It should be forever optional. I think that a reasonable example of this kind of thought are shell applications that support mouse clicks. Its cool and you never have to worry about a mouse only shell app. You could do it but it would be just plain silly. As long as we keep that spirit it will work out right.
Another good reason to do it right is to keep X11 forwarding working well.
Well, the great thing about FL/OSS software is that you have choice. Everyone else has choice too, if they want glitter in their application interfaces when they can have their glitter. It won’t make any difference to your experience.
It is not like he is a linux user to begin with. He just wants to trash what others are doing as if every project not aimed at him should cater to his every wish and desire.
Its not suppose to use your CPU cycles… Thats one of the points. Move desktop graphics to your GPU and that frees up cycles on your CPU, and also can give you a more fun looking system, new ways to interact with applications and give more cycles to whatever you are doing that wants all your CPU cycles.
And, no one is forcing anyone to use this stuff. But innovation comes through experimentation. Although a lot of the “bling” has no practical use yet, its what the future holds that is important. I’m sure a lot of the conveniences you use on your desktop take up memory that could go towards your data crunching.
I have none of the desktop “bling” stuff running on my desktop, but I do not discourage developers from trying new things and users from liking it. That is just showing your lack of imagination.
This is great stuff in the right direction. It would be great if Linux widgets were accelerated automatically. However, at the moment I’m not sure that people know what to do with this. For the record I use Linux to develop web apps and I would love to have my desktop buttons pulse and whatever.
I’ll be measuring the maturity of this movement by how many people have relevant things to say about it.
OpenGL is just way too low level. App devs should never have to touch it, unless they’re rendering a 3D scene. What is needed is high level interfaces like QGraphicsScene and stuff like the plasma phase animations (sorry, I’m not familiar with any GTK equivalents).
Right, I agree. I think that it would be better if all of the widgets supported acceleration automatically. Then effects (that could be customized by each distro) could be added. So you would be able to turn off all effects and if you turned them on then opengl would kick in to make sure that the effect could be processed regardless of your 3d card support.
So KDE plasma is really going to up the level or what? From a distance it seems like those guys have been doing the hard work that others are just hacking around.
if read the article:
It’s wrong to think just about the programming libraries, says Müller. He believes that it is also important to think about the people writing the applications. He elaborates by citing areas where he thinks that the developer community could be better served. He wants to see development tools for integrated GL development that are as easy to use as the Glade user interface design tool.
That’s your answer.
Macslow is the man. He’s done some interesting things with cairo. How about the glitz backend for cairo. If they can get that finalized then using the glitz backend to add opengl support and hopefully smoother animations could be possible. The real liek you posted is that these things have to be easy. I think the OSS toolkits should look at what apple has done with coreimage and core animation. At the end of the day the drawing is still done with opengl, the trick is to abstract it in a way that developers will use it without it being a chore.
At the risk of being offtopic, have a look at what’s coming down the pipe for Qt. Widgets on graphics view.
http://labs.trolltech.com/blogs/2007/10/30/noises-from-the-crypt-wi…
If it works well, this is gonna be pretty huge. Fully transformable widgets, so you can animate, scale, rotate, and in general transform any widget very easily, while still retaining all the features of regular widgets (integration with the system style, accessibility, keyboard handling, etc).
Everybody like to talk about gtkglext but nobody doesn’t talk about how old they are, speaking in terms of Linux Desktop evolution, compared let say with Gtk or Compiz Fusion.
Latest stable version gtkglext 1.2.0 – February 4, 2006
http://sourceforge.net/project/showfiles.php?group_id=54333&package…
Or about thin documentation documentation.
Luckily with some good examples.
Yet this article with XCode 3.0 is quite a bit more captivating in it’s use of OpenGL.
http://macateeny.blogspot.com/2007/08/xcode-running-3d-opengl-class…
I figure if we’re going to link against Opengl.org we might as well list how OpenGL is making headway on both platforms that really give a rat’s ass about OpenGL.
I’d also like to note that Sun has made strides of late with OpenGL:
http://www.sun.com/software/graphics/opengl/
I’m sick to death of animated icons and animated ads. I spend money buying software that disables this cr#p.
I’m all for using the graphics card to off load things from the CPU onto the GPU but PLEASE leave animated icons and “stuff” optional. Use graphics and 3D graphics to make creating visually pleasing programs easier and not uglier or distracting from what you are trying to accomplish.