WinRT: added Win10/UWP (Universal Windows Platform) support
authorDavid Ludwig <dludwig@pobox.com>
Sun, 29 Nov 2015 19:33:11 -0500
changeset 99310bb3dd1c95f2
parent 9930 84285c1d8ca4
child 9932 a6a953b6d0ce
WinRT: added Win10/UWP (Universal Windows Platform) support

"UWP" appears to be Microsoft's new name for WinRT/Windows-Store APIs.

This set of changes updates SDL's WinRT backends to support the Win10 flavor
of WinRT. It has been tested on Win10 on a desktop. In theory, it should
also support Win10 on other devices (phone, Xbox One, etc.), however further
patches may be necessary.

This adds:
- a set of MSVC 2015 project files, for use in creating UWP apps
- modifications to various pieces of SDL, in order to compile via MSVC 2015 +
the Win10 API set
- enables SDL_Window resizing and programmatic-fullscreen toggling, when using
the WinRT backend
- WinRT README updates
VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj
VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj.filters
docs/README-winrt.md
include/SDL_config_winrt.h
src/audio/xaudio2/SDL_xaudio2.c
src/audio/xaudio2/SDL_xaudio2.h
src/core/winrt/SDL_winrtapp_direct3d.cpp
src/core/winrt/SDL_winrtapp_direct3d.h
src/render/direct3d11/SDL_render_d3d11.c
src/video/SDL_video.c
src/video/winrt/SDL_winrtvideo.cpp
src/video/winrt/SDL_winrtvideo_cpp.h
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj	Sun Nov 29 19:33:11 2015 -0500
     1.3 @@ -0,0 +1,554 @@
     1.4 +<?xml version="1.0" encoding="utf-8"?>
     1.5 +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     1.6 +  <ItemGroup Label="ProjectConfigurations">
     1.7 +    <ProjectConfiguration Include="Debug|ARM">
     1.8 +      <Configuration>Debug</Configuration>
     1.9 +      <Platform>ARM</Platform>
    1.10 +    </ProjectConfiguration>
    1.11 +    <ProjectConfiguration Include="Debug|Win32">
    1.12 +      <Configuration>Debug</Configuration>
    1.13 +      <Platform>Win32</Platform>
    1.14 +    </ProjectConfiguration>
    1.15 +    <ProjectConfiguration Include="Debug|x64">
    1.16 +      <Configuration>Debug</Configuration>
    1.17 +      <Platform>x64</Platform>
    1.18 +    </ProjectConfiguration>
    1.19 +    <ProjectConfiguration Include="Release|ARM">
    1.20 +      <Configuration>Release</Configuration>
    1.21 +      <Platform>ARM</Platform>
    1.22 +    </ProjectConfiguration>
    1.23 +    <ProjectConfiguration Include="Release|Win32">
    1.24 +      <Configuration>Release</Configuration>
    1.25 +      <Platform>Win32</Platform>
    1.26 +    </ProjectConfiguration>
    1.27 +    <ProjectConfiguration Include="Release|x64">
    1.28 +      <Configuration>Release</Configuration>
    1.29 +      <Platform>x64</Platform>
    1.30 +    </ProjectConfiguration>
    1.31 +  </ItemGroup>
    1.32 +  <ItemGroup>
    1.33 +    <ClInclude Include="..\..\include\begin_code.h" />
    1.34 +    <ClInclude Include="..\..\include\close_code.h" />
    1.35 +    <ClInclude Include="..\..\include\SDL.h" />
    1.36 +    <ClInclude Include="..\..\include\SDL_assert.h" />
    1.37 +    <ClInclude Include="..\..\include\SDL_atomic.h" />
    1.38 +    <ClInclude Include="..\..\include\SDL_audio.h" />
    1.39 +    <ClInclude Include="..\..\include\SDL_blendmode.h" />
    1.40 +    <ClInclude Include="..\..\include\SDL_clipboard.h" />
    1.41 +    <ClInclude Include="..\..\include\SDL_config.h" />
    1.42 +    <ClInclude Include="..\..\include\SDL_config_minimal.h" />
    1.43 +    <ClInclude Include="..\..\include\SDL_config_winrt.h" />
    1.44 +    <ClInclude Include="..\..\include\SDL_copying.h" />
    1.45 +    <ClInclude Include="..\..\include\SDL_cpuinfo.h" />
    1.46 +    <ClInclude Include="..\..\include\SDL_egl.h" />
    1.47 +    <ClInclude Include="..\..\include\SDL_endian.h" />
    1.48 +    <ClInclude Include="..\..\include\SDL_error.h" />
    1.49 +    <ClInclude Include="..\..\include\SDL_events.h" />
    1.50 +    <ClInclude Include="..\..\include\SDL_filesystem.h" />
    1.51 +    <ClInclude Include="..\..\include\SDL_haptic.h" />
    1.52 +    <ClInclude Include="..\..\include\SDL_hints.h" />
    1.53 +    <ClInclude Include="..\..\include\SDL_input.h" />
    1.54 +    <ClInclude Include="..\..\include\SDL_joystick.h" />
    1.55 +    <ClInclude Include="..\..\include\SDL_keyboard.h" />
    1.56 +    <ClInclude Include="..\..\include\SDL_keycode.h" />
    1.57 +    <ClInclude Include="..\..\include\SDL_loadso.h" />
    1.58 +    <ClInclude Include="..\..\include\SDL_log.h" />
    1.59 +    <ClInclude Include="..\..\include\SDL_main.h" />
    1.60 +    <ClInclude Include="..\..\include\SDL_mouse.h" />
    1.61 +    <ClInclude Include="..\..\include\SDL_mutex.h" />
    1.62 +    <ClInclude Include="..\..\include\SDL_name.h" />
    1.63 +    <ClInclude Include="..\..\include\SDL_opengles2.h" />
    1.64 +    <ClInclude Include="..\..\include\SDL_pixels.h" />
    1.65 +    <ClInclude Include="..\..\include\SDL_platform.h" />
    1.66 +    <ClInclude Include="..\..\include\SDL_power.h" />
    1.67 +    <ClInclude Include="..\..\include\SDL_quit.h" />
    1.68 +    <ClInclude Include="..\..\include\SDL_rect.h" />
    1.69 +    <ClInclude Include="..\..\include\SDL_render.h" />
    1.70 +    <ClInclude Include="..\..\include\SDL_revision.h" />
    1.71 +    <ClInclude Include="..\..\include\SDL_rwops.h" />
    1.72 +    <ClInclude Include="..\..\include\SDL_scancode.h" />
    1.73 +    <ClInclude Include="..\..\include\SDL_shape.h" />
    1.74 +    <ClInclude Include="..\..\include\SDL_stdinc.h" />
    1.75 +    <ClInclude Include="..\..\include\SDL_surface.h" />
    1.76 +    <ClInclude Include="..\..\include\SDL_system.h" />
    1.77 +    <ClInclude Include="..\..\include\SDL_syswm.h" />
    1.78 +    <ClInclude Include="..\..\include\SDL_thread.h" />
    1.79 +    <ClInclude Include="..\..\include\SDL_timer.h" />
    1.80 +    <ClInclude Include="..\..\include\SDL_touch.h" />
    1.81 +    <ClInclude Include="..\..\include\SDL_types.h" />
    1.82 +    <ClInclude Include="..\..\include\SDL_version.h" />
    1.83 +    <ClInclude Include="..\..\include\SDL_video.h" />
    1.84 +    <ClInclude Include="..\..\src\audio\disk\SDL_diskaudio.h" />
    1.85 +    <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h" />
    1.86 +    <ClInclude Include="..\..\src\audio\SDL_audiodev_c.h" />
    1.87 +    <ClInclude Include="..\..\src\audio\SDL_audiomem.h" />
    1.88 +    <ClInclude Include="..\..\src\audio\SDL_audio_c.h" />
    1.89 +    <ClInclude Include="..\..\src\audio\SDL_sysaudio.h" />
    1.90 +    <ClInclude Include="..\..\src\audio\SDL_wave.h" />
    1.91 +    <ClInclude Include="..\..\src\audio\xaudio2\SDL_xaudio2.h" />
    1.92 +    <ClInclude Include="..\..\src\audio\xaudio2\SDL_xaudio2_winrthelpers.h" />
    1.93 +    <ClInclude Include="..\..\src\core\windows\SDL_directx.h" />
    1.94 +    <ClInclude Include="..\..\src\core\windows\SDL_windows.h" />
    1.95 +    <ClInclude Include="..\..\src\core\windows\SDL_xinput.h" />
    1.96 +    <ClInclude Include="..\..\src\core\winrt\SDL_winrtapp_common.h" />
    1.97 +    <ClInclude Include="..\..\src\core\winrt\SDL_winrtapp_direct3d.h" />
    1.98 +    <ClInclude Include="..\..\src\core\winrt\SDL_winrtapp_xaml.h" />
    1.99 +    <ClInclude Include="..\..\src\dynapi\SDL_dynapi.h" />
   1.100 +    <ClInclude Include="..\..\src\dynapi\SDL_dynapi_overrides.h" />
   1.101 +    <ClInclude Include="..\..\src\dynapi\SDL_dynapi_procs.h" />
   1.102 +    <ClInclude Include="..\..\src\events\blank_cursor.h" />
   1.103 +    <ClInclude Include="..\..\src\events\default_cursor.h" />
   1.104 +    <ClInclude Include="..\..\src\events\SDL_clipboardevents_c.h" />
   1.105 +    <ClInclude Include="..\..\src\events\SDL_dropevents_c.h" />
   1.106 +    <ClInclude Include="..\..\src\events\SDL_events_c.h" />
   1.107 +    <ClInclude Include="..\..\src\events\SDL_keyboard_c.h" />
   1.108 +    <ClInclude Include="..\..\src\events\SDL_mouse_c.h" />
   1.109 +    <ClInclude Include="..\..\src\events\SDL_sysevents.h" />
   1.110 +    <ClInclude Include="..\..\src\events\SDL_touch_c.h" />
   1.111 +    <ClInclude Include="..\..\src\events\SDL_windowevents_c.h" />
   1.112 +    <ClInclude Include="..\..\src\haptic\SDL_haptic_c.h" />
   1.113 +    <ClInclude Include="..\..\src\haptic\SDL_syshaptic.h" />
   1.114 +    <ClInclude Include="..\..\src\haptic\windows\SDL_dinputhaptic_c.h" />
   1.115 +    <ClInclude Include="..\..\src\haptic\windows\SDL_windowshaptic_c.h" />
   1.116 +    <ClInclude Include="..\..\src\haptic\windows\SDL_xinputhaptic_c.h" />
   1.117 +    <ClInclude Include="..\..\src\joystick\SDL_gamecontrollerdb.h" />
   1.118 +    <ClInclude Include="..\..\src\joystick\SDL_joystick_c.h" />
   1.119 +    <ClInclude Include="..\..\src\joystick\SDL_sysjoystick.h" />
   1.120 +    <ClInclude Include="..\..\src\joystick\windows\SDL_dinputjoystick_c.h" />
   1.121 +    <ClInclude Include="..\..\src\joystick\windows\SDL_windowsjoystick_c.h" />
   1.122 +    <ClInclude Include="..\..\src\joystick\windows\SDL_xinputjoystick_c.h" />
   1.123 +    <ClInclude Include="..\..\src\render\direct3d11\SDL_render_winrt.h" />
   1.124 +    <ClInclude Include="..\..\src\render\mmx.h" />
   1.125 +    <ClInclude Include="..\..\src\render\opengles2\SDL_gles2funcs.h" />
   1.126 +    <ClInclude Include="..\..\src\render\opengles2\SDL_shaders_gles2.h" />
   1.127 +    <ClInclude Include="..\..\src\render\SDL_d3dmath.h" />
   1.128 +    <ClInclude Include="..\..\src\render\SDL_sysrender.h" />
   1.129 +    <ClInclude Include="..\..\src\render\SDL_yuv_sw_c.h" />
   1.130 +    <ClInclude Include="..\..\src\render\software\SDL_blendfillrect.h" />
   1.131 +    <ClInclude Include="..\..\src\render\software\SDL_blendline.h" />
   1.132 +    <ClInclude Include="..\..\src\render\software\SDL_blendpoint.h" />
   1.133 +    <ClInclude Include="..\..\src\render\software\SDL_draw.h" />
   1.134 +    <ClInclude Include="..\..\src\render\software\SDL_drawline.h" />
   1.135 +    <ClInclude Include="..\..\src\render\software\SDL_drawpoint.h" />
   1.136 +    <ClInclude Include="..\..\src\render\software\SDL_render_sw_c.h" />
   1.137 +    <ClInclude Include="..\..\src\render\software\SDL_rotate.h" />
   1.138 +    <ClInclude Include="..\..\src\SDL_assert_c.h" />
   1.139 +    <ClInclude Include="..\..\src\SDL_error_c.h" />
   1.140 +    <ClInclude Include="..\..\src\SDL_fatal.h" />
   1.141 +    <ClInclude Include="..\..\src\SDL_hints_c.h" />
   1.142 +    <ClInclude Include="..\..\src\SDL_internal.h" />
   1.143 +    <ClInclude Include="..\..\src\thread\SDL_systhread.h" />
   1.144 +    <ClInclude Include="..\..\src\thread\SDL_thread_c.h" />
   1.145 +    <ClInclude Include="..\..\src\thread\stdcpp\SDL_sysmutex_c.h" />
   1.146 +    <ClInclude Include="..\..\src\thread\stdcpp\SDL_systhread_c.h" />
   1.147 +    <ClInclude Include="..\..\src\timer\SDL_timer_c.h" />
   1.148 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullevents_c.h" />
   1.149 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullframebuffer_c.h" />
   1.150 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullvideo.h" />
   1.151 +    <ClInclude Include="..\..\src\video\SDL_blit.h" />
   1.152 +    <ClInclude Include="..\..\src\video\SDL_blit_auto.h" />
   1.153 +    <ClInclude Include="..\..\src\video\SDL_blit_copy.h" />
   1.154 +    <ClInclude Include="..\..\src\video\SDL_blit_slow.h" />
   1.155 +    <ClInclude Include="..\..\src\video\SDL_egl_c.h" />
   1.156 +    <ClInclude Include="..\..\src\video\SDL_pixels_c.h" />
   1.157 +    <ClInclude Include="..\..\src\video\SDL_rect_c.h" />
   1.158 +    <ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h" />
   1.159 +    <ClInclude Include="..\..\src\video\SDL_shape_internals.h" />
   1.160 +    <ClInclude Include="..\..\src\video\SDL_sysvideo.h" />
   1.161 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtevents_c.h" />
   1.162 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtmessagebox.h" />
   1.163 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtmouse_c.h" />
   1.164 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtopengles.h" />
   1.165 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtvideo_cpp.h" />
   1.166 +  </ItemGroup>
   1.167 +  <ItemGroup>
   1.168 +    <ClCompile Include="..\..\src\atomic\SDL_atomic.c" />
   1.169 +    <ClCompile Include="..\..\src\atomic\SDL_spinlock.c" />
   1.170 +    <ClCompile Include="..\..\src\audio\disk\SDL_diskaudio.c" />
   1.171 +    <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c" />
   1.172 +    <ClCompile Include="..\..\src\audio\SDL_audio.c" />
   1.173 +    <ClCompile Include="..\..\src\audio\SDL_audiocvt.c" />
   1.174 +    <ClCompile Include="..\..\src\audio\SDL_audiodev.c" />
   1.175 +    <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c" />
   1.176 +    <ClCompile Include="..\..\src\audio\SDL_mixer.c" />
   1.177 +    <ClCompile Include="..\..\src\audio\SDL_wave.c" />
   1.178 +    <ClCompile Include="..\..\src\audio\xaudio2\SDL_xaudio2.c" />
   1.179 +    <ClCompile Include="..\..\src\audio\xaudio2\SDL_xaudio2_winrthelpers.cpp">
   1.180 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.181 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.182 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.183 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.184 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.185 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.186 +    </ClCompile>
   1.187 +    <ClCompile Include="..\..\src\core\windows\SDL_windows.c" />
   1.188 +    <ClCompile Include="..\..\src\core\windows\SDL_xinput.c" />
   1.189 +    <ClCompile Include="..\..\src\core\winrt\SDL_winrtapp_common.cpp">
   1.190 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.191 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.192 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.193 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.194 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.195 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.196 +    </ClCompile>
   1.197 +    <ClCompile Include="..\..\src\core\winrt\SDL_winrtapp_direct3d.cpp">
   1.198 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.199 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.200 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.201 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.202 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.203 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.204 +    </ClCompile>
   1.205 +    <ClCompile Include="..\..\src\core\winrt\SDL_winrtapp_xaml.cpp">
   1.206 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.207 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.208 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.209 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.210 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.211 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.212 +    </ClCompile>
   1.213 +    <ClCompile Include="..\..\src\cpuinfo\SDL_cpuinfo.c" />
   1.214 +    <ClCompile Include="..\..\src\dynapi\SDL_dynapi.c" />
   1.215 +    <ClCompile Include="..\..\src\events\SDL_clipboardevents.c" />
   1.216 +    <ClCompile Include="..\..\src\events\SDL_dropevents.c" />
   1.217 +    <ClCompile Include="..\..\src\events\SDL_events.c" />
   1.218 +    <ClCompile Include="..\..\src\events\SDL_gesture.c" />
   1.219 +    <ClCompile Include="..\..\src\events\SDL_keyboard.c" />
   1.220 +    <ClCompile Include="..\..\src\events\SDL_mouse.c" />
   1.221 +    <ClCompile Include="..\..\src\events\SDL_quit.c" />
   1.222 +    <ClCompile Include="..\..\src\events\SDL_touch.c" />
   1.223 +    <ClCompile Include="..\..\src\events\SDL_windowevents.c" />
   1.224 +    <ClCompile Include="..\..\src\filesystem\winrt\SDL_sysfilesystem.cpp">
   1.225 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.226 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.227 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.228 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.229 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.230 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.231 +    </ClCompile>
   1.232 +    <ClCompile Include="..\..\src\file\SDL_rwops.c" />
   1.233 +    <ClCompile Include="..\..\src\haptic\dummy\SDL_syshaptic.c" />
   1.234 +    <ClCompile Include="..\..\src\haptic\SDL_haptic.c" />
   1.235 +    <ClCompile Include="..\..\src\haptic\windows\SDL_dinputhaptic.c" />
   1.236 +    <ClCompile Include="..\..\src\haptic\windows\SDL_windowshaptic.c" />
   1.237 +    <ClCompile Include="..\..\src\haptic\windows\SDL_xinputhaptic.c" />
   1.238 +    <ClCompile Include="..\..\src\joystick\dummy\SDL_sysjoystick.c" />
   1.239 +    <ClCompile Include="..\..\src\joystick\SDL_gamecontroller.c" />
   1.240 +    <ClCompile Include="..\..\src\joystick\SDL_joystick.c" />
   1.241 +    <ClCompile Include="..\..\src\joystick\windows\SDL_dinputjoystick.c" />
   1.242 +    <ClCompile Include="..\..\src\joystick\windows\SDL_windowsjoystick.c" />
   1.243 +    <ClCompile Include="..\..\src\joystick\windows\SDL_xinputjoystick.c" />
   1.244 +    <ClCompile Include="..\..\src\loadso\windows\SDL_sysloadso.c" />
   1.245 +    <ClCompile Include="..\..\src\power\SDL_power.c" />
   1.246 +    <ClCompile Include="..\..\src\power\winrt\SDL_syspower.cpp" />
   1.247 +    <ClCompile Include="..\..\src\render\direct3d11\SDL_render_d3d11.c" />
   1.248 +    <ClCompile Include="..\..\src\render\direct3d11\SDL_render_winrt.cpp">
   1.249 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.250 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.251 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.252 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.253 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.254 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.255 +    </ClCompile>
   1.256 +    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c" />
   1.257 +    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c" />
   1.258 +    <ClCompile Include="..\..\src\render\SDL_d3dmath.c" />
   1.259 +    <ClCompile Include="..\..\src\render\SDL_render.c" />
   1.260 +    <ClCompile Include="..\..\src\render\SDL_yuv_mmx.c" />
   1.261 +    <ClCompile Include="..\..\src\render\SDL_yuv_sw.c" />
   1.262 +    <ClCompile Include="..\..\src\render\software\SDL_blendfillrect.c" />
   1.263 +    <ClCompile Include="..\..\src\render\software\SDL_blendline.c" />
   1.264 +    <ClCompile Include="..\..\src\render\software\SDL_blendpoint.c" />
   1.265 +    <ClCompile Include="..\..\src\render\software\SDL_drawline.c" />
   1.266 +    <ClCompile Include="..\..\src\render\software\SDL_drawpoint.c" />
   1.267 +    <ClCompile Include="..\..\src\render\software\SDL_render_sw.c" />
   1.268 +    <ClCompile Include="..\..\src\render\software\SDL_rotate.c" />
   1.269 +    <ClCompile Include="..\..\src\SDL.c" />
   1.270 +    <ClCompile Include="..\..\src\SDL_assert.c" />
   1.271 +    <ClCompile Include="..\..\src\SDL_error.c" />
   1.272 +    <ClCompile Include="..\..\src\SDL_hints.c" />
   1.273 +    <ClCompile Include="..\..\src\SDL_log.c" />
   1.274 +    <ClCompile Include="..\..\src\stdlib\SDL_getenv.c" />
   1.275 +    <ClCompile Include="..\..\src\stdlib\SDL_iconv.c" />
   1.276 +    <ClCompile Include="..\..\src\stdlib\SDL_malloc.c" />
   1.277 +    <ClCompile Include="..\..\src\stdlib\SDL_qsort.c" />
   1.278 +    <ClCompile Include="..\..\src\stdlib\SDL_stdlib.c" />
   1.279 +    <ClCompile Include="..\..\src\stdlib\SDL_string.c" />
   1.280 +    <ClCompile Include="..\..\src\thread\generic\SDL_syssem.c" />
   1.281 +    <ClCompile Include="..\..\src\thread\SDL_thread.c" />
   1.282 +    <ClCompile Include="..\..\src\thread\stdcpp\SDL_syscond.cpp" />
   1.283 +    <ClCompile Include="..\..\src\thread\stdcpp\SDL_sysmutex.cpp" />
   1.284 +    <ClCompile Include="..\..\src\thread\stdcpp\SDL_systhread.cpp" />
   1.285 +    <ClCompile Include="..\..\src\timer\SDL_timer.c" />
   1.286 +    <ClCompile Include="..\..\src\timer\windows\SDL_systimer.c" />
   1.287 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullevents.c" />
   1.288 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c" />
   1.289 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c" />
   1.290 +    <ClCompile Include="..\..\src\video\SDL_blit.c" />
   1.291 +    <ClCompile Include="..\..\src\video\SDL_blit_0.c" />
   1.292 +    <ClCompile Include="..\..\src\video\SDL_blit_1.c" />
   1.293 +    <ClCompile Include="..\..\src\video\SDL_blit_A.c" />
   1.294 +    <ClCompile Include="..\..\src\video\SDL_blit_auto.c" />
   1.295 +    <ClCompile Include="..\..\src\video\SDL_blit_copy.c" />
   1.296 +    <ClCompile Include="..\..\src\video\SDL_blit_N.c" />
   1.297 +    <ClCompile Include="..\..\src\video\SDL_blit_slow.c" />
   1.298 +    <ClCompile Include="..\..\src\video\SDL_bmp.c" />
   1.299 +    <ClCompile Include="..\..\src\video\SDL_clipboard.c" />
   1.300 +    <ClCompile Include="..\..\src\video\SDL_egl.c" />
   1.301 +    <ClCompile Include="..\..\src\video\SDL_fillrect.c" />
   1.302 +    <ClCompile Include="..\..\src\video\SDL_pixels.c" />
   1.303 +    <ClCompile Include="..\..\src\video\SDL_rect.c" />
   1.304 +    <ClCompile Include="..\..\src\video\SDL_RLEaccel.c" />
   1.305 +    <ClCompile Include="..\..\src\video\SDL_shape.c" />
   1.306 +    <ClCompile Include="..\..\src\video\SDL_stretch.c" />
   1.307 +    <ClCompile Include="..\..\src\video\SDL_surface.c" />
   1.308 +    <ClCompile Include="..\..\src\video\SDL_video.c" />
   1.309 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtevents.cpp">
   1.310 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.311 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.312 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.313 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.314 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.315 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.316 +    </ClCompile>
   1.317 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtkeyboard.cpp">
   1.318 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.319 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.320 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.321 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.322 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.323 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.324 +    </ClCompile>
   1.325 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtmessagebox.cpp">
   1.326 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.327 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.328 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.329 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.330 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.331 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.332 +    </ClCompile>
   1.333 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtmouse.cpp">
   1.334 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.335 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.336 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.337 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.338 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.339 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.340 +    </ClCompile>
   1.341 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtopengles.cpp">
   1.342 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.343 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.344 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.345 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.346 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.347 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.348 +    </ClCompile>
   1.349 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtpointerinput.cpp">
   1.350 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.351 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.352 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.353 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.354 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.355 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.356 +    </ClCompile>
   1.357 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtvideo.cpp">
   1.358 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</CompileAsWinRT>
   1.359 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">true</CompileAsWinRT>
   1.360 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</CompileAsWinRT>
   1.361 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</CompileAsWinRT>
   1.362 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">true</CompileAsWinRT>
   1.363 +      <CompileAsWinRT Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</CompileAsWinRT>
   1.364 +    </ClCompile>
   1.365 +  </ItemGroup>
   1.366 +  <PropertyGroup Label="Globals">
   1.367 +    <ProjectGuid>{89e9b32e-a86a-47c3-a948-d2b1622925ce}</ProjectGuid>
   1.368 +    <Keyword>DynamicLibrary</Keyword>
   1.369 +    <ProjectName>SDL2-UWP</ProjectName>
   1.370 +    <RootNamespace>SDL2</RootNamespace>
   1.371 +    <DefaultLanguage>en-US</DefaultLanguage>
   1.372 +    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
   1.373 +    <AppContainerApplication>true</AppContainerApplication>
   1.374 +    <ApplicationType>Windows Store</ApplicationType>
   1.375 +    <ApplicationTypeRevision>8.2</ApplicationTypeRevision>
   1.376 +    <TargetPlatformVersion>10.0.10069.0</TargetPlatformVersion>
   1.377 +    <TargetPlatformMinVersion>10.0.10069.0</TargetPlatformMinVersion>
   1.378 +    <WindowsTargetPlatformVersion>10.0.10240.0</WindowsTargetPlatformVersion>
   1.379 +    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
   1.380 +  </PropertyGroup>
   1.381 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   1.382 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
   1.383 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   1.384 +    <UseDebugLibraries>true</UseDebugLibraries>
   1.385 +    <PlatformToolset>v140</PlatformToolset>
   1.386 +  </PropertyGroup>
   1.387 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
   1.388 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   1.389 +    <UseDebugLibraries>true</UseDebugLibraries>
   1.390 +    <PlatformToolset>v140</PlatformToolset>
   1.391 +  </PropertyGroup>
   1.392 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
   1.393 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   1.394 +    <UseDebugLibraries>true</UseDebugLibraries>
   1.395 +    <PlatformToolset>v140</PlatformToolset>
   1.396 +  </PropertyGroup>
   1.397 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
   1.398 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   1.399 +    <UseDebugLibraries>false</UseDebugLibraries>
   1.400 +    <WholeProgramOptimization>true</WholeProgramOptimization>
   1.401 +    <PlatformToolset>v140</PlatformToolset>
   1.402 +  </PropertyGroup>
   1.403 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
   1.404 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   1.405 +    <UseDebugLibraries>false</UseDebugLibraries>
   1.406 +    <WholeProgramOptimization>true</WholeProgramOptimization>
   1.407 +    <PlatformToolset>v140</PlatformToolset>
   1.408 +  </PropertyGroup>
   1.409 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
   1.410 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
   1.411 +    <UseDebugLibraries>false</UseDebugLibraries>
   1.412 +    <WholeProgramOptimization>true</WholeProgramOptimization>
   1.413 +    <PlatformToolset>v140</PlatformToolset>
   1.414 +  </PropertyGroup>
   1.415 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   1.416 +  <ImportGroup Label="ExtensionSettings">
   1.417 +  </ImportGroup>
   1.418 +  <ImportGroup Label="Shared">
   1.419 +  </ImportGroup>
   1.420 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   1.421 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   1.422 +  </ImportGroup>
   1.423 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   1.424 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   1.425 +  </ImportGroup>
   1.426 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
   1.427 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   1.428 +  </ImportGroup>
   1.429 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
   1.430 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   1.431 +  </ImportGroup>
   1.432 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   1.433 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   1.434 +  </ImportGroup>
   1.435 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   1.436 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   1.437 +  </ImportGroup>
   1.438 +  <PropertyGroup Label="UserMacros" />
   1.439 +  <PropertyGroup />
   1.440 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   1.441 +    <GenerateManifest>false</GenerateManifest>
   1.442 +    <IgnoreImportLibrary>false</IgnoreImportLibrary>
   1.443 +    <TargetName>SDL2</TargetName>
   1.444 +  </PropertyGroup>
   1.445 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   1.446 +    <GenerateManifest>false</GenerateManifest>
   1.447 +    <IgnoreImportLibrary>false</IgnoreImportLibrary>
   1.448 +    <TargetName>SDL2</TargetName>
   1.449 +  </PropertyGroup>
   1.450 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
   1.451 +    <GenerateManifest>false</GenerateManifest>
   1.452 +    <IgnoreImportLibrary>false</IgnoreImportLibrary>
   1.453 +    <TargetName>SDL2</TargetName>
   1.454 +  </PropertyGroup>
   1.455 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
   1.456 +    <GenerateManifest>false</GenerateManifest>
   1.457 +    <IgnoreImportLibrary>false</IgnoreImportLibrary>
   1.458 +    <TargetName>SDL2</TargetName>
   1.459 +  </PropertyGroup>
   1.460 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   1.461 +    <GenerateManifest>false</GenerateManifest>
   1.462 +    <IgnoreImportLibrary>false</IgnoreImportLibrary>
   1.463 +    <TargetName>SDL2</TargetName>
   1.464 +  </PropertyGroup>
   1.465 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   1.466 +    <GenerateManifest>false</GenerateManifest>
   1.467 +    <IgnoreImportLibrary>false</IgnoreImportLibrary>
   1.468 +    <TargetName>SDL2</TargetName>
   1.469 +  </PropertyGroup>
   1.470 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   1.471 +    <ClCompile>
   1.472 +      <PrecompiledHeader>NotUsing</PrecompiledHeader>
   1.473 +      <CompileAsWinRT>false</CompileAsWinRT>
   1.474 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   1.475 +      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.476 +    </ClCompile>
   1.477 +    <Link>
   1.478 +      <SubSystem>Console</SubSystem>
   1.479 +      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
   1.480 +      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
   1.481 +      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
   1.482 +    </Link>
   1.483 +  </ItemDefinitionGroup>
   1.484 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   1.485 +    <ClCompile>
   1.486 +      <PrecompiledHeader>NotUsing</PrecompiledHeader>
   1.487 +      <CompileAsWinRT>false</CompileAsWinRT>
   1.488 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   1.489 +      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.490 +    </ClCompile>
   1.491 +    <Link>
   1.492 +      <SubSystem>Console</SubSystem>
   1.493 +      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
   1.494 +      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
   1.495 +      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
   1.496 +    </Link>
   1.497 +  </ItemDefinitionGroup>
   1.498 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
   1.499 +    <ClCompile>
   1.500 +      <PrecompiledHeader>NotUsing</PrecompiledHeader>
   1.501 +      <CompileAsWinRT>false</CompileAsWinRT>
   1.502 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   1.503 +      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.504 +    </ClCompile>
   1.505 +    <Link>
   1.506 +      <SubSystem>Console</SubSystem>
   1.507 +      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
   1.508 +      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
   1.509 +      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
   1.510 +    </Link>
   1.511 +  </ItemDefinitionGroup>
   1.512 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
   1.513 +    <ClCompile>
   1.514 +      <PrecompiledHeader>NotUsing</PrecompiledHeader>
   1.515 +      <CompileAsWinRT>false</CompileAsWinRT>
   1.516 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   1.517 +      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.518 +    </ClCompile>
   1.519 +    <Link>
   1.520 +      <SubSystem>Console</SubSystem>
   1.521 +      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
   1.522 +      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
   1.523 +      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
   1.524 +    </Link>
   1.525 +  </ItemDefinitionGroup>
   1.526 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   1.527 +    <ClCompile>
   1.528 +      <PrecompiledHeader>NotUsing</PrecompiledHeader>
   1.529 +      <CompileAsWinRT>false</CompileAsWinRT>
   1.530 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   1.531 +      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.532 +    </ClCompile>
   1.533 +    <Link>
   1.534 +      <SubSystem>Console</SubSystem>
   1.535 +      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
   1.536 +      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
   1.537 +      <AdditionalOptions>/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib %(AdditionalOptions)</AdditionalOptions>
   1.538 +    </Link>
   1.539 +  </ItemDefinitionGroup>
   1.540 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   1.541 +    <ClCompile>
   1.542 +      <PrecompiledHeader>NotUsing</PrecompiledHeader>
   1.543 +      <CompileAsWinRT>false</CompileAsWinRT>
   1.544 +      <AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
   1.545 +      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
   1.546 +    </ClCompile>
   1.547 +    <Link>
   1.548 +      <SubSystem>Console</SubSystem>
   1.549 +      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
   1.550 +      <GenerateWindowsMetadata>false</GenerateWindowsMetadata>
   1.551 +      <AdditionalOptions>/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib %(AdditionalOptions)</AdditionalOptions>
   1.552 +    </Link>
   1.553 +  </ItemDefinitionGroup>
   1.554 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   1.555 +  <ImportGroup Label="ExtensionTargets">
   1.556 +  </ImportGroup>
   1.557 +</Project>
   1.558 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/VisualC-WinRT/UWP_VS2015/SDL-UWP.vcxproj.filters	Sun Nov 29 19:33:11 2015 -0500
     2.3 @@ -0,0 +1,720 @@
     2.4 +<?xml version="1.0" encoding="utf-8"?>
     2.5 +<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     2.6 +  <ItemGroup>
     2.7 +    <Filter Include="Header Files">
     2.8 +      <UniqueIdentifier>{fa0ff2df-c3d6-498a-96f1-1f88e7ce0da3}</UniqueIdentifier>
     2.9 +    </Filter>
    2.10 +    <Filter Include="Source Files">
    2.11 +      <UniqueIdentifier>{68e1b30b-19ed-4612-93e4-6260c5a979e5}</UniqueIdentifier>
    2.12 +    </Filter>
    2.13 +  </ItemGroup>
    2.14 +  <ItemGroup>
    2.15 +    <ClInclude Include="..\..\include\begin_code.h">
    2.16 +      <Filter>Header Files</Filter>
    2.17 +    </ClInclude>
    2.18 +    <ClInclude Include="..\..\include\close_code.h">
    2.19 +      <Filter>Header Files</Filter>
    2.20 +    </ClInclude>
    2.21 +    <ClInclude Include="..\..\include\SDL.h">
    2.22 +      <Filter>Header Files</Filter>
    2.23 +    </ClInclude>
    2.24 +    <ClInclude Include="..\..\include\SDL_assert.h">
    2.25 +      <Filter>Header Files</Filter>
    2.26 +    </ClInclude>
    2.27 +    <ClInclude Include="..\..\include\SDL_atomic.h">
    2.28 +      <Filter>Header Files</Filter>
    2.29 +    </ClInclude>
    2.30 +    <ClInclude Include="..\..\include\SDL_audio.h">
    2.31 +      <Filter>Header Files</Filter>
    2.32 +    </ClInclude>
    2.33 +    <ClInclude Include="..\..\include\SDL_blendmode.h">
    2.34 +      <Filter>Header Files</Filter>
    2.35 +    </ClInclude>
    2.36 +    <ClInclude Include="..\..\include\SDL_clipboard.h">
    2.37 +      <Filter>Header Files</Filter>
    2.38 +    </ClInclude>
    2.39 +    <ClInclude Include="..\..\include\SDL_config.h">
    2.40 +      <Filter>Header Files</Filter>
    2.41 +    </ClInclude>
    2.42 +    <ClInclude Include="..\..\include\SDL_config_minimal.h">
    2.43 +      <Filter>Header Files</Filter>
    2.44 +    </ClInclude>
    2.45 +    <ClInclude Include="..\..\include\SDL_config_winrt.h">
    2.46 +      <Filter>Header Files</Filter>
    2.47 +    </ClInclude>
    2.48 +    <ClInclude Include="..\..\include\SDL_copying.h">
    2.49 +      <Filter>Header Files</Filter>
    2.50 +    </ClInclude>
    2.51 +    <ClInclude Include="..\..\include\SDL_cpuinfo.h">
    2.52 +      <Filter>Header Files</Filter>
    2.53 +    </ClInclude>
    2.54 +    <ClInclude Include="..\..\include\SDL_egl.h">
    2.55 +      <Filter>Header Files</Filter>
    2.56 +    </ClInclude>
    2.57 +    <ClInclude Include="..\..\include\SDL_endian.h">
    2.58 +      <Filter>Header Files</Filter>
    2.59 +    </ClInclude>
    2.60 +    <ClInclude Include="..\..\include\SDL_error.h">
    2.61 +      <Filter>Header Files</Filter>
    2.62 +    </ClInclude>
    2.63 +    <ClInclude Include="..\..\include\SDL_events.h">
    2.64 +      <Filter>Header Files</Filter>
    2.65 +    </ClInclude>
    2.66 +    <ClInclude Include="..\..\include\SDL_filesystem.h">
    2.67 +      <Filter>Header Files</Filter>
    2.68 +    </ClInclude>
    2.69 +    <ClInclude Include="..\..\include\SDL_haptic.h">
    2.70 +      <Filter>Header Files</Filter>
    2.71 +    </ClInclude>
    2.72 +    <ClInclude Include="..\..\include\SDL_hints.h">
    2.73 +      <Filter>Header Files</Filter>
    2.74 +    </ClInclude>
    2.75 +    <ClInclude Include="..\..\include\SDL_input.h">
    2.76 +      <Filter>Header Files</Filter>
    2.77 +    </ClInclude>
    2.78 +    <ClInclude Include="..\..\include\SDL_joystick.h">
    2.79 +      <Filter>Header Files</Filter>
    2.80 +    </ClInclude>
    2.81 +    <ClInclude Include="..\..\include\SDL_keyboard.h">
    2.82 +      <Filter>Header Files</Filter>
    2.83 +    </ClInclude>
    2.84 +    <ClInclude Include="..\..\include\SDL_keycode.h">
    2.85 +      <Filter>Header Files</Filter>
    2.86 +    </ClInclude>
    2.87 +    <ClInclude Include="..\..\include\SDL_loadso.h">
    2.88 +      <Filter>Header Files</Filter>
    2.89 +    </ClInclude>
    2.90 +    <ClInclude Include="..\..\include\SDL_log.h">
    2.91 +      <Filter>Header Files</Filter>
    2.92 +    </ClInclude>
    2.93 +    <ClInclude Include="..\..\include\SDL_main.h">
    2.94 +      <Filter>Header Files</Filter>
    2.95 +    </ClInclude>
    2.96 +    <ClInclude Include="..\..\include\SDL_mouse.h">
    2.97 +      <Filter>Header Files</Filter>
    2.98 +    </ClInclude>
    2.99 +    <ClInclude Include="..\..\include\SDL_mutex.h">
   2.100 +      <Filter>Header Files</Filter>
   2.101 +    </ClInclude>
   2.102 +    <ClInclude Include="..\..\include\SDL_name.h">
   2.103 +      <Filter>Header Files</Filter>
   2.104 +    </ClInclude>
   2.105 +    <ClInclude Include="..\..\include\SDL_opengles2.h">
   2.106 +      <Filter>Header Files</Filter>
   2.107 +    </ClInclude>
   2.108 +    <ClInclude Include="..\..\include\SDL_pixels.h">
   2.109 +      <Filter>Header Files</Filter>
   2.110 +    </ClInclude>
   2.111 +    <ClInclude Include="..\..\include\SDL_platform.h">
   2.112 +      <Filter>Header Files</Filter>
   2.113 +    </ClInclude>
   2.114 +    <ClInclude Include="..\..\include\SDL_power.h">
   2.115 +      <Filter>Header Files</Filter>
   2.116 +    </ClInclude>
   2.117 +    <ClInclude Include="..\..\include\SDL_quit.h">
   2.118 +      <Filter>Header Files</Filter>
   2.119 +    </ClInclude>
   2.120 +    <ClInclude Include="..\..\include\SDL_rect.h">
   2.121 +      <Filter>Header Files</Filter>
   2.122 +    </ClInclude>
   2.123 +    <ClInclude Include="..\..\include\SDL_render.h">
   2.124 +      <Filter>Header Files</Filter>
   2.125 +    </ClInclude>
   2.126 +    <ClInclude Include="..\..\include\SDL_revision.h">
   2.127 +      <Filter>Header Files</Filter>
   2.128 +    </ClInclude>
   2.129 +    <ClInclude Include="..\..\include\SDL_rwops.h">
   2.130 +      <Filter>Header Files</Filter>
   2.131 +    </ClInclude>
   2.132 +    <ClInclude Include="..\..\include\SDL_scancode.h">
   2.133 +      <Filter>Header Files</Filter>
   2.134 +    </ClInclude>
   2.135 +    <ClInclude Include="..\..\include\SDL_shape.h">
   2.136 +      <Filter>Header Files</Filter>
   2.137 +    </ClInclude>
   2.138 +    <ClInclude Include="..\..\include\SDL_stdinc.h">
   2.139 +      <Filter>Header Files</Filter>
   2.140 +    </ClInclude>
   2.141 +    <ClInclude Include="..\..\include\SDL_surface.h">
   2.142 +      <Filter>Header Files</Filter>
   2.143 +    </ClInclude>
   2.144 +    <ClInclude Include="..\..\include\SDL_system.h">
   2.145 +      <Filter>Header Files</Filter>
   2.146 +    </ClInclude>
   2.147 +    <ClInclude Include="..\..\include\SDL_syswm.h">
   2.148 +      <Filter>Header Files</Filter>
   2.149 +    </ClInclude>
   2.150 +    <ClInclude Include="..\..\include\SDL_thread.h">
   2.151 +      <Filter>Header Files</Filter>
   2.152 +    </ClInclude>
   2.153 +    <ClInclude Include="..\..\include\SDL_timer.h">
   2.154 +      <Filter>Header Files</Filter>
   2.155 +    </ClInclude>
   2.156 +    <ClInclude Include="..\..\include\SDL_touch.h">
   2.157 +      <Filter>Header Files</Filter>
   2.158 +    </ClInclude>
   2.159 +    <ClInclude Include="..\..\include\SDL_types.h">
   2.160 +      <Filter>Header Files</Filter>
   2.161 +    </ClInclude>
   2.162 +    <ClInclude Include="..\..\include\SDL_version.h">
   2.163 +      <Filter>Header Files</Filter>
   2.164 +    </ClInclude>
   2.165 +    <ClInclude Include="..\..\include\SDL_video.h">
   2.166 +      <Filter>Header Files</Filter>
   2.167 +    </ClInclude>
   2.168 +    <ClInclude Include="..\..\src\joystick\SDL_gamecontrollerdb.h">
   2.169 +      <Filter>Header Files</Filter>
   2.170 +    </ClInclude>
   2.171 +    <ClInclude Include="..\..\src\audio\disk\SDL_diskaudio.h">
   2.172 +      <Filter>Source Files</Filter>
   2.173 +    </ClInclude>
   2.174 +    <ClInclude Include="..\..\src\audio\dummy\SDL_dummyaudio.h">
   2.175 +      <Filter>Source Files</Filter>
   2.176 +    </ClInclude>
   2.177 +    <ClInclude Include="..\..\src\audio\SDL_audiodev_c.h">
   2.178 +      <Filter>Source Files</Filter>
   2.179 +    </ClInclude>
   2.180 +    <ClInclude Include="..\..\src\audio\SDL_audiomem.h">
   2.181 +      <Filter>Source Files</Filter>
   2.182 +    </ClInclude>
   2.183 +    <ClInclude Include="..\..\src\audio\SDL_audio_c.h">
   2.184 +      <Filter>Source Files</Filter>
   2.185 +    </ClInclude>
   2.186 +    <ClInclude Include="..\..\src\audio\SDL_sysaudio.h">
   2.187 +      <Filter>Source Files</Filter>
   2.188 +    </ClInclude>
   2.189 +    <ClInclude Include="..\..\src\audio\SDL_wave.h">
   2.190 +      <Filter>Source Files</Filter>
   2.191 +    </ClInclude>
   2.192 +    <ClInclude Include="..\..\src\audio\xaudio2\SDL_xaudio2_winrthelpers.h">
   2.193 +      <Filter>Source Files</Filter>
   2.194 +    </ClInclude>
   2.195 +    <ClInclude Include="..\..\src\core\windows\SDL_directx.h">
   2.196 +      <Filter>Source Files</Filter>
   2.197 +    </ClInclude>
   2.198 +    <ClInclude Include="..\..\src\core\windows\SDL_windows.h">
   2.199 +      <Filter>Source Files</Filter>
   2.200 +    </ClInclude>
   2.201 +    <ClInclude Include="..\..\src\core\windows\SDL_xinput.h">
   2.202 +      <Filter>Source Files</Filter>
   2.203 +    </ClInclude>
   2.204 +    <ClInclude Include="..\..\src\core\winrt\SDL_winrtapp_common.h">
   2.205 +      <Filter>Source Files</Filter>
   2.206 +    </ClInclude>
   2.207 +    <ClInclude Include="..\..\src\core\winrt\SDL_winrtapp_direct3d.h">
   2.208 +      <Filter>Source Files</Filter>
   2.209 +    </ClInclude>
   2.210 +    <ClInclude Include="..\..\src\core\winrt\SDL_winrtapp_xaml.h">
   2.211 +      <Filter>Source Files</Filter>
   2.212 +    </ClInclude>
   2.213 +    <ClInclude Include="..\..\src\dynapi\SDL_dynapi.h">
   2.214 +      <Filter>Source Files</Filter>
   2.215 +    </ClInclude>
   2.216 +    <ClInclude Include="..\..\src\dynapi\SDL_dynapi_overrides.h">
   2.217 +      <Filter>Source Files</Filter>
   2.218 +    </ClInclude>
   2.219 +    <ClInclude Include="..\..\src\dynapi\SDL_dynapi_procs.h">
   2.220 +      <Filter>Source Files</Filter>
   2.221 +    </ClInclude>
   2.222 +    <ClInclude Include="..\..\src\events\blank_cursor.h">
   2.223 +      <Filter>Source Files</Filter>
   2.224 +    </ClInclude>
   2.225 +    <ClInclude Include="..\..\src\events\default_cursor.h">
   2.226 +      <Filter>Source Files</Filter>
   2.227 +    </ClInclude>
   2.228 +    <ClInclude Include="..\..\src\events\SDL_clipboardevents_c.h">
   2.229 +      <Filter>Source Files</Filter>
   2.230 +    </ClInclude>
   2.231 +    <ClInclude Include="..\..\src\events\SDL_dropevents_c.h">
   2.232 +      <Filter>Source Files</Filter>
   2.233 +    </ClInclude>
   2.234 +    <ClInclude Include="..\..\src\events\SDL_events_c.h">
   2.235 +      <Filter>Source Files</Filter>
   2.236 +    </ClInclude>
   2.237 +    <ClInclude Include="..\..\src\events\SDL_keyboard_c.h">
   2.238 +      <Filter>Source Files</Filter>
   2.239 +    </ClInclude>
   2.240 +    <ClInclude Include="..\..\src\events\SDL_mouse_c.h">
   2.241 +      <Filter>Source Files</Filter>
   2.242 +    </ClInclude>
   2.243 +    <ClInclude Include="..\..\src\events\SDL_sysevents.h">
   2.244 +      <Filter>Source Files</Filter>
   2.245 +    </ClInclude>
   2.246 +    <ClInclude Include="..\..\src\events\SDL_touch_c.h">
   2.247 +      <Filter>Source Files</Filter>
   2.248 +    </ClInclude>
   2.249 +    <ClInclude Include="..\..\src\events\SDL_windowevents_c.h">
   2.250 +      <Filter>Source Files</Filter>
   2.251 +    </ClInclude>
   2.252 +    <ClInclude Include="..\..\src\haptic\SDL_haptic_c.h">
   2.253 +      <Filter>Source Files</Filter>
   2.254 +    </ClInclude>
   2.255 +    <ClInclude Include="..\..\src\haptic\SDL_syshaptic.h">
   2.256 +      <Filter>Source Files</Filter>
   2.257 +    </ClInclude>
   2.258 +    <ClInclude Include="..\..\src\joystick\SDL_joystick_c.h">
   2.259 +      <Filter>Source Files</Filter>
   2.260 +    </ClInclude>
   2.261 +    <ClInclude Include="..\..\src\joystick\SDL_sysjoystick.h">
   2.262 +      <Filter>Source Files</Filter>
   2.263 +    </ClInclude>
   2.264 +    <ClInclude Include="..\..\src\joystick\windows\SDL_dinputjoystick_c.h">
   2.265 +      <Filter>Source Files</Filter>
   2.266 +    </ClInclude>
   2.267 +    <ClInclude Include="..\..\src\joystick\windows\SDL_windowsjoystick_c.h">
   2.268 +      <Filter>Source Files</Filter>
   2.269 +    </ClInclude>
   2.270 +    <ClInclude Include="..\..\src\joystick\windows\SDL_xinputjoystick_c.h">
   2.271 +      <Filter>Source Files</Filter>
   2.272 +    </ClInclude>
   2.273 +    <ClInclude Include="..\..\src\render\direct3d11\SDL_render_winrt.h">
   2.274 +      <Filter>Source Files</Filter>
   2.275 +    </ClInclude>
   2.276 +    <ClInclude Include="..\..\src\render\mmx.h">
   2.277 +      <Filter>Source Files</Filter>
   2.278 +    </ClInclude>
   2.279 +    <ClInclude Include="..\..\src\render\opengles2\SDL_gles2funcs.h">
   2.280 +      <Filter>Source Files</Filter>
   2.281 +    </ClInclude>
   2.282 +    <ClInclude Include="..\..\src\render\opengles2\SDL_shaders_gles2.h">
   2.283 +      <Filter>Source Files</Filter>
   2.284 +    </ClInclude>
   2.285 +    <ClInclude Include="..\..\src\render\SDL_d3dmath.h">
   2.286 +      <Filter>Source Files</Filter>
   2.287 +    </ClInclude>
   2.288 +    <ClInclude Include="..\..\src\render\SDL_sysrender.h">
   2.289 +      <Filter>Source Files</Filter>
   2.290 +    </ClInclude>
   2.291 +    <ClInclude Include="..\..\src\render\SDL_yuv_sw_c.h">
   2.292 +      <Filter>Source Files</Filter>
   2.293 +    </ClInclude>
   2.294 +    <ClInclude Include="..\..\src\render\software\SDL_blendfillrect.h">
   2.295 +      <Filter>Source Files</Filter>
   2.296 +    </ClInclude>
   2.297 +    <ClInclude Include="..\..\src\render\software\SDL_blendline.h">
   2.298 +      <Filter>Source Files</Filter>
   2.299 +    </ClInclude>
   2.300 +    <ClInclude Include="..\..\src\render\software\SDL_blendpoint.h">
   2.301 +      <Filter>Source Files</Filter>
   2.302 +    </ClInclude>
   2.303 +    <ClInclude Include="..\..\src\render\software\SDL_draw.h">
   2.304 +      <Filter>Source Files</Filter>
   2.305 +    </ClInclude>
   2.306 +    <ClInclude Include="..\..\src\render\software\SDL_drawline.h">
   2.307 +      <Filter>Source Files</Filter>
   2.308 +    </ClInclude>
   2.309 +    <ClInclude Include="..\..\src\render\software\SDL_drawpoint.h">
   2.310 +      <Filter>Source Files</Filter>
   2.311 +    </ClInclude>
   2.312 +    <ClInclude Include="..\..\src\render\software\SDL_render_sw_c.h">
   2.313 +      <Filter>Source Files</Filter>
   2.314 +    </ClInclude>
   2.315 +    <ClInclude Include="..\..\src\render\software\SDL_rotate.h">
   2.316 +      <Filter>Source Files</Filter>
   2.317 +    </ClInclude>
   2.318 +    <ClInclude Include="..\..\src\SDL_assert_c.h">
   2.319 +      <Filter>Source Files</Filter>
   2.320 +    </ClInclude>
   2.321 +    <ClInclude Include="..\..\src\SDL_error_c.h">
   2.322 +      <Filter>Source Files</Filter>
   2.323 +    </ClInclude>
   2.324 +    <ClInclude Include="..\..\src\SDL_fatal.h">
   2.325 +      <Filter>Source Files</Filter>
   2.326 +    </ClInclude>
   2.327 +    <ClInclude Include="..\..\src\SDL_hints_c.h">
   2.328 +      <Filter>Source Files</Filter>
   2.329 +    </ClInclude>
   2.330 +    <ClInclude Include="..\..\src\SDL_internal.h">
   2.331 +      <Filter>Source Files</Filter>
   2.332 +    </ClInclude>
   2.333 +    <ClInclude Include="..\..\src\thread\SDL_systhread.h">
   2.334 +      <Filter>Source Files</Filter>
   2.335 +    </ClInclude>
   2.336 +    <ClInclude Include="..\..\src\thread\SDL_thread_c.h">
   2.337 +      <Filter>Source Files</Filter>
   2.338 +    </ClInclude>
   2.339 +    <ClInclude Include="..\..\src\thread\stdcpp\SDL_sysmutex_c.h">
   2.340 +      <Filter>Source Files</Filter>
   2.341 +    </ClInclude>
   2.342 +    <ClInclude Include="..\..\src\thread\stdcpp\SDL_systhread_c.h">
   2.343 +      <Filter>Source Files</Filter>
   2.344 +    </ClInclude>
   2.345 +    <ClInclude Include="..\..\src\timer\SDL_timer_c.h">
   2.346 +      <Filter>Source Files</Filter>
   2.347 +    </ClInclude>
   2.348 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullevents_c.h">
   2.349 +      <Filter>Source Files</Filter>
   2.350 +    </ClInclude>
   2.351 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullframebuffer_c.h">
   2.352 +      <Filter>Source Files</Filter>
   2.353 +    </ClInclude>
   2.354 +    <ClInclude Include="..\..\src\video\dummy\SDL_nullvideo.h">
   2.355 +      <Filter>Source Files</Filter>
   2.356 +    </ClInclude>
   2.357 +    <ClInclude Include="..\..\src\video\SDL_blit.h">
   2.358 +      <Filter>Source Files</Filter>
   2.359 +    </ClInclude>
   2.360 +    <ClInclude Include="..\..\src\video\SDL_blit_auto.h">
   2.361 +      <Filter>Source Files</Filter>
   2.362 +    </ClInclude>
   2.363 +    <ClInclude Include="..\..\src\video\SDL_blit_copy.h">
   2.364 +      <Filter>Source Files</Filter>
   2.365 +    </ClInclude>
   2.366 +    <ClInclude Include="..\..\src\video\SDL_blit_slow.h">
   2.367 +      <Filter>Source Files</Filter>
   2.368 +    </ClInclude>
   2.369 +    <ClInclude Include="..\..\src\video\SDL_egl_c.h">
   2.370 +      <Filter>Source Files</Filter>
   2.371 +    </ClInclude>
   2.372 +    <ClInclude Include="..\..\src\video\SDL_pixels_c.h">
   2.373 +      <Filter>Source Files</Filter>
   2.374 +    </ClInclude>
   2.375 +    <ClInclude Include="..\..\src\video\SDL_rect_c.h">
   2.376 +      <Filter>Source Files</Filter>
   2.377 +    </ClInclude>
   2.378 +    <ClInclude Include="..\..\src\video\SDL_RLEaccel_c.h">
   2.379 +      <Filter>Source Files</Filter>
   2.380 +    </ClInclude>
   2.381 +    <ClInclude Include="..\..\src\video\SDL_shape_internals.h">
   2.382 +      <Filter>Source Files</Filter>
   2.383 +    </ClInclude>
   2.384 +    <ClInclude Include="..\..\src\video\SDL_sysvideo.h">
   2.385 +      <Filter>Source Files</Filter>
   2.386 +    </ClInclude>
   2.387 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtevents_c.h">
   2.388 +      <Filter>Source Files</Filter>
   2.389 +    </ClInclude>
   2.390 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtmessagebox.h">
   2.391 +      <Filter>Source Files</Filter>
   2.392 +    </ClInclude>
   2.393 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtmouse_c.h">
   2.394 +      <Filter>Source Files</Filter>
   2.395 +    </ClInclude>
   2.396 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtopengles.h">
   2.397 +      <Filter>Source Files</Filter>
   2.398 +    </ClInclude>
   2.399 +    <ClInclude Include="..\..\src\video\winrt\SDL_winrtvideo_cpp.h">
   2.400 +      <Filter>Source Files</Filter>
   2.401 +    </ClInclude>
   2.402 +    <ClInclude Include="..\..\src\haptic\windows\SDL_dinputhaptic_c.h" />
   2.403 +    <ClInclude Include="..\..\src\haptic\windows\SDL_windowshaptic_c.h" />
   2.404 +    <ClInclude Include="..\..\src\haptic\windows\SDL_xinputhaptic_c.h" />
   2.405 +    <ClInclude Include="..\..\src\audio\xaudio2\SDL_xaudio2.h">
   2.406 +      <Filter>Source Files</Filter>
   2.407 +    </ClInclude>
   2.408 +  </ItemGroup>
   2.409 +  <ItemGroup>
   2.410 +    <ClCompile Include="..\..\src\atomic\SDL_atomic.c">
   2.411 +      <Filter>Source Files</Filter>
   2.412 +    </ClCompile>
   2.413 +    <ClCompile Include="..\..\src\atomic\SDL_spinlock.c">
   2.414 +      <Filter>Source Files</Filter>
   2.415 +    </ClCompile>
   2.416 +    <ClCompile Include="..\..\src\audio\disk\SDL_diskaudio.c">
   2.417 +      <Filter>Source Files</Filter>
   2.418 +    </ClCompile>
   2.419 +    <ClCompile Include="..\..\src\audio\dummy\SDL_dummyaudio.c">
   2.420 +      <Filter>Source Files</Filter>
   2.421 +    </ClCompile>
   2.422 +    <ClCompile Include="..\..\src\audio\SDL_audio.c">
   2.423 +      <Filter>Source Files</Filter>
   2.424 +    </ClCompile>
   2.425 +    <ClCompile Include="..\..\src\audio\SDL_audiocvt.c">
   2.426 +      <Filter>Source Files</Filter>
   2.427 +    </ClCompile>
   2.428 +    <ClCompile Include="..\..\src\audio\SDL_audiodev.c">
   2.429 +      <Filter>Source Files</Filter>
   2.430 +    </ClCompile>
   2.431 +    <ClCompile Include="..\..\src\audio\SDL_audiotypecvt.c">
   2.432 +      <Filter>Source Files</Filter>
   2.433 +    </ClCompile>
   2.434 +    <ClCompile Include="..\..\src\audio\SDL_mixer.c">
   2.435 +      <Filter>Source Files</Filter>
   2.436 +    </ClCompile>
   2.437 +    <ClCompile Include="..\..\src\audio\SDL_wave.c">
   2.438 +      <Filter>Source Files</Filter>
   2.439 +    </ClCompile>
   2.440 +    <ClCompile Include="..\..\src\audio\xaudio2\SDL_xaudio2_winrthelpers.cpp">
   2.441 +      <Filter>Source Files</Filter>
   2.442 +    </ClCompile>
   2.443 +    <ClCompile Include="..\..\src\core\windows\SDL_windows.c">
   2.444 +      <Filter>Source Files</Filter>
   2.445 +    </ClCompile>
   2.446 +    <ClCompile Include="..\..\src\core\windows\SDL_xinput.c">
   2.447 +      <Filter>Source Files</Filter>
   2.448 +    </ClCompile>
   2.449 +    <ClCompile Include="..\..\src\core\winrt\SDL_winrtapp_common.cpp">
   2.450 +      <Filter>Source Files</Filter>
   2.451 +    </ClCompile>
   2.452 +    <ClCompile Include="..\..\src\core\winrt\SDL_winrtapp_direct3d.cpp">
   2.453 +      <Filter>Source Files</Filter>
   2.454 +    </ClCompile>
   2.455 +    <ClCompile Include="..\..\src\core\winrt\SDL_winrtapp_xaml.cpp">
   2.456 +      <Filter>Source Files</Filter>
   2.457 +    </ClCompile>
   2.458 +    <ClCompile Include="..\..\src\cpuinfo\SDL_cpuinfo.c">
   2.459 +      <Filter>Source Files</Filter>
   2.460 +    </ClCompile>
   2.461 +    <ClCompile Include="..\..\src\dynapi\SDL_dynapi.c">
   2.462 +      <Filter>Source Files</Filter>
   2.463 +    </ClCompile>
   2.464 +    <ClCompile Include="..\..\src\events\SDL_clipboardevents.c">
   2.465 +      <Filter>Source Files</Filter>
   2.466 +    </ClCompile>
   2.467 +    <ClCompile Include="..\..\src\events\SDL_dropevents.c">
   2.468 +      <Filter>Source Files</Filter>
   2.469 +    </ClCompile>
   2.470 +    <ClCompile Include="..\..\src\events\SDL_events.c">
   2.471 +      <Filter>Source Files</Filter>
   2.472 +    </ClCompile>
   2.473 +    <ClCompile Include="..\..\src\events\SDL_gesture.c">
   2.474 +      <Filter>Source Files</Filter>
   2.475 +    </ClCompile>
   2.476 +    <ClCompile Include="..\..\src\events\SDL_keyboard.c">
   2.477 +      <Filter>Source Files</Filter>
   2.478 +    </ClCompile>
   2.479 +    <ClCompile Include="..\..\src\events\SDL_mouse.c">
   2.480 +      <Filter>Source Files</Filter>
   2.481 +    </ClCompile>
   2.482 +    <ClCompile Include="..\..\src\events\SDL_quit.c">
   2.483 +      <Filter>Source Files</Filter>
   2.484 +    </ClCompile>
   2.485 +    <ClCompile Include="..\..\src\events\SDL_touch.c">
   2.486 +      <Filter>Source Files</Filter>
   2.487 +    </ClCompile>
   2.488 +    <ClCompile Include="..\..\src\events\SDL_windowevents.c">
   2.489 +      <Filter>Source Files</Filter>
   2.490 +    </ClCompile>
   2.491 +    <ClCompile Include="..\..\src\filesystem\winrt\SDL_sysfilesystem.cpp">
   2.492 +      <Filter>Source Files</Filter>
   2.493 +    </ClCompile>
   2.494 +    <ClCompile Include="..\..\src\file\SDL_rwops.c">
   2.495 +      <Filter>Source Files</Filter>
   2.496 +    </ClCompile>
   2.497 +    <ClCompile Include="..\..\src\haptic\dummy\SDL_syshaptic.c">
   2.498 +      <Filter>Source Files</Filter>
   2.499 +    </ClCompile>
   2.500 +    <ClCompile Include="..\..\src\haptic\SDL_haptic.c">
   2.501 +      <Filter>Source Files</Filter>
   2.502 +    </ClCompile>
   2.503 +    <ClCompile Include="..\..\src\joystick\dummy\SDL_sysjoystick.c">
   2.504 +      <Filter>Source Files</Filter>
   2.505 +    </ClCompile>
   2.506 +    <ClCompile Include="..\..\src\joystick\SDL_gamecontroller.c">
   2.507 +      <Filter>Source Files</Filter>
   2.508 +    </ClCompile>
   2.509 +    <ClCompile Include="..\..\src\joystick\SDL_joystick.c">
   2.510 +      <Filter>Source Files</Filter>
   2.511 +    </ClCompile>
   2.512 +    <ClCompile Include="..\..\src\joystick\windows\SDL_dinputjoystick.c">
   2.513 +      <Filter>Source Files</Filter>
   2.514 +    </ClCompile>
   2.515 +    <ClCompile Include="..\..\src\joystick\windows\SDL_windowsjoystick.c">
   2.516 +      <Filter>Source Files</Filter>
   2.517 +    </ClCompile>
   2.518 +    <ClCompile Include="..\..\src\joystick\windows\SDL_xinputjoystick.c">
   2.519 +      <Filter>Source Files</Filter>
   2.520 +    </ClCompile>
   2.521 +    <ClCompile Include="..\..\src\loadso\windows\SDL_sysloadso.c">
   2.522 +      <Filter>Source Files</Filter>
   2.523 +    </ClCompile>
   2.524 +    <ClCompile Include="..\..\src\power\SDL_power.c">
   2.525 +      <Filter>Source Files</Filter>
   2.526 +    </ClCompile>
   2.527 +    <ClCompile Include="..\..\src\power\winrt\SDL_syspower.cpp">
   2.528 +      <Filter>Source Files</Filter>
   2.529 +    </ClCompile>
   2.530 +    <ClCompile Include="..\..\src\render\direct3d11\SDL_render_d3d11.c">
   2.531 +      <Filter>Source Files</Filter>
   2.532 +    </ClCompile>
   2.533 +    <ClCompile Include="..\..\src\render\direct3d11\SDL_render_winrt.cpp">
   2.534 +      <Filter>Source Files</Filter>
   2.535 +    </ClCompile>
   2.536 +    <ClCompile Include="..\..\src\render\opengles2\SDL_render_gles2.c">
   2.537 +      <Filter>Source Files</Filter>
   2.538 +    </ClCompile>
   2.539 +    <ClCompile Include="..\..\src\render\opengles2\SDL_shaders_gles2.c">
   2.540 +      <Filter>Source Files</Filter>
   2.541 +    </ClCompile>
   2.542 +    <ClCompile Include="..\..\src\render\SDL_d3dmath.c">
   2.543 +      <Filter>Source Files</Filter>
   2.544 +    </ClCompile>
   2.545 +    <ClCompile Include="..\..\src\render\SDL_render.c">
   2.546 +      <Filter>Source Files</Filter>
   2.547 +    </ClCompile>
   2.548 +    <ClCompile Include="..\..\src\render\SDL_yuv_mmx.c">
   2.549 +      <Filter>Source Files</Filter>
   2.550 +    </ClCompile>
   2.551 +    <ClCompile Include="..\..\src\render\SDL_yuv_sw.c">
   2.552 +      <Filter>Source Files</Filter>
   2.553 +    </ClCompile>
   2.554 +    <ClCompile Include="..\..\src\render\software\SDL_blendfillrect.c">
   2.555 +      <Filter>Source Files</Filter>
   2.556 +    </ClCompile>
   2.557 +    <ClCompile Include="..\..\src\render\software\SDL_blendline.c">
   2.558 +      <Filter>Source Files</Filter>
   2.559 +    </ClCompile>
   2.560 +    <ClCompile Include="..\..\src\render\software\SDL_blendpoint.c">
   2.561 +      <Filter>Source Files</Filter>
   2.562 +    </ClCompile>
   2.563 +    <ClCompile Include="..\..\src\render\software\SDL_drawline.c">
   2.564 +      <Filter>Source Files</Filter>
   2.565 +    </ClCompile>
   2.566 +    <ClCompile Include="..\..\src\render\software\SDL_drawpoint.c">
   2.567 +      <Filter>Source Files</Filter>
   2.568 +    </ClCompile>
   2.569 +    <ClCompile Include="..\..\src\render\software\SDL_render_sw.c">
   2.570 +      <Filter>Source Files</Filter>
   2.571 +    </ClCompile>
   2.572 +    <ClCompile Include="..\..\src\render\software\SDL_rotate.c">
   2.573 +      <Filter>Source Files</Filter>
   2.574 +    </ClCompile>
   2.575 +    <ClCompile Include="..\..\src\SDL.c">
   2.576 +      <Filter>Source Files</Filter>
   2.577 +    </ClCompile>
   2.578 +    <ClCompile Include="..\..\src\SDL_assert.c">
   2.579 +      <Filter>Source Files</Filter>
   2.580 +    </ClCompile>
   2.581 +    <ClCompile Include="..\..\src\SDL_error.c">
   2.582 +      <Filter>Source Files</Filter>
   2.583 +    </ClCompile>
   2.584 +    <ClCompile Include="..\..\src\SDL_hints.c">
   2.585 +      <Filter>Source Files</Filter>
   2.586 +    </ClCompile>
   2.587 +    <ClCompile Include="..\..\src\SDL_log.c">
   2.588 +      <Filter>Source Files</Filter>
   2.589 +    </ClCompile>
   2.590 +    <ClCompile Include="..\..\src\stdlib\SDL_getenv.c">
   2.591 +      <Filter>Source Files</Filter>
   2.592 +    </ClCompile>
   2.593 +    <ClCompile Include="..\..\src\stdlib\SDL_iconv.c">
   2.594 +      <Filter>Source Files</Filter>
   2.595 +    </ClCompile>
   2.596 +    <ClCompile Include="..\..\src\stdlib\SDL_malloc.c">
   2.597 +      <Filter>Source Files</Filter>
   2.598 +    </ClCompile>
   2.599 +    <ClCompile Include="..\..\src\stdlib\SDL_qsort.c">
   2.600 +      <Filter>Source Files</Filter>
   2.601 +    </ClCompile>
   2.602 +    <ClCompile Include="..\..\src\stdlib\SDL_stdlib.c">
   2.603 +      <Filter>Source Files</Filter>
   2.604 +    </ClCompile>
   2.605 +    <ClCompile Include="..\..\src\stdlib\SDL_string.c">
   2.606 +      <Filter>Source Files</Filter>
   2.607 +    </ClCompile>
   2.608 +    <ClCompile Include="..\..\src\thread\generic\SDL_syssem.c">
   2.609 +      <Filter>Source Files</Filter>
   2.610 +    </ClCompile>
   2.611 +    <ClCompile Include="..\..\src\thread\SDL_thread.c">
   2.612 +      <Filter>Source Files</Filter>
   2.613 +    </ClCompile>
   2.614 +    <ClCompile Include="..\..\src\thread\stdcpp\SDL_syscond.cpp">
   2.615 +      <Filter>Source Files</Filter>
   2.616 +    </ClCompile>
   2.617 +    <ClCompile Include="..\..\src\thread\stdcpp\SDL_sysmutex.cpp">
   2.618 +      <Filter>Source Files</Filter>
   2.619 +    </ClCompile>
   2.620 +    <ClCompile Include="..\..\src\thread\stdcpp\SDL_systhread.cpp">
   2.621 +      <Filter>Source Files</Filter>
   2.622 +    </ClCompile>
   2.623 +    <ClCompile Include="..\..\src\timer\SDL_timer.c">
   2.624 +      <Filter>Source Files</Filter>
   2.625 +    </ClCompile>
   2.626 +    <ClCompile Include="..\..\src\timer\windows\SDL_systimer.c">
   2.627 +      <Filter>Source Files</Filter>
   2.628 +    </ClCompile>
   2.629 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullevents.c">
   2.630 +      <Filter>Source Files</Filter>
   2.631 +    </ClCompile>
   2.632 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c">
   2.633 +      <Filter>Source Files</Filter>
   2.634 +    </ClCompile>
   2.635 +    <ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c">
   2.636 +      <Filter>Source Files</Filter>
   2.637 +    </ClCompile>
   2.638 +    <ClCompile Include="..\..\src\video\SDL_blit.c">
   2.639 +      <Filter>Source Files</Filter>
   2.640 +    </ClCompile>
   2.641 +    <ClCompile Include="..\..\src\video\SDL_blit_0.c">
   2.642 +      <Filter>Source Files</Filter>
   2.643 +    </ClCompile>
   2.644 +    <ClCompile Include="..\..\src\video\SDL_blit_1.c">
   2.645 +      <Filter>Source Files</Filter>
   2.646 +    </ClCompile>
   2.647 +    <ClCompile Include="..\..\src\video\SDL_blit_A.c">
   2.648 +      <Filter>Source Files</Filter>
   2.649 +    </ClCompile>
   2.650 +    <ClCompile Include="..\..\src\video\SDL_blit_auto.c">
   2.651 +      <Filter>Source Files</Filter>
   2.652 +    </ClCompile>
   2.653 +    <ClCompile Include="..\..\src\video\SDL_blit_copy.c">
   2.654 +      <Filter>Source Files</Filter>
   2.655 +    </ClCompile>
   2.656 +    <ClCompile Include="..\..\src\video\SDL_blit_N.c">
   2.657 +      <Filter>Source Files</Filter>
   2.658 +    </ClCompile>
   2.659 +    <ClCompile Include="..\..\src\video\SDL_blit_slow.c">
   2.660 +      <Filter>Source Files</Filter>
   2.661 +    </ClCompile>
   2.662 +    <ClCompile Include="..\..\src\video\SDL_bmp.c">
   2.663 +      <Filter>Source Files</Filter>
   2.664 +    </ClCompile>
   2.665 +    <ClCompile Include="..\..\src\video\SDL_clipboard.c">
   2.666 +      <Filter>Source Files</Filter>
   2.667 +    </ClCompile>
   2.668 +    <ClCompile Include="..\..\src\video\SDL_egl.c">
   2.669 +      <Filter>Source Files</Filter>
   2.670 +    </ClCompile>
   2.671 +    <ClCompile Include="..\..\src\video\SDL_fillrect.c">
   2.672 +      <Filter>Source Files</Filter>
   2.673 +    </ClCompile>
   2.674 +    <ClCompile Include="..\..\src\video\SDL_pixels.c">
   2.675 +      <Filter>Source Files</Filter>
   2.676 +    </ClCompile>
   2.677 +    <ClCompile Include="..\..\src\video\SDL_rect.c">
   2.678 +      <Filter>Source Files</Filter>
   2.679 +    </ClCompile>
   2.680 +    <ClCompile Include="..\..\src\video\SDL_RLEaccel.c">
   2.681 +      <Filter>Source Files</Filter>
   2.682 +    </ClCompile>
   2.683 +    <ClCompile Include="..\..\src\video\SDL_shape.c">
   2.684 +      <Filter>Source Files</Filter>
   2.685 +    </ClCompile>
   2.686 +    <ClCompile Include="..\..\src\video\SDL_stretch.c">
   2.687 +      <Filter>Source Files</Filter>
   2.688 +    </ClCompile>
   2.689 +    <ClCompile Include="..\..\src\video\SDL_surface.c">
   2.690 +      <Filter>Source Files</Filter>
   2.691 +    </ClCompile>
   2.692 +    <ClCompile Include="..\..\src\video\SDL_video.c">
   2.693 +      <Filter>Source Files</Filter>
   2.694 +    </ClCompile>
   2.695 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtevents.cpp">
   2.696 +      <Filter>Source Files</Filter>
   2.697 +    </ClCompile>
   2.698 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtkeyboard.cpp">
   2.699 +      <Filter>Source Files</Filter>
   2.700 +    </ClCompile>
   2.701 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtmessagebox.cpp">
   2.702 +      <Filter>Source Files</Filter>
   2.703 +    </ClCompile>
   2.704 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtmouse.cpp">
   2.705 +      <Filter>Source Files</Filter>
   2.706 +    </ClCompile>
   2.707 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtopengles.cpp">
   2.708 +      <Filter>Source Files</Filter>
   2.709 +    </ClCompile>
   2.710 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtpointerinput.cpp">
   2.711 +      <Filter>Source Files</Filter>
   2.712 +    </ClCompile>
   2.713 +    <ClCompile Include="..\..\src\video\winrt\SDL_winrtvideo.cpp">
   2.714 +      <Filter>Source Files</Filter>
   2.715 +    </ClCompile>
   2.716 +    <ClCompile Include="..\..\src\haptic\windows\SDL_dinputhaptic.c" />
   2.717 +    <ClCompile Include="..\..\src\haptic\windows\SDL_windowshaptic.c" />
   2.718 +    <ClCompile Include="..\..\src\haptic\windows\SDL_xinputhaptic.c" />
   2.719 +    <ClCompile Include="..\..\src\audio\xaudio2\SDL_xaudio2.c">
   2.720 +      <Filter>Source Files</Filter>
   2.721 +    </ClCompile>
   2.722 +  </ItemGroup>
   2.723 +</Project>
   2.724 \ No newline at end of file
     3.1 --- a/docs/README-winrt.md	Thu Nov 26 13:51:03 2015 -0500
     3.2 +++ b/docs/README-winrt.md	Sun Nov 29 19:33:11 2015 -0500
     3.3 @@ -10,6 +10,7 @@
     3.4  
     3.5  Some of the operating systems that include WinRT, are:
     3.6  
     3.7 +* Windows 10, via its Universal Windows Platform (UWP) APIs
     3.8  * Windows 8.x
     3.9  * Windows RT 8.x (aka. Windows 8.x for ARM processors)
    3.10  * Windows Phone 8.x
    3.11 @@ -18,12 +19,12 @@
    3.12  Requirements
    3.13  ------------
    3.14  
    3.15 -* Microsoft Visual C++ (aka Visual Studio), either 2013 or 2012 versions
    3.16 +* Microsoft Visual C++ (aka Visual Studio), either 2015, 2013, or 2012
    3.17    - Free, "Community" or "Express" editions may be used, so long as they
    3.18      include  support for either "Windows Store" or "Windows Phone" apps.
    3.19      "Express" versions marked as supporting "Windows Desktop" development
    3.20      typically do not include support for creating WinRT apps, to note.
    3.21 -    (The "Community" edition of Visual C++ 2013 does, however, support both
    3.22 +    (The "Community" editions of Visual C++ do, however, support both
    3.23      desktop/Win32 and WinRT development).
    3.24    - Visual C++ 2012 can only build apps that target versions 8.0 of Windows,
    3.25      or  Windows Phone.  8.0-targetted apps will run on devices running 8.1
    3.26 @@ -50,25 +51,21 @@
    3.27  Here is a rough list of what works, and what doens't:
    3.28  
    3.29  * What works:
    3.30 -  * compilation via Visual C++ 2012 and 2013
    3.31 +  * compilation via Visual C++ 2012 through 2015
    3.32    * compile-time platform detection for SDL programs.  The C/C++ #define,
    3.33      `__WINRT__`, will be set to 1 (by SDL) when compiling for WinRT.
    3.34    * GPU-accelerated 2D rendering, via SDL_Renderer.
    3.35 +  * OpenGL ES 2, via the ANGLE library (included separately from SDL)
    3.36    * software rendering, via either SDL_Surface (optionally in conjunction with
    3.37      SDL_GetWindowSurface() and SDL_UpdateWindowSurface()) or via the
    3.38      SDL_Renderer APIs
    3.39 -  * threads.  Significant chunks of Win32's threading APIs are not available in
    3.40 -    WinRT.  A new, SDL threading backend was built using C++11's threading APIs
    3.41 -    (std::thread, std::mutex, std::condition_variable, etc.), which C or C++
    3.42 -    programs alike can access via SDL's threading APIs.  Support for thread
    3.43 -    priorities is not, however, currently available, due to restrictions in
    3.44 -    WinRT's own API set.
    3.45 +  * threads
    3.46    * timers (via SDL_GetTicks(), SDL_AddTimer(), SDL_GetPerformanceCounter(),
    3.47      SDL_GetPerformanceFrequency(), etc.)
    3.48    * file I/O via SDL_RWops
    3.49    * mouse input  (unsupported on Windows Phone)
    3.50    * audio, via a modified version of SDL's XAudio2 backend
    3.51 -  * .DLL file loading.  Libraries must be packaged inside applications.  Loading
    3.52 +  * .DLL file loading.  Libraries *MUST* be packaged inside applications.  Loading
    3.53      anything outside of the app is not supported.
    3.54    * system path retrieval via SDL's filesystem APIs
    3.55    * game controllers.  Support is provided via the SDL_Joystick and
    3.56 @@ -76,10 +73,7 @@
    3.57    * multi-touch input
    3.58    * app events.  SDL_APP_WILLENTER* and SDL_APP_DIDENTER* events get sent out as
    3.59      appropriate.
    3.60 -  * window events.  SDL_WINDOWEVENT_MINIMIZED and SDL_WINDOWEVENT_RESTORED are
    3.61 -    sent out on app suspend and resume, respectively.  SDL_WINDOWEVENT_SHOWN and
    3.62 -    SDL_WINDOWEVENT_HIDDEN are also sent, but not necessarily on app suspend or
    3.63 -    resume, as WinRT treats these two concepts differently..
    3.64 +  * window events
    3.65    * using Direct3D 11.x APIs outside of SDL.  Non-XAML / Direct3D-only apps can
    3.66      choose to render content directly via Direct3D, using SDL to manage the
    3.67      internal WinRT window, as well as input and audio.  (Use
    3.68 @@ -89,24 +83,13 @@
    3.69  * What partially works:
    3.70    * keyboard input.  Most of WinRT's documented virtual keys are supported, as
    3.71      well as many keys with documented hardware scancodes.
    3.72 -  * OpenGL.  Experimental support for OpenGL ES 2 is available via the ANGLE
    3.73 -    project, using either:
    3.74 -    * MS Open Technologies' "ms-master" repository, at https://github.com/MSOpenTech/angle
    3.75 -      (for use with Windows 8.1+ or Windows Phone 8.1+)
    3.76 -    * MS Open Technologies' "angle-win8.0" repository, at https://github.com/MSOpenTech/angle-win8.0
    3.77 -      (for Windows 8.0 only!)
    3.78 -    * Google's main ANGLE repository, at https://chromium.googlesource.com/angle/angle
    3.79    * SDLmain.  WinRT uses a different signature for each app's main() function.
    3.80      SDL-based apps that use this port must compile in SDL_winrt_main_NonXAML.cpp
    3.81      (in `SDL\src\main\winrt\`) directly in order for their C-style main()
    3.82      functions to be called.
    3.83 -  * XAML interoperability.  This feature is currently experimental (there are
    3.84 -    **many** known bugs in this, at present!), preliminary, and only for
    3.85 -    Windows 8.x/RT at the moment.  Windows Phone + XAML support is still
    3.86 -    pending.
    3.87  
    3.88  * What doesn't work:
    3.89 -  * compilation with anything other than Visual C++ 2012 or 2013
    3.90 +  * compilation with anything other than Visual C++
    3.91    * programmatically-created custom cursors.  These don't appear to be supported
    3.92      by WinRT.  Different OS-provided cursors can, however, be created via
    3.93      SDL_CreateSystemCursor() (unsupported on Windows Phone)
    3.94 @@ -236,10 +219,10 @@
    3.95  4. find SDL/WinRT's Visual C++ project file and open it.  Different project
    3.96     files exist for different WinRT platforms.  All of them are in SDL's
    3.97     source distribution, in the following directories:
    3.98 -    * `VisualC-WinRT/WinPhone80_VS2012/` - for Windows Phone 8.0 apps
    3.99 +    * `VisualC-WinRT/UWP_VS2015/`        - for Windows 10 / UWP apps
   3.100      * `VisualC-WinRT/WinPhone81_VS2013/` - for Windows Phone 8.1 apps
   3.101 -    * `VisualC-WinRT/WinRT80_VS2012/` - for Windows 8.0 apps
   3.102 -    * `VisualC-WinRT/WinRT81_VS2013/` - for Windows 8.1 apps
   3.103 +    * `VisualC-WinRT/WinRT80_VS2012/`    - for Windows 8.0 apps
   3.104 +    * `VisualC-WinRT/WinRT81_VS2013/`    - for Windows 8.1 apps
   3.105  5. once the project has been added, right-click on your app's project and
   3.106     select, "References..."
   3.107  6. click on the button titled, "Add New Reference..."
   3.108 @@ -400,11 +383,11 @@
   3.109  <http://msdn.microsoft.com/en-us/library/windows/apps/jj606124.aspx>
   3.110  
   3.111  General information on using the C runtime in WinRT can be found at 
   3.112 -<http://msdn.microsoft.com/en-us/LIBRARY/hh972425(v=vs.110).aspx>
   3.113 +<https://msdn.microsoft.com/en-us/library/hh972425.aspx>
   3.114  
   3.115 -A list of supported Win32 APIs for Windows 8/RT apps can be found at 
   3.116 +A list of supported Win32 APIs for WinRT apps can be found at 
   3.117  <http://msdn.microsoft.com/en-us/library/windows/apps/br205757.aspx>.  To note, 
   3.118 -the list of supported Win32 APIs for Windows Phone 8 development is different.  
   3.119 +the list of supported Win32 APIs for Windows Phone 8.0 is different.  
   3.120  That list can be found at 
   3.121  <http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662956(v=vs.105).aspx>
   3.122  
   3.123 @@ -422,7 +405,12 @@
   3.124  launch in window, rather than full-screen.
   3.125  
   3.126  
   3.127 -#### 7.A. Running apps on ARM-based devices ####
   3.128 +#### 7.A. Running apps on older, ARM-based, "Windows RT" devices ####
   3.129 +
   3.130 +**These instructions do not include Windows Phone, despite Windows Phone
   3.131 +typically running on ARM processors.**  They are specifically for devices
   3.132 +that use the "Windows RT" operating system, which was a modified version of
   3.133 +Windows 8.x that ran primarily on ARM-based tablet computers.
   3.134  
   3.135  To build and run the app on ARM-based, "Windows RT" devices, you'll need to:
   3.136  
   3.137 @@ -433,9 +421,9 @@
   3.138    Windows RT device (on the network).
   3.139  
   3.140  Microsoft's Remote Debugger can be found at 
   3.141 -<http://msdn.microsoft.com/en-us/library/vstudio/bt727f1t.aspx>.  Please note 
   3.142 +<https://msdn.microsoft.com/en-us/library/hh441469.aspx>.  Please note 
   3.143  that separate versions of this debugger exist for different versions of Visual 
   3.144 -C++, one for debugging with MSVC 2012, another for debugging with MSVC 2013.
   3.145 +C++, one each for MSVC 2015, 2013, and 2012.
   3.146  
   3.147  To setup Visual C++ to launch your app on an ARM device:
   3.148  
     4.1 --- a/include/SDL_config_winrt.h	Thu Nov 26 13:51:03 2015 -0500
     4.2 +++ b/include/SDL_config_winrt.h	Sun Nov 29 19:33:11 2015 -0500
     4.3 @@ -35,6 +35,9 @@
     4.4  #ifndef NTDDI_WINBLUE
     4.5  #define NTDDI_WINBLUE 0x06030000
     4.6  #endif
     4.7 +#ifndef NTDDI_WIN10
     4.8 +#define NTDDI_WIN10 0x0A000000
     4.9 +#endif
    4.10  
    4.11  /* This is a set of defines to configure the SDL features */
    4.12  
     5.1 --- a/src/audio/xaudio2/SDL_xaudio2.c	Thu Nov 26 13:51:03 2015 -0500
     5.2 +++ b/src/audio/xaudio2/SDL_xaudio2.c	Sun Nov 29 19:33:11 2015 -0500
     5.3 @@ -58,8 +58,13 @@
     5.4  /* The configure script already did any necessary checking */
     5.5  #  define SDL_XAUDIO2_HAS_SDK 1
     5.6  #elif defined(__WINRT__)
     5.7 -/* WinRT always has access to the XAudio 2 SDK */
     5.8 +/* WinRT always has access to the XAudio 2 SDK (albeit with a header file
     5.9 +   that doesn't compile as C code).
    5.10 +*/
    5.11  #  define SDL_XAUDIO2_HAS_SDK
    5.12 +#include "SDL_xaudio2.h"    /* ... compiles as C code, in contrast to XAudio2 headers
    5.13 +                               in the Windows SDK, v.10.0.10240.0 (Win 10's initial SDK)
    5.14 +                             */
    5.15  #else
    5.16  /* XAudio2 exists as of the March 2008 DirectX SDK 
    5.17     The XAudio2 implementation available in the Windows 8 SDK targets Windows 8 and newer.
    5.18 @@ -88,17 +93,10 @@
    5.19  #endif
    5.20  #endif
    5.21  
    5.22 -/* The XAudio header file, when #include'd on WinRT, will only compile in C++
    5.23 -   files, but not C.  A few preprocessor-based hacks are defined below in order
    5.24 -   to get xaudio2.h to compile in the C/non-C++ file, SDL_xaudio2.c.
    5.25 - */
    5.26 -#ifdef __WINRT__
    5.27 -#define uuid(x)
    5.28 -#define DX_BUILD
    5.29 -#endif
    5.30 -
    5.31 +#if !defined(_SDL_XAUDIO2_H)
    5.32  #define INITGUID 1
    5.33  #include <xaudio2.h>
    5.34 +#endif
    5.35  
    5.36  /* Hidden "this" pointer for the audio functions */
    5.37  #define _THIS   SDL_AudioDevice *this
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/src/audio/xaudio2/SDL_xaudio2.h	Sun Nov 29 19:33:11 2015 -0500
     6.3 @@ -0,0 +1,386 @@
     6.4 +/*
     6.5 +  Simple DirectMedia Layer
     6.6 +  Copyright (C) 1997-2015 Sam Lantinga <slouken@libsdl.org>
     6.7 +
     6.8 +  This software is provided 'as-is', without any express or implied
     6.9 +  warranty.  In no event will the authors be held liable for any damages
    6.10 +  arising from the use of this software.
    6.11 +
    6.12 +  Permission is granted to anyone to use this software for any purpose,
    6.13 +  including commercial applications, and to alter it and redistribute it
    6.14 +  freely, subject to the following restrictions:
    6.15 +
    6.16 +  1. The origin of this software must not be misrepresented; you must not
    6.17 +     claim that you wrote the original software. If you use this software
    6.18 +     in a product, an acknowledgment in the product documentation would be
    6.19 +     appreciated but is not required.
    6.20 +  2. Altered source versions must be plainly marked as such, and must not be
    6.21 +     misrepresented as being the original software.
    6.22 +  3. This notice may not be removed or altered from any source distribution.
    6.23 +*/
    6.24 +
    6.25 +#ifndef _SDL_XAUDIO2_H
    6.26 +#define _SDL_XAUDIO2_H
    6.27 +
    6.28 +#include <windows.h>
    6.29 +#include <mmreg.h>
    6.30 +#include <objbase.h>
    6.31 +
    6.32 +/* XAudio2 packs its structure members together as tightly as possible.
    6.33 +   This pragma is needed to ensure compatibility with XAudio2 on 64-bit
    6.34 +   platforms.
    6.35 +*/
    6.36 +#pragma pack(push, 1)
    6.37 +
    6.38 +typedef interface IXAudio2 IXAudio2;
    6.39 +typedef interface IXAudio2SourceVoice IXAudio2SourceVoice;
    6.40 +typedef interface IXAudio2MasteringVoice IXAudio2MasteringVoice;
    6.41 +typedef interface IXAudio2EngineCallback IXAudio2EngineCallback;
    6.42 +typedef interface IXAudio2VoiceCallback IXAudio2VoiceCallback;
    6.43 +typedef interface IXAudio2Voice IXAudio2Voice;
    6.44 +typedef interface IXAudio2SubmixVoice IXAudio2SubmixVoice;
    6.45 +
    6.46 +typedef enum _AUDIO_STREAM_CATEGORY {
    6.47 +    AudioCategory_Other = 0,
    6.48 +    AudioCategory_ForegroundOnlyMedia,
    6.49 +    AudioCategory_BackgroundCapableMedia,
    6.50 +    AudioCategory_Communications,
    6.51 +    AudioCategory_Alerts,
    6.52 +    AudioCategory_SoundEffects,
    6.53 +    AudioCategory_GameEffects,
    6.54 +    AudioCategory_GameMedia,
    6.55 +    AudioCategory_GameChat,
    6.56 +    AudioCategory_Movie,
    6.57 +    AudioCategory_Media
    6.58 +} AUDIO_STREAM_CATEGORY;
    6.59 +
    6.60 +typedef struct XAUDIO2_BUFFER {
    6.61 +    UINT32     Flags;
    6.62 +    UINT32     AudioBytes;
    6.63 +    const BYTE *pAudioData;
    6.64 +    UINT32     PlayBegin;
    6.65 +    UINT32     PlayLength;
    6.66 +    UINT32     LoopBegin;
    6.67 +    UINT32     LoopLength;
    6.68 +    UINT32     LoopCount;
    6.69 +    void       *pContext;
    6.70 +} XAUDIO2_BUFFER;
    6.71 +
    6.72 +typedef struct XAUDIO2_BUFFER_WMA {
    6.73 +    const UINT32 *pDecodedPacketCumulativeBytes;
    6.74 +    UINT32       PacketCount;
    6.75 +} XAUDIO2_BUFFER_WMA;
    6.76 +
    6.77 +typedef struct XAUDIO2_SEND_DESCRIPTOR {
    6.78 +    UINT32        Flags;
    6.79 +    IXAudio2Voice *pOutputVoice;
    6.80 +} XAUDIO2_SEND_DESCRIPTOR;
    6.81 +
    6.82 +typedef struct XAUDIO2_VOICE_SENDS {
    6.83 +    UINT32                  SendCount;
    6.84 +    XAUDIO2_SEND_DESCRIPTOR *pSends;
    6.85 +} XAUDIO2_VOICE_SENDS;
    6.86 +
    6.87 +typedef struct XAUDIO2_EFFECT_DESCRIPTOR {
    6.88 +    IUnknown *pEffect;
    6.89 +    BOOL     InitialState;
    6.90 +    UINT32   OutputChannels;
    6.91 +} XAUDIO2_EFFECT_DESCRIPTOR;
    6.92 +
    6.93 +typedef struct XAUDIO2_EFFECT_CHAIN {
    6.94 +    UINT32                    EffectCount;
    6.95 +    XAUDIO2_EFFECT_DESCRIPTOR *pEffectDescriptors;
    6.96 +} XAUDIO2_EFFECT_CHAIN;
    6.97 +
    6.98 +typedef struct XAUDIO2_PERFORMANCE_DATA {
    6.99 +    UINT64 AudioCyclesSinceLastQuery;
   6.100 +    UINT64 TotalCyclesSinceLastQuery;
   6.101 +    UINT32 MinimumCyclesPerQuantum;
   6.102 +    UINT32 MaximumCyclesPerQuantum;
   6.103 +    UINT32 MemoryUsageInBytes;
   6.104 +    UINT32 CurrentLatencyInSamples;
   6.105 +    UINT32 GlitchesSinceEngineStarted;
   6.106 +    UINT32 ActiveSourceVoiceCount;
   6.107 +    UINT32 TotalSourceVoiceCount;
   6.108 +    UINT32 ActiveSubmixVoiceCount;
   6.109 +    UINT32 ActiveResamplerCount;
   6.110 +    UINT32 ActiveMatrixMixCount;
   6.111 +    UINT32 ActiveXmaSourceVoices;
   6.112 +    UINT32 ActiveXmaStreams;
   6.113 +} XAUDIO2_PERFORMANCE_DATA;
   6.114 +
   6.115 +typedef struct XAUDIO2_DEBUG_CONFIGURATION {
   6.116 +    UINT32 TraceMask;
   6.117 +    UINT32 BreakMask;
   6.118 +    BOOL   LogThreadID;
   6.119 +    BOOL   LogFileline;
   6.120 +    BOOL   LogFunctionName;
   6.121 +    BOOL   LogTiming;
   6.122 +} XAUDIO2_DEBUG_CONFIGURATION;
   6.123 +
   6.124 +typedef struct XAUDIO2_VOICE_DETAILS {
   6.125 +    UINT32 CreationFlags;
   6.126 +    UINT32 ActiveFlags;
   6.127 +    UINT32 InputChannels;
   6.128 +    UINT32 InputSampleRate;
   6.129 +} XAUDIO2_VOICE_DETAILS;
   6.130 +
   6.131 +typedef enum XAUDIO2_FILTER_TYPE {
   6.132 +    LowPassFilter = 0,
   6.133 +    BandPassFilter = 1,
   6.134 +    HighPassFilter = 2,
   6.135 +    NotchFilter = 3,
   6.136 +    LowPassOnePoleFilter = 4,
   6.137 +    HighPassOnePoleFilter = 5
   6.138 +} XAUDIO2_FILTER_TYPE;
   6.139 +
   6.140 +typedef struct XAUDIO2_FILTER_PARAMETERS {
   6.141 +    XAUDIO2_FILTER_TYPE Type;
   6.142 +    float               Frequency;
   6.143 +    float               OneOverQ;
   6.144 +} XAUDIO2_FILTER_PARAMETERS;
   6.145 +
   6.146 +typedef struct XAUDIO2_VOICE_STATE {
   6.147 +    void   *pCurrentBufferContext;
   6.148 +    UINT32 BuffersQueued;
   6.149 +    UINT64 SamplesPlayed;
   6.150 +} XAUDIO2_VOICE_STATE;
   6.151 +
   6.152 +
   6.153 +typedef UINT32 XAUDIO2_PROCESSOR;
   6.154 +#define Processor1 0x00000001
   6.155 +#define XAUDIO2_DEFAULT_PROCESSOR Processor1
   6.156 +
   6.157 +#define XAUDIO2_E_DEVICE_INVALIDATED 0x88960004
   6.158 +#define XAUDIO2_COMMIT_NOW 0
   6.159 +#define XAUDIO2_VOICE_NOSAMPLESPLAYED 0x0100
   6.160 +#define XAUDIO2_DEFAULT_CHANNELS 0
   6.161 +
   6.162 +extern HRESULT __stdcall XAudio2Create(
   6.163 +    _Out_ IXAudio2          **ppXAudio2,
   6.164 +    _In_  UINT32            Flags,
   6.165 +    _In_  XAUDIO2_PROCESSOR XAudio2Processor
   6.166 +    );
   6.167 +
   6.168 +#undef INTERFACE
   6.169 +#define INTERFACE IXAudio2
   6.170 +typedef interface IXAudio2 {
   6.171 +    const struct IXAudio2Vtbl FAR* lpVtbl;
   6.172 +} IXAudio2;
   6.173 +typedef const struct IXAudio2Vtbl IXAudio2Vtbl;
   6.174 +const struct IXAudio2Vtbl
   6.175 +{
   6.176 +    /* IUnknown */
   6.177 +    STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
   6.178 +    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
   6.179 +    STDMETHOD_(ULONG, Release)(THIS) PURE;
   6.180 +
   6.181 +    /* IXAudio2 */
   6.182 +    STDMETHOD_(HRESULT, RegisterForCallbacks)(THIS, IXAudio2EngineCallback *pCallback) PURE;
   6.183 +    STDMETHOD_(VOID, UnregisterForCallbacks)(THIS, IXAudio2EngineCallback *pCallback) PURE;
   6.184 +    STDMETHOD_(HRESULT, CreateSourceVoice)(THIS, IXAudio2SourceVoice **ppSourceVoice,
   6.185 +                                           const WAVEFORMATEX *pSourceFormat,
   6.186 +                                           UINT32 Flags,
   6.187 +                                           float MaxFrequencyRatio,
   6.188 +                                           IXAudio2VoiceCallback *pCallback,
   6.189 +                                           const XAUDIO2_VOICE_SENDS *pSendList,
   6.190 +                                           const XAUDIO2_EFFECT_CHAIN *pEffectChain) PURE;
   6.191 +    STDMETHOD_(HRESULT, CreateSubmixVoice)(THIS, IXAudio2SubmixVoice **ppSubmixVoice,
   6.192 +                                           UINT32 InputChannels,
   6.193 +                                           UINT32 InputSampleRate,
   6.194 +                                           UINT32 Flags,
   6.195 +                                           UINT32 ProcessingStage,
   6.196 +                                           const XAUDIO2_VOICE_SENDS *pSendList,
   6.197 +                                           const XAUDIO2_EFFECT_CHAIN *pEffectChain) PURE;
   6.198 +    STDMETHOD_(HRESULT, CreateMasteringVoice)(THIS, IXAudio2MasteringVoice **ppMasteringVoice,
   6.199 +                                              UINT32 InputChannels,
   6.200 +                                              UINT32 InputSampleRate,
   6.201 +                                              UINT32 Flags,
   6.202 +                                              LPCWSTR szDeviceId,
   6.203 +                                              const XAUDIO2_EFFECT_CHAIN *pEffectChain,
   6.204 +                                              AUDIO_STREAM_CATEGORY StreamCategory) PURE;
   6.205 +    STDMETHOD_(HRESULT, StartEngine)(THIS) PURE;
   6.206 +    STDMETHOD_(VOID, StopEngine)(THIS) PURE;
   6.207 +    STDMETHOD_(HRESULT, CommitChanges)(THIS, UINT32 OperationSet) PURE;
   6.208 +    STDMETHOD_(HRESULT, GetPerformanceData)(THIS, XAUDIO2_PERFORMANCE_DATA *pPerfData) PURE;
   6.209 +    STDMETHOD_(HRESULT, SetDebugConfiguration)(THIS, XAUDIO2_DEBUG_CONFIGURATION *pDebugConfiguration,
   6.210 +                                               VOID *pReserved) PURE;
   6.211 +};
   6.212 +
   6.213 +#define IXAudio2_Release(A) ((A)->lpVtbl->Release(A))
   6.214 +#define IXAudio2_CreateSourceVoice(A,B,C,D,E,F,G,H) ((A)->lpVtbl->CreateSourceVoice(A,B,C,D,E,F,G,H))
   6.215 +#define IXAudio2_CreateMasteringVoice(A,B,C,D,E,F,G,H) ((A)->lpVtbl->CreateMasteringVoice(A,B,C,D,E,F,G,H))
   6.216 +#define IXAudio2_StartEngine(A) ((A)->lpVtbl->StartEngine(A))
   6.217 +#define IXAudio2_StopEngine(A) ((A)->lpVtbl->StopEngine(A))
   6.218 +
   6.219 +
   6.220 +#undef INTERFACE
   6.221 +#define INTERFACE IXAudio2SourceVoice
   6.222 +typedef interface IXAudio2SourceVoice {
   6.223 +    const struct IXAudio2SourceVoiceVtbl FAR* lpVtbl;
   6.224 +} IXAudio2SourceVoice;
   6.225 +typedef const struct IXAudio2SourceVoiceVtbl IXAudio2SourceVoiceVtbl;
   6.226 +const struct IXAudio2SourceVoiceVtbl
   6.227 +{
   6.228 +    /* MSDN says that IXAudio2Voice inherits from IXAudio2, but MSVC's debugger
   6.229 +     * says otherwise, and that IXAudio2Voice doesn't inherit from any other
   6.230 +     * interface!
   6.231 +     */
   6.232 +
   6.233 +    /* IXAudio2Voice */
   6.234 +    STDMETHOD_(VOID, GetVoiceDetails)(THIS, XAUDIO2_VOICE_DETAILS *pVoiceDetails) PURE;
   6.235 +    STDMETHOD_(HRESULT, SetOutputVoices)(THIS, const XAUDIO2_VOICE_SENDS *pSendList) PURE;
   6.236 +    STDMETHOD_(HRESULT, SetEffectChain)(THIS, const XAUDIO2_EFFECT_CHAIN *pEffectChain) PURE;
   6.237 +    STDMETHOD_(HRESULT, EnableEffect)(THIS, UINT32 EffectIndex, UINT32 OperationSet) PURE;
   6.238 +    STDMETHOD_(HRESULT, DisableEffect)(THIS, UINT32 EffectIndex, UINT32 OperationSet) PURE;
   6.239 +    STDMETHOD_(VOID, GetEffectState)(THIS, UINT32 EffectIndex, BOOL *pEnabled) PURE;
   6.240 +    STDMETHOD_(HRESULT, SetEffectParameters)(THIS, UINT32 EffectIndex,
   6.241 +                                             const void *pParameters,
   6.242 +                                             UINT32 ParametersByteSize,
   6.243 +                                             UINT32 OperationSet) PURE;
   6.244 +    STDMETHOD_(VOID, GetEffectParameters)(THIS, UINT32 EffectIndex,
   6.245 +                                          void *pParameters,
   6.246 +                                          UINT32 ParametersByteSize) PURE;
   6.247 +    STDMETHOD_(HRESULT, SetFilterParameters)(THIS, const XAUDIO2_FILTER_PARAMETERS *pParameters,
   6.248 +                                             UINT32 OperationSet) PURE;
   6.249 +    STDMETHOD_(VOID, GetFilterParameters)(THIS, XAUDIO2_FILTER_PARAMETERS *pParameters) PURE;
   6.250 +    STDMETHOD_(HRESULT, SetOutputFilterParameters)(THIS, IXAudio2Voice *pDestinationVoice,
   6.251 +                                                   XAUDIO2_FILTER_PARAMETERS *pParameters,
   6.252 +                                                   UINT32 OperationSet) PURE;
   6.253 +    STDMETHOD_(VOID, GetOutputFilterParameters)(THIS, IXAudio2Voice *pDestinationVoice,
   6.254 +                                                XAUDIO2_FILTER_PARAMETERS *pParameters) PURE;
   6.255 +    STDMETHOD_(HRESULT, SetVolume)(THIS, float Volume,
   6.256 +                                   UINT32 OperationSet) PURE;
   6.257 +    STDMETHOD_(VOID, GetVolume)(THIS, float *pVolume) PURE;
   6.258 +    STDMETHOD_(HRESULT, SetChannelVolumes)(THIS, UINT32 Channels,
   6.259 +                                           const float *pVolumes,
   6.260 +                                           UINT32 OperationSet) PURE;
   6.261 +    STDMETHOD_(VOID, GetChannelVolumes)(THIS, UINT32 Channels,
   6.262 +                                        float *pVolumes) PURE;
   6.263 +    STDMETHOD_(HRESULT, SetOutputMatrix)(THIS, IXAudio2Voice *pDestinationVoice,
   6.264 +                                         UINT32 SourceChannels,
   6.265 +                                         UINT32 DestinationChannels,
   6.266 +                                         const float *pLevelMatrix,
   6.267 +                                         UINT32 OperationSet) PURE;
   6.268 +    STDMETHOD_(VOID, GetOutputMatrix)(THIS, IXAudio2Voice *pDestinationVoice,
   6.269 +                                      UINT32 SourceChannels,
   6.270 +                                      UINT32 DestinationChannels,
   6.271 +                                      float *pLevelMatrix) PURE;
   6.272 +    STDMETHOD_(VOID, DestroyVoice)(THIS) PURE;
   6.273 +
   6.274 +    /* IXAudio2SourceVoice */
   6.275 +    STDMETHOD_(HRESULT, Start)(THIS, UINT32 Flags,
   6.276 +                               UINT32 OperationSet) PURE;
   6.277 +    STDMETHOD_(HRESULT, Stop)(THIS, UINT32 Flags,
   6.278 +                              UINT32 OperationSet) PURE;
   6.279 +    STDMETHOD_(HRESULT, SubmitSourceBuffer)(THIS, const XAUDIO2_BUFFER *pBuffer,
   6.280 +                                            const XAUDIO2_BUFFER_WMA *pBufferWMA) PURE;
   6.281 +    STDMETHOD_(HRESULT, FlushSourceBuffers)(THIS) PURE;
   6.282 +    STDMETHOD_(HRESULT, Discontinuity)(THIS) PURE;
   6.283 +    STDMETHOD_(HRESULT, ExitLoop)(THIS, UINT32 OperationSet) PURE;
   6.284 +    STDMETHOD_(VOID, GetState)(THIS, XAUDIO2_VOICE_STATE *pVoiceState,
   6.285 +                               UINT32 Flags) PURE;
   6.286 +    STDMETHOD_(HRESULT, SetFrequencyRatio)(THIS, float Ratio,
   6.287 +                                           UINT32 OperationSet) PURE;
   6.288 +    STDMETHOD_(VOID, GetFrequencyRatio)(THIS, float *pRatio) PURE;
   6.289 +    STDMETHOD_(HRESULT, SetSourceSampleRate)(THIS, UINT32 NewSourceSampleRate) PURE;
   6.290 +};
   6.291 +
   6.292 +#define IXAudio2SourceVoice_DestroyVoice(A) ((A)->lpVtbl->DestroyVoice(A))
   6.293 +#define IXAudio2SourceVoice_Start(A,B,C) ((A)->lpVtbl->Start(A,B,C))
   6.294 +#define IXAudio2SourceVoice_Stop(A,B,C) ((A)->lpVtbl->Stop(A,B,C))
   6.295 +#define IXAudio2SourceVoice_SubmitSourceBuffer(A,B,C) ((A)->lpVtbl->SubmitSourceBuffer(A,B,C))
   6.296 +#define IXAudio2SourceVoice_FlushSourceBuffers(A) ((A)->lpVtbl->FlushSourceBuffers(A))
   6.297 +#define IXAudio2SourceVoice_Discontinuity(A) ((A)->lpVtbl->Discontinuity(A))
   6.298 +#define IXAudio2SourceVoice_GetState(A,B,C) ((A)->lpVtbl->GetState(A,B,C))
   6.299 +
   6.300 +
   6.301 +#undef INTERFACE
   6.302 +#define INTERFACE IXAudio2MasteringVoice
   6.303 +typedef interface IXAudio2MasteringVoice {
   6.304 +    const struct IXAudio2MasteringVoiceVtbl FAR* lpVtbl;
   6.305 +} IXAudio2MasteringVoice;
   6.306 +typedef const struct IXAudio2MasteringVoiceVtbl IXAudio2MasteringVoiceVtbl;
   6.307 +const struct IXAudio2MasteringVoiceVtbl
   6.308 +{
   6.309 +    /* MSDN says that IXAudio2Voice inherits from IXAudio2, but MSVC's debugger
   6.310 +     * says otherwise, and that IXAudio2Voice doesn't inherit from any other
   6.311 +     * interface!
   6.312 +     */
   6.313 +
   6.314 +    /* IXAudio2Voice */
   6.315 +    STDMETHOD_(VOID, GetVoiceDetails)(THIS, XAUDIO2_VOICE_DETAILS *pVoiceDetails) PURE;
   6.316 +    STDMETHOD_(HRESULT, SetOutputVoices)(THIS, const XAUDIO2_VOICE_SENDS *pSendList) PURE;
   6.317 +    STDMETHOD_(HRESULT, SetEffectChain)(THIS, const XAUDIO2_EFFECT_CHAIN *pEffectChain) PURE;
   6.318 +    STDMETHOD_(HRESULT, EnableEffect)(THIS, UINT32 EffectIndex, UINT32 OperationSet) PURE;
   6.319 +    STDMETHOD_(HRESULT, DisableEffect)(THIS, UINT32 EffectIndex, UINT32 OperationSet) PURE;
   6.320 +    STDMETHOD_(VOID, GetEffectState)(THIS, UINT32 EffectIndex, BOOL *pEnabled) PURE;
   6.321 +    STDMETHOD_(HRESULT, SetEffectParameters)(THIS, UINT32 EffectIndex,
   6.322 +                                             const void *pParameters,
   6.323 +                                             UINT32 ParametersByteSize,
   6.324 +                                             UINT32 OperationSet) PURE;
   6.325 +    STDMETHOD_(VOID, GetEffectParameters)(THIS, UINT32 EffectIndex,
   6.326 +                                          void *pParameters,
   6.327 +                                          UINT32 ParametersByteSize) PURE;
   6.328 +    STDMETHOD_(HRESULT, SetFilterParameters)(THIS, const XAUDIO2_FILTER_PARAMETERS *pParameters,
   6.329 +                                             UINT32 OperationSet) PURE;
   6.330 +    STDMETHOD_(VOID, GetFilterParameters)(THIS, XAUDIO2_FILTER_PARAMETERS *pParameters) PURE;
   6.331 +    STDMETHOD_(HRESULT, SetOutputFilterParameters)(THIS, IXAudio2Voice *pDestinationVoice,
   6.332 +                                                   XAUDIO2_FILTER_PARAMETERS *pParameters,
   6.333 +                                                   UINT32 OperationSet) PURE;
   6.334 +    STDMETHOD_(VOID, GetOutputFilterParameters)(THIS, IXAudio2Voice *pDestinationVoice,
   6.335 +                                                XAUDIO2_FILTER_PARAMETERS *pParameters) PURE;
   6.336 +    STDMETHOD_(HRESULT, SetVolume)(THIS, float Volume,
   6.337 +                                   UINT32 OperationSet) PURE;
   6.338 +    STDMETHOD_(VOID, GetVolume)(THIS, float *pVolume) PURE;
   6.339 +    STDMETHOD_(HRESULT, SetChannelVolumes)(THIS, UINT32 Channels,
   6.340 +                                           const float *pVolumes,
   6.341 +                                           UINT32 OperationSet) PURE;
   6.342 +    STDMETHOD_(VOID, GetChannelVolumes)(THIS, UINT32 Channels,
   6.343 +                                        float *pVolumes) PURE;
   6.344 +    STDMETHOD_(HRESULT, SetOutputMatrix)(THIS, IXAudio2Voice *pDestinationVoice,
   6.345 +                                         UINT32 SourceChannels,
   6.346 +                                         UINT32 DestinationChannels,
   6.347 +                                         const float *pLevelMatrix,
   6.348 +                                         UINT32 OperationSet) PURE;
   6.349 +    STDMETHOD_(VOID, GetOutputMatrix)(THIS, IXAudio2Voice *pDestinationVoice,
   6.350 +                                      UINT32 SourceChannels,
   6.351 +                                      UINT32 DestinationChannels,
   6.352 +                                      float *pLevelMatrix) PURE;
   6.353 +    STDMETHOD_(VOID, DestroyVoice)(THIS) PURE;
   6.354 +
   6.355 +    /* IXAudio2SourceVoice */
   6.356 +    STDMETHOD_(VOID, GetChannelMask)(THIS, DWORD *pChannelMask) PURE;
   6.357 +};
   6.358 +
   6.359 +#define IXAudio2MasteringVoice_DestroyVoice(A) ((A)->lpVtbl->DestroyVoice(A))
   6.360 +
   6.361 +
   6.362 +#undef INTERFACE
   6.363 +#define INTERFACE IXAudio2VoiceCallback
   6.364 +typedef interface IXAudio2VoiceCallback {
   6.365 +    const struct IXAudio2VoiceCallbackVtbl FAR* lpVtbl;
   6.366 +} IXAudio2VoiceCallback;
   6.367 +typedef const struct IXAudio2VoiceCallbackVtbl IXAudio2VoiceCallbackVtbl;
   6.368 +const struct IXAudio2VoiceCallbackVtbl
   6.369 +{
   6.370 +    /* MSDN says that IXAudio2VoiceCallback inherits from IXAudio2, but SDL's
   6.371 +     * own code says otherwise, and that IXAudio2VoiceCallback doesn't inherit
   6.372 +     * from any other interface!
   6.373 +     */
   6.374 +
   6.375 +    /* IXAudio2VoiceCallback */
   6.376 +    STDMETHOD_(VOID, OnVoiceProcessingPassStart)(THIS, UINT32 BytesRequired) PURE;
   6.377 +    STDMETHOD_(VOID, OnVoiceProcessingPassEnd)(THIS) PURE;
   6.378 +    STDMETHOD_(VOID, OnStreamEnd)(THIS) PURE;
   6.379 +    STDMETHOD_(VOID, OnBufferStart)(THIS, void *pBufferContext) PURE;
   6.380 +    STDMETHOD_(VOID, OnBufferEnd)(THIS, void *pBufferContext) PURE;
   6.381 +    STDMETHOD_(VOID, OnLoopEnd)(THIS, void *pBufferContext) PURE;
   6.382 +    STDMETHOD_(VOID, OnVoiceError)(THIS, void *pBufferContext, HRESULT Error) PURE;
   6.383 +};
   6.384 +
   6.385 +#pragma pack(pop)   /* Undo pragma push */
   6.386 +
   6.387 +#endif  /* _SDL_XAUDIO2_H */
   6.388 +
   6.389 +/* vi: set ts=4 sw=4 expandtab: */
     7.1 --- a/src/core/winrt/SDL_winrtapp_direct3d.cpp	Thu Nov 26 13:51:03 2015 -0500
     7.2 +++ b/src/core/winrt/SDL_winrtapp_direct3d.cpp	Sun Nov 29 19:33:11 2015 -0500
     7.3 @@ -381,7 +381,7 @@
     7.4      // TODO, WinRT: see if an app's default orientation can be found out via WinRT API(s), then set the initial value of SDL_HINT_ORIENTATIONS accordingly.
     7.5      SDL_AddHintCallback(SDL_HINT_ORIENTATIONS, WINRT_SetDisplayOrientationsPreference, NULL);
     7.6  
     7.7 -#if WINAPI_FAMILY == WINAPI_FAMILY_APP  // for Windows 8/8.1/RT apps... (and not Phone apps)
     7.8 +#if (WINAPI_FAMILY == WINAPI_FAMILY_APP) && (NTDDI_VERSION < NTDDI_WIN10)  // for Windows 8/8.1/RT apps... (and not Phone apps)
     7.9      // Make sure we know when a user has opened the app's settings pane.
    7.10      // This is needed in order to display a privacy policy, which needs
    7.11      // to be done for network-enabled apps, as per Windows Store requirements.
    7.12 @@ -474,7 +474,7 @@
    7.13  {
    7.14  }
    7.15  
    7.16 -#if WINAPI_FAMILY == WINAPI_FAMILY_APP
    7.17 +#if (WINAPI_FAMILY == WINAPI_FAMILY_APP) && (NTDDI_VERSION < NTDDI_WIN10)
    7.18  void SDL_WinRTApp::OnSettingsPaneCommandsRequested(
    7.19      Windows::UI::ApplicationSettings::SettingsPane ^p,
    7.20      Windows::UI::ApplicationSettings::SettingsPaneCommandsRequestedEventArgs ^args)
    7.21 @@ -516,7 +516,7 @@
    7.22          args->Request->ApplicationCommands->Append(cmd);
    7.23      }
    7.24  }
    7.25 -#endif // if WINAPI_FAMILY == WINAPI_FAMILY_APP
    7.26 +#endif // if (WINAPI_FAMILY == WINAPI_FAMILY_APP) && (NTDDI_VERSION < NTDDI_WIN10)
    7.27  
    7.28  void SDL_WinRTApp::OnWindowSizeChanged(CoreWindow^ sender, WindowSizeChangedEventArgs^ args)
    7.29  {
     8.1 --- a/src/core/winrt/SDL_winrtapp_direct3d.h	Thu Nov 26 13:51:03 2015 -0500
     8.2 +++ b/src/core/winrt/SDL_winrtapp_direct3d.h	Sun Nov 29 19:33:11 2015 -0500
     8.3 @@ -43,11 +43,11 @@
     8.4  
     8.5      // Event Handlers.
     8.6  
     8.7 -#if WINAPI_FAMILY == WINAPI_FAMILY_APP  // for Windows 8/8.1/RT apps... (and not Phone apps)
     8.8 +#if (WINAPI_FAMILY == WINAPI_FAMILY_APP) && (NTDDI_VERSION < NTDDI_WIN10)  // for Windows 8/8.1/RT apps... (and not Phone apps)
     8.9      void OnSettingsPaneCommandsRequested(
    8.10          Windows::UI::ApplicationSettings::SettingsPane ^p,
    8.11          Windows::UI::ApplicationSettings::SettingsPaneCommandsRequestedEventArgs ^args);
    8.12 -#endif // if WINAPI_FAMILY == WINAPI_FAMILY_APP
    8.13 +#endif // if (WINAPI_FAMILY == WINAPI_FAMILY_APP) && (NTDDI_VERSION < NTDDI_WIN10)
    8.14  
    8.15  #if NTDDI_VERSION > NTDDI_WIN8
    8.16      void OnOrientationChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
     9.1 --- a/src/render/direct3d11/SDL_render_d3d11.c	Thu Nov 26 13:51:03 2015 -0500
     9.2 +++ b/src/render/direct3d11/SDL_render_d3d11.c	Sun Nov 29 19:33:11 2015 -0500
     9.3 @@ -2367,7 +2367,7 @@
     9.4      } else {
     9.5          SAFE_RELEASE(rendererData->vertexBuffer);
     9.6  
     9.7 -        vertexBufferDesc.ByteWidth = dataSizeInBytes;
     9.8 +        vertexBufferDesc.ByteWidth = (UINT) dataSizeInBytes;
     9.9          vertexBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
    9.10          vertexBufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
    9.11          vertexBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
    10.1 --- a/src/video/SDL_video.c	Thu Nov 26 13:51:03 2015 -0500
    10.2 +++ b/src/video/SDL_video.c	Sun Nov 29 19:33:11 2015 -0500
    10.3 @@ -1168,7 +1168,7 @@
    10.4          window->last_fullscreen_flags = window->flags;
    10.5          return 0;
    10.6      }
    10.7 -#elif __WINRT__
    10.8 +#elif __WINRT__ && (NTDDI_VERSION < NTDDI_WIN10)
    10.9      /* HACK: WinRT 8.x apps can't choose whether or not they are fullscreen
   10.10         or not.  The user can choose this, via OS-provided UI, but this can't
   10.11         be set programmatically.
   10.12 @@ -1405,7 +1405,7 @@
   10.13          return NULL;
   10.14      }
   10.15  
   10.16 -#if __WINRT__
   10.17 +#if __WINRT__ && (NTDDI_VERSION < NTDDI_WIN10)
   10.18      /* HACK: WinRT 8.x apps can't choose whether or not they are fullscreen
   10.19         or not.  The user can choose this, via OS-provided UI, but this can't
   10.20         be set programmatically.
    11.1 --- a/src/video/winrt/SDL_winrtvideo.cpp	Thu Nov 26 13:51:03 2015 -0500
    11.2 +++ b/src/video/winrt/SDL_winrtvideo.cpp	Sun Nov 29 19:33:11 2015 -0500
    11.3 @@ -76,6 +76,8 @@
    11.4  
    11.5  /* Window functions */
    11.6  static int WINRT_CreateWindow(_THIS, SDL_Window * window);
    11.7 +static void WINRT_SetWindowSize(_THIS, SDL_Window * window);
    11.8 +static void WINRT_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen);
    11.9  static void WINRT_DestroyWindow(_THIS, SDL_Window * window);
   11.10  static SDL_bool WINRT_GetWindowWMInfo(_THIS, SDL_Window * window, SDL_SysWMinfo * info);
   11.11  
   11.12 @@ -134,6 +136,8 @@
   11.13      device->VideoInit = WINRT_VideoInit;
   11.14      device->VideoQuit = WINRT_VideoQuit;
   11.15      device->CreateWindow = WINRT_CreateWindow;
   11.16 +    device->SetWindowSize = WINRT_SetWindowSize;
   11.17 +    device->SetWindowFullscreen = WINRT_SetWindowFullscreen;
   11.18      device->DestroyWindow = WINRT_DestroyWindow;
   11.19      device->SetDisplayMode = WINRT_SetDisplayMode;
   11.20      device->PumpEvents = WINRT_PumpEvents;
   11.21 @@ -478,6 +482,9 @@
   11.22  #endif
   11.23      }
   11.24  
   11.25 +    /* Make note of the requested window flags, before they start getting changed. */
   11.26 +    const Uint32 requestedFlags = window->flags;
   11.27 +
   11.28  #if SDL_VIDEO_OPENGL_EGL
   11.29      /* Setup the EGL surface, but only if OpenGL ES 2 was requested. */
   11.30      if (!(window->flags & SDL_WINDOW_OPENGL)) {
   11.31 @@ -548,15 +555,35 @@
   11.32          SDL_SetMouseFocus(NULL);        // TODO: detect this
   11.33          SDL_SetKeyboardFocus(NULL);     // TODO: detect this
   11.34      } else {
   11.35 -        /* WinRT apps seem to live in an environment where the OS controls the
   11.36 +        /* WinRT 8.x apps seem to live in an environment where the OS controls the
   11.37             app's window size, with some apps being fullscreen, depending on
   11.38             user choice of various things.  For now, just adapt the SDL_Window to
   11.39             whatever Windows set-up as the native-window's geometry.
   11.40          */
   11.41          window->x = WINRT_DIPS_TO_PHYSICAL_PIXELS(data->coreWindow->Bounds.Left);
   11.42          window->y = WINRT_DIPS_TO_PHYSICAL_PIXELS(data->coreWindow->Bounds.Top);
   11.43 +#if NTDDI_VERSION < NTDDI_WIN10
   11.44 +        /* On WinRT 8.x / pre-Win10, just use the size we were given. */
   11.45          window->w = WINRT_DIPS_TO_PHYSICAL_PIXELS(data->coreWindow->Bounds.Width);
   11.46          window->h = WINRT_DIPS_TO_PHYSICAL_PIXELS(data->coreWindow->Bounds.Height);
   11.47 +#else
   11.48 +        /* On Windows 10, we occasionally get control over window size.  For windowed
   11.49 +           mode apps, try this.
   11.50 +        */
   11.51 +        bool didSetSize = false;
   11.52 +        if (!(requestedFlags & SDL_WINDOW_FULLSCREEN)) {
   11.53 +            const Windows::Foundation::Size size(WINRT_PHYSICAL_PIXELS_TO_DIPS(window->w),
   11.54 +                                                 WINRT_PHYSICAL_PIXELS_TO_DIPS(window->h));
   11.55 +            didSetSize = data->appView->TryResizeView(size);
   11.56 +        }
   11.57 +        if (!didSetSize) {
   11.58 +            /* We either weren't able to set the window size, or a request for
   11.59 +               fullscreen was made.  Get window-size info from the OS.
   11.60 +            */
   11.61 +            window->w = WINRT_DIPS_TO_PHYSICAL_PIXELS(data->coreWindow->Bounds.Width);
   11.62 +            window->h = WINRT_DIPS_TO_PHYSICAL_PIXELS(data->coreWindow->Bounds.Height);
   11.63 +        }
   11.64 +#endif
   11.65  
   11.66          WINRT_UpdateWindowFlags(
   11.67              window,
   11.68 @@ -585,6 +612,35 @@
   11.69  }
   11.70  
   11.71  void
   11.72 +WINRT_SetWindowSize(_THIS, SDL_Window * window)
   11.73 +{
   11.74 +#if NTDDI_VERSION >= NTDDI_WIN10
   11.75 +    SDL_WindowData * data = (SDL_WindowData *)window->driverdata;
   11.76 +    const Windows::Foundation::Size size(WINRT_PHYSICAL_PIXELS_TO_DIPS(window->w),
   11.77 +                                         WINRT_PHYSICAL_PIXELS_TO_DIPS(window->h));
   11.78 +    data->appView->TryResizeView(size); // TODO, WinRT: return failure (to caller?) from TryResizeView()
   11.79 +#endif
   11.80 +}
   11.81 +
   11.82 +void
   11.83 +WINRT_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen)
   11.84 +{
   11.85 +#if NTDDI_VERSION >= NTDDI_WIN10
   11.86 +    SDL_WindowData * data = (SDL_WindowData *)window->driverdata;
   11.87 +    if (fullscreen) {
   11.88 +        if (!data->appView->IsFullScreenMode) {
   11.89 +            data->appView->TryEnterFullScreenMode();    // TODO, WinRT: return failure (to caller?) from TryEnterFullScreenMode()
   11.90 +        }
   11.91 +    } else {
   11.92 +        if (data->appView->IsFullScreenMode) {
   11.93 +            data->appView->ExitFullScreenMode();
   11.94 +        }
   11.95 +    }
   11.96 +#endif
   11.97 +}
   11.98 +
   11.99 +
  11.100 +void
  11.101  WINRT_DestroyWindow(_THIS, SDL_Window * window)
  11.102  {
  11.103      SDL_WindowData * data = (SDL_WindowData *) window->driverdata;
    12.1 --- a/src/video/winrt/SDL_winrtvideo_cpp.h	Thu Nov 26 13:51:03 2015 -0500
    12.2 +++ b/src/video/winrt/SDL_winrtvideo_cpp.h	Sun Nov 29 19:33:11 2015 -0500
    12.3 @@ -75,9 +75,9 @@
    12.4  #define WINRT_DISPLAY_PROPERTY(NAME) (Windows::Graphics::Display::DisplayProperties::NAME)
    12.5  #endif
    12.6  
    12.7 -/* Converts DIPS to physical pixels */
    12.8 -#define WINRT_DIPS_TO_PHYSICAL_PIXELS(DIPS) ((int)(0.5f + (((float)(DIPS) * (float)WINRT_DISPLAY_PROPERTY(LogicalDpi)) / 96.f)))
    12.9 -
   12.10 +/* Converts DIPS to/from physical pixels */
   12.11 +#define WINRT_DIPS_TO_PHYSICAL_PIXELS(DIPS)     ((int)(0.5f + (((float)(DIPS) * (float)WINRT_DISPLAY_PROPERTY(LogicalDpi)) / 96.f)))
   12.12 +#define WINRT_PHYSICAL_PIXELS_TO_DIPS(PHYSPIX)  (((float)(PHYSPIX) * 96.f)/WINRT_DISPLAY_PROPERTY(LogicalDpi))
   12.13  
   12.14  /* Internal window data */
   12.15  struct SDL_WindowData