mirror of https://github.com/encounter/SDL.git
Fixed bug 3529 - SDL_EGL_UnloadLibrary is not called at all on SDL_Quit
kaisyu In case of OpenGLES, the sequences of loading and unloading driver library should be like that: SDL_Init ... SDL_GL_LoadLibrary SDL_EGL_LoadLibrary ... SDL_Quit ... SDL_GL_UnloadLibrary SDL_EGL_UnloadLibrary ... However, according to my test results, the varible '_this->gl_config.driver_loaded' does not allow 'SDL_GL_UnloadLibrary' to call 'SDL_EGL_UnloadLibrary'.
This commit is contained in:
parent
0cfa0aa11c
commit
67ed894353
|
@ -313,8 +313,6 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_this->gl_config.driver_loaded = 1;
|
|
||||||
|
|
||||||
if (path) {
|
if (path) {
|
||||||
SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
|
SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -133,7 +133,6 @@ DirectFB_GL_LoadLibrary(_THIS, const char *path)
|
||||||
SDL_DFB_DEBUG("Loaded library: %s\n", path);
|
SDL_DFB_DEBUG("Loaded library: %s\n", path);
|
||||||
|
|
||||||
_this->gl_config.dll_handle = handle;
|
_this->gl_config.dll_handle = handle;
|
||||||
_this->gl_config.driver_loaded = 1;
|
|
||||||
if (path) {
|
if (path) {
|
||||||
SDL_strlcpy(_this->gl_config.driver_path, path,
|
SDL_strlcpy(_this->gl_config.driver_path, path,
|
||||||
SDL_arraysize(_this->gl_config.driver_path));
|
SDL_arraysize(_this->gl_config.driver_path));
|
||||||
|
@ -151,16 +150,10 @@ static void
|
||||||
DirectFB_GL_UnloadLibrary(_THIS)
|
DirectFB_GL_UnloadLibrary(_THIS)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
int ret;
|
int ret = GL_UnloadObject(_this->gl_config.dll_handle);
|
||||||
|
|
||||||
if (_this->gl_config.driver_loaded) {
|
|
||||||
|
|
||||||
ret = GL_UnloadObject(_this->gl_config.dll_handle);
|
|
||||||
if (ret)
|
if (ret)
|
||||||
SDL_DFB_ERR("Error #%d trying to unload library.\n", ret);
|
SDL_DFB_ERR("Error #%d trying to unload library.\n", ret);
|
||||||
_this->gl_config.dll_handle = NULL;
|
_this->gl_config.dll_handle = NULL;
|
||||||
_this->gl_config.driver_loaded = 0;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
/* Free OpenGL memory */
|
/* Free OpenGL memory */
|
||||||
SDL_free(_this->gl_data);
|
SDL_free(_this->gl_data);
|
||||||
|
|
|
@ -70,8 +70,6 @@ Emscripten_GLES_LoadLibrary(_THIS, const char *path) {
|
||||||
return SDL_SetError("Could not initialize EGL");
|
return SDL_SetError("Could not initialize EGL");
|
||||||
}
|
}
|
||||||
|
|
||||||
_this->gl_config.driver_loaded = 1;
|
|
||||||
|
|
||||||
if (path) {
|
if (path) {
|
||||||
SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
|
SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -47,10 +47,6 @@
|
||||||
int
|
int
|
||||||
PSP_GL_LoadLibrary(_THIS, const char *path)
|
PSP_GL_LoadLibrary(_THIS, const char *path)
|
||||||
{
|
{
|
||||||
if (!_this->gl_config.driver_loaded) {
|
|
||||||
_this->gl_config.driver_loaded = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue