WinRT: enable the OpenGL ES 2 SDL_Renderer backend, if and when OpenGL ES 2 support is compiled in
authorDavid Ludwig <dludwig@pobox.com>
Fri, 29 Nov 2013 00:19:46 -0500
changeset 8546 b09dc0606036
parent 8545 7cf4f8916997
child 8547 9d65f568c6b9
WinRT: enable the OpenGL ES 2 SDL_Renderer backend, if and when OpenGL ES 2 support is compiled in
VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj
VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters
include/SDL_config_winrt.h
src/render/opengles2/SDL_render_gles2.c
--- a/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj	Thu Nov 28 22:59:21 2013 -0500
+++ b/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj	Fri Nov 29 00:19:46 2013 -0500
@@ -104,6 +104,8 @@
       <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
       <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
     </ClCompile>
+    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c" />
+    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c" />
     <ClCompile Include="..\..\src\render\SDL_render.c" />
     <ClCompile Include="..\..\src\render\SDL_yuv_mmx.c" />
     <ClCompile Include="..\..\src\render\SDL_yuv_sw.c" />
@@ -284,6 +286,8 @@
     <ClInclude Include="..\..\src\joystick\SDL_sysjoystick.h" />
     <ClInclude Include="..\..\src\render\direct3d11\SDL_render_d3d11_cpp.h" />
     <ClInclude Include="..\..\src\render\mmx.h" />
+    <ClInclude Include="..\..\src\render\opengles2\SDL_gles2funcs.h" />
+    <ClInclude Include="..\..\src\render\opengles2\SDL_shaders_gles2.h" />
     <ClInclude Include="..\..\src\render\SDL_sysrender.h" />
     <ClInclude Include="..\..\src\render\SDL_yuv_sw_c.h" />
     <ClInclude Include="..\..\src\render\software\SDL_blendfillrect.h" />
--- a/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters	Thu Nov 28 22:59:21 2013 -0500
+++ b/VisualC-WinRT/SDL/SDL-WinRT_VS2012.vcxproj.filters	Fri Nov 29 00:19:46 2013 -0500
@@ -285,6 +285,12 @@
     <ClCompile Include="..\..\src\video\winrt\SDL_winrtopengles.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\include\begin_code.h">
@@ -635,6 +641,12 @@
     <ClInclude Include="..\..\include\SDL_egl.h">
       <Filter>Header Files</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\render\opengles2\SDL_gles2funcs.h">
+      <Filter>Source Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\render\opengles2\SDL_shaders_gles2.h">
+      <Filter>Source Files</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Filter Include="Header Files">
--- a/include/SDL_config_winrt.h	Thu Nov 28 22:59:21 2013 -0500
+++ b/include/SDL_config_winrt.h	Fri Nov 29 00:19:46 2013 -0500
@@ -179,6 +179,10 @@
 /* Enable appropriate renderer(s) */
 #define SDL_VIDEO_RENDER_D3D11  1
 
+#if SDL_VIDEO_OPENGL_ES2
+#define SDL_VIDEO_RENDER_OGL_ES2 1
+#endif
+
 /* Enable system power support */
 // TODO, WinRT: investigate system power support.  The Win32-based APIs don't work on WinRT.
 #define SDL_POWER_DISABLED  1
--- a/src/render/opengles2/SDL_render_gles2.c	Thu Nov 28 22:59:21 2013 -0500
+++ b/src/render/opengles2/SDL_render_gles2.c	Fri Nov 29 00:19:46 2013 -0500
@@ -1772,6 +1772,14 @@
         return NULL;
     }
 
+#if __WINRT__
+    /* DLudwig, 2013-11-29: ANGLE for WinRT doesn't seem to work unless VSync
+     * is turned on.  Not doing so will freeze the screen's contents to that
+     * of the first drawn frame.
+     */
+    flags |= SDL_RENDERER_PRESENTVSYNC;
+#endif
+
     if (flags & SDL_RENDERER_PRESENTVSYNC) {
         SDL_GL_SetSwapInterval(1);
     } else {