OpenGL May Take On A Greater Role Within Qt

Written by Michael Larabel in Qt on 18 December 2012 at 10:29 AM EST. 4 Comments
QT
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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week