With Qt 5.0
finally seeing the light of day in the very near feature
, plans are beginning to be laid for Qt 5.1. One of the improvements being talked about now for future Qt 5.x releases is support for more OpenGL enablers in the tool-kit.
Sean Harmer of Germany's KDAB has started a discussion about adding a lot more OpenGL enablers for Qt 5.1 and beyond. The discussion started this morning on the Qt development list
Among the items that Harmer is looking to add to Qt for greater OpenGL support are classes that contain member functions for all OpenGL functions of a given version/profile, a QOpenGLVertexArrayObject class to wrap around OpenGL Vertex Array Objects for potential use in QtQuick 2, OpenGL occlusion and timing query objects, OpenGL transform feedback support, and support for Geometry / Tessellation Control / Tessellation Evaluation / Compute Shader support in QOpenGLShaderProgram. Two other items being looked at are integrating support for the GL_ARB_debug_output extension into the Qt debug message system and more enabler classes for OpenGL textures / samplers / higher-level abstractions in Qt3D.
In terms of his first action item of classes that contain member functions for all OpenGL functions of a given version/profile, he's already done some code and has it published for code review
while the other Qt-OpenGL items are just being talked about right now on the list.
OpenGL: Add set of version and context specific classes and extensions
This commit adds the output of utils/glgen and some simple modifications to QOpenGLContext to allow easy access to classes containing functions specific to a given OpenGL context and version. This allows compile-time detection of mis-use of OpenGL features. For example, trying to use glBegin(GL_TRIANGLES) with an OpenGL 3.2 Core Profile context will be detected by the compiler rather than at runtime.
This commit also adds classes for every OpenGL and OpenGL ES extension listed in the Khronos registry (as of OpenGL 4.2 and ES 2).
These capabilities make it much easier to add functionality to Qt and applications that relies upon core features of OpenGL from specific versions of that is provided via an extension e.g. geometry shaders.