[PATCH] Implement the different d3dx9_xx dlls

David Adam David.Adam at math.cnrs.fr
Mon Nov 26 17:41:27 CST 2007


---
 Makefile.in                   |   13 ++++
 configure                     |   39 +++++++++++
 configure.ac                  |   13 ++++
 dlls/Makefile.in              |   13 ++++
 dlls/d3dx9_24/Makefile.in     |   14 ++++
 dlls/d3dx9_24/d3dx9_24.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_24/d3dx9_24_main.c |   54 ++++++++++++++
 dlls/d3dx9_25/Makefile.in     |   14 ++++
 dlls/d3dx9_25/d3dx9_25.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_25/d3dx9_25_main.c |   54 ++++++++++++++
 dlls/d3dx9_26/Makefile.in     |   14 ++++
 dlls/d3dx9_26/d3dx9_26.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_26/d3dx9_26_main.c |   54 ++++++++++++++
 dlls/d3dx9_27/Makefile.in     |   14 ++++
 dlls/d3dx9_27/d3dx9_27.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_27/d3dx9_27_main.c |   54 ++++++++++++++
 dlls/d3dx9_28/Makefile.in     |   14 ++++
 dlls/d3dx9_28/d3dx9_28.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_28/d3dx9_28_main.c |   54 ++++++++++++++
 dlls/d3dx9_29/Makefile.in     |   14 ++++
 dlls/d3dx9_29/d3dx9_29.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_29/d3dx9_29_main.c |   54 ++++++++++++++
 dlls/d3dx9_30/Makefile.in     |   14 ++++
 dlls/d3dx9_30/d3dx9_30.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_30/d3dx9_30_main.c |   54 ++++++++++++++
 dlls/d3dx9_31/Makefile.in     |   14 ++++
 dlls/d3dx9_31/d3dx9_31.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_31/d3dx9_31_main.c |   54 ++++++++++++++
 dlls/d3dx9_32/Makefile.in     |   14 ++++
 dlls/d3dx9_32/d3dx9_32.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_32/d3dx9_32_main.c |   54 ++++++++++++++
 dlls/d3dx9_33/Makefile.in     |   14 ++++
 dlls/d3dx9_33/d3dx9_33.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_33/d3dx9_33_main.c |   54 ++++++++++++++
 dlls/d3dx9_34/Makefile.in     |   14 ++++
 dlls/d3dx9_34/d3dx9_34.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_34/d3dx9_34_main.c |   54 ++++++++++++++
 dlls/d3dx9_35/Makefile.in     |   14 ++++
 dlls/d3dx9_35/d3dx9_35.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_35/d3dx9_35_main.c |   54 ++++++++++++++
 dlls/d3dx9_36/Makefile.in     |   14 ++++
 dlls/d3dx9_36/d3dx9_36.spec   |  153 ++++++++++++++++++++++++++++++++++++++=
