Sign in to follow this  
nerdtron

GLEW and software rendering

Recommended Posts

nerdtron    100
We have an option to allow the user to force software rendering in case of an older machine/drivers/etc if they're having problems using HW accelerated rendering. Rare, but we need to have the option for the rare case its needed. We've also started using GLEW to access the frame buffer object GL extension. We're seeing something wierd when using GLEW with the Microsoft software renderer on Windows 7. Specifically, in this context, glewInit() returns GLEW_OK and the GL_EXT_framebuffer_object global variable == 1. However, the actual function pointer, glGenFramebuffersEXT == NULL. Is it just understood that when using a software renderer you have no extensions available? Is there something we're doing wrong? Our code checks for extension availability and falls back to working without it, but in this case our check (whether or not GLEW initialized and the global variable != 0) doesn't work.

Share this post


Link to post
Share on other sites
stonemetal    288
http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D
Quote:

Windows Vista provides for three OpenGL implementations. The first maps OpenGL calls to Direct3D ones. This allows for hardware acceleration of OpenGL through version 1.4 from a standard install, but features of versions after 1.4 must be accessed as extensions. The second uses legacy ICDs available for Windows XP. This will disable the Aero desktop but otherwise functions as expected. The third is a full implementation that will work alongside the desktop and still allow access to OpenGL 2 on the GPU


That probably still applies to win7 as well. Their straight software renderer is(or was) opengl 1.1 based. so yeah no extensions if you go that route.

Share this post


Link to post
Share on other sites
nerdtron    100
Looks like the error was that I was checking the wrong variable. The below was from Milan Ikits on the glew mailing list.

You need to check GLEW_EXT_framebuffer_object instead. GL_EXT_framebuffer_object is #defined to be 1.

With that fixed, the correct variable is in fact 0 when running under the SW renderer.

So I guess you're right, no extensions are likely supported in this SW rendering environment. Which is fine now that we're checking properly for the extension.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this