1 /* 2 * Copyright 2010 Rico Schller 3 * Copyright 2013 Austin English 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public 7 * License as published by the Free Software Foundation; either 8 * version 2.1 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public 16 * License along with this library; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 18 */ 19 20 import "oaidl.idl"; 21 import "ocidl.idl"; 22 import "dxgi.idl"; 23 import "d3dcommon.idl"; 24 25 typedef D3D_PRIMITIVE D3D11_PRIMITIVE; 26 typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY; 27 typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION; 28 typedef RECT D3D11_RECT; 29 30 const UINT D3D11_DEFAULT_DEPTH_BIAS = 0; 31 cpp_quote("#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f") 32 const UINT D3D11_DEFAULT_MAX_ANISOTROPY = 16; 33 cpp_quote("#define D3D11_DEFAULT_MIP_LOD_BIAS 0.0f") 34 const UINT D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; 35 const UINT D3D11_DEFAULT_SAMPLE_MASK = 0xffffffff; 36 const UINT D3D11_DEFAULT_SCISSOR_ENDX = 0; 37 const UINT D3D11_DEFAULT_SCISSOR_ENDY = 0; 38 const UINT D3D11_DEFAULT_SCISSOR_STARTX = 0; 39 const UINT D3D11_DEFAULT_SCISSOR_STARTY = 0; 40 cpp_quote("#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS 0.0f") 41 const UINT D3D11_DEFAULT_STENCIL_READ_MASK = 0xff; 42 const UINT D3D11_DEFAULT_STENCIL_REFERENCE = 0; 43 const UINT D3D11_DEFAULT_STENCIL_WRITE_MASK = 0xff; 44 const UINT D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; 45 const UINT D3D11_DEFAULT_VIEWPORT_HEIGHT = 0; 46 cpp_quote("#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH 0.0f") 47 cpp_quote("#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH 0.0f") 48 const UINT D3D11_DEFAULT_VIEWPORT_TOPLEFTX = 0; 49 const UINT D3D11_DEFAULT_VIEWPORT_TOPLEFTY = 0; 50 const UINT D3D11_DEFAULT_VIEWPORT_WIDTH = 0; 51 52 const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; 53 54 const UINT D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384; 55 56 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 57 cpp_quote("struct CD3D11_DEFAULT {};") 58 cpp_quote("extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;") 59 cpp_quote("#endif") 60 61 typedef enum D3D11_BLEND 62 { 63 D3D11_BLEND_ZERO = 1, 64 D3D11_BLEND_ONE = 2, 65 D3D11_BLEND_SRC_COLOR = 3, 66 D3D11_BLEND_INV_SRC_COLOR = 4, 67 D3D11_BLEND_SRC_ALPHA = 5, 68 D3D11_BLEND_INV_SRC_ALPHA = 6, 69 D3D11_BLEND_DEST_ALPHA = 7, 70 D3D11_BLEND_INV_DEST_ALPHA = 8, 71 D3D11_BLEND_DEST_COLOR = 9, 72 D3D11_BLEND_INV_DEST_COLOR = 10, 73 D3D11_BLEND_SRC_ALPHA_SAT = 11, 74 D3D11_BLEND_BLEND_FACTOR = 14, 75 D3D11_BLEND_INV_BLEND_FACTOR = 15, 76 D3D11_BLEND_SRC1_COLOR = 16, 77 D3D11_BLEND_INV_SRC1_COLOR = 17, 78 D3D11_BLEND_SRC1_ALPHA = 18, 79 D3D11_BLEND_INV_SRC1_ALPHA = 19, 80 } D3D11_BLEND; 81 82 typedef enum D3D11_BLEND_OP 83 { 84 D3D11_BLEND_OP_ADD = 1, 85 D3D11_BLEND_OP_SUBTRACT, 86 D3D11_BLEND_OP_REV_SUBTRACT, 87 D3D11_BLEND_OP_MIN, 88 D3D11_BLEND_OP_MAX 89 } D3D11_BLEND_OP; 90 91 typedef struct D3D11_BOX 92 { 93 UINT left; 94 UINT top; 95 UINT front; 96 UINT right; 97 UINT bottom; 98 UINT back; 99 } D3D11_BOX; 100 101 typedef struct D3D11_BUFFER_RTV 102 { 103 union 104 { 105 UINT FirstElement; 106 UINT ElementOffset; 107 }; 108 union 109 { 110 UINT NumElements; 111 UINT ElementWidth; 112 }; 113 } D3D11_BUFFER_RTV; 114 115 typedef struct D3D11_BUFFER_SRV 116 { 117 union 118 { 119 UINT FirstElement; 120 UINT ElementOffset; 121 }; 122 union 123 { 124 UINT NumElements; 125 UINT ElementWidth; 126 }; 127 } D3D11_BUFFER_SRV; 128 129 typedef struct D3D11_BUFFER_UAV 130 { 131 UINT FirstElement; 132 UINT NumElements; 133 UINT Flags; 134 } D3D11_BUFFER_UAV; 135 136 typedef struct D3D11_BUFFEREX_SRV 137 { 138 UINT FirstElement; 139 UINT NumElements; 140 UINT Flags; 141 } D3D11_BUFFEREX_SRV; 142 143 typedef struct D3D11_CLASS_INSTANCE_DESC 144 { 145 UINT InstanceId; 146 UINT InstanceIndex; 147 UINT TypeId; 148 UINT ConstantBuffer; 149 UINT BaseConstantBufferOffset; 150 UINT BaseTexture; 151 UINT BaseSampler; 152 BOOL Created; 153 } D3D11_CLASS_INSTANCE_DESC; 154 155 typedef enum D3D11_COMPARISON_FUNC 156 { 157 D3D11_COMPARISON_NEVER = 1, 158 D3D11_COMPARISON_LESS, 159 D3D11_COMPARISON_EQUAL, 160 D3D11_COMPARISON_LESS_EQUAL, 161 D3D11_COMPARISON_GREATER, 162 D3D11_COMPARISON_NOT_EQUAL, 163 D3D11_COMPARISON_GREATER_EQUAL, 164 D3D11_COMPARISON_ALWAYS 165 } D3D11_COMPARISON_FUNC; 166 167 typedef enum D3D11_COUNTER 168 { 169 D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000, 170 } D3D11_COUNTER; 171 172 typedef struct D3D11_COUNTER_DESC 173 { 174 D3D11_COUNTER Counter; 175 UINT MiscFlags; 176 } D3D11_COUNTER_DESC; 177 178 typedef struct D3D11_COUNTER_INFO 179 { 180 D3D11_COUNTER LastDeviceDependentCounter; 181 UINT NumSimultaneousCounters; 182 UINT8 NumDetectableParallelUnits; 183 } D3D11_COUNTER_INFO; 184 185 typedef enum D3D11_COUNTER_TYPE 186 { 187 D3D11_COUNTER_TYPE_FLOAT32, 188 D3D11_COUNTER_TYPE_UINT16, 189 D3D11_COUNTER_TYPE_UINT32, 190 D3D11_COUNTER_TYPE_UINT64, 191 } D3D11_COUNTER_TYPE; 192 193 typedef enum D3D11_CULL_MODE 194 { 195 D3D11_CULL_NONE = 1, 196 D3D11_CULL_FRONT, 197 D3D11_CULL_BACK 198 } D3D11_CULL_MODE; 199 200 typedef enum D3D11_DEPTH_WRITE_MASK 201 { 202 D3D11_DEPTH_WRITE_MASK_ZERO, 203 D3D11_DEPTH_WRITE_MASK_ALL, 204 } D3D11_DEPTH_WRITE_MASK; 205 206 typedef enum D3D11_DEVICE_CONTEXT_TYPE 207 { 208 D3D11_DEVICE_CONTEXT_IMMEDIATE, 209 D3D11_DEVICE_CONTEXT_DEFERRED, 210 } D3D11_DEVICE_CONTEXT_TYPE; 211 212 typedef enum D3D11_DSV_DIMENSION 213 { 214 D3D11_DSV_DIMENSION_UNKNOWN, 215 D3D11_DSV_DIMENSION_TEXTURE1D, 216 D3D11_DSV_DIMENSION_TEXTURE1DARRAY, 217 D3D11_DSV_DIMENSION_TEXTURE2D, 218 D3D11_DSV_DIMENSION_TEXTURE2DARRAY, 219 D3D11_DSV_DIMENSION_TEXTURE2DMS, 220 D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY, 221 } D3D11_DSV_DIMENSION; 222 223 typedef enum D3D11_FEATURE 224 { 225 D3D11_FEATURE_THREADING, 226 D3D11_FEATURE_DOUBLES, 227 D3D11_FEATURE_FORMAT_SUPPORT, 228 D3D11_FEATURE_FORMAT_SUPPORT2, 229 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS, 230 } D3D11_FEATURE; 231 232 typedef enum D3D11_FILL_MODE 233 { 234 D3D11_FILL_WIREFRAME = 2, 235 D3D11_FILL_SOLID 236 } D3D11_FILL_MODE; 237 238 typedef enum D3D11_FILTER 239 { 240 D3D11_FILTER_MIN_MAG_MIP_POINT = 0x00, 241 D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01, 242 D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04, 243 D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05, 244 D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 245 D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 246 D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 247 D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 248 D3D11_FILTER_ANISOTROPIC = 0x55, 249 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 250 D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 251 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 252 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 253 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 254 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 255 D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 256 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 257 D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5 258 } D3D11_FILTER; 259 260 typedef enum D3D11_DSV_FLAG 261 { 262 D3D11_DSV_READ_ONLY_DEPTH = 0x1, 263 D3D11_DSV_READ_ONLY_STENCIL = 0x2, 264 } D3D11_DSV_FLAG; 265 266 typedef enum D3D11_INPUT_CLASSIFICATION 267 { 268 D3D11_INPUT_PER_VERTEX_DATA, 269 D3D11_INPUT_PER_INSTANCE_DATA, 270 } D3D11_INPUT_CLASSIFICATION; 271 272 typedef struct D3D11_INPUT_ELEMENT_DESC 273 { 274 LPCSTR SemanticName; 275 UINT SemanticIndex; 276 DXGI_FORMAT Format; 277 UINT InputSlot; 278 UINT AlignedByteOffset; 279 D3D11_INPUT_CLASSIFICATION InputSlotClass; 280 UINT InstanceDataStepRate; 281 } D3D11_INPUT_ELEMENT_DESC; 282 283 typedef enum D3D11_MAP 284 { 285 D3D11_MAP_READ = 1, 286 D3D11_MAP_WRITE, 287 D3D11_MAP_READ_WRITE, 288 D3D11_MAP_WRITE_DISCARD, 289 D3D11_MAP_WRITE_NO_OVERWRITE 290 } D3D11_MAP; 291 292 typedef struct D3D11_MAPPED_SUBRESOURCE 293 { 294 void *pData; 295 UINT RowPitch; 296 UINT DepthPitch; 297 } D3D11_MAPPED_SUBRESOURCE; 298 299 typedef enum D3D11_QUERY 300 { 301 D3D11_QUERY_EVENT, 302 D3D11_QUERY_OCCLUSION, 303 D3D11_QUERY_TIMESTAMP, 304 D3D11_QUERY_TIMESTAMP_DISJOINT, 305 D3D11_QUERY_PIPELINE_STATISTICS, 306 D3D11_QUERY_OCCLUSION_PREDICATE, 307 D3D11_QUERY_SO_STATISTICS, 308 D3D11_QUERY_SO_OVERFLOW_PREDICATE, 309 D3D11_QUERY_SO_STATISTICS_STREAM0, 310 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0, 311 D3D11_QUERY_SO_STATISTICS_STREAM1, 312 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1, 313 D3D11_QUERY_SO_STATISTICS_STREAM2, 314 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2, 315 D3D11_QUERY_SO_STATISTICS_STREAM3, 316 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3, 317 } D3D11_QUERY; 318 319 typedef struct D3D11_QUERY_DESC 320 { 321 D3D11_QUERY Query; 322 UINT MiscFlags; 323 } D3D11_QUERY_DESC; 324 325 typedef struct D3D11_RASTERIZER_DESC 326 { 327 D3D11_FILL_MODE FillMode; 328 D3D11_CULL_MODE CullMode; 329 BOOL FrontCounterClockwise; 330 INT DepthBias; 331 FLOAT DepthBiasClamp; 332 FLOAT SlopeScaledDepthBias; 333 BOOL DepthClipEnable; 334 BOOL ScissorEnable; 335 BOOL MultisampleEnable; 336 BOOL AntialiasedLineEnable; 337 } D3D11_RASTERIZER_DESC; 338 339 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 340 cpp_quote("struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC {") 341 cpp_quote(" CD3D11_RASTERIZER_DESC() {}") 342 cpp_quote(" explicit CD3D11_RASTERIZER_DESC(const D3D11_RASTERIZER_DESC &o) : D3D11_RASTERIZER_DESC(o) {}") 343 cpp_quote(" explicit CD3D11_RASTERIZER_DESC(CD3D11_DEFAULT) {") 344 cpp_quote(" FillMode = D3D11_FILL_SOLID;") 345 cpp_quote(" CullMode = D3D11_CULL_BACK;") 346 cpp_quote(" FrontCounterClockwise = FALSE;") 347 cpp_quote(" DepthBias = D3D11_DEFAULT_DEPTH_BIAS;") 348 cpp_quote(" DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;") 349 cpp_quote(" SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;") 350 cpp_quote(" DepthClipEnable = TRUE;") 351 cpp_quote(" ScissorEnable = FALSE;") 352 cpp_quote(" MultisampleEnable = FALSE;") 353 cpp_quote(" AntialiasedLineEnable = FALSE;") 354 cpp_quote(" }") 355 cpp_quote(" explicit CD3D11_RASTERIZER_DESC(D3D11_FILL_MODE fillMode, D3D11_CULL_MODE cullMode," ) 356 cpp_quote(" WINBOOL frontCounterClockwise, INT depthBias, FLOAT depthBiasClamp, FLOAT slopeScaledDepthBias,") 357 cpp_quote(" BOOL depthClipEnable, WINBOOL scissorEnable, WINBOOL multisampleEnable, WINBOOL antialiasedLineEnable) {") 358 cpp_quote(" FillMode = fillMode;") 359 cpp_quote(" CullMode = cullMode;") 360 cpp_quote(" FrontCounterClockwise = frontCounterClockwise;") 361 cpp_quote(" DepthBias = depthBias;") 362 cpp_quote(" DepthBiasClamp = depthBiasClamp;") 363 cpp_quote(" SlopeScaledDepthBias = slopeScaledDepthBias;") 364 cpp_quote(" DepthClipEnable = depthClipEnable;") 365 cpp_quote(" ScissorEnable = scissorEnable;") 366 cpp_quote(" MultisampleEnable = multisampleEnable;") 367 cpp_quote(" AntialiasedLineEnable = antialiasedLineEnable;") 368 cpp_quote(" }") 369 cpp_quote(" ~CD3D11_RASTERIZER_DESC() {}") 370 cpp_quote(" operator const D3D11_RASTERIZER_DESC&() const { return *this; }") 371 cpp_quote("};") 372 cpp_quote("#endif") 373 374 typedef enum D3D11_RESOURCE_DIMENSION 375 { 376 D3D11_RESOURCE_DIMENSION_UNKNOWN, 377 D3D11_RESOURCE_DIMENSION_BUFFER, 378 D3D11_RESOURCE_DIMENSION_TEXTURE1D, 379 D3D11_RESOURCE_DIMENSION_TEXTURE2D, 380 D3D11_RESOURCE_DIMENSION_TEXTURE3D, 381 } D3D11_RESOURCE_DIMENSION; 382 383 typedef enum D3D11_RTV_DIMENSION 384 { 385 D3D11_RTV_DIMENSION_UNKNOWN, 386 D3D11_RTV_DIMENSION_BUFFER, 387 D3D11_RTV_DIMENSION_TEXTURE1D, 388 D3D11_RTV_DIMENSION_TEXTURE1DARRAY, 389 D3D11_RTV_DIMENSION_TEXTURE2D, 390 D3D11_RTV_DIMENSION_TEXTURE2DARRAY, 391 D3D11_RTV_DIMENSION_TEXTURE2DMS, 392 D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY, 393 D3D11_RTV_DIMENSION_TEXTURE3D, 394 } D3D11_RTV_DIMENSION; 395 396 typedef struct D3D11_SO_DECLARATION_ENTRY 397 { 398 UINT Stream; 399 LPCSTR SemanticName; 400 UINT SemanticIndex; 401 BYTE StartComponent; 402 BYTE ComponentCount; 403 BYTE OutputSlot; 404 } D3D11_SO_DECLARATION_ENTRY; 405 406 typedef enum D3D11_STENCIL_OP 407 { 408 D3D11_STENCIL_OP_KEEP = 1, 409 D3D11_STENCIL_OP_ZERO, 410 D3D11_STENCIL_OP_REPLACE, 411 D3D11_STENCIL_OP_INCR_SAT, 412 D3D11_STENCIL_OP_DECR_SAT, 413 D3D11_STENCIL_OP_INVERT, 414 D3D11_STENCIL_OP_INCR, 415 D3D11_STENCIL_OP_DECR 416 } D3D11_STENCIL_OP; 417 418 typedef struct D3D11_SUBRESOURCE_DATA 419 { 420 const void *pSysMem; 421 UINT SysMemPitch; 422 UINT SysMemSlicePitch; 423 } D3D11_SUBRESOURCE_DATA; 424 425 typedef struct D3D11_TEX1D_ARRAY_DSV 426 { 427 UINT MipSlice; 428 UINT FirstArraySlice; 429 UINT ArraySize; 430 } D3D11_TEX1D_ARRAY_DSV; 431 432 typedef struct D3D11_TEX1D_ARRAY_RTV 433 { 434 UINT MipSlice; 435 UINT FirstArraySlice; 436 UINT ArraySize; 437 } D3D11_TEX1D_ARRAY_RTV; 438 439 typedef struct D3D11_TEX1D_ARRAY_SRV 440 { 441 UINT MostDetailedMip; 442 UINT MipLevels; 443 UINT FirstArraySlice; 444 UINT ArraySize; 445 } D3D11_TEX1D_ARRAY_SRV; 446 447 typedef struct D3D11_TEX1D_ARRAY_UAV 448 { 449 UINT MipSlice; 450 UINT FirstArraySlice; 451 UINT ArraySize; 452 } D3D11_TEX1D_ARRAY_UAV; 453 454 typedef struct D3D11_TEX1D_DSV 455 { 456 UINT MipSlice; 457 } D3D11_TEX1D_DSV; 458 459 typedef struct D3D11_TEX1D_RTV 460 { 461 UINT MipSlice; 462 } D3D11_TEX1D_RTV; 463 464 typedef struct D3D11_TEX1D_SRV 465 { 466 UINT MostDetailedMip; 467 UINT MipLevels; 468 } D3D11_TEX1D_SRV; 469 470 typedef struct D3D11_TEX1D_UAV 471 { 472 UINT MipSlice; 473 } D3D11_TEX1D_UAV; 474 475 typedef struct D3D11_TEX2D_ARRAY_DSV 476 { 477 UINT MipSlice; 478 UINT FirstArraySlice; 479 UINT ArraySize; 480 } D3D11_TEX2D_ARRAY_DSV; 481 482 typedef struct D3D11_TEX2D_ARRAY_RTV 483 { 484 UINT MipSlice; 485 UINT FirstArraySlice; 486 UINT ArraySize; 487 } D3D11_TEX2D_ARRAY_RTV; 488 489 typedef struct D3D11_TEX2D_ARRAY_SRV 490 { 491 UINT MostDetailedMip; 492 UINT MipLevels; 493 UINT FirstArraySlice; 494 UINT ArraySize; 495 } D3D11_TEX2D_ARRAY_SRV; 496 497 typedef struct D3D11_TEX2D_ARRAY_UAV 498 { 499 UINT MipSlice; 500 UINT FirstArraySlice; 501 UINT ArraySize; 502 } D3D11_TEX2D_ARRAY_UAV; 503 504 typedef struct D3D11_TEX2D_DSV 505 { 506 UINT MipSlice; 507 } D3D11_TEX2D_DSV; 508 509 typedef struct D3D11_TEX2D_RTV 510 { 511 UINT MipSlice; 512 } D3D11_TEX2D_RTV; 513 514 typedef struct D3D11_TEX2D_SRV 515 { 516 UINT MostDetailedMip; 517 UINT MipLevels; 518 } D3D11_TEX2D_SRV; 519 520 typedef struct D3D11_TEX2D_UAV 521 { 522 UINT MipSlice; 523 } D3D11_TEX2D_UAV; 524 525 typedef struct D3D11_TEX2DMS_ARRAY_DSV 526 { 527 UINT FirstArraySlice; 528 UINT ArraySize; 529 } D3D11_TEX2DMS_ARRAY_DSV; 530 531 typedef struct D3D11_TEX2DMS_ARRAY_RTV 532 { 533 UINT FirstArraySlice; 534 UINT ArraySize; 535 } D3D11_TEX2DMS_ARRAY_RTV; 536 537 typedef struct D3D11_TEX2DMS_ARRAY_SRV 538 { 539 UINT FirstArraySlice; 540 UINT ArraySize; 541 } D3D11_TEX2DMS_ARRAY_SRV; 542 543 typedef struct D3D11_TEX2DMS_DSV 544 { 545 UINT UnusedField_NothingToDefine; 546 } D3D11_TEX2DMS_DSV; 547 548 typedef struct D3D11_TEX2DMS_RTV 549 { 550 UINT UnusedField_NothingToDefine; 551 } D3D11_TEX2DMS_RTV; 552 553 typedef struct D3D11_TEX2DMS_SRV 554 { 555 UINT UnusedField_NothingToDefine; 556 } D3D11_TEX2DMS_SRV; 557 558 typedef struct D3D11_TEX3D_RTV 559 { 560 UINT MipSlice; 561 UINT FirstWSlice; 562 UINT WSize; 563 } D3D11_TEX3D_RTV; 564 565 typedef struct D3D11_TEX3D_SRV 566 { 567 UINT MostDetailedMip; 568 UINT MipLevels; 569 } D3D11_TEX3D_SRV; 570 571 typedef struct D3D11_TEX3D_UAV 572 { 573 UINT MipSlice; 574 UINT FirstWSlice; 575 UINT WSize; 576 } D3D11_TEX3D_UAV; 577 578 typedef struct D3D11_TEXCUBE_ARRAY_SRV 579 { 580 UINT MostDetailedMip; 581 UINT MipLevels; 582 UINT First2DArrayFace; 583 UINT NumCubes; 584 } D3D11_TEXCUBE_ARRAY_SRV; 585 586 typedef struct D3D11_TEXCUBE_SRV 587 { 588 UINT MostDetailedMip; 589 UINT MipLevels; 590 } D3D11_TEXCUBE_SRV; 591 592 typedef enum D3D11_TEXTURE_ADDRESS_MODE 593 { 594 D3D11_TEXTURE_ADDRESS_WRAP = 1, 595 D3D11_TEXTURE_ADDRESS_MIRROR, 596 D3D11_TEXTURE_ADDRESS_CLAMP, 597 D3D11_TEXTURE_ADDRESS_BORDER, 598 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE 599 } D3D11_TEXTURE_ADDRESS_MODE; 600 601 typedef enum D3D11_UAV_DIMENSION 602 { 603 D3D11_UAV_DIMENSION_UNKNOWN, 604 D3D11_UAV_DIMENSION_BUFFER, 605 D3D11_UAV_DIMENSION_TEXTURE1D, 606 D3D11_UAV_DIMENSION_TEXTURE1DARRAY, 607 D3D11_UAV_DIMENSION_TEXTURE2D, 608 D3D11_UAV_DIMENSION_TEXTURE2DARRAY, 609 D3D11_UAV_DIMENSION_TEXTURE3D = 8, 610 } D3D11_UAV_DIMENSION; 611 612 typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC 613 { 614 DXGI_FORMAT Format; 615 D3D11_UAV_DIMENSION ViewDimension; 616 617 union 618 { 619 D3D11_BUFFER_UAV Buffer; 620 D3D11_TEX1D_UAV Texture1D; 621 D3D11_TEX1D_ARRAY_UAV Texture1DArray; 622 D3D11_TEX2D_UAV Texture2D; 623 D3D11_TEX2D_ARRAY_UAV Texture2DArray; 624 D3D11_TEX3D_UAV Texture3D; 625 }; 626 } D3D11_UNORDERED_ACCESS_VIEW_DESC; 627 628 typedef enum D3D11_USAGE 629 { 630 D3D11_USAGE_DEFAULT, 631 D3D11_USAGE_IMMUTABLE, 632 D3D11_USAGE_DYNAMIC, 633 D3D11_USAGE_STAGING, 634 } D3D11_USAGE; 635 636 typedef enum D3D11_BIND_FLAG 637 { 638 D3D11_BIND_VERTEX_BUFFER = 0x0001, 639 D3D11_BIND_INDEX_BUFFER = 0x0002, 640 D3D11_BIND_CONSTANT_BUFFER = 0x0004, 641 D3D11_BIND_SHADER_RESOURCE = 0x0008, 642 D3D11_BIND_STREAM_OUTPUT = 0x0010, 643 D3D11_BIND_RENDER_TARGET = 0x0020, 644 D3D11_BIND_DEPTH_STENCIL = 0x0040, 645 D3D11_BIND_UNORDERED_ACCESS = 0x0080, 646 D3D11_BIND_DECODER = 0x0200, 647 D3D11_BIND_VIDEO_ENCODER = 0x0400 648 } D3D11_BIND_FLAG; 649 650 typedef enum D3D11_CPU_ACCESS_FLAG 651 { 652 D3D11_CPU_ACCESS_WRITE = 0x00010000, 653 D3D11_CPU_ACCESS_READ = 0x00020000 654 } D3D11_CPU_ACCESS_FLAG; 655 656 typedef struct D3D11_VIEWPORT 657 { 658 FLOAT TopLeftX; 659 FLOAT TopLeftY; 660 FLOAT Width; 661 FLOAT Height; 662 FLOAT MinDepth; 663 FLOAT MaxDepth; 664 } D3D11_VIEWPORT; 665 666 typedef enum D3D11_COLOR_WRITE_ENABLE 667 { 668 D3D11_COLOR_WRITE_ENABLE_RED = 1, 669 D3D11_COLOR_WRITE_ENABLE_GREEN = 2, 670 D3D11_COLOR_WRITE_ENABLE_BLUE = 4, 671 D3D11_COLOR_WRITE_ENABLE_ALPHA = 8, 672 D3D11_COLOR_WRITE_ENABLE_ALL = 673 (D3D11_COLOR_WRITE_ENABLE_RED|D3D11_COLOR_WRITE_ENABLE_GREEN|D3D11_COLOR_WRITE_ENABLE_BLUE|D3D11_COLOR_WRITE_ENABLE_ALPHA) 674 } D3D11_COLOR_WRITE_ENABLE; 675 676 typedef struct D3D11_RENDER_TARGET_BLEND_DESC 677 { 678 BOOL BlendEnable; 679 D3D11_BLEND SrcBlend; 680 D3D11_BLEND DestBlend; 681 D3D11_BLEND_OP BlendOp; 682 D3D11_BLEND SrcBlendAlpha; 683 D3D11_BLEND DestBlendAlpha; 684 D3D11_BLEND_OP BlendOpAlpha; 685 UINT8 RenderTargetWriteMask; 686 } D3D11_RENDER_TARGET_BLEND_DESC; 687 688 typedef struct D3D11_BLEND_DESC 689 { 690 BOOL AlphaToCoverageEnable; 691 BOOL IndependentBlendEnable; 692 D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]; 693 } D3D11_BLEND_DESC; 694 695 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 696 cpp_quote("struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC {") 697 cpp_quote(" CD3D11_BLEND_DESC() {}") 698 cpp_quote(" explicit CD3D11_BLEND_DESC(const D3D11_BLEND_DESC &o) : D3D11_BLEND_DESC(o) {}") 699 cpp_quote(" explicit CD3D11_BLEND_DESC(CD3D11_DEFAULT) {") 700 cpp_quote(" AlphaToCoverageEnable = FALSE;") 701 cpp_quote(" IndependentBlendEnable = FALSE;") 702 cpp_quote(" for(D3D11_RENDER_TARGET_BLEND_DESC *target; target < RenderTarget+D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; target++) {") 703 cpp_quote(" target->BlendEnable = FALSE;") 704 cpp_quote(" target->SrcBlend = target->SrcBlendAlpha = D3D11_BLEND_ONE;") 705 cpp_quote(" target->DestBlend = target->DestBlendAlpha = D3D11_BLEND_ZERO;") 706 cpp_quote(" target->BlendOp = target->BlendOpAlpha = D3D11_BLEND_OP_ADD;") 707 cpp_quote(" target->RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;") 708 cpp_quote(" }") 709 cpp_quote(" }") 710 cpp_quote(" ~CD3D11_BLEND_DESC() {}") 711 cpp_quote(" operator const D3D11_BLEND_DESC&() const { return *this; }") 712 cpp_quote("};" ) 713 cpp_quote("#endif" ) 714 715 typedef struct D3D11_BUFFER_DESC 716 { 717 UINT ByteWidth; 718 D3D11_USAGE Usage; 719 UINT BindFlags; 720 UINT CPUAccessFlags; 721 UINT MiscFlags; 722 UINT StructureByteStride; 723 } D3D11_BUFFER_DESC; 724 725 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 726 cpp_quote("struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC {") 727 cpp_quote(" CD3D11_BUFFER_DESC() {}" ) 728 cpp_quote(" explicit CD3D11_BUFFER_DESC(const D3D11_BUFFER_DESC &o) : D3D11_BUFFER_DESC(o) {}") 729 cpp_quote(" explicit CD3D11_BUFFER_DESC(UINT byteWidth,UINT bindFlags,") 730 cpp_quote(" D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0,") 731 cpp_quote(" UINT miscFlags = 0, UINT structureByteStride = 0 ) {") 732 cpp_quote(" ByteWidth = byteWidth;") 733 cpp_quote(" Usage = usage;") 734 cpp_quote(" BindFlags = bindFlags;") 735 cpp_quote(" CPUAccessFlags = cpuaccessFlags;") 736 cpp_quote(" MiscFlags = miscFlags;" ) 737 cpp_quote(" StructureByteStride = structureByteStride;") 738 cpp_quote(" }") 739 cpp_quote(" ~CD3D11_BUFFER_DESC() {}") 740 cpp_quote(" operator const D3D11_BUFFER_DESC&() const { return *this; }") 741 cpp_quote("};" ) 742 cpp_quote("#endif" ) 743 744 typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC 745 { 746 DXGI_FORMAT Format; 747 D3D11_DSV_DIMENSION ViewDimension; 748 UINT Flags; 749 750 union 751 { 752 D3D11_TEX1D_DSV Texture1D; 753 D3D11_TEX1D_ARRAY_DSV Texture1DArray; 754 D3D11_TEX2D_DSV Texture2D; 755 D3D11_TEX2D_ARRAY_DSV Texture2DArray; 756 D3D11_TEX2DMS_DSV Texture2DMS; 757 D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray; 758 }; 759 } D3D11_DEPTH_STENCIL_VIEW_DESC; 760 761 typedef struct D3D11_DEPTH_STENCILOP_DESC 762 { 763 D3D11_STENCIL_OP StencilFailOp; 764 D3D11_STENCIL_OP StencilDepthFailOp; 765 D3D11_STENCIL_OP StencilPassOp; 766 D3D11_COMPARISON_FUNC StencilFunc; 767 } D3D11_DEPTH_STENCILOP_DESC; 768 769 typedef struct D3D11_DEPTH_STENCIL_DESC 770 { 771 BOOL DepthEnable; 772 D3D11_DEPTH_WRITE_MASK DepthWriteMask; 773 D3D11_COMPARISON_FUNC DepthFunc; 774 BOOL StencilEnable; 775 UINT8 StencilReadMask; 776 UINT8 StencilWriteMask; 777 D3D11_DEPTH_STENCILOP_DESC FrontFace; 778 D3D11_DEPTH_STENCILOP_DESC BackFace; 779 } D3D11_DEPTH_STENCIL_DESC; 780 781 typedef struct D3D11_RENDER_TARGET_VIEW_DESC 782 { 783 DXGI_FORMAT Format; 784 D3D11_RTV_DIMENSION ViewDimension; 785 786 union 787 { 788 D3D11_BUFFER_RTV Buffer; 789 D3D11_TEX1D_RTV Texture1D; 790 D3D11_TEX1D_ARRAY_RTV Texture1DArray; 791 D3D11_TEX2D_RTV Texture2D; 792 D3D11_TEX2D_ARRAY_RTV Texture2DArray; 793 D3D11_TEX2DMS_RTV Texture2DMS; 794 D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; 795 D3D11_TEX3D_RTV Texture3D; 796 }; 797 } D3D11_RENDER_TARGET_VIEW_DESC; 798 799 typedef struct D3D11_SAMPLER_DESC 800 { 801 D3D11_FILTER Filter; 802 D3D11_TEXTURE_ADDRESS_MODE AddressU; 803 D3D11_TEXTURE_ADDRESS_MODE AddressV; 804 D3D11_TEXTURE_ADDRESS_MODE AddressW; 805 FLOAT MipLODBias; 806 UINT MaxAnisotropy; 807 D3D11_COMPARISON_FUNC ComparisonFunc; 808 FLOAT BorderColor[4]; 809 FLOAT MinLOD; 810 FLOAT MaxLOD; 811 } D3D11_SAMPLER_DESC; 812 813 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 814 cpp_quote("struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC {") 815 cpp_quote(" CD3D11_SAMPLER_DESC() {}") 816 cpp_quote(" explicit CD3D11_SAMPLER_DESC(const D3D11_SAMPLER_DESC &o) : D3D11_SAMPLER_DESC(o) {}") 817 cpp_quote(" explicit CD3D11_SAMPLER_DESC(CD3D11_DEFAULT) {" ) 818 cpp_quote(" Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;") 819 cpp_quote(" AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;") 820 cpp_quote(" AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;") 821 cpp_quote(" AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;") 822 cpp_quote(" MipLODBias = 0;") 823 cpp_quote(" MaxAnisotropy = 1;") 824 cpp_quote(" ComparisonFunc = D3D11_COMPARISON_NEVER;") 825 cpp_quote(" BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;") 826 cpp_quote(" MinLOD = -3.402823466e+38f;") 827 cpp_quote(" MaxLOD = 3.402823466e+38f;") 828 cpp_quote(" }") 829 cpp_quote(" explicit CD3D11_SAMPLER_DESC(D3D11_FILTER filter, D3D11_TEXTURE_ADDRESS_MODE addressU,") 830 cpp_quote(" D3D11_TEXTURE_ADDRESS_MODE addressV, D3D11_TEXTURE_ADDRESS_MODE addressW,") 831 cpp_quote(" FLOAT mipLODBias, UINT maxAnisotropy, D3D11_COMPARISON_FUNC comparisonFunc,") 832 cpp_quote(" const FLOAT *borderColor, FLOAT minLOD, FLOAT maxLOD) {" ) 833 cpp_quote(" Filter = filter;") 834 cpp_quote(" AddressU = addressU;") 835 cpp_quote(" AddressV = addressV;") 836 cpp_quote(" AddressW = addressW;") 837 cpp_quote(" MipLODBias = mipLODBias;") 838 cpp_quote(" MaxAnisotropy = maxAnisotropy;") 839 cpp_quote(" ComparisonFunc = comparisonFunc;") 840 cpp_quote(" if(borderColor) {") 841 cpp_quote(" BorderColor[0] = borderColor[0];") 842 cpp_quote(" BorderColor[1] = borderColor[1];") 843 cpp_quote(" BorderColor[2] = borderColor[2];") 844 cpp_quote(" BorderColor[3] = borderColor[3];") 845 cpp_quote(" }else {") 846 cpp_quote(" BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;") 847 cpp_quote(" }") 848 cpp_quote(" MinLOD = minLOD;") 849 cpp_quote(" MaxLOD = maxLOD;") 850 cpp_quote(" }") 851 cpp_quote(" ~CD3D11_SAMPLER_DESC() {}") 852 cpp_quote(" operator const D3D11_SAMPLER_DESC&() const { return *this; }") 853 cpp_quote("};") 854 cpp_quote("#endif") 855 856 typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC 857 { 858 DXGI_FORMAT Format; 859 D3D11_SRV_DIMENSION ViewDimension; 860 861 union 862 { 863 D3D11_BUFFER_SRV Buffer; 864 D3D11_TEX1D_SRV Texture1D; 865 D3D11_TEX1D_ARRAY_SRV Texture1DArray; 866 D3D11_TEX2D_SRV Texture2D; 867 D3D11_TEX2D_ARRAY_SRV Texture2DArray; 868 D3D11_TEX2DMS_SRV Texture2DMS; 869 D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; 870 D3D11_TEX3D_SRV Texture3D; 871 D3D11_TEXCUBE_SRV TextureCube; 872 D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; 873 D3D11_BUFFEREX_SRV BufferEx; 874 }; 875 } D3D11_SHADER_RESOURCE_VIEW_DESC; 876 877 typedef struct D3D11_TEXTURE1D_DESC 878 { 879 UINT Width; 880 UINT MipLevels; 881 UINT ArraySize; 882 DXGI_FORMAT Format; 883 D3D11_USAGE Usage; 884 UINT BindFlags; 885 UINT CPUAccessFlags; 886 UINT MiscFlags; 887 } D3D11_TEXTURE1D_DESC; 888 889 typedef struct D3D11_TEXTURE2D_DESC 890 { 891 UINT Width; 892 UINT Height; 893 UINT MipLevels; 894 UINT ArraySize; 895 DXGI_FORMAT Format; 896 DXGI_SAMPLE_DESC SampleDesc; 897 D3D11_USAGE Usage; 898 UINT BindFlags; 899 UINT CPUAccessFlags; 900 UINT MiscFlags; 901 } D3D11_TEXTURE2D_DESC; 902 903 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 904 cpp_quote("struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC {") 905 cpp_quote(" CD3D11_TEXTURE2D_DESC() {}") 906 cpp_quote(" explicit CD3D11_TEXTURE2D_DESC(const D3D11_TEXTURE2D_DESC &o) : D3D11_TEXTURE2D_DESC(o) {}") 907 cpp_quote(" explicit CD3D11_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height, UINT arraySize = 1,") 908 cpp_quote(" UINT mipLevels = 0, UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,") 909 cpp_quote(" D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT sampleCount = 1," ) 910 cpp_quote(" UINT sampleQuality = 0, UINT miscFlags = 0) {") 911 cpp_quote(" Width = width;") 912 cpp_quote(" Height = height;") 913 cpp_quote(" MipLevels = mipLevels;") 914 cpp_quote(" ArraySize = arraySize;") 915 cpp_quote(" Format = format;") 916 cpp_quote(" SampleDesc.Count = sampleCount;") 917 cpp_quote(" SampleDesc.Quality = sampleQuality;") 918 cpp_quote(" Usage = usage;") 919 cpp_quote(" BindFlags = bindFlags;") 920 cpp_quote(" CPUAccessFlags = cpuaccessFlags;") 921 cpp_quote(" MiscFlags = miscFlags;") 922 cpp_quote(" }" ) 923 cpp_quote(" ~CD3D11_TEXTURE2D_DESC() {}") 924 cpp_quote(" operator const D3D11_TEXTURE2D_DESC&() const { return *this; }") 925 cpp_quote("};") 926 cpp_quote("#endif") 927 928 typedef struct D3D11_TEXTURE3D_DESC 929 { 930 UINT Width; 931 UINT Height; 932 UINT Depth; 933 UINT MipLevels; 934 DXGI_FORMAT Format; 935 D3D11_USAGE Usage; 936 UINT BindFlags; 937 UINT CPUAccessFlags; 938 UINT MiscFlags; 939 } D3D11_TEXTURE3D_DESC; 940 941 /* A couple forward declarations are needed */ 942 interface ID3D11Device; 943 interface ID3D11ClassLinkage; 944 945 [ 946 object, 947 local, 948 uuid(1841e5c8-16b0-489b-bcc8-44cfb0d5deae) 949 ] 950 interface ID3D11DeviceChild : IUnknown 951 { 952 void GetDevice( 953 [out] ID3D11Device **ppDevice); 954 HRESULT GetPrivateData( 955 [in] REFGUID guid, 956 [in, out] UINT *pDataSize, 957 [out] void *pData); 958 HRESULT SetPrivateData( 959 [in] REFGUID guid, 960 [in] UINT DataSize, 961 [in] const void *pData); 962 HRESULT SetPrivateDataInterface( 963 [in] REFGUID guid, 964 [in] const IUnknown *pData); 965 } 966 967 [ 968 object, 969 local, 970 uuid(4b35d0cd-1e15-4258-9c98-1b1333f6dd3b) 971 ] 972 interface ID3D11Asynchronous : ID3D11DeviceChild 973 { 974 UINT GetDataSize(); 975 } 976 977 [ 978 object, 979 local, 980 uuid(d6c00747-87b7-425e-b84d-44d108560afd) 981 ] 982 interface ID3D11Query : ID3D11Asynchronous 983 { 984 void GetDesc( 985 [out] D3D11_QUERY_DESC *pDesc); 986 } 987 988 [ 989 object, 990 local, 991 uuid(dc8e63f3-d12b-4952-b47b-5e45026a862d) 992 ] 993 interface ID3D11Resource : ID3D11DeviceChild 994 { 995 void GetType( 996 [out] D3D11_RESOURCE_DIMENSION *pResourceDimension); 997 void SetEvictionPriority( 998 [in] UINT EvictionPriority); 999 UINT GetEvictionPriority(); 1000 } 1001 1002 [ 1003 object, 1004 local, 1005 uuid(839d1216-bb2e-412b-b7f4-a9dbebe08ed1) 1006 ] 1007 interface ID3D11View : ID3D11DeviceChild 1008 { 1009 void GetResource( 1010 [out] ID3D11Resource **ppResource); 1011 } 1012 1013 [ 1014 object, 1015 local, 1016 uuid(75b68faa-347d-4159-8f45-a0640f01cd9a) 1017 ] 1018 interface ID3D11BlendState : ID3D11DeviceChild 1019 { 1020 void GetDesc( 1021 [out] D3D11_BLEND_DESC *pDesc); 1022 } 1023 1024 [ 1025 object, 1026 local, 1027 uuid(48570b85-d1ee-4fcd-a250-eb350722b037) 1028 ] 1029 interface ID3D11Buffer : ID3D11Resource 1030 { 1031 void GetDesc( 1032 [out] D3D11_BUFFER_DESC *pDesc); 1033 } 1034 1035 [ 1036 object, 1037 local, 1038 uuid(a6cd7faa-b0b7-4a2f-9436-8662a65797cb) 1039 ] 1040 interface ID3D11ClassInstance : ID3D11DeviceChild 1041 { 1042 void GetClassLinkage( 1043 [out] ID3D11ClassLinkage **ppLinkage); 1044 void GetDesc( 1045 [out] D3D11_CLASS_INSTANCE_DESC *pDesc); 1046 void GetInstanceName( 1047 [out] LPSTR pInstanceName, 1048 [in, out] SIZE_T *pBufferLength); 1049 void GetTypeName( 1050 [out] LPSTR pTypeName, 1051 [in, out] SIZE_T *pBufferLength); 1052 } 1053 1054 [ 1055 object, 1056 local, 1057 uuid(ddf57cba-9543-46e4-a12b-f207a0fe7fed) 1058 ] 1059 interface ID3D11ClassLinkage : ID3D11DeviceChild 1060 { 1061 HRESULT GetClassInstance( 1062 [in] LPCSTR pClassInstanceName, 1063 [in] UINT InstanceIndex, 1064 [out] ID3D11ClassInstance **ppInstance); 1065 HRESULT CreateClassInstance( 1066 [in] LPCSTR pClassTypeName, 1067 [in] UINT ConstantBufferOffset, 1068 [in] UINT ConstantVectorOffset, 1069 [in] UINT TextureOffset, 1070 [in] UINT SamplerOffset, 1071 [out] ID3D11ClassInstance **ppInstance); 1072 } 1073 1074 [ 1075 object, 1076 local, 1077 uuid(a24bc4d1-769e-43f7-8013-98ff566c18e2) 1078 ] 1079 interface ID3D11CommandList : ID3D11DeviceChild 1080 { 1081 UINT GetContextFlags(); 1082 } 1083 1084 [ 1085 object, 1086 local, 1087 uuid(4f5b196e-c2bd-495e-bd01-1fded38e4969) 1088 ] 1089 interface ID3D11ComputeShader : ID3D11DeviceChild 1090 { 1091 } 1092 1093 [ 1094 object, 1095 local, 1096 uuid(6e8c49fb-a371-4770-b440-29086022b741) 1097 ] 1098 interface ID3D11Counter : ID3D11Asynchronous 1099 { 1100 void GetDesc( 1101 [out] D3D11_COUNTER_DESC *pDesc); 1102 } 1103 1104 [ 1105 object, 1106 local, 1107 uuid(03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1) 1108 ] 1109 interface ID3D11DepthStencilState : ID3D11DeviceChild 1110 { 1111 void GetDesc( 1112 [out] D3D11_DEPTH_STENCIL_DESC *pDesc); 1113 } 1114 1115 [ 1116 object, 1117 local, 1118 uuid(9fdac92a-1876-48c3-afad-25b94f84a9b6) 1119 ] 1120 interface ID3D11DepthStencilView : ID3D11View 1121 { 1122 void GetDesc( 1123 [out] D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc); 1124 } 1125 1126 [ 1127 object, 1128 local, 1129 uuid(f582c508-0f36-490c-9977-31eece268cfa) 1130 ] 1131 interface ID3D11DomainShader : ID3D11DeviceChild 1132 { 1133 } 1134 1135 [ 1136 object, 1137 local, 1138 uuid(38325b96-effb-4022-ba02-2e795b70275c) 1139 ] 1140 interface ID3D11GeometryShader : ID3D11DeviceChild 1141 { 1142 } 1143 1144 [ 1145 object, 1146 local, 1147 uuid(8e5c6061-628a-4c8e-8264-bbe45cb3d5dd) 1148 ] 1149 interface ID3D11HullShader : ID3D11DeviceChild 1150 { 1151 } 1152 1153 [ 1154 object, 1155 local, 1156 uuid(e4819ddc-4cf0-4025-bd26-5de82a3e07b7) 1157 ] 1158 interface ID3D11InputLayout : ID3D11DeviceChild 1159 { 1160 } 1161 1162 [ 1163 object, 1164 local, 1165 uuid(ea82e40d-51dc-4f33-93d4-db7c9125ae8c) 1166 ] 1167 interface ID3D11PixelShader : ID3D11DeviceChild 1168 { 1169 } 1170 1171 [ 1172 object, 1173 local, 1174 uuid(9eb576dd-9f77-4d86-81aa-8bab5fe490e2) 1175 ] 1176 interface ID3D11Predicate : ID3D11Query 1177 { 1178 } 1179 1180 [ 1181 object, 1182 local, 1183 uuid(9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7) 1184 ] 1185 interface ID3D11RasterizerState : ID3D11DeviceChild 1186 { 1187 void GetDesc( 1188 [out] D3D11_RASTERIZER_DESC *pDesc); 1189 } 1190 1191 [ 1192 object, 1193 local, 1194 uuid(dfdba067-0b8d-4865-875b-d7b4516cc164) 1195 ] 1196 interface ID3D11RenderTargetView : ID3D11View 1197 { 1198 void GetDesc( 1199 [out] D3D11_RENDER_TARGET_VIEW_DESC *pDesc); 1200 } 1201 1202 [ 1203 object, 1204 local, 1205 uuid(da6fea51-564c-4487-9810-f0d0f9b4e3a5) 1206 ] 1207 interface ID3D11SamplerState : ID3D11DeviceChild 1208 { 1209 void GetDesc( 1210 [out] D3D11_SAMPLER_DESC *pDesc); 1211 } 1212 1213 [ 1214 object, 1215 local, 1216 uuid(b0e06fe0-8192-4e1a-b1ca-36d7414710b2) 1217 ] 1218 interface ID3D11ShaderResourceView : ID3D11View 1219 { 1220 void GetDesc( 1221 [out] D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc); 1222 } 1223 1224 [ 1225 object, 1226 local, 1227 uuid(f8fb5c27-c6b3-4f75-a4c8-439af2ef564c), 1228 ] 1229 interface ID3D11Texture1D : ID3D11Resource 1230 { 1231 void GetDesc( 1232 [out] D3D11_TEXTURE1D_DESC *pDesc); 1233 } 1234 1235 [ 1236 object, 1237 local, 1238 uuid(6f15aaf2-d208-4e89-9ab4-489535d34f9c) 1239 ] 1240 interface ID3D11Texture2D : ID3D11Resource 1241 { 1242 void GetDesc( 1243 [out] D3D11_TEXTURE2D_DESC *pDesc); 1244 } 1245 1246 [ 1247 object, 1248 local, 1249 uuid(037e866e-f56d-4357-a8af-9dabbe6e250e) 1250 ] 1251 interface ID3D11Texture3D : ID3D11Resource 1252 { 1253 void GetDesc( 1254 [out] D3D11_TEXTURE3D_DESC *pDesc); 1255 } 1256 1257 [ 1258 object, 1259 local, 1260 uuid(28acf509-7f5c-48f6-8611-f316010a6380) 1261 ] 1262 interface ID3D11UnorderedAccessView : ID3D11View 1263 { 1264 void GetDesc( 1265 [out] D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc); 1266 } 1267 1268 [ 1269 object, 1270 local, 1271 uuid(3b301d64-d678-4289-8897-22f8928b72f3) 1272 ] 1273 interface ID3D11VertexShader : ID3D11DeviceChild 1274 { 1275 } 1276 1277 [ 1278 object, 1279 local, 1280 uuid(c0bfa96c-e089-44fb-8eaf-26f8796190da) 1281 ] 1282 interface ID3D11DeviceContext : ID3D11DeviceChild 1283 { 1284 void VSSetConstantBuffers( 1285 [in] UINT StartSlot, 1286 [in] UINT NumBuffers, 1287 [in] ID3D11Buffer *const *ppConstantBuffers); 1288 void PSSetShaderResources( 1289 [in] UINT StartSlot, 1290 [in] UINT NumViews, 1291 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 1292 void PSSetShader( 1293 [in] ID3D11PixelShader *pPixelShader, 1294 [in] ID3D11ClassInstance *const *ppClassInstances, 1295 UINT NumClassInstances); 1296 void PSSetSamplers( 1297 [in] UINT StartSlot, 1298 [in] UINT NumSamplers, 1299 [in] ID3D11SamplerState *const *ppSamplers); 1300 void VSSetShader( 1301 [in] ID3D11VertexShader *pVertexShader, 1302 [in] ID3D11ClassInstance *const *ppClassInstances, 1303 UINT NumClassInstances); 1304 void DrawIndexed( 1305 [in] UINT IndexCount, 1306 [in] UINT StartIndexLocation, 1307 [in] INT BaseVertexLocation); 1308 void Draw( 1309 [in] UINT VertexCount, 1310 [in] UINT StartVertexLocation); 1311 HRESULT Map( 1312 [in] ID3D11Resource *pResource, 1313 [in] UINT Subresource, 1314 [in] D3D11_MAP MapType, 1315 [in] UINT MapFlags, 1316 [out] D3D11_MAPPED_SUBRESOURCE *pMappedResource); 1317 void Unmap( 1318 [in] ID3D11Resource *pResource, 1319 [in] UINT Subresource); 1320 void PSSetConstantBuffers( 1321 [in] UINT StartSlot, 1322 [in] UINT NumBuffers, 1323 [in] ID3D11Buffer *const *ppConstantBuffers); 1324 void IASetInputLayout( 1325 [in] ID3D11InputLayout *pInputLayout); 1326 void IASetVertexBuffers( 1327 [in] UINT StartSlot, 1328 [in] UINT NumBuffers, 1329 [in] ID3D11Buffer *const *ppVertexBuffers, 1330 [in] const UINT *pStrides, 1331 [in] const UINT *pOffsets); 1332 void IASetIndexBuffer( 1333 [in] ID3D11Buffer *pIndexBuffer, 1334 [in] DXGI_FORMAT Format, 1335 [in] UINT Offset); 1336 void DrawIndexedInstanced( 1337 [in] UINT IndexCountPerInstance, 1338 [in] UINT InstanceCount, 1339 [in] UINT StartIndexLocation, 1340 [in] INT BaseVertexLocation, 1341 [in] UINT StartInstanceLocation); 1342 void DrawInstanced( 1343 [in] UINT VertexCountPerInstance, 1344 [in] UINT InstanceCount, 1345 [in] UINT StartVertexLocation, 1346 [in] UINT StartInstanceLocation); 1347 void GSSetConstantBuffers( 1348 [in] UINT StartSlot, 1349 [in] UINT NumBuffers, 1350 [in] ID3D11Buffer *const *ppConstantBuffers); 1351 void GSSetShader( 1352 [in] ID3D11GeometryShader *pShader, 1353 [in] ID3D11ClassInstance *const *ppClassInstances, 1354 UINT NumClassInstances); 1355 void IASetPrimitiveTopology( 1356 [in] D3D11_PRIMITIVE_TOPOLOGY Topology); 1357 void VSSetShaderResources( 1358 [in] UINT StartSlot, 1359 [in] UINT NumViews, 1360 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 1361 void VSSetSamplers( 1362 [in] UINT StartSlot, 1363 [in] UINT NumSamplers, 1364 [in] ID3D11SamplerState *const *ppSamplers); 1365 void Begin( 1366 [in] ID3D11Asynchronous *pAsync); 1367 void End( 1368 [in] ID3D11Asynchronous *pAsync); 1369 HRESULT GetData( 1370 [in] ID3D11Asynchronous *pAsync, 1371 [in] void *pData, 1372 [in] UINT DataSize, 1373 [in] UINT GetDataFlags); 1374 void SetPredication( 1375 [in] ID3D11Predicate *pPredicate, 1376 [in] BOOL PredicateValue); 1377 void GSSetShaderResources( 1378 [in] UINT StartSlot, 1379 [in] UINT NumViews, 1380 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 1381 void GSSetSamplers( 1382 [in] UINT StartSlot, 1383 [in] UINT NumSamplers, 1384 [in] ID3D11SamplerState *const *ppSamplers); 1385 void OMSetRenderTargets( 1386 [in] UINT NumViews, 1387 [in] ID3D11RenderTargetView *const *ppRenderTargetViews, 1388 [in] ID3D11DepthStencilView *pDepthStencilView); 1389 void OMSetRenderTargetsAndUnorderedAccessViews( 1390 [in] UINT NumRTVs, 1391 [in] ID3D11RenderTargetView *const *ppRenderTargetViews, 1392 [in] ID3D11DepthStencilView *pDepthStencilView, 1393 [in] UINT UAVStartSlot, 1394 [in] UINT NumUAVs, 1395 [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, 1396 [in] const UINT *pUAVInitialCounts); 1397 void OMSetBlendState( 1398 [in] ID3D11BlendState *pBlendState, 1399 [in] const FLOAT BlendFactor[4], 1400 [in] UINT SampleMask); 1401 void OMSetDepthStencilState( 1402 [in] ID3D11DepthStencilState *pDepthStencilState, 1403 [in] UINT StencilRef); 1404 void SOSetTargets( 1405 [in] UINT NumBuffers, 1406 [in] ID3D11Buffer *const *ppSOTargets, 1407 [in] const UINT *pOffsets); 1408 void DrawAuto(); 1409 void DrawIndexedInstancedIndirect( 1410 [in] ID3D11Buffer *pBufferForArgs, 1411 [in] UINT AlignedByteOffsetForArgs); 1412 void DrawInstancedIndirect( 1413 [in] ID3D11Buffer *pBufferForArgs, 1414 [in] UINT AlignedByteOffsetForArgs); 1415 void Dispatch( 1416 [in] UINT ThreadGroupCountX, 1417 [in] UINT ThreadGroupCountY, 1418 [in] UINT ThreadGroupCountZ); 1419 void DispatchIndirect( 1420 [in] ID3D11Buffer *pBufferForArgs, 1421 [in] UINT AlignedByteOffsetForArgs); 1422 void RSSetState( 1423 [in] ID3D11RasterizerState *pRasterizerState); 1424 void RSSetViewports( 1425 [in] UINT NumViewports, 1426 [in] const D3D11_VIEWPORT *pViewports); 1427 void RSSetScissorRects( 1428 [in] UINT NumRects, 1429 [in] const D3D11_RECT *pRects); 1430 void CopySubresourceRegion( 1431 [in] ID3D11Resource *pDstResource, 1432 [in] UINT DstSubresource, 1433 [in] UINT DstX, 1434 [in] UINT DstY, 1435 [in] UINT DstZ, 1436 [in] ID3D11Resource *pSrcResource, 1437 [in] UINT SrcSubresource, 1438 [in] const D3D11_BOX *pSrcBox); 1439 void CopyResource( 1440 [in] ID3D11Resource *pDstResource, 1441 [in] ID3D11Resource *pSrcResource); 1442 void UpdateSubresource( 1443 [in] ID3D11Resource *pDstResource, 1444 [in] UINT DstSubresource, 1445 [in] const D3D11_BOX *pDstBox, 1446 [in] const void *pSrcData, 1447 [in] UINT SrcRowPitch, 1448 [in] UINT SrcDepthPitch); 1449 void CopyStructureCount( 1450 [in] ID3D11Buffer *pDstBuffer, 1451 [in] UINT DstAlignedByteOffset, 1452 [in] ID3D11UnorderedAccessView *pSrcView); 1453 void ClearRenderTargetView( 1454 [in] ID3D11RenderTargetView *pRenderTargetView, 1455 [in] const FLOAT ColorRGBA[4]); 1456 void ClearUnorderedAccessViewUint( 1457 [in] ID3D11UnorderedAccessView *pUnorderedAccessView, 1458 [in] const UINT Values[4]); 1459 void ClearUnorderedAccessViewFloat( 1460 [in] ID3D11UnorderedAccessView *pUnorderedAccessView, 1461 [in] const FLOAT Values[4]); 1462 void ClearDepthStencilView( 1463 [in] ID3D11DepthStencilView *pDepthStencilView, 1464 [in] UINT ClearFlags, 1465 [in] FLOAT Depth, 1466 [in] UINT8 Stencil); 1467 void GenerateMips( 1468 [in] ID3D11ShaderResourceView *pShaderResourceView); 1469 void SetResourceMinLOD( 1470 [in] ID3D11Resource *pResource, FLOAT MinLOD); 1471 FLOAT GetResourceMinLOD( 1472 [in] ID3D11Resource *pResource); 1473 void ResolveSubresource( 1474 [in] ID3D11Resource *pDstResource, 1475 [in] UINT DstSubresource, 1476 [in] ID3D11Resource *pSrcResource, 1477 [in] UINT SrcSubresource, 1478 [in] DXGI_FORMAT Format); 1479 void ExecuteCommandList( 1480 [in] ID3D11CommandList *pCommandList, 1481 BOOL RestoreContextState); 1482 void HSSetShaderResources( 1483 [in] UINT StartSlot, 1484 [in] UINT NumViews, 1485 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 1486 void HSSetShader( 1487 [in] ID3D11HullShader *pHullShader, 1488 [in] ID3D11ClassInstance *const *ppClassInstances, 1489 UINT NumClassInstances); 1490 void HSSetSamplers( 1491 [in] UINT StartSlot, 1492 [in] UINT NumSamplers, 1493 [in] ID3D11SamplerState *const *ppSamplers); 1494 void HSSetConstantBuffers( 1495 [in] UINT StartSlot, 1496 [in] UINT NumBuffers, 1497 [in] ID3D11Buffer *const *ppConstantBuffers); 1498 void DSSetShaderResources( 1499 [in] UINT StartSlot, 1500 [in] UINT NumViews, 1501 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 1502 void DSSetShader( 1503 [in] ID3D11DomainShader *pDomainShader, 1504 [in] ID3D11ClassInstance *const *ppClassInstances, 1505 UINT NumClassInstances); 1506 void DSSetSamplers( 1507 [in] UINT StartSlot, 1508 [in] UINT NumSamplers, 1509 [in] ID3D11SamplerState *const *ppSamplers); 1510 void DSSetConstantBuffers( 1511 [in] UINT StartSlot, 1512 [in] UINT NumBuffers, 1513 [in] ID3D11Buffer *const *ppConstantBuffers); 1514 void CSSetShaderResources( 1515 [in] UINT StartSlot, 1516 [in] UINT NumViews, 1517 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 1518 void CSSetUnorderedAccessViews( 1519 [in] UINT StartSlot, 1520 [in] UINT NumUAVs, 1521 [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, 1522 [in] const UINT *pUAVInitialCounts); 1523 void CSSetShader( 1524 [in] ID3D11ComputeShader *pComputeShader, 1525 [in] ID3D11ClassInstance *const *ppClassInstances, 1526 UINT NumClassInstances); 1527 void CSSetSamplers( 1528 [in] UINT StartSlot, 1529 [in] UINT NumSamplers, 1530 [in] ID3D11SamplerState *const *ppSamplers); 1531 void CSSetConstantBuffers( 1532 [in] UINT StartSlot, 1533 [in] UINT NumBuffers, 1534 [in] ID3D11Buffer *const *ppConstantBuffers); 1535 void VSGetConstantBuffers( 1536 [in] UINT StartSlot, 1537 [in] UINT NumBuffers, 1538 [out] ID3D11Buffer **ppConstantBuffers); 1539 void PSGetShaderResources( 1540 [in] UINT StartSlot, 1541 [in] UINT NumViews, 1542 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 1543 void PSGetShader( 1544 [out] ID3D11PixelShader **ppPixelShader, 1545 [out] ID3D11ClassInstance **ppClassInstances, 1546 [in, out] UINT *pNumClassInstances); 1547 void PSGetSamplers( 1548 [in] UINT StartSlot, 1549 [in] UINT NumSamplers, 1550 [out] ID3D11SamplerState **ppSamplers); 1551 void VSGetShader( 1552 [out] ID3D11VertexShader **ppVertexShader, 1553 [out] ID3D11ClassInstance **ppClassInstances, 1554 [in, out] UINT *pNumClassInstances); 1555 void PSGetConstantBuffers( 1556 [in] UINT StartSlot, 1557 [in] UINT NumBuffers, 1558 [out] ID3D11Buffer **ppConstantBuffers); 1559 void IAGetInputLayout( 1560 [out] ID3D11InputLayout **ppInputLayout); 1561 void IAGetVertexBuffers( 1562 [in] UINT StartSlot, 1563 [in] UINT NumBuffers, 1564 [out] ID3D11Buffer **ppVertexBuffers, 1565 [out] UINT *pStrides, 1566 [out] UINT *pOffsets); 1567 void IAGetIndexBuffer( 1568 [out] ID3D11Buffer **pIndexBuffer, 1569 [out] DXGI_FORMAT* Format, 1570 [out] UINT* Offset); 1571 void GSGetConstantBuffers( 1572 [in] UINT StartSlot, 1573 [in] UINT NumBuffers, 1574 [out] ID3D11Buffer **ppConstantBuffers); 1575 void GSGetShader( 1576 [out] ID3D11GeometryShader **ppGeometryShader, 1577 [out] ID3D11ClassInstance **ppClassInstances, 1578 [in, out] UINT *pNumClassInstances); 1579 void IAGetPrimitiveTopology( 1580 [out] D3D11_PRIMITIVE_TOPOLOGY *pTopology); 1581 void VSGetShaderResources( 1582 [in] UINT StartSlot, 1583 [in] UINT NumViews, 1584 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 1585 void VSGetSamplers( 1586 [in] UINT StartSlot, 1587 [in] UINT NumSamplers, 1588 [out] ID3D11SamplerState **ppSamplers); 1589 void GetPredication( 1590 [out] ID3D11Predicate **ppPredicate, 1591 [out] BOOL *pPredicateValue); 1592 void GSGetShaderResources( 1593 [in] UINT StartSlot, 1594 [in] UINT NumViews, 1595 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 1596 void GSGetSamplers( 1597 [in] UINT StartSlot, 1598 [in] UINT NumSamplers, 1599 [out] ID3D11SamplerState **ppSamplers); 1600 void OMGetRenderTargets( 1601 [in] UINT NumViews, 1602 [out] ID3D11RenderTargetView **ppRenderTargetViews, 1603 [out] ID3D11DepthStencilView **ppDepthStencilView); 1604 void OMGetRenderTargetsAndUnorderedAccessViews( 1605 [in] UINT NumRTVs, 1606 [out] ID3D11RenderTargetView **ppRenderTargetViews, 1607 [out] ID3D11DepthStencilView **ppDepthStencilView, 1608 [in] UINT UAVStartSlot, 1609 [out] UINT NumUAVs, 1610 [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews); 1611 void OMGetBlendState( 1612 [out] ID3D11BlendState **ppBlendState, 1613 [out] FLOAT BlendFactor[4], 1614 [out] UINT *pSampleMask); 1615 void OMGetDepthStencilState( 1616 [out] ID3D11DepthStencilState **ppDepthStencilState, 1617 [out] UINT *pStencilRef); 1618 void SOGetTargets( 1619 [in] UINT NumBuffers, 1620 [out] ID3D11Buffer **ppSOTargets); 1621 void RSGetState( 1622 [out] ID3D11RasterizerState **ppRasterizerState); 1623 void RSGetViewports( 1624 [in, out] UINT *pNumViewports, 1625 [out] D3D11_VIEWPORT *pViewports); 1626 void RSGetScissorRects( 1627 [in, out] UINT *pNumRects, 1628 [out] D3D11_RECT *pRects); 1629 void HSGetShaderResources( 1630 [in] UINT StartSlot, 1631 [in] UINT NumViews, 1632 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 1633 void HSGetShader( 1634 [out] ID3D11HullShader **ppHullShader, 1635 [out] ID3D11ClassInstance **ppClassInstances, 1636 [in, out] UINT *pNumClassInstances); 1637 void HSGetSamplers( 1638 [in] UINT StartSlot, 1639 [in] UINT NumSamplers, 1640 [out] ID3D11SamplerState **ppSamplers); 1641 void HSGetConstantBuffers( 1642 [in] UINT StartSlot, 1643 [in] UINT NumBuffers, 1644 [out] ID3D11Buffer **ppConstantBuffers); 1645 void DSGetShaderResources( 1646 [in] UINT StartSlot, 1647 [in] UINT NumViews, 1648 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 1649 void DSGetShader( 1650 [out] ID3D11DomainShader **ppDomainShader, 1651 [out] ID3D11ClassInstance **ppClassInstances, 1652 [in, out] UINT *pNumClassInstances); 1653 void DSGetSamplers( 1654 [in] UINT StartSlot, 1655 [in] UINT NumSamplers, 1656 [out] ID3D11SamplerState **ppSamplers); 1657 void DSGetConstantBuffers( 1658 [in] UINT StartSlot, 1659 [in] UINT NumBuffers, 1660 [out] ID3D11Buffer **ppConstantBuffers); 1661 void CSGetShaderResources( 1662 [in] UINT StartSlot, 1663 [in] UINT NumViews, 1664 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 1665 void CSGetUnorderedAccessViews( 1666 [in] UINT StartSlot, 1667 [in] UINT NumUAVs, 1668 [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews); 1669 void CSGetShader( 1670 [out] ID3D11ComputeShader **ppComputeShader, 1671 [out] ID3D11ClassInstance **ppClassInstances, 1672 [in, out] UINT *pNumClassInstances); 1673 void CSGetSamplers( 1674 [in] UINT StartSlot, 1675 [in] UINT NumSamplers, 1676 [out] ID3D11SamplerState **ppSamplers); 1677 void CSGetConstantBuffers( 1678 [in] UINT StartSlot, 1679 [in] UINT NumBuffers, 1680 [out] ID3D11Buffer **ppConstantBuffers); 1681 void ClearState(); 1682 void Flush(); 1683 D3D11_DEVICE_CONTEXT_TYPE GetType(); 1684 UINT GetContextFlags(); 1685 HRESULT FinishCommandList( 1686 BOOL RestoreDeferredContextState, 1687 [out] ID3D11CommandList **ppCommandList); 1688 } 1689 1690 [ 1691 object, 1692 local, 1693 uuid(db6f6ddb-ac77-4e88-8253-819df9bbf140) 1694 ] 1695 interface ID3D11Device : IUnknown 1696 { 1697 HRESULT CreateBuffer( 1698 [in] const D3D11_BUFFER_DESC *pDesc, 1699 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 1700 [out] ID3D11Buffer **ppBuffer); 1701 HRESULT CreateTexture1D( 1702 [in] const D3D11_TEXTURE1D_DESC *pDesc, 1703 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 1704 [out] ID3D11Texture1D **ppTexture1D); 1705 HRESULT CreateTexture2D( 1706 [in] const D3D11_TEXTURE2D_DESC *pDesc, 1707 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 1708 [out] ID3D11Texture2D **ppTexture2D); 1709 HRESULT CreateTexture3D( 1710 [in] const D3D11_TEXTURE3D_DESC *pDesc, 1711 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 1712 [out] ID3D11Texture3D **ppTexture3D); 1713 HRESULT CreateShaderResourceView( 1714 [in] ID3D11Resource *pResource, 1715 [in] const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, 1716 [out] ID3D11ShaderResourceView **ppSRView); 1717 HRESULT CreateUnorderedAccessView( 1718 [in] ID3D11Resource *pResource, 1719 [in] const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, 1720 [out] ID3D11UnorderedAccessView **ppUAView); 1721 HRESULT CreateRenderTargetView( 1722 [in] ID3D11Resource *pResource, 1723 [in] const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, 1724 [out] ID3D11RenderTargetView **ppRTView); 1725 HRESULT CreateDepthStencilView( 1726 [in] ID3D11Resource *pResource, 1727 [in] const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, 1728 [out] ID3D11DepthStencilView **ppDepthStencilView); 1729 HRESULT CreateInputLayout( 1730 [in] const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, 1731 [in] UINT NumElements, 1732 [in] const void *pShaderBytecodeWithInputSignature, 1733 [in] SIZE_T BytecodeLength, 1734 [out] ID3D11InputLayout **ppInputLayout); 1735 HRESULT CreateVertexShader( 1736 [in] const void *pShaderBytecode, 1737 [in] SIZE_T BytecodeLength, 1738 [in] ID3D11ClassLinkage *pClassLinkage, 1739 [out] ID3D11VertexShader **ppVertexShader); 1740 HRESULT CreateGeometryShader( 1741 [in] const void *pShaderBytecode, 1742 [in] SIZE_T BytecodeLength, 1743 [in] ID3D11ClassLinkage *pClassLinkage, 1744 [out] ID3D11GeometryShader **ppGeometryShader); 1745 HRESULT CreateGeometryShaderWithStreamOutput( 1746 [in] const void *pShaderBytecode, 1747 [in] SIZE_T BytecodeLength, 1748 [in] const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, 1749 [in] UINT NumEntries, 1750 [in] const UINT *pBufferStrides, 1751 [in] UINT NumStrides, 1752 [in] UINT RasterizedStream, 1753 [in] ID3D11ClassLinkage *pClassLinkage, 1754 [out] ID3D11GeometryShader **ppGeometryShader); 1755 HRESULT CreatePixelShader( 1756 [in] const void *pShaderBytecode, 1757 [in] SIZE_T BytecodeLength, 1758 [in] ID3D11ClassLinkage *pClassLinkage, 1759 [out] ID3D11PixelShader **ppPixelShader); 1760 HRESULT CreateHullShader( 1761 [in] const void *pShaderBytecode, 1762 [in] SIZE_T BytecodeLength, 1763 [in] ID3D11ClassLinkage *pClassLinkage, 1764 [out] ID3D11HullShader **ppHullShader); 1765 HRESULT CreateDomainShader( 1766 [in] const void *pShaderBytecode, 1767 [in] SIZE_T BytecodeLength, 1768 [in] ID3D11ClassLinkage *pClassLinkage, 1769 [out] ID3D11DomainShader **ppDomainShader); 1770 HRESULT CreateComputeShader( 1771 [in] const void *pShaderBytecode, 1772 [in] SIZE_T BytecodeLength, 1773 [in] ID3D11ClassLinkage *pClassLinkage, 1774 [out] ID3D11ComputeShader **ppComputeShader); 1775 HRESULT CreateClassLinkage( 1776 [out] ID3D11ClassLinkage **ppLinkage); 1777 HRESULT CreateBlendState( 1778 [in] const D3D11_BLEND_DESC *pBlendStateDesc, 1779 [out] ID3D11BlendState **ppBlendState); 1780 HRESULT CreateDepthStencilState( 1781 [in] const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, 1782 [out] ID3D11DepthStencilState **ppDepthStencilState); 1783 HRESULT CreateRasterizerState( 1784 [in] const D3D11_RASTERIZER_DESC *pRasterizerDesc, 1785 [out] ID3D11RasterizerState **ppRasterizerState); 1786 HRESULT CreateSamplerState( 1787 [in] const D3D11_SAMPLER_DESC *pSamplerDesc, 1788 [out] ID3D11SamplerState **ppSamplerState); 1789 HRESULT CreateQuery( 1790 [in] const D3D11_QUERY_DESC *pQueryDesc, 1791 [out] ID3D11Query **ppQuery); 1792 HRESULT CreatePredicate( 1793 [in] const D3D11_QUERY_DESC *pPredicateDesc, 1794 [out] ID3D11Predicate **ppPredicate); 1795 HRESULT CreateCounter( 1796 [in] const D3D11_COUNTER_DESC *pCounterDesc, 1797 [out] ID3D11Counter **ppCounter); 1798 HRESULT CreateDeferredContext( 1799 UINT ContextFlags, 1800 [out] ID3D11DeviceContext **ppDeferredContext); 1801 HRESULT OpenSharedResource( 1802 [in] HANDLE hResource, 1803 [in] REFIID ReturnedInterface, 1804 [out] void **ppResource); 1805 HRESULT CheckFormatSupport( 1806 [in] DXGI_FORMAT Format, 1807 [out] UINT *pFormatSupport); 1808 HRESULT CheckMultisampleQualityLevels( 1809 [in] DXGI_FORMAT Format, 1810 [in] UINT SampleCount, 1811 [out] UINT *pNumQualityLevels); 1812 void CheckCounterInfo( 1813 [out] D3D11_COUNTER_INFO *pCounterInfo); 1814 HRESULT CheckCounter( 1815 [in] const D3D11_COUNTER_DESC *pDesc, 1816 [out] D3D11_COUNTER_TYPE *pType, 1817 [out] UINT *pActiveCounters, 1818 [out] LPSTR szName, 1819 [in, out] UINT *pNameLength, 1820 [out] LPSTR szUnits, 1821 [in, out] UINT *pUnitsLength, 1822 [out] LPSTR szDescription, 1823 [in, out] UINT *pDescriptionLength); 1824 HRESULT CheckFeatureSupport( 1825 D3D11_FEATURE Feature, 1826 [out] void *pFeatureSupportData, 1827 UINT FeatureSupportDataSize); 1828 HRESULT GetPrivateData( 1829 [in] REFGUID guid, 1830 [in, out] UINT *pDataSize, 1831 [out] void *pData); 1832 HRESULT SetPrivateData( 1833 [in] REFGUID guid, 1834 [in] UINT DataSize, 1835 [in] const void *pData); 1836 HRESULT SetPrivateDataInterface( 1837 [in] REFGUID guid, 1838 [in] const IUnknown *pData); 1839 D3D_FEATURE_LEVEL GetFeatureLevel(); 1840 UINT GetCreationFlags(); 1841 HRESULT GetDeviceRemovedReason(); 1842 void GetImmediateContext( 1843 [out] ID3D11DeviceContext **ppImmediateContext); 1844 HRESULT SetExceptionMode(UINT RaiseFlags); 1845 UINT GetExceptionMode(); 1846 } 1847 1848 typedef enum D3D11_CREATE_DEVICE_FLAG { 1849 D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, 1850 D3D11_CREATE_DEVICE_DEBUG = 0x0002, 1851 D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x0004, 1852 D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x0008, 1853 D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x0020, 1854 D3D11_CREATE_DEVICE_DEBUGGABLE = 0x0040, 1855 D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x0080, 1856 D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x0100, 1857 D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x0800 1858 } D3D11_CREATE_DEVICE_FLAG; 1859 1860 const UINT D3D11_SDK_VERSION = 7; 1861 1862 cpp_quote("#include <d3d10_1.h>") 1863 cpp_quote("#ifndef D3D11_IGNORE_SDK_LAYERS") 1864 cpp_quote("/* FIXME: # include <d3d11sdklayers.h> */") 1865 cpp_quote("#endif") 1866 cpp_quote("#include <d3d10misc.h>") 1867 cpp_quote("#include <d3d10shader.h>") 1868 cpp_quote("#include <d3d10effect.h>") 1869 cpp_quote("#include <d3d10_1shader.h>") 1870