On Sunday, 14 December 2014 at 09:53:06 UTC, Rikki Cattermole wrote:
Yeah they are great projects.
But they won't ever be what I'm looking for.

Personally?
- I want a gui toolkit that is accelerated e.g. OpenGL.
- That can be layered drawn on top of other OpenGL content.
- Completely configurable at runtime e.g. change of shaders.
- Centralized themeing.
- That works on all major platforms without heartache.

But here's the thing about guis in general.
Gui toolkits are not really designed to work with OpenGL like this.

Hello,

I'm working on GUI toolkit DLangUI which meets almost all of your requirements

https://github.com/buggins/dlangui

Try demo app:

git clone g...@github.com:buggins/dlangui.git
dub run dlangui:example1

Native. Fully written in D. Widget set can be easy extended.
Look and feel is based on themes / styles similar to Android.
Scalable UI. Resources can be selected based on screen resolution.
Layouts similar to Android UI allow to adjust UI to different window sizes.
Cross platform.

- I want a gui toolkit that is accelerated e.g. OpenGL.

Build it with USE_OPENGL to have OpenGL acceleration.

- That can be layered drawn on top of other OpenGL content.

Additional development required.
a) To use in some custom environment (e.g. draw GUI in some gamedev engine), you need to implement Platform and Window classes to pass Mouse / Key event to UI, and to draw UI above other content when necessary. b) Use DLangUI platform for event processing and context creation, just extend drawing functionality to draw custom content. (Easy to do).

- Completely configurable at runtime e.g. change of shaders.

Internally it uses only two shaders.
For custom drawn GL scenes, just write your own code.

- Centralized themeing.

Styles and themes are being defined in XML resources. Partially compatible with ones from Android. State aware drawables. Nine-patch drawables.
Theme can be switched in run time.

- That works on all major platforms without heartache.

For most platforms, SLD2 backend can be used (version USE_SDL).
On Windows, you may use native Win32 backend (if not specified version USE_SDL). XCB(X11) backend is suspended for now. Didn't manage to get OpenGL working under it.

For all platforms, OpenGL acceleration can be used (version USE_OPENGL). If OpenGL context creation is failed, app just falls back to software renderer.

Development of the project is in progress. But it is getting more and more usable every day.

Best regards,
    Vadim (aka Buggins)

Reply via email to