[Please do not omit wine-devel@winehq.org when replying]
Joshua Beck jxb091000@utdallas.edu wrote:
What OpenGL driver are you using? glGetString(GL_EXTENSIONS) returning NULL might be a driver bug.
I'm using an nvidia binary driver (260.36.19 I think). Thing is I'm running Debian amd64 and I compiled wine with -m32. I checked and there are nvidia libraries in /usr/lib32. However I don't know if all of them are in there or if they work correctly.
See http://wiki.winehq.org/3DDriverIssues how to diagnose GL driver problems.
It would be better to do something like this instead:
str = (const char *) pglGetString(GL_EXTENSIONS); if(str == 0) { ERR( "Couldn't find GL_EXTENSIONS string, disabling OpenGL.\n" ); goto done; } WineGLInfo.glExtensions = HeapAlloc(GetProcessHeap(), 0, strlen(str)+1);
What do you think?
WineGLInfo.glExtensions is used in other places in the code, it must be initialized.
If str == 0 then the program is going to crash before anything else can get to WineGLInfo.glExtensions. Better to say what the error is than to crash with an "Unhandled page fault" error. If it's that important to have WineGLInfo.glExtensions initialized to something then initialize it to an error code.
If pglGetString(GL_EXTENSIONS) returns NULL for whatever reason allocating an 1 byte WineGLInfo.glExtensions buffer and setting it to 0 should work just fine.