[Interest] [qt-android] Is it possible to create OpenGL ES 2 context even when ES 3 is available?

Liang Jian jianliang79 at gmail.com
Thu Mar 12 08:02:25 CET 2015


     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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150312/e5298477/attachment.html>


More information about the Interest mailing list