3594bf58f8c05e5e022ae188f90429f73271d6de
[mesa.git] / src / gallium / state_trackers / d3d1x / d3dapi / d3dcommon.idl
1 /**************************************************************************
2 *
3 * Copyright 2010 Luca Barbieri
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining
6 * a copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,
9 * distribute, sublicense, and/or sell copies of the Software, and to
10 * permit persons to whom the Software is furnished to do so, subject to
11 * the following conditions:
12 *
13 * The above copyright notice and this permission notice (including the
14 * next paragraph) shall be included in all copies or substantial
15 * portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
21 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 *
25 **************************************************************************/
26
27 import "oaidl.idl";
28 import "ocidl.idl";
29
30 typedef const void* LPCVOID;
31
32 typedef enum D3D_DRIVER_TYPE
33 {
34 D3D_DRIVER_TYPE_UNKNOWN,
35 D3D_DRIVER_TYPE_HARDWARE,
36 D3D_DRIVER_TYPE_REFERENCE,
37 D3D_DRIVER_TYPE_NULL,
38 D3D_DRIVER_TYPE_SOFTWARE,
39 D3D_DRIVER_TYPE_WARP,
40 } D3D_DRIVER_TYPE;
41
42 typedef enum D3D_FEATURE_LEVEL
43 {
44 D3D_FEATURE_LEVEL_9_1 = 0x9100,
45 D3D_FEATURE_LEVEL_9_2 = 0x9200,
46 D3D_FEATURE_LEVEL_9_3 = 0x9300,
47 D3D_FEATURE_LEVEL_10_0 = 0xa000,
48 D3D_FEATURE_LEVEL_10_1 = 0xa100,
49 D3D_FEATURE_LEVEL_11_0 = 0xb000
50 } D3D_FEATURE_LEVEL;
51
52 typedef enum D3D_PRIMITIVE_TOPOLOGY
53 {
54 D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
55 D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
56 D3D_PRIMITIVE_TOPOLOGY_LINELIST,
57 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
58 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
59 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
60
61 D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
62 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
63 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
64 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
65
66 D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
67 D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
68 D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
69 D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
70 D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
71 D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
72 D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
73 D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
74 D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
75 D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
76 D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
77 D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
78 D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
79 D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
80 D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
81 D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
82 D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
83 D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
84 D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
85 D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
86 D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
87 D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
88 D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
89 D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
90 D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
91 D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
92 D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
93 D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
94 D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
95 D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
96 D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
97 D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST,
98
99 D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
100 D3D10_PRIMITIVE_TOPOLOGY_POINTLIST,
101 D3D10_PRIMITIVE_TOPOLOGY_LINELIST,
102 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP,
103 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
104 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
105
106 D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
107 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
108 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
109 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
110
111 D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
112 D3D11_PRIMITIVE_TOPOLOGY_POINTLIST,
113 D3D11_PRIMITIVE_TOPOLOGY_LINELIST,
114 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP,
115 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
116 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
117
118 D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
119 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
120 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
121 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
122
123 D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
124 D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
125 D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
126 D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
127 D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
128 D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
129 D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
130 D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
131 D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
132 D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
133 D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
134 D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
135 D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
136 D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
137 D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
138 D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
139 D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
140 D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
141 D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
142 D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
143 D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
144 D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
145 D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
146 D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
147 D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
148 D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
149 D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
150 D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
151 D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
152 D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
153 D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
154 D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST,
155 } D3D_PRIMITIVE_TOPOLOGY;
156
157 typedef enum D3D_PRIMITIVE
158 {
159 D3D_PRIMITIVE_UNDEFINED = 0,
160 D3D_PRIMITIVE_POINT,
161 D3D_PRIMITIVE_LINE,
162 D3D_PRIMITIVE_TRIANGLE,
163
164 D3D_PRIMITIVE_LINE_ADJ = 6,
165 D3D_PRIMITIVE_TRIANGLE_ADJ,
166
167 D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
168 D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
169 D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
170 D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
171 D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
172 D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
173 D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
174 D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
175 D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
176 D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
177 D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
178 D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
179 D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
180 D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
181 D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
182 D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
183 D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
184 D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
185 D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
186 D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
187 D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
188 D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
189 D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
190 D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
191 D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
192 D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
193 D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
194 D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
195 D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
196 D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
197 D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
198 D3D_PRIMITIVE_32_CONTROL_POINT_PATCH,
199
200 D3D10_PRIMITIVE_UNDEFINED = 0,
201 D3D10_PRIMITIVE_POINT,
202 D3D10_PRIMITIVE_LINE,
203 D3D10_PRIMITIVE_TRIANGLE,
204
205 D3D10_PRIMITIVE_LINE_ADJ = 6,
206 D3D10_PRIMITIVE_TRIANGLE_ADJ,
207
208 D3D11_PRIMITIVE_UNDEFINED = 0,
209 D3D11_PRIMITIVE_POINT,
210 D3D11_PRIMITIVE_LINE,
211 D3D11_PRIMITIVE_TRIANGLE,
212
213 D3D11_PRIMITIVE_LINE_ADJ = 6,
214 D3D11_PRIMITIVE_TRIANGLE_ADJ,
215
216 D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
217 D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH,
218 D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH,
219 D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH,
220 D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH,
221 D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH,
222 D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH,
223 D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH,
224 D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH,
225 D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH,
226 D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH,
227 D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH,
228 D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH,
229 D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH,
230 D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH,
231 D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH,
232 D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH,
233 D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH,
234 D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH,
235 D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH,
236 D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH,
237 D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH,
238 D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH,
239 D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH,
240 D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH,
241 D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH,
242 D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH,
243 D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH,
244 D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH,
245 D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH,
246 D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH,
247 D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH,
248 } D3D_PRIMITIVE;
249
250 typedef enum D3D_SRV_DIMENSION
251 {
252 D3D_SRV_DIMENSION_UNKNOWN = 0,
253 D3D_SRV_DIMENSION_BUFFER,
254 D3D_SRV_DIMENSION_TEXTURE1D,
255 D3D_SRV_DIMENSION_TEXTURE1DARRAY,
256 D3D_SRV_DIMENSION_TEXTURE2D,
257 D3D_SRV_DIMENSION_TEXTURE2DARRAY,
258 D3D_SRV_DIMENSION_TEXTURE2DMS,
259 D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
260 D3D_SRV_DIMENSION_TEXTURE3D,
261 D3D_SRV_DIMENSION_TEXTURECUBE,
262 D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
263 D3D_SRV_DIMENSION_BUFFEREX,
264
265 D3D10_SRV_DIMENSION_UNKNOWN = 0,
266 D3D10_SRV_DIMENSION_BUFFER,
267 D3D10_SRV_DIMENSION_TEXTURE1D,
268 D3D10_SRV_DIMENSION_TEXTURE1DARRAY,
269 D3D10_SRV_DIMENSION_TEXTURE2D,
270 D3D10_SRV_DIMENSION_TEXTURE2DARRAY,
271 D3D10_SRV_DIMENSION_TEXTURE2DMS,
272 D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY,
273 D3D10_SRV_DIMENSION_TEXTURE3D,
274 D3D10_SRV_DIMENSION_TEXTURECUBE,
275
276 D3D10_1_SRV_DIMENSION_UNKNOWN = 0,
277 D3D10_1_SRV_DIMENSION_BUFFER,
278 D3D10_1_SRV_DIMENSION_TEXTURE1D,
279 D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY,
280 D3D10_1_SRV_DIMENSION_TEXTURE2D,
281 D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY,
282 D3D10_1_SRV_DIMENSION_TEXTURE2DMS,
283 D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY,
284 D3D10_1_SRV_DIMENSION_TEXTURE3D,
285 D3D10_1_SRV_DIMENSION_TEXTURECUBE,
286 D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY,
287
288 D3D11_SRV_DIMENSION_UNKNOWN = 0,
289 D3D11_SRV_DIMENSION_BUFFER,
290 D3D11_SRV_DIMENSION_TEXTURE1D,
291 D3D11_SRV_DIMENSION_TEXTURE1DARRAY,
292 D3D11_SRV_DIMENSION_TEXTURE2D,
293 D3D11_SRV_DIMENSION_TEXTURE2DARRAY,
294 D3D11_SRV_DIMENSION_TEXTURE2DMS,
295 D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY,
296 D3D11_SRV_DIMENSION_TEXTURE3D,
297 D3D11_SRV_DIMENSION_TEXTURECUBE,
298 D3D11_SRV_DIMENSION_TEXTURECUBEARRAY,
299 D3D11_SRV_DIMENSION_BUFFEREX,
300 } D3D_SRV_DIMENSION;
301
302 typedef struct _D3D_SHADER_MACRO
303 {
304 LPCSTR Name;
305 LPCSTR Definition;
306 } D3D_SHADER_MACRO;
307
308 typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO;
309
310 [object, local, uuid(8ba5fb08-5195-40e2-ac58-0d989c3a0102)]
311 interface ID3D10Blob : IUnknown
312 {
313 LPVOID GetBufferPointer();
314 SIZE_T GetBufferSize();
315 };
316
317 typedef enum _D3D_INCLUDE_TYPE
318 {
319 D3D_INCLUDE_LOCAL = 0,
320 D3D_INCLUDE_SYSTEM,
321
322 D3D10_INCLUDE_LOCAL = 0,
323 D3D10_INCLUDE_SYSTEM,
324
325 D3D_INCLUDE_FORCE_DWORD = 0x7fffffff,
326 } D3D_INCLUDE_TYPE;
327
328 [object, local]
329 interface ID3DInclude : IUnknown
330 {
331 HRESULT Open(
332 [in] D3D_INCLUDE_TYPE IncludeType,
333 [in] LPCSTR pFileName,
334 [in] LPCVOID pParentData,
335 [out] LPCVOID *ppData,
336 [in] UINT *pBytes
337 );
338 HRESULT Close(
339 [in] LPCVOID pData
340 );
341 };
342
343 typedef enum _D3D_SHADER_VARIABLE_CLASS
344 {
345 D3D_SVC_SCALAR = 0,
346 D3D_SVC_VECTOR,
347 D3D_SVC_MATRIX_ROWS,
348 D3D_SVC_MATRIX_COLUMNS,
349 D3D_SVC_OBJECT,
350 D3D_SVC_STRUCT,
351 D3D_SVC_INTERFACE_CLASS,
352 D3D_SVC_INTERFACE_POINTER,
353
354 D3D10_SVC_SCALAR = 0,
355 D3D10_SVC_VECTOR,
356 D3D10_SVC_MATRIX_ROWS,
357 D3D10_SVC_MATRIX_COLUMNS,
358 D3D10_SVC_OBJECT,
359 D3D10_SVC_STRUCT,
360 D3D11_SVC_INTERFACE_CLASS,
361 D3D11_SVC_INTERFACE_POINTER,
362 D3D_SVC_FORCE_DWORD = 0x7fffffff
363 } D3D_SHADER_VARIABLE_CLASS;
364
365 typedef enum _D3D_SHADER_VARIABLE_FLAGS
366 {
367 D3D_SVF_USERPACKED = 1,
368 D3D_SVF_USED = 2,
369 D3D_SVF_INTERFACE_POINTER = 4,
370 D3D_SVF_INTERFACE_PARAMETER = 8,
371
372 D3D10_SVF_USERPACKED = 1,
373 D3D10_SVF_USED = 2,
374 D3D10_SVF_INTERFACE_POINTER = 4,
375 D3D10_SVF_INTERFACE_PARAMETER = 8,
376
377 D3D_SVF_FORCE_DWORD = 0x7fffffff
378 } D3D_SHADER_VARIABLE_FLAGS;
379
380 typedef enum _D3D_SHADER_VARIABLE_TYPE
381 {
382 D3D_SVT_VOID = 0,
383 D3D_SVT_BOOL,
384 D3D_SVT_INT,
385 D3D_SVT_FLOAT,
386 D3D_SVT_STRING,
387 D3D_SVT_TEXTURE,
388 D3D_SVT_TEXTURE1D,
389 D3D_SVT_TEXTURE2D,
390 D3D_SVT_TEXTURE3D,
391 D3D_SVT_TEXTURECUBE,
392 D3D_SVT_SAMPLER,
393 D3D_SVT_SAMPLER1D,
394 D3D_SVT_SAMPLER2D,
395 D3D_SVT_SAMPLER3D,
396 D3D_SVT_SAMPLERCUBE,
397 D3D_SVT_PIXELSHADER,
398 D3D_SVT_VERTEXSHADER,
399 D3D_SVT_PIXELFRAGMENT,
400 D3D_SVT_VERTEXFRAGMENT,
401 D3D_SVT_UINT,
402 D3D_SVT_UINT8,
403 D3D_SVT_GEOMETRYSHADER,
404 D3D_SVT_RASTERIZER,
405 D3D_SVT_DEPTHSTENCIL,
406 D3D_SVT_BLEND,
407 D3D_SVT_BUFFER,
408 D3D_SVT_CBUFFER,
409 D3D_SVT_TBUFFER,
410 D3D_SVT_TEXTURE1DARRAY,
411 D3D_SVT_TEXTURE2DARRAY,
412 D3D_SVT_RENDERTARGETVIEW,
413 D3D_SVT_DEPTHSTENCILVIEW,
414 D3D_SVT_TEXTURE2DMS,
415 D3D_SVT_TEXTURE2DMSARRAY,
416 D3D_SVT_TEXTURECUBEARRAY,
417 D3D_SVT_HULLSHADER,
418 D3D_SVT_DOMAINSHADER,
419 D3D_SVT_INTERFACE_POINTER,
420 D3D_SVT_COMPUTESHADER,
421 D3D_SVT_DOUBLE,
422 D3D_SVT_RWTEXTURE1D,
423 D3D_SVT_RWTEXTURE1DARRAY,
424 D3D_SVT_RWTEXTURE2D,
425 D3D_SVT_RWTEXTURE2DARRAY,
426 D3D_SVT_RWTEXTURE3D,
427 D3D_SVT_RWBUFFER,
428 D3D_SVT_BYTEADDRESS_BUFFER,
429 D3D_SVT_RWBYTEADDRESS_BUFFER,
430 D3D_SVT_STRUCTURED_BUFFER,
431 D3D_SVT_RWSTRUCTURED_BUFFER,
432 D3D_SVT_APPEND_STRUCTURED_BUFFER,
433 D3D_SVT_CONSUME_STRUCTURED_BUFFER,
434
435 D3D10_SVT_VOID = 0,
436 D3D10_SVT_BOOL,
437 D3D10_SVT_INT,
438 D3D10_SVT_FLOAT,
439 D3D10_SVT_STRING,
440 D3D10_SVT_TEXTURE,
441 D3D10_SVT_TEXTURE1D,
442 D3D10_SVT_TEXTURE2D,
443 D3D10_SVT_TEXTURE3D,
444 D3D10_SVT_TEXTURECUBE,
445 D3D10_SVT_SAMPLER,
446 D3D10_SVT_SAMPLER1D,
447 D3D10_SVT_SAMPLER2D,
448 D3D10_SVT_SAMPLER3D,
449 D3D10_SVT_SAMPLERCUBE,
450 D3D10_SVT_PIXELSHADER,
451 D3D10_SVT_VERTEXSHADER,
452 D3D10_SVT_PIXELFRAGMENT,
453 D3D10_SVT_VERTEXFRAGMENT,
454 D3D10_SVT_UINT,
455 D3D10_SVT_UINT8,
456 D3D10_SVT_GEOMETRYSHADER,
457 D3D10_SVT_RASTERIZER,
458 D3D10_SVT_DEPTHSTENCIL,
459 D3D10_SVT_BLEND,
460 D3D10_SVT_BUFFER,
461 D3D10_SVT_CBUFFER,
462 D3D10_SVT_TBUFFER,
463 D3D10_SVT_TEXTURE1DARRAY,
464 D3D10_SVT_TEXTURE2DARRAY,
465 D3D10_SVT_RENDERTARGETVIEW,
466 D3D10_SVT_DEPTHSTENCILVIEW,
467 D3D10_SVT_TEXTURE2DMS,
468 D3D10_SVT_TEXTURE2DMSARRAY,
469 D3D10_SVT_TEXTURECUBEARRAY,
470
471 D3D11_SVT_HULLSHADER,
472 D3D11_SVT_DOMAINSHADER,
473 D3D11_SVT_INTERFACE_POINTER,
474 D3D11_SVT_COMPUTESHADER,
475 D3D11_SVT_DOUBLE,
476 D3D11_SVT_RWTEXTURE1D,
477 D3D11_SVT_RWTEXTURE1DARRAY,
478 D3D11_SVT_RWTEXTURE2D,
479 D3D11_SVT_RWTEXTURE2DARRAY,
480 D3D11_SVT_RWTEXTURE3D,
481 D3D11_SVT_RWBUFFER,
482 D3D11_SVT_BYTEADDRESS_BUFFER,
483 D3D11_SVT_RWBYTEADDRESS_BUFFER,
484 D3D11_SVT_STRUCTURED_BUFFER,
485 D3D11_SVT_RWSTRUCTURED_BUFFER,
486 D3D11_SVT_APPEND_STRUCTURED_BUFFER,
487 D3D11_SVT_CONSUME_STRUCTURED_BUFFER,
488
489 D3D_SVT_FORCE_DWORD = 0x7fffffff
490 } D3D_SHADER_VARIABLE_TYPE;
491
492 typedef enum _D3D_SHADER_INPUT_FLAGS
493 {
494 D3D_SIF_USERPACKED = 1,
495 D3D_SIF_COMPARISON_SAMPLER = 2,
496 D3D_SIF_TEXTURE_COMPONENT_0 = 4,
497 D3D_SIF_TEXTURE_COMPONENT_1 = 8,
498 D3D_SIF_TEXTURE_COMPONENTS = 12,
499
500 D3D10_SIF_USERPACKED = 1,
501 D3D10_SIF_COMPARISON_SAMPLER = 2,
502 D3D10_SIF_TEXTURE_COMPONENT_0 = 4,
503 D3D10_SIF_TEXTURE_COMPONENT_1 = 8,
504 D3D10_SIF_TEXTURE_COMPONENTS = 12,
505
506 D3D_SIF_FORCE_DWORD = 0x7fffffff
507 } D3D_SHADER_INPUT_FLAGS;
508
509 typedef enum _D3D_SHADER_INPUT_TYPE
510 {
511 D3D_SIT_CBUFFER = 0,
512 D3D_SIT_TBUFFER,
513 D3D_SIT_TEXTURE,
514 D3D_SIT_SAMPLER,
515 D3D_SIT_UAV_RWTYPED,
516 D3D_SIT_STRUCTURED,
517 D3D_SIT_UAV_RWSTRUCTURED,
518 D3D_SIT_BYTEADDRESS,
519 D3D_SIT_UAV_RWBYTEADDRESS,
520 D3D_SIT_UAV_APPEND_STRUCTURED,
521 D3D_SIT_UAV_CONSUME_STRUCTURED,
522 D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
523
524 D3D10_SIT_CBUFFER = 0,
525 D3D10_SIT_TBUFFER,
526 D3D10_SIT_TEXTURE,
527 D3D10_SIT_SAMPLER,
528
529 D3D11_SIT_UAV_RWTYPED,
530 D3D11_SIT_STRUCTURED,
531 D3D11_SIT_UAV_RWSTRUCTURED,
532 D3D11_SIT_BYTEADDRESS,
533 D3D11_SIT_UAV_RWBYTEADDRESS,
534 D3D11_SIT_UAV_APPEND_STRUCTURED,
535 D3D11_SIT_UAV_CONSUME_STRUCTURED,
536 D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
537 } D3D_SHADER_INPUT_TYPE;
538
539 typedef enum _D3D_SHADER_CBUFFER_FLAGS
540 {
541 D3D_CBF_USERPACKED = 1,
542
543 D3D10_CBF_USERPACKED = 1,
544
545 D3D_CBF_FORCE_DWORD = 0x7fffffff
546 } D3D_SHADER_CBUFFER_FLAGS;
547
548 typedef enum _D3D_CBUFFER_TYPE
549 {
550 D3D_CT_CBUFFER = 0,
551 D3D_CT_TBUFFER,
552 D3D_CT_INTERFACE_POINTERS,
553 D3D_CT_RESOURCE_BIND_INFO,
554
555 D3D10_CT_CBUFFER = 0,
556 D3D10_CT_TBUFFER,
557
558 D3D11_CT_CBUFFER = 0,
559 D3D11_CT_TBUFFER,
560 D3D11_CT_INTERFACE_POINTERS,
561 D3D11_CT_RESOURCE_BIND_INFO,
562 } D3D_CBUFFER_TYPE;
563
564 typedef enum D3D_NAME
565 {
566 D3D_NAME_UNDEFINED = 0,
567 D3D_NAME_POSITION,
568 D3D_NAME_CLIP_DISTANCE,
569 D3D_NAME_CULL_DISTANCE,
570 D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
571 D3D_NAME_VIEWPORT_ARRAY_INDEX,
572 D3D_NAME_VERTEX_ID,
573 D3D_NAME_PRIMITIVE_ID,
574 D3D_NAME_INSTANCE_ID,
575 D3D_NAME_IS_FRONT_FACE,
576 D3D_NAME_SAMPLE_INDEX,
577 D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
578 D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
579 D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
580 D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
581 D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
582 D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
583
584 D3D_NAME_TARGET = 64,
585 D3D_NAME_DEPTH,
586 D3D_NAME_COVERAGE,
587 D3D_NAME_DEPTH_GREATER_EQUAL,
588 D3D_NAME_DEPTH_LESS_EQUAL,
589
590 D3D10_NAME_UNDEFINED = 0,
591 D3D10_NAME_POSITION,
592 D3D10_NAME_CLIP_DISTANCE,
593 D3D10_NAME_CULL_DISTANCE,
594 D3D10_NAME_RENDER_TARGET_ARRAY_INDEX,
595 D3D10_NAME_VIEWPORT_ARRAY_INDEX,
596 D3D10_NAME_VERTEX_ID,
597 D3D10_NAME_PRIMITIVE_ID,
598 D3D10_NAME_INSTANCE_ID,
599 D3D10_NAME_IS_FRONT_FACE,
600 D3D10_NAME_SAMPLE_INDEX,
601
602 D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
603 D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
604 D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR,
605 D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
606 D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
607 D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
608
609 D3D10_NAME_TARGET = 64,
610 D3D10_NAME_DEPTH ,
611 D3D10_NAME_COVERAGE,
612
613 D3D11_NAME_DEPTH_GREATER_EQUAL,
614 D3D11_NAME_DEPTH_LESS_EQUAL,
615 } D3D_NAME;
616
617 typedef enum D3D_RESOURCE_RETURN_TYPE
618 {
619 D3D_RETURN_TYPE_UNORM = 1,
620 D3D_RETURN_TYPE_SNORM,
621 D3D_RETURN_TYPE_SINT,
622 D3D_RETURN_TYPE_UINT,
623 D3D_RETURN_TYPE_FLOAT,
624 D3D_RETURN_TYPE_MIXED,
625 D3D_RETURN_TYPE_DOUBLE,
626 D3D_RETURN_TYPE_CONTINUED,
627
628 D3D10_RETURN_TYPE_UNORM = 1,
629 D3D10_RETURN_TYPE_SNORM,
630 D3D10_RETURN_TYPE_SINT,
631 D3D10_RETURN_TYPE_UINT,
632 D3D10_RETURN_TYPE_FLOAT,
633 D3D10_RETURN_TYPE_MIXED,
634
635 D3D11_RETURN_TYPE_UNORM = 1,
636 D3D11_RETURN_TYPE_SNORM,
637 D3D11_RETURN_TYPE_SINT,
638 D3D11_RETURN_TYPE_UINT,
639 D3D11_RETURN_TYPE_FLOAT,
640 D3D11_RETURN_TYPE_MIXED,
641 D3D11_RETURN_TYPE_DOUBLE,
642 D3D11_RETURN_TYPE_CONTINUED,
643 } D3D_RESOURCE_RETURN_TYPE;
644
645 typedef enum D3D_REGISTER_COMPONENT_TYPE
646 {
647 D3D_REGISTER_COMPONENT_UNKNOWN = 0,
648 D3D_REGISTER_COMPONENT_UINT32,
649 D3D_REGISTER_COMPONENT_SINT32,
650 D3D_REGISTER_COMPONENT_FLOAT32,
651
652 D3D10_REGISTER_COMPONENT_UNKNOWN = 0,
653 D3D10_REGISTER_COMPONENT_UINT32,
654 D3D10_REGISTER_COMPONENT_SINT32,
655 D3D10_REGISTER_COMPONENT_FLOAT32,
656 } D3D_REGISTER_COMPONENT_TYPE;
657
658 typedef enum D3D_TESSELLATOR_DOMAIN
659 {
660 D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
661 D3D_TESSELLATOR_DOMAIN_ISOLINE,
662 D3D_TESSELLATOR_DOMAIN_TRI,
663 D3D_TESSELLATOR_DOMAIN_QUAD,
664
665 D3D11_TESSELLATOR_DOMAIN_UNDEFINED = 0,
666 D3D11_TESSELLATOR_DOMAIN_ISOLINE,
667 D3D11_TESSELLATOR_DOMAIN_TRI,
668 D3D11_TESSELLATOR_DOMAIN_QUAD,
669 } D3D_TESSELLATOR_DOMAIN;
670
671 typedef enum D3D_TESSELLATOR_PARTITIONING
672 {
673 D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
674 D3D_TESSELLATOR_PARTITIONING_INTEGER,
675 D3D_TESSELLATOR_PARTITIONING_POW2,
676 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
677 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN,
678
679 D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
680 D3D11_TESSELLATOR_PARTITIONING_INTEGER,
681 D3D11_TESSELLATOR_PARTITIONING_POW2,
682 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
683 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN,
684 } D3D_TESSELLATOR_PARTITIONING;
685
686 typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
687 {
688 D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
689 D3D_TESSELLATOR_OUTPUT_POINT,
690 D3D_TESSELLATOR_OUTPUT_LINE,
691 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
692 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW,
693
694 D3D11_TESSELLATOR_OUTPUT_UNDEFINED = 0,
695 D3D11_TESSELLATOR_OUTPUT_POINT,
696 D3D11_TESSELLATOR_OUTPUT_LINE,
697 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW,
698 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW,
699 } D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
700