From f22fa77431a80306f7c9b38b24861d578c09e2df Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Wed, 14 Feb 2018 13:30:58 -0800 Subject: [PATCH] Improve fallback to GLESv2 on iOS (resolve #1154) --- project/src/backend/sdl/SDLRenderer.cpp | 4 +++- project/src/backend/sdl/SDLWindow.cpp | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/project/src/backend/sdl/SDLRenderer.cpp b/project/src/backend/sdl/SDLRenderer.cpp index be48ec5de..1cb6b9b80 100644 --- a/project/src/backend/sdl/SDLRenderer.cpp +++ b/project/src/backend/sdl/SDLRenderer.cpp @@ -48,7 +48,9 @@ namespace lime { // } - } else { + } + + if (!context) { sdlFlags |= SDL_RENDERER_SOFTWARE; diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp index e5840cd3d..badbf3ac9 100644 --- a/project/src/backend/sdl/SDLWindow.cpp +++ b/project/src/backend/sdl/SDLWindow.cpp @@ -118,6 +118,17 @@ namespace lime { sdlWindow = SDL_CreateWindow (title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, sdlFlags); + #if defined (IPHONE) || defined (APPLETV) + if (sdlWindow && !SDL_GL_CreateContext (sdlWindow)) { + + SDL_DestroyWindow (sdlWindow); + SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 2); + + sdlWindow = SDL_CreateWindow (title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, sdlFlags); + + } + #endif + if (!sdlWindow) { printf ("Could not create SDL window: %s.\n", SDL_GetError ());