Skip to content
Permalink
Browse files

We need to lookup the address of glGetString before calling GL_MakeCu…

…rrent(),

 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.
  • Loading branch information
icculus committed Jul 12, 2003
1 parent 0eb138b commit d38559021be06e0bf2ae7027d76b4e56c773abbf
Showing with 16 additions and 10 deletions.
  1. +16 −10 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

0 comments on commit d385590

Please sign in to comment.