1 module directx.d3d10_1; 2 /*------------------------------------------------------------------------------------- 3 * 4 * Copyright (c) Microsoft Corporation 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 version(Windows): 9 10 public import directx.d3d10; 11 public import directx.d3d10misc; 12 public import directx.d3d10_1shader; 13 14 enum D3D10_1_DEFAULT_SAMPLE_MASK = ( 0xffffffff ); 15 enum D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP = ( 0.6 ); 16 enum D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = ( 0.6f ); 17 enum D3D10_1_GS_INPUT_REGISTER_COUNT= ( 32 ); 18 enum D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = ( 32 ); 19 enum D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = ( 128 ); 20 enum D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT= ( 32 ); 21 enum D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS = ( 1 ); 22 enum D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 23 enum D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT = ( 1 ); 24 enum D3D10_1_SHADER_MAJOR_VERSION = ( 4 ); 25 enum D3D10_1_SHADER_MINOR_VERSION = ( 1 ); 26 enum D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES = ( 2048 ); 27 enum D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = ( 256 ); 28 enum D3D10_1_SO_BUFFER_SLOT_COUNT = ( 4 ); 29 enum D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = ( 1 ); 30 enum D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT = ( 64 ); 31 enum D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT = ( 32 ); 32 enum D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT = ( 8 ); 33 enum D3D10_1_VS_INPUT_REGISTER_COUNT= ( 32 ); 34 enum D3D10_1_VS_OUTPUT_REGISTER_COUNT = ( 32 ); 35 36 alias DWORD D3D10_FEATURE_LEVEL1; 37 enum : D3D10_FEATURE_LEVEL1 38 { 39 D3D10_FEATURE_LEVEL_10_0 = 0xa000, 40 D3D10_FEATURE_LEVEL_10_1 = 0xa100, 41 D3D10_FEATURE_LEVEL_9_1 = 0x9100, 42 D3D10_FEATURE_LEVEL_9_2 = 0x9200, 43 D3D10_FEATURE_LEVEL_9_3 = 0x9300 44 } 45 46 struct D3D10_RENDER_TARGET_BLEND_DESC1 47 { 48 BOOL BlendEnable; 49 D3D10_BLEND SrcBlend; 50 D3D10_BLEND DestBlend; 51 D3D10_BLEND_OP BlendOp; 52 D3D10_BLEND SrcBlendAlpha; 53 D3D10_BLEND DestBlendAlpha; 54 D3D10_BLEND_OP BlendOpAlpha; 55 UINT8 RenderTargetWriteMask; 56 } 57 58 struct D3D10_BLEND_DESC1 59 { 60 BOOL AlphaToCoverageEnable; 61 BOOL IndependentBlendEnable; 62 D3D10_RENDER_TARGET_BLEND_DESC1[8] RenderTarget; 63 } 64 65 mixin(uuid!(ID3D10BlendState1, "EDAD8D99-8A35-4d6d-8566-2EA276CDE161")); 66 extern (C++) interface ID3D10BlendState1 : ID3D10BlendState { 67 void GetDesc1(D3D10_BLEND_DESC1* pDesc); 68 69 } 70 71 struct D3D10_TEXCUBE_ARRAY_SRV1 72 { 73 UINT MostDetailedMip; 74 UINT MipLevels; 75 UINT First2DArrayFace; 76 UINT NumCubes; 77 } 78 79 alias D3D_SRV_DIMENSION D3D10_SRV_DIMENSION1; 80 81 struct D3D10_SHADER_RESOURCE_VIEW_DESC1 82 { 83 DXGI_FORMAT Format; 84 D3D10_SRV_DIMENSION1 ViewDimension; 85 union 86 { 87 D3D10_BUFFER_SRV Buffer; 88 D3D10_TEX1D_SRV Texture1D; 89 D3D10_TEX1D_ARRAY_SRV Texture1DArray; 90 D3D10_TEX2D_SRV Texture2D; 91 D3D10_TEX2D_ARRAY_SRV Texture2DArray; 92 D3D10_TEX2DMS_SRV Texture2DMS; 93 D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray; 94 D3D10_TEX3D_SRV Texture3D; 95 D3D10_TEXCUBE_SRV TextureCube; 96 D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray; 97 } 98 } 99 100 mixin(uuid!(ID3D10ShaderResourceView1, "9B7E4C87-342C-4106-A19F-4F2704F689F0")); 101 extern (C++) interface ID3D10ShaderResourceView1 : ID3D10ShaderResourceView { 102 void GetDesc1(D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc); 103 } 104 105 enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS 106 { 107 D3D10_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, 108 D3D10_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe 109 } 110 111 mixin(uuid!(ID3D10Device1, "9B7E4C8F-342C-4106-A19F-4F2704F689F0")); 112 extern (C++) interface ID3D10Device1 : ID3D10Device { 113 HRESULT CreateShaderResourceView1( 114 ID3D10Resource pResource, 115 const(D3D10_SHADER_RESOURCE_VIEW_DESC1)* pDesc, 116 ID3D10ShaderResourceView1* ppSRView); 117 118 HRESULT CreateBlendState1( 119 const(D3D10_BLEND_DESC1)* pBlendStateDesc, 120 ID3D10BlendState1* ppBlendState); 121 122 D3D10_FEATURE_LEVEL1 GetFeatureLevel(); 123 } 124 125 enum D3D10_1_SDK_VERSION = 0x20; 126 127 /////////////////////////////////////////////////////////////////////////// 128 // D3D10CreateDevice1 129 // ------------------ 130 // 131 // pAdapter 132 // If NULL, D3D10CreateDevice1 will choose the primary adapter and 133 // create a new instance from a temporarily created IDXGIFactory. 134 // If non-NULL, D3D10CreateDevice1 will register the appropriate 135 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 136 // creating the device. 137 // DriverType 138 // Specifies the driver type to be created: hardware, reference or 139 // null. 140 // Software 141 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 142 // non-Software driver types. 143 // Flags 144 // Any of those documented for D3D10CreateDeviceAndSwapChain1. 145 // HardwareLevel 146 // Any of those documented for D3D10CreateDeviceAndSwapChain1. 147 // SDKVersion 148 // SDK version. Use the D3D10_1_SDK_VERSION macro. 149 // ppDevice 150 // Pointer to returned interface. 151 // 152 // Return Values 153 // Any of those documented for 154 // CreateDXGIFactory 155 // IDXGIFactory::EnumAdapters 156 // IDXGIAdapter::RegisterDriver 157 // D3D10CreateDevice1 158 // 159 /////////////////////////////////////////////////////////////////////////// 160 161 __gshared PFN_D3D10_CREATE_DEVICE1 D3D10CreateDevice1; 162 163 extern (Windows) { 164 alias PFN_D3D10_CREATE_DEVICE1 = HRESULT function( 165 IDXGIAdapter pAdapter, 166 D3D10_DRIVER_TYPE DriverType, 167 HMODULE Software, 168 UINT Flags, 169 D3D10_FEATURE_LEVEL1 HardwareLevel, 170 UINT SDKVersion, 171 ID3D10Device1 *ppDevice); 172 } 173 174 /////////////////////////////////////////////////////////////////////////// 175 // D3D10CreateDeviceAndSwapChain1 176 // ------------------------------ 177 // 178 // ppAdapter 179 // If NULL, D3D10CreateDevice1 will choose the primary adapter and 180 // create a new instance from a temporarily created IDXGIFactory. 181 // If non-NULL, D3D10CreateDevice1 will register the appropriate 182 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 183 // creating the device. 184 // DriverType 185 // Specifies the driver type to be created: hardware, reference or 186 // null. 187 // Software 188 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 189 // non-Software driver types. 190 // Flags 191 // Any of those documented for D3D10CreateDevice1. 192 // HardwareLevel 193 // Any of: 194 // D3D10_CREATE_LEVEL_10_0 195 // D3D10_CREATE_LEVEL_10_1 196 // SDKVersion 197 // SDK version. Use the D3D10_1_SDK_VERSION macro. 198 // pSwapChainDesc 199 // Swap chain description, may be NULL. 200 // ppSwapChain 201 // Pointer to returned interface. May be NULL. 202 // ppDevice 203 // Pointer to returned interface. 204 // 205 // Return Values 206 // Any of those documented for 207 // CreateDXGIFactory 208 // IDXGIFactory::EnumAdapters 209 // IDXGIAdapter::RegisterDriver 210 // D3D10CreateDevice1 211 // IDXGIFactory::CreateSwapChain 212 // 213 /////////////////////////////////////////////////////////////////////////// 214 215 __gshared PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1 D3D10CreateDeviceAndSwapChain1; 216 217 extern (Windows) { 218 alias PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1 = HRESULT function( 219 IDXGIAdapter pAdapter, 220 D3D10_DRIVER_TYPE DriverType, 221 HMODULE Software, 222 UINT Flags, 223 D3D10_FEATURE_LEVEL1 HardwareLevel, 224 UINT SDKVersion, 225 DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, 226 IDXGISwapChain* ppSwapChain, 227 ID3D10Device1* ppDevice); 228 }