When we enable software rendering, glGetString(GL_VERSION) returns 1.1.0. Because of which when i query glGetString( GL_EXTENSIONS ), only few GL_WIN_swap_hint GL_EXT_bgra GL_EXT_paletted_texture are returned.
As, GL_EXT_framebuffer_object is not found, wglGetProcAddress(“glBindRenderbufferEXT”) returns NULL. (though openGL wiki tells 1.1 is sufficient for GL_EXT_framebuffer_object)
[Note: GL context is created and made current.]
When we enable hardware rendering, version is 4.1.0 and glGetString( GL_EXTENSIONS ) returns all the supported extensions and wglGetProcAddress succeeds.
That just means that the extension is written against OpenGL 1.1, and could theoretically be provided by an implementation which otherwise only implements OpenGL 1.1. It isn’t implemented by the Windows software driver and almost certainly never will be.
The FAQ is misleading; this is actually not a method for switching between software and hardware rendering; what it is is a method for selecting which OpenGL implementation to use.
If you select a pixel format that is not hardware accelerated you will get Microsoft’s generic software implementation.
If you select a pixel format that is hardware accelerated you will get your GPU vendor’s driver.
So two different GL implementations, hence the fact that they report different versions and extensions.
[QUOTE=Geetha Priya;1284870]Thanks for the info. Is there a alternative way to use EXT_framebuffer_object in GDI generic.?
Or can GDI generic version can be upgraded from 1.1?[/QUOTE]
No, on both counts.
If you want additional features, you need to either get a video card which supports them, or use Mesa.