////////////////////////////////////////////////////////////////////////////// // // Copyright (c) Microsoft Corporation. All rights reserved. // // File: D3D10Misc.h // Content: D3D10 Device Creation APIs // ////////////////////////////////////////////////////////////////////////////// #ifndef __D3D10MISC_H__ #define __D3D10MISC_H__ #include "d3d10.h" /////////////////////////////////////////////////////////////////////////// // ID3D10Blob: // ------------ // The buffer object is used by D3D10 to return arbitrary size data. // // GetBufferPointer - // Returns a pointer to the beginning of the buffer. // // GetBufferSize - // Returns the size of the buffer, in bytes. /////////////////////////////////////////////////////////////////////////// typedef interface ID3D10Blob ID3D10Blob; typedef interface ID3D10Blob *LPD3D10BLOB; // {8BA5FB08-5195-40e2-AC58-0D989C3A0102} DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2); #undef INTERFACE #define INTERFACE ID3D10Blob DECLARE_INTERFACE_(ID3D10Blob, IUnknown) { // IUnknown STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; // ID3D10Blob STDMETHOD_(LPVOID, GetBufferPointer)(THIS) PURE; STDMETHOD_(SIZE_T, GetBufferSize)(THIS) PURE; }; #ifdef __cplusplus extern "C" { #endif //__cplusplus /////////////////////////////////////////////////////////////////////////// // D3D10_DRIVER_TYPE // ---------------- // // This identifier is used to determine the implementation of Direct3D10 // to be used. // // Pass one of these values to D3D10CreateDevice // /////////////////////////////////////////////////////////////////////////// typedef enum D3D10_DRIVER_TYPE { D3D10_DRIVER_TYPE_HARDWARE = 0, D3D10_DRIVER_TYPE_REFERENCE = 1, D3D10_DRIVER_TYPE_NULL = 2, D3D10_DRIVER_TYPE_SOFTWARE = 3, D3D10_DRIVER_TYPE_WARP = 5, } D3D10_DRIVER_TYPE; DEFINE_GUID(GUID_DeviceType, 0xd722fb4d, 0x7a68, 0x437a, 0xb2, 0x0c, 0x58, 0x04, 0xee, 0x24, 0x94, 0xa6); /////////////////////////////////////////////////////////////////////////// // D3D10CreateDevice // ------------------ // // pAdapter // If NULL, D3D10CreateDevice will choose the primary adapter and // create a new instance from a temporarily created IDXGIFactory. // If non-NULL, D3D10CreateDevice will register the appropriate // device, if necessary (via IDXGIAdapter::RegisterDrver), before // creating the device. // DriverType // Specifies the driver type to be created: hardware, reference or // null. // Software // HMODULE of a DLL implementing a software rasterizer. Must be NULL for // non-Software driver types. // Flags // Any of those documented for D3D10CreateDevice. // SDKVersion // SDK version. Use the D3D10_SDK_VERSION macro. // ppDevice // Pointer to returned interface. // // Return Values // Any of those documented for // CreateDXGIFactory // IDXGIFactory::EnumAdapters // IDXGIAdapter::RegisterDriver // D3D10CreateDevice // /////////////////////////////////////////////////////////////////////////// HRESULT WINAPI D3D10CreateDevice( IDXGIAdapter *pAdapter, D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, UINT SDKVersion, ID3D10Device **ppDevice); /////////////////////////////////////////////////////////////////////////// // D3D10CreateDeviceAndSwapChain // ------------------------------ // // ppAdapter // If NULL, D3D10CreateDevice will choose the primary adapter and // create a new instance from a temporarily created IDXGIFactory. // If non-NULL, D3D10CreateDevice will register the appropriate // device, if necessary (via IDXGIAdapter::RegisterDrver), before // creating the device. // DriverType // Specifies the driver type to be created: hardware, reference or // null. // Software // HMODULE of a DLL implementing a software rasterizer. Must be NULL for // non-Software driver types. // Flags // Any of those documented for D3D10CreateDevice. // SDKVersion // SDK version. Use the D3D10_SDK_VERSION macro. // pSwapChainDesc // Swap chain description, may be NULL. // ppSwapChain // Pointer to returned interface. May be NULL. // ppDevice // Pointer to returned interface. // // Return Values // Any of those documented for // CreateDXGIFactory // IDXGIFactory::EnumAdapters // IDXGIAdapter::RegisterDriver // D3D10CreateDevice // IDXGIFactory::CreateSwapChain // /////////////////////////////////////////////////////////////////////////// HRESULT WINAPI D3D10CreateDeviceAndSwapChain( IDXGIAdapter *pAdapter, D3D10_DRIVER_TYPE DriverType, HMODULE Software, UINT Flags, UINT SDKVersion, DXGI_SWAP_CHAIN_DESC *pSwapChainDesc, IDXGISwapChain **ppSwapChain, ID3D10Device **ppDevice); /////////////////////////////////////////////////////////////////////////// // D3D10CreateBlob: // ----------------- // Creates a Buffer of n Bytes ////////////////////////////////////////////////////////////////////////// HRESULT WINAPI D3D10CreateBlob(SIZE_T NumBytes, LPD3D10BLOB *ppBuffer); #ifdef __cplusplus } #endif //__cplusplus #endif //__D3D10EFFECT_H__