Version | Release Date | Features |
---|---|---|
1.1 | March 4, 1997 | Texture objects |
1.2 | March 16, 1998 | 3D textures, BGRA and packed pixel formats,[23] introduction of the imaging subset useful to image-processing applications |
1.2.1 | October 14, 1998 | A concept of ARB extensions |
1.3 | August 14, 2001 | Multitexturing, multisampling, texture compression |
1.4 | July 24, 2002 | Depth textures, GLSlang[24] |
1.5 | July 29, 2003 | Vertex Buffer Object (VBO), Occlusion Queries[25] |
2.0 | September 7, 2004 | GLSL 1.1, MRT, Non Power of Two textures, Point Sprites,[26] Two-sided stencil[25] |
2.1 | July 2, 2006 | GLSL 1.2, Pixel Buffer Object (PBO), sRGB Textures[25] |
3.0 | August 11, 2008 | GLSL 1.3, Texture Arrays, Conditional rendering, Frame Buffer Object (FBO)[27] |
3.1 | March 24, 2009 | GLSL 1.4, Instancing, Texture Buffer Object, Uniform Buffer Object, Primitive restart[28] |
3.2 | August 3, 2009 | GLSL 1.5, Geometry Shader, Multi-sampled textures[29] |
3.3 | March 11, 2010 | GLSL 3.30, Backports as much function as possible from the OpenGL 4.0 specification |
4.0 | March 11, 2010 | GLSL 4.00, Tessellation on GPU, shaders with 64-bit precision[30] |
4.1 | July 26, 2010 | GLSL 4.10, Developer-friendly debug outputs, compatibility with OpenGL ES 2.0[31] |
4.2 | August 8, 2011[32] | GLSL 4.20, Shaders with atomic counters, draw transform feedback instanced, shader packing, performance improvements |
4.3 | August 6, 2012[33] | GLSL 4.30, Compute shaders leveraging GPU parallelism, shader storage buffer objects, high-quality ETC2/EAC texture compression, increased memory security, a multi-application robustness extension, compatibility with OpenGL ES 3.0[34] |
4.4 | July 22, 2013[35] | GLSL 4.40, Buffer Placement Control, Efficient Asynchronous Queries, Shader Variable Layout, Efficient Multiple Object Binding, Streamlined Porting of Direct3D applications, Bindless Texture Extension, Sparse Texture Extension[35] |
4.5 | August 11, 2014[8][36] | GLSL 4.50, Direct State Access (DSA), Flush Control, Robustness, OpenGL ES 3.1 API and shader compatibility, DX11 emulation features |
4.6 | July 31, 2017[37][38] | GLSL 4.60, More efficient geometry processing and shader execution, more information, no error context, polygon offset clamp, SPIR-V, anisotropic filtering |
OpenGL 4.1 Release date: July 26, 2010
Full API compatibility with OpenGL ES 2.0
OpenGL 4.3 Release date: August 6, 2012
- Compute shaders leveraging GPU parallelism within the context of the graphics pipeline
- Shader storage buffer objects, allowing shaders to read and write buffer objects like image load/store from 4.2, but through the language rather than function calls.
- Image format parameter queries
- ETC2/EAC texture compression as a standard feature
- Full compatibility with OpenGL ES 3.0 APIs
- Debug abilities to receive debugging messages during application development
- Texture views to interpret textures in different ways without data replication
- Increased memory security and multi-application robustness
Hardware support: Nvidia GeForce 400 series and newer, AMD Radeon HD 5000 Series and newer, Intel HD Graphics in Intel Haswell processors and newer.[36]
OpenGL 4.5 Release date: August 11, 2014
- OpenGL ES 3.1 API and shader compatibility – to enable the easy development and execution of the latest OpenGL ES applications on desktop systems.
Hardware support: Nvidia GeForce 400 series and newer, AMD Radeon HD 7000 Series and newer, Intel HD Graphics in Intel Broadwell processors and newer, Tegra K1, and Tegra X1.[44][45
QT opengl
To summarize which API wrapper to use and when, let’s go through the possible options:
- QOpenGLFunctions – The number one choice, unless OpenGL 3/4.x features are desired and the world outside the traditional desktop platforms is not interesting to the application. Cross-platform applications intending to run on the widest possible range of systems are encouraged to to stick to this one, unless they are prepared to guard the usage of OpenGL features not in this class with appropriate runtime checks. QOpenGLFunctions is also what Qt Quick and various other parts of Qt use internally.
- QOpenGLExtraFunctions – Use it in addition to QOpenGLFunctions whenever OpenGL ES 3.0 and 3.1 features are needed.
- Versioned wrappers (QOpenGLFunctions_N_M_profile) – When an OpenGL 3/4.x core or compatibility profile is needed and targeting OpenGL ES based systems is not desired at all.
OpenGL ES 3.0
Supported by:
- Android since version 4.3, on devices with appropriate hardware and drivers, including:
- Nexus 7 (2013)
- Nexus 4
- Nexus 5
- Nexus 10
- HTC Butterfly S
- HTC One/One Max
- LG G2
- LG G Pad 8.3
- Samsung Galaxy J5
- Samsung Galaxy J5 (2016)
- Samsung Galaxy S4 (Snapdragon version)
- Samsung Galaxy S5
- Samsung Galaxy Note 3
- Samsung Galaxy Note 10.1 (2014 Edition)
- Sony Xperia M
- Sony Xperia Z/ZL
- Sony Xperia Z1
- Sony Xperia Z Ultra
- Sony Xperia Tablet Z
- iOS since version 7, on devices including:
- BlackBerry 10 OS since version 10.2, on devices including:
Supported by some recent versions of these GPUs:[29][30]
- Adreno 300 and 400 series (Android, BlackBerry 10, Windows Phone 8, Windows RT)
- Mali T600 series onwards (Android, Linux, Windows 7)
- PowerVR Series6 (iOS, Linux)
- Vivante (Android, OS X 10.8.3, Windows 7)
- Nvidia (Android, Linux, Windows 7)
- Intel (Linux)
https://blog.qt.io/blog/2015/09/09/cross-platform-opengl-es-3-apps-with-qt-5-6/
https://en.wikipedia.org/wiki/OpenGL#OpenGL_4.5
Vulkan
GLES 3.1