Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Is it possible to create OpenGL ES 2 context even when ES 3 is available?
jianliang79 last edited by SGaist
Now qt-android will create an OpenGL ES 3 context if that ES3 is supported by the devices even if I have call QSurfaceFormat::setVersion(2,0). Is it a way to just create the specific version I wanted using QOpenGLContext?
The reason why I care about that is: I need to use SurfaceTexture in my android app, and that require GL_OES_EGL_image_external extenstion, but GL_OES_EGL_image_external is written against OpenGL ES 2. If I create a OpenGL ES 3 context, some GPU (such as PowerVR rogue han) driver will fail to compile my fragment shader if I add the line to my fragment shader:
#extension GL_OES_EGL_image_external : require
In this case I must create a OpenGL ES 2 context to make it work.
I think qtmultimedia for android will also suffer from this because it will also use GL_OES_EGL_image_external. In fact I tried to deloy qmlvideo example to my Meizu MX4 (PowerVR Rogue Han) it didin't work, But I didn't see the shader compilation error from debug output.
[edit: corrected code tagging SGaist]