| | |
| | | /* |
| | | Simple DirectMedia Layer |
| | | Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org> |
| | | Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> |
| | | |
| | | This software is provided 'as-is', without any express or implied |
| | | warranty. In no event will the authors be held liable for any damages |
| | |
| | | misrepresented as being the original software. |
| | | 3. This notice may not be removed or altered from any source distribution. |
| | | */ |
| | | #include "SDL_config.h" |
| | | #include "../../SDL_internal.h" |
| | | |
| | | #if SDL_VIDEO_RENDER_OGL_ES && !SDL_RENDER_DISABLED |
| | | |
| | | #include "SDL_hints.h" |
| | | #include "SDL_opengles.h" |
| | | #include "../SDL_sysrender.h" |
| | | |
| | | /* To prevent unnecessary window recreation, |
| | | * these should match the defaults selected in SDL_GL_ResetAttributes |
| | | */ |
| | | |
| | | #define RENDERER_CONTEXT_MAJOR 1 |
| | | #define RENDERER_CONTEXT_MINOR 1 |
| | | |
| | | #if defined(SDL_VIDEO_DRIVER_PANDORA) |
| | | |
| | |
| | | GLES_RenderData *data; |
| | | GLint value; |
| | | Uint32 windowFlags; |
| | | int profile_mask, major, minor; |
| | | |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1); |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); |
| | | SDL_GL_GetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, &profile_mask); |
| | | SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major); |
| | | SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor); |
| | | |
| | | windowFlags = SDL_GetWindowFlags(window); |
| | | if (!(windowFlags & SDL_WINDOW_OPENGL)) { |
| | | if (!(windowFlags & SDL_WINDOW_OPENGL) || |
| | | profile_mask != SDL_GL_CONTEXT_PROFILE_ES || major != RENDERER_CONTEXT_MAJOR || minor != RENDERER_CONTEXT_MINOR) { |
| | | |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, RENDERER_CONTEXT_MAJOR); |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, RENDERER_CONTEXT_MINOR); |
| | | |
| | | if (SDL_RecreateWindow(window, windowFlags | SDL_WINDOW_OPENGL) < 0) { |
| | | /* Uh oh, better try to put it back... */ |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, profile_mask); |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, major); |
| | | SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, minor); |
| | | SDL_RecreateWindow(window, windowFlags); |
| | | return NULL; |
| | | } |