Windows 7 64bit, Qt 4: glGetVersion returns "1.1.0", nvogl32v.dll gets unloaded
Are you specifying the OpenGL version using QGLFormat.setVersion + QGLFormat.setProfile ?
QGLFormat glFormat;glFormat.setVersion( 3, 2 );glFormat.setProfile( QGLFormat::CoreProfile );glFormat.setSampleBuffers( true );QGLWidget w( glFormat );
Another potential problem. Your glGetVersion
should be called be after the OpenGL context has been initialized in the QGLWidget.initializeGL()
method.
Okay, I give up.
I'll mark it as a driver bug or Google Chrome incompatibility.
I'm gonna add this quirk|problem to project's readme and ensure that app works fine(i.e. doesn't display artifacts) even if OpenGL is emulated.
OpenGL 3.0 and higher has a deprecation model for legacy features. In old OpenGL versions, the new version was a superset of the old version. I.e. if you wanted OpenGL 1.5 context and got OpenGL 2.0 context, that was fine. Once the possibility of removing old functionality came into being, that is no longer viable. Extension WGL_ARB_create_context
was made: it exposes a new function to replace wglCreateContext
. Much like wglChoosePixelFormatARB
, it adds an extensibility mechanism to the system that makes it possible to extend the options for context creation. It it impossible to create OpenGL 3.2+ Core Profile context without using this function.
Here is the official up-to-date documentation on how to create an OpenGL context: http://www.opengl.org/wiki/Creating_an_OpenGL_Context_(WGL)