d3dxof.dll is a 32-bit only DLL and is not supported for 圆4 native applications. You should avoid using the older IDirectXFile and d3dxof.lib import library. I plan to make use of it for meshconvert.exe in DirectXMesh to support. The D3DX9xof.H header and d3dx9.lib import library provide access to these APIs. These are the ID3DXFile interface and related APIs. One bonus here is that D3DX9_43.DLL includes an implementation of the X-File parser API. For those cases, the open source route is the way to go.įor Desktop Bridge “Centennial” apps in the Windows Store, you can use the “DirectX Framework Package” 86 / Microsoft.DirectX.圆4 to ship using D3DX9, D3DX10, and/or D3DX11.X file APIs
These DLLs will not pass WACK certification. Note you cannot use D3DX9, D3DX10, and/or D3DX11 in a Universal Windows Platforms (UWP) or Xbox app.
D3DX9.LIB INSTALL
No need for administrative rights to install them, no need to use the DirectSetup API, no registry editing needed. When it comes time to ship your game or application, just ship the D3DX9_43.DLL, D3DX10_43.DLL, and/or D3DX11_43.DLL along with D3DCompile_43.DLL depending on your usage as part of your normal package. When using the 3DX NuGet package, you do not need to run the DirectX SDK installer or the DirectX End-User Runtime as they use “application local” copies of the D3DX9$(D)_43.DLL, D3DX10$(D)_43.DLL, and/or D3DX11$(D)_43.DLL.
D3DX9.LIB CODE
I also eliminated all references to dxerr.lib and instead added the dxerr code to DXUT / DXUT11 directly. I removed all references to the DXSDK_DIR environment variable. The only changes here were for updating the VC++ project files, a few minor VS 2019 warning fixes, and the NuGet. The DirectSound samples use MFC, so you need to have the optional VS 2019 component C++ MFC for latest v142 build tools (x86 & 圆4) installed. You can find them published on directx-sdk-legacy-samples.
D3DX9.LIB WINDOWS 10
These older samples build and run without the legacy DirectX SDK, and just use the Windows 10 SDK plus the 3DX NuGet package. I also included a few Direct3D 11 samples, although I’d strongly recommend looking at the fully modernized versions of Direct3D 11 samples on directx-sdk-samples that use open source replacements exclusively. In order to provide test coverage for the NuGet package, I’ve ported the Direct3D 9, Direct3D 10, and DirectSound samples from the legacy DirectX SDK. These DLLS are included with the OS, so no redistribution is needed. Use XInput 9.1.0 (Windows 7 or later) or XInput 1.4 (Windows 8 or later) instead of legacy XInput 1.3 per this blog post. If you require Windows 10, XAudio 2.9 is already in the OS. The xaudio2redist.dll supports “application local” redistribution.
D3DX9.LIB WINDOWS 8.1
For Windows 8.1 or Windows 10, it’s already in the OS.įor XAudio2 see the XAudio2Redist.
D3DX9.LIB WINDOWS 7
D3DCompiler_47.dll is available for “application local” redistribution for Windows 7 or later. For on-going projects, plan to move to the open source replacements when feasible.įor the HLSL compiler, use the D3DCompile API directly.
For new projects you should prefer to use the open source replacements instead. It can also be used for middleware engines or content tools that continue to rely on the D3DX11 deprecated utility library. This NuGet package is intended to provide a supportable option for existing codebases, as well as for Direct3D 9 and/or Direct3D 10-based games. These are functionality the same binaries as the DirectX SDK (June 2010) release so there’s no bug-fixes or other changes. Furthermore, the runtime DLLs required are now licensed for “application-local” deployment -and- are SHA-2 Authenticode signed. The NuGet package provides a method for using these deprecated libraries completely independent of the legacy DirectX SDK. There’s now a new option for using D3DX that avoids the need for both the legacy DirectX SDK and the DirectX End-User Runtime (DXSETUP): The 3DX NuGet package ( dxsdk-d3dx on vcpkg).Īs part of working through the mitigations for the recent SHA-1 deprecation, we were able to revisit the way that legacy D3DX9, D3XD10, and D3DX11 were provided. Despite all that, there are still some scenarios where D3DX9, D3DX10, and/or D3DX11 are a necessity. For Direct3D 11 or later, there’s plenty of good replacement options that are open source, written in modern C++, and simple to include without using a legacy redist solution. If you’ve been following this blog for any period of time, you know that much of it has been spent explaining the deprecated nature of the legacy DirectX SDK, and the options for avoiding the need for it.