Platform Specific Notes
Win32 Desktop
- For Win32 desktop, the OnSuspending / OnResuming messages are triggered when (a) the window is minimized/non-minimized or (b) in reaction to the WM_POWERBROADCAST message. On other platforms, this is driven by Process Lifecycle Management (PLM).
Xbox
- The background color of the first tutorial will be over-saturated because the basic Xbox template uses a back buffer format DXGI_FORMAT_B8G8R8A8_SRGB.
- Xbox titles do not encounter lost device or device removed scenarios. UWP on Xbox apps still needs to handle these scenarios.
- UWP on Xbox apps still needs to handle "device removed" scenarios.
- For Xbox One fast semantics
- Set the render targets at the end of Clear to unbind the render target from the render pipeline, and explicitly set the viewport every frame because all state is reset between frames.
- Assumptions of device state persisting frame-to-frame is wrong.
- The Prepare method must be called at the start of a rendering frame before clearing the render target.
- Graphics Memory: In CreateDeviceDependentResources add a new variable m_graphicsMemory of type DirectX::GraphicsMemory, and call the Commit method on the object as a last line in the Render method.
- Shaders: If you are using DirectXTK with Xbox One XDK, then you may need to build the Xbox One shaders that match your XDK release by running CompileShaders.cmd xbox in a Xbox One Developer Command Prompt. Usually you need not do this as it should be handled automatically.
UWP
- UWP apps require use of flip style swap effects.
- UWP on Xbox apps still needs to handle "device removed" these scenarios.
- Depth buffer format defaults to D24_UNORM_S8_UINT to support 9.x Direct3D hardware feature levels.
- You need to handle display orientation changes. For example, when using DirectTK's SpriteBatch, on window size change, m_spriteBatch->SetRotation(m_outputRotation) has to be called (the to m_* variables point to some objects in that context).