- some D3D8 fixes
- beginning of shaders support (Vertex and Pixel Shaders 1.1 on
DirectX8)
- beginning of D3DX8 support the D3D8 utility API (very basic, only
the core header)
diff --git a/include/d3d8.h b/include/d3d8.h
index 80c970c..82daa4f 100644
--- a/include/d3d8.h
+++ b/include/d3d8.h
@@ -78,25 +78,25 @@
DEFINE_GUID(IID_IDirect3DVolume8, 0XBD7349F5,0X14F1,0X42E4,0X9C,0X79,0X97,0X23,0X80,0XDB,0X40,0XC0);
typedef struct IDirect3DVolume8 IDirect3DVolume8, *LPDIRECT3DVOLUME8, *PDIRECT3DVOLUME8;
-DEFINE_GUID(IID_IDIRECT3DSWAPCHAIN8, 0X928C088B,0X76B9,0X4C6B,0XA5,0X36,0XA5,0X90,0X85,0X38,0X76,0XCD);
+DEFINE_GUID(IID_IDirect3DSwapChain8, 0X928C088B,0X76B9,0X4C6B,0XA5,0X36,0XA5,0X90,0X85,0X38,0X76,0XCD);
typedef struct IDirect3DSwapChain8 IDirect3DSwapChain8, *LPDIRECT3DSWAPCHAIN8, *PDIRECT3DSWAPCHAIN8;
DEFINE_GUID(IID_IDirect3DSurface8, 0XB96EEBCA,0XB326,0X4EA5,0X88,0X2F,0X2F,0XF5,0XBA,0XE0,0X21,0XDD);
typedef struct IDirect3DSurface8 IDirect3DSurface8, *LPDIRECT3DSURFACE8, *PDIRECT3DSURFACE8;
-DEFINE_GUID(IID_IDIRECT3DINDEXBUFFER8, 0X0E689C9A,0X053D,0X44A0,0X9D,0X92,0XDB,0X0E,0X3D,0X75,0X0F,0X86);
+DEFINE_GUID(IID_IDirect3DIndexBuffer8, 0X0E689C9A,0X053D,0X44A0,0X9D,0X92,0XDB,0X0E,0X3D,0X75,0X0F,0X86);
typedef struct IDirect3DIndexBuffer8 IDirect3DIndexBuffer8, *LPDIRECT3DINDEXBUFFER8, *PDIRECT3DINDEXBUFFER8;
-DEFINE_GUID(IID_IDIRECT3DBASETEXTURE8, 0XB4211CFA,0X51B9,0X4A9F,0XAB,0X78,0XDB,0X99,0XB2,0XBB,0X67,0X8E);
+DEFINE_GUID(IID_IDirect3DBaseTexture8, 0XB4211CFA,0X51B9,0X4A9F,0XAB,0X78,0XDB,0X99,0XB2,0XBB,0X67,0X8E);
typedef struct IDirect3DBaseTexture8 IDirect3DBaseTexture8, *LPDIRECT3DBASETEXTURE8, *PDIRECT3DBASETEXTURE8;
-DEFINE_GUID(IID_IDIRECT3DTEXTURE8, 0XE4CDD575,0X2866,0X4F01,0XB1,0X2E,0X7E,0XEC,0XE1,0XEC,0X93,0X58);
+DEFINE_GUID(IID_IDirect3DTexture8, 0XE4CDD575,0X2866,0X4F01,0XB1,0X2E,0X7E,0XEC,0XE1,0XEC,0X93,0X58);
typedef struct IDirect3DTexture8 IDirect3DTexture8, *LPDIRECT3DTEXTURE8, *PDIRECT3DTEXTURE8;
-DEFINE_GUID(IID_IDIRECT3DCUBETEXTURE8, 0X3EE5B968,0X2ACA,0X4C34,0X8B,0XB5,0X7E,0X0C,0X3D,0X19,0XB7,0X50);
+DEFINE_GUID(IID_IDirect3DCubeTexture8, 0X3EE5B968,0X2ACA,0X4C34,0X8B,0XB5,0X7E,0X0C,0X3D,0X19,0XB7,0X50);
typedef struct IDirect3DCubeTexture8 IDirect3DCubeTexture8, *LPDIRECT3DCUBETEXTURE8, *PDIRECT3DCUBETEXTURE8;
-DEFINE_GUID(IID_IDIRECT3DVOLUMETEXTURE8,0X4B8AAAFA,0X140F,0X42BA,0X91,0X31,0X59,0X7E,0XAF,0XAA,0X2E,0XAD);
+DEFINE_GUID(IID_IDirect3DVolumeTexture8,0X4B8AAAFA,0X140F,0X42BA,0X91,0X31,0X59,0X7E,0XAF,0XAA,0X2E,0XAD);
typedef struct IDirect3DVolumeTexture8 IDirect3DVolumeTexture8, *LPDIRECT3DVOLUMETEXTURE8, *PDIRECT3DVOLUMETEXTURE8;
/*****************************************************************************
@@ -354,77 +354,6 @@
#define IDirect3DDevice8_DeletePatch(p,a) ICOM_CALL1(DeletePatch,p,a)
/*****************************************************************************
- * IDirect3DResource8 interface
- */
-#define ICOM_INTERFACE IDirect3DResource8
-#define IDirect3DResource8_METHODS \
- /*** IDirect3DResource8 methods ***/ \
- ICOM_METHOD1(HRESULT, GetDevice, IDirect3DDevice8**, ppDevice) \
- ICOM_METHOD4(HRESULT, SetPrivateData, REFGUID, refguid, CONST void*, pData, DWORD, SizeOfData, DWORD, Flags) \
- ICOM_METHOD3(HRESULT, GetPrivateData, REFGUID, refguid, void*, pData, DWORD*, pSizeOfData) \
- ICOM_METHOD1(HRESULT, FreePrivateData, REFGUID, refguid) \
- ICOM_METHOD1(DWORD, SetPriority, DWORD, PriorityNew) \
- ICOM_METHOD (DWORD, GetPriority) \
- ICOM_METHOD (void, PreLoad) \
- ICOM_METHOD (D3DRESOURCETYPE, GetType)
-
- /*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_IMETHODS \
- IUnknown_IMETHODS \
- IDirect3DResource8_METHODS
-ICOM_DEFINE(IDirect3DResource8,IUnknown)
-#undef ICOM_INTERFACE
-
-/*** IUnknown methods ***/
-#define IDirect3DResource8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DResource8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DResource8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DResource8 methods ***/
-#define IDirect3DResource8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DResource8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DResource8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DResource8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DResource8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DResource8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DResource8_GetType(p) ICOM_CALL (GetType,p)
-
-/*****************************************************************************
- * IDirect3DVertexBuffer8 interface
- */
-#define ICOM_INTERFACE IDirect3DVertexBuffer8
-#define IDirect3DVertexBuffer8_METHODS \
- /*** IDirect3DVertexBuffer8 methods ***/ \
- ICOM_METHOD4(HRESULT,Lock, UINT, OffsetToLock, UINT, SizeToLock, BYTE**, ppbData, DWORD, Flags) \
- ICOM_METHOD (HRESULT,Unlock) \
- ICOM_METHOD1(HRESULT,GetDesc, D3DVERTEXBUFFER_DESC *, pDesc)
-
- /*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_IMETHODS \
- IUnknown_IMETHODS \
- IDirect3DResource8_METHODS \
- IDirect3DVertexBuffer8_METHODS
-ICOM_DEFINE(IDirect3DVertexBuffer8,IDirect3DResource8)
-#undef ICOM_INTERFACE
-
-/*** IUnknown methods ***/
-#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
-#define IDirect3DVertexBuffer8_AddRef(p) ICOM_CALL (AddRef,p)
-#define IDirect3DVertexBuffer8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DVertexBuffer8 methods ***/
-#define IDirect3DVertexBuffer8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
-#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
-#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
-#define IDirect3DVertexBuffer8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
-#define IDirect3DVertexBuffer8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
-#define IDirect3DVertexBuffer8_GetPriority(p) ICOM_CALL (GetPriority,p)
-#define IDirect3DVertexBuffer8_PreLoad(p) ICOM_CALL (PreLoad,p)
-#define IDirect3DVertexBuffer8_GetType(p) ICOM_CALL (GetType,p)
-#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) ICOM_CALL4(Lock,p,a,b,c,d)
-#define IDirect3DVertexBuffer8_Unlock(p) ICOM_CALL (Unlock,p)
-#define IDirect3DVertexBuffer8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
-
-/*****************************************************************************
* IDirect3DVolume8 interface
*/
#define ICOM_INTERFACE IDirect3DVolume8
@@ -521,6 +450,78 @@
#define IDirect3DSurface8_UnlockRect(p) ICOM_CALL (UnlockRect,p)
/*****************************************************************************
+ * IDirect3DResource8 interface
+ */
+#define ICOM_INTERFACE IDirect3DResource8
+#define IDirect3DResource8_METHODS \
+ /*** IDirect3DResource8 methods ***/ \
+ ICOM_METHOD1(HRESULT, GetDevice, IDirect3DDevice8**, ppDevice) \
+ ICOM_METHOD4(HRESULT, SetPrivateData, REFGUID, refguid, CONST void*, pData, DWORD, SizeOfData, DWORD, Flags) \
+ ICOM_METHOD3(HRESULT, GetPrivateData, REFGUID, refguid, void*, pData, DWORD*, pSizeOfData) \
+ ICOM_METHOD1(HRESULT, FreePrivateData, REFGUID, refguid) \
+ ICOM_METHOD1(DWORD, SetPriority, DWORD, PriorityNew) \
+ ICOM_METHOD (DWORD, GetPriority) \
+ ICOM_METHOD (void, PreLoad) \
+ ICOM_METHOD (D3DRESOURCETYPE, GetType)
+
+ /*** IDirect3DResource8 methods ***/
+#define IDirect3DResource8_IMETHODS \
+ IUnknown_IMETHODS \
+ IDirect3DResource8_METHODS
+ICOM_DEFINE(IDirect3DResource8,IUnknown)
+#undef ICOM_INTERFACE
+
+/*** IUnknown methods ***/
+#define IDirect3DResource8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
+#define IDirect3DResource8_AddRef(p) ICOM_CALL (AddRef,p)
+#define IDirect3DResource8_Release(p) ICOM_CALL (Release,p)
+/*** IDirect3DResource8 methods ***/
+#define IDirect3DResource8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
+#define IDirect3DResource8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
+#define IDirect3DResource8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
+#define IDirect3DResource8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
+#define IDirect3DResource8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
+#define IDirect3DResource8_GetPriority(p) ICOM_CALL (GetPriority,p)
+#define IDirect3DResource8_PreLoad(p) ICOM_CALL (PreLoad,p)
+#define IDirect3DResource8_GetType(p) ICOM_CALL (GetType,p)
+
+/*****************************************************************************
+ * IDirect3DVertexBuffer8 interface
+ */
+#define ICOM_INTERFACE IDirect3DVertexBuffer8
+#define IDirect3DVertexBuffer8_METHODS \
+ /*** IDirect3DVertexBuffer8 methods ***/ \
+ ICOM_METHOD4(HRESULT,Lock, UINT, OffsetToLock, UINT, SizeToLock, BYTE**, ppbData, DWORD, Flags) \
+ ICOM_METHOD (HRESULT,Unlock) \
+ ICOM_METHOD1(HRESULT,GetDesc, D3DVERTEXBUFFER_DESC *, pDesc)
+
+ /*** IDirect3DVertexBuffer8 methods ***/
+#define IDirect3DVertexBuffer8_IMETHODS \
+ IUnknown_IMETHODS \
+ IDirect3DResource8_METHODS \
+ IDirect3DVertexBuffer8_METHODS
+ICOM_DEFINE(IDirect3DVertexBuffer8,IDirect3DResource8)
+#undef ICOM_INTERFACE
+
+/*** IUnknown methods ***/
+#define IDirect3DVertexBuffer8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
+#define IDirect3DVertexBuffer8_AddRef(p) ICOM_CALL (AddRef,p)
+#define IDirect3DVertexBuffer8_Release(p) ICOM_CALL (Release,p)
+/*** IDirect3DVertexBuffer8 methods: IDirect3DResource8 ***/
+#define IDirect3DVertexBuffer8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
+#define IDirect3DVertexBuffer8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
+#define IDirect3DVertexBuffer8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
+#define IDirect3DVertexBuffer8_FreePrivateData(p,a) ICOM_CALL1(FreePrivateData,p,a)
+#define IDirect3DVertexBuffer8_SetPriority(p,a) ICOM_CALL1(SetPriority,p,a)
+#define IDirect3DVertexBuffer8_GetPriority(p) ICOM_CALL (GetPriority,p)
+#define IDirect3DVertexBuffer8_PreLoad(p) ICOM_CALL (PreLoad,p)
+#define IDirect3DVertexBuffer8_GetType(p) ICOM_CALL (GetType,p)
+/*** IDirect3DVertexBuffer8 methods ***/
+#define IDirect3DVertexBuffer8_Lock(p,a,b,c,d) ICOM_CALL4(Lock,p,a,b,c,d)
+#define IDirect3DVertexBuffer8_Unlock(p) ICOM_CALL (Unlock,p)
+#define IDirect3DVertexBuffer8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
+
+/*****************************************************************************
* IDirect3DIndexBuffer8 interface
*/
#define ICOM_INTERFACE IDirect3DIndexBuffer8
@@ -542,7 +543,7 @@
#define IDirect3DIndexBuffer8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IDirect3DIndexBuffer8_AddRef(p) ICOM_CALL (AddRef,p)
#define IDirect3DIndexBuffer8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DIndexBuffer8 methods ***/
+/*** IDirect3DIndexBuffer8 methods: IDirect3DResource8 ***/
#define IDirect3DIndexBuffer8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
#define IDirect3DIndexBuffer8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
#define IDirect3DIndexBuffer8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
@@ -551,6 +552,7 @@
#define IDirect3DIndexBuffer8_GetPriority(p) ICOM_CALL (GetPriority,p)
#define IDirect3DIndexBuffer8_PreLoad(p) ICOM_CALL (PreLoad,p)
#define IDirect3DIndexBuffer8_GetType(p) ICOM_CALL (GetType,p)
+/*** IDirect3DIndexBuffer8 methods ***/
#define IDirect3DIndexBuffer8_Lock(p,a,b,c,d) ICOM_CALL4(Lock,p,a,b,c,d)
#define IDirect3DIndexBuffer8_Unlock(p) ICOM_CALL (Unlock,p)
#define IDirect3DIndexBuffer8_GetDesc(p,a) ICOM_CALL1(GetDesc,p,a)
@@ -577,7 +579,7 @@
#define IDirect3DBaseTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IDirect3DBaseTexture8_AddRef(p) ICOM_CALL (AddRef,p)
#define IDirect3DBaseTexture8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DBaseTexture8 methods ***/
+/*** IDirect3DBaseTexture8 methods: IDirect3DResource8 ***/
#define IDirect3DBaseTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
#define IDirect3DBaseTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
#define IDirect3DBaseTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
@@ -586,6 +588,7 @@
#define IDirect3DBaseTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
#define IDirect3DBaseTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
#define IDirect3DBaseTexture8_GetType(p) ICOM_CALL (GetType,p)
+/*** IDirect3DBaseTexture8 methods ***/
#define IDirect3DBaseTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
#define IDirect3DBaseTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
#define IDirect3DBaseTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
@@ -615,7 +618,7 @@
#define IDirect3DCubeTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IDirect3DCubeTexture8_AddRef(p) ICOM_CALL (AddRef,p)
#define IDirect3DCubeTexture8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DCubeTexture8 methods: Resource8 ***/
+/*** IDirect3DCubeTexture8 methods: IDirect3DResource8 ***/
#define IDirect3DCubeTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
#define IDirect3DCubeTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
#define IDirect3DCubeTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
@@ -624,7 +627,7 @@
#define IDirect3DCubeTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
#define IDirect3DCubeTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
#define IDirect3DCubeTexture8_GetType(p) ICOM_CALL (GetType,p)
-/*** IDirect3DCubeTexture8 methods: BaseTexture8 ***/
+/*** IDirect3DCubeTexture8 methods: IDirect3DBaseTexture8 ***/
#define IDirect3DCubeTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
#define IDirect3DCubeTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
#define IDirect3DCubeTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
@@ -660,7 +663,7 @@
#define IDirect3DTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IDirect3DTexture8_AddRef(p) ICOM_CALL (AddRef,p)
#define IDirect3DTexture8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DTexture8 methods: Resource8 ***/
+/*** IDirect3DTexture8 methods: IDirect3DResource8 ***/
#define IDirect3DTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
#define IDirect3DTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
#define IDirect3DTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
@@ -669,7 +672,7 @@
#define IDirect3DTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
#define IDirect3DTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
#define IDirect3DTexture8_GetType(p) ICOM_CALL (GetType,p)
-/*** IDirect3DTexture8 methods: BaseTexture8 ***/
+/*** IDirect3DTexture8 methods: IDirect3DBaseTexture8 ***/
#define IDirect3DTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
#define IDirect3DTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
#define IDirect3DTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)
@@ -705,7 +708,7 @@
#define IDirect3DVolumeTexture8_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IDirect3DVolumeTexture8_AddRef(p) ICOM_CALL (AddRef,p)
#define IDirect3DVolumeTexture8_Release(p) ICOM_CALL (Release,p)
-/*** IDirect3DVolumeTexture8 methods: Resource8 ***/
+/*** IDirect3DVolumeTexture8 methods: IDirect3DResource8 ***/
#define IDirect3DVolumeTexture8_GetDevice(p,a) ICOM_CALL1(GetDevice,p,a)
#define IDirect3DVolumeTexture8_SetPrivateData(p,a,b,c,d) ICOM_CALL4(SetPrivateData,p,a,b,c,d)
#define IDirect3DVolumeTexture8_GetPrivateData(p,a,b,c) ICOM_CALL3(GetPrivateData,p,a,b,c)
@@ -714,7 +717,7 @@
#define IDirect3DVolumeTexture8_GetPriority(p) ICOM_CALL (GetPriority,p)
#define IDirect3DVolumeTexture8_PreLoad(p) ICOM_CALL (PreLoad,p)
#define IDirect3DVolumeTexture8_GetType(p) ICOM_CALL (GetType,p)
-/*** IDirect3DVolumeTexture8 methods: BaseTexture8 ***/
+/*** IDirect3DVolumeTexture8 methods: IDirect3DBaseTexture8 ***/
#define IDirect3DVolumeTexture8_SetLOD(p,a) ICOM_CALL1(SetLOD,p,a)
#define IDirect3DVolumeTexture8_GetLOD(p) ICOM_CALL (GetLOD,p)
#define IDirect3DVolumeTexture8_GetLevelCount(p) ICOM_CALL (GetLevelCount,p)