With the deprecation of the DirectX SDK (see Where is the DirectX SDK? and Where is the DirectX SDK (2013 Edition)?), there’s been a lot of guidance both on this blog and on MSDN on moving to newer, supported solutions. As a number of folks have noticed, DXUT (aka the DirectX SDK samples framework) is not included in the Windows 8.x SDK. This post provides an updated version of DXUT for Direct3D 11. The primary purpose of this release is to remove dependencies on the DirectX SDK for D3DX9, D3DX11, and DXERR. It also includes some code tidying and a few customer requests.
If you still need support for Visual Studio 2008, Windows XP, or Direct3D 9 you should continue to use the legacy DirectX SDK (June 2010) version.
Over the years, DXUT has enjoyed a sort of ‘semi-official’ status because of its use in most of the DirectX SDK samples content. It has been adopted for samples from some video card manufacturer as well. In the past few years, the samples strategy for Microsoft has transitioned away from being packed into SDKs to the online MSDN Code Gallery which includes both ‘official’ Microsoft samples as well as community contributions. The official samples on MSDN Code Gallery generally do not make use of any samples framework at all, and none use DXUT. As such, DXUT has no special status as an ‘official’ or ‘supported’ samples framework.
The DXUT samples framework in the DirectX SDK provided ‘dual’ support for both Direct3D 9 and Direct3D 11 (and prior to that Direct3D 9 and Direct3D 10). This was primarily to support the venerable Windows XP platform. DXUT relied heavily on functionality in the D3DX library, which is now deprecated and only available in the DirectX SDK. There are a host of D3DX replacements for Direct3D 11, but none for Direct3D 9. As such, if you still require Windows XP or Direct3D 9 support, you’ll need to stick with the end-of-life DirectX SDK (June 2010) release, and continue to rely on the legacy DirectSetup deployment model. If you are using VS 2012, you’ll want to read some of the special handling needed to mix the legacy DirectX SDK with the v110_xp Platform Toolset.
The primary purpose of the DXUT framework is to handle the complex needs for device enumeration and selection, to provide GUI elements suitable for use with a full-screen DirectX application, and support a simplistic but useful mouse/keyboard input mechanism. Windows Store apps, however, have an entirely different presentation model, make use of XAML and/or Direct2D for GUI elements, support a touch-first input design, and has a heavily emphasis on power-friendly asynchronous I/O. As such, DXUT is not applicable to Windows Store apps or Windows phone.
Visual Studio 2012 and 2013 include great DirectX templates for Windows Store apps that use Direct3D 11, and there are many samples on MSDN Code Gallery. This update to DXUT is primarily intended for those already familiar with DXUT who want to continue to develop Win32 desktop samples, prototypes, and demos for Direct3D 11 without requiring the DirectX SDK or Direct Setup be installed.
September 2013 (11.03)
June 2010 (11.02)
February 2010 (11.01)
August 2009 (11.00)
Update: DXUT is now hosted on CodePlex and GitHub. The latest version of the framework, documentation, notes on future work, release history, and other information is now available there.
Samples: DXUT Tutorial Win32 Samples, Basic DXUT Win32 Samples, DXUT+DirectXTK Simple Sample
DirectXTK Note: You can use DXUT in combination with DirectXTK in the same project, but you should remove the files DDSTextureLoader.h, DDSTextureLoader.cpp, ScreenGrab.h, ScreenGrab.cpp, WICTextureLoader.h, and WICTextureLoader.cpp from DXUT\Core. Removal of SDKmesh.h and SDKmesh.cpp from DXUT\Optional is also recommended. You may have to add additional include paths to the DXUT projects to find the DirectXTK\Inc folder as well.
DDSTextureLoader.h, DDSTextureLoader.cpp, ScreenGrab.h, ScreenGrab.cpp, WICTextureLoader.h,
Related: Living without D3DX, Effects 11, Where’s DXERR.lIB?