1 module directx.d3dcommon; 2 3 version(Windows): 4 5 public import directx.com; 6 7 alias D3DCOLOR = DWORD; 8 9 struct D3DVECTOR { 10 float x; 11 float y; 12 float z; 13 } 14 alias LPD3DVECTOR = D3DVECTOR*; 15 16 struct D3DCOLORVALUE { 17 float r; 18 float g; 19 float b; 20 float a; 21 } 22 alias LPD3DCOLORVALUE = D3DCOLORVALUE*; 23 24 struct D3DRECT { 25 LONG x1; 26 LONG y1; 27 LONG x2; 28 LONG y2; 29 } 30 alias LPD3DRECT = D3DRECT*; 31 32 union D3DMATRIX { 33 struct { 34 float _11, _12, _13, _14; 35 float _21, _22, _23, _24; 36 float _31, _32, _33, _34; 37 float _41, _42, _43, _44; 38 } 39 float[4][4] m; 40 } 41 alias LPD3DMATRIX = D3DMATRIX*; 42 43 alias D3DTRANSFORMSTATETYPE = DWORD; 44 enum : D3DTRANSFORMSTATETYPE { 45 D3DTS_VIEW = 2, 46 D3DTS_PROJECTION = 3, 47 D3DTS_TEXTURE0 = 16, 48 D3DTS_TEXTURE1 = 17, 49 D3DTS_TEXTURE2 = 18, 50 D3DTS_TEXTURE3 = 19, 51 D3DTS_TEXTURE4 = 20, 52 D3DTS_TEXTURE5 = 21, 53 D3DTS_TEXTURE6 = 22, 54 D3DTS_TEXTURE7 = 23 55 } 56 57 alias D3DTEXTURESTAGESTATETYPE = DWORD; 58 enum : D3DTEXTURESTAGESTATETYPE { 59 D3DTSS_COLOROP = 1, /* D3DTEXTUREOP - per-stage blending controls for color channels */ 60 D3DTSS_COLORARG1 = 2, /* D3DTA_* (texture arg) */ 61 D3DTSS_COLORARG2 = 3, /* D3DTA_* (texture arg) */ 62 D3DTSS_ALPHAOP = 4, /* D3DTEXTUREOP - per-stage blending controls for alpha channel */ 63 D3DTSS_ALPHAARG1 = 5, /* D3DTA_* (texture arg) */ 64 D3DTSS_ALPHAARG2 = 6, /* D3DTA_* (texture arg) */ 65 D3DTSS_BUMPENVMAT00 = 7, /* float (bump mapping matrix) */ 66 D3DTSS_BUMPENVMAT01 = 8, /* float (bump mapping matrix) */ 67 D3DTSS_BUMPENVMAT10 = 9, /* float (bump mapping matrix) */ 68 D3DTSS_BUMPENVMAT11 = 10, /* float (bump mapping matrix) */ 69 D3DTSS_TEXCOORDINDEX = 11, /* identifies which set of texture coordinates index this texture */ 70 D3DTSS_BUMPENVLSCALE = 22, /* float scale for bump map luminance */ 71 D3DTSS_BUMPENVLOFFSET = 23, /* float offset for bump map luminance */ 72 D3DTSS_TEXTURETRANSFORMFLAGS = 24, /* D3DTEXTURETRANSFORMFLAGS controls texture transform */ 73 D3DTSS_COLORARG0 = 26, /* D3DTA_* third arg for triadic ops */ 74 D3DTSS_ALPHAARG0 = 27, /* D3DTA_* third arg for triadic ops */ 75 D3DTSS_RESULTARG = 28, /* D3DTA_* arg for result (CURRENT or TEMP) */ 76 D3DTSS_CONSTANT = 32, /* Per-stage constant D3DTA_CONSTANT */ 77 } 78 79 alias D3DSTATEBLOCKTYPE = DWORD; 80 enum : D3DSTATEBLOCKTYPE { 81 D3DSBT_ALL = 1, // capture all state 82 D3DSBT_PIXELSTATE = 2, // capture pixel state 83 D3DSBT_VERTEXSTATE = 3, // capture vertex state 84 } 85 86 alias D3DRENDERSTATETYPE = DWORD; 87 enum : D3DRENDERSTATETYPE { 88 D3DRS_ZENABLE = 7, /* D3DZBUFFERTYPE (or TRUE/FALSE for legacy) */ 89 D3DRS_FILLMODE = 8, /* D3DFILLMODE */ 90 D3DRS_SHADEMODE = 9, /* D3DSHADEMODE */ 91 D3DRS_ZWRITEENABLE = 14, /* TRUE to enable z writes */ 92 D3DRS_ALPHATESTENABLE = 15, /* TRUE to enable alpha tests */ 93 D3DRS_LASTPIXEL = 16, /* TRUE for last-pixel on lines */ 94 D3DRS_SRCBLEND = 19, /* D3DBLEND */ 95 D3DRS_DESTBLEND = 20, /* D3DBLEND */ 96 D3DRS_CULLMODE = 22, /* D3DCULL */ 97 D3DRS_ZFUNC = 23, /* D3DCMPFUNC */ 98 D3DRS_ALPHAREF = 24, /* D3DFIXED */ 99 D3DRS_ALPHAFUNC = 25, /* D3DCMPFUNC */ 100 D3DRS_DITHERENABLE = 26, /* TRUE to enable dithering */ 101 D3DRS_ALPHABLENDENABLE = 27, /* TRUE to enable alpha blending */ 102 D3DRS_FOGENABLE = 28, /* TRUE to enable fog blending */ 103 D3DRS_SPECULARENABLE = 29, /* TRUE to enable specular */ 104 D3DRS_FOGCOLOR = 34, /* D3DCOLOR */ 105 D3DRS_FOGTABLEMODE = 35, /* D3DFOGMODE */ 106 D3DRS_FOGSTART = 36, /* Fog start (for both vertex and pixel fog) */ 107 D3DRS_FOGEND = 37, /* Fog end */ 108 D3DRS_FOGDENSITY = 38, /* Fog density */ 109 D3DRS_RANGEFOGENABLE = 48, /* Enables range-based fog */ 110 D3DRS_STENCILENABLE = 52, /* BOOL enable/disable stenciling */ 111 D3DRS_STENCILFAIL = 53, /* D3DSTENCILOP to do if stencil test fails */ 112 D3DRS_STENCILZFAIL = 54, /* D3DSTENCILOP to do if stencil test passes and Z test fails */ 113 D3DRS_STENCILPASS = 55, /* D3DSTENCILOP to do if both stencil and Z tests pass */ 114 D3DRS_STENCILFUNC = 56, /* D3DCMPFUNC fn. Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ 115 D3DRS_STENCILREF = 57, /* Reference value used in stencil test */ 116 D3DRS_STENCILMASK = 58, /* Mask value used in stencil test */ 117 D3DRS_STENCILWRITEMASK = 59, /* Write mask applied to values written to stencil buffer */ 118 D3DRS_TEXTUREFACTOR = 60, /* D3DCOLOR used for multi-texture blend */ 119 D3DRS_WRAP0 = 128, /* wrap for 1st texture coord. set */ 120 D3DRS_WRAP1 = 129, /* wrap for 2nd texture coord. set */ 121 D3DRS_WRAP2 = 130, /* wrap for 3rd texture coord. set */ 122 D3DRS_WRAP3 = 131, /* wrap for 4th texture coord. set */ 123 D3DRS_WRAP4 = 132, /* wrap for 5th texture coord. set */ 124 D3DRS_WRAP5 = 133, /* wrap for 6th texture coord. set */ 125 D3DRS_WRAP6 = 134, /* wrap for 7th texture coord. set */ 126 D3DRS_WRAP7 = 135, /* wrap for 8th texture coord. set */ 127 D3DRS_CLIPPING = 136, 128 D3DRS_LIGHTING = 137, 129 D3DRS_AMBIENT = 139, 130 D3DRS_FOGVERTEXMODE = 140, 131 D3DRS_COLORVERTEX = 141, 132 D3DRS_LOCALVIEWER = 142, 133 D3DRS_NORMALIZENORMALS = 143, 134 D3DRS_DIFFUSEMATERIALSOURCE = 145, 135 D3DRS_SPECULARMATERIALSOURCE = 146, 136 D3DRS_AMBIENTMATERIALSOURCE = 147, 137 D3DRS_EMISSIVEMATERIALSOURCE = 148, 138 D3DRS_VERTEXBLEND = 151, 139 D3DRS_CLIPPLANEENABLE = 152, 140 D3DRS_POINTSIZE = 154, /* float point size */ 141 D3DRS_POINTSIZE_MIN = 155, /* float point size min threshold */ 142 D3DRS_POINTSPRITEENABLE = 156, /* BOOL point texture coord control */ 143 D3DRS_POINTSCALEENABLE = 157, /* BOOL point size scale enable */ 144 D3DRS_POINTSCALE_A = 158, /* float point attenuation A value */ 145 D3DRS_POINTSCALE_B = 159, /* float point attenuation B value */ 146 D3DRS_POINTSCALE_C = 160, /* float point attenuation C value */ 147 D3DRS_MULTISAMPLEANTIALIAS = 161, // BOOL - set to do FSAA with multisample buffer 148 D3DRS_MULTISAMPLEMASK = 162, // DWORD - per-sample enable/disable 149 D3DRS_PATCHEDGESTYLE = 163, // Sets whether patch edges will use float style tessellation 150 D3DRS_DEBUGMONITORTOKEN = 165, // DEBUG ONLY - token to debug monitor 151 D3DRS_POINTSIZE_MAX = 166, /* float point size max threshold */ 152 D3DRS_INDEXEDVERTEXBLENDENABLE = 167, 153 D3DRS_COLORWRITEENABLE = 168, // per-channel write enable 154 D3DRS_TWEENFACTOR = 170, // float tween factor 155 D3DRS_BLENDOP = 171, // D3DBLENDOP setting 156 D3DRS_POSITIONDEGREE = 172, // NPatch position interpolation degree. D3DDEGREE_LINEAR or D3DDEGREE_CUBIC (default) 157 D3DRS_NORMALDEGREE = 173, // NPatch normal interpolation degree. D3DDEGREE_LINEAR (default) or D3DDEGREE_QUADRATIC 158 D3DRS_SCISSORTESTENABLE = 174, 159 D3DRS_SLOPESCALEDEPTHBIAS = 175, 160 D3DRS_ANTIALIASEDLINEENABLE = 176, 161 D3DRS_MINTESSELLATIONLEVEL = 178, 162 D3DRS_MAXTESSELLATIONLEVEL = 179, 163 D3DRS_ADAPTIVETESS_X = 180, 164 D3DRS_ADAPTIVETESS_Y = 181, 165 D3DRS_ADAPTIVETESS_Z = 182, 166 D3DRS_ADAPTIVETESS_W = 183, 167 D3DRS_ENABLEADAPTIVETESSELLATION = 184, 168 D3DRS_TWOSIDEDSTENCILMODE = 185, /* BOOL enable/disable 2 sided stenciling */ 169 D3DRS_CCW_STENCILFAIL = 186, /* D3DSTENCILOP to do if ccw stencil test fails */ 170 D3DRS_CCW_STENCILZFAIL = 187, /* D3DSTENCILOP to do if ccw stencil test passes and Z test fails */ 171 D3DRS_CCW_STENCILPASS = 188, /* D3DSTENCILOP to do if both ccw stencil and Z tests pass */ 172 D3DRS_CCW_STENCILFUNC = 189, /* D3DCMPFUNC fn. ccw Stencil Test passes if ((ref & mask) stencilfn (stencil & mask)) is true */ 173 D3DRS_COLORWRITEENABLE1 = 190, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 174 D3DRS_COLORWRITEENABLE2 = 191, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 175 D3DRS_COLORWRITEENABLE3 = 192, /* Additional ColorWriteEnables for the devices that support D3DPMISCCAPS_INDEPENDENTWRITEMASKS */ 176 D3DRS_BLENDFACTOR = 193, /* D3DCOLOR used for a constant blend factor during alpha blending for devices that support D3DPBLENDCAPS_BLENDFACTOR */ 177 D3DRS_SRGBWRITEENABLE = 194, /* Enable rendertarget writes to be DE-linearized to SRGB (for formats that expose D3DUSAGE_QUERY_SRGBWRITE) */ 178 D3DRS_DEPTHBIAS = 195, 179 D3DRS_WRAP8 = 198, /* Additional wrap states for vs_3_0+ attributes with D3DDECLUSAGE_TEXCOORD */ 180 D3DRS_WRAP9 = 199, 181 D3DRS_WRAP10 = 200, 182 D3DRS_WRAP11 = 201, 183 D3DRS_WRAP12 = 202, 184 D3DRS_WRAP13 = 203, 185 D3DRS_WRAP14 = 204, 186 D3DRS_WRAP15 = 205, 187 D3DRS_SEPARATEALPHABLENDENABLE = 206, /* TRUE to enable a separate blending function for the alpha channel */ 188 D3DRS_SRCBLENDALPHA = 207, /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 189 D3DRS_DESTBLENDALPHA = 208, /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 190 D3DRS_BLENDOPALPHA = 209, /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */ 191 } 192 193 alias D3DPRIMITIVETYPE = DWORD; 194 enum : D3DPRIMITIVETYPE { 195 D3DPT_POINTLIST = 1, 196 D3DPT_LINELIST = 2, 197 D3DPT_LINESTRIP = 3, 198 D3DPT_TRIANGLELIST = 4, 199 D3DPT_TRIANGLESTRIP = 5, 200 D3DPT_TRIANGLEFAN = 6 201 } 202 203 alias D3DLIGHTTYPE = DWORD; 204 enum : D3DLIGHTTYPE { 205 D3DLIGHT_POINT = 1, 206 D3DLIGHT_SPOT = 2, 207 D3DLIGHT_DIRECTIONAL = 3 208 } 209 210 enum D3DADAPTER_DEFAULT = 0; 211 212 enum { 213 D3DCLEAR_TARGET = 0x00000001, /* Clear target surface */ 214 D3DCLEAR_ZBUFFER = 0x00000002, /* Clear target z buffer */ 215 D3DCLEAR_STENCIL = 0x00000004 /* Clear stencil planes */ 216 } 217 218 alias D3DDEVTYPE = DWORD; 219 enum : D3DDEVTYPE { 220 D3DDEVTYPE_HAL = 1, 221 D3DDEVTYPE_NULLREF = 4, 222 D3DDEVTYPE_REF = 2, 223 D3DDEVTYPE_SW = 3 224 } 225 226 alias D3DFORMAT = DWORD; 227 enum : D3DFORMAT { 228 D3DFMT_UNKNOWN = 0, 229 230 D3DFMT_R8G8B8 = 20, 231 D3DFMT_A8R8G8B8 = 21, 232 D3DFMT_X8R8G8B8 = 22, 233 D3DFMT_R5G6B5 = 23, 234 D3DFMT_X1R5G5B5 = 24, 235 D3DFMT_A1R5G5B5 = 25, 236 D3DFMT_A4R4G4B4 = 26, 237 D3DFMT_R3G3B2 = 27, 238 D3DFMT_A8 = 28, 239 D3DFMT_A8R3G3B2 = 29, 240 D3DFMT_X4R4G4B4 = 30, 241 D3DFMT_A2B10G10R10 = 31, 242 D3DFMT_A8B8G8R8 = 32, 243 D3DFMT_X8B8G8R8 = 33, 244 D3DFMT_G16R16 = 34, 245 D3DFMT_A2R10G10B10 = 35, 246 D3DFMT_A16B16G16R16 = 36, 247 248 D3DFMT_A8P8 = 40, 249 D3DFMT_P8 = 41, 250 251 D3DFMT_L8 = 50, 252 D3DFMT_A8L8 = 51, 253 D3DFMT_A4L4 = 52, 254 255 D3DFMT_V8U8 = 60, 256 D3DFMT_L6V5U5 = 61, 257 D3DFMT_X8L8V8U8 = 62, 258 D3DFMT_Q8W8V8U8 = 63, 259 D3DFMT_V16U16 = 64, 260 D3DFMT_A2W10V10U10 = 67, 261 262 /*D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'), 263 D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'), 264 D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'), 265 D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'), 266 D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'), 267 D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'), 268 D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'), 269 D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'), 270 D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),*/ 271 272 D3DFMT_D16_LOCKABLE = 70, 273 D3DFMT_D32 = 71, 274 D3DFMT_D15S1 = 73, 275 D3DFMT_D24S8 = 75, 276 D3DFMT_D24X8 = 77, 277 D3DFMT_D24X4S4 = 79, 278 D3DFMT_D16 = 80, 279 280 D3DFMT_D32F_LOCKABLE = 82, 281 D3DFMT_D24FS8 = 83, 282 283 /* D3D9Ex only -- */ 284 D3DFMT_D32_LOCKABLE = 84, 285 D3DFMT_S8_LOCKABLE = 85, 286 /* -- D3D9Ex only */ 287 288 D3DFMT_L16 = 81, 289 290 D3DFMT_VERTEXDATA =100, 291 D3DFMT_INDEX16 =101, 292 D3DFMT_INDEX32 =102, 293 294 D3DFMT_Q16W16V16U16 =110, 295 296 //D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'), 297 298 D3DFMT_R16F = 111, 299 D3DFMT_G16R16F = 112, 300 D3DFMT_A16B16G16R16F = 113, 301 302 D3DFMT_R32F = 114, 303 D3DFMT_G32R32F = 115, 304 D3DFMT_A32B32G32R32F = 116, 305 306 D3DFMT_CxV8U8 = 117, 307 308 /* D3D9Ex only -- */ 309 D3DFMT_A1 = 118, 310 D3DFMT_A2B10G10R10_XR_BIAS = 119, 311 D3DFMT_BINARYBUFFER = 199 312 /* -- D3D9Ex only */ 313 } 314 315 alias D3DMULTISAMPLE_TYPE = DWORD; 316 enum : D3DMULTISAMPLE_TYPE { 317 TODO_D3DMULTISAMPLE_TYPE 318 } 319 320 alias D3DRESOURCETYPE = DWORD; 321 enum : D3DRESOURCETYPE { 322 TODO_D3DRESOURCETYPE 323 } 324 325 alias D3DBACKBUFFER_TYPE = DWORD; 326 enum : D3DBACKBUFFER_TYPE { 327 D3DBACKBUFFER_TYPE_MONO = 0, 328 D3DBACKBUFFER_TYPE_LEFT = 1, 329 D3DBACKBUFFER_TYPE_RIGHT = 2 330 } 331 332 alias D3DSWAPEFFECT = DWORD; 333 enum : D3DSWAPEFFECT { 334 D3DSWAPEFFECT_DISCARD = 1, 335 D3DSWAPEFFECT_FLIP = 2, 336 D3DSWAPEFFECT_COPY = 3, 337 338 /* D3D9Ex only -- */ 339 D3DSWAPEFFECT_OVERLAY = 4, 340 D3DSWAPEFFECT_FLIPEX = 5 341 /* -- D3D9Ex only */ 342 } 343 344 alias D3DPOOL = DWORD; 345 enum : D3DPOOL { 346 D3DPOOL_DEFAULT = 0, 347 D3DPOOL_MANAGED = 1, 348 D3DPOOL_SYSTEMMEM = 2, 349 D3DPOOL_SCRATCH = 3 350 } 351 352 alias D3DBASISTYPE = DWORD; 353 enum : D3DBASISTYPE { 354 D3DBASIS_BEZIER = 0, 355 D3DBASIS_BSPLINE = 1, 356 D3DBASIS_CATMULL_ROM = 2, /* In D3D8 this used to be D3DBASIS_INTERPOLATE */ 357 } 358 359 alias D3DDEGREETYPE = DWORD; 360 enum : D3DDEGREETYPE { 361 D3DDEGREE_LINEAR = 1, 362 D3DDEGREE_QUADRATIC = 2, 363 D3DDEGREE_CUBIC = 3, 364 D3DDEGREE_QUINTIC = 5 365 } 366 367 struct D3DRECTPATCH_INFO { 368 UINT StartVertexOffsetWidth; 369 UINT StartVertexOffsetHeight; 370 UINT Width; 371 UINT Height; 372 UINT Stride; 373 D3DBASISTYPE Basis; 374 D3DDEGREETYPE Degree; 375 } 376 377 struct D3DTRIPATCH_INFO { 378 UINT StartVertexOffset; 379 UINT NumVertices; 380 D3DBASISTYPE Basis; 381 D3DDEGREETYPE Degree; 382 } 383 384 alias D3DCUBEMAP_FACES = DWORD; 385 enum : D3DCUBEMAP_FACES { 386 D3DCUBEMAP_FACE_POSITIVE_X = 0, 387 D3DCUBEMAP_FACE_NEGATIVE_X = 1, 388 D3DCUBEMAP_FACE_POSITIVE_Y = 2, 389 D3DCUBEMAP_FACE_NEGATIVE_Y = 3, 390 D3DCUBEMAP_FACE_POSITIVE_Z = 4, 391 D3DCUBEMAP_FACE_NEGATIVE_Z = 5 392 } 393 394 struct D3DSURFACE_DESC { 395 D3DFORMAT Format; 396 D3DRESOURCETYPE Type; 397 DWORD Usage; 398 D3DPOOL Pool; 399 UINT Size; 400 401 D3DMULTISAMPLE_TYPE MultiSampleType; 402 UINT Width; 403 UINT Height; 404 } 405 406 struct D3DVOLUME_DESC { 407 D3DFORMAT Format; 408 D3DRESOURCETYPE Type; 409 DWORD Usage; 410 D3DPOOL Pool; 411 UINT Size; 412 413 UINT Width; 414 UINT Height; 415 UINT Depth; 416 } 417 418 struct D3DLOCKED_RECT { 419 INT Pitch; 420 void* pBits; 421 } 422 423 struct D3DBOX { 424 UINT Left; 425 UINT Top; 426 UINT Right; 427 UINT Bottom; 428 UINT Front; 429 UINT Back; 430 } 431 432 struct D3DLOCKED_BOX { 433 INT RowPitch; 434 INT SlicePitch; 435 void* pBits; 436 } 437 438 struct D3DGAMMARAMP { 439 WORD[256] red ; 440 WORD[256] green; 441 WORD[256] blue ; 442 } 443 444 struct D3DDEVICE_CREATION_PARAMETERS { 445 UINT AdapterOrdinal; 446 D3DDEVTYPE DeviceType; 447 HWND hFocusWindow; 448 DWORD BehaviorFlags; 449 } 450 451 struct D3DDISPLAYMODE { 452 UINT Width; 453 UINT Height; 454 UINT RefreshRate; 455 D3DFORMAT Format; 456 } 457 458 struct D3DPRESENT_PARAMETERS { 459 UINT BackBufferWidth; 460 UINT BackBufferHeight; 461 D3DFORMAT BackBufferFormat; 462 UINT BackBufferCount; 463 464 D3DMULTISAMPLE_TYPE MultiSampleType; 465 version (_D3D9) DWORD MultiSampleQuality; 466 467 D3DSWAPEFFECT SwapEffect; 468 HWND hDeviceWindow; 469 BOOL Windowed; 470 BOOL EnableAutoDepthStencil; 471 D3DFORMAT AutoDepthStencilFormat; 472 DWORD Flags; 473 474 /* FullScreen_RefreshRateInHz must be zero for Windowed mode */ 475 UINT FullScreen_RefreshRateInHz; 476 UINT FullScreen_PresentationInterval; 477 } 478 479 enum MAX_DEVICE_IDENTIFIER_STRING = 512; 480 struct D3DADAPTER_IDENTIFIER8 { 481 char[MAX_DEVICE_IDENTIFIER_STRING] Driver; 482 char[MAX_DEVICE_IDENTIFIER_STRING] Description; 483 484 //#ifdef _WIN32 485 LARGE_INTEGER DriverVersion; /* Defined for 32 bit components */ 486 //#else 487 // DWORD DriverVersionLowPart; /* Defined for 16 bit driver components */ 488 // DWORD DriverVersionHighPart; 489 //#endif 490 491 DWORD VendorId; 492 DWORD DeviceId; 493 DWORD SubSysId; 494 DWORD Revision; 495 496 GUID DeviceIdentifier; 497 498 DWORD WHQLLevel; 499 } 500 501 struct D3DADAPTER_IDENTIFIER9 { 502 D3DADAPTER_IDENTIFIER8 identifier8; alias identifier8 this; 503 } 504 505 struct D3DRASTER_STATUS { 506 BOOL InVBlank; 507 UINT ScanLine; 508 } 509 510 struct D3DCAPS8 { 511 /* Device Info */ 512 D3DDEVTYPE DeviceType; 513 UINT AdapterOrdinal; 514 515 /* Caps from DX7 Draw */ 516 DWORD Caps; 517 DWORD Caps2; 518 DWORD Caps3; 519 DWORD PresentationIntervals; 520 521 /* Cursor Caps */ 522 DWORD CursorCaps; 523 524 /* 3D Device Caps */ 525 DWORD DevCaps; 526 527 DWORD PrimitiveMiscCaps; 528 DWORD RasterCaps; 529 DWORD ZCmpCaps; 530 DWORD SrcBlendCaps; 531 DWORD DestBlendCaps; 532 DWORD AlphaCmpCaps; 533 DWORD ShadeCaps; 534 DWORD TextureCaps; 535 DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture8's 536 DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture8's 537 DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture8's 538 DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture8's 539 DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture8's 540 541 DWORD LineCaps; // D3DLINECAPS 542 543 DWORD MaxTextureWidth, MaxTextureHeight; 544 DWORD MaxVolumeExtent; 545 546 DWORD MaxTextureRepeat; 547 DWORD MaxTextureAspectRatio; 548 DWORD MaxAnisotropy; 549 float MaxVertexW; 550 551 float GuardBandLeft; 552 float GuardBandTop; 553 float GuardBandRight; 554 float GuardBandBottom; 555 556 float ExtentsAdjust; 557 DWORD StencilCaps; 558 559 DWORD FVFCaps; 560 DWORD TextureOpCaps; 561 DWORD MaxTextureBlendStages; 562 DWORD MaxSimultaneousTextures; 563 564 DWORD VertexProcessingCaps; 565 DWORD MaxActiveLights; 566 DWORD MaxUserClipPlanes; 567 DWORD MaxVertexBlendMatrices; 568 DWORD MaxVertexBlendMatrixIndex; 569 570 float MaxPointSize; 571 572 DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call 573 DWORD MaxVertexIndex; 574 DWORD MaxStreams; 575 DWORD MaxStreamStride; // max stride for SetStreamSource 576 577 DWORD VertexShaderVersion; 578 DWORD MaxVertexShaderConst; // number of vertex shader constant registers 579 580 DWORD PixelShaderVersion; 581 float MaxPixelShaderValue; // max value of pixel shader arithmetic component 582 } 583 584 struct D3DVSHADERCAPS2_0 { 585 DWORD Caps; 586 INT DynamicFlowControlDepth; 587 INT NumTemps; 588 INT StaticFlowControlDepth; 589 } 590 591 struct D3DPSHADERCAPS2_0 { 592 DWORD Caps; 593 INT DynamicFlowControlDepth; 594 INT NumTemps; 595 INT StaticFlowControlDepth; 596 INT NumInstructionSlots; 597 } 598 599 struct D3DCAPS9 { 600 D3DCAPS8 d3dcaps8; alias d3dcaps8 this; 601 602 // Here are the DX9 specific ones 603 DWORD DevCaps2; 604 605 float MaxNpatchTessellationLevel; 606 DWORD Reserved5; 607 608 UINT MasterAdapterOrdinal; // ordinal of master adaptor for adapter group 609 UINT AdapterOrdinalInGroup; // ordinal inside the adapter group 610 UINT NumberOfAdaptersInGroup; // number of adapters in this adapter group (only if master) 611 DWORD DeclTypes; // Data types, supported in vertex declarations 612 DWORD NumSimultaneousRTs; // Will be at least 1 613 DWORD StretchRectFilterCaps; // Filter caps supported by StretchRect 614 D3DVSHADERCAPS2_0 VS20Caps; 615 D3DPSHADERCAPS2_0 PS20Caps; 616 DWORD VertexTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture9's for texture, used in vertex shaders 617 DWORD MaxVShaderInstructionsExecuted; // maximum number of vertex shader instructions that can be executed 618 DWORD MaxPShaderInstructionsExecuted; // maximum number of pixel shader instructions that can be executed 619 DWORD MaxVertexShader30InstructionSlots; 620 DWORD MaxPixelShader30InstructionSlots; 621 } 622 623 enum { 624 D3DCREATE_FPU_PRESERVE = 0x00000002, 625 D3DCREATE_MULTITHREADED = 0x00000004, 626 627 D3DCREATE_PUREDEVICE = 0x00000010, 628 D3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020, 629 D3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040, 630 D3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080, 631 632 D3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100, 633 D3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200, 634 D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX = 0x00000400, 635 636 // This flag causes the D3D runtime not to alter the focus 637 // window in any way. Use with caution- the burden of supporting 638 // focus management events (alt-tab, etc.) falls on the 639 // application, and appropriate responses (switching display 640 // mode, etc.) should be coded. 641 D3DCREATE_NOWINDOWCHANGES = 0x00000800, 642 643 /* D3D9Ex only -- */ 644 645 // Disable multithreading for software vertex processing 646 D3DCREATE_DISABLE_PSGP_THREADING = 0x00002000, 647 // This flag enables present statistics on device. 648 D3DCREATE_ENABLE_PRESENTSTATS = 0x00004000, 649 // This flag disables printscreen support in the runtime for this device 650 D3DCREATE_DISABLE_PRINTSCREEN = 0x00008000, 651 652 D3DCREATE_SCREENSAVER = 0x10000000 653 } 654 655 enum { 656 /* Usages */ 657 D3DUSAGE_RENDERTARGET = 0x00000001, 658 D3DUSAGE_DEPTHSTENCIL = 0x00000002, 659 660 /* Usages for Vertex/Index buffers */ 661 D3DUSAGE_WRITEONLY = 0x00000008, 662 D3DUSAGE_SOFTWAREPROCESSING = 0x00000010, 663 D3DUSAGE_DONOTCLIP = 0x00000020, 664 D3DUSAGE_POINTS = 0x00000040, 665 D3DUSAGE_RTPATCHES = 0x00000080, 666 D3DUSAGE_NPATCHES = 0x00000100, 667 D3DUSAGE_DYNAMIC = 0x00000200 668 } 669 670 alias D3D_DRIVER_TYPE = int; 671 enum : D3D_DRIVER_TYPE 672 { 673 D3D_DRIVER_TYPE_UNKNOWN = 0, 674 D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) , 675 D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) , 676 D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) , 677 D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) , 678 D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 ) 679 } 680 681 alias D3D_FEATURE_LEVEL = int; 682 enum : D3D_FEATURE_LEVEL 683 { 684 D3D_FEATURE_LEVEL_9_1 = 0x9100, 685 D3D_FEATURE_LEVEL_9_2 = 0x9200, 686 D3D_FEATURE_LEVEL_9_3 = 0x9300, 687 D3D_FEATURE_LEVEL_10_0 = 0xa000, 688 D3D_FEATURE_LEVEL_10_1 = 0xa100, 689 D3D_FEATURE_LEVEL_11_0 = 0xb000, 690 D3D_FEATURE_LEVEL_11_1 = 0xb100, 691 D3D_FEATURE_LEVEL_12_0 = 0xc000, 692 D3D_FEATURE_LEVEL_12_1 = 0xc100 693 } 694 695 alias D3D_PRIMITIVE_TOPOLOGY = int; 696 enum : D3D_PRIMITIVE_TOPOLOGY 697 { 698 D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, 699 D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, 700 D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, 701 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, 702 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, 703 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, 704 D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, 705 D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, 706 D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, 707 D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, 708 D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, 709 D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, 710 D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, 711 D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, 712 D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, 713 D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, 714 D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, 715 D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, 716 D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, 717 D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, 718 D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, 719 D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, 720 D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, 721 D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, 722 D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, 723 D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, 724 D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, 725 D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, 726 D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, 727 D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, 728 D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, 729 D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, 730 D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, 731 D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, 732 D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, 733 D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, 734 D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, 735 D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, 736 D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, 737 D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, 738 D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, 739 D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, 740 D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, 741 D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, 742 D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, 743 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, 744 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, 745 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, 746 D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, 747 D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, 748 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, 749 D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, 750 D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, 751 D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, 752 D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, 753 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, 754 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, 755 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, 756 D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, 757 D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, 758 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, 759 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, 760 D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, 761 D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, 762 D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, 763 D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, 764 D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, 765 D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, 766 D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, 767 D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, 768 D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, 769 D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, 770 D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, 771 D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, 772 D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, 773 D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, 774 D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, 775 D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, 776 D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, 777 D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, 778 D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, 779 D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, 780 D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, 781 D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, 782 D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, 783 D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, 784 D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, 785 D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, 786 D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, 787 D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, 788 D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, 789 D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, 790 D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, 791 D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST 792 } 793 794 alias D3D_PRIMITIVE = int; 795 enum : D3D_PRIMITIVE 796 { 797 D3D_PRIMITIVE_UNDEFINED = 0, 798 D3D_PRIMITIVE_POINT = 1, 799 D3D_PRIMITIVE_LINE = 2, 800 D3D_PRIMITIVE_TRIANGLE = 3, 801 D3D_PRIMITIVE_LINE_ADJ = 6, 802 D3D_PRIMITIVE_TRIANGLE_ADJ = 7, 803 D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, 804 D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, 805 D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, 806 D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, 807 D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, 808 D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, 809 D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, 810 D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, 811 D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, 812 D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, 813 D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, 814 D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, 815 D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, 816 D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, 817 D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, 818 D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, 819 D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, 820 D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, 821 D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, 822 D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 28, 823 D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 29, 824 D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 30, 825 D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 31, 826 D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 32, 827 D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 33, 828 D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 34, 829 D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 35, 830 D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 36, 831 D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 37, 832 D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 38, 833 D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 39, 834 D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 40, 835 D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, 836 D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, 837 D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, 838 D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, 839 D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, 840 D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, 841 D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, 842 D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, 843 D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, 844 D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, 845 D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, 846 D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, 847 D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, 848 D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, 849 D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, 850 D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, 851 D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, 852 D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, 853 D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, 854 D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, 855 D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, 856 D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, 857 D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, 858 D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, 859 D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, 860 D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, 861 D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, 862 D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, 863 D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, 864 D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, 865 D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, 866 D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, 867 D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, 868 D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, 869 D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, 870 D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, 871 D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, 872 D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, 873 D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, 874 D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, 875 D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, 876 D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, 877 D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, 878 D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH 879 } 880 881 882 alias D3D_SRV_DIMENSION = int; 883 enum : D3D_SRV_DIMENSION 884 { 885 D3D_SRV_DIMENSION_UNKNOWN = 0, 886 D3D_SRV_DIMENSION_BUFFER = 1, 887 D3D_SRV_DIMENSION_TEXTURE1D = 2, 888 D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, 889 D3D_SRV_DIMENSION_TEXTURE2D = 4, 890 D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, 891 D3D_SRV_DIMENSION_TEXTURE2DMS = 6, 892 D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, 893 D3D_SRV_DIMENSION_TEXTURE3D = 8, 894 D3D_SRV_DIMENSION_TEXTURECUBE = 9, 895 D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, 896 D3D_SRV_DIMENSION_BUFFEREX = 11, 897 D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, 898 D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, 899 D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, 900 D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, 901 D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, 902 D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, 903 D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, 904 D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, 905 D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, 906 D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, 907 D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, 908 D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, 909 D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, 910 D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, 911 D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, 912 D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, 913 D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, 914 D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, 915 D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, 916 D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, 917 D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, 918 D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, 919 D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, 920 D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, 921 D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, 922 D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, 923 D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, 924 D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, 925 D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, 926 D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, 927 D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, 928 D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, 929 D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX 930 } 931 932 struct _D3D_SHADER_MACRO 933 { 934 LPCSTR Name; 935 LPCSTR Definition; 936 } 937 alias _D3D_SHADER_MACRO D3D_SHADER_MACRO; 938 alias _D3D_SHADER_MACRO* LPD3D_SHADER_MACRO; 939 940 mixin( uuid!(ID3D10Blob, "8BA5FB08-5195-40e2-AC58-0D989C3A0102") ); 941 interface ID3D10Blob : IUnknown 942 { 943 extern(Windows): 944 LPVOID GetBufferPointer(); 945 946 SIZE_T GetBufferSize(); 947 948 } 949 alias ID3D10Blob LPD3D10BLOB; 950 alias ID3D10Blob ID3DBlob; 951 alias ID3DBlob LPD3DBLOB; 952 alias IID_ID3D10Blob IID_ID3DBlob; 953 954 955 alias _D3D_INCLUDE_TYPE = int; 956 enum : _D3D_INCLUDE_TYPE 957 { 958 D3D_INCLUDE_LOCAL = 0, 959 D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) , 960 D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, 961 D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, 962 D3D_INCLUDE_FORCE_DWORD = 0x7fffffff 963 } 964 alias _D3D_INCLUDE_TYPE D3D_INCLUDE_TYPE; 965 966 967 extern(C++) interface ID3DInclude 968 { 969 extern(Windows): 970 HRESULT Open(D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes); 971 HRESULT Close(LPCVOID pData); 972 } 973 alias ID3DInclude LPD3DINCLUDE; 974 975 976 alias _D3D_SHADER_VARIABLE_CLASS = int; 977 enum : _D3D_SHADER_VARIABLE_CLASS 978 { 979 D3D_SVC_SCALAR = 0, 980 D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) , 981 D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) , 982 D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) , 983 D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) , 984 D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) , 985 D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) , 986 D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) , 987 D3D10_SVC_SCALAR = D3D_SVC_SCALAR, 988 D3D10_SVC_VECTOR = D3D_SVC_VECTOR, 989 D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, 990 D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, 991 D3D10_SVC_OBJECT = D3D_SVC_OBJECT, 992 D3D10_SVC_STRUCT = D3D_SVC_STRUCT, 993 D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, 994 D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, 995 D3D_SVC_FORCE_DWORD = 0x7fffffff 996 } 997 alias _D3D_SHADER_VARIABLE_CLASS D3D_SHADER_VARIABLE_CLASS; 998 999 1000 alias _D3D_SHADER_VARIABLE_FLAGS = int; 1001 enum : _D3D_SHADER_VARIABLE_FLAGS 1002 { 1003 D3D_SVF_USERPACKED = 1, 1004 D3D_SVF_USED = 2, 1005 D3D_SVF_INTERFACE_POINTER = 4, 1006 D3D_SVF_INTERFACE_PARAMETER = 8, 1007 D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, 1008 D3D10_SVF_USED = D3D_SVF_USED, 1009 D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, 1010 D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, 1011 D3D_SVF_FORCE_DWORD = 0x7fffffff 1012 } 1013 alias _D3D_SHADER_VARIABLE_FLAGS D3D_SHADER_VARIABLE_FLAGS; 1014 1015 1016 alias _D3D_SHADER_VARIABLE_TYPE = int; 1017 enum : _D3D_SHADER_VARIABLE_TYPE 1018 { 1019 D3D_SVT_VOID = 0, 1020 D3D_SVT_BOOL = 1, 1021 D3D_SVT_INT = 2, 1022 D3D_SVT_FLOAT = 3, 1023 D3D_SVT_STRING = 4, 1024 D3D_SVT_TEXTURE = 5, 1025 D3D_SVT_TEXTURE1D = 6, 1026 D3D_SVT_TEXTURE2D = 7, 1027 D3D_SVT_TEXTURE3D = 8, 1028 D3D_SVT_TEXTURECUBE = 9, 1029 D3D_SVT_SAMPLER = 10, 1030 D3D_SVT_SAMPLER1D = 11, 1031 D3D_SVT_SAMPLER2D = 12, 1032 D3D_SVT_SAMPLER3D = 13, 1033 D3D_SVT_SAMPLERCUBE = 14, 1034 D3D_SVT_PIXELSHADER = 15, 1035 D3D_SVT_VERTEXSHADER = 16, 1036 D3D_SVT_PIXELFRAGMENT = 17, 1037 D3D_SVT_VERTEXFRAGMENT = 18, 1038 D3D_SVT_UINT = 19, 1039 D3D_SVT_UINT8 = 20, 1040 D3D_SVT_GEOMETRYSHADER = 21, 1041 D3D_SVT_RASTERIZER = 22, 1042 D3D_SVT_DEPTHSTENCIL = 23, 1043 D3D_SVT_BLEND = 24, 1044 D3D_SVT_BUFFER = 25, 1045 D3D_SVT_CBUFFER = 26, 1046 D3D_SVT_TBUFFER = 27, 1047 D3D_SVT_TEXTURE1DARRAY = 28, 1048 D3D_SVT_TEXTURE2DARRAY = 29, 1049 D3D_SVT_RENDERTARGETVIEW = 30, 1050 D3D_SVT_DEPTHSTENCILVIEW = 31, 1051 D3D_SVT_TEXTURE2DMS = 32, 1052 D3D_SVT_TEXTURE2DMSARRAY = 33, 1053 D3D_SVT_TEXTURECUBEARRAY = 34, 1054 D3D_SVT_HULLSHADER = 35, 1055 D3D_SVT_DOMAINSHADER = 36, 1056 D3D_SVT_INTERFACE_POINTER = 37, 1057 D3D_SVT_COMPUTESHADER = 38, 1058 D3D_SVT_DOUBLE = 39, 1059 D3D_SVT_RWTEXTURE1D = 40, 1060 D3D_SVT_RWTEXTURE1DARRAY = 41, 1061 D3D_SVT_RWTEXTURE2D = 42, 1062 D3D_SVT_RWTEXTURE2DARRAY = 43, 1063 D3D_SVT_RWTEXTURE3D = 44, 1064 D3D_SVT_RWBUFFER = 45, 1065 D3D_SVT_BYTEADDRESS_BUFFER = 46, 1066 D3D_SVT_RWBYTEADDRESS_BUFFER = 47, 1067 D3D_SVT_STRUCTURED_BUFFER = 48, 1068 D3D_SVT_RWSTRUCTURED_BUFFER = 49, 1069 D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, 1070 D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, 1071 D3D10_SVT_VOID = D3D_SVT_VOID, 1072 D3D10_SVT_BOOL = D3D_SVT_BOOL, 1073 D3D10_SVT_INT = D3D_SVT_INT, 1074 D3D10_SVT_FLOAT = D3D_SVT_FLOAT, 1075 D3D10_SVT_STRING = D3D_SVT_STRING, 1076 D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, 1077 D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, 1078 D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, 1079 D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, 1080 D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, 1081 D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, 1082 D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, 1083 D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, 1084 D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, 1085 D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, 1086 D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, 1087 D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, 1088 D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, 1089 D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, 1090 D3D10_SVT_UINT = D3D_SVT_UINT, 1091 D3D10_SVT_UINT8 = D3D_SVT_UINT8, 1092 D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, 1093 D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, 1094 D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, 1095 D3D10_SVT_BLEND = D3D_SVT_BLEND, 1096 D3D10_SVT_BUFFER = D3D_SVT_BUFFER, 1097 D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, 1098 D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, 1099 D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, 1100 D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, 1101 D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, 1102 D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, 1103 D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, 1104 D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, 1105 D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, 1106 D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, 1107 D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, 1108 D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, 1109 D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, 1110 D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, 1111 D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, 1112 D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, 1113 D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, 1114 D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, 1115 D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, 1116 D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, 1117 D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, 1118 D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, 1119 D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, 1120 D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, 1121 D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, 1122 D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, 1123 D3D_SVT_FORCE_DWORD = 0x7fffffff 1124 } 1125 alias _D3D_SHADER_VARIABLE_TYPE D3D_SHADER_VARIABLE_TYPE; 1126 1127 1128 alias _D3D_SHADER_INPUT_FLAGS = int; 1129 enum : _D3D_SHADER_INPUT_FLAGS 1130 { 1131 D3D_SIF_USERPACKED = 1, 1132 D3D_SIF_COMPARISON_SAMPLER = 2, 1133 D3D_SIF_TEXTURE_COMPONENT_0 = 4, 1134 D3D_SIF_TEXTURE_COMPONENT_1 = 8, 1135 D3D_SIF_TEXTURE_COMPONENTS = 12, 1136 D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, 1137 D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, 1138 D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, 1139 D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, 1140 D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, 1141 D3D_SIF_FORCE_DWORD = 0x7fffffff 1142 } 1143 alias _D3D_SHADER_INPUT_FLAGS D3D_SHADER_INPUT_FLAGS; 1144 1145 1146 alias _D3D_SHADER_INPUT_TYPE = int; 1147 enum : _D3D_SHADER_INPUT_TYPE 1148 { 1149 D3D_SIT_CBUFFER = 0, 1150 D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) , 1151 D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) , 1152 D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) , 1153 D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) , 1154 D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) , 1155 D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) , 1156 D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) , 1157 D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) , 1158 D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) , 1159 D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) , 1160 D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) , 1161 D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, 1162 D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, 1163 D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, 1164 D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, 1165 D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, 1166 D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, 1167 D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, 1168 D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, 1169 D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, 1170 D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, 1171 D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, 1172 D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER 1173 } 1174 alias _D3D_SHADER_INPUT_TYPE D3D_SHADER_INPUT_TYPE; 1175 1176 1177 alias _D3D_SHADER_CBUFFER_FLAGS = int; 1178 enum : _D3D_SHADER_CBUFFER_FLAGS 1179 { 1180 D3D_CBF_USERPACKED = 1, 1181 D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, 1182 D3D_CBF_FORCE_DWORD = 0x7fffffff 1183 } 1184 alias _D3D_SHADER_CBUFFER_FLAGS D3D_SHADER_CBUFFER_FLAGS; 1185 1186 1187 alias _D3D_CBUFFER_TYPE = int; 1188 enum : _D3D_CBUFFER_TYPE 1189 { 1190 D3D_CT_CBUFFER = 0, 1191 D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) , 1192 D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) , 1193 D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) , 1194 D3D10_CT_CBUFFER = D3D_CT_CBUFFER, 1195 D3D10_CT_TBUFFER = D3D_CT_TBUFFER, 1196 D3D11_CT_CBUFFER = D3D_CT_CBUFFER, 1197 D3D11_CT_TBUFFER = D3D_CT_TBUFFER, 1198 D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, 1199 D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO 1200 } 1201 alias _D3D_CBUFFER_TYPE D3D_CBUFFER_TYPE; 1202 1203 1204 alias D3D_NAME = int; 1205 enum : D3D_NAME 1206 { 1207 D3D_NAME_UNDEFINED = 0, 1208 D3D_NAME_POSITION = 1, 1209 D3D_NAME_CLIP_DISTANCE = 2, 1210 D3D_NAME_CULL_DISTANCE = 3, 1211 D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, 1212 D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, 1213 D3D_NAME_VERTEX_ID = 6, 1214 D3D_NAME_PRIMITIVE_ID = 7, 1215 D3D_NAME_INSTANCE_ID = 8, 1216 D3D_NAME_IS_FRONT_FACE = 9, 1217 D3D_NAME_SAMPLE_INDEX = 10, 1218 D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, 1219 D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, 1220 D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, 1221 D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, 1222 D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, 1223 D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, 1224 D3D_NAME_TARGET = 64, 1225 D3D_NAME_DEPTH = 65, 1226 D3D_NAME_COVERAGE = 66, 1227 D3D_NAME_DEPTH_GREATER_EQUAL = 67, 1228 D3D_NAME_DEPTH_LESS_EQUAL = 68, 1229 D3D_NAME_STENCIL_REF = 69, 1230 D3D_NAME_INNER_COVERAGE = 70, 1231 D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, 1232 D3D10_NAME_POSITION = D3D_NAME_POSITION, 1233 D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, 1234 D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, 1235 D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, 1236 D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, 1237 D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, 1238 D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, 1239 D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, 1240 D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, 1241 D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, 1242 D3D10_NAME_TARGET = D3D_NAME_TARGET, 1243 D3D10_NAME_DEPTH = D3D_NAME_DEPTH, 1244 D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, 1245 D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, 1246 D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, 1247 D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, 1248 D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, 1249 D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, 1250 D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, 1251 D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, 1252 D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, 1253 D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, 1254 D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE 1255 } 1256 1257 alias D3D_RESOURCE_RETURN_TYPE = int; 1258 enum : D3D_RESOURCE_RETURN_TYPE 1259 { 1260 D3D_RETURN_TYPE_UNORM = 1, 1261 D3D_RETURN_TYPE_SNORM = 2, 1262 D3D_RETURN_TYPE_SINT = 3, 1263 D3D_RETURN_TYPE_UINT = 4, 1264 D3D_RETURN_TYPE_FLOAT = 5, 1265 D3D_RETURN_TYPE_MIXED = 6, 1266 D3D_RETURN_TYPE_DOUBLE = 7, 1267 D3D_RETURN_TYPE_CONTINUED = 8, 1268 D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, 1269 D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, 1270 D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, 1271 D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, 1272 D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, 1273 D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, 1274 D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, 1275 D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, 1276 D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, 1277 D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, 1278 D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, 1279 D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, 1280 D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, 1281 D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED 1282 } 1283 1284 alias D3D_REGISTER_COMPONENT_TYPE = int; 1285 enum : D3D_REGISTER_COMPONENT_TYPE 1286 { 1287 D3D_REGISTER_COMPONENT_UNKNOWN = 0, 1288 D3D_REGISTER_COMPONENT_UINT32 = 1, 1289 D3D_REGISTER_COMPONENT_SINT32 = 2, 1290 D3D_REGISTER_COMPONENT_FLOAT32 = 3, 1291 D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, 1292 D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, 1293 D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, 1294 D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32 1295 } 1296 1297 alias D3D_TESSELLATOR_DOMAIN = int; 1298 enum : D3D_TESSELLATOR_DOMAIN 1299 { 1300 D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, 1301 D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, 1302 D3D_TESSELLATOR_DOMAIN_TRI = 2, 1303 D3D_TESSELLATOR_DOMAIN_QUAD = 3, 1304 D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, 1305 D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, 1306 D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, 1307 D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD 1308 } 1309 1310 alias D3D_TESSELLATOR_PARTITIONING = int; 1311 enum : D3D_TESSELLATOR_PARTITIONING 1312 { 1313 D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, 1314 D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, 1315 D3D_TESSELLATOR_PARTITIONING_POW2 = 2, 1316 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, 1317 D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, 1318 D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, 1319 D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, 1320 D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, 1321 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, 1322 D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN 1323 } 1324 1325 1326 alias D3D_TESSELLATOR_OUTPUT_PRIMITIVE = int; 1327 enum : D3D_TESSELLATOR_OUTPUT_PRIMITIVE 1328 { 1329 D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, 1330 D3D_TESSELLATOR_OUTPUT_POINT = 1, 1331 D3D_TESSELLATOR_OUTPUT_LINE = 2, 1332 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, 1333 D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, 1334 D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, 1335 D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, 1336 D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, 1337 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, 1338 D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW 1339 } 1340 1341 alias DWORD D3D_MIN_PRECISION; 1342 enum : D3D_MIN_PRECISION 1343 { 1344 D3D_MIN_PRECISION_DEFAULT = 0, 1345 D3D_MIN_PRECISION_FLOAT_16 = 1, 1346 D3D_MIN_PRECISION_FLOAT_2_8 = 2, 1347 D3D_MIN_PRECISION_RESERVED = 3, 1348 D3D_MIN_PRECISION_SINT_16 = 4, 1349 D3D_MIN_PRECISION_UINT_16 = 5, 1350 D3D_MIN_PRECISION_ANY_16 = 0xf0, 1351 D3D_MIN_PRECISION_ANY_10 = 0xf1 1352 } 1353 1354 alias DWORD D3D_INTERPOLATION_MODE; 1355 enum : D3D_INTERPOLATION_MODE 1356 { 1357 D3D_INTERPOLATION_UNDEFINED = 0, 1358 D3D_INTERPOLATION_CONSTANT = 1, 1359 D3D_INTERPOLATION_LINEAR = 2, 1360 D3D_INTERPOLATION_LINEAR_CENTROID = 3, 1361 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, 1362 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, 1363 D3D_INTERPOLATION_LINEAR_SAMPLE = 6, 1364 D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 1365 } 1366 1367 alias DWORD D3D_PARAMETER_FLAGS; 1368 enum : D3D_PARAMETER_FLAGS 1369 { 1370 D3D_PF_NONE = 0, 1371 D3D_PF_IN = 0x1, 1372 D3D_PF_OUT = 0x2, 1373 D3D_PF_FORCE_DWORD = 0x7fffffff 1374 } 1375 1376 mixin( uuid!(WKPDID_D3DDebugObjectName, "429b8c22-9188-4b0c-8742-acb0bf85c200") ); 1377 mixin( uuid!(WKPDID_D3DDebugObjectNameW, "4cca5fd8-921f-42c8-8566-70caf2a9b741") ); 1378 mixin( uuid!(WKPDID_CommentStringW, "d0149dc0-90e8-4ec8-8144-e900ad266bb2") ); 1379 interface WKPDID_D3DDebugObjectName {} 1380 interface WKPDID_D3DDebugObjectNameW {} 1381 interface WKPDID_CommentStringW {}