From 599cecb752025e1e7334121b092595f0485300ee Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 1 May 2006 07:15:35 +0000 Subject: [PATCH] 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. --- src/video/wincommon/SDL_wingl.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/video/wincommon/SDL_wingl.c b/src/video/wincommon/SDL_wingl.c index 9de5b0102..e45ef7f88 100644 --- a/src/video/wincommon/SDL_wingl.c +++ b/src/video/wincommon/SDL_wingl.c @@ -177,6 +177,7 @@ int WIN_GL_SetupWindow(_THIS) 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 @@ int WIN_GL_SetupWindow(_THIS) * 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; }