Mercurial > sdl-ios-xcode
diff src/video/wincommon/SDL_wingl.c @ 1754:c67921b517c3
Date: Sun, 30 Apr 2006 14:20:05 +1000
From: Rob
Subject: [SDL] SDL pre-release
OpenGL fails on the zipped pre-release source accessible from
http://www.libsdl.org/svn.php.
Appears to be following lines in sdl_wing.c (lines 341-345):
wglext = (const char *)this->glGetString(GL_EXTENSIONS);
if ( !SDL_strstr(wglext, "WGL_EXT_swap_control") ) {
this->gl_data->wglSwapIntervalEXT = NULL;
this->gl_data->wglGetSwapIntervalEXT = NULL;
}
glGetString is a null pointer, as are other gl function pointers, so call
fails. Never looked at sdl source before, so no further than that as yet.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 01 May 2006 07:15:35 +0000 |
parents | eacc5bc01d1c |
children | ac282d472a2e |
line wrap: on
line diff
--- a/src/video/wincommon/SDL_wingl.c Mon May 01 06:41:17 2006 +0000 +++ b/src/video/wincommon/SDL_wingl.c Mon May 01 07:15:35 2006 +0000 @@ -177,6 +177,7 @@ int iAttribs[64]; int *iAttr; float fAttribs[1] = { 0 }; + const GLubyte *(*glGetStringFunc)(GLenum); const char *wglext; /* load the gl driver from a default path */ @@ -338,8 +339,14 @@ * somewhat a documented and reliable hack - it was originally * as a feature added by mistake, but since so many people rely * on it, it will not be removed. strstr should be safe here.*/ - wglext = (const char *)this->glGetString(GL_EXTENSIONS); - if ( !SDL_strstr(wglext, "WGL_EXT_swap_control") ) { + glGetStringFunc = WIN_GL_GetProcAddress(this, "glGetString"); + if ( glGetStringFunc ) { + wglext = (const char *)this->glGetString(GL_EXTENSIONS); + } else { + /* Uh oh, something is seriously wrong here... */ + wglext = NULL; + } + if ( !wglext || !SDL_strstr(wglext, "WGL_EXT_swap_control") ) { this->gl_data->wglSwapIntervalEXT = NULL; this->gl_data->wglGetSwapIntervalEXT = NULL; }