mirror of https://github.com/UMSKT/xpmgr.git
281 lines
12 KiB
Plaintext
281 lines
12 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// D3D10.1 IDL
|
|
//
|
|
// Contains interface definitions for the D3D10.1 API.
|
|
//
|
|
// Copyright (C) Microsoft Corporation
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
cpp_quote( "#if defined( __d3d10_h__ ) && !defined( D3D10_ARBITRARY_HEADER_ORDERING )" ) //
|
|
cpp_quote( "#error d3d10.h is included before d3d10_1.h, and it will confuse tools that honor SAL annotations. \\" )
|
|
cpp_quote( "If possibly targeting d3d10.1, include d3d10_1.h instead of d3d10.h, or ensure d3d10_1.h is included before d3d10.h" )
|
|
cpp_quote( "#endif" )
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
|
|
// NOTE: The following constants are generated from the d3d10_1 hardware spec. Do not edit these values directly.
|
|
cpp_quote( "#ifndef _D3D10_1_CONSTANTS" )
|
|
cpp_quote( "#define _D3D10_1_CONSTANTS" )
|
|
const UINT D3D10_1_DEFAULT_SAMPLE_MASK = 0xffffffff;
|
|
cpp_quote( "#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )" )
|
|
cpp_quote( "#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )" )
|
|
const UINT D3D10_1_GS_INPUT_REGISTER_COUNT = 32;
|
|
const UINT D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
|
|
const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
|
|
const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
|
|
const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1;
|
|
const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
|
|
const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT = 1;
|
|
const UINT D3D10_1_SHADER_MAJOR_VERSION = 4;
|
|
const UINT D3D10_1_SHADER_MINOR_VERSION = 1;
|
|
const UINT D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
|
|
const UINT D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256;
|
|
const UINT D3D10_1_SO_BUFFER_SLOT_COUNT = 4;
|
|
const UINT D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1;
|
|
const UINT D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64;
|
|
const UINT D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT = 32;
|
|
const UINT D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
|
|
const UINT D3D10_1_VS_INPUT_REGISTER_COUNT = 32;
|
|
const UINT D3D10_1_VS_OUTPUT_REGISTER_COUNT = 32;
|
|
cpp_quote( "#endif" )
|
|
import "d3d10.idl"; //
|
|
cpp_quote( "#include \"d3d10.h\" //") //
|
|
|
|
// Forward declarations:
|
|
interface ID3D10Device1;
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Feature levels
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef enum D3D10_FEATURE_LEVEL1
|
|
{
|
|
D3D10_FEATURE_LEVEL_10_0 = 0xa000,
|
|
D3D10_FEATURE_LEVEL_10_1 = 0xa100,
|
|
D3D10_FEATURE_LEVEL_9_1 = 0x9100,
|
|
D3D10_FEATURE_LEVEL_9_2 = 0x9200,
|
|
D3D10_FEATURE_LEVEL_9_3 = 0x9300
|
|
} D3D10_FEATURE_LEVEL1;
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Blend State
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef struct D3D10_RENDER_TARGET_BLEND_DESC1
|
|
{
|
|
BOOL BlendEnable;
|
|
D3D10_BLEND SrcBlend;
|
|
D3D10_BLEND DestBlend;
|
|
D3D10_BLEND_OP BlendOp;
|
|
D3D10_BLEND SrcBlendAlpha;
|
|
D3D10_BLEND DestBlendAlpha;
|
|
D3D10_BLEND_OP BlendOpAlpha;
|
|
UINT8 RenderTargetWriteMask; // D3D10_COLOR_WRITE_ENABLE
|
|
} D3D10_RENDER_TARGET_BLEND_DESC1;
|
|
|
|
typedef struct D3D10_BLEND_DESC1
|
|
{
|
|
BOOL AlphaToCoverageEnable; // relevant to multisample antialiasing only
|
|
BOOL IndependentBlendEnable; // if FALSE, then replicate the first entry in RenderTarget array to other entries
|
|
D3D10_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT];
|
|
} D3D10_BLEND_DESC1;
|
|
|
|
[ uuid( EDAD8D99-8A35-4d6d-8566-2EA276CDE161 ), object, local, pointer_default( unique ) ]
|
|
interface ID3D10BlendState1
|
|
: ID3D10BlendState
|
|
{
|
|
void GetDesc1( [annotation("__out")] D3D10_BLEND_DESC1* pDesc );
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// ShaderResourceView
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
typedef struct D3D10_TEXCUBE_ARRAY_SRV1
|
|
{
|
|
UINT MostDetailedMip;
|
|
UINT MipLevels;
|
|
UINT First2DArrayFace;
|
|
UINT NumCubes;
|
|
} D3D10_TEXCUBE_ARRAY_SRV1;
|
|
|
|
typedef enum D3D10_SRV_DIMENSION1
|
|
{
|
|
D3D10_1_SRV_DIMENSION_UNKNOWN = 0,
|
|
D3D10_1_SRV_DIMENSION_BUFFER = 1,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE1D = 2,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = 3,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE2D = 4,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = 5,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE2DMS = 6,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
|
|
D3D10_1_SRV_DIMENSION_TEXTURE3D = 8,
|
|
D3D10_1_SRV_DIMENSION_TEXTURECUBE = 9,
|
|
D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
|
|
} D3D10_SRV_DIMENSION1;
|
|
|
|
typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC1
|
|
{
|
|
DXGI_FORMAT Format;
|
|
D3D10_SRV_DIMENSION1 ViewDimension;
|
|
|
|
union
|
|
{
|
|
D3D10_BUFFER_SRV Buffer;
|
|
D3D10_TEX1D_SRV Texture1D;
|
|
D3D10_TEX1D_ARRAY_SRV Texture1DArray;
|
|
D3D10_TEX2D_SRV Texture2D;
|
|
D3D10_TEX2D_ARRAY_SRV Texture2DArray;
|
|
D3D10_TEX2DMS_SRV Texture2DMS;
|
|
D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
|
|
D3D10_TEX3D_SRV Texture3D;
|
|
D3D10_TEXCUBE_SRV TextureCube;
|
|
D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
|
|
};
|
|
} D3D10_SHADER_RESOURCE_VIEW_DESC1;
|
|
|
|
[ uuid( 9B7E4C87-342C-4106-A19F-4F2704F689F0 ), object, local, pointer_default( unique ) ]
|
|
interface ID3D10ShaderResourceView1
|
|
: ID3D10ShaderResourceView
|
|
{
|
|
void GetDesc1( [annotation("__out")] D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc );
|
|
};
|
|
|
|
typedef enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS
|
|
{
|
|
D3D10_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
|
|
D3D10_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
|
|
} D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
|
|
[ uuid( 9B7E4C8F-342C-4106-A19F-4F2704F689F0 ), object, local, pointer_default( unique ) ]
|
|
interface ID3D10Device1
|
|
: ID3D10Device
|
|
{
|
|
HRESULT CreateShaderResourceView1(
|
|
[annotation("__in")] ID3D10Resource* pResource,
|
|
[annotation("__in_opt")] const D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc,
|
|
[annotation("__out_opt")] ID3D10ShaderResourceView1** ppSRView );
|
|
HRESULT CreateBlendState1(
|
|
[annotation("__in")] const D3D10_BLEND_DESC1* pBlendStateDesc,
|
|
[annotation("__out_opt")] ID3D10BlendState1** ppBlendState );
|
|
D3D10_FEATURE_LEVEL1 GetFeatureLevel();
|
|
};
|
|
// + 0x20 puts us in safe range to detect when application isn't using the correct version number.
|
|
const UINT D3D10_1_SDK_VERSION = 0 + 0x20;
|
|
|
|
cpp_quote( "#include \"d3d10_1shader.h\" ")
|
|
|
|
cpp_quote( "" )
|
|
cpp_quote( "///////////////////////////////////////////////////////////////////////////" )
|
|
cpp_quote( "// D3D10CreateDevice1" )
|
|
cpp_quote( "// ------------------" )
|
|
cpp_quote( "//" )
|
|
cpp_quote( "// pAdapter" )
|
|
cpp_quote( "// If NULL, D3D10CreateDevice1 will choose the primary adapter and" )
|
|
cpp_quote( "// create a new instance from a temporarily created IDXGIFactory." )
|
|
cpp_quote( "// If non-NULL, D3D10CreateDevice1 will register the appropriate" )
|
|
cpp_quote( "// device, if necessary (via IDXGIAdapter::RegisterDrver), before" )
|
|
cpp_quote( "// creating the device." )
|
|
cpp_quote( "// DriverType" )
|
|
cpp_quote( "// Specifies the driver type to be created: hardware, reference or" )
|
|
cpp_quote( "// null." )
|
|
cpp_quote( "// Software" )
|
|
cpp_quote( "// HMODULE of a DLL implementing a software rasterizer. Must be NULL for" )
|
|
cpp_quote( "// non-Software driver types." )
|
|
cpp_quote( "// Flags" )
|
|
cpp_quote( "// Any of those documented for D3D10CreateDeviceAndSwapChain1." )
|
|
cpp_quote( "// HardwareLevel" )
|
|
cpp_quote( "// Any of those documented for D3D10CreateDeviceAndSwapChain1." )
|
|
cpp_quote( "// SDKVersion" )
|
|
cpp_quote( "// SDK version. Use the D3D10_1_SDK_VERSION macro." )
|
|
cpp_quote( "// ppDevice" )
|
|
cpp_quote( "// Pointer to returned interface." )
|
|
cpp_quote( "//" )
|
|
cpp_quote( "// Return Values" )
|
|
cpp_quote( "// Any of those documented for " )
|
|
cpp_quote( "// CreateDXGIFactory" )
|
|
cpp_quote( "// IDXGIFactory::EnumAdapters" )
|
|
cpp_quote( "// IDXGIAdapter::RegisterDriver" )
|
|
cpp_quote( "// D3D10CreateDevice1" )
|
|
cpp_quote( "//" )
|
|
cpp_quote( "///////////////////////////////////////////////////////////////////////////" )
|
|
cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE1)(IDXGIAdapter *, " )
|
|
cpp_quote( " D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device1**);" )
|
|
cpp_quote( "" )
|
|
cpp_quote( "HRESULT WINAPI D3D10CreateDevice1(" )
|
|
cpp_quote( " IDXGIAdapter *pAdapter," )
|
|
cpp_quote( " D3D10_DRIVER_TYPE DriverType," )
|
|
cpp_quote( " HMODULE Software," )
|
|
cpp_quote( " UINT Flags," )
|
|
cpp_quote( " D3D10_FEATURE_LEVEL1 HardwareLevel," )
|
|
cpp_quote( " UINT SDKVersion," )
|
|
cpp_quote( " ID3D10Device1 **ppDevice);" )
|
|
cpp_quote( "" )
|
|
cpp_quote( "///////////////////////////////////////////////////////////////////////////" )
|
|
cpp_quote( "// D3D10CreateDeviceAndSwapChain1" )
|
|
cpp_quote( "// ------------------------------" )
|
|
cpp_quote( "//" )
|
|
cpp_quote( "// ppAdapter" )
|
|
cpp_quote( "// If NULL, D3D10CreateDevice1 will choose the primary adapter and " )
|
|
cpp_quote( "// create a new instance from a temporarily created IDXGIFactory." )
|
|
cpp_quote( "// If non-NULL, D3D10CreateDevice1 will register the appropriate" )
|
|
cpp_quote( "// device, if necessary (via IDXGIAdapter::RegisterDrver), before" )
|
|
cpp_quote( "// creating the device." )
|
|
cpp_quote( "// DriverType" )
|
|
cpp_quote( "// Specifies the driver type to be created: hardware, reference or" )
|
|
cpp_quote( "// null." )
|
|
cpp_quote( "// Software" )
|
|
cpp_quote( "// HMODULE of a DLL implementing a software rasterizer. Must be NULL for" )
|
|
cpp_quote( "// non-Software driver types." )
|
|
cpp_quote( "// Flags" )
|
|
cpp_quote( "// Any of those documented for D3D10CreateDevice1." )
|
|
cpp_quote( "// HardwareLevel" )
|
|
cpp_quote( "// Any of:" )
|
|
cpp_quote( "// D3D10_CREATE_LEVEL_10_0" )
|
|
cpp_quote( "// D3D10_CREATE_LEVEL_10_1" )
|
|
cpp_quote( "// SDKVersion" )
|
|
cpp_quote( "// SDK version. Use the D3D10_1_SDK_VERSION macro." )
|
|
cpp_quote( "// pSwapChainDesc" )
|
|
cpp_quote( "// Swap chain description, may be NULL." )
|
|
cpp_quote( "// ppSwapChain" )
|
|
cpp_quote( "// Pointer to returned interface. May be NULL." )
|
|
cpp_quote( "// ppDevice" )
|
|
cpp_quote( "// Pointer to returned interface." )
|
|
cpp_quote( "//" )
|
|
cpp_quote( "// Return Values" )
|
|
cpp_quote( "// Any of those documented for " )
|
|
cpp_quote( "// CreateDXGIFactory" )
|
|
cpp_quote( "// IDXGIFactory::EnumAdapters" )
|
|
cpp_quote( "// IDXGIAdapter::RegisterDriver" )
|
|
cpp_quote( "// D3D10CreateDevice1" )
|
|
cpp_quote( "// IDXGIFactory::CreateSwapChain" )
|
|
cpp_quote( "//" )
|
|
cpp_quote( "///////////////////////////////////////////////////////////////////////////" )
|
|
cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1)(IDXGIAdapter *, " )
|
|
cpp_quote( " D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device1 **);" )
|
|
cpp_quote( "" )
|
|
cpp_quote( "HRESULT WINAPI D3D10CreateDeviceAndSwapChain1(" )
|
|
cpp_quote( " IDXGIAdapter *pAdapter," )
|
|
cpp_quote( " D3D10_DRIVER_TYPE DriverType," )
|
|
cpp_quote( " HMODULE Software," )
|
|
cpp_quote( " UINT Flags," )
|
|
cpp_quote( " D3D10_FEATURE_LEVEL1 HardwareLevel," )
|
|
cpp_quote( " UINT SDKVersion," )
|
|
cpp_quote( " DXGI_SWAP_CHAIN_DESC *pSwapChainDesc," )
|
|
cpp_quote( " IDXGISwapChain **ppSwapChain," )
|
|
cpp_quote( " ID3D10Device1 **ppDevice);" )
|
|
|
|
|
|
cpp_quote( "DEFINE_GUID(IID_ID3D10BlendState1,0xEDAD8D99,0x8A35,0x4d6d,0x85,0x66,0x2E,0xA2,0x76,0xCD,0xE1,0x61);" )
|
|
cpp_quote( "DEFINE_GUID(IID_ID3D10ShaderResourceView1,0x9B7E4C87,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);" )
|
|
cpp_quote( "DEFINE_GUID(IID_ID3D10Device1,0x9B7E4C8F,0x342C,0x4106,0xA1,0x9F,0x4F,0x27,0x04,0xF6,0x89,0xF0);" )
|
|
|