Qt does exactly what you ask for: it requests a 2.0 context. Now since 
implementations are free to return a later version that is backwards compatible 
with the requested, getting a 3.0 or 3.1 context is perfectly fine (and is the 
standard behavior you will get with any driver that supports ES 3.0 and newer).
There is no reason for GL_OES_EGL_image_external not to work with ES 3.x, as 
long as you use ES2-style (ESSL1) shaders. The typical problem is that drivers 
are free to reject it in ESSL3 shaders, unless they also support the fairly 
fresh GL_OES_EGL_image_external_essl3.

Now, it could be that your particular driver disables the extension completely 
in non-2.0 contexts (regardless of the shading language version in use), but 
there is no solution to that since there is no standard way to force a given 
context version.

Best regards,
Laszlo


From: interest-bounces+laszlo.agocs=theqtcompany....@qt-project.org 
[mailto:interest-bounces+laszlo.agocs=theqtcompany....@qt-project.org] On 
Behalf Of Liang Jian
Sent: 12. mars 2015 08:02
To: interest@qt-project.org
Subject: [Interest] [qt-android] Is it possible to create OpenGL ES 2 context 
even when ES 3 is available?

     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.
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to