[Development] OpenGL in Qt 5.1 and onwards
Sletta Gunnar
Gunnar.Sletta at digia.com
Tue Jan 8 09:31:10 CET 2013
On Jan 7, 2013, at 11:16 AM, Sean Harmer <sean.harmer at kdab.com> wrote:
>
> Given the current contents of QtGui and the state of Qt3D I would suggest the
> following:
>
> QtGui continues to be the home for low-level OpenGL convenience classes. That
> is classes that have a pretty much 1:1 mapping to OpenGL objects. So things
> like:
>
> * Shaders
> * Query objects
> * Texture and Sampler
> * Vertex Array Objects
> * Buffer objects
> * Framebuffer objects
I agree.
>
> Some of these are already used by QQ2, some are not but could be in the
> future.
>
> For higher-level abstractions I would suggest that we refactor and split Qt3D
> into a number of more fine-grained and targeted libraries. Right now it is
> quite monolithic consisting of the C++ threed library and the QML integration.
>
> Some ideas for these:
>
> * 3D maths (float and double versions) (or could extend QtGui 3D maths)
I would really like us to consider Eigen here. I have not used it personally, but it looks pretty solid and there has been quite a lot of pushing for the use of this already on this list and others. Since this is in the scope of a 3D add-on library, then the additional dependency is not a problem.
> * OpenGL Enablers: Material; Texture unit configuration/management etc
> * Geometry building/manipulation
> * Encapsulation: bounding volumes, intersection testing, ray casting etc
> * Animation
> * Scene Management
> * QML integration
> * OGRE/OpenSceneGraph integrations
This is perhaps another candidate to sit higher up in the stack, at least one that should not depend on too much other than QtGui and QOpenGLContext and/or Qt Quick 2.0. Integrating OGRE and OSG with QtQuick 2 in a "give me a surface and GL context" kind of manner is something I consider a very likely scenario.
>
> I was hoping to get some refactoring of Qt3D done over the vacations but then
> came down with child-induced illness, bah!
>
> For the OpenGL version and extension classes, I think I would prefer to see
> these in QtGui as it makes sense to obtain objects of these types directly
> from the context. However, if it bloats QtGui too much then we can make use of
> a simple factory class and put them into a library inside of Qt3D.
If they are anyway behind an OPENGL_ES define, then I don't see a big problem in terms of bloat. On desktop we can afford the extra symbols and on embedded they will not exist. Unless we are talking about 1-2Mb extra of course...
cheers,
Gunnar
>
> We could redress the balance with Qt6 of course ;)
>
> Cheers,
>
> Sean
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
More information about the Development
mailing list