From 41a2c292dd3c3158f56ed3a4b9526f89ae4c8a5a Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Thu, 30 Apr 2015 10:43:09 -0700 Subject: [PATCH] Prepare for ANGLE support --- project/Build.xml | 2 +- project/src/backend/sdl/SDLWindow.cpp | 9 +++++++++ project/src/graphics/opengl/OpenGL.h | 1 + project/src/graphics/opengl/OpenGLExtensions.h | 13 ++++++++++++- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/project/Build.xml b/project/Build.xml index 01a5864c5..f37c2bb3e 100644 --- a/project/Build.xml +++ b/project/Build.xml @@ -30,7 +30,6 @@ - @@ -141,6 +140,7 @@ + diff --git a/project/src/backend/sdl/SDLWindow.cpp b/project/src/backend/sdl/SDLWindow.cpp index 81baefb13..068d6d47c 100644 --- a/project/src/backend/sdl/SDLWindow.cpp +++ b/project/src/backend/sdl/SDLWindow.cpp @@ -22,6 +22,15 @@ namespace lime { if (flags & WINDOW_FLAG_RESIZABLE) sdlFlags |= SDL_WINDOW_RESIZABLE; if (flags & WINDOW_FLAG_BORDERLESS) sdlFlags |= SDL_WINDOW_BORDERLESS; + #if defined (HX_WINDOWS) && defined (NATIVE_TOOLKIT_SDL_ANGLE) + + 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_MINOR_VERSION, 0); + SDL_SetHint (SDL_HINT_VIDEO_WIN_D3DCOMPILER, "d3dcompiler_47.dll"); + + #endif + if (flags & WINDOW_FLAG_DEPTH_BUFFER) { SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 32 - (flags & WINDOW_FLAG_STENCIL_BUFFER) ? 8 : 0); diff --git a/project/src/graphics/opengl/OpenGL.h b/project/src/graphics/opengl/OpenGL.h index 95a830f95..cbc5c1395 100644 --- a/project/src/graphics/opengl/OpenGL.h +++ b/project/src/graphics/opengl/OpenGL.h @@ -60,6 +60,7 @@ #include typedef ptrdiff_t GLsizeiptrARB; #define NEED_EXTENSIONS +#define DYNAMIC_OGL #include #include diff --git a/project/src/graphics/opengl/OpenGLExtensions.h b/project/src/graphics/opengl/OpenGLExtensions.h index 7f78a5d24..3dbb07a75 100644 --- a/project/src/graphics/opengl/OpenGLExtensions.h +++ b/project/src/graphics/opengl/OpenGLExtensions.h @@ -12,6 +12,10 @@ #include "OpenGLBindings.h" +#ifdef LIME_SDL +#include +#endif + #ifdef DECLARE_EXTENSION @@ -27,7 +31,14 @@ #elif defined(GET_EXTENSION) -#ifdef HX_WINDOWS +#ifdef LIME_SDL + #define OGL_EXT(func,ret,args) \ + {\ + *(void **)&lime::func = (void *)SDL_GL_GetProcAddress(#func);\ + if (!func) \ + *(void **)&lime::func = (void *)SDL_GL_GetProcAddress(#func "ARB");\ + } +#elif HX_WINDOWS #define OGL_EXT(func,ret,args) \ {\ *(void **)&lime::func = (void *)wglGetProcAddress(#func);\