From a1c460f8ae5080e03ed2ab16fd7e5b21d9850c38 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Stefan=20D=C3=B6singer?= Date: Fri, 21 Nov 2008 17:41:27 +0100 Subject: [PATCH] d3d9: Document a Microsoft header bug. --- include/d3d9.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/d3d9.h b/include/d3d9.h index 11f1cd3268..dfd2accf2b 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; -- 2.32.0.93.g670b81a890