I recently noticed that there is a new release of Qt. I don’t have any personal experience developing games or applications with it, but I’m looking for an API or framework that will simplify creation of GUI for my applications, written in C++ & OpenGL. At this stage I’m less worried about cross-platform, but this is something that I could benefit from in future.
I understand that Qt's real strength lies in its flexibility and cross-platform functionality. Obviously this comes with a trade-off; less control over the main loop.
I have spent a few days pouring over articles and blogs and not really seen much about Qt 5 and the rest of the information regarding Qt seems to point to it not being a great choice for 3D games. I wanted to get a discussion going as most of the information I’ve found seems to be quite dated.
So I guess my questions are:
Is Qt a viable for 3D application/games development?
For instance, if I wanted to make a 3D application that had multiple viewports with relevant GUI and a viewport rending a relatively large amount of polys (say 6 million) with some degree of 3D texturing and multiple passes / shaders. Could I use Qt?
From what I’ve read, using GUI elements of Qt seem to take a lot of CPU time. I recognise that there are optimisations you can do within your program, but Qt’s GUI is a big plus and I wouldn’t really want to use Qt if I couldn’t take advantage of it.
Qt's OpenGL widgets only provide a platform wrapper for code you also find in SDL, GLFW, GLUT, etc...
The performance of you application will not be hindered by the Qt shell, unless you use the QOpenGL API (which paints using OpenGL through a Qt API).
If you only use Qt to set up an OpenGL context, and write the remainder of your 3D application directly in OpenGL, Qt has nothing to do with anything. Once it sets up an OpenGL context, the rest (of the rendering) is left to OpenGL itself.
That being said, StackOverflow is not a discussion forum.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With