Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Is it possible to create OpenGL ES 2 context even when ES 3 is available?

    Mobile and Embedded
    1
    1
    435
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      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]

      1 Reply Last reply Reply Quote 0
      • First post
        Last post