The Effects 11 library (FX11) was made available as shared-source in the DirectX SDK. Previous versions of the Effects library were part of D3DX (FX9) or built into the OS (FX10). With the DirectX SDK now legacy (see Where is the DirectX SDK?), there are still a number of people looking for the latest version since it is not included in the Windows 8.0 SDK. This post provides an updated version of the Effects 11 (FX11) library. The primary purpose of this release is to remove the dependencies on the legacy DirectX SDK for the D3DX11 headers, but it also includes some code tidying and a few customer requests.
Version 11.03
d3dcompiler.h
D3D10
d3dx11dbg.cpp
d3dx11dbg.h
D3DX11_EFFECT_PASS flags
nullptr
stdint.h
/analyze
D3DX11CreateEffectFromMemory
D3DX11CreateEffectFromFile
D3DX11CompileEffectFromMemory
D3DX11CompileEffectFromFile
Version 11.04
IUnknown
ID3DX11Effect
ID3DX11EffectType
ID3DX11EffectVariable
ID3DX11EffectPass
ID3DX11EffectTechnique
ID3DX11EffectGroup
Version 11.05
Version 11.06
GetMatrixPointerArray
GetMatrixTransposePointerArray
SetMatrixPointerArray
SetMatrixTransposePointerArray
BOOL
sizeof(bool)==1
sizeof(BOOL)==4
override
There are three Visual Studio solutions provided:
If you still need Visual Studio 2008 support, you should keep using the legacy DirectX SDK (June 2010) version.
Effects 11 is primarily being provided as a porting aid for older code that make use of the Effects 10 (FX10) API or Effects 9 (FX9) API in the deprecated D3DX9 library. See MSDN for a list of differences compared to the Effects 10 (FX10) library.
D3DX9
fx_5_0
FXC.EXE
Here's a handy table of equivalents related to Effects:
D3DXCreateEffectD3DXCreateEffectExD3DXCreateEffectFromResourceD3DXCreateEffectFromResourceExD3D10CompileEffectFromMemory
D3DXCreateEffectFromFileD3DXCreateEffectFromFileEx
D3D10CreateEffectFromMemory
D3DXCreateEffectPool D3D10CreateEffectPoolFromMemory
Effects 11 does not support 'effect pools'or D3DCOMPILE_EFFECT_CHILD_EFFECT. Effect groups provide a more efficient solution for common scenarios previously addressed with 'effect pools'
D3DCOMPILE_EFFECT_CHILD_EFFECT
D3DXDisassembleEffect D3D10DisassembleEffect
D3DDisassemble D3DDisassemble10Effect in D3DCompile
D3DDisassemble
D3DDisassemble10Effect
This version is marked with a preprocessor define D3DX11_EFFECTS_VERSION as “1106” to indicate a release version in the shared source library.
D3DX11_EFFECTS_VERSION
The initial release of Effects 11 (FX11) was in DirectX SDK (August 2009).
An update was shipped with the DirectX SDK (February 2010). This fixed a problem with the library which prevented it from working correctly on 9.x and 10.x feature levels.
The most recent previous release was in the DirectX SDK (June 2010) with some minor additional bug fixes. This also included the Effects 11-based sample DynamicShaderLinkageFX11.
Version 11.03 was the first 'blog' release (changes noted above) was released on October 24, 2012.
Version 11.04 was released on November 6, 2012.
Version 11.05 was released on February 22, 2013
Version 11.06 was released on June 13, 2013
The source code attached to this blog post is bound to the Microsoft Public License (MS-PL).