Module: wine
Branch: master
Commit: a1c460f8ae5080e03ed2ab16fd7e5b21d9850c38
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a1c460f8ae5080e03ed2ab16f…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Fri Nov 21 17:41:27 2008 +0100
d3d9: Document a Microsoft header bug.
---
include/d3d9.h | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/include/d3d9.h b/include/d3d9.h
index 11f1cd3..dfd2acc 100644
--- a/include/d3d9.h
+++ b/include/d3d9.h
@@ -241,7 +241,15 @@ DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirect3D9 methods ***/
+
+ /* Note: Microsoft's d3d9.h does not declare IDirect3D9Ex::RegisterSoftwareDevice . This would mean that
+ * the offsets of the other methods in the Vtable change too. This is wrong. In Microsoft's
+ * d3d9.dll, the offsets for the other functions are still compatible with IDirect3D9.
+ * This is probably because even in MS's header IDirect3D9Ex inherits from IDirect3D9, which makes the
+ * C++ inferface compatible, and nobody uses the C interface in Windows world.
+ */
STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
+
STDMETHOD_(UINT, GetAdapterCount)(THIS) PURE;
STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER9* pIdentifier) PURE;
STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter, D3DFORMAT Format) PURE;