WinRT: enable the OpenGL ES 2 SDL_Renderer backend, if and when OpenGL ES 2 support is compiled in
--- 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 {