+++
 dlls/d3dx9_36/d3dx9_36_main.c |   54 ++++++++++++++
 43 files changed, 2951 insertions(+), 0 deletions(-)
 create mode 100644 dlls/d3dx9_24/Makefile.in
 create mode 100644 dlls/d3dx9_24/d3dx9_24.spec
 create mode 100644 dlls/d3dx9_24/d3dx9_24_main.c
 create mode 100644 dlls/d3dx9_25/Makefile.in
 create mode 100644 dlls/d3dx9_25/d3dx9_25.spec
 create mode 100644 dlls/d3dx9_25/d3dx9_25_main.c
 create mode 100644 dlls/d3dx9_26/Makefile.in
 create mode 100644 dlls/d3dx9_26/d3dx9_26.spec
 create mode 100644 dlls/d3dx9_26/d3dx9_26_main.c
 create mode 100644 dlls/d3dx9_27/Makefile.in
 create mode 100644 dlls/d3dx9_27/d3dx9_27.spec
 create mode 100644 dlls/d3dx9_27/d3dx9_27_main.c
 create mode 100644 dlls/d3dx9_28/Makefile.in
 create mode 100644 dlls/d3dx9_28/d3dx9_28.spec
 create mode 100644 dlls/d3dx9_28/d3dx9_28_main.c
 create mode 100644 dlls/d3dx9_29/Makefile.in
 create mode 100644 dlls/d3dx9_29/d3dx9_29.spec
 create mode 100644 dlls/d3dx9_29/d3dx9_29_main.c
 create mode 100644 dlls/d3dx9_30/Makefile.in
 create mode 100644 dlls/d3dx9_30/d3dx9_30.spec
 create mode 100644 dlls/d3dx9_30/d3dx9_30_main.c
 create mode 100644 dlls/d3dx9_31/Makefile.in
 create mode 100644 dlls/d3dx9_31/d3dx9_31.spec
 create mode 100644 dlls/d3dx9_31/d3dx9_31_main.c
 create mode 100644 dlls/d3dx9_32/Makefile.in
 create mode 100644 dlls/d3dx9_32/d3dx9_32.spec
 create mode 100644 dlls/d3dx9_32/d3dx9_32_main.c
 create mode 100644 dlls/d3dx9_33/Makefile.in
 create mode 100644 dlls/d3dx9_33/d3dx9_33.spec
 create mode 100644 dlls/d3dx9_33/d3dx9_33_main.c
 create mode 100644 dlls/d3dx9_34/Makefile.in
 create mode 100644 dlls/d3dx9_34/d3dx9_34.spec
 create mode 100644 dlls/d3dx9_34/d3dx9_34_main.c
 create mode 100644 dlls/d3dx9_35/Makefile.in
 create mode 100644 dlls/d3dx9_35/d3dx9_35.spec
 create mode 100644 dlls/d3dx9_35/d3dx9_35_main.c
 create mode 100644 dlls/d3dx9_36/Makefile.in
 create mode 100644 dlls/d3dx9_36/d3dx9_36.spec
 create mode 100644 dlls/d3dx9_36/d3dx9_36_main.c

diff --git a/Makefile.in b/Makefile.in
index 69120be..6366a63 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -202,6 +202,19 @@ ALL_MAKEFILES =3D \
 =09dlls/d3drm/tests/Makefile \
 =09dlls/d3dx8/Makefile \
 =09dlls/d3dx8/tests/Makefile \
+=09dlls/d3dx9_24/Makefile \
+=09dlls/d3dx9_25/Makefile \
+=09dlls/d3dx9_26/Makefile \
+=09dlls/d3dx9_27/Makefile \
+=09dlls/d3dx9_28/Makefile \
+=09dlls/d3dx9_29/Makefile \
+=09dlls/d3dx9_30/Makefile \
+=09dlls/d3dx9_31/Makefile \
+=09dlls/d3dx9_32/Makefile \
+=09dlls/d3dx9_33/Makefile \
+=09dlls/d3dx9_34/Makefile \
+=09dlls/d3dx9_35/Makefile \
+=09dlls/d3dx9_36/Makefile \
 =09dlls/d3dxof/Makefile \
 =09dlls/dbghelp/Makefile \
 =09dlls/dciman32/Makefile \
diff --git a/configure b/configure
index 63ae523..a9608de 100755
--- a/configure
+++ b/configure
@@ -20610,6 +20610,32 @@ ac_config_files=3D"$ac_config_files dlls/d3dx8/Make=
file"
=20
 ac_config_files=3D"$ac_config_files dlls/d3dx8/tests/Makefile"
=20
+ac_config_files=3D"$ac_config_files dlls/d3dx9_24/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_25/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_26/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_27/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_28/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_29/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_30/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_31/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_32/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_33/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_34/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_35/Makefile"
+
+ac_config_files=3D"$ac_config_files dlls/d3dx9_36/Makefile"
+
 ac_config_files=3D"$ac_config_files dlls/d3dxof/Makefile"
=20
 ac_config_files=3D"$ac_config_files dlls/dbghelp/Makefile"
@@ -21862,6 +21888,19 @@ do
     "dlls/d3drm/tests/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3drm/t=
ests/Makefile" ;;
     "dlls/d3dx8/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx8/Makefil=
e" ;;
     "dlls/d3dx8/tests/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx8/t=
