129 lines
3.7 KiB
C
129 lines
3.7 KiB
C
///////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (C) Microsoft Corporation. All Rights Reserved.
|
|
//
|
|
// File: d3dx11core.h
|
|
// Content: D3DX11 core types and functions
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "d3dx11.h"
|
|
|
|
#ifndef __D3DX11CORE_H__
|
|
#define __D3DX11CORE_H__
|
|
|
|
// Current name of the DLL shipped in the same SDK as this header.
|
|
|
|
|
|
#define D3DX11_DLL_W L"d3dx11_41.dll"
|
|
#define D3DX11_DLL_A "d3dx11_41.dll"
|
|
|
|
#ifdef UNICODE
|
|
#define D3DX11_DLL D3DX11_DLL_W
|
|
#else
|
|
#define D3DX11_DLL D3DX11_DLL_A
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif //__cplusplus
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// D3DX11_SDK_VERSION:
|
|
// -----------------
|
|
// This identifier is passed to D3DX11CheckVersion in order to ensure that an
|
|
// application was built against the correct header files and lib files.
|
|
// This number is incremented whenever a header (or other) change would
|
|
// require applications to be rebuilt. If the version doesn't match,
|
|
// D3DX11CreateVersion will return FALSE. (The number itself has no meaning.)
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#define D3DX11_SDK_VERSION 41
|
|
|
|
|
|
#ifdef D3D_DIAG_DLL
|
|
BOOL WINAPI D3DX11DebugMute(BOOL Mute);
|
|
#endif
|
|
HRESULT WINAPI D3DX11CheckVersion(UINT D3DSdkVersion, UINT D3DX11SdkVersion);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif //__cplusplus
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// ID3DX11ThreadPump:
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE ID3DX11DataLoader
|
|
|
|
DECLARE_INTERFACE(ID3DX11DataLoader)
|
|
{
|
|
STDMETHOD(Load)(THIS) PURE;
|
|
STDMETHOD(Decompress)(THIS_ void **ppData, SIZE_T *pcBytes) PURE;
|
|
STDMETHOD(Destroy)(THIS) PURE;
|
|
};
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE ID3DX11DataProcessor
|
|
|
|
DECLARE_INTERFACE(ID3DX11DataProcessor)
|
|
{
|
|
STDMETHOD(Process)(THIS_ void *pData, SIZE_T cBytes) PURE;
|
|
STDMETHOD(CreateDeviceObject)(THIS_ void **ppDataObject) PURE;
|
|
STDMETHOD(Destroy)(THIS) PURE;
|
|
};
|
|
|
|
// {C93FECFA-6967-478a-ABBC-402D90621FCB}
|
|
DEFINE_GUID(IID_ID3DX11ThreadPump,
|
|
0xc93fecfa, 0x6967, 0x478a, 0xab, 0xbc, 0x40, 0x2d, 0x90, 0x62, 0x1f, 0xcb);
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE ID3DX11ThreadPump
|
|
|
|
DECLARE_INTERFACE_(ID3DX11ThreadPump, IUnknown)
|
|
{
|
|
// IUnknown
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// ID3DX11ThreadPump
|
|
STDMETHOD(AddWorkItem)(THIS_ ID3DX11DataLoader *pDataLoader, ID3DX11DataProcessor *pDataProcessor, HRESULT *pHResult, void **ppDeviceObject) PURE;
|
|
STDMETHOD_(UINT, GetWorkItemCount)(THIS) PURE;
|
|
|
|
STDMETHOD(WaitForAllItems)(THIS) PURE;
|
|
STDMETHOD(ProcessDeviceWorkItems)(THIS_ UINT iWorkItemCount);
|
|
|
|
STDMETHOD(PurgeAllItems)(THIS) PURE;
|
|
STDMETHOD(GetQueueStatus)(THIS_ UINT *pIoQueue, UINT *pProcessQueue, UINT *pDeviceQueue) PURE;
|
|
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif //__cplusplus
|
|
|
|
HRESULT WINAPI D3DX11CreateThreadPump(UINT cIoThreads, UINT cProcThreads, ID3DX11ThreadPump **ppThreadPump);
|
|
|
|
HRESULT WINAPI D3DX11UnsetAllDeviceObjects(ID3D11DeviceContext *pContext);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif //__cplusplus
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
#define _FACD3D 0x876
|
|
#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
|
|
#define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code )
|
|
|
|
#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
|
|
#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
|
|
|
|
#endif //__D3DX11CORE_H__
|
|
|