# HG changeset patch # User Sam Lantinga # Date 1146467735 0 # Node ID c67921b517c3b82fdefd03f358324ae55a6f0b7a # Parent 5b3bb08e7dd88fb976f02124479fed4ede500f8b 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. diff -r 5b3bb08e7dd8 -r c67921b517c3 src/video/wincommon/SDL_wingl.c --- 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; }