include: Add ID3DXFragmentLinker interface.

This commit is contained in:
Alistair Leslie-Hughes 2015-07-22 16:28:34 +10:00 committed by Alexandre Julliard
parent 0bd896f0f8
commit 67840595d5
1 changed files with 37 additions and 0 deletions

View File

@ -305,6 +305,43 @@ DECLARE_INTERFACE(ID3DXInclude)
typedef struct ID3DXInclude *LPD3DXINCLUDE;
typedef struct _D3DXFRAGMENT_DESC
{
const char *Name;
DWORD Target;
} D3DXFRAGMENT_DESC, *LPD3DXFRAGMENT_DESC;
DEFINE_GUID(IID_ID3DXFragmentLinker, 0x1a2c0cc2, 0xe5b6, 0x4ebc, 0x9e, 0x8d, 0x39, 0xe, 0x5, 0x78, 0x11, 0xb6);
#define INTERFACE ID3DXFragmentLinker
DECLARE_INTERFACE_(ID3DXFragmentLinker, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID iid, void **ppv) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
STDMETHOD_(UINT, GetNumberOfFragments)(THIS) PURE;
STDMETHOD_(D3DXHANDLE, GetFragmentHandleByIndex)(THIS_ UINT index) PURE;
STDMETHOD_(D3DXHANDLE, GetFragmentHandleByName)(THIS_ const char *name) PURE;
STDMETHOD(GetFragmentDesc)(THIS_ D3DXHANDLE name, D3DXFRAGMENT_DESC *frag_desc) PURE;
STDMETHOD(AddFragments)(THIS_ const DWORD *fragments) PURE;
STDMETHOD(GetAllFragments)(THIS_ ID3DXBuffer **buffer) PURE;
STDMETHOD(GetFragment)(THIS_ D3DXHANDLE name, ID3DXBuffer **buffer) PURE;
STDMETHOD(LinkShader)(THIS_ const char *profile, DWORD flags, const D3DXHANDLE *fragmenthandles, UINT fragments, ID3DXBuffer **buffer, ID3DXBuffer **errors) PURE;
STDMETHOD(LinkVertexShader)(THIS_ const char *profile, DWORD flags, const D3DXHANDLE *fragment_handles, UINT fragments, IDirect3DVertexShader9 **shader, ID3DXBuffer **errors) PURE;
STDMETHOD(LinkPixelShader)(THIS_ const char *profile, DWORD flags, const D3DXHANDLE *fragment_handles, UINT fragments, IDirect3DPixelShader9 **shader, ID3DXBuffer **errors) PURE;
STDMETHOD(ClearCache)(THIS) PURE;
};
#undef INTERFACE
#ifdef __cplusplus
extern "C" {
#endif