OpenGL May Take On A Greater Role Within Qt

Posted by Michael Larabel on December 18, 2012

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.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Digia Announces "Boot To Qt" Project
  2. X.Org Libraries Hit By Round Of Security Issues
  3. Wayland's Weston Gets Output Scaling Support
  4. Raspberry Pi Gets New Wayland Weston Renderer
  5. Debian GNU/Hurd 2013 Release Brings New Packages
  6. Intel Ultrabook Performance Is Faster With Mesa 9.2
  7. Hot Relocation HDD To SSD Support For Btrfs
  8. Phoronix Test Suite 4.6.0 "Utsira" Released
  9. New Intel X.Org Driver Supports All Of Haswell
  10. SQLite Now Faster With Memory Mapped I/O
  11. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
Latest Forum Talk
  1. Fedora 18 Comes To ARMv6, Raspberry Pi
  2. Digia Announces "Boot To Qt" Project
  3. Updated and Optimized Ubuntu Free Graphics Drivers
  4. Microsoft Releases Skype For Linux 4.2, Has...
  5. Radeon 7770 Can't reclock crash kernel
  6. Wayland's Weston Gets Output Scaling Support
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite