Ben Ben - 2 months ago 11
C++ Question

QOpenGLFunctions missing important OpenGL functions

QOpenGLFunctions seems to be missing important functions such as glInvalidateFramebuffer and glMapBuffer. From what I understand QOpenGLFunctions loads the intersection of both desktop OpenGL functions and ES functions. If that's the case, why aren't these two functions present? From what I can tell glMapBuffer is in both.

Am I misunderstanding QOpenGLFunctions, or are they actually missing functions(unlikely)?

Answer

There are multiple reasons for those two cases and the one in the comment:

1) As far as I am aware, the addition process was selective. Only those functions got added that you would need to resolve manually.

In the aforementioned glDrawArrays case, that function have been available for a while, both in desktop OpenGL as well as ES where Qt is supported, so there is not much need to resolve anything there manually.

You can just use them right away the regular opengl way, including gl.h and all that.

2) For the time being, Qt does not support OpenGL ES 3 through this interface. Your aforementioned functions, glMapBuffer and glInvalidateFramebuffer are likely to fall into this category. They are not available in OpenGL ES 2 "by default".

If there is any function not being exposed and not covered by the aforementioned reasons, it is likely to be an overlook or so.

Comments