From WineHQ Wiki
Jump to: navigation, search


D3DX9 extension library files. Relevant MSDN section, although unfortunately MSDN URLs tend to break over time.

A Brief Overview

In order to simplify the code structure in Wine, nearly all functions from the various d3dx9_xx dlls are forwarded to d3dx9_36. The primary exceptions are functions that were never implemented in d3dx9_36 (these are forwarded to d3dx9_24), the functions D3DXGetTargetDescByName and D3DXGetTargetDescByVersion, which are in d3dx9_24 to d3dx9_30 since we couldn't find any documentation for them.

This means that most Wine d3dx9 developers only need to focus on d3dx9_36. As of v1.5.27, Wine's implementation of the d3dx9 API includes:

  • most math functions
  • ID3DXSprite interface
  • partial ID3DXFont interface (currently missing text drawing)
  • most surface and texture functions
  • some mesh functions

Also note that the shader assembler/compiler functions are now forwarded to d3dcompiler_43.dll, which is the "modern" interface to these features. This lets us reuse a lot of code for d3dx9, d3d10 and d3dx10 too.

Games for Testing

Here is a table of games that rely on d3dx9, along with which module they primarily (?) depend on:

Title d3dx9_??
Black & White 2 25
Universal Combat 25
Civilization IV 26
Dreamfall: The Longest Journey 2 27
Oblivion 27
Sid Meier's Railroads 28
Warlords Battlecry III 28
Settlers 2: The Next Generation 29
Caesar IV 29
Need for Speed Carbon 30
The Sims: Pet Stories (others too?) 30
Entropia Universe 30
Lego Star Wars II 30
EverQuest 30
Avencast: Rise of the Mage 30
Transformers 31
Touhou 10 31
Tabula Rasa 33
Lost Planet 33
Need For Speed: Pro Street 34
Lego Indiana Jones 35
Lego Island 35
Chessmaster 11 35
The Witcher 35
Medieval 2: Total War 36
Rainbow Six Vegas 36
Age of Empires III 36
Fable: The Lost Chapters 36
TrackMania Nations Forever 36
Europa Universalis Rome 36
Age of Conan 36
Overlord 36
Guitar Hero 3 36
PatchCon 36?
Resident Evil 4 36?
Flatout 2 36?
Battlefield 2 36?
Psychonauts 36?
Crysis 36?
Titan Quest 36?
IrrEdit 36?

See Also