From d38559021be06e0bf2ae7027d76b4e56c773abbf Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 12 Jul 2003 13:30:30 +0000 Subject: [PATCH] We need to lookup the address of glGetString before calling GL_MakeCurrent(), since the X11 target needs to query for extensions in there...hopefully this other platforms don't need to have a current context before symbol lookup works or something strange like that... --ryan. --- src/video/SDL_video.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 9d49c8fa0..a12db0966 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -722,6 +722,22 @@ SDL_Surface * SDL_SetVideoMode (int width, int height, int bpp, Uint32 flags) SDL_WM_GrabInput(saved_grab); SDL_GetRelativeMouseState(NULL, NULL); /* Clear first large delta */ +#ifdef HAVE_OPENGL + /* Load GL symbols (before MakeCurrent, where we need glGetString). */ + if ( flags & (SDL_OPENGL | SDL_OPENGLBLIT) ) { +#define SDL_PROC(ret,func,params) \ +do { \ + video->func = SDL_GL_GetProcAddress(#func); \ + if ( ! video->func ) { \ + SDL_SetError("Couldn't load GL function: %s\n", #func); \ + return(NULL); \ + } \ +} while ( 0 ); +#include "SDL_glfuncs.h" +#undef SDL_PROC + } +#endif + /* If we're running OpenGL, make the context current */ if ( (video->screen->flags & SDL_OPENGL) && video->GL_MakeCurrent ) { @@ -734,16 +750,6 @@ SDL_Surface * SDL_SetVideoMode (int width, int height, int bpp, Uint32 flags) if ( (flags & SDL_OPENGLBLIT) == SDL_OPENGLBLIT ) { /* Load GL functions for performing the texture updates */ #ifdef HAVE_OPENGL -#define SDL_PROC(ret,func,params) \ -do { \ - video->func = SDL_GL_GetProcAddress(#func); \ - if ( ! video->func ) { \ - SDL_SetError("Couldn't load GL function: %s\n", #func); \ - return(NULL); \ - } \ -} while ( 0 ); -#include "SDL_glfuncs.h" -#undef SDL_PROC /* Create a software surface for blitting */ #ifdef GL_VERSION_1_2