views:

840

answers:

5

Hey, all. I'm looking for a good, free graphics-based UI/GUI framework.

Let's say I want to create the iPhone or Palm Pre from the ground up. How would I, using what UI framework?

(Forget that Apple has created this and that libraries in the past :) just the best way to express what exactly I'm looking for.)

In essence, I'm looking for a highly customizable graphics-based UI framework that one can use that is also pretty fast. I don't really want to use the widgets that are already provided by stuff like GTK or whatnot. I'm looking to create my own.

Know what I'm saying? Again, iPhone or Palm Pre analogy. Thank you very much!

(I've looked at stuff like openFrameworks, which looks kinda promising.)

+4  A: 

You already mentioned openFrameworks, but another viable option is cairo, it's increasingly used to implement widgets from scratch, with the added advantage of supporting OpenGL rendering (using glitz), it can be used to create completely new UI elements. FireFox, for example, is using cairo internally - chrome is making use of the Skia engine (see here).

none
fantastic! both of these seem very spot-on. thank you!
Mark
A: 

Thanks, none. I checked out Skia, and had a hard time getting it to run correctly.

Cairo seems pretty interesting. Definitely something to look at. Thanks!

Mark
This should have been added as a comment.
the_drow
+7  A: 

Qt is nice. You don't have to use their widgets, you can create everything from scratch using QPainter and still take advantage of their MVC framework. As of version 4.5 it's LGPL so it can be used for commercial applications freely as long as you watch your linkage.

Gerald
Hmm. What kind of performance hit does Qt present? What kind of linkage should I watch out for (I'm not going to be editing Qt source.)
Mark
The performance hit all depends on what you do with it. All of the various modules are optional, the core is fairly lightweight for all it gives you. By watching your linkage, as long as you are dynamically linking to the DLLs/.SOs you're okay, if you statically link to the libraries you'll need to publish your code or buy a commercial license.
Gerald
Ah, that makes sense. Thank you!
Mark
note however that Qt is generally a pretty significant dependency
none
A: 

Adding one for Cairo, it's an excellent engine.

A: 

Clutter looks really good actually. It seems a good choice since its focus seems to be creating your own interface elements, and it renders to OpenGL (or OpenGL|ES).

Also seems to be designed with speed in mind, and is used in MeeGo and chromium OS.

lukecameron