1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 use shared::minwindef::{DWORD, UINT};
7 ENUM!{enum D3D10_SB_TOKENIZED_PROGRAM_TYPE {
8     D3D10_SB_PIXEL_SHADER = 0,
9     D3D10_SB_VERTEX_SHADER = 1,
10     D3D10_SB_GEOMETRY_SHADER = 2,
11     D3D11_SB_HULL_SHADER = 3,
12     D3D11_SB_DOMAIN_SHADER = 4,
13     D3D11_SB_COMPUTE_SHADER = 5,
14     D3D11_SB_RESERVED0 = 0xFFF0,
15 }}
16 pub const D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK: DWORD = 0xffff0000;
17 pub const D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT: DWORD = 16;
18 #[inline]
DECODE_D3D10_SB_TOKENIZED_PROGRAM_TYPE(VerTok: DWORD) -> DWORD19 pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_TYPE(VerTok: DWORD) -> DWORD {
20     ((VerTok & D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK) >> D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT)
21         as D3D10_SB_TOKENIZED_PROGRAM_TYPE
22 }
23 pub const D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK: DWORD = 0x000000f0;
24 pub const D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT: DWORD = 4;
25 pub const D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK: DWORD = 0x0000000f;
26 #[inline]
DECODE_D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION(VerTok: DWORD) -> DWORD27 pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION(VerTok: DWORD) -> DWORD {
28     (VerTok & D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK)
29         >> D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT
30 }
31 #[inline]
DECODE_D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION(VerTok: DWORD) -> DWORD32 pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION(VerTok: DWORD) -> DWORD {
33     VerTok & D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK
34 }
35 #[inline]
ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN( ProgType: DWORD, MajorVer: DWORD, MinorVer: DWORD, ) -> DWORD36 pub fn ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN(
37     ProgType: DWORD,
38     MajorVer: DWORD,
39     MinorVer: DWORD,
40 ) -> DWORD {
41     ((ProgType << D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT) & D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK)
42         | ((MajorVer << D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT)
43         & D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK)
44         | (MinorVer & D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK)
45 }
46 #[inline]
DECODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(LenTok: DWORD) -> DWORD47 pub fn DECODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(LenTok: DWORD) -> DWORD {
48     LenTok
49 }
50 #[inline]
ENCODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(Length: DWORD) -> DWORD51 pub fn ENCODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(Length: DWORD) -> DWORD {
52     Length
53 }
54 pub const MAX_D3D10_SB_TOKENIZED_PROGRAM_LENGTH: DWORD = 0xffffffff;
55 ENUM!{enum D3D10_SB_OPCODE_TYPE {
56     D3D10_SB_OPCODE_ADD = 0,
57     D3D10_SB_OPCODE_AND = 1,
58     D3D10_SB_OPCODE_BREAK = 2,
59     D3D10_SB_OPCODE_BREAKC = 3,
60     D3D10_SB_OPCODE_CALL = 4,
61     D3D10_SB_OPCODE_CALLC = 5,
62     D3D10_SB_OPCODE_CASE = 6,
63     D3D10_SB_OPCODE_CONTINUE = 7,
64     D3D10_SB_OPCODE_CONTINUEC = 8,
65     D3D10_SB_OPCODE_CUT = 9,
66     D3D10_SB_OPCODE_DEFAULT = 10,
67     D3D10_SB_OPCODE_DERIV_RTX = 11,
68     D3D10_SB_OPCODE_DERIV_RTY = 12,
69     D3D10_SB_OPCODE_DISCARD = 13,
70     D3D10_SB_OPCODE_DIV = 14,
71     D3D10_SB_OPCODE_DP2 = 15,
72     D3D10_SB_OPCODE_DP3 = 16,
73     D3D10_SB_OPCODE_DP4 = 17,
74     D3D10_SB_OPCODE_ELSE = 18,
75     D3D10_SB_OPCODE_EMIT = 19,
76     D3D10_SB_OPCODE_EMITTHENCUT = 20,
77     D3D10_SB_OPCODE_ENDIF = 21,
78     D3D10_SB_OPCODE_ENDLOOP = 22,
79     D3D10_SB_OPCODE_ENDSWITCH = 23,
80     D3D10_SB_OPCODE_EQ = 24,
81     D3D10_SB_OPCODE_EXP = 25,
82     D3D10_SB_OPCODE_FRC = 26,
83     D3D10_SB_OPCODE_FTOI = 27,
84     D3D10_SB_OPCODE_FTOU = 28,
85     D3D10_SB_OPCODE_GE = 29,
86     D3D10_SB_OPCODE_IADD = 30,
87     D3D10_SB_OPCODE_IF = 31,
88     D3D10_SB_OPCODE_IEQ = 32,
89     D3D10_SB_OPCODE_IGE = 33,
90     D3D10_SB_OPCODE_ILT = 34,
91     D3D10_SB_OPCODE_IMAD = 35,
92     D3D10_SB_OPCODE_IMAX = 36,
93     D3D10_SB_OPCODE_IMIN = 37,
94     D3D10_SB_OPCODE_IMUL = 38,
95     D3D10_SB_OPCODE_INE = 39,
96     D3D10_SB_OPCODE_INEG = 40,
97     D3D10_SB_OPCODE_ISHL = 41,
98     D3D10_SB_OPCODE_ISHR = 42,
99     D3D10_SB_OPCODE_ITOF = 43,
100     D3D10_SB_OPCODE_LABEL = 44,
101     D3D10_SB_OPCODE_LD = 45,
102     D3D10_SB_OPCODE_LD_MS = 46,
103     D3D10_SB_OPCODE_LOG = 47,
104     D3D10_SB_OPCODE_LOOP = 48,
105     D3D10_SB_OPCODE_LT = 49,
106     D3D10_SB_OPCODE_MAD = 50,
107     D3D10_SB_OPCODE_MIN = 51,
108     D3D10_SB_OPCODE_MAX = 52,
109     D3D10_SB_OPCODE_CUSTOMDATA = 53,
110     D3D10_SB_OPCODE_MOV = 54,
111     D3D10_SB_OPCODE_MOVC = 55,
112     D3D10_SB_OPCODE_MUL = 56,
113     D3D10_SB_OPCODE_NE = 57,
114     D3D10_SB_OPCODE_NOP = 58,
115     D3D10_SB_OPCODE_NOT = 59,
116     D3D10_SB_OPCODE_OR = 60,
117     D3D10_SB_OPCODE_RESINFO = 61,
118     D3D10_SB_OPCODE_RET = 62,
119     D3D10_SB_OPCODE_RETC = 63,
120     D3D10_SB_OPCODE_ROUND_NE = 64,
121     D3D10_SB_OPCODE_ROUND_NI = 65,
122     D3D10_SB_OPCODE_ROUND_PI = 66,
123     D3D10_SB_OPCODE_ROUND_Z = 67,
124     D3D10_SB_OPCODE_RSQ = 68,
125     D3D10_SB_OPCODE_SAMPLE = 69,
126     D3D10_SB_OPCODE_SAMPLE_C = 70,
127     D3D10_SB_OPCODE_SAMPLE_C_LZ = 71,
128     D3D10_SB_OPCODE_SAMPLE_L = 72,
129     D3D10_SB_OPCODE_SAMPLE_D = 73,
130     D3D10_SB_OPCODE_SAMPLE_B = 74,
131     D3D10_SB_OPCODE_SQRT = 75,
132     D3D10_SB_OPCODE_SWITCH = 76,
133     D3D10_SB_OPCODE_SINCOS = 77,
134     D3D10_SB_OPCODE_UDIV = 78,
135     D3D10_SB_OPCODE_ULT = 79,
136     D3D10_SB_OPCODE_UGE = 80,
137     D3D10_SB_OPCODE_UMUL = 81,
138     D3D10_SB_OPCODE_UMAD = 82,
139     D3D10_SB_OPCODE_UMAX = 83,
140     D3D10_SB_OPCODE_UMIN = 84,
141     D3D10_SB_OPCODE_USHR = 85,
142     D3D10_SB_OPCODE_UTOF = 86,
143     D3D10_SB_OPCODE_XOR = 87,
144     D3D10_SB_OPCODE_DCL_RESOURCE = 88,
145     D3D10_SB_OPCODE_DCL_CONSTANT_BUFFER = 89,
146     D3D10_SB_OPCODE_DCL_SAMPLER = 90,
147     D3D10_SB_OPCODE_DCL_INDEX_RANGE = 91,
148     D3D10_SB_OPCODE_DCL_GS_OUTPUT_PRIMITIVE_TOPOLOGY = 92,
149     D3D10_SB_OPCODE_DCL_GS_INPUT_PRIMITIVE = 93,
150     D3D10_SB_OPCODE_DCL_MAX_OUTPUT_VERTEX_COUNT = 94,
151     D3D10_SB_OPCODE_DCL_INPUT = 95,
152     D3D10_SB_OPCODE_DCL_INPUT_SGV = 96,
153     D3D10_SB_OPCODE_DCL_INPUT_SIV = 97,
154     D3D10_SB_OPCODE_DCL_INPUT_PS = 98,
155     D3D10_SB_OPCODE_DCL_INPUT_PS_SGV = 99,
156     D3D10_SB_OPCODE_DCL_INPUT_PS_SIV = 100,
157     D3D10_SB_OPCODE_DCL_OUTPUT = 101,
158     D3D10_SB_OPCODE_DCL_OUTPUT_SGV = 102,
159     D3D10_SB_OPCODE_DCL_OUTPUT_SIV = 103,
160     D3D10_SB_OPCODE_DCL_TEMPS = 104,
161     D3D10_SB_OPCODE_DCL_INDEXABLE_TEMP = 105,
162     D3D10_SB_OPCODE_DCL_GLOBAL_FLAGS = 106,
163     D3D10_SB_OPCODE_RESERVED0 = 107,
164     D3D10_1_SB_OPCODE_LOD = 108,
165     D3D10_1_SB_OPCODE_GATHER4 = 109,
166     D3D10_1_SB_OPCODE_SAMPLE_POS = 110,
167     D3D10_1_SB_OPCODE_SAMPLE_INFO = 111,
168     D3D10_1_SB_OPCODE_RESERVED1 = 112,
169     D3D11_SB_OPCODE_HS_DECLS = 113,
170     D3D11_SB_OPCODE_HS_CONTROL_POINT_PHASE = 114,
171     D3D11_SB_OPCODE_HS_FORK_PHASE = 115,
172     D3D11_SB_OPCODE_HS_JOIN_PHASE = 116,
173     D3D11_SB_OPCODE_EMIT_STREAM = 117,
174     D3D11_SB_OPCODE_CUT_STREAM = 118,
175     D3D11_SB_OPCODE_EMITTHENCUT_STREAM = 119,
176     D3D11_SB_OPCODE_INTERFACE_CALL = 120,
177     D3D11_SB_OPCODE_BUFINFO = 121,
178     D3D11_SB_OPCODE_DERIV_RTX_COARSE = 122,
179     D3D11_SB_OPCODE_DERIV_RTX_FINE = 123,
180     D3D11_SB_OPCODE_DERIV_RTY_COARSE = 124,
181     D3D11_SB_OPCODE_DERIV_RTY_FINE = 125,
182     D3D11_SB_OPCODE_GATHER4_C = 126,
183     D3D11_SB_OPCODE_GATHER4_PO = 127,
184     D3D11_SB_OPCODE_GATHER4_PO_C = 128,
185     D3D11_SB_OPCODE_RCP = 129,
186     D3D11_SB_OPCODE_F32TOF16 = 130,
187     D3D11_SB_OPCODE_F16TOF32 = 131,
188     D3D11_SB_OPCODE_UADDC = 132,
189     D3D11_SB_OPCODE_USUBB = 133,
190     D3D11_SB_OPCODE_COUNTBITS = 134,
191     D3D11_SB_OPCODE_FIRSTBIT_HI = 135,
192     D3D11_SB_OPCODE_FIRSTBIT_LO = 136,
193     D3D11_SB_OPCODE_FIRSTBIT_SHI = 137,
194     D3D11_SB_OPCODE_UBFE = 138,
195     D3D11_SB_OPCODE_IBFE = 139,
196     D3D11_SB_OPCODE_BFI = 140,
197     D3D11_SB_OPCODE_BFREV = 141,
198     D3D11_SB_OPCODE_SWAPC = 142,
199     D3D11_SB_OPCODE_DCL_STREAM = 143,
200     D3D11_SB_OPCODE_DCL_FUNCTION_BODY = 144,
201     D3D11_SB_OPCODE_DCL_FUNCTION_TABLE = 145,
202     D3D11_SB_OPCODE_DCL_INTERFACE = 146,
203     D3D11_SB_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT = 147,
204     D3D11_SB_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT = 148,
205     D3D11_SB_OPCODE_DCL_TESS_DOMAIN = 149,
206     D3D11_SB_OPCODE_DCL_TESS_PARTITIONING = 150,
207     D3D11_SB_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE = 151,
208     D3D11_SB_OPCODE_DCL_HS_MAX_TESSFACTOR = 152,
209     D3D11_SB_OPCODE_DCL_HS_FORK_PHASE_INSTANCE_COUNT = 153,
210     D3D11_SB_OPCODE_DCL_HS_JOIN_PHASE_INSTANCE_COUNT = 154,
211     D3D11_SB_OPCODE_DCL_THREAD_GROUP = 155,
212     D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_TYPED = 156,
213     D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_RAW = 157,
214     D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_STRUCTURED = 158,
215     D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_RAW = 159,
216     D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_STRUCTURED = 160,
217     D3D11_SB_OPCODE_DCL_RESOURCE_RAW = 161,
218     D3D11_SB_OPCODE_DCL_RESOURCE_STRUCTURED = 162,
219     D3D11_SB_OPCODE_LD_UAV_TYPED = 163,
220     D3D11_SB_OPCODE_STORE_UAV_TYPED = 164,
221     D3D11_SB_OPCODE_LD_RAW = 165,
222     D3D11_SB_OPCODE_STORE_RAW = 166,
223     D3D11_SB_OPCODE_LD_STRUCTURED = 167,
224     D3D11_SB_OPCODE_STORE_STRUCTURED = 168,
225     D3D11_SB_OPCODE_ATOMIC_AND = 169,
226     D3D11_SB_OPCODE_ATOMIC_OR = 170,
227     D3D11_SB_OPCODE_ATOMIC_XOR = 171,
228     D3D11_SB_OPCODE_ATOMIC_CMP_STORE = 172,
229     D3D11_SB_OPCODE_ATOMIC_IADD = 173,
230     D3D11_SB_OPCODE_ATOMIC_IMAX = 174,
231     D3D11_SB_OPCODE_ATOMIC_IMIN = 175,
232     D3D11_SB_OPCODE_ATOMIC_UMAX = 176,
233     D3D11_SB_OPCODE_ATOMIC_UMIN = 177,
234     D3D11_SB_OPCODE_IMM_ATOMIC_ALLOC = 178,
235     D3D11_SB_OPCODE_IMM_ATOMIC_CONSUME = 179,
236     D3D11_SB_OPCODE_IMM_ATOMIC_IADD = 180,
237     D3D11_SB_OPCODE_IMM_ATOMIC_AND = 181,
238     D3D11_SB_OPCODE_IMM_ATOMIC_OR = 182,
239     D3D11_SB_OPCODE_IMM_ATOMIC_XOR = 183,
240     D3D11_SB_OPCODE_IMM_ATOMIC_EXCH = 184,
241     D3D11_SB_OPCODE_IMM_ATOMIC_CMP_EXCH = 185,
242     D3D11_SB_OPCODE_IMM_ATOMIC_IMAX = 186,
243     D3D11_SB_OPCODE_IMM_ATOMIC_IMIN = 187,
244     D3D11_SB_OPCODE_IMM_ATOMIC_UMAX = 188,
245     D3D11_SB_OPCODE_IMM_ATOMIC_UMIN = 189,
246     D3D11_SB_OPCODE_SYNC = 190,
247     D3D11_SB_OPCODE_DADD = 191,
248     D3D11_SB_OPCODE_DMAX = 192,
249     D3D11_SB_OPCODE_DMIN = 193,
250     D3D11_SB_OPCODE_DMUL = 194,
251     D3D11_SB_OPCODE_DEQ = 195,
252     D3D11_SB_OPCODE_DGE = 196,
253     D3D11_SB_OPCODE_DLT = 197,
254     D3D11_SB_OPCODE_DNE = 198,
255     D3D11_SB_OPCODE_DMOV = 199,
256     D3D11_SB_OPCODE_DMOVC = 200,
257     D3D11_SB_OPCODE_DTOF = 201,
258     D3D11_SB_OPCODE_FTOD = 202,
259     D3D11_SB_OPCODE_EVAL_SNAPPED = 203,
260     D3D11_SB_OPCODE_EVAL_SAMPLE_INDEX = 204,
261     D3D11_SB_OPCODE_EVAL_CENTROID = 205,
262     D3D11_SB_OPCODE_DCL_GS_INSTANCE_COUNT = 206,
263     D3D11_SB_OPCODE_ABORT = 207,
264     D3D11_SB_OPCODE_DEBUG_BREAK = 208,
265     D3D11_SB_OPCODE_RESERVED0 = 209,
266     D3D11_1_SB_OPCODE_DDIV = 210,
267     D3D11_1_SB_OPCODE_DFMA = 211,
268     D3D11_1_SB_OPCODE_DRCP = 212,
269     D3D11_1_SB_OPCODE_MSAD = 213,
270     D3D11_1_SB_OPCODE_DTOI = 214,
271     D3D11_1_SB_OPCODE_DTOU = 215,
272     D3D11_1_SB_OPCODE_ITOD = 216,
273     D3D11_1_SB_OPCODE_UTOD = 217,
274     D3D11_1_SB_OPCODE_RESERVED0 = 218,
275     D3DWDDM1_3_SB_OPCODE_GATHER4_FEEDBACK = 219,
276     D3DWDDM1_3_SB_OPCODE_GATHER4_C_FEEDBACK = 220,
277     D3DWDDM1_3_SB_OPCODE_GATHER4_PO_FEEDBACK = 221,
278     D3DWDDM1_3_SB_OPCODE_GATHER4_PO_C_FEEDBACK = 222,
279     D3DWDDM1_3_SB_OPCODE_LD_FEEDBACK = 223,
280     D3DWDDM1_3_SB_OPCODE_LD_MS_FEEDBACK = 224,
281     D3DWDDM1_3_SB_OPCODE_LD_UAV_TYPED_FEEDBACK = 225,
282     D3DWDDM1_3_SB_OPCODE_LD_RAW_FEEDBACK = 226,
283     D3DWDDM1_3_SB_OPCODE_LD_STRUCTURED_FEEDBACK = 227,
284     D3DWDDM1_3_SB_OPCODE_SAMPLE_L_FEEDBACK = 228,
285     D3DWDDM1_3_SB_OPCODE_SAMPLE_C_LZ_FEEDBACK = 229,
286     D3DWDDM1_3_SB_OPCODE_SAMPLE_CLAMP_FEEDBACK = 230,
287     D3DWDDM1_3_SB_OPCODE_SAMPLE_B_CLAMP_FEEDBACK = 231,
288     D3DWDDM1_3_SB_OPCODE_SAMPLE_D_CLAMP_FEEDBACK = 232,
289     D3DWDDM1_3_SB_OPCODE_SAMPLE_C_CLAMP_FEEDBACK = 233,
290     D3DWDDM1_3_SB_OPCODE_CHECK_ACCESS_FULLY_MAPPED = 234,
291     D3DWDDM1_3_SB_OPCODE_RESERVED0 = 235,
292     D3D10_SB_NUM_OPCODES = 236,
293 }}
294 pub const D3D10_SB_OPCODE_TYPE_MASK: DWORD = 0x00007ff;
295 #[inline]
DECODE_D3D10_SB_OPCODE_TYPE(OpcodeToken0: DWORD) -> D3D10_SB_OPCODE_TYPE296 pub fn DECODE_D3D10_SB_OPCODE_TYPE(OpcodeToken0: DWORD) -> D3D10_SB_OPCODE_TYPE {
297     (OpcodeToken0 & D3D10_SB_OPCODE_TYPE_MASK) as D3D10_SB_OPCODE_TYPE
298 }
299 #[inline]
ENCODE_D3D10_SB_OPCODE_TYPE(OpcodeName: D3D10_SB_OPCODE_TYPE) -> DWORD300 pub fn ENCODE_D3D10_SB_OPCODE_TYPE(OpcodeName: D3D10_SB_OPCODE_TYPE) -> DWORD {
301     OpcodeName & D3D10_SB_OPCODE_TYPE_MASK
302 }
303 pub const D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK: DWORD = 0x7f000000;
304 pub const D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT: DWORD = 24;
305 #[inline]
DECODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(OpcodeToken0: DWORD) -> DWORD306 pub fn DECODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(OpcodeToken0: DWORD) -> DWORD {
307     (OpcodeToken0 & D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK)
308         >> D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT
309 }
310 #[inline]
ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(Length: DWORD) -> DWORD311 pub fn ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(Length: DWORD) -> DWORD {
312     (Length << D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT)
313         & D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK
314 }
315 pub const MAX_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH: DWORD = 127;
316 pub const D3D10_SB_INSTRUCTION_SATURATE_MASK: DWORD = 0x00002000;
317 #[inline]
DECODE_IS_D3D10_SB_INSTRUCTION_SATURATE_ENABLED(OpcodeToken0: DWORD) -> DWORD318 pub fn DECODE_IS_D3D10_SB_INSTRUCTION_SATURATE_ENABLED(OpcodeToken0: DWORD) -> DWORD {
319     OpcodeToken0 & D3D10_SB_INSTRUCTION_SATURATE_MASK
320 }
321 #[inline]
ENCODE_D3D10_SB_INSTRUCTION_SATURATE(bSat: DWORD) -> DWORD322 pub fn ENCODE_D3D10_SB_INSTRUCTION_SATURATE(bSat: DWORD) -> DWORD {
323     if bSat != 0 {
324         D3D10_SB_INSTRUCTION_SATURATE_MASK
325     } else {
326         0
327     }
328 }
329 ENUM!{enum D3D10_SB_INSTRUCTION_TEST_BOOLEAN {
330     D3D10_SB_INSTRUCTION_TEST_ZERO = 0,
331     D3D10_SB_INSTRUCTION_TEST_NONZERO = 1,
332 }}
333 pub const D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK: DWORD = 0x00040000;
334 pub const D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT: DWORD = 18;
335 #[inline]
DECODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN( OpcodeToken0: DWORD, ) -> D3D10_SB_INSTRUCTION_TEST_BOOLEAN336 pub fn DECODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(
337     OpcodeToken0: DWORD,
338 ) -> D3D10_SB_INSTRUCTION_TEST_BOOLEAN {
339     ((OpcodeToken0 & D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK)
340         >> D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT) as D3D10_SB_INSTRUCTION_TEST_BOOLEAN
341 }
342 #[inline]
ENCODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN( Boolean: D3D10_SB_INSTRUCTION_TEST_BOOLEAN, ) -> DWORD343 pub fn ENCODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(
344     Boolean: D3D10_SB_INSTRUCTION_TEST_BOOLEAN,
345 ) -> DWORD {
346     (Boolean << D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT) & D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK
347 }
348 pub const D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK: DWORD = 0x00780000;
349 pub const D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT: DWORD = 19;
350 #[inline]
DECODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(OpcodeToken0: DWORD) -> DWORD351 pub fn DECODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(OpcodeToken0: DWORD) -> DWORD {
352     (OpcodeToken0 & D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK)
353         >> D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT
354 }
355 #[inline]
ENCODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(ComponentMask: DWORD) -> DWORD356 pub fn ENCODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(ComponentMask: DWORD) -> DWORD {
357     (ComponentMask << D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT)
358         & D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK
359 }
360 ENUM!{enum D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE {
361     D3D10_SB_RESINFO_INSTRUCTION_RETURN_FLOAT = 0,
362     D3D10_SB_RESINFO_INSTRUCTION_RETURN_RCPFLOAT = 1,
363     D3D10_SB_RESINFO_INSTRUCTION_RETURN_UINT = 2,
364 }}
365 pub const D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK: DWORD = 0x00001800;
366 pub const D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT: DWORD = 11;
367 #[inline]
DECODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE( OpcodeToken0: DWORD, ) -> D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE368 pub fn DECODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(
369     OpcodeToken0: DWORD,
370 ) -> D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE {
371     ((OpcodeToken0 & D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK)
372         >> D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)
373         as D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE
374 }
375 #[inline]
ENCODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE( ReturnType: D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE, ) -> DWORD376 pub fn ENCODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(
377     ReturnType: D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE,
378 ) -> DWORD {
379     (ReturnType << D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)
380         & D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK
381 }
382 pub const D3D11_SB_SYNC_THREADS_IN_GROUP: DWORD = 0x00000800;
383 pub const D3D11_SB_SYNC_THREAD_GROUP_SHARED_MEMORY: DWORD = 0x00001000;
384 pub const D3D11_SB_SYNC_UNORDERED_ACCESS_VIEW_MEMORY_GROUP: DWORD = 0x00002000;
385 pub const D3D11_SB_SYNC_UNORDERED_ACCESS_VIEW_MEMORY_GLOBAL: DWORD = 0x00004000;
386 pub const D3D11_SB_SYNC_FLAGS_MASK: DWORD = 0x00007800;
387 #[inline]
DECODE_D3D11_SB_SYNC_FLAGS(OperandToken0: DWORD) -> DWORD388 pub fn DECODE_D3D11_SB_SYNC_FLAGS(OperandToken0: DWORD) -> DWORD {
389     OperandToken0 & D3D11_SB_SYNC_FLAGS_MASK
390 }
391 #[inline]
ENCODE_D3D11_SB_SYNC_FLAGS(Flags: DWORD) -> DWORD392 pub fn ENCODE_D3D11_SB_SYNC_FLAGS(Flags: DWORD) -> DWORD {
393     Flags & D3D11_SB_SYNC_FLAGS_MASK
394 }
395 pub const D3D10_SB_OPCODE_EXTENDED_MASK: DWORD = 0x80000000;
396 pub const D3D10_SB_OPCODE_EXTENDED_SHIFT: DWORD = 31;
397 #[inline]
DECODE_IS_D3D10_SB_OPCODE_EXTENDED(OpcodeToken0: DWORD) -> DWORD398 pub fn DECODE_IS_D3D10_SB_OPCODE_EXTENDED(OpcodeToken0: DWORD) -> DWORD {
399     (OpcodeToken0 & D3D10_SB_OPCODE_EXTENDED_MASK) >> D3D10_SB_OPCODE_EXTENDED_SHIFT
400 }
401 #[inline]
ENCODE_D3D10_SB_OPCODE_EXTENDED(bExtended: DWORD) -> DWORD402 pub fn ENCODE_D3D10_SB_OPCODE_EXTENDED(bExtended: DWORD) -> DWORD {
403     if bExtended != 0 {
404         D3D10_SB_OPCODE_EXTENDED_MASK
405     } else {
406         0
407     }
408 }
409 ENUM!{enum D3D10_SB_EXTENDED_OPCODE_TYPE {
410     D3D10_SB_EXTENDED_OPCODE_EMPTY = 0,
411     D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS = 1,
412     D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM = 2,
413     D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE = 3,
414 }}
415 pub const D3D11_SB_MAX_SIMULTANEOUS_EXTENDED_OPCODES: DWORD = 3;
416 pub const D3D10_SB_EXTENDED_OPCODE_TYPE_MASK: DWORD = 0x0000003f;
417 #[inline]
DECODE_D3D10_SB_EXTENDED_OPCODE_TYPE(OpcodeToken1: DWORD) -> D3D10_SB_EXTENDED_OPCODE_TYPE418 pub fn DECODE_D3D10_SB_EXTENDED_OPCODE_TYPE(OpcodeToken1: DWORD) -> D3D10_SB_EXTENDED_OPCODE_TYPE {
419     (OpcodeToken1 & D3D10_SB_EXTENDED_OPCODE_TYPE_MASK) as D3D10_SB_EXTENDED_OPCODE_TYPE
420 }
421 #[inline]
ENCODE_D3D10_SB_EXTENDED_OPCODE_TYPE( ExtOpcodeType: D3D10_SB_EXTENDED_OPCODE_TYPE, ) -> DWORD422 pub fn ENCODE_D3D10_SB_EXTENDED_OPCODE_TYPE(
423     ExtOpcodeType: D3D10_SB_EXTENDED_OPCODE_TYPE,
424 ) -> DWORD {
425     ExtOpcodeType & D3D10_SB_EXTENDED_OPCODE_TYPE_MASK
426 }
427 ENUM!{enum D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD {
428     D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_U = 0,
429     D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_V = 1,
430     D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_W = 2,
431 }}
432 pub const D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK: DWORD = 3;
433 #[inline]
D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord: DWORD) -> DWORD434 pub fn D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord: DWORD) -> DWORD {
435     9 + 4 * (Coord & D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK)
436 }
437 #[inline]
D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord: DWORD) -> DWORD438 pub fn D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord: DWORD) -> DWORD {
439     0x0000000f << D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)
440 }
441 #[inline]
DECODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET( Coord: DWORD, OpcodeToken1: DWORD, ) -> DWORD442 pub fn DECODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(
443     Coord: DWORD,
444     OpcodeToken1: DWORD,
445 ) -> DWORD {
446     (OpcodeToken1 & D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord))
447         >> D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)
448 }
449 #[inline]
ENCODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET( Coord: DWORD, ImmediateOffset: DWORD, ) -> DWORD450 pub fn ENCODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(
451     Coord: DWORD,
452     ImmediateOffset: DWORD,
453 ) -> DWORD {
454     (ImmediateOffset << D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord))
455         & D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord)
456 }
457 pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK: DWORD = 0x000007C0;
458 pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT: DWORD = 6;
459 #[inline]
DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION( OpcodeTokenN: DWORD, ) -> D3D10_SB_RESOURCE_DIMENSION460 pub fn DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(
461     OpcodeTokenN: DWORD,
462 ) -> D3D10_SB_RESOURCE_DIMENSION {
463     ((OpcodeTokenN & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK)
464         >> D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT) as D3D10_SB_RESOURCE_DIMENSION
465 }
466 #[inline]
ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION( ResourceDim: D3D10_SB_RESOURCE_DIMENSION, ) -> DWORD467 pub fn ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(
468     ResourceDim: D3D10_SB_RESOURCE_DIMENSION,
469 ) -> DWORD {
470     (ResourceDim << D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT)
471         & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK
472 }
473 pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK: DWORD = 0x007FF800;
474 pub const D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT: DWORD = 11;
475 #[inline]
DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(OpcodeTokenN: DWORD) -> DWORD476 pub fn DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(OpcodeTokenN: DWORD) -> DWORD {
477     (OpcodeTokenN & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK)
478         >> D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT
479 }
480 #[inline]
ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(Stride: DWORD) -> DWORD481 pub fn ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(Stride: DWORD) -> DWORD {
482     (Stride << D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT)
483         & D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK
484 }
485 pub const D3D10_SB_RESOURCE_RETURN_TYPE_MASK: DWORD = 0x0000000f;
486 pub const D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS: DWORD = 0x00000004;
487 pub const D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT: DWORD = 6;
488 #[inline]
DECODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE( OpcodeTokenN: DWORD, Component: DWORD, ) -> DWORD489 pub fn DECODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(
490     OpcodeTokenN: DWORD,
491     Component: DWORD,
492 ) -> DWORD {
493     ((OpcodeTokenN >> (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS
494         + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT))
495         & D3D10_SB_RESOURCE_RETURN_TYPE_MASK) as D3D10_SB_RESOURCE_RETURN_TYPE
496 }
497 #[inline]
ENCODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE( ReturnType: DWORD, Component: DWORD, ) -> DWORD498 pub fn ENCODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(
499     ReturnType: DWORD,
500     Component: DWORD,
501 ) -> DWORD {
502     (ReturnType & D3D10_SB_RESOURCE_RETURN_TYPE_MASK)
503         << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS
504         + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT)
505 }
506 ENUM!{enum D3D10_SB_CUSTOMDATA_CLASS {
507     D3D10_SB_CUSTOMDATA_COMMENT = 0,
508     D3D10_SB_CUSTOMDATA_DEBUGINFO = 1,
509     D3D10_SB_CUSTOMDATA_OPAQUE = 2,
510     D3D10_SB_CUSTOMDATA_DCL_IMMEDIATE_CONSTANT_BUFFER = 3,
511     D3D11_SB_CUSTOMDATA_SHADER_MESSAGE = 4,
512     D3D11_SB_CUSTOMDATA_SHADER_CLIP_PLANE_CONSTANT_MAPPINGS_FOR_DX9 = 5,
513 }}
514 pub const D3D10_SB_CUSTOMDATA_CLASS_MASK: DWORD = 0xfffff800;
515 pub const D3D10_SB_CUSTOMDATA_CLASS_SHIFT: DWORD = 11;
516 #[inline]
DECODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataDescTok: DWORD) -> D3D10_SB_CUSTOMDATA_CLASS517 pub fn DECODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataDescTok: DWORD) -> D3D10_SB_CUSTOMDATA_CLASS {
518     ((CustomDataDescTok & D3D10_SB_CUSTOMDATA_CLASS_MASK) >> D3D10_SB_CUSTOMDATA_CLASS_SHIFT)
519         as D3D10_SB_CUSTOMDATA_CLASS
520 }
521 #[inline]
ENCODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataClass: D3D10_SB_CUSTOMDATA_CLASS) -> DWORD522 pub fn ENCODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataClass: D3D10_SB_CUSTOMDATA_CLASS) -> DWORD {
523     ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_CUSTOMDATA)
524         | ((CustomDataClass << D3D10_SB_CUSTOMDATA_CLASS_SHIFT) & D3D10_SB_CUSTOMDATA_CLASS_MASK)
525 }
526 ENUM!{enum D3D10_SB_OPERAND_NUM_COMPONENTS {
527     D3D10_SB_OPERAND_0_COMPONENT = 0,
528     D3D10_SB_OPERAND_1_COMPONENT = 1,
529     D3D10_SB_OPERAND_4_COMPONENT = 2,
530     D3D10_SB_OPERAND_N_COMPONENT = 3,
531 }}
532 pub const D3D10_SB_OPERAND_NUM_COMPONENTS_MASK: DWORD = 0x00000003;
533 #[inline]
DECODE_D3D10_SB_OPERAND_NUM_COMPONENTS(OperandToken0: DWORD) -> DWORD534 pub fn DECODE_D3D10_SB_OPERAND_NUM_COMPONENTS(OperandToken0: DWORD) -> DWORD {
535     (OperandToken0 & D3D10_SB_OPERAND_NUM_COMPONENTS_MASK) as D3D10_SB_OPERAND_NUM_COMPONENTS
536 }
537 #[inline]
ENCODE_D3D10_SB_OPERAND_NUM_COMPONENTS(NumComp: DWORD) -> DWORD538 pub fn ENCODE_D3D10_SB_OPERAND_NUM_COMPONENTS(NumComp: DWORD) -> DWORD {
539     NumComp & D3D10_SB_OPERAND_NUM_COMPONENTS_MASK
540 }
541 ENUM!{enum D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE {
542     D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE = 0,
543     D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE = 1,
544     D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE = 2,
545 }}
546 pub const D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK: DWORD = 0x0000000c;
547 pub const D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT: DWORD = 2;
548 #[inline]
DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE( OperandToken0: DWORD, ) -> D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE549 pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(
550     OperandToken0: DWORD,
551 ) -> D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE {
552     ((OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK)
553         >> D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT)
554         as D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE
555 }
556 #[inline]
ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE( SelectionMode: D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE, ) -> DWORD557 pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(
558     SelectionMode: D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE,
559 ) -> DWORD {
560     (SelectionMode << D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT)
561         & D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK
562 }
563 ENUM!{enum D3D10_SB_4_COMPONENT_NAME {
564     D3D10_SB_4_COMPONENT_X = 0,
565     D3D10_SB_4_COMPONENT_Y = 1,
566     D3D10_SB_4_COMPONENT_Z = 2,
567     D3D10_SB_4_COMPONENT_W = 3,
568     D3D10_SB_4_COMPONENT_R = 0,
569     D3D10_SB_4_COMPONENT_G = 1,
570     D3D10_SB_4_COMPONENT_B = 2,
571     D3D10_SB_4_COMPONENT_A = 3,
572 }}
573 pub const D3D10_SB_4_COMPONENT_NAME_MASK: DWORD = 3;
574 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK: DWORD = 0x000000f0;
575 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT: DWORD = 4;
576 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_X: DWORD = 0x00000010;
577 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_Y: DWORD = 0x00000020;
578 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_Z: DWORD = 0x00000040;
579 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_W: DWORD = 0x00000080;
580 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_R: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_X;
581 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_G: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_Y;
582 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_B: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_Z;
583 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_A: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_W;
584 pub const D3D10_SB_OPERAND_4_COMPONENT_MASK_ALL: DWORD = D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK;
585 #[inline]
DECODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(OperandToken0: DWORD) -> DWORD586 pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(OperandToken0: DWORD) -> DWORD {
587     OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK
588 }
589 #[inline]
ENCODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentMask: DWORD) -> DWORD590 pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentMask: DWORD) -> DWORD {
591     ComponentMask & D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK
592 }
593 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentName: DWORD) -> DWORD594 pub fn D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentName: DWORD) -> DWORD {
595     (1 << (D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT + ComponentName))
596         & D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK
597 }
598 pub const D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MASK: DWORD = 0x00000ff0;
599 pub const D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT: DWORD = 4;
600 #[inline]
DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(OperandToken0: DWORD) -> DWORD601 pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(OperandToken0: DWORD) -> DWORD {
602     OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MASK
603 }
604 #[inline]
DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SOURCE( OperandToken0: DWORD, DestComp: DWORD, ) -> D3D10_SB_4_COMPONENT_NAME605 pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SOURCE(
606     OperandToken0: DWORD,
607     DestComp: DWORD,
608 ) -> D3D10_SB_4_COMPONENT_NAME {
609     ((OperandToken0 >> (D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT + 2
610         * (DestComp & D3D10_SB_4_COMPONENT_NAME_MASK)))
611         & D3D10_SB_4_COMPONENT_NAME_MASK) as D3D10_SB_4_COMPONENT_NAME
612 }
613 #[inline]
ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE( XSrc: DWORD, YSrc: DWORD, ZSrc: DWORD, WSrc: DWORD, ) -> DWORD614 pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
615     XSrc: DWORD,
616     YSrc: DWORD,
617     ZSrc: DWORD,
618     WSrc: DWORD,
619 ) -> DWORD {
620     ((XSrc & D3D10_SB_4_COMPONENT_NAME_MASK)
621         | ((YSrc & D3D10_SB_4_COMPONENT_NAME_MASK) << 2)
622         | ((ZSrc & D3D10_SB_4_COMPONENT_NAME_MASK) << 4)
623         | ((WSrc & D3D10_SB_4_COMPONENT_NAME_MASK) << 6))
624         << D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT
625 }
626 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_NOSWIZZLE() -> DWORD627 pub fn D3D10_SB_OPERAND_4_COMPONENT_NOSWIZZLE() -> DWORD {
628     ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
629         D3D10_SB_4_COMPONENT_X,
630         D3D10_SB_4_COMPONENT_Y,
631         D3D10_SB_4_COMPONENT_Z,
632         D3D10_SB_4_COMPONENT_W,
633     )
634 }
635 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX() -> DWORD636 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX() -> DWORD {
637     ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
638         D3D10_SB_4_COMPONENT_X,
639         D3D10_SB_4_COMPONENT_X,
640         D3D10_SB_4_COMPONENT_X,
641         D3D10_SB_4_COMPONENT_X,
642     )
643 }
644 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY() -> DWORD645 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY() -> DWORD {
646     ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
647         D3D10_SB_4_COMPONENT_Y,
648         D3D10_SB_4_COMPONENT_Y,
649         D3D10_SB_4_COMPONENT_Y,
650         D3D10_SB_4_COMPONENT_Y,
651     )
652 }
653 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ() -> DWORD654 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ() -> DWORD {
655     ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
656         D3D10_SB_4_COMPONENT_Z,
657         D3D10_SB_4_COMPONENT_Z,
658         D3D10_SB_4_COMPONENT_Z,
659         D3D10_SB_4_COMPONENT_Z,
660     )
661 }
662 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW() -> DWORD663 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW() -> DWORD {
664     ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(
665         D3D10_SB_4_COMPONENT_W,
666         D3D10_SB_4_COMPONENT_W,
667         D3D10_SB_4_COMPONENT_W,
668         D3D10_SB_4_COMPONENT_W,
669     )
670 }
671 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATERED() -> DWORD672 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATERED() -> DWORD {
673     D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX()
674 }
675 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEGREEN() -> DWORD676 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEGREEN() -> DWORD {
677     D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY()
678 }
679 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEBLUE() -> DWORD680 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEBLUE() -> DWORD {
681     D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ()
682 }
683 #[inline]
D3D10_SB_OPERAND_4_COMPONENT_REPLICATEALPHA() -> DWORD684 pub fn D3D10_SB_OPERAND_4_COMPONENT_REPLICATEALPHA() -> DWORD {
685     D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW()
686 }
687 pub const D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK: DWORD = 0x00000030;
688 pub const D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT: DWORD = 4;
689 #[inline]
DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1( OperandToken0: DWORD, ) -> D3D10_SB_4_COMPONENT_NAME690 pub fn DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(
691     OperandToken0: DWORD,
692 ) -> D3D10_SB_4_COMPONENT_NAME {
693     ((OperandToken0 & D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK)
694         >> D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT) as D3D10_SB_4_COMPONENT_NAME
695 }
696 #[inline]
ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1( SelectedComp: D3D10_SB_4_COMPONENT_NAME, ) -> DWORD697 pub fn ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(
698     SelectedComp: D3D10_SB_4_COMPONENT_NAME,
699 ) -> DWORD {
700     (SelectedComp << D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT)
701         & D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK
702 }
703 ENUM!{enum D3D10_SB_OPERAND_TYPE {
704     D3D10_SB_OPERAND_TYPE_TEMP = 0,
705     D3D10_SB_OPERAND_TYPE_INPUT = 1,
706     D3D10_SB_OPERAND_TYPE_OUTPUT = 2,
707     D3D10_SB_OPERAND_TYPE_INDEXABLE_TEMP = 3,
708     D3D10_SB_OPERAND_TYPE_IMMEDIATE32 = 4,
709     D3D10_SB_OPERAND_TYPE_IMMEDIATE64 = 5,
710     D3D10_SB_OPERAND_TYPE_SAMPLER = 6,
711     D3D10_SB_OPERAND_TYPE_RESOURCE = 7,
712     D3D10_SB_OPERAND_TYPE_CONSTANT_BUFFER= 8,
713     D3D10_SB_OPERAND_TYPE_IMMEDIATE_CONSTANT_BUFFER= 9,
714     D3D10_SB_OPERAND_TYPE_LABEL = 10,
715     D3D10_SB_OPERAND_TYPE_INPUT_PRIMITIVEID = 11,
716     D3D10_SB_OPERAND_TYPE_OUTPUT_DEPTH = 12,
717     D3D10_SB_OPERAND_TYPE_NULL = 13,
718     D3D10_SB_OPERAND_TYPE_RASTERIZER = 14,
719     D3D10_SB_OPERAND_TYPE_OUTPUT_COVERAGE_MASK = 15,
720     D3D11_SB_OPERAND_TYPE_STREAM = 16,
721     D3D11_SB_OPERAND_TYPE_FUNCTION_BODY = 17,
722     D3D11_SB_OPERAND_TYPE_FUNCTION_TABLE = 18,
723     D3D11_SB_OPERAND_TYPE_INTERFACE = 19,
724     D3D11_SB_OPERAND_TYPE_FUNCTION_INPUT = 20,
725     D3D11_SB_OPERAND_TYPE_FUNCTION_OUTPUT = 21,
726     D3D11_SB_OPERAND_TYPE_OUTPUT_CONTROL_POINT_ID = 22,
727     D3D11_SB_OPERAND_TYPE_INPUT_FORK_INSTANCE_ID = 23,
728     D3D11_SB_OPERAND_TYPE_INPUT_JOIN_INSTANCE_ID = 24,
729     D3D11_SB_OPERAND_TYPE_INPUT_CONTROL_POINT = 25,
730     D3D11_SB_OPERAND_TYPE_OUTPUT_CONTROL_POINT = 26,
731     D3D11_SB_OPERAND_TYPE_INPUT_PATCH_CONSTANT = 27,
732     D3D11_SB_OPERAND_TYPE_INPUT_DOMAIN_POINT = 28,
733     D3D11_SB_OPERAND_TYPE_THIS_POINTER = 29,
734     D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW = 30,
735     D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY = 31,
736     D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID = 32,
737     D3D11_SB_OPERAND_TYPE_INPUT_THREAD_GROUP_ID = 33,
738     D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP = 34,
739     D3D11_SB_OPERAND_TYPE_INPUT_COVERAGE_MASK = 35,
740     D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP_FLATTENED = 36,
741     D3D11_SB_OPERAND_TYPE_INPUT_GS_INSTANCE_ID = 37,
742     D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_GREATER_EQUAL = 38,
743     D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_LESS_EQUAL = 39,
744     D3D11_SB_OPERAND_TYPE_CYCLE_COUNTER = 40,
745 }}
746 pub const D3D10_SB_OPERAND_TYPE_MASK: DWORD = 0x000ff000;
747 pub const D3D10_SB_OPERAND_TYPE_SHIFT: DWORD = 12;
748 #[inline]
DECODE_D3D10_SB_OPERAND_TYPE(OperandToken0: DWORD) -> D3D10_SB_OPERAND_TYPE749 pub fn DECODE_D3D10_SB_OPERAND_TYPE(OperandToken0: DWORD) -> D3D10_SB_OPERAND_TYPE {
750     ((OperandToken0 & D3D10_SB_OPERAND_TYPE_MASK) >> D3D10_SB_OPERAND_TYPE_SHIFT)
751         as D3D10_SB_OPERAND_TYPE
752 }
753 #[inline]
ENCODE_D3D10_SB_OPERAND_TYPE(OperandType: D3D10_SB_OPERAND_TYPE) -> DWORD754 pub fn ENCODE_D3D10_SB_OPERAND_TYPE(OperandType: D3D10_SB_OPERAND_TYPE) -> DWORD {
755     (OperandType << D3D10_SB_OPERAND_TYPE_SHIFT) & D3D10_SB_OPERAND_TYPE_MASK
756 }
757 ENUM!{enum D3D10_SB_OPERAND_INDEX_DIMENSION {
758     D3D10_SB_OPERAND_INDEX_0D = 0,
759     D3D10_SB_OPERAND_INDEX_1D = 1,
760     D3D10_SB_OPERAND_INDEX_2D = 2,
761     D3D10_SB_OPERAND_INDEX_3D = 3,
762 }}
763 pub const D3D10_SB_OPERAND_INDEX_DIMENSION_MASK: DWORD = 0x00300000;
764 pub const D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT: DWORD = 20;
765 #[inline]
DECODE_D3D10_SB_OPERAND_INDEX_DIMENSION( OperandToken0: DWORD, ) -> D3D10_SB_OPERAND_INDEX_DIMENSION766 pub fn DECODE_D3D10_SB_OPERAND_INDEX_DIMENSION(
767     OperandToken0: DWORD,
768 ) -> D3D10_SB_OPERAND_INDEX_DIMENSION {
769     ((OperandToken0 & D3D10_SB_OPERAND_INDEX_DIMENSION_MASK)
770         >> D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT) as D3D10_SB_OPERAND_INDEX_DIMENSION
771 }
772 #[inline]
ENCODE_D3D10_SB_OPERAND_INDEX_DIMENSION( OperandIndexDim: D3D10_SB_OPERAND_INDEX_DIMENSION, ) -> DWORD773 pub fn ENCODE_D3D10_SB_OPERAND_INDEX_DIMENSION(
774     OperandIndexDim: D3D10_SB_OPERAND_INDEX_DIMENSION,
775 ) -> DWORD {
776     (OperandIndexDim << D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT)
777         & D3D10_SB_OPERAND_INDEX_DIMENSION_MASK
778 }
779 ENUM!{enum D3D10_SB_OPERAND_INDEX_REPRESENTATION {
780     D3D10_SB_OPERAND_INDEX_IMMEDIATE32 = 0,
781     D3D10_SB_OPERAND_INDEX_IMMEDIATE64 = 1,
782     D3D10_SB_OPERAND_INDEX_RELATIVE = 2,
783     D3D10_SB_OPERAND_INDEX_IMMEDIATE32_PLUS_RELATIVE = 3,
784     D3D10_SB_OPERAND_INDEX_IMMEDIATE64_PLUS_RELATIVE = 4,
785 }}
786 #[inline]
D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim: DWORD) -> DWORD787 pub fn D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim: DWORD) -> DWORD {
788     22 + 3 * (Dim & 3)
789 }
790 #[inline]
D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim: DWORD) -> DWORD791 pub fn D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim: DWORD) -> DWORD {
792     0x3 << D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim)
793 }
794 #[inline]
DECODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION( Dim: DWORD, OperandToken0: DWORD, ) -> D3D10_SB_OPERAND_INDEX_REPRESENTATION795 pub fn DECODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(
796     Dim: DWORD,
797     OperandToken0: DWORD,
798 ) -> D3D10_SB_OPERAND_INDEX_REPRESENTATION {
799     ((OperandToken0 & D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim))
800         >> D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))
801         as D3D10_SB_OPERAND_INDEX_REPRESENTATION
802 }
803 #[inline]
ENCODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION( Dim: DWORD, IndexRepresentation: D3D10_SB_OPERAND_INDEX_REPRESENTATION, ) -> DWORD804 pub fn ENCODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(
805     Dim: DWORD,
806     IndexRepresentation: D3D10_SB_OPERAND_INDEX_REPRESENTATION,
807 ) -> DWORD {
808     (IndexRepresentation << D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))
809         & D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim)
810 }
811 pub const D3D10_SB_OPERAND_EXTENDED_MASK: DWORD = 0x80000000;
812 pub const D3D10_SB_OPERAND_EXTENDED_SHIFT: DWORD = 31;
813 #[inline]
DECODE_IS_D3D10_SB_OPERAND_EXTENDED(OperandToken0: DWORD) -> DWORD814 pub fn DECODE_IS_D3D10_SB_OPERAND_EXTENDED(OperandToken0: DWORD) -> DWORD {
815     (OperandToken0 & D3D10_SB_OPERAND_EXTENDED_MASK) >> D3D10_SB_OPERAND_EXTENDED_SHIFT
816 }
817 #[inline]
ENCODE_D3D10_SB_OPERAND_EXTENDED(bExtended: DWORD) -> DWORD818 pub fn ENCODE_D3D10_SB_OPERAND_EXTENDED(bExtended: DWORD) -> DWORD {
819     if bExtended != 0 {
820         D3D10_SB_OPERAND_EXTENDED_MASK
821     } else {
822         0
823     }
824 }
825 ENUM!{enum D3D10_SB_EXTENDED_OPERAND_TYPE {
826     D3D10_SB_EXTENDED_OPERAND_EMPTY = 0,
827     D3D10_SB_EXTENDED_OPERAND_MODIFIER = 1,
828 }}
829 pub const D3D10_SB_EXTENDED_OPERAND_TYPE_MASK: DWORD = 0x0000003f;
830 #[inline]
DECODE_D3D10_SB_EXTENDED_OPERAND_TYPE( OperandToken1: DWORD, ) -> D3D10_SB_EXTENDED_OPERAND_TYPE831 pub fn DECODE_D3D10_SB_EXTENDED_OPERAND_TYPE(
832     OperandToken1: DWORD,
833 ) -> D3D10_SB_EXTENDED_OPERAND_TYPE {
834     (OperandToken1 & D3D10_SB_EXTENDED_OPERAND_TYPE_MASK) as D3D10_SB_EXTENDED_OPERAND_TYPE
835 }
836 #[inline]
ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE( ExtOperandType: D3D10_SB_EXTENDED_OPERAND_TYPE, ) -> DWORD837 pub fn ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(
838     ExtOperandType: D3D10_SB_EXTENDED_OPERAND_TYPE,
839 ) -> DWORD {
840     ExtOperandType & D3D10_SB_EXTENDED_OPERAND_TYPE_MASK
841 }
842 ENUM!{enum D3D10_SB_OPERAND_MODIFIER {
843     D3D10_SB_OPERAND_MODIFIER_NONE = 0,
844     D3D10_SB_OPERAND_MODIFIER_NEG = 1,
845     D3D10_SB_OPERAND_MODIFIER_ABS = 2,
846     D3D10_SB_OPERAND_MODIFIER_ABSNEG = 3,
847 }}
848 pub const D3D10_SB_OPERAND_MODIFIER_MASK: DWORD = 0x00003fc0;
849 pub const D3D10_SB_OPERAND_MODIFIER_SHIFT: DWORD = 6;
850 #[inline]
DECODE_D3D10_SB_OPERAND_MODIFIER(OperandToken1: DWORD) -> D3D10_SB_OPERAND_MODIFIER851 pub fn DECODE_D3D10_SB_OPERAND_MODIFIER(OperandToken1: DWORD) -> D3D10_SB_OPERAND_MODIFIER {
852     ((OperandToken1 & D3D10_SB_OPERAND_MODIFIER_MASK) >> D3D10_SB_OPERAND_MODIFIER_SHIFT)
853         as D3D10_SB_OPERAND_MODIFIER
854 }
855 #[inline]
ENCODE_D3D10_SB_EXTENDED_OPERAND_MODIFIER(SourceMod: D3D10_SB_OPERAND_MODIFIER) -> DWORD856 pub fn ENCODE_D3D10_SB_EXTENDED_OPERAND_MODIFIER(SourceMod: D3D10_SB_OPERAND_MODIFIER) -> DWORD {
857     ((SourceMod << D3D10_SB_OPERAND_MODIFIER_SHIFT) & D3D10_SB_OPERAND_MODIFIER_MASK)
858         | ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(D3D10_SB_EXTENDED_OPERAND_MODIFIER)
859         | ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(0)
860 }
861 ENUM!{enum D3D11_SB_OPERAND_MIN_PRECISION {
862     D3D11_SB_OPERAND_MIN_PRECISION_DEFAULT = 0,
863     D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_16 = 1,
864     D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_2_8 = 2,
865     D3D11_SB_OPERAND_MIN_PRECISION_SINT_16 = 4,
866     D3D11_SB_OPERAND_MIN_PRECISION_UINT_16 = 5,
867 }}
868 pub const D3D11_SB_OPERAND_MIN_PRECISION_MASK: DWORD = 0x0001C000;
869 pub const D3D11_SB_OPERAND_MIN_PRECISION_SHIFT: DWORD = 14;
870 #[inline]
DECODE_D3D11_SB_OPERAND_MIN_PRECISION( OperandToken1: DWORD, ) -> D3D11_SB_OPERAND_MIN_PRECISION871 pub fn DECODE_D3D11_SB_OPERAND_MIN_PRECISION(
872     OperandToken1: DWORD,
873 ) -> D3D11_SB_OPERAND_MIN_PRECISION {
874     ((OperandToken1 & D3D11_SB_OPERAND_MIN_PRECISION_MASK) >> D3D11_SB_OPERAND_MIN_PRECISION_SHIFT)
875         as D3D11_SB_OPERAND_MIN_PRECISION
876 }
877 #[inline]
ENCODE_D3D11_SB_OPERAND_MIN_PRECISION( MinPrecision: D3D11_SB_OPERAND_MIN_PRECISION, ) -> DWORD878 pub fn ENCODE_D3D11_SB_OPERAND_MIN_PRECISION(
879     MinPrecision: D3D11_SB_OPERAND_MIN_PRECISION,
880 ) -> DWORD {
881     (MinPrecision << D3D11_SB_OPERAND_MIN_PRECISION_SHIFT) & D3D11_SB_OPERAND_MIN_PRECISION_MASK
882 }
883 pub const D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK: DWORD = 0x80000000;
884 pub const D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT: DWORD = 31;
885 #[inline]
DECODE_IS_D3D10_SB_OPERAND_DOUBLE_EXTENDED(OperandToken1: DWORD) -> DWORD886 pub fn DECODE_IS_D3D10_SB_OPERAND_DOUBLE_EXTENDED(OperandToken1: DWORD) -> DWORD {
887     (OperandToken1 & D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK)
888         >> D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT
889 }
890 #[inline]
ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(bExtended: DWORD) -> DWORD891 pub fn ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(bExtended: DWORD) -> DWORD {
892     if bExtended != 0 {
893         D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK
894     } else {
895         0
896     }
897 }
898 pub const D3D10_SB_NAME_MASK: DWORD = 0x0000ffff;
899 #[inline]
DECODE_D3D10_SB_NAME(NameToken: DWORD) -> D3D10_SB_NAME900 pub fn DECODE_D3D10_SB_NAME(NameToken: DWORD) -> D3D10_SB_NAME {
901     (NameToken & D3D10_SB_NAME_MASK) as D3D10_SB_NAME
902 }
903 #[inline]
ENCODE_D3D10_SB_NAME(Name: D3D10_SB_NAME) -> DWORD904 pub fn ENCODE_D3D10_SB_NAME(Name: D3D10_SB_NAME) -> DWORD {
905     Name & D3D10_SB_NAME_MASK
906 }
907 pub const D3D10_SB_GLOBAL_FLAG_REFACTORING_ALLOWED: DWORD = 1 << 11;
908 pub const D3D11_SB_GLOBAL_FLAG_ENABLE_DOUBLE_PRECISION_FLOAT_OPS: DWORD = 1 << 12;
909 pub const D3D11_SB_GLOBAL_FLAG_FORCE_EARLY_DEPTH_STENCIL: DWORD = 1 << 13;
910 pub const D3D11_SB_GLOBAL_FLAG_ENABLE_RAW_AND_STRUCTURED_BUFFERS: DWORD = 1 << 14;
911 pub const D3D11_1_SB_GLOBAL_FLAG_SKIP_OPTIMIZATION: DWORD = 1 << 15;
912 pub const D3D11_1_SB_GLOBAL_FLAG_ENABLE_MINIMUM_PRECISION: DWORD = 1 << 16;
913 pub const D3D11_1_SB_GLOBAL_FLAG_ENABLE_DOUBLE_EXTENSIONS: DWORD = 1 << 17;
914 pub const D3D11_1_SB_GLOBAL_FLAG_ENABLE_SHADER_EXTENSIONS: DWORD = 1 << 18;
915 pub const D3D10_SB_GLOBAL_FLAGS_MASK: DWORD = 0x00fff800;
916 #[inline]
DECODE_D3D10_SB_GLOBAL_FLAGS(OpcodeToken0: DWORD) -> DWORD917 pub fn DECODE_D3D10_SB_GLOBAL_FLAGS(OpcodeToken0: DWORD) -> DWORD {
918     OpcodeToken0 & D3D10_SB_GLOBAL_FLAGS_MASK
919 }
920 #[inline]
ENCODE_D3D10_SB_GLOBAL_FLAGS(Flags: DWORD) -> DWORD921 pub fn ENCODE_D3D10_SB_GLOBAL_FLAGS(Flags: DWORD) -> DWORD {
922     Flags & D3D10_SB_GLOBAL_FLAGS_MASK
923 }
924 pub const D3D10_SB_RESOURCE_DIMENSION_MASK: DWORD = 0x0000F800;
925 pub const D3D10_SB_RESOURCE_DIMENSION_SHIFT: DWORD = 11;
926 #[inline]
DECODE_D3D10_SB_RESOURCE_DIMENSION(OpcodeToken0: DWORD) -> D3D10_SB_RESOURCE_DIMENSION927 pub fn DECODE_D3D10_SB_RESOURCE_DIMENSION(OpcodeToken0: DWORD) -> D3D10_SB_RESOURCE_DIMENSION {
928     ((OpcodeToken0 & D3D10_SB_RESOURCE_DIMENSION_MASK) >> D3D10_SB_RESOURCE_DIMENSION_SHIFT)
929         as D3D10_SB_RESOURCE_DIMENSION
930 }
931 #[inline]
ENCODE_D3D10_SB_RESOURCE_DIMENSION(ResourceDim: D3D10_SB_RESOURCE_DIMENSION) -> DWORD932 pub fn ENCODE_D3D10_SB_RESOURCE_DIMENSION(ResourceDim: D3D10_SB_RESOURCE_DIMENSION) -> DWORD {
933     (ResourceDim << D3D10_SB_RESOURCE_DIMENSION_SHIFT) & D3D10_SB_RESOURCE_DIMENSION_MASK
934 }
935 pub const D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK: DWORD = 0x07F0000;
936 pub const D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT: DWORD = 16;
937 #[inline]
DECODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(OpcodeToken0: DWORD) -> UINT938 pub fn DECODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(OpcodeToken0: DWORD) -> UINT {
939     ((OpcodeToken0 & D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK) >> D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)
940         as UINT
941 }
942 #[inline]
ENCODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(SampleCount: DWORD) -> DWORD943 pub fn ENCODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(SampleCount: DWORD) -> DWORD {
944     (if SampleCount > 127 { 127 } else { SampleCount } << D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)
945         & D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK
946 }
947 #[inline]
DECODE_D3D10_SB_RESOURCE_RETURN_TYPE( ResourceReturnTypeToken: D3D10_SB_RESOURCE_RETURN_TYPE, Component: DWORD, ) -> D3D10_SB_RESOURCE_RETURN_TYPE948 pub fn DECODE_D3D10_SB_RESOURCE_RETURN_TYPE(
949     ResourceReturnTypeToken: D3D10_SB_RESOURCE_RETURN_TYPE,
950     Component: DWORD,
951 ) -> D3D10_SB_RESOURCE_RETURN_TYPE {
952     ((ResourceReturnTypeToken >> (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS))
953         & D3D10_SB_RESOURCE_RETURN_TYPE_MASK) as D3D10_SB_RESOURCE_RETURN_TYPE
954 }
955 #[inline]
ENCODE_D3D10_SB_RESOURCE_RETURN_TYPE( ReturnType: DWORD, Component: DWORD, ) -> D3D10_SB_RESOURCE_RETURN_TYPE956 pub fn ENCODE_D3D10_SB_RESOURCE_RETURN_TYPE(
957     ReturnType: DWORD,
958     Component: DWORD,
959 ) -> D3D10_SB_RESOURCE_RETURN_TYPE {
960     (ReturnType & D3D10_SB_RESOURCE_RETURN_TYPE_MASK)
961         << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS)
962 }
963 ENUM!{enum D3D10_SB_SAMPLER_MODE {
964     D3D10_SB_SAMPLER_MODE_DEFAULT = 0,
965     D3D10_SB_SAMPLER_MODE_COMPARISON = 1,
966     D3D10_SB_SAMPLER_MODE_MONO = 2,
967 }}
968 pub const D3D10_SB_SAMPLER_MODE_MASK: DWORD = 0x00007800;
969 pub const D3D10_SB_SAMPLER_MODE_SHIFT: DWORD = 11;
970 #[inline]
DECODE_D3D10_SB_SAMPLER_MODE(OpcodeToken0: DWORD) -> D3D10_SB_SAMPLER_MODE971 pub fn DECODE_D3D10_SB_SAMPLER_MODE(OpcodeToken0: DWORD) -> D3D10_SB_SAMPLER_MODE {
972     ((OpcodeToken0 & D3D10_SB_SAMPLER_MODE_MASK) >> D3D10_SB_SAMPLER_MODE_SHIFT)
973         as D3D10_SB_SAMPLER_MODE
974 }
975 #[inline]
ENCODE_D3D10_SB_SAMPLER_MODE(SamplerMode: D3D10_SB_SAMPLER_MODE) -> DWORD976 pub fn ENCODE_D3D10_SB_SAMPLER_MODE(SamplerMode: D3D10_SB_SAMPLER_MODE) -> DWORD {
977     (SamplerMode << D3D10_SB_SAMPLER_MODE_SHIFT) & D3D10_SB_SAMPLER_MODE_MASK
978 }
979 pub const D3D10_SB_INPUT_INTERPOLATION_MODE_MASK: DWORD = 0x00007800;
980 pub const D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT: DWORD = 11;
981 #[inline]
DECODE_D3D10_SB_INPUT_INTERPOLATION_MODE( OpcodeToken0: DWORD, ) -> D3D10_SB_INTERPOLATION_MODE982 pub fn DECODE_D3D10_SB_INPUT_INTERPOLATION_MODE(
983     OpcodeToken0: DWORD,
984 ) -> D3D10_SB_INTERPOLATION_MODE {
985     ((OpcodeToken0 & D3D10_SB_INPUT_INTERPOLATION_MODE_MASK)
986         >> D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT) as D3D10_SB_INTERPOLATION_MODE
987 }
988 #[inline]
ENCODE_D3D10_SB_INPUT_INTERPOLATION_MODE( InterpolationMode: D3D10_SB_INTERPOLATION_MODE, ) -> DWORD989 pub fn ENCODE_D3D10_SB_INPUT_INTERPOLATION_MODE(
990     InterpolationMode: D3D10_SB_INTERPOLATION_MODE,
991 ) -> DWORD {
992     (InterpolationMode << D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT)
993         & D3D10_SB_INPUT_INTERPOLATION_MODE_MASK
994 }
995 ENUM!{enum D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN {
996     D3D10_SB_CONSTANT_BUFFER_IMMEDIATE_INDEXED = 0,
997     D3D10_SB_CONSTANT_BUFFER_DYNAMIC_INDEXED = 1,
998 }}
999 pub const D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK: DWORD = 0x00000800;
1000 pub const D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT: DWORD = 11;
1001 #[inline]
DECODE_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN( OpcodeToken0: DWORD, ) -> D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN1002 pub fn DECODE_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(
1003     OpcodeToken0: DWORD,
1004 ) -> D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN {
1005     ((OpcodeToken0 & D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK)
1006         >> D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT)
1007         as D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN
1008 }
1009 #[inline]
ENCODE_D3D10_SB_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN( AccessPattern: D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN, ) -> DWORD1010 pub fn ENCODE_D3D10_SB_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(
1011     AccessPattern: D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN,
1012 ) -> DWORD {
1013     (AccessPattern << D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT)
1014         & D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK
1015 }
1016 ENUM!{enum D3D11_SB_SHADER_MESSAGE_ID {
1017     D3D11_SB_SHADER_MESSAGE_ID_MESSAGE = 0x00200102,
1018     D3D11_SB_SHADER_MESSAGE_ID_ERROR = 0x00200103,
1019 }}
1020 ENUM!{enum D3D11_SB_SHADER_MESSAGE_FORMAT {
1021     D3D11_SB_SHADER_MESSAGE_FORMAT_ANSI_TEXT = 0,
1022     D3D11_SB_SHADER_MESSAGE_FORMAT_ANSI_PRINTF = 1,
1023 }}
1024 pub const D3D10_SB_GS_INPUT_PRIMITIVE_MASK: DWORD = 0x0001f800;
1025 pub const D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT: DWORD = 11;
1026 #[inline]
DECODE_D3D10_SB_GS_INPUT_PRIMITIVE(OpcodeToken0: DWORD) -> D3D10_SB_PRIMITIVE1027 pub fn DECODE_D3D10_SB_GS_INPUT_PRIMITIVE(OpcodeToken0: DWORD) -> D3D10_SB_PRIMITIVE {
1028     ((OpcodeToken0 & D3D10_SB_GS_INPUT_PRIMITIVE_MASK) >> D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT)
1029         as D3D10_SB_PRIMITIVE
1030 }
1031 #[inline]
ENCODE_D3D10_SB_GS_INPUT_PRIMITIVE(Prim: D3D10_SB_PRIMITIVE) -> DWORD1032 pub fn ENCODE_D3D10_SB_GS_INPUT_PRIMITIVE(Prim: D3D10_SB_PRIMITIVE) -> DWORD {
1033     (Prim << D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT) & D3D10_SB_GS_INPUT_PRIMITIVE_MASK
1034 }
1035 pub const D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK: DWORD = 0x0001f800;
1036 pub const D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT: DWORD = 11;
1037 #[inline]
DECODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY( OpcodeToken0: DWORD, ) -> D3D10_SB_PRIMITIVE_TOPOLOGY1038 pub fn DECODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(
1039     OpcodeToken0: DWORD,
1040 ) -> D3D10_SB_PRIMITIVE_TOPOLOGY {
1041     ((OpcodeToken0 & D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK)
1042         >> D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT) as D3D10_SB_PRIMITIVE_TOPOLOGY
1043 }
1044 #[inline]
ENCODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY( PrimTopology: D3D10_SB_PRIMITIVE_TOPOLOGY, ) -> DWORD1045 pub fn ENCODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(
1046     PrimTopology: D3D10_SB_PRIMITIVE_TOPOLOGY,
1047 ) -> DWORD {
1048     (PrimTopology << D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT)
1049         & D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK
1050 }
1051 pub const D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK: DWORD = 0x0001f800;
1052 pub const D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT: DWORD = 11;
1053 #[inline]
DECODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(OpcodeToken0: DWORD) -> UINT1054 pub fn DECODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(OpcodeToken0: DWORD) -> UINT {
1055     ((OpcodeToken0 & D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK)
1056         >> D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT) as UINT
1057 }
1058 #[inline]
ENCODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(Count: DWORD) -> DWORD1059 pub fn ENCODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(Count: DWORD) -> DWORD {
1060     (Count << D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT) & D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK
1061 }
1062 pub const D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK: DWORD = 0x0001f800;
1063 pub const D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT: DWORD = 11;
1064 #[inline]
DECODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(OpcodeToken0: DWORD) -> UINT1065 pub fn DECODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(OpcodeToken0: DWORD) -> UINT {
1066     ((OpcodeToken0 & D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK)
1067         >> D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT) as UINT
1068 }
1069 #[inline]
ENCODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(Count: DWORD) -> DWORD1070 pub fn ENCODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(Count: DWORD) -> DWORD {
1071     (Count << D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT) & D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK
1072 }
1073 ENUM!{enum D3D11_SB_TESSELLATOR_DOMAIN {
1074     D3D11_SB_TESSELLATOR_DOMAIN_UNDEFINED = 0,
1075     D3D11_SB_TESSELLATOR_DOMAIN_ISOLINE = 1,
1076     D3D11_SB_TESSELLATOR_DOMAIN_TRI = 2,
1077     D3D11_SB_TESSELLATOR_DOMAIN_QUAD = 3,
1078 }}
1079 pub const D3D11_SB_TESS_DOMAIN_MASK: DWORD = 0x00001800;
1080 pub const D3D11_SB_TESS_DOMAIN_SHIFT: DWORD = 11;
1081 #[inline]
DECODE_D3D11_SB_TESS_DOMAIN(OpcodeToken0: DWORD) -> D3D11_SB_TESSELLATOR_DOMAIN1082 pub fn DECODE_D3D11_SB_TESS_DOMAIN(OpcodeToken0: DWORD) -> D3D11_SB_TESSELLATOR_DOMAIN {
1083     ((OpcodeToken0 & D3D11_SB_TESS_DOMAIN_MASK) >> D3D11_SB_TESS_DOMAIN_SHIFT)
1084         as D3D11_SB_TESSELLATOR_DOMAIN
1085 }
1086 #[inline]
ENCODE_D3D11_SB_TESS_DOMAIN(Domain: D3D11_SB_TESSELLATOR_DOMAIN) -> DWORD1087 pub fn ENCODE_D3D11_SB_TESS_DOMAIN(Domain: D3D11_SB_TESSELLATOR_DOMAIN) -> DWORD {
1088     (Domain << D3D11_SB_TESS_DOMAIN_SHIFT) & D3D11_SB_TESS_DOMAIN_MASK
1089 }
1090 ENUM!{enum D3D11_SB_TESSELLATOR_PARTITIONING {
1091     D3D11_SB_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
1092     D3D11_SB_TESSELLATOR_PARTITIONING_INTEGER = 1,
1093     D3D11_SB_TESSELLATOR_PARTITIONING_POW2 = 2,
1094     D3D11_SB_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
1095     D3D11_SB_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
1096 }}
1097 pub const D3D11_SB_TESS_PARTITIONING_MASK: DWORD = 0x00003800;
1098 pub const D3D11_SB_TESS_PARTITIONING_SHIFT: DWORD = 11;
1099 #[inline]
DECODE_D3D11_SB_TESS_PARTITIONING( OpcodeToken0: DWORD, ) -> D3D11_SB_TESSELLATOR_PARTITIONING1100 pub fn DECODE_D3D11_SB_TESS_PARTITIONING(
1101     OpcodeToken0: DWORD,
1102 ) -> D3D11_SB_TESSELLATOR_PARTITIONING {
1103     ((OpcodeToken0 & D3D11_SB_TESS_PARTITIONING_MASK) >> D3D11_SB_TESS_PARTITIONING_SHIFT)
1104         as D3D11_SB_TESSELLATOR_PARTITIONING
1105 }
1106 #[inline]
ENCODE_D3D11_SB_TESS_PARTITIONING( Partitioning: D3D11_SB_TESSELLATOR_PARTITIONING, ) -> DWORD1107 pub fn ENCODE_D3D11_SB_TESS_PARTITIONING(
1108     Partitioning: D3D11_SB_TESSELLATOR_PARTITIONING,
1109 ) -> DWORD {
1110     (Partitioning << D3D11_SB_TESS_PARTITIONING_SHIFT) & D3D11_SB_TESS_PARTITIONING_MASK
1111 }
1112 ENUM!{enum D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE {
1113     D3D11_SB_TESSELLATOR_OUTPUT_UNDEFINED = 0,
1114     D3D11_SB_TESSELLATOR_OUTPUT_POINT = 1,
1115     D3D11_SB_TESSELLATOR_OUTPUT_LINE = 2,
1116     D3D11_SB_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
1117     D3D11_SB_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
1118 }}
1119 pub const D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK: DWORD = 0x00003800;
1120 pub const D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT: DWORD = 11;
1121 #[inline]
DECODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE( OpcodeToken0: DWORD, ) -> D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE1122 pub fn DECODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(
1123     OpcodeToken0: DWORD,
1124 ) -> D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE {
1125     ((OpcodeToken0 & D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK) >> D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT)
1126         as D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE
1127 }
1128 #[inline]
ENCODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE( OutputPrimitive: D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE, ) -> DWORD1129 pub fn ENCODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(
1130     OutputPrimitive: D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE,
1131 ) -> DWORD {
1132     (OutputPrimitive << D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT) & D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK
1133 }
1134 ENUM!{enum D3D10_SB_INTERPOLATION_MODE {
1135     D3D10_SB_INTERPOLATION_UNDEFINED = 0,
1136     D3D10_SB_INTERPOLATION_CONSTANT = 1,
1137     D3D10_SB_INTERPOLATION_LINEAR = 2,
1138     D3D10_SB_INTERPOLATION_LINEAR_CENTROID = 3,
1139     D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
1140     D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
1141     D3D10_SB_INTERPOLATION_LINEAR_SAMPLE = 6,
1142     D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
1143 }}
1144 ENUM!{enum D3D10_SB_PRIMITIVE_TOPOLOGY {
1145     D3D10_SB_PRIMITIVE_TOPOLOGY_UNDEFINED = 0,
1146     D3D10_SB_PRIMITIVE_TOPOLOGY_POINTLIST = 1,
1147     D3D10_SB_PRIMITIVE_TOPOLOGY_LINELIST = 2,
1148     D3D10_SB_PRIMITIVE_TOPOLOGY_LINESTRIP = 3,
1149     D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4,
1150     D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5,
1151     D3D10_SB_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10,
1152     D3D10_SB_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11,
1153     D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12,
1154     D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13,
1155 }}
1156 ENUM!{enum D3D10_SB_PRIMITIVE {
1157     D3D10_SB_PRIMITIVE_UNDEFINED = 0,
1158     D3D10_SB_PRIMITIVE_POINT = 1,
1159     D3D10_SB_PRIMITIVE_LINE = 2,
1160     D3D10_SB_PRIMITIVE_TRIANGLE = 3,
1161     D3D10_SB_PRIMITIVE_LINE_ADJ = 6,
1162     D3D10_SB_PRIMITIVE_TRIANGLE_ADJ = 7,
1163     D3D11_SB_PRIMITIVE_1_CONTROL_POINT_PATCH = 8,
1164     D3D11_SB_PRIMITIVE_2_CONTROL_POINT_PATCH = 9,
1165     D3D11_SB_PRIMITIVE_3_CONTROL_POINT_PATCH = 10,
1166     D3D11_SB_PRIMITIVE_4_CONTROL_POINT_PATCH = 11,
1167     D3D11_SB_PRIMITIVE_5_CONTROL_POINT_PATCH = 12,
1168     D3D11_SB_PRIMITIVE_6_CONTROL_POINT_PATCH = 13,
1169     D3D11_SB_PRIMITIVE_7_CONTROL_POINT_PATCH = 14,
1170     D3D11_SB_PRIMITIVE_8_CONTROL_POINT_PATCH = 15,
1171     D3D11_SB_PRIMITIVE_9_CONTROL_POINT_PATCH = 16,
1172     D3D11_SB_PRIMITIVE_10_CONTROL_POINT_PATCH = 17,
1173     D3D11_SB_PRIMITIVE_11_CONTROL_POINT_PATCH = 18,
1174     D3D11_SB_PRIMITIVE_12_CONTROL_POINT_PATCH = 19,
1175     D3D11_SB_PRIMITIVE_13_CONTROL_POINT_PATCH = 20,
1176     D3D11_SB_PRIMITIVE_14_CONTROL_POINT_PATCH = 21,
1177     D3D11_SB_PRIMITIVE_15_CONTROL_POINT_PATCH = 22,
1178     D3D11_SB_PRIMITIVE_16_CONTROL_POINT_PATCH = 23,
1179     D3D11_SB_PRIMITIVE_17_CONTROL_POINT_PATCH = 24,
1180     D3D11_SB_PRIMITIVE_18_CONTROL_POINT_PATCH = 25,
1181     D3D11_SB_PRIMITIVE_19_CONTROL_POINT_PATCH = 26,
1182     D3D11_SB_PRIMITIVE_20_CONTROL_POINT_PATCH = 27,
1183     D3D11_SB_PRIMITIVE_21_CONTROL_POINT_PATCH = 28,
1184     D3D11_SB_PRIMITIVE_22_CONTROL_POINT_PATCH = 29,
1185     D3D11_SB_PRIMITIVE_23_CONTROL_POINT_PATCH = 30,
1186     D3D11_SB_PRIMITIVE_24_CONTROL_POINT_PATCH = 31,
1187     D3D11_SB_PRIMITIVE_25_CONTROL_POINT_PATCH = 32,
1188     D3D11_SB_PRIMITIVE_26_CONTROL_POINT_PATCH = 33,
1189     D3D11_SB_PRIMITIVE_27_CONTROL_POINT_PATCH = 34,
1190     D3D11_SB_PRIMITIVE_28_CONTROL_POINT_PATCH = 35,
1191     D3D11_SB_PRIMITIVE_29_CONTROL_POINT_PATCH = 36,
1192     D3D11_SB_PRIMITIVE_30_CONTROL_POINT_PATCH = 37,
1193     D3D11_SB_PRIMITIVE_31_CONTROL_POINT_PATCH = 38,
1194     D3D11_SB_PRIMITIVE_32_CONTROL_POINT_PATCH = 39,
1195 }}
1196 ENUM!{enum D3D10_SB_COMPONENT_MASK {
1197     D3D10_SB_COMPONENT_MASK_X = 1,
1198     D3D10_SB_COMPONENT_MASK_Y = 2,
1199     D3D10_SB_COMPONENT_MASK_Z = 4,
1200     D3D10_SB_COMPONENT_MASK_W = 8,
1201     D3D10_SB_COMPONENT_MASK_R = 1,
1202     D3D10_SB_COMPONENT_MASK_G = 2,
1203     D3D10_SB_COMPONENT_MASK_B = 4,
1204     D3D10_SB_COMPONENT_MASK_A = 8,
1205     D3D10_SB_COMPONENT_MASK_ALL = 15,
1206 }}
1207 ENUM!{enum D3D10_SB_NAME {
1208     D3D10_SB_NAME_UNDEFINED = 0,
1209     D3D10_SB_NAME_POSITION = 1,
1210     D3D10_SB_NAME_CLIP_DISTANCE = 2,
1211     D3D10_SB_NAME_CULL_DISTANCE = 3,
1212     D3D10_SB_NAME_RENDER_TARGET_ARRAY_INDEX = 4,
1213     D3D10_SB_NAME_VIEWPORT_ARRAY_INDEX = 5,
1214     D3D10_SB_NAME_VERTEX_ID = 6,
1215     D3D10_SB_NAME_PRIMITIVE_ID = 7,
1216     D3D10_SB_NAME_INSTANCE_ID = 8,
1217     D3D10_SB_NAME_IS_FRONT_FACE = 9,
1218     D3D10_SB_NAME_SAMPLE_INDEX = 10,
1219     D3D11_SB_NAME_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR = 11,
1220     D3D11_SB_NAME_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR = 12,
1221     D3D11_SB_NAME_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR = 13,
1222     D3D11_SB_NAME_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR = 14,
1223     D3D11_SB_NAME_FINAL_QUAD_U_INSIDE_TESSFACTOR = 15,
1224     D3D11_SB_NAME_FINAL_QUAD_V_INSIDE_TESSFACTOR = 16,
1225     D3D11_SB_NAME_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR = 17,
1226     D3D11_SB_NAME_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR = 18,
1227     D3D11_SB_NAME_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR = 19,
1228     D3D11_SB_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 20,
1229     D3D11_SB_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 21,
1230     D3D11_SB_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 22,
1231 }}
1232 ENUM!{enum D3D10_SB_RESOURCE_DIMENSION {
1233     D3D10_SB_RESOURCE_DIMENSION_UNKNOWN = 0,
1234     D3D10_SB_RESOURCE_DIMENSION_BUFFER = 1,
1235     D3D10_SB_RESOURCE_DIMENSION_TEXTURE1D = 2,
1236     D3D10_SB_RESOURCE_DIMENSION_TEXTURE2D = 3,
1237     D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DMS = 4,
1238     D3D10_SB_RESOURCE_DIMENSION_TEXTURE3D = 5,
1239     D3D10_SB_RESOURCE_DIMENSION_TEXTURECUBE = 6,
1240     D3D10_SB_RESOURCE_DIMENSION_TEXTURE1DARRAY = 7,
1241     D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DARRAY = 8,
1242     D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DMSARRAY = 9,
1243     D3D10_SB_RESOURCE_DIMENSION_TEXTURECUBEARRAY = 10,
1244     D3D11_SB_RESOURCE_DIMENSION_RAW_BUFFER = 11,
1245     D3D11_SB_RESOURCE_DIMENSION_STRUCTURED_BUFFER = 12,
1246 }}
1247 ENUM!{enum D3D10_SB_RESOURCE_RETURN_TYPE {
1248     D3D10_SB_RETURN_TYPE_UNORM = 1,
1249     D3D10_SB_RETURN_TYPE_SNORM = 2,
1250     D3D10_SB_RETURN_TYPE_SINT = 3,
1251     D3D10_SB_RETURN_TYPE_UINT = 4,
1252     D3D10_SB_RETURN_TYPE_FLOAT = 5,
1253     D3D10_SB_RETURN_TYPE_MIXED = 6,
1254     D3D11_SB_RETURN_TYPE_DOUBLE = 7,
1255     D3D11_SB_RETURN_TYPE_CONTINUED = 8,
1256     D3D11_SB_RETURN_TYPE_UNUSED = 9,
1257 }}
1258 ENUM!{enum D3D10_SB_REGISTER_COMPONENT_TYPE {
1259     D3D10_SB_REGISTER_COMPONENT_UNKNOWN = 0,
1260     D3D10_SB_REGISTER_COMPONENT_UINT32 = 1,
1261     D3D10_SB_REGISTER_COMPONENT_SINT32 = 2,
1262     D3D10_SB_REGISTER_COMPONENT_FLOAT32 = 3,
1263 }}
1264 ENUM!{enum D3D10_SB_INSTRUCTION_RETURN_TYPE {
1265     D3D10_SB_INSTRUCTION_RETURN_FLOAT = 0,
1266     D3D10_SB_INSTRUCTION_RETURN_UINT = 1,
1267 }}
1268 pub const D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK: DWORD = 0x00001800;
1269 pub const D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT: DWORD = 11;
1270 #[inline]
DECODE_D3D10_SB_INSTRUCTION_RETURN_TYPE( OpcodeToken0: DWORD, ) -> D3D10_SB_INSTRUCTION_RETURN_TYPE1271 pub fn DECODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(
1272     OpcodeToken0: DWORD,
1273 ) -> D3D10_SB_INSTRUCTION_RETURN_TYPE {
1274     ((OpcodeToken0 & D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK)
1275         >> D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT) as D3D10_SB_INSTRUCTION_RETURN_TYPE
1276 }
1277 #[inline]
ENCODE_D3D10_SB_INSTRUCTION_RETURN_TYPE( ReturnType: D3D10_SB_INSTRUCTION_RETURN_TYPE, ) -> DWORD1278 pub fn ENCODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(
1279     ReturnType: D3D10_SB_INSTRUCTION_RETURN_TYPE,
1280 ) -> DWORD {
1281     (ReturnType << D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT) & D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK
1282 }
1283 pub const D3D11_SB_INTERFACE_INDEXED_BIT_MASK: DWORD = 0x00000800;
1284 pub const D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT: DWORD = 11;
1285 pub const D3D11_SB_INTERFACE_TABLE_LENGTH_MASK: DWORD = 0x0000ffff;
1286 pub const D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT: DWORD = 0;
1287 pub const D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK: DWORD = 0xffff0000;
1288 pub const D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT: DWORD = 16;
1289 #[inline]
DECODE_D3D11_SB_INTERFACE_INDEXED_BIT(OpcodeToken0: DWORD) -> DWORD1290 pub fn DECODE_D3D11_SB_INTERFACE_INDEXED_BIT(OpcodeToken0: DWORD) -> DWORD {
1291     if (OpcodeToken0 & D3D11_SB_INTERFACE_INDEXED_BIT_MASK) >> D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT
1292         != 0 { 1 } else { 0 }
1293 }
1294 #[inline]
ENCODE_D3D11_SB_INTERFACE_INDEXED_BIT(IndexedBit: DWORD) -> DWORD1295 pub fn ENCODE_D3D11_SB_INTERFACE_INDEXED_BIT(IndexedBit: DWORD) -> DWORD {
1296     (IndexedBit << D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT) & D3D11_SB_INTERFACE_INDEXED_BIT_MASK
1297 }
1298 #[inline]
DECODE_D3D11_SB_INTERFACE_TABLE_LENGTH(OpcodeToken0: DWORD) -> UINT1299 pub fn DECODE_D3D11_SB_INTERFACE_TABLE_LENGTH(OpcodeToken0: DWORD) -> UINT {
1300     ((OpcodeToken0 & D3D11_SB_INTERFACE_TABLE_LENGTH_MASK)
1301         >> D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT) as UINT
1302 }
1303 #[inline]
ENCODE_D3D11_SB_INTERFACE_TABLE_LENGTH(TableLength: DWORD) -> DWORD1304 pub fn ENCODE_D3D11_SB_INTERFACE_TABLE_LENGTH(TableLength: DWORD) -> DWORD {
1305     (TableLength << D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT) & D3D11_SB_INTERFACE_TABLE_LENGTH_MASK
1306 }
1307 #[inline]
DECODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(OpcodeToken0: DWORD) -> UINT1308 pub fn DECODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(OpcodeToken0: DWORD) -> UINT {
1309     ((OpcodeToken0 & D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK)
1310         >> D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT) as UINT
1311 }
1312 #[inline]
ENCODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(ArrayLength: DWORD) -> DWORD1313 pub fn ENCODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(ArrayLength: DWORD) -> DWORD {
1314     (ArrayLength << D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT) & D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK
1315 }
1316 pub const D3D11_SB_GLOBALLY_COHERENT_ACCESS: DWORD = 0x00010000;
1317 pub const D3D11_SB_ACCESS_COHERENCY_MASK: DWORD = 0x00010000;
1318 #[inline]
DECODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(OperandToken0: DWORD) -> DWORD1319 pub fn DECODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(OperandToken0: DWORD) -> DWORD {
1320     OperandToken0 & D3D11_SB_ACCESS_COHERENCY_MASK
1321 }
1322 #[inline]
ENCODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(Flags: DWORD) -> DWORD1323 pub fn ENCODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(Flags: DWORD) -> DWORD {
1324     Flags & D3D11_SB_ACCESS_COHERENCY_MASK
1325 }
1326 pub const D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER: DWORD = 0x00800000;
1327 pub const D3D11_SB_UAV_FLAGS_MASK: DWORD = 0x00800000;
1328 #[inline]
DECODE_D3D11_SB_UAV_FLAGS(OperandToken0: DWORD) -> DWORD1329 pub fn DECODE_D3D11_SB_UAV_FLAGS(OperandToken0: DWORD) -> DWORD {
1330     OperandToken0 & D3D11_SB_UAV_FLAGS_MASK
1331 }
1332 #[inline]
ENCODE_D3D11_SB_UAV_FLAGS(Flags: DWORD) -> DWORD1333 pub fn ENCODE_D3D11_SB_UAV_FLAGS(Flags: DWORD) -> DWORD {
1334     Flags & D3D11_SB_UAV_FLAGS_MASK
1335 }
1336