D3DX9_xx.dll
DirectX 9 extension library files.
Current State:
Nearly all functions from the various d3dx9_xx dlls are forwarded to d3dx9_36 (except from those which aren't in d3dx9_36, these are forwarded to d3dx9_24). The only exceptions are D3DXGetTargetDescByName and D3DXGetTargetDescByVersion (which are in d3dx9_24 to d3dx9_30) as we couldn't find any documentation for them. For Wine d3dx9 developers this means that they (mostly) don't need to care about the 13 different dlls but only the d3dx9_36.
More and more of the d3dx9 API has been implemented over time. A general and not exhaustive overview at the time of this writing (wine 1.5.0) follows.
Things which are already implemented in Wine:
- most math functions
- ID3DXSprite interface
- partial ID3DXFont interface (currently missing text drawing)
- some surface and texture functions
- some mesh functions
The shader assembler/compiler functions are now forwarded to d3dcompiler_43.dll (which is the "modern" interface to it, also this way we can reuse the same code for d3dx9, d3d10 and d3dx10).
Some significant things still missing:
- a big chunk of the effects framework
- shader compiler
- DDS image file support + cube and volume surface functions
- pieces of shader-related functions and ID3DXConstantTable
- some mesh-related functions.
Another interesting issue is that the effect interfaces changed at some point in an incompatible way and Wine implements the most recent version only. That means games using the older interface are going to crash or misbehave. There should be a bug on this issue but I can't find it right now...
This status report will naturally get old over time. So, if you're interested, you should directly look at the source code (and probably update this).
A bunch of Games/Applications using D3DX:
- Need for Speed Carbon (d3dx9_30)
- Dreamfall: The Longest Journey 2 (d3dx9_27)
- Oblivion (d3dx9_27)
- The Sims: Pet Stories (d3dx9_30, though the other Sims probably need d3dx9, too)
- Civilization IV (d3dx9_26)
- Lost Planet (d3dx9_33)
- Hitman bloody Money (d3dx9_36?)
- Universal Combat (d3dx9_25)
- World Series of Poker 2008 (d3dx9_35)
- Titan Quest (d3dx9_36?)
IrrEdit(d3dx9_36?)
- Medieval 2: Total War (d3dx9_36)
- Psychonauts (d3dx9_36?)
- The Ship (d3dx8)
- Crysis (d3dx9_36?)
- Overlord (d3dx9_36)
- Lego Indiana Jones (d3dx9_35)
- Lego Island (d3dx9_35)
- Chessmaster 11 (d3dx9_35)
- Touhou 10 (d3dx9_31)
- Speedball 2 Tournament (d3dx9_??)
- Rainbow Six Vegas (d3dx9_36)
- Tabula Rasa (d3dx9_33)
- FEAR (d3dx9_25)
Black & White 2 (d3dx9_25)
- Settlers 2: The Next Generation (d3dx9_29)
EverQuest (d3dx9_30)
- Caesar IV (d3dx9_29)
- The Witcher (d3dx9_35)
- Avencast: Rise of the Mage (d3dx9_30)
- Sid Meier's Railroads (d3dx9_28)
- Need For Speed: Pro Street (d3dx9_34)
- Resident Evil 4 (d3dx9_36?)
- Flatout 2 (d3dx9_36?)
- Battlefield 2 (d3dx9_36?)
- Lego Star Wars II (d3dx9_30)
- Age of Empires III (d3dx9_36)
- Fable: The Lost Chapters (d3dx9_36)
TrackMania Nations Forever (d3dx9_36)
- Europa Universalis Rome (d3dx9_36)
- Age of Conan (d3dx9_36)
- Guitar Hero 3 (d3dx9_36?)
PatchCon (d3dx9_36?)
- Entropia Universe (d3dx9_30)
- Transformers (d3dx9_31)
- Warlords Battlecry III (d3dx9_28)
Additional info about the functions that the dlls provide: 1 2
