1 module aurora.directx.d3d.d3dcommon; 2 3 public import aurora.directx.com; 4 5 public: 6 7 /// 8 /// Constants 9 /// 10 11 enum int D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION = 2048; 12 enum int D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION = 4096; 13 enum int D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION = 2048; 14 enum int D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION = 4096; 15 enum int D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION = 512; 16 enum int D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION = 4096; 17 enum int D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 256; 18 enum int D3D_FL9_1_DEFAULT_MAX_ANISOTROPY = 2; 19 enum int D3D_FL9_1_IA_MAX_COUNT = 65535; 20 enum int D3D_FL9_2_IA_MAX_COUNT = 1048575; 21 enum int D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT = 1; 22 enum int D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT = 4; 23 enum int D3D_FL9_1_MAX_TEXTURE_REPEAT = 128; 24 enum int D3D_FL9_2_MAX_TEXTURE_REPEAT = 2048; 25 enum int D3D_FL9_3_MAX_TEXTURE_REPEAT = 8192; 26 27 /// 28 /// Functions 29 /// 30 31 /// 32 /// Enumerations 33 /// 34 35 enum D3D_DRIVER_TYPE 36 { 37 UNKNOWN = 0, 38 HARDWARE = ( UNKNOWN + 1 ) , 39 REFERENCE = ( HARDWARE + 1 ) , 40 NULL = ( REFERENCE + 1 ) , 41 SOFTWARE = ( NULL + 1 ) , 42 WARP = ( SOFTWARE + 1 ) 43 } 44 45 enum D3D_FEATURE_LEVEL 46 { 47 LEVEL_9_1 = 0x9100, 48 LEVEL_9_2 = 0x9200, 49 LEVEL_9_3 = 0x9300, 50 LEVEL_10_0 = 0xa000, 51 LEVEL_10_1 = 0xa100, 52 LEVEL_11_0 = 0xb000, 53 LEVEL_11_1 = 0xb100, 54 LEVEL_12_0 = 0xc000, 55 LEVEL_12_1 = 0xc100 56 } 57 58 enum D3D_PRIMITIVE_TOPOLOGY 59 { 60 D3D_UNDEFINED = 0, 61 D3D_POINTLIST = 1, 62 D3D_LINELIST = 2, 63 D3D_LINESTRIP = 3, 64 D3D_TRIANGLELIST = 4, 65 D3D_TRIANGLESTRIP = 5, 66 D3D_LINELIST_ADJ = 10, 67 D3D_LINESTRIP_ADJ = 11, 68 D3D_TRIANGLELIST_ADJ = 12, 69 D3D_TRIANGLESTRIP_ADJ = 13, 70 D3D_1_CONTROL_POINT_PATCHLIST = 33, 71 D3D_2_CONTROL_POINT_PATCHLIST = 34, 72 D3D_3_CONTROL_POINT_PATCHLIST = 35, 73 D3D_4_CONTROL_POINT_PATCHLIST = 36, 74 D3D_5_CONTROL_POINT_PATCHLIST = 37, 75 D3D_6_CONTROL_POINT_PATCHLIST = 38, 76 D3D_7_CONTROL_POINT_PATCHLIST = 39, 77 D3D_8_CONTROL_POINT_PATCHLIST = 40, 78 D3D_9_CONTROL_POINT_PATCHLIST = 41, 79 D3D_10_CONTROL_POINT_PATCHLIST = 42, 80 D3D_11_CONTROL_POINT_PATCHLIST = 43, 81 D3D_12_CONTROL_POINT_PATCHLIST = 44, 82 D3D_13_CONTROL_POINT_PATCHLIST = 45, 83 D3D_14_CONTROL_POINT_PATCHLIST = 46, 84 D3D_15_CONTROL_POINT_PATCHLIST = 47, 85 D3D_16_CONTROL_POINT_PATCHLIST = 48, 86 D3D_17_CONTROL_POINT_PATCHLIST = 49, 87 D3D_18_CONTROL_POINT_PATCHLIST = 50, 88 D3D_19_CONTROL_POINT_PATCHLIST = 51, 89 D3D_20_CONTROL_POINT_PATCHLIST = 52, 90 D3D_21_CONTROL_POINT_PATCHLIST = 53, 91 D3D_22_CONTROL_POINT_PATCHLIST = 54, 92 D3D_23_CONTROL_POINT_PATCHLIST = 55, 93 D3D_24_CONTROL_POINT_PATCHLIST = 56, 94 D3D_25_CONTROL_POINT_PATCHLIST = 57, 95 D3D_26_CONTROL_POINT_PATCHLIST = 58, 96 D3D_27_CONTROL_POINT_PATCHLIST = 59, 97 D3D_28_CONTROL_POINT_PATCHLIST = 60, 98 D3D_29_CONTROL_POINT_PATCHLIST = 61, 99 D3D_30_CONTROL_POINT_PATCHLIST = 62, 100 D3D_31_CONTROL_POINT_PATCHLIST = 63, 101 D3D_32_CONTROL_POINT_PATCHLIST = 64, 102 D3D10_UNDEFINED = D3D_UNDEFINED, 103 D3D10_POINTLIST = D3D_POINTLIST, 104 D3D10_LINELIST = D3D_LINELIST, 105 D3D10_LINESTRIP = D3D_LINESTRIP, 106 D3D10_TRIANGLELIST = D3D_TRIANGLELIST, 107 D3D10_TRIANGLESTRIP = D3D_TRIANGLESTRIP, 108 D3D10_LINELIST_ADJ = D3D_LINELIST_ADJ, 109 D3D10_LINESTRIP_ADJ = D3D_LINESTRIP_ADJ, 110 D3D10_TRIANGLELIST_ADJ = D3D_TRIANGLELIST_ADJ, 111 D3D10_TRIANGLESTRIP_ADJ = D3D_TRIANGLESTRIP_ADJ, 112 D3D11_UNDEFINED = D3D_UNDEFINED, 113 D3D11_POINTLIST = D3D_POINTLIST, 114 D3D11_LINELIST = D3D_LINELIST, 115 D3D11_LINESTRIP = D3D_LINESTRIP, 116 D3D11_TRIANGLELIST = D3D_TRIANGLELIST, 117 D3D11_TRIANGLESTRIP = D3D_TRIANGLESTRIP, 118 D3D11_LINELIST_ADJ = D3D_LINELIST_ADJ, 119 D3D11_LINESTRIP_ADJ = D3D_LINESTRIP_ADJ, 120 D3D11_TRIANGLELIST_ADJ = D3D_TRIANGLELIST_ADJ, 121 D3D11_TRIANGLESTRIP_ADJ = D3D_TRIANGLESTRIP_ADJ, 122 D3D11_1_CONTROL_POINT_PATCHLIST = D3D_1_CONTROL_POINT_PATCHLIST, 123 D3D11_2_CONTROL_POINT_PATCHLIST = D3D_2_CONTROL_POINT_PATCHLIST, 124 D3D11_3_CONTROL_POINT_PATCHLIST = D3D_3_CONTROL_POINT_PATCHLIST, 125 D3D11_4_CONTROL_POINT_PATCHLIST = D3D_4_CONTROL_POINT_PATCHLIST, 126 D3D11_5_CONTROL_POINT_PATCHLIST = D3D_5_CONTROL_POINT_PATCHLIST, 127 D3D11_6_CONTROL_POINT_PATCHLIST = D3D_6_CONTROL_POINT_PATCHLIST, 128 D3D11_7_CONTROL_POINT_PATCHLIST = D3D_7_CONTROL_POINT_PATCHLIST, 129 D3D11_8_CONTROL_POINT_PATCHLIST = D3D_8_CONTROL_POINT_PATCHLIST, 130 D3D11_9_CONTROL_POINT_PATCHLIST = D3D_9_CONTROL_POINT_PATCHLIST, 131 D3D11_10_CONTROL_POINT_PATCHLIST = D3D_10_CONTROL_POINT_PATCHLIST, 132 D3D11_11_CONTROL_POINT_PATCHLIST = D3D_11_CONTROL_POINT_PATCHLIST, 133 D3D11_12_CONTROL_POINT_PATCHLIST = D3D_12_CONTROL_POINT_PATCHLIST, 134 D3D11_13_CONTROL_POINT_PATCHLIST = D3D_13_CONTROL_POINT_PATCHLIST, 135 D3D11_14_CONTROL_POINT_PATCHLIST = D3D_14_CONTROL_POINT_PATCHLIST, 136 D3D11_15_CONTROL_POINT_PATCHLIST = D3D_15_CONTROL_POINT_PATCHLIST, 137 D3D11_16_CONTROL_POINT_PATCHLIST = D3D_16_CONTROL_POINT_PATCHLIST, 138 D3D11_17_CONTROL_POINT_PATCHLIST = D3D_17_CONTROL_POINT_PATCHLIST, 139 D3D11_18_CONTROL_POINT_PATCHLIST = D3D_18_CONTROL_POINT_PATCHLIST, 140 D3D11_19_CONTROL_POINT_PATCHLIST = D3D_19_CONTROL_POINT_PATCHLIST, 141 D3D11_20_CONTROL_POINT_PATCHLIST = D3D_20_CONTROL_POINT_PATCHLIST, 142 D3D11_21_CONTROL_POINT_PATCHLIST = D3D_21_CONTROL_POINT_PATCHLIST, 143 D3D11_22_CONTROL_POINT_PATCHLIST = D3D_22_CONTROL_POINT_PATCHLIST, 144 D3D11_23_CONTROL_POINT_PATCHLIST = D3D_23_CONTROL_POINT_PATCHLIST, 145 D3D11_24_CONTROL_POINT_PATCHLIST = D3D_24_CONTROL_POINT_PATCHLIST, 146 D3D11_25_CONTROL_POINT_PATCHLIST = D3D_25_CONTROL_POINT_PATCHLIST, 147 D3D11_26_CONTROL_POINT_PATCHLIST = D3D_26_CONTROL_POINT_PATCHLIST, 148 D3D11_27_CONTROL_POINT_PATCHLIST = D3D_27_CONTROL_POINT_PATCHLIST, 149 D3D11_28_CONTROL_POINT_PATCHLIST = D3D_28_CONTROL_POINT_PATCHLIST, 150 D3D11_29_CONTROL_POINT_PATCHLIST = D3D_29_CONTROL_POINT_PATCHLIST, 151 D3D11_30_CONTROL_POINT_PATCHLIST = D3D_30_CONTROL_POINT_PATCHLIST, 152 D3D11_31_CONTROL_POINT_PATCHLIST = D3D_31_CONTROL_POINT_PATCHLIST, 153 D3D11_32_CONTROL_POINT_PATCHLIST = D3D_32_CONTROL_POINT_PATCHLIST 154 } 155 156 enum D3D_PRIMITIVE 157 { 158 D3D_UNDEFINED = 0, 159 D3D_POINT = 1, 160 D3D_LINE = 2, 161 D3D_TRIANGLE = 3, 162 D3D_LINE_ADJ = 6, 163 D3D_TRIANGLE_ADJ = 7, 164 D3D_1_CONTROL_POINT_PATCH = 8, 165 D3D_2_CONTROL_POINT_PATCH = 9, 166 D3D_3_CONTROL_POINT_PATCH = 10, 167 D3D_4_CONTROL_POINT_PATCH = 11, 168 D3D_5_CONTROL_POINT_PATCH = 12, 169 D3D_6_CONTROL_POINT_PATCH = 13, 170 D3D_7_CONTROL_POINT_PATCH = 14, 171 D3D_8_CONTROL_POINT_PATCH = 15, 172 D3D_9_CONTROL_POINT_PATCH = 16, 173 D3D_10_CONTROL_POINT_PATCH = 17, 174 D3D_11_CONTROL_POINT_PATCH = 18, 175 D3D_12_CONTROL_POINT_PATCH = 19, 176 D3D_13_CONTROL_POINT_PATCH = 20, 177 D3D_14_CONTROL_POINT_PATCH = 21, 178 D3D_15_CONTROL_POINT_PATCH = 22, 179 D3D_16_CONTROL_POINT_PATCH = 23, 180 D3D_17_CONTROL_POINT_PATCH = 24, 181 D3D_18_CONTROL_POINT_PATCH = 25, 182 D3D_19_CONTROL_POINT_PATCH = 26, 183 D3D_20_CONTROL_POINT_PATCH = 27, 184 D3D_21_CONTROL_POINT_PATCH = 28, 185 D3D_22_CONTROL_POINT_PATCH = 29, 186 D3D_23_CONTROL_POINT_PATCH = 30, 187 D3D_24_CONTROL_POINT_PATCH = 31, 188 D3D_25_CONTROL_POINT_PATCH = 32, 189 D3D_26_CONTROL_POINT_PATCH = 33, 190 D3D_27_CONTROL_POINT_PATCH = 34, 191 D3D_28_CONTROL_POINT_PATCH = 35, 192 D3D_29_CONTROL_POINT_PATCH = 36, 193 D3D_30_CONTROL_POINT_PATCH = 37, 194 D3D_31_CONTROL_POINT_PATCH = 38, 195 D3D_32_CONTROL_POINT_PATCH = 39, 196 D3D10_UNDEFINED = D3D_UNDEFINED, 197 D3D10_POINT = D3D_POINT, 198 D3D10_LINE = D3D_LINE, 199 D3D10_TRIANGLE = D3D_TRIANGLE, 200 D3D10_LINE_ADJ = D3D_LINE_ADJ, 201 D3D10_TRIANGLE_ADJ = D3D_TRIANGLE_ADJ, 202 D3D11_UNDEFINED = D3D_UNDEFINED, 203 D3D11_POINT = D3D_POINT, 204 D3D11_LINE = D3D_LINE, 205 D3D11_TRIANGLE = D3D_TRIANGLE, 206 D3D11_LINE_ADJ = D3D_LINE_ADJ, 207 D3D11_TRIANGLE_ADJ = D3D_TRIANGLE_ADJ, 208 D3D11_1_CONTROL_POINT_PATCH = D3D_1_CONTROL_POINT_PATCH, 209 D3D11_2_CONTROL_POINT_PATCH = D3D_2_CONTROL_POINT_PATCH, 210 D3D11_3_CONTROL_POINT_PATCH = D3D_3_CONTROL_POINT_PATCH, 211 D3D11_4_CONTROL_POINT_PATCH = D3D_4_CONTROL_POINT_PATCH, 212 D3D11_5_CONTROL_POINT_PATCH = D3D_5_CONTROL_POINT_PATCH, 213 D3D11_6_CONTROL_POINT_PATCH = D3D_6_CONTROL_POINT_PATCH, 214 D3D11_7_CONTROL_POINT_PATCH = D3D_7_CONTROL_POINT_PATCH, 215 D3D11_8_CONTROL_POINT_PATCH = D3D_8_CONTROL_POINT_PATCH, 216 D3D11_9_CONTROL_POINT_PATCH = D3D_9_CONTROL_POINT_PATCH, 217 D3D11_10_CONTROL_POINT_PATCH = D3D_10_CONTROL_POINT_PATCH, 218 D3D11_11_CONTROL_POINT_PATCH = D3D_11_CONTROL_POINT_PATCH, 219 D3D11_12_CONTROL_POINT_PATCH = D3D_12_CONTROL_POINT_PATCH, 220 D3D11_13_CONTROL_POINT_PATCH = D3D_13_CONTROL_POINT_PATCH, 221 D3D11_14_CONTROL_POINT_PATCH = D3D_14_CONTROL_POINT_PATCH, 222 D3D11_15_CONTROL_POINT_PATCH = D3D_15_CONTROL_POINT_PATCH, 223 D3D11_16_CONTROL_POINT_PATCH = D3D_16_CONTROL_POINT_PATCH, 224 D3D11_17_CONTROL_POINT_PATCH = D3D_17_CONTROL_POINT_PATCH, 225 D3D11_18_CONTROL_POINT_PATCH = D3D_18_CONTROL_POINT_PATCH, 226 D3D11_19_CONTROL_POINT_PATCH = D3D_19_CONTROL_POINT_PATCH, 227 D3D11_20_CONTROL_POINT_PATCH = D3D_20_CONTROL_POINT_PATCH, 228 D3D11_21_CONTROL_POINT_PATCH = D3D_21_CONTROL_POINT_PATCH, 229 D3D11_22_CONTROL_POINT_PATCH = D3D_22_CONTROL_POINT_PATCH, 230 D3D11_23_CONTROL_POINT_PATCH = D3D_23_CONTROL_POINT_PATCH, 231 D3D11_24_CONTROL_POINT_PATCH = D3D_24_CONTROL_POINT_PATCH, 232 D3D11_25_CONTROL_POINT_PATCH = D3D_25_CONTROL_POINT_PATCH, 233 D3D11_26_CONTROL_POINT_PATCH = D3D_26_CONTROL_POINT_PATCH, 234 D3D11_27_CONTROL_POINT_PATCH = D3D_27_CONTROL_POINT_PATCH, 235 D3D11_28_CONTROL_POINT_PATCH = D3D_28_CONTROL_POINT_PATCH, 236 D3D11_29_CONTROL_POINT_PATCH = D3D_29_CONTROL_POINT_PATCH, 237 D3D11_30_CONTROL_POINT_PATCH = D3D_30_CONTROL_POINT_PATCH, 238 D3D11_31_CONTROL_POINT_PATCH = D3D_31_CONTROL_POINT_PATCH, 239 D3D11_32_CONTROL_POINT_PATCH = D3D_32_CONTROL_POINT_PATCH 240 } 241 242 enum D3D_SRV_DIMENSION 243 { 244 D3D_UNKNOWN = 0, 245 D3D_BUFFER = 1, 246 D3D_TEXTURE1D = 2, 247 D3D_TEXTURE1DARRAY = 3, 248 D3D_TEXTURE2D = 4, 249 D3D_TEXTURE2DARRAY = 5, 250 D3D_TEXTURE2DMS = 6, 251 D3D_TEXTURE2DMSARRAY = 7, 252 D3D_TEXTURE3D = 8, 253 D3D_TEXTURECUBE = 9, 254 D3D_TEXTURECUBEARRAY = 10, 255 D3D_BUFFEREX = 11, 256 D3D10_UNKNOWN = D3D_UNKNOWN, 257 D3D10_BUFFER = D3D_BUFFER, 258 D3D10_TEXTURE1D = D3D_TEXTURE1D, 259 D3D10_TEXTURE1DARRAY = D3D_TEXTURE1DARRAY, 260 D3D10_TEXTURE2D = D3D_TEXTURE2D, 261 D3D10_TEXTURE2DARRAY = D3D_TEXTURE2DARRAY, 262 D3D10_TEXTURE2DMS = D3D_TEXTURE2DMS, 263 D3D10_TEXTURE2DMSARRAY = D3D_TEXTURE2DMSARRAY, 264 D3D10_TEXTURE3D = D3D_TEXTURE3D, 265 D3D10_TEXTURECUBE = D3D_TEXTURECUBE, 266 D3D10_1_UNKNOWN = D3D_UNKNOWN, 267 D3D10_1_BUFFER = D3D_BUFFER, 268 D3D10_1_TEXTURE1D = D3D_TEXTURE1D, 269 D3D10_1_TEXTURE1DARRAY = D3D_TEXTURE1DARRAY, 270 D3D10_1_TEXTURE2D = D3D_TEXTURE2D, 271 D3D10_1_TEXTURE2DARRAY = D3D_TEXTURE2DARRAY, 272 D3D10_1_TEXTURE2DMS = D3D_TEXTURE2DMS, 273 D3D10_1_TEXTURE2DMSARRAY = D3D_TEXTURE2DMSARRAY, 274 D3D10_1_TEXTURE3D = D3D_TEXTURE3D, 275 D3D10_1_TEXTURECUBE = D3D_TEXTURECUBE, 276 D3D10_1_TEXTURECUBEARRAY = D3D_TEXTURECUBEARRAY, 277 D3D11_UNKNOWN = D3D_UNKNOWN, 278 D3D11_BUFFER = D3D_BUFFER, 279 D3D11_TEXTURE1D = D3D_TEXTURE1D, 280 D3D11_TEXTURE1DARRAY = D3D_TEXTURE1DARRAY, 281 D3D11_TEXTURE2D = D3D_TEXTURE2D, 282 D3D11_TEXTURE2DARRAY = D3D_TEXTURE2DARRAY, 283 D3D11_TEXTURE2DMS = D3D_TEXTURE2DMS, 284 D3D11_TEXTURE2DMSARRAY = D3D_TEXTURE2DMSARRAY, 285 D3D11_TEXTURE3D = D3D_TEXTURE3D, 286 D3D11_TEXTURECUBE = D3D_TEXTURECUBE, 287 D3D11_TEXTURECUBEARRAY = D3D_TEXTURECUBEARRAY, 288 D3D11_BUFFEREX = D3D_BUFFEREX 289 } 290 291 enum D3D_INCLUDE_TYPE 292 { 293 D3D_LOCAL = 0, 294 D3D_SYSTEM = ( D3D_LOCAL + 1 ) , 295 D3D10_LOCAL = D3D_LOCAL, 296 D3D10_SYSTEM = D3D_SYSTEM, 297 D3D_FORCE_DWORD = 0x7fffffff 298 } 299 300 enum D3D_SHADER_VARIABLE_CLASS 301 { 302 D3D_SCALAR = 0, 303 D3D_VECTOR = ( D3D_SCALAR + 1 ) , 304 D3D_MATRIX_ROWS = ( D3D_VECTOR + 1 ) , 305 D3D_MATRIX_COLUMNS = ( D3D_MATRIX_ROWS + 1 ) , 306 D3D_OBJECT = ( D3D_MATRIX_COLUMNS + 1 ) , 307 D3D_STRUCT = ( D3D_OBJECT + 1 ) , 308 D3D_INTERFACE_CLASS = ( D3D_STRUCT + 1 ) , 309 D3D_INTERFACE_POINTER = ( D3D_INTERFACE_CLASS + 1 ) , 310 D3D10_SCALAR = D3D_SCALAR, 311 D3D10_VECTOR = D3D_VECTOR, 312 D3D10_MATRIX_ROWS = D3D_MATRIX_ROWS, 313 D3D10_MATRIX_COLUMNS = D3D_MATRIX_COLUMNS, 314 D3D10_OBJECT = D3D_OBJECT, 315 D3D10_STRUCT = D3D_STRUCT, 316 D3D11_INTERFACE_CLASS = D3D_INTERFACE_CLASS, 317 D3D11_INTERFACE_POINTER = D3D_INTERFACE_POINTER, 318 D3D_FORCE_DWORD = 0x7fffffff 319 } 320 321 enum D3D_SHADER_VARIABLE_FLAGS 322 { 323 D3D_USERPACKED = 1, 324 D3D_USED = 2, 325 D3D_INTERFACE_POINTER = 4, 326 D3D_INTERFACE_PARAMETER = 8, 327 D3D10_USERPACKED = D3D_USERPACKED, 328 D3D10_USED = D3D_USED, 329 D3D11_INTERFACE_POINTER = D3D_INTERFACE_POINTER, 330 D3D11_INTERFACE_PARAMETER = D3D_INTERFACE_PARAMETER, 331 D3D_FORCE_DWORD = 0x7fffffff 332 } 333 334 enum D3D_SHADER_VARIABLE_TYPE 335 { 336 D3D_VOID = 0, 337 D3D_BOOL = 1, 338 D3D_INT = 2, 339 D3D_FLOAT = 3, 340 D3D_STRING = 4, 341 D3D_TEXTURE = 5, 342 D3D_TEXTURE1D = 6, 343 D3D_TEXTURE2D = 7, 344 D3D_TEXTURE3D = 8, 345 D3D_TEXTURECUBE = 9, 346 D3D_SAMPLER = 10, 347 D3D_SAMPLER1D = 11, 348 D3D_SAMPLER2D = 12, 349 D3D_SAMPLER3D = 13, 350 D3D_SAMPLERCUBE = 14, 351 D3D_PIXELSHADER = 15, 352 D3D_VERTEXSHADER = 16, 353 D3D_PIXELFRAGMENT = 17, 354 D3D_VERTEXFRAGMENT = 18, 355 D3D_UINT = 19, 356 D3D_UINT8 = 20, 357 D3D_GEOMETRYSHADER = 21, 358 D3D_RASTERIZER = 22, 359 D3D_DEPTHSTENCIL = 23, 360 D3D_BLEND = 24, 361 D3D_BUFFER = 25, 362 D3D_CBUFFER = 26, 363 D3D_TBUFFER = 27, 364 D3D_TEXTURE1DARRAY = 28, 365 D3D_TEXTURE2DARRAY = 29, 366 D3D_RENDERTARGETVIEW = 30, 367 D3D_DEPTHSTENCILVIEW = 31, 368 D3D_TEXTURE2DMS = 32, 369 D3D_TEXTURE2DMSARRAY = 33, 370 D3D_TEXTURECUBEARRAY = 34, 371 D3D_HULLSHADER = 35, 372 D3D_DOMAINSHADER = 36, 373 D3D_INTERFACE_POINTER = 37, 374 D3D_COMPUTESHADER = 38, 375 D3D_DOUBLE = 39, 376 D3D_RWTEXTURE1D = 40, 377 D3D_RWTEXTURE1DARRAY = 41, 378 D3D_RWTEXTURE2D = 42, 379 D3D_RWTEXTURE2DARRAY = 43, 380 D3D_RWTEXTURE3D = 44, 381 D3D_RWBUFFER = 45, 382 D3D_BYTEADDRESS_BUFFER = 46, 383 D3D_RWBYTEADDRESS_BUFFER = 47, 384 D3D_STRUCTURED_BUFFER = 48, 385 D3D_RWSTRUCTURED_BUFFER = 49, 386 D3D_APPEND_STRUCTURED_BUFFER = 50, 387 D3D_CONSUME_STRUCTURED_BUFFER = 51, 388 D3D_MIN8FLOAT = 52, 389 D3D_MIN10FLOAT = 53, 390 D3D_MIN16FLOAT = 54, 391 D3D_MIN12INT = 55, 392 D3D_MIN16INT = 56, 393 D3D_MIN16UINT = 57, 394 D3D10_VOID = D3D_VOID, 395 D3D10_BOOL = D3D_BOOL, 396 D3D10_INT = D3D_INT, 397 D3D10_FLOAT = D3D_FLOAT, 398 D3D10_STRING = D3D_STRING, 399 D3D10_TEXTURE = D3D_TEXTURE, 400 D3D10_TEXTURE1D = D3D_TEXTURE1D, 401 D3D10_TEXTURE2D = D3D_TEXTURE2D, 402 D3D10_TEXTURE3D = D3D_TEXTURE3D, 403 D3D10_TEXTURECUBE = D3D_TEXTURECUBE, 404 D3D10_SAMPLER = D3D_SAMPLER, 405 D3D10_SAMPLER1D = D3D_SAMPLER1D, 406 D3D10_SAMPLER2D = D3D_SAMPLER2D, 407 D3D10_SAMPLER3D = D3D_SAMPLER3D, 408 D3D10_SAMPLERCUBE = D3D_SAMPLERCUBE, 409 D3D10_PIXELSHADER = D3D_PIXELSHADER, 410 D3D10_VERTEXSHADER = D3D_VERTEXSHADER, 411 D3D10_PIXELFRAGMENT = D3D_PIXELFRAGMENT, 412 D3D10_VERTEXFRAGMENT = D3D_VERTEXFRAGMENT, 413 D3D10_UINT = D3D_UINT, 414 D3D10_UINT8 = D3D_UINT8, 415 D3D10_GEOMETRYSHADER = D3D_GEOMETRYSHADER, 416 D3D10_RASTERIZER = D3D_RASTERIZER, 417 D3D10_DEPTHSTENCIL = D3D_DEPTHSTENCIL, 418 D3D10_BLEND = D3D_BLEND, 419 D3D10_BUFFER = D3D_BUFFER, 420 D3D10_CBUFFER = D3D_CBUFFER, 421 D3D10_TBUFFER = D3D_TBUFFER, 422 D3D10_TEXTURE1DARRAY = D3D_TEXTURE1DARRAY, 423 D3D10_TEXTURE2DARRAY = D3D_TEXTURE2DARRAY, 424 D3D10_RENDERTARGETVIEW = D3D_RENDERTARGETVIEW, 425 D3D10_DEPTHSTENCILVIEW = D3D_DEPTHSTENCILVIEW, 426 D3D10_TEXTURE2DMS = D3D_TEXTURE2DMS, 427 D3D10_TEXTURE2DMSARRAY = D3D_TEXTURE2DMSARRAY, 428 D3D10_TEXTURECUBEARRAY = D3D_TEXTURECUBEARRAY, 429 D3D11_HULLSHADER = D3D_HULLSHADER, 430 D3D11_DOMAINSHADER = D3D_DOMAINSHADER, 431 D3D11_INTERFACE_POINTER = D3D_INTERFACE_POINTER, 432 D3D11_COMPUTESHADER = D3D_COMPUTESHADER, 433 D3D11_DOUBLE = D3D_DOUBLE, 434 D3D11_RWTEXTURE1D = D3D_RWTEXTURE1D, 435 D3D11_RWTEXTURE1DARRAY = D3D_RWTEXTURE1DARRAY, 436 D3D11_RWTEXTURE2D = D3D_RWTEXTURE2D, 437 D3D11_RWTEXTURE2DARRAY = D3D_RWTEXTURE2DARRAY, 438 D3D11_RWTEXTURE3D = D3D_RWTEXTURE3D, 439 D3D11_RWBUFFER = D3D_RWBUFFER, 440 D3D11_BYTEADDRESS_BUFFER = D3D_BYTEADDRESS_BUFFER, 441 D3D11_RWBYTEADDRESS_BUFFER = D3D_RWBYTEADDRESS_BUFFER, 442 D3D11_STRUCTURED_BUFFER = D3D_STRUCTURED_BUFFER, 443 D3D11_RWSTRUCTURED_BUFFER = D3D_RWSTRUCTURED_BUFFER, 444 D3D11_APPEND_STRUCTURED_BUFFER = D3D_APPEND_STRUCTURED_BUFFER, 445 D3D11_CONSUME_STRUCTURED_BUFFER = D3D_CONSUME_STRUCTURED_BUFFER, 446 D3D_FORCE_DWORD = 0x7fffffff 447 } 448 449 enum D3D_SHADER_INPUT_FLAGS 450 { 451 D3D_USERPACKED = 0x1, 452 D3D_COMPARISON_SAMPLER = 0x2, 453 D3D_TEXTURE_COMPONENT_0 = 0x4, 454 D3D_TEXTURE_COMPONENT_1 = 0x8, 455 D3D_TEXTURE_COMPONENTS = 0xc, 456 D3D_UNUSED = 0x10, 457 D3D10_USERPACKED = D3D_USERPACKED, 458 D3D10_COMPARISON_SAMPLER = D3D_COMPARISON_SAMPLER, 459 D3D10_TEXTURE_COMPONENT_0 = D3D_TEXTURE_COMPONENT_0, 460 D3D10_TEXTURE_COMPONENT_1 = D3D_TEXTURE_COMPONENT_1, 461 D3D10_TEXTURE_COMPONENTS = D3D_TEXTURE_COMPONENTS, 462 D3D_FORCE_DWORD = 0x7fffffff 463 } 464 465 enum D3D_SHADER_INPUT_TYPE 466 { 467 D3D_CBUFFER = 0, 468 D3D_TBUFFER = ( D3D_CBUFFER + 1 ) , 469 D3D_TEXTURE = ( D3D_TBUFFER + 1 ) , 470 D3D_SAMPLER = ( D3D_TEXTURE + 1 ) , 471 D3D_UAV_RWTYPED = ( D3D_SAMPLER + 1 ) , 472 D3D_STRUCTURED = ( D3D_UAV_RWTYPED + 1 ) , 473 D3D_UAV_RWSTRUCTURED = ( D3D_STRUCTURED + 1 ) , 474 D3D_BYTEADDRESS = ( D3D_UAV_RWSTRUCTURED + 1 ) , 475 D3D_UAV_RWBYTEADDRESS = ( D3D_BYTEADDRESS + 1 ) , 476 D3D_UAV_APPEND_STRUCTURED = ( D3D_UAV_RWBYTEADDRESS + 1 ) , 477 D3D_UAV_CONSUME_STRUCTURED = ( D3D_UAV_APPEND_STRUCTURED + 1 ) , 478 D3D_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_UAV_CONSUME_STRUCTURED + 1 ) , 479 D3D10_CBUFFER = D3D_CBUFFER, 480 D3D10_TBUFFER = D3D_TBUFFER, 481 D3D10_TEXTURE = D3D_TEXTURE, 482 D3D10_SAMPLER = D3D_SAMPLER, 483 D3D11_UAV_RWTYPED = D3D_UAV_RWTYPED, 484 D3D11_STRUCTURED = D3D_STRUCTURED, 485 D3D11_UAV_RWSTRUCTURED = D3D_UAV_RWSTRUCTURED, 486 D3D11_BYTEADDRESS = D3D_BYTEADDRESS, 487 D3D11_UAV_RWBYTEADDRESS = D3D_UAV_RWBYTEADDRESS, 488 D3D11_UAV_APPEND_STRUCTURED = D3D_UAV_APPEND_STRUCTURED, 489 D3D11_UAV_CONSUME_STRUCTURED = D3D_UAV_CONSUME_STRUCTURED, 490 D3D11_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_UAV_RWSTRUCTURED_WITH_COUNTER 491 } 492 493 enum D3D_SHADER_CBUFFER_FLAGS 494 { 495 D3D_USERPACKED = 1, 496 D3D10_USERPACKED = D3D_USERPACKED, 497 D3D_FORCE_DWORD = 0x7fffffff 498 } 499 500 enum D3D_CBUFFER_TYPE 501 { 502 D3D_CBUFFER = 0, 503 D3D_TBUFFER = ( D3D_CBUFFER + 1 ) , 504 D3D_INTERFACE_POINTERS = ( D3D_TBUFFER + 1 ) , 505 D3D_RESOURCE_BIND_INFO = ( D3D_INTERFACE_POINTERS + 1 ) , 506 D3D10_CBUFFER = D3D_CBUFFER, 507 D3D10_TBUFFER = D3D_TBUFFER, 508 D3D11_CBUFFER = D3D_CBUFFER, 509 D3D11_TBUFFER = D3D_TBUFFER, 510 D3D11_INTERFACE_POINTERS = D3D_INTERFACE_POINTERS, 511 D3D11_RESOURCE_BIND_INFO = D3D_RESOURCE_BIND_INFO 512 } 513 514 enum D3D_NAME 515 { 516 D3D_UNDEFINED = 0, 517 D3D_POSITION = 1, 518 D3D_CLIP_DISTANCE = 2, 519 D3D_CULL_DISTANCE = 3, 520 D3D_RENDER_TARGET_ARRAY_INDEX = 4, 521 D3D_VIEWPORT_ARRAY_INDEX = 5, 522 D3D_VERTEX_ID = 6, 523 D3D_ID = 7, 524 D3D_INSTANCE_ID = 8, 525 D3D_IS_FRONT_FACE = 9, 526 D3D_SAMPLE_INDEX = 10, 527 D3D_FINAL_QUAD_EDGE_TESSFACTOR = 11, 528 D3D_FINAL_QUAD_INSIDE_TESSFACTOR = 12, 529 D3D_FINAL_TRI_EDGE_TESSFACTOR = 13, 530 D3D_FINAL_TRI_INSIDE_TESSFACTOR = 14, 531 D3D_FINAL_LINE_DETAIL_TESSFACTOR = 15, 532 D3D_FINAL_LINE_DENSITY_TESSFACTOR = 16, 533 D3D_BARYCENTRICS = 23, 534 D3D_TARGET = 64, 535 D3D_DEPTH = 65, 536 D3D_COVERAGE = 66, 537 D3D_DEPTH_GREATER_EQUAL = 67, 538 D3D_DEPTH_LESS_EQUAL = 68, 539 D3D_STENCIL_REF = 69, 540 D3D_INNER_COVERAGE = 70, 541 D3D10_UNDEFINED = D3D_UNDEFINED, 542 D3D10_POSITION = D3D_POSITION, 543 D3D10_CLIP_DISTANCE = D3D_CLIP_DISTANCE, 544 D3D10_CULL_DISTANCE = D3D_CULL_DISTANCE, 545 D3D10_RENDER_TARGET_ARRAY_INDEX = D3D_RENDER_TARGET_ARRAY_INDEX, 546 D3D10_VIEWPORT_ARRAY_INDEX = D3D_VIEWPORT_ARRAY_INDEX, 547 D3D10_VERTEX_ID = D3D_VERTEX_ID, 548 D3D10_ID = D3D_ID, 549 D3D10_INSTANCE_ID = D3D_INSTANCE_ID, 550 D3D10_IS_FRONT_FACE = D3D_IS_FRONT_FACE, 551 D3D10_SAMPLE_INDEX = D3D_SAMPLE_INDEX, 552 D3D10_TARGET = D3D_TARGET, 553 D3D10_DEPTH = D3D_DEPTH, 554 D3D10_COVERAGE = D3D_COVERAGE, 555 D3D11_FINAL_QUAD_EDGE_TESSFACTOR = D3D_FINAL_QUAD_EDGE_TESSFACTOR, 556 D3D11_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_FINAL_QUAD_INSIDE_TESSFACTOR, 557 D3D11_FINAL_TRI_EDGE_TESSFACTOR = D3D_FINAL_TRI_EDGE_TESSFACTOR, 558 D3D11_FINAL_TRI_INSIDE_TESSFACTOR = D3D_FINAL_TRI_INSIDE_TESSFACTOR, 559 D3D11_FINAL_LINE_DETAIL_TESSFACTOR = D3D_FINAL_LINE_DETAIL_TESSFACTOR, 560 D3D11_FINAL_LINE_DENSITY_TESSFACTOR = D3D_FINAL_LINE_DENSITY_TESSFACTOR, 561 D3D11_DEPTH_GREATER_EQUAL = D3D_DEPTH_GREATER_EQUAL, 562 D3D11_DEPTH_LESS_EQUAL = D3D_DEPTH_LESS_EQUAL, 563 D3D11_STENCIL_REF = D3D_STENCIL_REF, 564 D3D11_INNER_COVERAGE = D3D_INNER_COVERAGE, 565 D3D12_BARYCENTRICS = D3D_BARYCENTRICS 566 } 567 568 enum D3D_RESOURCE_RETURN_TYPE 569 { 570 D3D_UNORM = 1, 571 D3D_SNORM = 2, 572 D3D_SINT = 3, 573 D3D_UINT = 4, 574 D3D_FLOAT = 5, 575 D3D_MIXED = 6, 576 D3D_DOUBLE = 7, 577 D3D_CONTINUED = 8, 578 D3D10_UNORM = D3D_UNORM, 579 D3D10_SNORM = D3D_SNORM, 580 D3D10_SINT = D3D_SINT, 581 D3D10_UINT = D3D_UINT, 582 D3D10_FLOAT = D3D_FLOAT, 583 D3D10_MIXED = D3D_MIXED, 584 D3D11_UNORM = D3D_UNORM, 585 D3D11_SNORM = D3D_SNORM, 586 D3D11_SINT = D3D_SINT, 587 D3D11_UINT = D3D_UINT, 588 D3D11_FLOAT = D3D_FLOAT, 589 D3D11_MIXED = D3D_MIXED, 590 D3D11_DOUBLE = D3D_DOUBLE, 591 D3D11_CONTINUED = D3D_CONTINUED 592 } 593 594 enum D3D_REGISTER_COMPONENT_TYPE 595 { 596 D3D_UNKNOWN = 0, 597 D3D_UINT32 = 1, 598 D3D_SINT32 = 2, 599 D3D_FLOAT32 = 3, 600 D3D10_UNKNOWN = D3D_UNKNOWN, 601 D3D10_UINT32 = D3D_UINT32, 602 D3D10_SINT32 = D3D_SINT32, 603 D3D10_FLOAT32 = D3D_FLOAT32 604 } 605 606 enum D3D_TESSELLATOR_DOMAIN 607 { 608 D3D_UNDEFINED = 0, 609 D3D_ISOLINE = 1, 610 D3D_TRI = 2, 611 D3D_QUAD = 3, 612 D3D11_UNDEFINED = D3D_UNDEFINED, 613 D3D11_ISOLINE = D3D_ISOLINE, 614 D3D11_TRI = D3D_TRI, 615 D3D11_QUAD = D3D_QUAD 616 } 617 618 enum D3D_TESSELLATOR_PARTITIONING 619 { 620 D3D_UNDEFINED = 0, 621 D3D_INTEGER = 1, 622 D3D_POW2 = 2, 623 D3D_FRACTIONAL_ODD = 3, 624 D3D_FRACTIONAL_EVEN = 4, 625 D3D11_UNDEFINED = D3D_UNDEFINED, 626 D3D11_INTEGER = D3D_INTEGER, 627 D3D11_POW2 = D3D_POW2, 628 D3D11_FRACTIONAL_ODD = D3D_FRACTIONAL_ODD, 629 D3D11_FRACTIONAL_EVEN = D3D_FRACTIONAL_EVEN 630 } 631 632 enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE 633 { 634 D3D_UNDEFINED = 0, 635 D3D_POINT = 1, 636 D3D_LINE = 2, 637 D3D_TRIANGLE_CW = 3, 638 D3D_TRIANGLE_CCW = 4, 639 D3D11_UNDEFINED = D3D_UNDEFINED, 640 D3D11_POINT = D3D_POINT, 641 D3D11_LINE = D3D_LINE, 642 D3D11_TRIANGLE_CW = D3D_TRIANGLE_CW, 643 D3D11_TRIANGLE_CCW = D3D_TRIANGLE_CCW 644 } 645 646 enum D3D_MIN_PRECISION 647 { 648 DEFAULT = 0, 649 FLOAT_16 = 1, 650 FLOAT_2_8 = 2, 651 RESERVED = 3, 652 SINT_16 = 4, 653 UINT_16 = 5, 654 ANY_16 = 0xf0, 655 ANY_10 = 0xf1 656 } 657 658 enum D3D_INTERPOLATION_MODE 659 { 660 UNDEFINED = 0, 661 CONSTANT = 1, 662 LINEAR = 2, 663 LINEAR_CENTROID = 3, 664 LINEAR_NOPERSPECTIVE = 4, 665 LINEAR_NOPERSPECTIVE_CENTROID = 5, 666 LINEAR_SAMPLE = 6, 667 LINEAR_NOPERSPECTIVE_SAMPLE = 7 668 } 669 670 enum D3D_PARAMETER_FLAGS 671 { 672 NONE = 0, 673 IN = 0x1, 674 OUT = 0x2, 675 FORCE_DWORD = 0x7fffffff 676 } 677 678 /// 679 /// Structures 680 /// 681 682 struct D3D_SHADER_MACRO 683 { 684 const char *Name; 685 const char *Definition; 686 } 687 688 /// 689 /// Interfaces 690 /// 691 692 mixin(uuid!(ID3DDestructionNotifier, "a06eb39a-50da-425b-8c31-4eecd6c270f3")); 693 public interface ID3DDestructionNotifier : IUnknown 694 { 695 extern(Windows): 696 HRESULT RegisterDestructionCallback(void* delegate(void *pData) callbackFn, void *pData, uint *pCallbackID); 697 HRESULT UnregisterDestructionCallback(uint callbackID); 698 } 699 700 mixin(uuid!(ID3D10Blob, "8BA5FB08-5195-40e2-AC58-0D989C3A0102")); 701 public interface ID3D10Blob : IUnknown 702 { 703 extern(Windows): 704 void *GetBufferPointer(); 705 size_t GetBufferSize(); 706 } 707 alias ID3D10Blob ID3DBlob; 708 709 public interface ID3DInclude : IUnknown 710 { 711 extern(Windows): 712 HRESULT Open(D3D_INCLUDE_TYPE IncludeType, const void *pFileName, const void *pParentData, const void **ppData, uint *pBytes); 713 HRESULT Close(const void *pData); 714 } 715