DirectXTex and DirectXMesh now support Direct3D 12

As part of my multi-year personal project of providing open source replacements for the deprecated D3DX library once found in the legacy DirectX SDK, two libraries are focused on content creation tools and build pipelines. DirectXTex handles loading image files, texture processing including format conversion, mipmap generation, block-compression, and writing out ‘fully cooked’ textures into…


Getting Started with Direct3D 12

The first thing to do is get up to speed on Direct3D 11 (see Getting Started with Direct3D 11), especially if you are coming from a background of knowing Direct3D 9. Jumping feet-first into Direct3D 12 without a solid grounding in what a Direct3D feature level means, DXGI device-and-swapchain creation, the modern HLSL compiler story, the fate…


Anatomy of Direct3D 12 Create Device

Based on some questions I’ve been getting lately, it seems like now’s a good time to revisit my classic post Anatomy of Direct3D 11 Create Device updated for Direct3D 12! The first thing to note is that while you can pass a nullptr for the ‘default’ device with Direct3D 12 to D3D12CreateDevice, that’s probably not…


DirectX Tool Kit for DirectX 12

Since the release of DirectX Tool Kit four years ago, it has proven to be a very useful library for samples, indie and hobbyist projects, people moving from XNA Game Studio to C++, learning Direct3D 11, and for developers looking for supported replacements for the legacy D3DX library and the retiring of the legacy DirectX SDK….


Direct3D Game Visual Studio templates (Redux)

Back in January, I released a D3D11Win32Game Visual Studio 2013 template for Win32 desktop development primarily to support my DirectX Tool Kit tutorials. I modeled it after the basic template that we ship with the Xbox One XDK that consist of a Game class which sets up a device, swap chain, and timed rendering loop. I’ve…


DXGI Debug Device

In my original post on using the debug layer, I mentioned several tricks for getting helpful behavior out of the Direct3D SDK debug layer for your applications. This best practice is demonstrated in my Visual C++ Game templates as follows: #ifndef NDEBUG Microsoft::ComPtr<ID3D11Debug> d3dDebug; hr = m_d3dDevice.As(&d3dDebug); if (SUCCEEDED(hr)) {        ComPtr<ID3D11InfoQueue> d3dInfoQueue;        hr = d3dDebug.As(&d3dInfoQueue);…


Direct3D Win32 Game Visual Studio template

For people new to DirectX development, MSDN provides numerous tutorials for writing Windows Store apps, Windows phone apps, and Universal apps which all begin with creating a new project using a Visual Studio template built into to VS 2012 or VS 2013. For people targeting Win32 desktop (i.e. when developing on or for Windows 7),…


Anatomy of Direct3D 11 Create Device

In answering some questions today, I remembered a topic I had been meaning to post about for some time: the seemingly simple act of creating a Direct3D 11 device. At it’s core, it’s pretty simple, but there’s more to it than it first appears. The standard code for creating a Direct3D 11 device starts out…


DXUT for Win32 Desktop Update

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…


Living without D3DX

Over the past few years, I’ve been working on a number of projects in part motivated by the need to replace legacy D3DX functionality. As noted on MSDN, all versions of D3DX are deprecated and are not shipped with the Windows 8.x SDK. This includes D3DX9, D3DX10, and D3DX11. There are plenty of options for…