On Thursday, 18 December 2014 at 06:01:34 UTC, Vadim Lopatin wrote:
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)

Very good! I tried it and couldn't clone the repo (permission denied). Downloaded the master zip instead, ran the above command and got this message (dmd v2.066.0 64bit Linux):

Running dmd...
src/dlangui/dialogs/filedlg.d(86): Error: None of the overloads of 'rows' are callable using argument types (ulong), candidates are: src/dlangui/widgets/grid.d(286): dlangui.widgets.grid.GridWidgetBase.rows() src/dlangui/widgets/grid.d(288): dlangui.widgets.grid.GridWidgetBase.rows(int r) src/dlangui/widgets/lists.d(105): Error: cannot implicitly convert expression (this._states.length) of type ulong to int FAIL .dub/build/library-debug-linux.posix-x86_64-dmd_2066-A75BA498AEDB85DC20AE1A4A96C79D4B/ dlanguilib staticLibrary
Error executing command run: dmd failed with exit code 1.

I'd really love to test your gui toolkit, something I've been dreaming of for a long time!

Reply via email to