ests/Makefile" ;;
+    "dlls/d3dx9_24/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_24/M=
akefile" ;;
+    "dlls/d3dx9_25/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_25/M=
akefile" ;;
+    "dlls/d3dx9_26/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_26/M=
akefile" ;;
+    "dlls/d3dx9_27/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_27/M=
akefile" ;;
+    "dlls/d3dx9_28/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_28/M=
akefile" ;;
+    "dlls/d3dx9_29/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_29/M=
akefile" ;;
+    "dlls/d3dx9_30/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_30/M=
akefile" ;;
+    "dlls/d3dx9_31/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_31/M=
akefile" ;;
+    "dlls/d3dx9_32/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_32/M=
akefile" ;;
+    "dlls/d3dx9_33/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_33/M=
akefile" ;;
+    "dlls/d3dx9_34/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_34/M=
akefile" ;;
+    "dlls/d3dx9_35/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_35/M=
akefile" ;;
+    "dlls/d3dx9_36/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dx9_36/M=
akefile" ;;
     "dlls/d3dxof/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/d3dxof/Makef=
ile" ;;
     "dlls/dbghelp/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/dbghelp/Mak=
efile" ;;
     "dlls/dciman32/Makefile") CONFIG_FILES=3D"$CONFIG_FILES dlls/dciman32/M=
akefile" ;;
diff --git a/configure.ac b/configure.ac
index 7aa5d85..37d9e6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1622,6 +1622,19 @@ AC_CONFIG_FILES([dlls/d3drm/Makefile])
 AC_CONFIG_FILES([dlls/d3drm/tests/Makefile])
 AC_CONFIG_FILES([dlls/d3dx8/Makefile])
 AC_CONFIG_FILES([dlls/d3dx8/tests/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_24/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_25/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_26/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_27/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_28/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_29/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_30/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_31/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_32/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_33/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_34/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_35/Makefile])
+AC_CONFIG_FILES([dlls/d3dx9_36/Makefile])
 AC_CONFIG_FILES([dlls/d3dxof/Makefile])
 AC_CONFIG_FILES([dlls/dbghelp/Makefile])
 AC_CONFIG_FILES([dlls/dciman32/Makefile])
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 0d2f3e4..5127541 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -47,6 +47,19 @@ BASEDIRS =3D \
 =09d3dim \
 =09d3drm \
 =09d3dx8 \
