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 }