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