Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
More OpenGL ES fixes from Scott Percival
- Loading branch information
|
@@ -128,9 +128,9 @@ X11_GL_LoadLibrary(_THIS, const char *path) |
|
|
return -1; |
|
|
} |
|
|
|
|
|
#if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2 |
|
|
/* If SDL_GL_CONTEXT_EGL has been changed to 1, switch over to X11_GLES functions */ |
|
|
if (_this->gl_config.use_egl == 1) { |
|
|
#if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2 |
|
|
_this->GL_LoadLibrary = X11_GLES_LoadLibrary; |
|
|
_this->GL_GetProcAddress = X11_GLES_GetProcAddress; |
|
|
_this->GL_UnloadLibrary = X11_GLES_UnloadLibrary; |
|
@@ -141,8 +141,11 @@ X11_GL_LoadLibrary(_THIS, const char *path) |
|
|
_this->GL_SwapWindow = X11_GLES_SwapWindow; |
|
|
_this->GL_DeleteContext = X11_GLES_DeleteContext; |
|
|
return X11_GLES_LoadLibrary(_this, path); |
|
|
} |
|
|
#else |
|
|
SDL_SetError("SDL not configured with OpenGL ES/EGL support"); |
|
|
return -1; |
|
|
#endif |
|
|
} |
|
|
|
|
|
|
|
|
/* Load the OpenGL library */ |
|
|
|
@@ -99,9 +99,9 @@ X11_GLES_LoadLibrary(_THIS, const char *path) |
|
|
return -1; |
|
|
} |
|
|
|
|
|
#if SDL_VIDEO_OPENGL_GLX |
|
|
/* If SDL_GL_CONTEXT_EGL has been changed to 0, switch over to X11_GL functions */ |
|
|
if (_this->gl_config.use_egl == 0) { |
|
|
#if SDL_VIDEO_OPENGL_GLX |
|
|
_this->GL_LoadLibrary = X11_GL_LoadLibrary; |
|
|
_this->GL_GetProcAddress = X11_GL_GetProcAddress; |
|
|
_this->GL_UnloadLibrary = X11_GL_UnloadLibrary; |
|
@@ -112,8 +112,11 @@ X11_GLES_LoadLibrary(_THIS, const char *path) |
|
|
_this->GL_SwapWindow = X11_GL_SwapWindow; |
|
|
_this->GL_DeleteContext = X11_GL_DeleteContext; |
|
|
return X11_GL_LoadLibrary(_this, path); |
|
|
} |
|
|
#else |
|
|
SDL_SetError("SDL not configured with OpenGL/GLX support"); |
|
|
return -1; |
|
|
#endif |
|
|
} |
|
|
|
|
|
#ifdef RTLD_GLOBAL |
|
|
dlopen_flags = RTLD_LAZY | RTLD_GLOBAL; |
|
|
|
@@ -391,7 +391,12 @@ X11_CreateWindow(_THIS, SDL_Window * window) |
|
|
return -1; |
|
|
} |
|
|
#if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2 |
|
|
if (window->flags & SDL_WINDOW_OPENGL) { |
|
|
if ((window->flags & SDL_WINDOW_OPENGL) && (_this->gl_config.use_egl == 1)) { |
|
|
if (!_this->gles_data) { |
|
|
XDestroyWindow(display, w); |
|
|
return -1; |
|
|
} |
|
|
|
|
|
/* Create the GLES window surface */ |
|
|
_this->gles_data->egl_surface = |
|
|
_this->gles_data->eglCreateWindowSurface(_this->gles_data-> |
|
@@ -401,6 +406,7 @@ X11_CreateWindow(_THIS, SDL_Window * window) |
|
|
|
|
|
if (_this->gles_data->egl_surface == EGL_NO_SURFACE) { |
|
|
SDL_SetError("Could not create GLES window surface"); |
|
|
XDestroyWindow(display, w); |
|
|
return -1; |
|
|
} |
|
|
} |
|
|