[SOLVED] How do I get Qt Creator to support more (or less?) recent OpenGL versions?

  • I'm porting to Qt some code that I used to compile under MSVC++. I get errors that certain OpenGL functions and constants are not defined, like the following:

    error: 'GL_FUNC_ADD' was not declared in this scope

    error: 'glBlendEquation' was not declared in this scope

    Other OpenGL identifiers cause no problem, so it's not a question of me forgetting the include or the OpenGL module.

    I know glBlendEquation was an extension at one point, but that was many years ago; it should be part of the standard by now. How do I get Qt to use a more recent OpenGL API?

    Or maybe glBlendEquation is deprecated now. How do I get Qt to use a less recent API? Or is Qt using OpenGL ES?

    Thank you for considering my questions.

  • I don't think this has anything to do with Qt. Are you correctly adding the needed includes?

  • I'm using #include <QtOpenGL>. As I already mentioned, other OpenGL identifiers (such as glBlendFunc) do not cause compiler errors, so it appears that Qt is providing a different version of the OpenGL API than the one I want.

  • Qt is not providing any OpenGL API -- it just #includes the OpenGL headers. I think Microsoft's gl.h is missing glBlendEquation. Can you check that?

  • If the system's OpenGL headers does not provide access to some part of the OpenGL API, then you have to use an OpenGL extension manager (like "GLEW":http://www.opengl.org/sdk/libs/GLEW/ or "GLEE":http://www.opengl.org/sdk/libs/GLee/). It appears that in the upcoming Qt 4.8, you may also use "QGLFunctions":http://doc.qt.nokia.com/4.8-snapshot/qglfunctions.html.

  • I tried using GLEW, because I was using that in the original MSVC project, but I kept getting linker errors no matter what I tried.

    Today I downloaded GLee and included the source code in my project. The compiler errors are gone!

Log in to reply