From 00140d88e59aa56650d0c17c59dbe15a695d2b35 Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Thu, 1 Feb 2018 10:01:03 -0800 Subject: [PATCH] Enable GLESv3 on iOS --- project/src/backend/sdl/SDLRenderer.cpp | 21 +++++++++++++++++---- project/src/backend/sdl/SDLWindow.cpp | 2 +- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/project/src/backend/sdl/SDLRenderer.cpp b/project/src/backend/sdl/SDLRenderer.cpp index 49e25926c..be48ec5de 100644 --- a/project/src/backend/sdl/SDLRenderer.cpp +++ b/project/src/backend/sdl/SDLRenderer.cpp @@ -1,6 +1,7 @@ #include "SDLApplication.h" #include "SDLWindow.h" #include "SDLRenderer.h" +// #include "SDL_syswm.h" #include "../../graphics/opengl/OpenGL.h" #include "../../graphics/opengl/OpenGLBindings.h" @@ -39,6 +40,14 @@ namespace lime { } + // sdlRenderer = SDL_CreateRenderer (sdlWindow, -1, sdlFlags); + + // if (sdlRenderer) { + + // context = SDL_GL_GetCurrentContext (); + + // } + } else { sdlFlags |= SDL_RENDERER_SOFTWARE; @@ -76,14 +85,18 @@ namespace lime { bool valid = true; #endif - #ifdef IPHONE + #if defined(IPHONE) || defined(APPLETV) + // SDL_SysWMinfo windowInfo; + // SDL_GetWindowWMInfo (sdlWindow, &windowInfo); + // OpenGLBindings::defaultFramebuffer = windowInfo.info.uikit.framebuffer; + // OpenGLBindings::defaultRenderbuffer = windowInfo.info.uikit.colorbuffer; glGetIntegerv (GL_FRAMEBUFFER_BINDING, &OpenGLBindings::defaultFramebuffer); glGetIntegerv (GL_RENDERBUFFER_BINDING, &OpenGLBindings::defaultRenderbuffer); #endif ((SDLApplication*)currentWindow->currentApplication)->RegisterWindow ((SDLWindow*)currentWindow); - } else { + } else if (!sdlRenderer) { sdlFlags &= ~SDL_RENDERER_ACCELERATED; sdlFlags &= ~SDL_RENDERER_PRESENTVSYNC; @@ -122,7 +135,7 @@ namespace lime { void SDLRenderer::Flip () { - if (context) { + if (context && !sdlRenderer) { SDL_GL_SwapWindow (sdlWindow); @@ -261,7 +274,7 @@ namespace lime { SDL_RenderReadPixels (sdlRenderer, &bounds, SDL_PIXELFORMAT_ABGR8888, buffer->data->Data (), buffer->Stride ()); - } else { + } else if (context) { // TODO diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp index 4028dbcce..e5840cd3d 100644 --- a/project/src/backend/sdl/SDLWindow.cpp +++ b/project/src/backend/sdl/SDLWindow.cpp @@ -72,7 +72,7 @@ namespace lime { #if defined (IPHONE) || defined (APPLETV) SDL_GL_SetAttribute (SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); - SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 2); + SDL_GL_SetAttribute (SDL_GL_CONTEXT_MAJOR_VERSION, 3); #endif if (flags & WINDOW_FLAG_DEPTH_BUFFER) {