The GUI to end all GUI libraries (Let's Dream!)

Tom S h3r3tic at remove.mat.uni.torun.pl
Wed Nov 28 16:31:29 PST 2007


Bill Baxter wrote:
> 0ffh wrote:
>> Seems like "event processing will be done like in harmonia, that is, thru
>> sinking and bubbling. 
> 
> Harmonia was in its death throes when I came on the scene, so I don't 
> know much about it.

It used/uses an event processing system called 'sinking and bubbling' 
which is superior to anything in existence ;)


>> the default rendering engine will be OpenGL + FreeType2. 
> 
> Ok, so it's a game GUI then.  Not too likely to become the "GUI to end 
> all GUI libraries" then, but maybe the game GUI to end all game GUI 
> libraries.  I'm interested int that, but I'd also like to have something 
> with at least real native menus, popup windows, text widgets (for I18N 
> text), and dialog boxes.  Maybe they have some plan for that, though.

Other rendering engines will be possible, yet native backends (thus 
native widgets) are not planned. Unicode text rendering will be supported :)


> themes will be defined using css-alike configs, but they will
>> be able to completely redefine what compound widgets (like buttons) are.
>> /the api will be insane/". [my italics]
> 
> I'm not sure insanity is something to strive for in an API...  unless 
> you are a Perl coder, maybe.

Insanity is not the goal, it's the side effect of the design and D's 
features / limitations. It would be nicer if D had 'trailing delegates', 
then the 'insane' opIndex would not be needed.



>> We can confirm that here: http://paste.dprogramming.com/dphz72yh
>>
>> Is a sample of approximately how it will look like to use it... =)
>>
>> regards, frank
> 
> It looks like the code from those Polish game guys' GUI.  I never can 
> remember the name -- team Decad3nce or something.  It also looks to be 
> an immediate mode GUI.

LOL :D Team0xf :> We used an early version of the GUI in Deadlock.

The GUI is a hybrid between IMGUIs and RMGUIs (it's called Hybrid, too). 
It does background caching and matching of widgets between frames for 
performance and state retaining reasons



> Very interesting, anyway.  Should be good for game GUIs.  Looking 
> forward to a more formal announcement.

Thanks :) Well, you can take a look at the prototype at 
http://h3r3tic.googlecode.com/svn/trunk/HybridGUI/

Rather oldish screenies:
http://h3.team0xf.com/proj/hybrid/1.png
http://h3.team0xf.com/proj/hybrid/2.png
http://h3.team0xf.com/proj/hybrid/3.png
http://h3.team0xf.com/proj/hybrid/4.png
(text rendering got better)

Also, old demos at: http://code.google.com/p/h3r3tic/downloads/list

I'm not going to post a more formal announcement very soon, as I'm 
currently rewriting Hybrid to use Tango and support more features, like 
the extremely flexible theming. When that's done, there will definitely 
be an .announce post :)

Frank: Thanks for posting and letting me know about this thread :)


-- 
Tomasz Stachowiak
http://h3.team0xf.com/
h3/h3r3tic on #D freenode



More information about the Digitalmars-d mailing list