aboutsummaryrefslogtreecommitdiff
path: root/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3dcommon.idl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3dcommon.idl')
-rw-r--r--contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3dcommon.idl991
1 files changed, 991 insertions, 0 deletions
diff --git a/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3dcommon.idl b/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3dcommon.idl
new file mode 100644
index 0000000..bfa375d
--- /dev/null
+++ b/contrib/microsoft.direct3d.d3d12.1.618.4/build/native/include/d3dcommon.idl
@@ -0,0 +1,991 @@
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 * Licensed under the MIT license
5 *
6 *-------------------------------------------------------------------------------------*/
7import "oaidl.idl";
8import "ocidl.idl";
9
10//----------------------------------------------------------------------------
11//
12// D3D-version-neutral runtime information.
13//
14//----------------------------------------------------------------------------
15
16typedef enum D3D_DRIVER_TYPE
17{
18 D3D_DRIVER_TYPE_UNKNOWN,
19 D3D_DRIVER_TYPE_HARDWARE,
20 D3D_DRIVER_TYPE_REFERENCE,
21 D3D_DRIVER_TYPE_NULL,
22 D3D_DRIVER_TYPE_SOFTWARE,
23 D3D_DRIVER_TYPE_WARP,
24} D3D_DRIVER_TYPE;
25
26typedef enum D3D_FEATURE_LEVEL
27{
28 D3D_FEATURE_LEVEL_1_0_GENERIC = 0x100,
29 D3D_FEATURE_LEVEL_1_0_CORE = 0x1000,
30 D3D_FEATURE_LEVEL_9_1 = 0x9100,
31 D3D_FEATURE_LEVEL_9_2 = 0x9200,
32 D3D_FEATURE_LEVEL_9_3 = 0x9300,
33 D3D_FEATURE_LEVEL_10_0 = 0xa000,
34 D3D_FEATURE_LEVEL_10_1 = 0xa100,
35 D3D_FEATURE_LEVEL_11_0 = 0xb000,
36 D3D_FEATURE_LEVEL_11_1 = 0xb100,
37 D3D_FEATURE_LEVEL_12_0 = 0xc000,
38 D3D_FEATURE_LEVEL_12_1 = 0xc100,
39 D3D_FEATURE_LEVEL_12_2 = 0xc200
40} D3D_FEATURE_LEVEL;
41
42cpp_quote("#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048")
43cpp_quote("#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096")
44cpp_quote("#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048")
45cpp_quote("#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096")
46cpp_quote("#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512")
47cpp_quote("#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096")
48cpp_quote("#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256")
49cpp_quote("#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2")
50cpp_quote("#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535")
51cpp_quote("#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575")
52cpp_quote("#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1")
53cpp_quote("#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4")
54cpp_quote("#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128")
55cpp_quote("#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048")
56cpp_quote("#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192")
57
58typedef enum D3D_PRIMITIVE_TOPOLOGY
59{
60 D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
61 D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
62 D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2,
63 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
64 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
65 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
66 D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6,
67 // Adjacency values should be equal to (0x8 & non-adjacency):
68 D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
69 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
70 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
71 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
72 D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33,
73 D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34,
74 D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35,
75 D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36,
76 D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37,
77 D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38,
78 D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39,
79 D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40,
80 D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41,
81 D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42,
82 D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43,
83 D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44,
84 D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45,
85 D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46,
86 D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47,
87 D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48,
88 D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49,
89 D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50,
90 D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51,
91 D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52,
92 D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53,
93 D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54,
94 D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55,
95 D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56,
96 D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57,
97 D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58,
98 D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59,
99 D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60,
100 D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61,
101 D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62,
102 D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63,
103 D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64,
104
105 D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
106 D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
107 D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
108 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
109 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
110 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
111 D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
112 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
113 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
114 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
115
116 D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED,
117 D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST,
118 D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST,
119 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP,
120 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
121 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
122 D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
123 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
124 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
125 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
126 D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
127 D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
128 D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
129 D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
130 D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
131 D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
132 D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
133 D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
134 D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
135 D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
136 D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
137 D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
138 D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
139 D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
140 D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
141 D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
142 D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
143 D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
144 D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
145 D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
146 D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
147 D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
148 D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
149 D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
150 D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
151 D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
152 D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
153 D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
154 D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
155 D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
156 D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
157 D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST
158} D3D_PRIMITIVE_TOPOLOGY;
159
160typedef enum D3D_PRIMITIVE
161{
162 D3D_PRIMITIVE_UNDEFINED = 0,
163 D3D_PRIMITIVE_POINT = 1,
164 D3D_PRIMITIVE_LINE = 2,
165 D3D_PRIMITIVE_TRIANGLE = 3,
166 // Adjacency values should be equal to (0x4 & non-adjacency):
167 D3D_PRIMITIVE_LINE_ADJ = 6,
168 D3D_PRIMITIVE_TRIANGLE_ADJ = 7,
169 D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
170 D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
171 D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
172 D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
173 D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
174 D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
175 D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
176 D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
177 D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
178 D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
179 D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
180 D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
181 D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
182 D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
183 D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
184 D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
185 D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
186 D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
187 D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
188 D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
189 D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
190 D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
191 D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
192 D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
193 D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
194 D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
195 D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
196 D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
197 D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
198 D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
199 D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
200 D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
201
202 D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
203 D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
204 D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
205 D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
206 D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
207 D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
208
209 D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED,
210 D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT,
211 D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE,
212 D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE,
213 D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ,
214 D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ,
215 D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH,
216 D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH,
217 D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH,
218 D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH,
219 D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH,
220 D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH,
221 D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH,
222 D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH,
223 D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH,
224 D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH,
225 D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH,
226 D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH,
227 D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH,
228 D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH,
229 D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH,
230 D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH,
231 D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH,
232 D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH,
233 D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH,
234 D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH,
235 D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH,
236 D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH,
237 D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH,
238 D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH,
239 D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH,
240 D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH,
241 D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH,
242 D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH,
243 D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH,
244 D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH,
245 D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH,
246 D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH,
247} D3D_PRIMITIVE;
248
249typedef enum D3D_SRV_DIMENSION
250{
251 D3D_SRV_DIMENSION_UNKNOWN = 0,
252 D3D_SRV_DIMENSION_BUFFER = 1,
253 D3D_SRV_DIMENSION_TEXTURE1D = 2,
254 D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3,
255 D3D_SRV_DIMENSION_TEXTURE2D = 4,
256 D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5,
257 D3D_SRV_DIMENSION_TEXTURE2DMS = 6,
258 D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
259 D3D_SRV_DIMENSION_TEXTURE3D = 8,
260 D3D_SRV_DIMENSION_TEXTURECUBE = 9,
261 D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
262 D3D_SRV_DIMENSION_BUFFEREX = 11,
263
264 D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
265 D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
266 D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
267 D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
268 D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
269 D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
270 D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
271 D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
272 D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
273 D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
274
275 D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
276 D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
277 D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
278 D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
279 D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
280 D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
281 D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
282 D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
283 D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
284 D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
285 D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
286
287 D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN,
288 D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER,
289 D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D,
290 D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY,
291 D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D,
292 D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY,
293 D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS,
294 D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY,
295 D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D,
296 D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE,
297 D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY,
298 D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX,
299} D3D_SRV_DIMENSION;
300
301// Bits in shaders indicating features they use which the runtime checks against current device support:
302cpp_quote("#define D3D_SHADER_FEATURE_DOUBLES 0x00001")
303cpp_quote("#define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002")
304cpp_quote("#define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004")
305cpp_quote("#define D3D_SHADER_FEATURE_64_UAVS 0x00008")
306cpp_quote("#define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010")
307cpp_quote("#define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020")
308cpp_quote("#define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040")
309cpp_quote("#define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080")
310cpp_quote("#define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100")
311cpp_quote("#define D3D_SHADER_FEATURE_STENCIL_REF 0x00200")
312cpp_quote("#define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400")
313cpp_quote("#define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800")
314cpp_quote("#define D3D_SHADER_FEATURE_ROVS 0x01000")
315cpp_quote("#define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000")
316cpp_quote("#define D3D_SHADER_FEATURE_WAVE_OPS 0x04000")
317cpp_quote("#define D3D_SHADER_FEATURE_INT64_OPS 0x08000")
318cpp_quote("#define D3D_SHADER_FEATURE_VIEW_ID 0x10000")
319cpp_quote("#define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000")
320cpp_quote("#define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000")
321cpp_quote("#define D3D_SHADER_FEATURE_SHADING_RATE 0x80000")
322cpp_quote("#define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000")
323cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000")
324cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000")
325cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000")
326cpp_quote("#define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000")
327cpp_quote("#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000")
328cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000")
329cpp_quote("#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000")
330cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000")
331cpp_quote("#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000")
332cpp_quote("#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000")
333cpp_quote("#define D3D_SHADER_FEATURE_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000")
334cpp_quote("#define D3D_SHADER_FEATURE_EXTENDED_COMMAND_INFO 0x100000000ull")
335
336// This section is for flags that do not directly indicate a required feature,
337// but are used to indicate something about the shader.
338
339// Flag for any derivative use. This allows call-graph validation
340// in the runtime to detect misuse of derivatives for an entry point that cannot
341// support it, or to determine when the flag
342// D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS is required.
343cpp_quote("#define D3D_OPT_SHADER_FEATURE_USES_DERIVATIVES 0x0000010000000000ull")
344
345cpp_quote("#define D3D_OPT_SHADER_FEATURE_REQUIRES_GROUP 0x0000020000000000ull")
346
347
348// Additional internal shader feature flags are listed in dxbcutils.h (not relevant/useful for public to see)
349// When adding entries here, make sure they don't conflict with what's there.
350
351//----------------------------------------------------------------------------
352//
353// Shader compilation information.
354//
355//----------------------------------------------------------------------------
356
357//----------------------------------------------------------------------------
358// D3D_SHADER_MACRO:
359// ----------
360// Preprocessor macro definition. The application pass in a NULL-terminated
361// array of this structure to various D3D APIs. This enables the application
362// to #define tokens at runtime, before the file is parsed.
363//----------------------------------------------------------------------------
364
365typedef struct _D3D_SHADER_MACRO
366{
367 LPCSTR Name;
368 LPCSTR Definition;
369} D3D_SHADER_MACRO, *LPD3D_SHADER_MACRO;
370
371//----------------------------------------------------------------------------
372// ID3DBlob:
373// ------------
374// The buffer object is used by D3D to return arbitrary size data.
375// For compatibility with D3D10 this interface is also called ID3D10Blob,
376// but the version-neutral form is preferred.
377//
378// GetBufferPointer -
379// Returns a pointer to the beginning of the buffer.
380//
381// GetBufferSize -
382// Returns the size of the buffer, in bytes.
383//----------------------------------------------------------------------------
384
385// {8BA5FB08-5195-40e2-AC58-0D989C3A0102}
386cpp_quote("DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);")
387
388[ uuid( 8BA5FB08-5195-40e2-AC58-0D989C3A0102 ), object, local, pointer_default( unique ) ]
389interface ID3D10Blob : IUnknown
390{
391 LPVOID GetBufferPointer();
392 SIZE_T GetBufferSize();
393};
394
395cpp_quote("typedef interface ID3D10Blob* LPD3D10BLOB;")
396
397typedef ID3D10Blob ID3DBlob;
398cpp_quote("typedef ID3DBlob* LPD3DBLOB;")
399cpp_quote("#define IID_ID3DBlob IID_ID3D10Blob")
400
401// ID3DDestructionNotifier: An interface to QI for, to set a callback which is triggered when the object is fully destroyed
402typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void* pData);
403
404[uuid(a06eb39a-50da-425b-8c31-4eecd6c270f3), object, local, pointer_default(unique)]
405interface ID3DDestructionNotifier
406 : IUnknown
407{
408 HRESULT RegisterDestructionCallback(
409 [annotation("_In_")] PFN_DESTRUCTION_CALLBACK callbackFn,
410 [annotation("_In_")] void* pData,
411 [annotation("_Out_")] UINT* pCallbackID
412 );
413 HRESULT UnregisterDestructionCallback(
414 [annotation("_In_")] UINT callbackID
415 );
416};
417
418typedef enum _D3D_INCLUDE_TYPE
419{
420 D3D_INCLUDE_LOCAL,
421 D3D_INCLUDE_SYSTEM,
422
423 D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL,
424 D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM,
425
426 // force 32-bit size enum
427 D3D_INCLUDE_FORCE_DWORD = 0x7fffffff
428} D3D_INCLUDE_TYPE;
429
430//----------------------------------------------------------------------------
431// ID3DInclude:
432// -------------
433// This interface is intended to be implemented by the application, and can
434// be used by various D3D APIs. This enables application-specific handling
435// of #include directives in source files.
436//
437// Open()
438// Opens an include file. If successful, it should fill in ppData and
439// pBytes. The data pointer returned must remain valid until Close is
440// subsequently called. The name of the file is encoded in UTF-8 format.
441// Close()
442// Closes an include file. If Open was successful, Close is guaranteed
443// to be called before the API using this interface returns.
444//----------------------------------------------------------------------------
445
446cpp_quote("typedef interface ID3DInclude ID3DInclude;")
447
448cpp_quote("#undef INTERFACE")
449cpp_quote("#define INTERFACE ID3DInclude")
450
451cpp_quote("DECLARE_INTERFACE(ID3DInclude)")
452cpp_quote("{")
453cpp_quote(" STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;")
454cpp_quote(" STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;")
455cpp_quote("};")
456
457cpp_quote("typedef ID3DInclude* LPD3DINCLUDE;")
458
459//----------------------------------------------------------------------------
460//
461// Shader reflection information.
462//
463//----------------------------------------------------------------------------
464
465typedef enum _D3D_SHADER_VARIABLE_CLASS
466{
467 D3D_SVC_SCALAR,
468 D3D_SVC_VECTOR,
469 D3D_SVC_MATRIX_ROWS,
470 D3D_SVC_MATRIX_COLUMNS,
471 D3D_SVC_OBJECT,
472 D3D_SVC_STRUCT,
473 D3D_SVC_INTERFACE_CLASS,
474 D3D_SVC_INTERFACE_POINTER,
475
476 D3D10_SVC_SCALAR = D3D_SVC_SCALAR,
477 D3D10_SVC_VECTOR = D3D_SVC_VECTOR,
478 D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS,
479 D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS,
480 D3D10_SVC_OBJECT = D3D_SVC_OBJECT,
481 D3D10_SVC_STRUCT = D3D_SVC_STRUCT,
482
483 D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS,
484 D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER,
485
486 // force 32-bit size enum
487 D3D_SVC_FORCE_DWORD = 0x7fffffff
488} D3D_SHADER_VARIABLE_CLASS;
489
490typedef enum _D3D_SHADER_VARIABLE_FLAGS
491{
492 D3D_SVF_USERPACKED = 1,
493 D3D_SVF_USED = 2,
494
495 D3D_SVF_INTERFACE_POINTER = 4,
496 D3D_SVF_INTERFACE_PARAMETER = 8,
497
498 D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED,
499 D3D10_SVF_USED = D3D_SVF_USED,
500
501 D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER,
502 D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER,
503
504 // force 32-bit size enum
505 D3D_SVF_FORCE_DWORD = 0x7fffffff
506} D3D_SHADER_VARIABLE_FLAGS;
507
508typedef enum _D3D_SHADER_VARIABLE_TYPE
509{
510 D3D_SVT_VOID = 0,
511 D3D_SVT_BOOL = 1,
512 D3D_SVT_INT = 2,
513 D3D_SVT_FLOAT = 3,
514 D3D_SVT_STRING = 4,
515 D3D_SVT_TEXTURE = 5,
516 D3D_SVT_TEXTURE1D = 6,
517 D3D_SVT_TEXTURE2D = 7,
518 D3D_SVT_TEXTURE3D = 8,
519 D3D_SVT_TEXTURECUBE = 9,
520 D3D_SVT_SAMPLER = 10,
521 D3D_SVT_SAMPLER1D = 11,
522 D3D_SVT_SAMPLER2D = 12,
523 D3D_SVT_SAMPLER3D = 13,
524 D3D_SVT_SAMPLERCUBE = 14,
525 D3D_SVT_PIXELSHADER = 15,
526 D3D_SVT_VERTEXSHADER = 16,
527 D3D_SVT_PIXELFRAGMENT = 17,
528 D3D_SVT_VERTEXFRAGMENT = 18,
529 D3D_SVT_UINT = 19,
530 D3D_SVT_UINT8 = 20,
531 D3D_SVT_GEOMETRYSHADER = 21,
532 D3D_SVT_RASTERIZER = 22,
533 D3D_SVT_DEPTHSTENCIL = 23,
534 D3D_SVT_BLEND = 24,
535 D3D_SVT_BUFFER = 25,
536 D3D_SVT_CBUFFER = 26,
537 D3D_SVT_TBUFFER = 27,
538 D3D_SVT_TEXTURE1DARRAY = 28,
539 D3D_SVT_TEXTURE2DARRAY = 29,
540 D3D_SVT_RENDERTARGETVIEW = 30,
541 D3D_SVT_DEPTHSTENCILVIEW = 31,
542
543 D3D_SVT_TEXTURE2DMS = 32,
544 D3D_SVT_TEXTURE2DMSARRAY = 33,
545
546 D3D_SVT_TEXTURECUBEARRAY = 34,
547
548 D3D_SVT_HULLSHADER = 35,
549 D3D_SVT_DOMAINSHADER = 36,
550
551 D3D_SVT_INTERFACE_POINTER = 37,
552 D3D_SVT_COMPUTESHADER = 38,
553
554 D3D_SVT_DOUBLE = 39,
555
556 D3D_SVT_RWTEXTURE1D = 40,
557 D3D_SVT_RWTEXTURE1DARRAY = 41,
558 D3D_SVT_RWTEXTURE2D = 42,
559 D3D_SVT_RWTEXTURE2DARRAY = 43,
560 D3D_SVT_RWTEXTURE3D = 44,
561 D3D_SVT_RWBUFFER = 45,
562
563 D3D_SVT_BYTEADDRESS_BUFFER = 46,
564 D3D_SVT_RWBYTEADDRESS_BUFFER = 47,
565 D3D_SVT_STRUCTURED_BUFFER = 48,
566 D3D_SVT_RWSTRUCTURED_BUFFER = 49,
567 D3D_SVT_APPEND_STRUCTURED_BUFFER = 50,
568 D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51,
569
570 D3D_SVT_MIN8FLOAT = 52,
571 D3D_SVT_MIN10FLOAT = 53,
572 D3D_SVT_MIN16FLOAT = 54,
573 D3D_SVT_MIN12INT = 55,
574 D3D_SVT_MIN16INT = 56,
575 D3D_SVT_MIN16UINT = 57,
576
577 D3D_SVT_INT16 = 58,
578 D3D_SVT_UINT16 = 59,
579 D3D_SVT_FLOAT16 = 60,
580 D3D_SVT_INT64 = 61,
581 D3D_SVT_UINT64 = 62,
582
583 D3D10_SVT_VOID = D3D_SVT_VOID,
584 D3D10_SVT_BOOL = D3D_SVT_BOOL,
585 D3D10_SVT_INT = D3D_SVT_INT,
586 D3D10_SVT_FLOAT = D3D_SVT_FLOAT,
587 D3D10_SVT_STRING = D3D_SVT_STRING,
588 D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE,
589 D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D,
590 D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D,
591 D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D,
592 D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE,
593 D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER,
594 D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D,
595 D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D,
596 D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D,
597 D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE,
598 D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER,
599 D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER,
600 D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT,
601 D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT,
602 D3D10_SVT_UINT = D3D_SVT_UINT,
603 D3D10_SVT_UINT8 = D3D_SVT_UINT8,
604 D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER,
605 D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER,
606 D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL,
607 D3D10_SVT_BLEND = D3D_SVT_BLEND,
608 D3D10_SVT_BUFFER = D3D_SVT_BUFFER,
609 D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER,
610 D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER,
611 D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY,
612 D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY,
613 D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW,
614 D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW,
615
616 D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS,
617 D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY,
618
619 D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY,
620
621 D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER,
622 D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER,
623
624 D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER,
625 D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER,
626
627 D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE,
628
629 D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D,
630 D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY,
631 D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D,
632 D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY,
633 D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D,
634 D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER,
635
636 D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER,
637 D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER,
638 D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER,
639 D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER,
640 D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER,
641 D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER,
642
643 // force 32-bit size enum
644 D3D_SVT_FORCE_DWORD = 0x7fffffff
645} D3D_SHADER_VARIABLE_TYPE;
646
647typedef enum _D3D_SHADER_INPUT_FLAGS
648{
649 D3D_SIF_USERPACKED = 0x01,
650 D3D_SIF_COMPARISON_SAMPLER = 0x02, // is this a comparison sampler?
651 D3D_SIF_TEXTURE_COMPONENT_0 = 0x04, // this 2-bit value encodes c - 1, where c
652 D3D_SIF_TEXTURE_COMPONENT_1 = 0x08, // is the number of components in the texture
653 D3D_SIF_TEXTURE_COMPONENTS = 0x0c,
654 D3D_SIF_UNUSED = 0x10,
655
656 D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED,
657 D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER,
658 D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0,
659 D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1,
660 D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS,
661
662 // force 32-bit size enum
663 D3D_SIF_FORCE_DWORD = 0x7fffffff
664} D3D_SHADER_INPUT_FLAGS;
665
666typedef enum _D3D_SHADER_INPUT_TYPE
667{
668 D3D_SIT_CBUFFER,
669 D3D_SIT_TBUFFER,
670 D3D_SIT_TEXTURE,
671 D3D_SIT_SAMPLER,
672 D3D_SIT_UAV_RWTYPED,
673 D3D_SIT_STRUCTURED,
674 D3D_SIT_UAV_RWSTRUCTURED,
675 D3D_SIT_BYTEADDRESS,
676 D3D_SIT_UAV_RWBYTEADDRESS,
677 D3D_SIT_UAV_APPEND_STRUCTURED,
678 D3D_SIT_UAV_CONSUME_STRUCTURED,
679 D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
680 D3D_SIT_RTACCELERATIONSTRUCTURE,
681 D3D_SIT_UAV_FEEDBACKTEXTURE,
682
683 D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER,
684 D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER,
685 D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE,
686 D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER,
687
688 D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED,
689 D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED,
690 D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED,
691 D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS,
692 D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS,
693 D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED,
694 D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED,
695 D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
696} D3D_SHADER_INPUT_TYPE;
697
698typedef enum _D3D_SHADER_CBUFFER_FLAGS
699{
700 D3D_CBF_USERPACKED = 1,
701
702 D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED,
703
704 // force 32-bit size enum
705 D3D_CBF_FORCE_DWORD = 0x7fffffff
706} D3D_SHADER_CBUFFER_FLAGS;
707
708typedef enum _D3D_CBUFFER_TYPE
709{
710 D3D_CT_CBUFFER,
711 D3D_CT_TBUFFER,
712 D3D_CT_INTERFACE_POINTERS,
713 D3D_CT_RESOURCE_BIND_INFO,
714
715 D3D10_CT_CBUFFER = D3D_CT_CBUFFER,
716 D3D10_CT_TBUFFER = D3D_CT_TBUFFER,
717
718 D3D11_CT_CBUFFER = D3D_CT_CBUFFER,
719 D3D11_CT_TBUFFER = D3D_CT_TBUFFER,
720 D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS,
721 D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO,
722} D3D_CBUFFER_TYPE;
723
724typedef enum D3D_NAME
725{
726 D3D_NAME_UNDEFINED = 0,
727
728 // Names meaningful to both HLSL and hardware
729 D3D_NAME_POSITION = 1,
730 D3D_NAME_CLIP_DISTANCE = 2,
731 D3D_NAME_CULL_DISTANCE = 3,
732 D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
733 D3D_NAME_VIEWPORT_ARRAY_INDEX = 5,
734 D3D_NAME_VERTEX_ID = 6,
735 D3D_NAME_PRIMITIVE_ID = 7,
736 D3D_NAME_INSTANCE_ID = 8,
737 D3D_NAME_IS_FRONT_FACE = 9,
738 D3D_NAME_SAMPLE_INDEX = 10,
739 D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11,
740 D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12,
741 D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13,
742 D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14,
743 D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15,
744 D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16,
745 D3D_NAME_BARYCENTRICS = 23,
746 D3D_NAME_SHADINGRATE = 24,
747 D3D_NAME_CULLPRIMITIVE = 25,
748
749 // Names meaningful to HLSL only
750 D3D_NAME_TARGET = 64,
751 D3D_NAME_DEPTH = 65,
752 D3D_NAME_COVERAGE = 66,
753 D3D_NAME_DEPTH_GREATER_EQUAL = 67,
754 D3D_NAME_DEPTH_LESS_EQUAL = 68,
755 D3D_NAME_STENCIL_REF = 69,
756 D3D_NAME_INNER_COVERAGE = 70,
757
758 D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED,
759 D3D10_NAME_POSITION = D3D_NAME_POSITION,
760 D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE,
761 D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE,
762 D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX,
763 D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX,
764 D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID,
765 D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID,
766 D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID,
767 D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE,
768 D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX,
769 D3D10_NAME_TARGET = D3D_NAME_TARGET,
770 D3D10_NAME_DEPTH = D3D_NAME_DEPTH,
771 D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE,
772
773 D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
774 D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
775 D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR,
776 D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
777 D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
778 D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR,
779 D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL,
780 D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL,
781
782 D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF,
783 D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE,
784
785 D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS,
786 D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE,
787 D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE,
788} D3D_NAME;
789
790typedef enum D3D_RESOURCE_RETURN_TYPE
791{
792 D3D_RETURN_TYPE_UNORM = 1,
793 D3D_RETURN_TYPE_SNORM = 2,
794 D3D_RETURN_TYPE_SINT = 3,
795 D3D_RETURN_TYPE_UINT = 4,
796 D3D_RETURN_TYPE_FLOAT = 5,
797 D3D_RETURN_TYPE_MIXED = 6,
798 D3D_RETURN_TYPE_DOUBLE = 7,
799 D3D_RETURN_TYPE_CONTINUED = 8,
800
801 D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
802 D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
803 D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
804 D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
805 D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
806 D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
807
808 D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM,
809 D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM,
810 D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT,
811 D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT,
812 D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT,
813 D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED,
814 D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE,
815 D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED,
816} D3D_RESOURCE_RETURN_TYPE;
817
818typedef enum D3D_REGISTER_COMPONENT_TYPE
819{
820 D3D_REGISTER_COMPONENT_UNKNOWN = 0,
821 D3D_REGISTER_COMPONENT_UINT32 = 1,
822 D3D_REGISTER_COMPONENT_SINT32 = 2,
823 D3D_REGISTER_COMPONENT_FLOAT32 = 3,
824 D3D_REGISTER_COMPONENT_UINT16 = 4,
825 D3D_REGISTER_COMPONENT_SINT16 = 5,
826 D3D_REGISTER_COMPONENT_FLOAT16 = 6,
827 D3D_REGISTER_COMPONENT_UINT64 = 7,
828 D3D_REGISTER_COMPONENT_SINT64 = 8,
829 D3D_REGISTER_COMPONENT_FLOAT64 = 9,
830
831 D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN,
832 D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32,
833 D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32,
834 D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32,
835 D3D10_REGISTER_COMPONENT_UINT16 = D3D_REGISTER_COMPONENT_UINT16,
836 D3D10_REGISTER_COMPONENT_SINT16 = D3D_REGISTER_COMPONENT_SINT16,
837 D3D10_REGISTER_COMPONENT_FLOAT16 = D3D_REGISTER_COMPONENT_FLOAT16,
838 D3D10_REGISTER_COMPONENT_UINT64 = D3D_REGISTER_COMPONENT_UINT64,
839 D3D10_REGISTER_COMPONENT_SINT64 = D3D_REGISTER_COMPONENT_SINT64,
840 D3D10_REGISTER_COMPONENT_FLOAT64 = D3D_REGISTER_COMPONENT_FLOAT64,
841} D3D_REGISTER_COMPONENT_TYPE;
842
843typedef enum D3D_TESSELLATOR_DOMAIN
844{
845 D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0,
846 D3D_TESSELLATOR_DOMAIN_ISOLINE = 1,
847 D3D_TESSELLATOR_DOMAIN_TRI = 2,
848 D3D_TESSELLATOR_DOMAIN_QUAD = 3,
849
850 D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED,
851 D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE,
852 D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI,
853 D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD,
854} D3D_TESSELLATOR_DOMAIN;
855
856typedef enum D3D_TESSELLATOR_PARTITIONING
857{
858 D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
859 D3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
860 D3D_TESSELLATOR_PARTITIONING_POW2 = 2,
861 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
862 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
863
864 D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED,
865 D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER,
866 D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2,
867 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
868 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN,
869} D3D_TESSELLATOR_PARTITIONING;
870
871typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE
872{
873 D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0,
874 D3D_TESSELLATOR_OUTPUT_POINT = 1,
875 D3D_TESSELLATOR_OUTPUT_LINE = 2,
876 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
877 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
878
879 D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED,
880 D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT,
881 D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE,
882 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW,
883 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW,
884} D3D_TESSELLATOR_OUTPUT_PRIMITIVE;
885
886typedef enum D3D_MIN_PRECISION
887{
888 D3D_MIN_PRECISION_DEFAULT = 0, // Default precision for the shader model
889 D3D_MIN_PRECISION_FLOAT_16 = 1, // Min 16 bit/component float
890 D3D_MIN_PRECISION_FLOAT_2_8 = 2, // Min 10(2.8)bit/comp. float
891 D3D_MIN_PRECISION_RESERVED = 3, // Reserved for future use
892 D3D_MIN_PRECISION_SINT_16 = 4, // Min 16 bit/comp. signed integer
893 D3D_MIN_PRECISION_UINT_16 = 5, // Min 16 bit/comp. unsigned integer
894
895 // These values are abstractions of width only for use in situations
896 // where a general width is needed instead of specific types. They
897 // will never be used in shader operands.
898 D3D_MIN_PRECISION_ANY_16 = 0xf0,
899 D3D_MIN_PRECISION_ANY_10 = 0xf1,
900} D3D_MIN_PRECISION;
901
902typedef enum D3D_INTERPOLATION_MODE
903{
904 D3D_INTERPOLATION_UNDEFINED = 0,
905 D3D_INTERPOLATION_CONSTANT = 1,
906 D3D_INTERPOLATION_LINEAR = 2,
907 D3D_INTERPOLATION_LINEAR_CENTROID = 3,
908 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
909 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
910 D3D_INTERPOLATION_LINEAR_SAMPLE = 6,
911 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
912} D3D_INTERPOLATION_MODE;
913
914// Parameter flags.
915typedef enum _D3D_PARAMETER_FLAGS
916{
917 D3D_PF_NONE = 0x00000000,
918 D3D_PF_IN = 0x00000001,
919 D3D_PF_OUT = 0x00000002,
920 D3D_PF_FORCE_DWORD = 0x7fffffff
921} D3D_PARAMETER_FLAGS;
922
923// Format Layout Properties
924typedef enum D3D_FORMAT_LAYOUT
925{
926 D3DFL_STANDARD = 0, // standard layout
927 D3DFL_CUSTOM = -1 // custom layout
928 // Note, 1 bit allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
929 // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
930} D3D_FORMAT_LAYOUT;
931
932typedef enum D3D_FORMAT_TYPE_LEVEL
933{
934 D3DFTL_NO_TYPE = 0,
935 D3DFTL_PARTIAL_TYPE = -2,
936 D3DFTL_FULL_TYPE = -1,
937 // Note, 2 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
938 // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
939} D3D_FORMAT_TYPE_LEVEL;
940
941typedef enum D3D_FORMAT_COMPONENT_NAME
942{
943 D3DFCN_R = -4,
944 D3DFCN_G = -3,
945 D3DFCN_B = -2,
946 D3DFCN_A = -1,
947 D3DFCN_D = 0,
948 D3DFCN_S = 1,
949 D3DFCN_X = 2,
950 // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
951 // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
952} D3D_FORMAT_COMPONENT_NAME;
953
954typedef enum D3D_FORMAT_COMPONENT_INTERPRETATION
955{
956 D3DFCI_TYPELESS = 0,
957 D3DFCI_FLOAT = -4,
958 D3DFCI_SNORM = -3,
959 D3DFCI_UNORM = -2,
960 D3DFCI_SINT = -1,
961 D3DFCI_UINT = 1,
962 D3DFCI_UNORM_SRGB = 2,
963 D3DFCI_BIASED_FIXED_2_8 = 3,
964 // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits...
965 // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ
966} D3D_FORMAT_COMPONENT_INTERPRETATION;
967
968// Well-Known Private Data IDs (WKPDID_*):
969
970// WKPDID_D3DDebugObjectName provides a unique name to objects in order to assist the developer during debugging.
971//
972// const char c_szName[] = "texture.jpg";
973// pObject->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );
974cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);")
975cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41);")
976cpp_quote("DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2);")
977cpp_quote("DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1);")
978
979cpp_quote("#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName)")
980cpp_quote("#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName)")
981cpp_quote("#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName)")
982cpp_quote("#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName)")
983
984cpp_quote("#define D3D_COMPONENT_MASK_X 1")
985cpp_quote("#define D3D_COMPONENT_MASK_Y 2")
986cpp_quote("#define D3D_COMPONENT_MASK_Z 4")
987cpp_quote("#define D3D_COMPONENT_MASK_W 8")
988
989cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c);") // Feature_D3D1XDisplayable
990cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28);") // Feature_D3D1XDisplayable
991