Thinking about switching GUI's


10-10-2011 17:51:10

Currently I am using Gorilla. Seemed like a good idea at the time, but it's far, far too low level to meet anywhere near all my needs. So as a result it's taking far more of my development time to expand on it then I can really afford.

I've glanced over QuickGUI, taking a look at the source files and it doesn't make any immediate sense to me. I'm sure I can learn though. I'm curious as to how QuickGUI handles some things internally as well as if it supports some features. is my list of questions:

  1. 1. Has QuickGUI been tested on iOS or Android? If not, any idea's on how possible this would be to accomplish?
    2. Internally, how does QuickGUI do with batching? Do you create your own texture atlas for rendering?
    3. My engine uses a different XML parser then TinyXML. How hard would it be for me to re-write QuickGUI to use our parser instead?
    4. Can QuickGUI handle screen size and aspect ratio changes on it's own?
    5. Does QuickGUI support unicode?
    6. How actively is QuickGUI developed? There isn't much visible activity as of recent.[/list:u]


16-12-2011 02:04:26

Hello Makoenergy,

You're right, the forum hasn't been very active. I got into making XNA games for the Windows Phone platform, and put out 2 game titles. :D

QuickGUI has been re-designed a couple times, and it covers the basic needs. I think the best use of QuickGUI is to either extend it, or to use it as reference for your own custom implementation. I'll try to answer your questions, however its been a long time since I've used the lib.

1. Not that I know of. Its definately possible, my last iteration of the library abstracted out the rendering aspect, so that you could implement your own method to drawing images, and QuickGUI would rely on this implementation to create a UI. I believe there are some tutorials in the wiki that show how this is done, and demonstrate how it can be hooked up to Ogre for rendering.
2. QuickGUI doesn't do batching anymore, it uses Texture Caching. Each window is a texture, and whenever a section of the texture needs to be updated, that section is redrawn. You can think of each window as a batch that needs to be rendered. The only downside to this method is the amount of time it takes to redraw the dirty part of a texture. Overall I think this is the best approach for drawing UI, unless your UI is very animated and everything needs to be redrawn every frame.
3. I don't believe it would be difficult. The XML use is just to store widget definitions, which define the visual elements of a widget.
4. There is an anchoring system that allows widgets to respond when its parent changes size. If the screen resolution changes, you will have to notify QuickGUI, it can't detect this for you.
5. I used the Ogre UTFString class when I wrote the library, so I assume its supports unicode.
6. Not very active, unfortunately. I just dropped by the forums and saw this post, which is why I'm responding. I'm curious to see how the other UIs evolved over time. (MyGUI and betajaen was working on something, I believe)


28-01-2015 06:18:49

Hi! Yes the forum isn't helping at all.