From e4ee54be24f0298aea6f8d8886a6f77bd1cb0534 Mon Sep 17 00:00:00 2001 From: Patrice Mandin Date: Sun, 8 Jan 2006 10:22:27 +0000 Subject: [PATCH] Load default OpenGL library if needed at driver initialization --- src/video/ataricommon/SDL_atarigl.c | 17 ++++++++++++++--- src/video/gem/SDL_gemvideo.c | 1 + src/video/xbios/SDL_xbios.c | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/video/ataricommon/SDL_atarigl.c b/src/video/ataricommon/SDL_atarigl.c index fb8b56885..b0e59d6a5 100644 --- a/src/video/ataricommon/SDL_atarigl.c +++ b/src/video/ataricommon/SDL_atarigl.c @@ -134,11 +134,21 @@ int SDL_AtariGL_LoadLibrary(_THIS, const char *path) return -1; } - /* Unload previous driver */ - SDL_AtariGL_UnloadLibrary(this); + /* Driver already loaded ? */ + if (this->gl_config.driver_loaded) { + /* Default path ? don't change anything */ + if (path==NULL) { + return 0; + } + /* Unload previous driver */ + SDL_AtariGL_UnloadLibrary(this); + } /* Load library given by path */ - handle = SDL_LoadObject(path); + handle = NULL + if (path != NULL) { + handle = SDL_LoadObject(path); + } if (handle == NULL) { /* Try to load another one */ path = getenv("SDL_VIDEO_GL_DRIVER"); @@ -398,6 +408,7 @@ static void SDL_AtariGL_UnloadLibrary(_THIS) if (this->gl_config.dll_handle) { SDL_UnloadObject(this->gl_config.dll_handle); this->gl_config.dll_handle = NULL; + this->gl_config.driver_loaded = 0; /* Restore pointers to static library */ SDL_AtariGL_InitPointers(this); diff --git a/src/video/gem/SDL_gemvideo.c b/src/video/gem/SDL_gemvideo.c index 6a6d434d4..59947d4e0 100644 --- a/src/video/gem/SDL_gemvideo.c +++ b/src/video/gem/SDL_gemvideo.c @@ -468,6 +468,7 @@ int GEM_VideoInit(_THIS, SDL_PixelFormat *vformat) #ifdef HAVE_OPENGL SDL_AtariGL_InitPointers(this); + SDL_AtariGL_LoadLibrary(this, NULL); #endif /* We're done! */ diff --git a/src/video/xbios/SDL_xbios.c b/src/video/xbios/SDL_xbios.c index fa1caed4a..40b895c5e 100644 --- a/src/video/xbios/SDL_xbios.c +++ b/src/video/xbios/SDL_xbios.c @@ -464,6 +464,7 @@ static int XBIOS_VideoInit(_THIS, SDL_PixelFormat *vformat) #ifdef HAVE_OPENGL SDL_AtariGL_InitPointers(this); + SDL_AtariGL_LoadLibrary(this, NULL); #endif /* We're done! */