GameFoundry / bsf

Modern C++14 library for the development of real-time graphical applications
https://www.bsframework.io
MIT License
1.73k stars 193 forks source link

Qt framework integration #72

Open jonesmz opened 6 years ago

jonesmz commented 6 years ago

Something to consider for the far (far) future, kind of like a stretch goal so to speak, would be integration with the Qt framework for GUI rendering. (Perhaps others as well, like Gtk+, or EFL, that kind of thing.)

Open source games like OpenMW, Warzone2100, and I'm sure others, use Qt for the in-game UI code like menus and such.

Qt, of course, offers an incredibly comprehensive C++ GUI framework with unbelievable documentation, and a huge developer community.

Qt also has a declarative GUI language, called QML, which has some really powerful high-level capabilities.

Since Qt has preexisting examples of how to integrate into an OpenGL (and/or similar) games, I think that it's at the very least possible. Whether this fits into the development goals of bsf is another story.

BearishSun commented 6 years ago

If someone wants to integrate Qt in a form of some plugin I wouldn't be opposed to it, but it will not be my first choice for GUI.

When it comes to game GUI I believe what a lot of developers are looking for is the ability to create a very dynamic, animated, custom looking GUI with potentially various special effects (particles, custom shaders, 3D controls), as well as the ability to handle controller input. I'd rather spend time moving bsf GUI in that direction.

jonesmz commented 6 years ago

I propose making another milestone for the bsf github repo.

Something like "Not planned, pull requests welcome" or something.

That would allow people casually looking through github issues to see "Oh, this has been reported, and I shouldn't expect to see it happen to the project unless I do the work".

It could save on duplicate issue reports / feature requests in the future.

BearishSun commented 6 years ago

Good suggestion :)

nemerle commented 6 years ago

Interesting dynamic, custom looking UIs using qml/quick :smile: