[Development] QtCS: OpenGL session notes
Sean Harmer
sean.harmer at kdab.com
Tue Jun 26 11:16:44 CEST 2012
On Monday 25 June 2012 11:44:09 Girish Ramakrishnan wrote:
> Hi,
> OpenGL session notes (pasted from
> http://qt-project.org/groups/qt-contributors-summit-2012/wiki/QtOpenGL)
> so you can comment inline.
Sorry I could not attend this year but the QtCS clashed with my family
vacation.
> Thanks to Samuel for leading the session and taking the notes!
>
> Girish
>
> Future plans
> - Desktop OpenGL 3+ support, ES 3 support
I have started work on this (desktop for now until ES 3 is released). The
general idea is to make it as simple as possible to get up and running with
OpenGL and Qt without having to resort to manually resolving entry points or
trying to mix in GLEW or similar.
I have written a small parser for the OpenGL spec files. The idea is to use
the parsed information along with a code generator to create a family of
classes (API still being determined) similar to QOpenGLFunctions.
These classes will contain functions for each OpenGL version and profile.
QOpenGLContext could be modified to return a pointer to the class appropriate
for the requested context.
This has the advantage of having access to OpenGL functions per context (entry
point addresses can change between contexts on some platforms) and providing
compile-time errors if you try to use functions not present in a given version
and profile (e.g. glBegin() with an OpenGL 3 Core Profile context).
Aspects that still require some thought are how to incorporate OpenGL
extension entry points and higher level "is feature X available". For the
latter, a given feature may be provided either by the core functionality in
some versions of OpenGL or by extensions in earlier versions. This kind of
query is needed to re-enable support for Geometry shaders and to introduce
support for Tessellation shaders in QtGui.
I also have some ideas (and some code cooking) for other "enabler" classes
e.g. QOpenGLVertexArrayObject.
> - QOpenGLWindow
Yes this would be a useful convenience class to have.
> - Shared cross process graphics buffer APIs
> - copy to texture
> - bind to texture
Along these lines it would be nice to have OpenGL texture formats as storage
formats in QImage. There is also no replacement in QtGui for
QGLWidget::convertToGLFormat() as yet.
Cheers,
Sean
More information about the Development
mailing list