GUI - Native vs Uniform

I’m in the process of porting GWEN.Net to Monogame and am having trouble deciding on something, so I’d like to get the community’s opinions:
For open/save file dialogs, would you rather see a native window, or would you rather they be rendered by GWEN (inside a pop-up “window”)? Also, would you like to see a Material Design skin added?

1 Like

I was actually thinking about just implementing both native and gwen-rendered. I’m doing something similar with text rendering.

There’s currently 3 ways to handle text rendering:

  1. Let Pango/Cairo render and measure the text every frame, with optional caching.
  2. Have Pango/Cairo generate an atlas texture whenever a new font is needed, and then render and measure it with some simple code (similar to spritefont rendering).
  3. Allow Monogame to render all the text using Spritefonts. This means having to create Spritefonts for each font-size combination you want to use, which could be a lot depending on what you’re using the GUI for. However, this may well be the fastest (I’ve yet to benchmark it).

Surprisingly, using option 1 doesn’t affect the framerate at all, even with a screen full of text on my Acer Travelmate p253-e laptop.

Also, I’d be more than happy to notify you when it’s done.

Thank you mate, however I havent dabbed with GUI at all other than just creating a textbox with a spritefont because I was curious and a couple buttons so I have no clue what option you should pick thats why I want to use the GUI library :p.

Can’t wait to see your finished product, good luck :smile:

That sounds really interesting, do you need the font to be installed in the system, or are you loading it from a file?

I would

I just realized that the person who is maintaining GWEN(and probably created it) is the creator of Garry’s mod… interesting.

Pango requires that the font be installed on your system.

You can load fonts form file with freetype if I am not mistaken.

You can also set where to look for fonts with FontConfig, but I’d have to see how it behaves on Windows before implementing it.

For open/save file dialogs, would you rather see a native window, or would you rather they be rendered by GWEN (inside a pop-up “window”)? Also, would you like to see a Material Design skin added?

I think most folks will have a different answer based on their use case, so implementing both makes the most sense, otherwise just pick whichever you need since you are writing it.

I have already written my own custom UI kit (only the parts which I currently need), but would be very interested in how this looks when it is done. Will the code be here?
https://github.com/Epidal/guinevere