Important: Please read the Qt Code of Conduct -

Targeting ES 3.0

  • With 5.3 there is support for OpenGL ES 3.0, but I can't find a way to specify that you want to target ES 3.0. In particular I want to map QOpenGLBuffers, which I should be able to do in 3.0 and not 2.0, but still can't seem to get it to happen (e.g., vBuffer->map(QOpenGLBuffer::ReadWrite); returns a null pointer. This is on OS X 10.9.2


  • Well, there is no full GLES 3+ support in this sense: While the context creation functions are enhanced in 5.3 so that it is now possible to create GLES 3.0 and 3.1 contexts, other components, such as the wrappers and other utility classes, know nothing about the new features introduced in 3.0+.

    What QOpenGLBuffer supports in map() is GL_OES_mapbuffer which is an OpenGL ES 2.0 extension. It is most likely not able to use GLES3's standard glMapBuffer().

    Instead, you could include GLES3/gl3.h and use glMapBuffer() directly. This of course implies that you are building for the targetted mobile/embedded platform where the GLES 3.0 headers/libs are available.

  • In the meantime I created QTBUG-38168 but that is 5.4 material.

Log in to reply