Cleaned out refs to VS 2013, Windows Vista

Chuck Walbourn 2019-04-25 12:06:45 -07:00
Родитель 8e4896881e
Коммит 078daf92a3
12 изменённых файлов: 47 добавлений и 50 удалений

@ -66,7 +66,7 @@ Build and run. You won't hear anything yet, but we do have XAudio2 up and runnin
> _Troubleshooting:_ If you get the link error 'unresolved external symbol' for ``CreateFX``, ``X3DAudioInitialize``, or ``X3DAudioCalculate``, you may have incorrectly configured the x86 vs. x64 versions of the VC++ Directory library paths in the previous lesson.
> _Troubleshooting:_ When using the debug version of XAudio 2.7 on Windows Vista or Windows 7, you can get a break-point exception thrown even with a valid device. The debug output window message will be the following. You can safely ignore this and click "Continue".
> _Troubleshooting:_ When using the debug version of XAudio 2.7 on Windows 7, you can get a break-point exception thrown even with a valid device. The debug output window message will be the following. You can safely ignore this and click "Continue".
################################################################################
### XAUDIO2: enginerendererconnection.cpp:334:

@ -5,11 +5,9 @@ First create a new project using the instructions from the first two lessons: [[
[[Adding the DirectX Tool Kit]] which we will use for this lesson.
# NuGet package manager
If you used NuGet when [[Adding the DirectX Tool Kit]], then you already have support for _DirectX Tool Kit for Audio._. The id ``directxtk_desktop_2013`` and ``directxtk_desktop_2015`` packages are configured for Windows 7 and Windows Vista support, so it is making use of **XAudio 2.7**.
If you used NuGet when [[Adding the DirectX Tool Kit]], then you already have support for _DirectX Tool Kit for Audio._.
XAudio 2.7 requires the legacy DirectX SDK (June 2010). Due to some technical issues, it must be installed to the 'default' location of ``C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)``. To install the legacy DirectX SDK on your development system, see [this post](https://walbourn.github.io/announcement-directx-sdk-june-2010-is-live/) and be sure to read [this article](https://walbourn.github.io/known-issue-directx-sdk-june-2010-setup-and-the-s1023-error/) for a known issue with the installer.
> The other platform NuGet packages do not require the legacy DirectX SDK as they always make use of XAudio 2.8 or later which is built into Windows 8.1 (``directxtk_windowsstore_8_1``), Windows 10 (``directxtk_uwp``, ``directxtk12_*``), Windows phone 8.1 (``directxtk_windowsphone_8_1``), and Xbox One.
The id ``directxtk_desktop_2015`` packages are configured for Windows 7 Service Pack 1 support for graphics & input, but make use of **XAudio 2.8** for _DirectX Tool Kit for Audio_. Therefore audio support with NuGet requires Windows 8 or later. If you need Windows 7 Service Pack 1 support for audio, then use *Project-to-project references* instead of NuGet. See [this blog post](https://walbourn.github.io/github-nuget-and-vso/) for details.
Complete the steps in **Adding the headers** below including the additional configuration for XAudio 2.7.
@ -17,14 +15,14 @@ Complete the steps in **Adding the headers** below including the additional conf
If you used project-to-project references when [[Adding the DirectX Tool Kit]], then you need to add an additional _DirectX Tool Kit for Audio_ project to your solution. There are two choices depending on your platform target.
## XAudio 2.7
XAudio 2.7 supports Windows Vista, Windows 7, or later. It is deployed by the legacy _DirectX End User Runtime_ package and requires the legacy DirectX SDK (June 2010) to develop with. Due to some technical issues, it must be installed to the 'default' location of ``C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)``. To install the legacy DirectX SDK on your development system, see [this post](https://walbourn.github.io/announcement-directx-sdk-june-2010-is-live/) and be sure to read [this article](https://walbourn.github.io/known-issue-directx-sdk-june-2010-setup-and-the-s1023-error/) for a known issue with the installer.
XAudio 2.7 supports Windows 7 or later. It is deployed by the legacy _DirectX End User Runtime_ package and requires the legacy DirectX SDK (June 2010) to develop with. Due to some technical issues, it must be installed to the 'default' location of ``C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)``. To install the legacy DirectX SDK on your development system, see [this post](https://walbourn.github.io/announcement-directx-sdk-june-2010-is-live/) and be sure to read [this article](https://walbourn.github.io/known-issue-directx-sdk-june-2010-setup-and-the-s1023-error/) for a known issue with the installer.
1. Right-click on your solution in the Solution Explorer, and select **Add** / **Existing Project...**
1. Browse into the "DirectXTK\Audio" folder and select ``DirectXTKAudio_Desktop_2013_DXSDK.vcxproj`` or ``DirectXTKAudio_Desktop_2015_DXSDK.vcxproj``, click "Open"
1. Browse into the "DirectXTK\Audio" folder and select ``DirectXTKAudio_Desktop_201x_DXSDK.vcxproj``, click "Open"
1. If Visual Studio presents a "Security Warning", select "OK". Optional: Uncheck "Ask me for every project in this solution" first.
1. Right-click on your project in the Solution Explorer, and select **Add** / **References...**
1. Select "Add New Reference..."
1. Check ``DirectXTKAudio_Desktop_2013_DXSDK.vcxproj`` or ``DirectXTKAudio_Desktop_2015_DXSDK.vcxproj`` and select "OK"
1. Check ``DirectXTKAudio_Desktop_201x_DXSDK.vcxproj`` and select "OK"
1. Select "OK"
![Add Reference (DirectX SDK)](https://github.com/Microsoft/DirectXTK/wiki/images/AddReferenceDX.png)
@ -32,21 +30,19 @@ XAudio 2.7 supports Windows Vista, Windows 7, or later. It is deployed by the le
Complete the steps in **Adding the headers** below including the additional configuration for XAudio 2.7.
## XAudio 2.8
XAudio 2.8 is built into Windows 8.0 or later, and everything needed is include with the OS and the Windows 8.1 / Windows 10 SDK which is deployed with VS 2013 or later.
XAudio 2.8 is built into Windows 8.0 or later, and everything needed is include with the OS and the Windows 8.1 / Windows 10 SDK.
1. Right-click on your solution in the Solution Explorer, and select **Add** / **Existing Project...**
1. Browse into the "DirectXTK\Audio" folder and select ``DirectXTKAudio_Desktop_2013_Win8.vcxproj`` or ``DirectXTKAudio_Desktop_2015_Win8.vcxproj``, click "Open"
1. Browse into the "DirectXTK\Audio" folder and select ``DirectXTKAudio_Desktop_201x_Win8.vcxproj``, click "Open"
1. If Visual Studio presents a "Security Warning", select "OK". Optional: Uncheck "Ask me for every project in this solution" first.
1. Right-click on your project in the Solution Explorer, and select **Add** / **References...**
1. Select "Add New Reference..."
1. Check ``DirectXTKAudio_Desktop_2013_Win8.vcxproj`` or ``DirectXTKAudio_Desktop_2015_Win8.vcxproj`` and select "OK"
1. Check ``DirectXTKAudio_Desktop_201x_Win8.vcxproj`` and select "OK"
1. Select "OK"
![Add Reference (Windows 8)](https://github.com/Microsoft/DirectXTK/wiki/images/AddReferenceWin8.png)
> The other platform DirectX Tool Kit vcxproj files already include _DirectX Tool Kit for Audio_ as they always make use of XAudio 2.8 or later which is built into Windows 8.1 (``DirectXTK_Windows81.vcxproj``), Windows 10 (``DirectXTK_Windows10.vcxproj``, ``DirectXTK_Desktop_2015_Win10.vcxproj``), Windows phone 8.1 (``DirectXTK_WindowsPhone81.vcxproj``), and Xbox One (``DirectXTK_XboxOneXDK_2015.vcxproj``).
> The universal Windows platform with Windows 10 (``DirectXTK_Windows10``, ``DirectXTK12_Windows10``) includes XAudio 2.9, and the Windows desktop version for Windows 10 (``DirectXTK_Desktop_2015_Win10``, ``DirectXTK12_*_Win10``) includes using XAudio 2.9 as well. Both require building with the Windows 10 SDK.
> The other platform DirectX Tool Kit vcxproj files already include _DirectX Tool Kit for Audio_ as they always make use of XAudio 2.8 or later which is built into Windows 10 (``DirectXTK*_Windows10.vcxproj``, ``DirectXTK*_Desktop_201x_Win10.vcxproj``,) and Xbox One (``DirectXTK*_XboxOneXDK_201x.vcxproj``).
Complete the steps in **Adding the headers** below including the additional configuration for XAudio 2.8.
@ -69,7 +65,7 @@ Now that we have the _DirectX Tool Kit for Audio_ usable in your project, the ne
```
## XAudio 2.7
If you are using XAudio 2.7 for Windows 7 and Windows Vista compatibility, we also need to add the DirectX SDK include and library paths to your project. First go to **Project** / **Properties** and select "VC++ Directories" on the left. Then set Configuration to "All Configurations" and Platform to "Win32" (note this is called "x86" in VS 2015). Add to the _end_ of these paths:
If you are using XAudio 2.7 for Windows 7 compatibility, we also need to add the legacy DirectX SDK include and library paths to your project. First go to **Project** / **Properties** and select "VC++ Directories" on the left. Then set Configuration to "All Configurations" and Platform to "Win32" (note this is called "x86" in VS 2015). Add to the _end_ of these paths:
* **Include Directories:** ``;$(DXSDK_DIR)Include``
* **Library Directories:** ``;$(DXSDK_DIR)Lib\x86``
@ -85,7 +81,7 @@ Click "Apply".
![VC++ Directories (x64)](https://github.com/Microsoft/DirectXTK/wiki/images/settingsDXx64.png)
It is important that the legacy DirectX SDK paths be after the existing path since are making use of the Windows 8.1 / VS 2013. See [Where is the DirectX SDK?](https://docs.microsoft.com/en-us/windows/desktop/directx-sdk--august-2009-) for more details.
It is important that the legacy DirectX SDK paths be after the existing path since are making use of the Windows 8.1 / 10 SDK. See [Where is the DirectX SDK?](https://docs.microsoft.com/en-us/windows/desktop/directx-sdk--august-2009-) for more details.
> _Troubleshooting:_ If you get a compilation error indicating you are missing ``comdecl.h``, then you have incorrectly configured your VC++ Directory include paths. If you get a link error indicating you are missing ``x3daudio.lib`` then you incorrectly configured your VC++ Directory library paths.

@ -14,14 +14,14 @@ The easiest way to achieve this is to use the [NuGet package manager](https://ww
You can check for updates to the NuGet package by selecting "Updates/All" in the left-hand tree view. If there are updates, select the "DirectX Tool Kit" package, and click on "Update".
> Both **directxtk_desktop_2015** and **directxtk_uwp** support VS 2017 as well.
> Both **directxtk_desktop_2015** and **directxtk_uwp** support VS 2017 and VS 2019 as well since they are all 'binary compatible'.
# Project-to-project references
Another option rather than using NuGet is to use Visual Studio's [project-to-project references](https://devblogs.microsoft.com/cppblog/flexible-project-to-project-references/). This approach is a little more setup, but it does ensure that you are building the full DirectX Tool Kit library as part of your solution, and allows you to make changes directly to the tool kit if desired as well.
* Extract the [release .zip file](https://github.com/Microsoft/DirectXTK/releases) into a directory relative to the new project you created. For this tutorial, we will assume the ``DirectXTK`` folder is in the same folder as your new project's Visual Studio Solution (``.sln``) file.
* Right-click on your solution in the Solution Explorer, and select **Add** / **Existing Project...**
* Browse into the "DirectXTK" folder and select ``DirectXTK_Desktop_2015.vcxproj`` / ``DirectXTK_Desktop_2017.vcxproj`` for Win32 -or- ``DirectXTK_Windows10.vcxproj`` for UWP, click "Open"
* Browse into the "DirectXTK" folder and select ``DirectXTK_Desktop_201x.vcxproj`` for Win32 -or- ``DirectXTK_Windows10.vcxproj`` for UWP, click "Open"
* If Visual Studio presents a "Security Warning", select "OK". Optional: Uncheck "Ask me for every project in this solution" first.
* Right-click on your project in the Solution Explorer, and select **Add** / **References...**
* Select "Add New Reference..."

@ -153,26 +153,25 @@ Each instance of a SoundEffectInstance will allocate it's own source voice when
See [[AudioEngine]] for more information.
# Platform support
Windows 8.x, Windows 10, Windows phone 8.x, and Xbox One all include XAudio 2.8 or later. Therefore, the standard ``DirectXTK.lib`` includes _DirectXTK for Audio_ for all these platforms:
* *DirectXTK_Desktop_2015_Win10*
* *DirectXTK_Desktop_2017_Win10*
* *DirectXTK_Windows10*
* *DirectXTK_Windows10_2015*
* *DirectXTK_XboxOneXDK_2015*
* *DirectXTK_XboxOneXDK_2017*
Windows 8.x, Windows 10, and Xbox One all include XAudio 2.8 or later. Therefore, the standard ``DirectXTK.lib`` includes _DirectXTK for Audio_ for all these platforms:
* *DirectXTK*_Desktop_201x_Win10*
* *DirectXTK*_Windows10*
* *DirectXTK*_Windows10_201x*
* *DirectXTK*_XboxOneXDK_201x*
For Windows desktop applications targeting Windows 8.x or later, you can make use of XAudio 2.8. The ``DirectXTKAudioWin8.lib`` contains the XAudio 2.8 version of DirectXTK for Audio, while ``DirectXTK.lib`` for Windows desktop contains only the math/graphics components. To support Windows desktop applications on Windows 7 and Windows Vista, we must make use XAudio 2.7, the legacy DirectX SDK, and the legacy DirectX End-User Runtime Redistribution packages (aka DirectSetup). The ``DirectXTKAudioDX.lib`` is the XAudio 2.7 version of DirectXTK for Audio.
For Windows desktop applications targeting Windows 8.x or later, you can make use of XAudio 2.8. The ``DirectXTKAudioWin8.lib`` contains the XAudio 2.8 version of DirectXTK for Audio, while ``DirectXTK.lib`` for Windows desktop contains only the math/graphics components. To support Windows desktop applications on Windows 7, we must make use XAudio 2.7, the legacy DirectX SDK, and the legacy DirectX End-User Runtime Redistribution packages (aka DirectSetup). The ``DirectXTKAudioDX.lib`` is the XAudio 2.7 version of _DirectXTK for Audio_.
## XAudio 2.7 vs. 2.8
DirectXTK_Desktop_2015 and DirectXTK_Desktop_2013 do not include _DirectXTK for Audio_. To add _DirectXTK for Audio_ support for a Win32 desktop application, you must also add one of the following projects from the ``Audio`` folder of the distribution to your solution and **Add a Reference** to it (see [[DirectXTK]] for more details).
DirectXTK_Desktop_201x do not include _DirectXTK for Audio_. To add _DirectXTK for Audio_ support for a Win32 desktop application, you must also add one of the following projects from the ``Audio`` folder of the distribution to your solution and **Add a Reference** to it (see [[DirectXTK]] for more details).
When targeting Windows 8.x or later:
* *DirectXTKAudio_Desktop_2015_Win8* - DirectXTK for Audio using VS 2015 and XAudio 2.8
* *DirectXTKAudio_Desktop_2017_Win8* - DirectXTK for Audio using VS 2017 and XAudio 2.8
* *DirectXTKAudio_Desktop_2019_Win8* - DirectXTK for Audio using VS 2019 and XAudio 2.8
When targeting Windows Vista or Windows 7:
* *DirectXTKAudio_Desktop_2015_DXSDK* - DirectXTK for Audio project for VS 2015 + Windows 8.1 SDK + legacy DirectXTK using XAudio 2.7
* *DirectXTKAudio_Desktop_2017_DXSDK* - DirectXTK for Audio project for VS 2017 + Windows 8.1 SDK + legacy DirectXTK using XAudio 2.7
When targeting Windows 7:
* *DirectXTKAudio_Desktop_2015_DXSDK* - DirectXTK for Audio project for VS 2015 + Windows 8.1 / 10 SDK + legacy DirectXTK using XAudio 2.7
* *DirectXTKAudio_Desktop_2017_DXSDK* - DirectXTK for Audio project for VS 2017 + Windows 10 SDK + legacy DirectXTK using XAudio 2.7
[XAudio2 Versions](https://docs.microsoft.com/en-us/windows/desktop/xaudio2/xaudio2-versions)
@ -180,15 +179,17 @@ When targeting Windows Vista or Windows 7:
[Where is the DirectX SDK?](https://docs.microsoft.com/en-us/windows/desktop/directx-sdk--august-2009-)
DirectXTK makes use of the latest Direct3D 11.1 headers available in the Windows 8.x SDK, and there are a number of file conflicts between the Windows 8.x SDK and the legacy DirectX SDK. Therefore, when building for down-level support with XAudio 2.7, ``Audio.h`` explicitly includes the DirectX SDK version of XAudio2 headers with a full path name. These reflect the default install locations, and if you have installed it elsewhere you will need to update this header. The ``*_DXSDK.vcxproj`` files use the ``DXSDK_DIR`` environment variable, so only the ``Audio.h`` references need updating for an alternative location.
DirectXTK makes use of the latest Direct3D 11.1 headers available in the Windows 8.x / 10 SDK, and there are a number of file conflicts between the Windows 8.x / 10 SDK and the legacy DirectX SDK. Therefore, when building for down-level support with XAudio 2.7, ``Audio.h`` explicitly includes the DirectX SDK version of XAudio2 headers with a full path name. These reflect the default install locations, and if you have installed it elsewhere you will need to update this header. The ``*_DXSDK.vcxproj`` files use the ``DXSDK_DIR`` environment variable, so only the ``Audio.h`` references need updating for an alternative location.
// Using XAudio 2.7 requires the DirectX SDK
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\comdecl.h>
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\xaudio2.h>
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\xaudio2fx.h>
#pragma warning(push)
#pragma warning( disable : 4005 )
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\x3daudio.h>
```cpp
// Using XAudio 2.7 requires the DirectX SDK
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\comdecl.h>
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\xaudio2.h>
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\xaudio2fx.h>
#pragma warning(push)
#pragma warning( disable : 4005 )
#include <C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\x3daudio.h>
```
> The NuGet package [directxtk_desktop_2015](https://www.nuget.org/packages/directxtk_desktop_2015/) is designed for Windows 7 compatibility for the main library, but any use of _DirectX Tool Kit for Audio_ uses XAudio 2.8. See [this blog post](https://walbourn.github.io/github-nuget-and-vso/) for details.

@ -163,7 +163,7 @@ ComPtr goes through some lengths to hide the base IUnknown methods ``AddRef``, `
# Platform notes
The bulk of the Windows Runtime Template Library (WRL) is intended to make it easier to use the new WinRT style APIs introduced with Windows Store and Universal Windows Platform apps. It is a pure C++ template library and does not make use of the C++/CX language extensions, which are themselves another way to consume WinRT APIs from C++. You can, however, mix usage of the two easily and most C++/CX programs will use at least ``Microsoft::WRL::ComPtr`` for managing COM objects for non-WinRT APIs such as Direct3D.
Because WRL is a pure C++ template library, it has no particular platform support requirements beyond being in the Windows 8.x or Windows 10 SDKs. You can therefore freely use it in Windows desktop applications built for Windows Vista, Windows 7, Windows 8.x, or Windows 10 as well as in Windows Store, Windows phone, Xbox One, and Universal Windows Platform apps.
Because WRL is a pure C++ template library, it has no particular platform support requirements beyond being in the Windows 8.x or Windows 10 SDKs. You can therefore freely use it in Windows desktop applications built for Windows 7, Windows 8.x, or Windows 10 as well as in Windows Store, Windows phone, Xbox One, and Universal Windows Platform apps.
> The Windows 8.0 SDK and later that includes WRL does not support targeting Windows XP / Windows Server 2003. For these older operating systems you have to make use of the Windows 7.1A SDK instead. See [this blog post](https://walbourn.github.io/visual-studio-2012-update-1/) for more details.

@ -1,6 +1,6 @@
In [[the basic game loop]] lesson and other tutorials, we are making use of the **Direct3D 11 Game** VS template which has all the relevant Direct3D code in the ``Game`` class including creating the device and swap chain. This makes it easy to teach with, and for the reader to see all the code in one place. This, however, does result in a lot of 'boiler-plate' code in the main ``Game`` class which could be distracting in larger projects & samples.
There is therefore a "DR" variant of each of the Direct3D Game VS templates in the [VS 2015 / VS 2017](https://github.com/walbourn/directx-vs-templates/raw/master/VSIX/Direct3DUWPGame.vsix) VSIX package.
There is therefore a "DR" variant of each of the Direct3D Game VS templates in the [VS 2015/2017/2019](https://github.com/walbourn/directx-vs-templates/raw/master/VSIX/Direct3DUWPGame.vsix) VSIX package.
> The standard Universal Windows Platform app, Windows 8 Store DirectX, and Windows phone 8 VS templates make use of a similar ``DeviceResources`` abstraction.
@ -287,7 +287,9 @@ The DeviceResources class methods are intended to be called from the main presen
# Platform notes
## Windows desktop apps
The **DeviceResources** implementation is designed to support Windows Vista SP2 and Windows 7 RTM with DirectX 11.0, but also supports Direct3D 11.1 on [Windows 7 SP 1](https://walbourn.github.io/directx-11-1-and-windows-7/) or Windows 8 which provides [significant improvements](https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-1-features) such as simplified interop with Direct2D/DirectWrite. Therefore, you should generally prefer to use **GetD3DDevice** / **GetD3DDeviceContext** / **GetSwapChain**, but where you explicitly need 11.1 features you call **GetD3DDevice1** / **GetD3DDeviceContext1** / **GetSwapChain1**. These will be nullptr if the system only has the DirectX 11.0 Runtime.
The **DeviceResources** implementation is designed to support Direct3D 11.1 on [Windows 7 Service Pack 1](https://walbourn.github.io/directx-11-1-and-windows-7/), Windows 8.x, or later which provides [significant improvements](https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-1-features) such as simplified interop with Direct2D/DirectWrite.
> Older versions of this DeviceResources supported Windows Vista Service Pack 2 and Windows 7 RTM with DirectX 11.0. The implementation has since been changed to require DirectX 11.1 to simplify the code. If you need details on the differences, see [this blog post](https://walbourn.github.io/anatomy-of-direct3d-11-create-device/)
## Universal Windows Platform apps
The UWP version of **DeviceResources** always uses [DirectX 11.3 interfaces](https://docs.microsoft.com/en-us/windows/desktop/direct3d11/direct3d-11-3-features).

@ -31,15 +31,13 @@ For debugging exceptions thrown by the _DirectX Tool Kit_, you should enable the
> For some more detail on how the Visual Studio debugger deals with exceptions, read [this](https://devblogs.microsoft.com/devops/understanding-exceptions-while-debugging-with-visual-studio/) blog post.
> In Visual Studio 2015/2017, the exception debugging options changed compared to VS 2013; see [this](https://blogs.msdn.microsoft.com/visualstudioalm/2015/02/23/the-new-exception-settings-window-in-visual-studio-2015/) blog post.
# Audience
These tutorials are written with game development in mind as the target application since games are an excellent fit for the 'immersive DirectX app' model. Keep in mind, however, that the majority of the functionality in the _DirectX Tool Kit_ is applicable to DirectX graphics programming in general for both game and non-game applications.
# Software Setup
For learning purposes, these instructions are going to focus on the following setup:
* Visual Studio 2015 [Update 3](https://walbourn.github.io/visual-studio-2015-update-3/) or Visual Studio 2017 ([15.7 update](https://walbourn.github.io/vs-2017-15-7-update/) or [15.8 update](https://walbourn.github.io/vs-2017-15-8-update/)) Community, Professional, Premium, or Ultimate
* Visual Studio 2015 [Update 3](https://walbourn.github.io/visual-studio-2015-update-3/) , Visual Studio 2017 ([15.9 update](https://walbourn.github.io/vs-2017-15-9-update/)), or VS 2019 Community, Professional, Premium, or Ultimate
* Windows 7 Service Pack 1, Windows 8.1, or Windows 10
We will be using a Win32 desktop application project template in order to support developers using Windows 7, but all these techniques and APIs apply to Universal Windows Platform apps and Xbox One as well.
@ -49,7 +47,7 @@ We will be using a Win32 desktop application project template in order to suppor
## Visual Studio 2015
Be sure to install Visual C++ which requires using the _Custom_ install as it's not part of the _Typical_ install. See the [Visual C++ Team Blog](https://devblogs.microsoft.com/cppblog/setup-changes-in-visual-studio-2015-affecting-c-developers/) for details.
## Visual Studio 2017
## Visual Studio 2017 / 2019
When using the [new lightweight installer](https://devblogs.microsoft.com/cppblog/the-lightweight-visual-studio-15-installer/) be sure to select the appropriate workloads. Here are the recommended options to select:
* Workload: _Game development with C++_

@ -15,7 +15,7 @@ See this [blog post](https://walbourn.github.io/directxtk/).
[[Resources]]
# DirectX 11
_DirectX Tool Kit for DirectX 11_ was formerly hosted on [CodePlex](https://directxtk.codeplex.com/). DirectX 11 is supported on Windows Vista SP2, Windows 7, Windows 8.x, and Windows 10. Use of DirectX 11 for beginners, indies, small projects, and small teams is highly recommended.
_DirectX Tool Kit for DirectX 11_ was formerly hosted on [CodePlex](https://directxtk.codeplex.com/). DirectX 11 is supported on Windows 7, Windows 8.x, and Windows 10. Use of DirectX 11 for beginners, indies, small projects, and small teams is highly recommended.
# DirectX 12
A version of _DirectX Tool Kit for DirectX 12_ is available on [GitHub](https://github.com/Microsoft/DirectXTK12). DirectX 12 is an expert API for Windows 10 which builds on knowing the ins & outs of DirectX 11. DirectX 12 is an extremely low-level API designed for graphic experts who have a solid understanding of the architecture of modern GPU hardware, and can essentially write the DirectX 11 Runtime from scratch. Both DirectX 11 and DirectX 12 provide access to the same hardware features on Windows 10, but drive the hardware in different ways which can allow a well-optimized DirectX 12 engine to achieve much lower CPU overhead than in DirectX 11.

@ -129,7 +129,7 @@ XAudio 2.9 on Windows 10 supports PCM, ADPCM, and xWMA.
XAudio 2.8 on Windows 8.x and Windows phone support PCM and ADPCM formats.
XAudio 2.7 on Windows Vista or later via the legacy DirectX End-User Runtime Redistribution (aka DirectSetup) supports PCM, ADPCM, and xWMA.
XAudio 2.7 on Windows 7 or later via the legacy DirectX End-User Runtime Redistribution (aka DirectSetup) supports PCM, ADPCM, and xWMA.
XAudio on Xbox One supports PCM, ADPCM, and xWMA. Xbox One exclusive app developers can also make use of XMA2.

@ -1,7 +1,7 @@
The first lesson in the [[Getting Started]] guide is to create a basic game loop.
# Setup
Our starting point is to use the **Direct3D Win32 Game** project template. Install the [VS 2015 / VS 2017](https://github.com/walbourn/directx-vs-templates/raw/master/VSIX/Direct3DUWPGame.vsix) VSIX on your development system, and then start (or restart) Visual Studio.
Our starting point is to use the **Direct3D Win32 Game** project template. Install the [VS 2015/2017/2019](https://github.com/walbourn/directx-vs-templates/raw/master/VSIX/Direct3DUWPGame.vsix) VSIX on your development system, and then start (or restart) Visual Studio.
> There are two versions of each D3DGame template. The "DR" version makes use of a [[DeviceResources]] abstraction to isolate the device and swapchain handling into a helper file. This is useful for larger projects, but for these lessons I'm making use of the non-DR version which has all the Direct3D objects inside the ``Game`` class.

@ -193,7 +193,7 @@ Build and run to see a slightly different handling.
Next we'll add support for HDR10 wide color gamut rendering.
> HDR10 display output requires a 4k UHD monitor connected with HDMI 2.0 to a PC running Windows 10 Creators Update. The code has to be built with the Windows 10 Creators Update SDK (15063) which itself requires VS 2017.
> HDR10 display output requires a 4k UHD monitor connected with HDMI 2.0 to a PC running Windows 10 Creators Update. The code has to be built with the Windows 10 Creators Update SDK (15063) which itself requires VS 2017 or later.
In the **Game.cpp** constructor, modify it as follows to use the ``c_EnableHDR`` option of [[DeviceResources]]:

@ -150,7 +150,7 @@ XAudio 2.9 on Windows 10 supports PCM, ADPCM, and xWMA.
XAudio 2.8 on Windows 8.x and Windows phone support PCM and ADPCM formats.
XAudio 2.7 on Windows Vista or later via the legacy DirectX End-User Runtime Redistribution (aka DirectSetup) supports PCM, ADPCM, and xWMA.
XAudio 2.7 on Windows 7 or later via the legacy DirectX End-User Runtime Redistribution (aka DirectSetup) supports PCM, ADPCM, and xWMA.
XAudio on Xbox One supports PCM, ADPCM, and xWMA. Xbox One exclusive app developers can also make use of XMA2.