+=09d3dx9_24 \
+=09d3dx9_25 \
+=09d3dx9_26 \
+=09d3dx9_27 \
+=09d3dx9_28 \
+=09d3dx9_29 \
+=09d3dx9_30 \
+=09d3dx9_31 \
+=09d3dx9_32 \
+=09d3dx9_33 \
+=09d3dx9_34 \
+=09d3dx9_35 \
+=09d3dx9_36 \
 =09d3dxof \
 =09dbghelp \
 =09dciman32 \
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
new file mode 100644
index 0000000..f894443
--- /dev/null
+++ b/dlls/d3dx9_24/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_24.dll
+IMPORTLIB =3D libd3dx9_24.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_24_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_24/d3dx9_24.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_24/d3dx9_24_main.c b/dlls/d3dx9_24/d3dx9_24_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_24/d3dx9_24_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_25/Makefile.in b/dlls/d3dx9_25/Makefile.in
new file mode 100644
index 0000000..532fdf5
--- /dev/null
+++ b/dlls/d3dx9_25/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_25.dll
+IMPORTLIB =3D libd3dx9_25.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_25_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_25/d3dx9_25.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_25/d3dx9_25_main.c b/dlls/d3dx9_25/d3dx9_25_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_25/d3dx9_25_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_26/Makefile.in b/dlls/d3dx9_26/Makefile.in
new file mode 100644
index 0000000..f6e61a7
--- /dev/null
+++ b/dlls/d3dx9_26/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_26.dll
+IMPORTLIB =3D libd3dx9_26.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_26_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_26/d3dx9_26.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_26/d3dx9_26_main.c b/dlls/d3dx9_26/d3dx9_26_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_26/d3dx9_26_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_27/Makefile.in b/dlls/d3dx9_27/Makefile.in
new file mode 100644
index 0000000..014cc3e
--- /dev/null
+++ b/dlls/d3dx9_27/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_27.dll
+IMPORTLIB =3D libd3dx9_27.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_27_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_27/d3dx9_27.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_27/d3dx9_27_main.c b/dlls/d3dx9_27/d3dx9_27_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_27/d3dx9_27_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_28/Makefile.in b/dlls/d3dx9_28/Makefile.in
new file mode 100644
index 0000000..ab83d27
--- /dev/null
+++ b/dlls/d3dx9_28/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_28.dll
+IMPORTLIB =3D libd3dx9_28.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_28_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_28/d3dx9_28.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_28/d3dx9_28_main.c b/dlls/d3dx9_28/d3dx9_28_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_28/d3dx9_28_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_29/Makefile.in b/dlls/d3dx9_29/Makefile.in
new file mode 100644
index 0000000..fe287ad
--- /dev/null
+++ b/dlls/d3dx9_29/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_29.dll
+IMPORTLIB =3D libd3dx9_29.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_29_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_29/d3dx9_29.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_29/d3dx9_29_main.c b/dlls/d3dx9_29/d3dx9_29_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_29/d3dx9_29_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_30/Makefile.in b/dlls/d3dx9_30/Makefile.in
new file mode 100644
index 0000000..89f0bec
--- /dev/null
+++ b/dlls/d3dx9_30/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_30.dll
+IMPORTLIB =3D libd3dx9_30.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_30_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_30/d3dx9_30.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_30/d3dx9_30_main.c b/dlls/d3dx9_30/d3dx9_30_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_30/d3dx9_30_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_31/Makefile.in b/dlls/d3dx9_31/Makefile.in
new file mode 100644
index 0000000..28943db
--- /dev/null
+++ b/dlls/d3dx9_31/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_31.dll
+IMPORTLIB =3D libd3dx9_31.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_31_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_31/d3dx9_31.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_31/d3dx9_31_main.c b/dlls/d3dx9_31/d3dx9_31_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_31/d3dx9_31_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_32/Makefile.in b/dlls/d3dx9_32/Makefile.in
new file mode 100644
index 0000000..926f5ac
--- /dev/null
+++ b/dlls/d3dx9_32/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_32.dll
+IMPORTLIB =3D libd3dx9_32.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_32_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_32/d3dx9_32.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_32/d3dx9_32_main.c b/dlls/d3dx9_32/d3dx9_32_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_32/d3dx9_32_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_33/Makefile.in b/dlls/d3dx9_33/Makefile.in
new file mode 100644
index 0000000..f71e7e6
--- /dev/null
+++ b/dlls/d3dx9_33/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_33.dll
+IMPORTLIB =3D libd3dx9_33.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_33_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
new file mode 100644
index 0000000..9a50d2e
--- /dev/null
+++ b/dlls/d3dx9_33/d3dx9_33.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVFb
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_33/d3dx9_33_main.c b/dlls/d3dx9_33/d3dx9_33_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_33/d3dx9_33_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
new file mode 100644
index 0000000..d40ec25
--- /dev/null
+++ b/dlls/d3dx9_34/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_34.dll
+IMPORTLIB =3D libd3dx9_34.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_34_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_34/d3dx9_34.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_34/d3dx9_34_main.c b/dlls/d3dx9_34/d3dx9_34_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_34/d3dx9_34_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
new file mode 100644
index 0000000..80f637e
--- /dev/null
+++ b/dlls/d3dx9_35/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_35.dll
+IMPORTLIB =3D libd3dx9_35.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_35_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_35/d3dx9_35.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_35/d3dx9_35_main.c b/dlls/d3dx9_35/d3dx9_35_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_35/d3dx9_35_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
new file mode 100644
index 0000000..a9fee1f
--- /dev/null
+++ b/dlls/d3dx9_36/Makefile.in
@@ -0,0 +1,14 @@
+TOPSRCDIR =3D @top_srcdir@
+TOPOBJDIR =3D ../..
+SRCDIR    =3D @srcdir@
+VPATH     =3D @srcdir@
+MODULE    =3D d3dx9_36.dll
+IMPORTLIB =3D libd3dx9_36.$(IMPLIBEXT)
+IMPORTS   =3D d3d9 user32 gdi32 kernel32
+EXTRALIBS =3D -ldxguid -luuid
+
+C_SRCS =3D \
+=09d3dx9_36_main.c
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
\ No newline at end of file
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
new file mode 100644
index 0000000..1b8e74a
--- /dev/null
+++ b/dlls/d3dx9_36/d3dx9_36.spec
@@ -0,0 +1,153 @@
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Hermite
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec2Catmul=
lRom
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec2Bary=
Centric
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx8.D3DXVec2Transform
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx8.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx8.D3DXVec2TransformNorma=
l
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx8.D3DXVec3Normalize
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Hermite
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec3Catmul=
lRom
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec3Bary=
Centric
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx8.D3DXVec3Transform
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx8.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr)d3dx8.D3DXVec3TransformNormal
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Project
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx8.D3DXVec3Unprojec=
t
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx8.D3DXVec4Cross
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx8.D3DXVec4Normalize
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Hermite
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx8.D3DXVec4Catmul=
lRom
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXVec4Bary=
Centric
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx8.D3DXVec4Transform
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx8.D3DXMatrixfDeterminant
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx8.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx8.D3DXMatrixMultiply=
Transpose
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx8.D3DXMatrixTranspose
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx8.D3DXMatrixInverse
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx8.D3DXMatrixScaling
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx8.D3DXMatrixTransla=
tion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx8.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx8.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx8.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx8.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx8.D3DXMatrixRotationQua=
ternion
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx8.D3DXMAtr=
ixRotationYawPitchRoll
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx8.D3DXM=
atrixTransformation
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx8.D3DXMa=
trixAffineTransformation
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx8.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx8.D3DXMatrix=
PerspectiveLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx8.D3DXMat=
rixPerpsectiveFovRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx8.D3DXMat=
rixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long lon=
g) d3dx8.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long lon=
g) d3Dx8.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx8.D3DXMatrixOrthoR=
H
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx8.D3DXMatrixOrthoL=
H
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3d=
x8.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx8.D3DXMatrixShadow
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx8.D3DXMatrixReflect
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx8.D3DXQuaternionToAxis=
Angle
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx8.D3DXQuaternionRotatio=
nMatrix
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx8.D3DXQuaternionRota=
tionAxis
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx8.D3DX=
QuaternionRotatonYawPitchRoll
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx8.D3DXQuaternionMutiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx8.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx8.D3DXQuaternionINverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx8.D3DXQuaternionLn
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx8.D3DXQuaternionExp
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx8.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx8.D3DXQUaternio=
nSquad
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx8.D3DXQu=
aternionBaryCentric
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx8.D3DXPlaneNormalize
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx8.D3DXPlaneIntersectL=
ine
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx8.D3DXPlaneFromPointNor=
mal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx8.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx8.D3DXPlaneTransform
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx8.D3DXColorAdjustSatu=
ration
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx8.D3DXColorAdjustContra=
st
+@ stub D3DXCreateFont
+@ stub D3DXCreateFontIndirect
+@ stub D3DXCreateSprite
+@ stub D3DXCreateRenderToSurface
+@ stub D3DXCreateRenderToEnvMap
+@ stub D3DXAssembleShaderFromFileA
+@ stub D3DXAssembleShaderFromFileW
+@ stub D3DXGetFVFVertexSize
+@ stub D3DXGetErrorStringA
+@ stub D3DXGetErrorStringW
+@ stub D3DXAssembleShader
+@ stub D3DXCompileEffectFromFileA
+@ stub D3DXCompileEffectFromFileW
+@ stub D3DXCompileEffect
+@ stub D3DXCreateEffect
+@ stub D3DXCreateMesh
+@ stub D3DXCreateMeshFVF
+@ stub D3DXCreateSPMesh
+@ stub D3DXCleanMesh
+@ stub D3DXValidMesh
+@ stub D3DXGeneratePMesh
+@ stub D3DXSimplifyMesh
+@ stub D3DXComputeBoundingSphere
+@ stub D3DXComputeBoundingBox
+@ stub D3DXComputeNormals
+@ stub D3DXCreateBuffer
+@ stub D3DXLoadMeshFromX
+@ stub D3DXSaveMeshToX
+@ stub D3DXCreatePMeshFromStream
+@ stub D3DXCreateSkinMesh
+@ stub D3DXCreateSkinMeshFVF
+@ stub D3DXCreateSkinMeshFromMesh
+@ stub D3DXLoadMeshFromXof
+@ stub D3DXLoadSkinMeshFromXof
+@ stub D3DXTesselateMesh
+@ stub D3DXDeclaratorFromFVF
+@ stub D3DXFVFFromDeclarator
+@ stub D3DXWeldVertices
+@ stub D3DXIntersect
+@ stub D3DXSphereBoundProbe
+@ stub D3DXBoxBoundProbe
+@ stub D3DXCreatePolygon
+@ stub D3DXCreateBox
+@ stub D3DXCreateCylinder
+@ stub D3DXCreateSphere
+@ stub D3DXCreateTorus
+@ stub D3DXCreateTeapot
+@ stub D3DXCreateTextA
+@ stub D3DXCreateTextW
+@ stub D3DXLoadSurfaceFromFileA
+@ stub D3DXLoadSurfaceFromFileW
+@ stub D3DXLoadSurfaceFromResourceA
+@ stub D3DXLoadSurfaceFromResourceW
+@ stub D3DXLoadSurfaceFromFileInMemory
+@ stub D3DXLoadSurfaceFromSurface
+@ stub D3DXLoadSurfaceFromMemory
+@ stub D3DXLoadVolumeFromVolume
+@ stub D3DXLoadVolumeFromMemory
+@ stub D3DXCheckTextureRequirements
+@ stub D3DXCreateTexture
+@ stub D3DXCreateTextureFromFileA
+@ stub D3DXCreateTextureFromFileW
+@ stub D3DXCreateTextureFromResourceA
+@ stub D3DXCreateTextureFromResourceW
+@ stub D3DXCreateTextureFromFileExA
+@ stub D3DXCreateTextureFromFileExW
+@ stub D3DXCreateTextureFromResourceExA
+@ stub D3DXCreateTextureFromResourceExW
+@ stub D3DXCreateTextureFromFileInMemory
+@ stub D3DXCreateTextureFromFileInMemoryEx
+@ stub D3DXFilterTexture
+@ stub D3DXCheckCubeTextureRequirements
+@ stub D3DXCreateCubeTexture
+@ stub D3DXCreateCubeTextureFromFileA
+@ stub D3DXCreateCubeTextureFromFileW
+@ stub D3DXCreateCubeTextureFromFileExA
+@ stub D3DXCreateCubeTextureFromFileExW
+@ stub D3DXCreateCubeTextureFromFileInMemory
+@ stub D3DXCreateCubeTextureFromFileInMemoryEx
+@ stub D3DXFilterCubeTexture
+@ stub D3DXCheckVolumeTextureRequirements
+@ stub D3DXCreateVolumeTexture
+@ stub D3DXFilterVolumeTexture
diff --git a/dlls/d3dx9_36/d3dx9_36_main.c b/dlls/d3dx9_36/d3dx9_36_main.c
new file mode 100644
index 0000000..18ad363
--- /dev/null
+++ b/dlls/d3dx9_36/d3dx9_36_main.c
@@ -0,0 +1,54 @@
+/*
+ * Direct3D X 9 main file
+ *
+ * Copyright (C) 2007 David Adam
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, US=
A
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "wine/debug.h"
+
+#include "d3dx9.h"
+
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/***********************************************************************
+ * DllMain.
+ */
+BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved)
+{
+    switch(reason)
+    {
+    case DLL_WINE_PREATTACH:
+        return FALSE; /* prefer native version */
+    case DLL_PROCESS_ATTACH:
+        DisableThreadLibraryCalls(inst);
+        break;
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
--=20
1.5.3.2


--=_4e4h9t9dir6s--



More information about the wine-patches mailing list