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