1.1 --- a/docs/README-winrt.md Thu Oct 30 13:44:31 2014 -0400
1.2 +++ b/docs/README-winrt.md Sat Nov 01 11:14:46 2014 -0400
1.3 @@ -41,6 +41,78 @@
1.4 debug apps.
1.5
1.6
1.7 +Status
1.8 +------
1.9 +
1.10 +Here is a rough list of what works, and what doens't:
1.11 +
1.12 +* What works:
1.13 + * compilation via Visual C++ 2012 and 2013
1.14 + * compile-time platform detection for SDL programs. The C/C++ #define,
1.15 + `__WINRT__`, will be set to 1 (by SDL) when compiling for WinRT.
1.16 + * GPU-accelerated 2D rendering, via SDL_Renderer.
1.17 + * software rendering, via either SDL_Surface (optionally in conjunction with
1.18 + SDL_GetWindowSurface() and SDL_UpdateWindowSurface()) or via the
1.19 + SDL_Renderer APIs
1.20 + * threads. Significant chunks of Win32's threading APIs are not available in
1.21 + WinRT. A new, SDL threading backend was built using C++11's threading APIs
1.22 + (std::thread, std::mutex, std::condition_variable, etc.), which C or C++
1.23 + programs alike can access via SDL's threading APIs. Support for thread
1.24 + priorities is not, however, currently available, due to restrictions in
1.25 + WinRT's own API set.
1.26 + * timers (via SDL_GetTicks(), SDL_AddTimer(), SDL_GetPerformanceCounter(),
1.27 + SDL_GetPerformanceFrequency(), etc.)
1.28 + * file I/O via SDL_RWops
1.29 + * mouse input (unsupported on Windows Phone)
1.30 + * audio, via a modified version of SDL's XAudio2 backend
1.31 + * .DLL file loading. Libraries must be packaged inside applications. Loading
1.32 + anything outside of the app is not supported.
1.33 + * system path retrieval via SDL's filesystem APIs
1.34 + * game controllers. Support is provided via the SDL_Joystick and
1.35 + SDL_GameController APIs, and is backed by Microsoft's XInput API.
1.36 + * multi-touch input
1.37 + * app events. SDL_APP_WILLENTER* and SDL_APP_DIDENTER* events get sent out as
1.38 + appropriate.
1.39 + * window events. SDL_WINDOWEVENT_MINIMIZED and SDL_WINDOWEVENT_RESTORED are
1.40 + sent out on app suspend and resume, respectively. SDL_WINDOWEVENT_SHOWN and
1.41 + SDL_WINDOWEVENT_HIDDEN are also sent, but not necessarily on app suspend or
1.42 + resume, as WinRT treats these two concepts differently..
1.43 + * using Direct3D 11.x APIs outside of SDL. Non-XAML / Direct3D-only apps can
1.44 + choose to render content directly via Direct3D, using SDL to manage the
1.45 + internal WinRT window, as well as input and audio. (Use
1.46 + SDL_GetWindowWMInfo() to get the WinRT 'CoreWindow', and pass it into
1.47 + IDXGIFactory2::CreateSwapChainForCoreWindow() as appropriate.)
1.48 +
1.49 +* What partially works:
1.50 + * keyboard input. Most of WinRT's documented virtual keys are supported, as
1.51 + well as many keys with documented hardware scancodes.
1.52 + * OpenGL. Experimental support for OpenGL ES 2 is available via a
1.53 + Microsoft-modified version of the ANGLE project, as available at
1.54 + https://github.com/msopentech/angle . Support is currently limited to the
1.55 + "winrt" branch, however support for the "future-dev" branch is planned.
1.56 + * SDLmain. WinRT uses a different signature for each app's main() function.
1.57 + SDL-based apps that use this port must compile in SDL_winrt_main_NonXAML.cpp
1.58 + (in `SDL\src\main\winrt\`) directly in order for their C-style main()
1.59 + functions to be called.
1.60 + * XAML interoperability. This feature is currently experimental (there are
1.61 + **many** known bugs in this, at present!), preliminary, and only for
1.62 + Windows 8.x/RT at the moment. Windows Phone + XAML support is still
1.63 + pending.
1.64 +
1.65 +* What doesn't work:
1.66 + * compilation with anything other than Visual C++ 2012 or 2013
1.67 + * programmatically-created custom cursors. These don't appear to be supported
1.68 + by WinRT. Different OS-provided cursors can, however, be created via
1.69 + SDL_CreateSystemCursor() (unsupported on Windows Phone)
1.70 + * SDL_WarpMouseInWindow() or SDL_WarpMouseGlobal(). This are not currently
1.71 + supported by WinRT itself.
1.72 + * joysticks and game controllers that aren't supported by Microsoft's XInput
1.73 + API.
1.74 + * probably anything else that's not listed as supported
1.75 +
1.76 +
1.77 +
1.78 +
1.79 Setup, High-Level Steps
1.80 -----------------------
1.81