Jump to content

  • Log In with Google      Sign In   
  • Create Account


I'm Making A Lightweight GUI Toolkit. Suggestions And Criticism?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 Toothpix   Crossbones+   -  Reputation: 810

Like
0Likes
Like

Posted 27 June 2013 - 04:28 PM

I had an idea for a lightweight general purpose GUI toolkit the other day. It might be dumb, but it will keep me busy for a while. Here it is, in the steps you would use it:

 

1. After some work is done on your app, you decide to start on the UI...

 

2. To make the UI, a description language very similar to HTML5 is used to describe the GUI. It isn't simply just tags and values, there is support for objects and "action entities." All static images used in the app are put in the same directory as the description file(s). Instead of hyperlinks, references are made to "handles," and can come in the form of text links, buttons, etc.

 

3. You write the UI parts in the app, which is pretty much just assigning handles to functions. You have to use the API, of course.

 

3. A GUI compiler compiles the "source files" into a single data file or dll. This ships with your program.

 

4. If all functions correctly, you will have a seperate file for the GUI, similar to libglade, and a program that draws that GUI onto the screen.

 

So, do you think this is a good idea? I realize there are immense similarities between this and GTK+/Glade, but still, it seems like an interesting/fun project. What are your suggestions and criticisms?


C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.


Sponsor:

#2 AaronWizardstar   Members   -  Reputation: 244

Like
0Likes
Like

Posted 27 June 2013 - 09:13 PM

I'm not sure I understand when you say there can be "objects" and "action entities" in the GUI description language.

When you say "handles", do you mean something like DOM events?

Your description language will include CSS or its equivalent for styling, right?

What will you use for your description language anyway? HTML? Custom XML?

Having to compile the description language files first might be a bit awkward for some people. Some people might want to load the files on the fly, like scripts.

 

A suggestion: Please make it possible for me to write a custom renderer and resource loader/manager for your GUI so that it can go through my render and resource loader/manager.

Say I have an item sprite. I'd like to show it on the ground in the game world and inside an inventory screen. It would be nice if the GUI framework can use the same sprite resource as what I use when rendering the game world.

Take a look at how libRocket does custom renderers.


Edited by AaronWizardstar, 27 June 2013 - 09:13 PM.


#3 LorenzoGatti   Crossbones+   -  Reputation: 2663

Like
0Likes
Like

Posted 29 June 2013 - 03:23 AM

#3 seems the weakest link: it is where needs like sharing assets, as AaronWizardstar mentions, playing nice with "real" graphics (video mode changes, OpenGL contexts, state changes and GPU-side data in general), adapting to meaningful levels and scenes, etc. require adapting your GUI code generation to stringent requirements you cannot easily make assumptions about.


Produci, consuma, crepa

#4 Toothpix   Crossbones+   -  Reputation: 810

Like
0Likes
Like

Posted 02 July 2013 - 07:51 AM

You know what, I could never make anything that looks as good as GTK+, so I'll just stick with that for now and keep this idea bundled away for later. It would be overkill to make my own toolkit. The internet already has enough.


C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.


#5 LorenzoGatti   Crossbones+   -  Reputation: 2663

Like
1Likes
Like

Posted 03 July 2013 - 01:11 AM

You can reduce your goals: instead of a general purpose toolkit, you can automate some of the work of developing one specific GUI-intensive game. You can hack together a proof of concept GUI, digest it into simple text-based templates for completely ad-hoc code-generation tools, and push a button to regenerate a high-quality GUI whenever you make changes to your game. Automated generation of write-only code would also allow you to use ugly and dangerous techniques like small integer unique identifiers, big switch statements and tables, etc.
Produci, consuma, crepa




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS