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 interface ID3D11Device; 31 interface ID3D11ClassLinkage; 32 interface ID3D11Resource; 33 interface ID3D11VideoProcessorInputView; 34 35 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; 36 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; 37 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; 38 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; 39 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16; 40 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 41 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; 42 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 43 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 44 const UINT D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; 45 const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; 46 const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; 47 const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; 48 const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; 49 const UINT D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; 50 const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; 51 const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; 52 const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; 53 const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; 54 const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; 55 const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; 56 const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; 57 const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; 58 const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; 59 const UINT D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; 60 const UINT D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; 61 const UINT D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; 62 const UINT D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; 63 const UINT D3D11_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; 64 const UINT D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; 65 const UINT D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; 66 const UINT D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; 67 const INT D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; 68 const INT D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; 69 const UINT D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; 70 71 const UINT D3D11_DEFAULT_DEPTH_BIAS = 0; 72 cpp_quote("#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f") 73 const UINT D3D11_DEFAULT_MAX_ANISOTROPY = 16; 74 cpp_quote("#define D3D11_DEFAULT_MIP_LOD_BIAS 0.0f") 75 const UINT D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; 76 const UINT D3D11_DEFAULT_SAMPLE_MASK = 0xffffffff; 77 const UINT D3D11_DEFAULT_SCISSOR_ENDX = 0; 78 const UINT D3D11_DEFAULT_SCISSOR_ENDY = 0; 79 const UINT D3D11_DEFAULT_SCISSOR_STARTX = 0; 80 const UINT D3D11_DEFAULT_SCISSOR_STARTY = 0; 81 cpp_quote("#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS 0.0f") 82 const UINT D3D11_DEFAULT_STENCIL_READ_MASK = 0xff; 83 const UINT D3D11_DEFAULT_STENCIL_REFERENCE = 0; 84 const UINT D3D11_DEFAULT_STENCIL_WRITE_MASK = 0xff; 85 const UINT D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; 86 const UINT D3D11_DEFAULT_VIEWPORT_HEIGHT = 0; 87 cpp_quote("#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH 0.0f") 88 cpp_quote("#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH 0.0f") 89 const UINT D3D11_DEFAULT_VIEWPORT_TOPLEFTX = 0; 90 const UINT D3D11_DEFAULT_VIEWPORT_TOPLEFTY = 0; 91 const UINT D3D11_DEFAULT_VIEWPORT_WIDTH = 0; 92 93 cpp_quote("#define D3D11_FLOAT32_MAX (3.402823466e+38f)") 94 95 const UINT D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; 96 97 const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; 98 99 const UINT D3D11_MAX_MAXANISOTROPY = 16; 100 const UINT D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; 101 const UINT D3D11_VIEWPORT_BOUNDS_MAX = 32767; 102 const INT D3D11_VIEWPORT_BOUNDS_MIN = -32768; 103 const UINT D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; 104 const UINT D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; 105 106 const UINT D3D11_SHADER_MAJOR_VERSION = 5; 107 const UINT D3D11_SHADER_MAX_INSTANCES = 65535; 108 const UINT D3D11_SHADER_MAX_INTERFACES = 253; 109 const UINT D3D11_SHADER_MAX_INTERFACE_CALL_SITES = 4096; 110 const UINT D3D11_SHADER_MAX_TYPES = 65535; 111 const UINT D3D11_SHADER_MINOR_VERSION = 0; 112 const UINT D3D11_VS_OUTPUT_REGISTER_COUNT = 32; 113 114 const UINT D3D11_OMAC_SIZE = 16; 115 116 const UINT D3D11_PS_CS_UAV_REGISTER_COMPONENTS = 1; 117 const UINT D3D11_PS_CS_UAV_REGISTER_COUNT = 8; 118 const UINT D3D11_PS_CS_UAV_REGISTER_READS_PER_INST = 1; 119 const UINT D3D11_PS_CS_UAV_REGISTER_READ_PORTS = 1; 120 const UINT D3D11_PS_FRONTFACING_DEFAULT_VALUE = 0xffffffff; 121 const UINT D3D11_PS_FRONTFACING_FALSE_VALUE = 0; 122 const UINT D3D11_PS_FRONTFACING_TRUE_VALUE = 0xffffffff; 123 const UINT D3D11_PS_INPUT_REGISTER_COMPONENTS = 4; 124 const UINT D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 125 const UINT D3D11_PS_INPUT_REGISTER_COUNT = 32; 126 const UINT D3D11_PS_INPUT_REGISTER_READS_PER_INST = 2; 127 const UINT D3D11_PS_INPUT_REGISTER_READ_PORTS = 1; 128 cpp_quote("#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)") 129 const UINT D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; 130 const UINT D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; 131 const UINT D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; 132 const UINT D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1; 133 const UINT D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32; 134 const UINT D3D11_PS_OUTPUT_MASK_REGISTER_COUNT = 1; 135 const UINT D3D11_PS_OUTPUT_REGISTER_COMPONENTS = 4; 136 const UINT D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; 137 const UINT D3D11_PS_OUTPUT_REGISTER_COUNT = 8; 138 cpp_quote("#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)") 139 140 const UINT D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT = 16; 141 142 const UINT D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096; 143 const UINT D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; 144 const UINT D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 145 const UINT D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096; 146 const UINT D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; 147 const UINT D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; 148 const UINT D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384; 149 const UINT D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; 150 const UINT D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; 151 const UINT D3D11_REQ_MAXANISOTROPY = 16; 152 const UINT D3D11_REQ_MIP_LEVELS = 15; 153 const UINT D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; 154 const UINT D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096; 155 const UINT D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384; 156 const UINT D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128; 157 cpp_quote("#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)") 158 const UINT D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048; 159 const UINT D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20; 160 const UINT D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096; 161 const UINT D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048; 162 const UINT D3D11_REQ_TEXTURE1D_U_DIMENSION = 16384; 163 const UINT D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048; 164 const UINT D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384; 165 const UINT D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; 166 const UINT D3D11_REQ_TEXTURECUBE_DIMENSION = 16384; 167 168 const UINT D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; 169 170 const UINT D3D11_SHIFT_INSTRUCTION_PAD_VALUE = 0; 171 const UINT D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; 172 173 const UINT D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; 174 const UINT D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512; 175 const UINT D3D11_SO_BUFFER_SLOT_COUNT = 4; 176 const UINT D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; 177 const UINT D3D11_SO_NO_RASTERIZED_STREAM = 0xffffffff; 178 const UINT D3D11_SO_OUTPUT_COMPONENT_COUNT = 128; 179 const UINT D3D11_SO_STREAM_COUNT = 4; 180 181 const UINT D3D11_SPEC_DATE_DAY = 16; 182 const UINT D3D11_SPEC_DATE_MONTH = 05; 183 const UINT D3D11_SPEC_DATE_YEAR = 2011; 184 185 cpp_quote("#define D3D11_SPEC_VERSION (1.07)") 186 cpp_quote("#define D3D11_SRGB_GAMMA (2.2f)") 187 cpp_quote("#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 (12.92f)") 188 cpp_quote("#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 (1.055f)") 189 cpp_quote("#define D3D11_SRGB_TO_FLOAT_EXPONENT (2.4f)") 190 cpp_quote("#define D3D11_SRGB_TO_FLOAT_OFFSET (0.055f)") 191 cpp_quote("#define D3D11_SRGB_TO_FLOAT_THRESHOLD (0.04045f)") 192 cpp_quote("#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)") 193 194 const UINT D3D11_STANDARD_COMPONENT_BIT_COUNT = 32; 195 const UINT D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; 196 const UINT D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; 197 const UINT D3D11_STANDARD_PIXEL_COMPONENT_COUNT = 128; 198 const UINT D3D11_STANDARD_PIXEL_ELEMENT_COUNT = 32; 199 const UINT D3D11_STANDARD_VECTOR_SIZE = 4; 200 const UINT D3D11_STANDARD_VERTEX_ELEMENT_COUNT = 32; 201 const UINT D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; 202 203 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 204 cpp_quote("struct CD3D11_DEFAULT {};") 205 cpp_quote("extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;") 206 cpp_quote("#endif") 207 208 typedef enum D3D11_BLEND 209 { 210 D3D11_BLEND_ZERO = 1, 211 D3D11_BLEND_ONE = 2, 212 D3D11_BLEND_SRC_COLOR = 3, 213 D3D11_BLEND_INV_SRC_COLOR = 4, 214 D3D11_BLEND_SRC_ALPHA = 5, 215 D3D11_BLEND_INV_SRC_ALPHA = 6, 216 D3D11_BLEND_DEST_ALPHA = 7, 217 D3D11_BLEND_INV_DEST_ALPHA = 8, 218 D3D11_BLEND_DEST_COLOR = 9, 219 D3D11_BLEND_INV_DEST_COLOR = 10, 220 D3D11_BLEND_SRC_ALPHA_SAT = 11, 221 D3D11_BLEND_BLEND_FACTOR = 14, 222 D3D11_BLEND_INV_BLEND_FACTOR = 15, 223 D3D11_BLEND_SRC1_COLOR = 16, 224 D3D11_BLEND_INV_SRC1_COLOR = 17, 225 D3D11_BLEND_SRC1_ALPHA = 18, 226 D3D11_BLEND_INV_SRC1_ALPHA = 19, 227 } D3D11_BLEND; 228 229 typedef enum D3D11_BLEND_OP 230 { 231 D3D11_BLEND_OP_ADD = 1, 232 D3D11_BLEND_OP_SUBTRACT, 233 D3D11_BLEND_OP_REV_SUBTRACT, 234 D3D11_BLEND_OP_MIN, 235 D3D11_BLEND_OP_MAX 236 } D3D11_BLEND_OP; 237 238 typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE 239 { 240 D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, 241 D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, 242 D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, 243 D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, 244 D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, 245 D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, 246 D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, 247 D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, 248 D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8, 249 } D3D11_VIDEO_DECODER_BUFFER_TYPE; 250 251 typedef enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE 252 { 253 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0, 254 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1, 255 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2, 256 D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3, 257 } D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE; 258 259 typedef enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE 260 { 261 D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0, 262 D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1, 263 D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2, 264 } D3D11_VIDEO_PROCESSOR_OUTPUT_RATE; 265 266 typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT 267 { 268 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0, 269 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1, 270 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2, 271 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3, 272 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4, 273 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5, 274 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6, 275 D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7, 276 } D3D11_VIDEO_PROCESSOR_STEREO_FORMAT; 277 278 typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE 279 { 280 D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0, 281 D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1, 282 D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2, 283 } D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE; 284 285 typedef enum D3D11_VIDEO_PROCESSOR_ROTATION 286 { 287 D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0, 288 D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1, 289 D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2, 290 D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3, 291 } D3D11_VIDEO_PROCESSOR_ROTATION; 292 293 typedef struct D3D11_BOX 294 { 295 UINT left; 296 UINT top; 297 UINT front; 298 UINT right; 299 UINT bottom; 300 UINT back; 301 } D3D11_BOX; 302 303 typedef struct D3D11_BUFFER_RTV 304 { 305 union 306 { 307 UINT FirstElement; 308 UINT ElementOffset; 309 }; 310 union 311 { 312 UINT NumElements; 313 UINT ElementWidth; 314 }; 315 } D3D11_BUFFER_RTV; 316 317 typedef struct D3D11_BUFFER_SRV 318 { 319 union 320 { 321 UINT FirstElement; 322 UINT ElementOffset; 323 }; 324 union 325 { 326 UINT NumElements; 327 UINT ElementWidth; 328 }; 329 } D3D11_BUFFER_SRV; 330 331 typedef struct D3D11_BUFFER_UAV 332 { 333 UINT FirstElement; 334 UINT NumElements; 335 UINT Flags; 336 } D3D11_BUFFER_UAV; 337 338 typedef struct D3D11_BUFFEREX_SRV 339 { 340 UINT FirstElement; 341 UINT NumElements; 342 UINT Flags; 343 } D3D11_BUFFEREX_SRV; 344 345 typedef struct D3D11_CLASS_INSTANCE_DESC 346 { 347 UINT InstanceId; 348 UINT InstanceIndex; 349 UINT TypeId; 350 UINT ConstantBuffer; 351 UINT BaseConstantBufferOffset; 352 UINT BaseTexture; 353 UINT BaseSampler; 354 BOOL Created; 355 } D3D11_CLASS_INSTANCE_DESC; 356 357 typedef enum D3D11_COMPARISON_FUNC 358 { 359 D3D11_COMPARISON_NEVER = 1, 360 D3D11_COMPARISON_LESS, 361 D3D11_COMPARISON_EQUAL, 362 D3D11_COMPARISON_LESS_EQUAL, 363 D3D11_COMPARISON_GREATER, 364 D3D11_COMPARISON_NOT_EQUAL, 365 D3D11_COMPARISON_GREATER_EQUAL, 366 D3D11_COMPARISON_ALWAYS 367 } D3D11_COMPARISON_FUNC; 368 369 typedef enum D3D11_COUNTER 370 { 371 D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000, 372 } D3D11_COUNTER; 373 374 typedef struct D3D11_COUNTER_DESC 375 { 376 D3D11_COUNTER Counter; 377 UINT MiscFlags; 378 } D3D11_COUNTER_DESC; 379 380 typedef struct D3D11_COUNTER_INFO 381 { 382 D3D11_COUNTER LastDeviceDependentCounter; 383 UINT NumSimultaneousCounters; 384 UINT8 NumDetectableParallelUnits; 385 } D3D11_COUNTER_INFO; 386 387 typedef enum D3D11_COUNTER_TYPE 388 { 389 D3D11_COUNTER_TYPE_FLOAT32, 390 D3D11_COUNTER_TYPE_UINT16, 391 D3D11_COUNTER_TYPE_UINT32, 392 D3D11_COUNTER_TYPE_UINT64, 393 } D3D11_COUNTER_TYPE; 394 395 typedef enum D3D11_CULL_MODE 396 { 397 D3D11_CULL_NONE = 1, 398 D3D11_CULL_FRONT, 399 D3D11_CULL_BACK 400 } D3D11_CULL_MODE; 401 402 typedef enum D3D11_DEPTH_WRITE_MASK 403 { 404 D3D11_DEPTH_WRITE_MASK_ZERO, 405 D3D11_DEPTH_WRITE_MASK_ALL, 406 } D3D11_DEPTH_WRITE_MASK; 407 408 typedef enum D3D11_DEVICE_CONTEXT_TYPE 409 { 410 D3D11_DEVICE_CONTEXT_IMMEDIATE, 411 D3D11_DEVICE_CONTEXT_DEFERRED, 412 } D3D11_DEVICE_CONTEXT_TYPE; 413 414 typedef enum D3D11_DSV_DIMENSION 415 { 416 D3D11_DSV_DIMENSION_UNKNOWN, 417 D3D11_DSV_DIMENSION_TEXTURE1D, 418 D3D11_DSV_DIMENSION_TEXTURE1DARRAY, 419 D3D11_DSV_DIMENSION_TEXTURE2D, 420 D3D11_DSV_DIMENSION_TEXTURE2DARRAY, 421 D3D11_DSV_DIMENSION_TEXTURE2DMS, 422 D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY, 423 } D3D11_DSV_DIMENSION; 424 425 typedef enum D3D11_FEATURE 426 { 427 D3D11_FEATURE_THREADING, 428 D3D11_FEATURE_DOUBLES, 429 D3D11_FEATURE_FORMAT_SUPPORT, 430 D3D11_FEATURE_FORMAT_SUPPORT2, 431 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS, 432 D3D11_FEATURE_D3D11_OPTIONS, 433 D3D11_FEATURE_ARCHITECTURE_INFO, 434 D3D11_FEATURE_D3D9_OPTIONS, 435 D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT, 436 D3D11_FEATURE_D3D9_SHADOW_SUPPORT 437 } D3D11_FEATURE; 438 439 typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS 440 { 441 BOOL OutputMergerLogicOp; 442 BOOL UAVOnlyRenderingForcedSampleCount; 443 BOOL DiscardAPIsSeenByDriver; 444 BOOL FlagsForUpdateAndCopySeenByDriver; 445 BOOL ClearView; 446 BOOL CopyWithOverlap; 447 BOOL ConstantBufferPartialUpdate; 448 BOOL ConstantBufferOffsetting; 449 BOOL MapNoOverwriteOnDynamicConstantBuffer; 450 BOOL MapNoOverwriteOnDynamicBufferSRV; 451 BOOL MultisampleRTVWithForcedSampleCountOne; 452 BOOL SAD4ShaderInstructions; 453 BOOL ExtendedDoublesShaderInstructions; 454 BOOL ExtendedResourceSharing; 455 } D3D11_FEATURE_DATA_D3D11_OPTIONS; 456 457 typedef enum D3D11_FILL_MODE 458 { 459 D3D11_FILL_WIREFRAME = 2, 460 D3D11_FILL_SOLID 461 } D3D11_FILL_MODE; 462 463 typedef enum D3D11_FILTER_TYPE 464 { 465 D3D11_FILTER_TYPE_POINT = 0, 466 D3D11_FILTER_TYPE_LINEAR = 1 467 } D3D11_FILTER_TYPE; 468 469 const UINT D3D11_MIN_FILTER_SHIFT = 4; 470 const UINT D3D11_MAG_FILTER_SHIFT = 2; 471 const UINT D3D11_MIP_FILTER_SHIFT = 0; 472 const UINT D3D11_FILTER_TYPE_MASK = 0x00000003; 473 const UINT D3D11_COMPARISON_FILTERING_BIT = 0x00000080; 474 const UINT D3D11_ANISOTROPIC_FILTERING_BIT = 0x00000040; 475 476 cpp_quote("#define D3D11_ENCODE_BASIC_FILTER(min, mag, mip, bComparison) \\") 477 cpp_quote(" ((D3D11_FILTER)(((bComparison) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | \\") 478 cpp_quote(" (((min)&D3D11_FILTER_TYPE_MASK) << D3D11_MIN_FILTER_SHIFT) | \\") 479 cpp_quote(" (((mag)&D3D11_FILTER_TYPE_MASK) << D3D11_MAG_FILTER_SHIFT) | \\") 480 cpp_quote(" (((mip)&D3D11_FILTER_TYPE_MASK) << D3D11_MIP_FILTER_SHIFT)))") 481 482 cpp_quote("#define D3D11_ENCODE_ANISOTROPIC_FILTER(bComparison) \\") 483 cpp_quote(" ((D3D11_FILTER)(D3D11_ANISOTROPIC_FILTERING_BIT | \\" ) 484 cpp_quote(" D3D11_ENCODE_BASIC_FILTER(D3D11_FILTER_TYPE_LINEAR,D3D11_FILTER_TYPE_LINEAR, \\" ) 485 cpp_quote(" D3D11_FILTER_TYPE_LINEAR,bComparison)))" ) 486 487 cpp_quote("#define D3D11_DECODE_MIN_FILTER(d3d11Filter) \\") 488 cpp_quote(" ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIN_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))") 489 490 cpp_quote("#define D3D11_DECODE_MAG_FILTER(d3d11Filter) \\") 491 cpp_quote(" ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MAG_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))") 492 493 cpp_quote("#define D3D11_DECODE_MIP_FILTER(d3d11Filter) \\") 494 cpp_quote(" ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIP_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))") 495 496 cpp_quote("#define D3D11_DECODE_IS_COMPARISON_FILTER(d3d11Filter) ((d3d11Filter) & D3D11_COMPARISON_FILTERING_BIT)") 497 498 cpp_quote("#define D3D11_DECODE_IS_ANISOTROPIC_FILTER(d3d11Filter) \\") 499 cpp_quote(" (((d3d11Filter) & D3D11_ANISOTROPIC_FILTERING_BIT ) \\" ) 500 cpp_quote(" && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER(d3d11Filter)) \\" ) 501 cpp_quote(" && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER(d3d11Filter)) \\" ) 502 cpp_quote(" && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER(d3d11Filter)))") 503 504 typedef enum D3D11_FILTER 505 { 506 D3D11_FILTER_MIN_MAG_MIP_POINT = 0x00, 507 D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01, 508 D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04, 509 D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05, 510 D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 511 D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 512 D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 513 D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 514 D3D11_FILTER_ANISOTROPIC = 0x55, 515 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 516 D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 517 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 518 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 519 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 520 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 521 D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 522 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 523 D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5 524 } D3D11_FILTER; 525 526 typedef enum D3D11_DSV_FLAG 527 { 528 D3D11_DSV_READ_ONLY_DEPTH = 0x1, 529 D3D11_DSV_READ_ONLY_STENCIL = 0x2, 530 } D3D11_DSV_FLAG; 531 532 typedef enum D3D11_INPUT_CLASSIFICATION 533 { 534 D3D11_INPUT_PER_VERTEX_DATA, 535 D3D11_INPUT_PER_INSTANCE_DATA, 536 } D3D11_INPUT_CLASSIFICATION; 537 538 const UINT D3D11_APPEND_ALIGNED_ELEMENT = 0xffffffff; 539 540 typedef struct D3D11_INPUT_ELEMENT_DESC 541 { 542 LPCSTR SemanticName; 543 UINT SemanticIndex; 544 DXGI_FORMAT Format; 545 UINT InputSlot; 546 UINT AlignedByteOffset; 547 D3D11_INPUT_CLASSIFICATION InputSlotClass; 548 UINT InstanceDataStepRate; 549 } D3D11_INPUT_ELEMENT_DESC; 550 551 typedef enum D3D11_MAP 552 { 553 D3D11_MAP_READ = 1, 554 D3D11_MAP_WRITE, 555 D3D11_MAP_READ_WRITE, 556 D3D11_MAP_WRITE_DISCARD, 557 D3D11_MAP_WRITE_NO_OVERWRITE 558 } D3D11_MAP; 559 560 typedef enum D3D11_MAP_FLAG 561 { 562 D3D11_MAP_FLAG_DO_NOT_WAIT = 0x00100000 563 } D3D11_MAP_FLAG; 564 565 typedef struct D3D11_QUERY_DATA_SO_STATISTICS 566 { 567 UINT64 NumPrimitivesWritten; 568 UINT64 PrimitivesStorageNeeded; 569 } D3D11_QUERY_DATA_SO_STATISTICS; 570 571 typedef struct D3D11_MAPPED_SUBRESOURCE 572 { 573 void *pData; 574 UINT RowPitch; 575 UINT DepthPitch; 576 } D3D11_MAPPED_SUBRESOURCE; 577 578 typedef enum D3D11_QUERY 579 { 580 D3D11_QUERY_EVENT, 581 D3D11_QUERY_OCCLUSION, 582 D3D11_QUERY_TIMESTAMP, 583 D3D11_QUERY_TIMESTAMP_DISJOINT, 584 D3D11_QUERY_PIPELINE_STATISTICS, 585 D3D11_QUERY_OCCLUSION_PREDICATE, 586 D3D11_QUERY_SO_STATISTICS, 587 D3D11_QUERY_SO_OVERFLOW_PREDICATE, 588 D3D11_QUERY_SO_STATISTICS_STREAM0, 589 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0, 590 D3D11_QUERY_SO_STATISTICS_STREAM1, 591 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1, 592 D3D11_QUERY_SO_STATISTICS_STREAM2, 593 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2, 594 D3D11_QUERY_SO_STATISTICS_STREAM3, 595 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3, 596 } D3D11_QUERY; 597 598 typedef enum D3D11_QUERY_MISC_FLAG 599 { 600 D3D11_QUERY_MISC_PREDICATEHINT = 0x1, 601 } D3D11_QUERY_MISC_FLAG; 602 603 typedef enum D3D11_ASYNC_GETDATA_FLAG 604 { 605 D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x0001, 606 } D3D11_ASYNC_GETDATA_FLAG; 607 608 typedef enum D3D11_RESOURCE_MISC_FLAG 609 { 610 D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x00000001L, 611 D3D11_RESOURCE_MISC_SHARED = 0x00000002L, 612 D3D11_RESOURCE_MISC_TEXTURECUBE = 0x00000004L, 613 D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x00000010L, 614 D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x00000020L, 615 D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x00000040L, 616 D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x00000080L, 617 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x00000100L, 618 D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x00000200L, 619 D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x00000800L, 620 D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x00001000L, 621 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x00002000L, 622 D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x00004000L, 623 D3D11_RESOURCE_MISC_GUARDED = 0x00008000L 624 } D3D11_RESOURCE_MISC_FLAG; 625 626 typedef struct D3D11_QUERY_DESC 627 { 628 D3D11_QUERY Query; 629 UINT MiscFlags; 630 } D3D11_QUERY_DESC; 631 632 typedef struct D3D11_RASTERIZER_DESC 633 { 634 D3D11_FILL_MODE FillMode; 635 D3D11_CULL_MODE CullMode; 636 BOOL FrontCounterClockwise; 637 INT DepthBias; 638 FLOAT DepthBiasClamp; 639 FLOAT SlopeScaledDepthBias; 640 BOOL DepthClipEnable; 641 BOOL ScissorEnable; 642 BOOL MultisampleEnable; 643 BOOL AntialiasedLineEnable; 644 } D3D11_RASTERIZER_DESC; 645 646 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 647 cpp_quote("struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC {") 648 cpp_quote(" CD3D11_RASTERIZER_DESC() {}") 649 cpp_quote(" explicit CD3D11_RASTERIZER_DESC(const D3D11_RASTERIZER_DESC &o) : D3D11_RASTERIZER_DESC(o) {}") 650 cpp_quote(" explicit CD3D11_RASTERIZER_DESC(CD3D11_DEFAULT) {") 651 cpp_quote(" FillMode = D3D11_FILL_SOLID;") 652 cpp_quote(" CullMode = D3D11_CULL_BACK;") 653 cpp_quote(" FrontCounterClockwise = FALSE;") 654 cpp_quote(" DepthBias = D3D11_DEFAULT_DEPTH_BIAS;") 655 cpp_quote(" DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;") 656 cpp_quote(" SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;") 657 cpp_quote(" DepthClipEnable = TRUE;") 658 cpp_quote(" ScissorEnable = FALSE;") 659 cpp_quote(" MultisampleEnable = FALSE;") 660 cpp_quote(" AntialiasedLineEnable = FALSE;") 661 cpp_quote(" }") 662 cpp_quote(" explicit CD3D11_RASTERIZER_DESC(D3D11_FILL_MODE fillMode, D3D11_CULL_MODE cullMode," ) 663 cpp_quote(" WINBOOL frontCounterClockwise, INT depthBias, FLOAT depthBiasClamp, FLOAT slopeScaledDepthBias,") 664 cpp_quote(" BOOL depthClipEnable, WINBOOL scissorEnable, WINBOOL multisampleEnable, WINBOOL antialiasedLineEnable) {") 665 cpp_quote(" FillMode = fillMode;") 666 cpp_quote(" CullMode = cullMode;") 667 cpp_quote(" FrontCounterClockwise = frontCounterClockwise;") 668 cpp_quote(" DepthBias = depthBias;") 669 cpp_quote(" DepthBiasClamp = depthBiasClamp;") 670 cpp_quote(" SlopeScaledDepthBias = slopeScaledDepthBias;") 671 cpp_quote(" DepthClipEnable = depthClipEnable;") 672 cpp_quote(" ScissorEnable = scissorEnable;") 673 cpp_quote(" MultisampleEnable = multisampleEnable;") 674 cpp_quote(" AntialiasedLineEnable = antialiasedLineEnable;") 675 cpp_quote(" }") 676 cpp_quote(" ~CD3D11_RASTERIZER_DESC() {}") 677 cpp_quote(" operator const D3D11_RASTERIZER_DESC&() const { return *this; }") 678 cpp_quote("};") 679 cpp_quote("#endif") 680 681 typedef enum D3D11_RESOURCE_DIMENSION 682 { 683 D3D11_RESOURCE_DIMENSION_UNKNOWN, 684 D3D11_RESOURCE_DIMENSION_BUFFER, 685 D3D11_RESOURCE_DIMENSION_TEXTURE1D, 686 D3D11_RESOURCE_DIMENSION_TEXTURE2D, 687 D3D11_RESOURCE_DIMENSION_TEXTURE3D, 688 } D3D11_RESOURCE_DIMENSION; 689 690 typedef enum D3D11_RTV_DIMENSION 691 { 692 D3D11_RTV_DIMENSION_UNKNOWN, 693 D3D11_RTV_DIMENSION_BUFFER, 694 D3D11_RTV_DIMENSION_TEXTURE1D, 695 D3D11_RTV_DIMENSION_TEXTURE1DARRAY, 696 D3D11_RTV_DIMENSION_TEXTURE2D, 697 D3D11_RTV_DIMENSION_TEXTURE2DARRAY, 698 D3D11_RTV_DIMENSION_TEXTURE2DMS, 699 D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY, 700 D3D11_RTV_DIMENSION_TEXTURE3D, 701 } D3D11_RTV_DIMENSION; 702 703 typedef struct D3D11_SO_DECLARATION_ENTRY 704 { 705 UINT Stream; 706 LPCSTR SemanticName; 707 UINT SemanticIndex; 708 BYTE StartComponent; 709 BYTE ComponentCount; 710 BYTE OutputSlot; 711 } D3D11_SO_DECLARATION_ENTRY; 712 713 typedef enum D3D11_STENCIL_OP 714 { 715 D3D11_STENCIL_OP_KEEP = 1, 716 D3D11_STENCIL_OP_ZERO, 717 D3D11_STENCIL_OP_REPLACE, 718 D3D11_STENCIL_OP_INCR_SAT, 719 D3D11_STENCIL_OP_DECR_SAT, 720 D3D11_STENCIL_OP_INVERT, 721 D3D11_STENCIL_OP_INCR, 722 D3D11_STENCIL_OP_DECR 723 } D3D11_STENCIL_OP; 724 725 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 726 cpp_quote("}") 727 cpp_quote("inline UINT D3D11CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) {") 728 cpp_quote(" return MipSlice + ArraySlice * MipLevels;") 729 cpp_quote("}") 730 cpp_quote("extern \"C\"{") 731 cpp_quote("#endif") 732 733 typedef struct D3D11_SUBRESOURCE_DATA 734 { 735 const void *pSysMem; 736 UINT SysMemPitch; 737 UINT SysMemSlicePitch; 738 } D3D11_SUBRESOURCE_DATA; 739 740 typedef struct D3D11_TEX1D_ARRAY_DSV 741 { 742 UINT MipSlice; 743 UINT FirstArraySlice; 744 UINT ArraySize; 745 } D3D11_TEX1D_ARRAY_DSV; 746 747 typedef struct D3D11_TEX1D_ARRAY_RTV 748 { 749 UINT MipSlice; 750 UINT FirstArraySlice; 751 UINT ArraySize; 752 } D3D11_TEX1D_ARRAY_RTV; 753 754 typedef struct D3D11_TEX1D_ARRAY_SRV 755 { 756 UINT MostDetailedMip; 757 UINT MipLevels; 758 UINT FirstArraySlice; 759 UINT ArraySize; 760 } D3D11_TEX1D_ARRAY_SRV; 761 762 typedef struct D3D11_TEX1D_ARRAY_UAV 763 { 764 UINT MipSlice; 765 UINT FirstArraySlice; 766 UINT ArraySize; 767 } D3D11_TEX1D_ARRAY_UAV; 768 769 typedef struct D3D11_TEX1D_DSV 770 { 771 UINT MipSlice; 772 } D3D11_TEX1D_DSV; 773 774 typedef struct D3D11_TEX1D_RTV 775 { 776 UINT MipSlice; 777 } D3D11_TEX1D_RTV; 778 779 typedef struct D3D11_TEX1D_SRV 780 { 781 UINT MostDetailedMip; 782 UINT MipLevels; 783 } D3D11_TEX1D_SRV; 784 785 typedef struct D3D11_TEX1D_UAV 786 { 787 UINT MipSlice; 788 } D3D11_TEX1D_UAV; 789 790 typedef struct D3D11_TEX2D_ARRAY_DSV 791 { 792 UINT MipSlice; 793 UINT FirstArraySlice; 794 UINT ArraySize; 795 } D3D11_TEX2D_ARRAY_DSV; 796 797 typedef struct D3D11_TEX2D_ARRAY_RTV 798 { 799 UINT MipSlice; 800 UINT FirstArraySlice; 801 UINT ArraySize; 802 } D3D11_TEX2D_ARRAY_RTV; 803 804 typedef struct D3D11_TEX2D_ARRAY_SRV 805 { 806 UINT MostDetailedMip; 807 UINT MipLevels; 808 UINT FirstArraySlice; 809 UINT ArraySize; 810 } D3D11_TEX2D_ARRAY_SRV; 811 812 typedef struct D3D11_TEX2D_ARRAY_UAV 813 { 814 UINT MipSlice; 815 UINT FirstArraySlice; 816 UINT ArraySize; 817 } D3D11_TEX2D_ARRAY_UAV; 818 819 typedef struct D3D11_TEX2D_DSV 820 { 821 UINT MipSlice; 822 } D3D11_TEX2D_DSV; 823 824 typedef struct D3D11_TEX2D_RTV 825 { 826 UINT MipSlice; 827 } D3D11_TEX2D_RTV; 828 829 typedef struct D3D11_TEX2D_SRV 830 { 831 UINT MostDetailedMip; 832 UINT MipLevels; 833 } D3D11_TEX2D_SRV; 834 835 typedef struct D3D11_TEX2D_UAV 836 { 837 UINT MipSlice; 838 } D3D11_TEX2D_UAV; 839 840 typedef struct D3D11_TEX2DMS_ARRAY_DSV 841 { 842 UINT FirstArraySlice; 843 UINT ArraySize; 844 } D3D11_TEX2DMS_ARRAY_DSV; 845 846 typedef struct D3D11_TEX2DMS_ARRAY_RTV 847 { 848 UINT FirstArraySlice; 849 UINT ArraySize; 850 } D3D11_TEX2DMS_ARRAY_RTV; 851 852 typedef struct D3D11_TEX2DMS_ARRAY_SRV 853 { 854 UINT FirstArraySlice; 855 UINT ArraySize; 856 } D3D11_TEX2DMS_ARRAY_SRV; 857 858 typedef struct D3D11_TEX2DMS_DSV 859 { 860 UINT UnusedField_NothingToDefine; 861 } D3D11_TEX2DMS_DSV; 862 863 typedef struct D3D11_TEX2DMS_RTV 864 { 865 UINT UnusedField_NothingToDefine; 866 } D3D11_TEX2DMS_RTV; 867 868 typedef struct D3D11_TEX2DMS_SRV 869 { 870 UINT UnusedField_NothingToDefine; 871 } D3D11_TEX2DMS_SRV; 872 873 typedef struct D3D11_TEX3D_RTV 874 { 875 UINT MipSlice; 876 UINT FirstWSlice; 877 UINT WSize; 878 } D3D11_TEX3D_RTV; 879 880 typedef struct D3D11_TEX3D_SRV 881 { 882 UINT MostDetailedMip; 883 UINT MipLevels; 884 } D3D11_TEX3D_SRV; 885 886 typedef struct D3D11_TEX3D_UAV 887 { 888 UINT MipSlice; 889 UINT FirstWSlice; 890 UINT WSize; 891 } D3D11_TEX3D_UAV; 892 893 typedef struct D3D11_TEXCUBE_ARRAY_SRV 894 { 895 UINT MostDetailedMip; 896 UINT MipLevels; 897 UINT First2DArrayFace; 898 UINT NumCubes; 899 } D3D11_TEXCUBE_ARRAY_SRV; 900 901 typedef struct D3D11_TEXCUBE_SRV 902 { 903 UINT MostDetailedMip; 904 UINT MipLevels; 905 } D3D11_TEXCUBE_SRV; 906 907 typedef enum D3D11_TEXTURE_ADDRESS_MODE 908 { 909 D3D11_TEXTURE_ADDRESS_WRAP = 1, 910 D3D11_TEXTURE_ADDRESS_MIRROR, 911 D3D11_TEXTURE_ADDRESS_CLAMP, 912 D3D11_TEXTURE_ADDRESS_BORDER, 913 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE 914 } D3D11_TEXTURE_ADDRESS_MODE; 915 916 typedef enum D3D11_UAV_DIMENSION 917 { 918 D3D11_UAV_DIMENSION_UNKNOWN, 919 D3D11_UAV_DIMENSION_BUFFER, 920 D3D11_UAV_DIMENSION_TEXTURE1D, 921 D3D11_UAV_DIMENSION_TEXTURE1DARRAY, 922 D3D11_UAV_DIMENSION_TEXTURE2D, 923 D3D11_UAV_DIMENSION_TEXTURE2DARRAY, 924 D3D11_UAV_DIMENSION_TEXTURE3D = 8, 925 } D3D11_UAV_DIMENSION; 926 927 typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC 928 { 929 DXGI_FORMAT Format; 930 D3D11_UAV_DIMENSION ViewDimension; 931 932 union 933 { 934 D3D11_BUFFER_UAV Buffer; 935 D3D11_TEX1D_UAV Texture1D; 936 D3D11_TEX1D_ARRAY_UAV Texture1DArray; 937 D3D11_TEX2D_UAV Texture2D; 938 D3D11_TEX2D_ARRAY_UAV Texture2DArray; 939 D3D11_TEX3D_UAV Texture3D; 940 }; 941 } D3D11_UNORDERED_ACCESS_VIEW_DESC; 942 943 typedef enum D3D11_USAGE 944 { 945 D3D11_USAGE_DEFAULT, 946 D3D11_USAGE_IMMUTABLE, 947 D3D11_USAGE_DYNAMIC, 948 D3D11_USAGE_STAGING, 949 } D3D11_USAGE; 950 951 typedef enum D3D11_BIND_FLAG 952 { 953 D3D11_BIND_VERTEX_BUFFER = 0x0001, 954 D3D11_BIND_INDEX_BUFFER = 0x0002, 955 D3D11_BIND_CONSTANT_BUFFER = 0x0004, 956 D3D11_BIND_SHADER_RESOURCE = 0x0008, 957 D3D11_BIND_STREAM_OUTPUT = 0x0010, 958 D3D11_BIND_RENDER_TARGET = 0x0020, 959 D3D11_BIND_DEPTH_STENCIL = 0x0040, 960 D3D11_BIND_UNORDERED_ACCESS = 0x0080, 961 D3D11_BIND_DECODER = 0x0200, 962 D3D11_BIND_VIDEO_ENCODER = 0x0400 963 } D3D11_BIND_FLAG; 964 965 typedef enum D3D11_CPU_ACCESS_FLAG 966 { 967 D3D11_CPU_ACCESS_WRITE = 0x00010000, 968 D3D11_CPU_ACCESS_READ = 0x00020000 969 } D3D11_CPU_ACCESS_FLAG; 970 971 typedef struct D3D11_VIEWPORT 972 { 973 FLOAT TopLeftX; 974 FLOAT TopLeftY; 975 FLOAT Width; 976 FLOAT Height; 977 FLOAT MinDepth; 978 FLOAT MaxDepth; 979 } D3D11_VIEWPORT; 980 981 typedef enum D3D11_COLOR_WRITE_ENABLE 982 { 983 D3D11_COLOR_WRITE_ENABLE_RED = 1, 984 D3D11_COLOR_WRITE_ENABLE_GREEN = 2, 985 D3D11_COLOR_WRITE_ENABLE_BLUE = 4, 986 D3D11_COLOR_WRITE_ENABLE_ALPHA = 8, 987 D3D11_COLOR_WRITE_ENABLE_ALL = 988 (D3D11_COLOR_WRITE_ENABLE_RED|D3D11_COLOR_WRITE_ENABLE_GREEN|D3D11_COLOR_WRITE_ENABLE_BLUE|D3D11_COLOR_WRITE_ENABLE_ALPHA) 989 } D3D11_COLOR_WRITE_ENABLE; 990 991 typedef enum D3D11_FORMAT_SUPPORT 992 { 993 D3D11_FORMAT_SUPPORT_BUFFER = 0x00000001, 994 D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x00000002, 995 D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x00000004, 996 D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x00000008, 997 D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x00000010, 998 D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x00000020, 999 D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x00000040, 1000 D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x00000080, 1001 D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x00000100, 1002 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x00000200, 1003 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x00000400, 1004 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x00000800, 1005 D3D11_FORMAT_SUPPORT_MIP = 0x00001000, 1006 D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x00002000, 1007 D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x00004000, 1008 D3D11_FORMAT_SUPPORT_BLENDABLE = 0x00008000, 1009 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x00010000, 1010 D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x00020000, 1011 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x00040000, 1012 D3D11_FORMAT_SUPPORT_DISPLAY = 0x00080000, 1013 D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x00100000, 1014 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x00200000, 1015 D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x00400000, 1016 D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x00800000, 1017 D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x01000000, 1018 D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x02000000, 1019 D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x04000000, 1020 D3D11_FORMAT_SUPPORT_DECODER_OUTPUT = 0x08000000, 1021 D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT = 0x10000000, 1022 D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000, 1023 D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000, 1024 } D3D11_FORMAT_SUPPORT; 1025 1026 typedef enum D3D11_CLEAR_FLAG 1027 { 1028 D3D11_CLEAR_DEPTH = 0x0001L, 1029 D3D11_CLEAR_STENCIL = 0x0002L 1030 } D3D11_CLEAR_FLAG; 1031 1032 typedef struct D3D11_RENDER_TARGET_BLEND_DESC 1033 { 1034 BOOL BlendEnable; 1035 D3D11_BLEND SrcBlend; 1036 D3D11_BLEND DestBlend; 1037 D3D11_BLEND_OP BlendOp; 1038 D3D11_BLEND SrcBlendAlpha; 1039 D3D11_BLEND DestBlendAlpha; 1040 D3D11_BLEND_OP BlendOpAlpha; 1041 UINT8 RenderTargetWriteMask; 1042 } D3D11_RENDER_TARGET_BLEND_DESC; 1043 1044 typedef struct D3D11_BLEND_DESC 1045 { 1046 BOOL AlphaToCoverageEnable; 1047 BOOL IndependentBlendEnable; 1048 D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT]; 1049 } D3D11_BLEND_DESC; 1050 1051 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 1052 cpp_quote("struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC {") 1053 cpp_quote(" CD3D11_BLEND_DESC() {}") 1054 cpp_quote(" explicit CD3D11_BLEND_DESC(const D3D11_BLEND_DESC &o) : D3D11_BLEND_DESC(o) {}") 1055 cpp_quote(" explicit CD3D11_BLEND_DESC(CD3D11_DEFAULT) {") 1056 cpp_quote(" AlphaToCoverageEnable = FALSE;") 1057 cpp_quote(" IndependentBlendEnable = FALSE;") 1058 cpp_quote(" for(D3D11_RENDER_TARGET_BLEND_DESC *target; target < RenderTarget+D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; target++) {") 1059 cpp_quote(" target->BlendEnable = FALSE;") 1060 cpp_quote(" target->SrcBlend = target->SrcBlendAlpha = D3D11_BLEND_ONE;") 1061 cpp_quote(" target->DestBlend = target->DestBlendAlpha = D3D11_BLEND_ZERO;") 1062 cpp_quote(" target->BlendOp = target->BlendOpAlpha = D3D11_BLEND_OP_ADD;") 1063 cpp_quote(" target->RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;") 1064 cpp_quote(" }") 1065 cpp_quote(" }") 1066 cpp_quote(" ~CD3D11_BLEND_DESC() {}") 1067 cpp_quote(" operator const D3D11_BLEND_DESC&() const { return *this; }") 1068 cpp_quote("};" ) 1069 cpp_quote("#endif" ) 1070 1071 typedef struct D3D11_BUFFER_DESC 1072 { 1073 UINT ByteWidth; 1074 D3D11_USAGE Usage; 1075 UINT BindFlags; 1076 UINT CPUAccessFlags; 1077 UINT MiscFlags; 1078 UINT StructureByteStride; 1079 } D3D11_BUFFER_DESC; 1080 1081 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 1082 cpp_quote("struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC {") 1083 cpp_quote(" CD3D11_BUFFER_DESC() {}" ) 1084 cpp_quote(" explicit CD3D11_BUFFER_DESC(const D3D11_BUFFER_DESC &o) : D3D11_BUFFER_DESC(o) {}") 1085 cpp_quote(" explicit CD3D11_BUFFER_DESC(UINT byteWidth,UINT bindFlags,") 1086 cpp_quote(" D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0,") 1087 cpp_quote(" UINT miscFlags = 0, UINT structureByteStride = 0 ) {") 1088 cpp_quote(" ByteWidth = byteWidth;") 1089 cpp_quote(" Usage = usage;") 1090 cpp_quote(" BindFlags = bindFlags;") 1091 cpp_quote(" CPUAccessFlags = cpuaccessFlags;") 1092 cpp_quote(" MiscFlags = miscFlags;" ) 1093 cpp_quote(" StructureByteStride = structureByteStride;") 1094 cpp_quote(" }") 1095 cpp_quote(" ~CD3D11_BUFFER_DESC() {}") 1096 cpp_quote(" operator const D3D11_BUFFER_DESC&() const { return *this; }") 1097 cpp_quote("};" ) 1098 cpp_quote("#endif" ) 1099 1100 typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC 1101 { 1102 DXGI_FORMAT Format; 1103 D3D11_DSV_DIMENSION ViewDimension; 1104 UINT Flags; 1105 1106 union 1107 { 1108 D3D11_TEX1D_DSV Texture1D; 1109 D3D11_TEX1D_ARRAY_DSV Texture1DArray; 1110 D3D11_TEX2D_DSV Texture2D; 1111 D3D11_TEX2D_ARRAY_DSV Texture2DArray; 1112 D3D11_TEX2DMS_DSV Texture2DMS; 1113 D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray; 1114 }; 1115 } D3D11_DEPTH_STENCIL_VIEW_DESC; 1116 1117 typedef struct D3D11_DEPTH_STENCILOP_DESC 1118 { 1119 D3D11_STENCIL_OP StencilFailOp; 1120 D3D11_STENCIL_OP StencilDepthFailOp; 1121 D3D11_STENCIL_OP StencilPassOp; 1122 D3D11_COMPARISON_FUNC StencilFunc; 1123 } D3D11_DEPTH_STENCILOP_DESC; 1124 1125 typedef struct D3D11_DEPTH_STENCIL_DESC 1126 { 1127 BOOL DepthEnable; 1128 D3D11_DEPTH_WRITE_MASK DepthWriteMask; 1129 D3D11_COMPARISON_FUNC DepthFunc; 1130 BOOL StencilEnable; 1131 UINT8 StencilReadMask; 1132 UINT8 StencilWriteMask; 1133 D3D11_DEPTH_STENCILOP_DESC FrontFace; 1134 D3D11_DEPTH_STENCILOP_DESC BackFace; 1135 } D3D11_DEPTH_STENCIL_DESC; 1136 1137 typedef struct D3D11_RENDER_TARGET_VIEW_DESC 1138 { 1139 DXGI_FORMAT Format; 1140 D3D11_RTV_DIMENSION ViewDimension; 1141 1142 union 1143 { 1144 D3D11_BUFFER_RTV Buffer; 1145 D3D11_TEX1D_RTV Texture1D; 1146 D3D11_TEX1D_ARRAY_RTV Texture1DArray; 1147 D3D11_TEX2D_RTV Texture2D; 1148 D3D11_TEX2D_ARRAY_RTV Texture2DArray; 1149 D3D11_TEX2DMS_RTV Texture2DMS; 1150 D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; 1151 D3D11_TEX3D_RTV Texture3D; 1152 }; 1153 } D3D11_RENDER_TARGET_VIEW_DESC; 1154 1155 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 1156 cpp_quote("struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC {") 1157 cpp_quote(" CD3D11_RENDER_TARGET_VIEW_DESC() {}") 1158 cpp_quote(" explicit CD3D11_RENDER_TARGET_VIEW_DESC(D3D11_RTV_DIMENSION dim, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,") 1159 cpp_quote(" UINT mip_slice = 0, UINT first_slice = 0, UINT array_size = -1) {") 1160 cpp_quote(" Format = format;") 1161 cpp_quote(" ViewDimension = dim;") 1162 cpp_quote(" switch(dim) {") 1163 cpp_quote(" case D3D11_RTV_DIMENSION_BUFFER:") 1164 cpp_quote(" Buffer.FirstElement = mip_slice;") 1165 cpp_quote(" Buffer.NumElements = first_slice;") 1166 cpp_quote(" break;") 1167 cpp_quote(" case D3D11_RTV_DIMENSION_TEXTURE1D:") 1168 cpp_quote(" Texture1D.MipSlice = mip_slice;") 1169 cpp_quote(" break;") 1170 cpp_quote(" case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:") 1171 cpp_quote(" Texture1DArray.MipSlice = mip_slice;") 1172 cpp_quote(" Texture1DArray.FirstArraySlice = first_slice;") 1173 cpp_quote(" Texture1DArray.ArraySize = array_size;") 1174 cpp_quote(" break;") 1175 cpp_quote(" case D3D11_RTV_DIMENSION_TEXTURE2D:") 1176 cpp_quote(" Texture2D.MipSlice = mip_slice;") 1177 cpp_quote(" break;") 1178 cpp_quote(" case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:") 1179 cpp_quote(" Texture2DArray.MipSlice = mip_slice;") 1180 cpp_quote(" Texture2DArray.FirstArraySlice = first_slice;") 1181 cpp_quote(" Texture2DArray.ArraySize = array_size;") 1182 cpp_quote(" break;") 1183 cpp_quote(" case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:") 1184 cpp_quote(" Texture2DMSArray.FirstArraySlice = first_slice;") 1185 cpp_quote(" Texture2DMSArray.ArraySize = array_size;") 1186 cpp_quote(" break;") 1187 cpp_quote(" case D3D11_RTV_DIMENSION_TEXTURE3D:") 1188 cpp_quote(" Texture3D.MipSlice = mip_slice;") 1189 cpp_quote(" Texture3D.FirstWSlice = first_slice;") 1190 cpp_quote(" Texture3D.WSize = array_size;") 1191 cpp_quote(" break;") 1192 cpp_quote(" default:") 1193 cpp_quote(" break;") 1194 cpp_quote(" }") 1195 cpp_quote(" }") 1196 cpp_quote(" explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,") 1197 cpp_quote(" UINT elem_cnt) {") 1198 cpp_quote(" Format = format;") 1199 cpp_quote(" ViewDimension = D3D11_RTV_DIMENSION_BUFFER;") 1200 cpp_quote(" Buffer.FirstElement = first_elem;") 1201 cpp_quote(" Buffer.NumElements = elem_cnt;") 1202 cpp_quote(" }") 1203 cpp_quote(" explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture1D *texture, D3D11_RTV_DIMENSION dim,") 1204 cpp_quote(" DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,") 1205 cpp_quote(" UINT array_size = -1);") /* FIXME: implement */ 1206 cpp_quote(" explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture2D *texture, D3D11_RTV_DIMENSION dim,") 1207 cpp_quote(" DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,") 1208 cpp_quote(" UINT array_size = -1);") /* FIXME: implement */ 1209 cpp_quote(" explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,") 1210 cpp_quote(" UINT mip_slice = 0, UINT first_w_slice = 0, UINT w_slice = -1 );") /* FIXME: implement */ 1211 cpp_quote(" ~CD3D11_RENDER_TARGET_VIEW_DESC() {}") 1212 cpp_quote(" explicit CD3D11_RENDER_TARGET_VIEW_DESC(const D3D11_RENDER_TARGET_VIEW_DESC &other)") 1213 cpp_quote(" : D3D11_RENDER_TARGET_VIEW_DESC(other) {}") 1214 cpp_quote(" operator const D3D11_RENDER_TARGET_VIEW_DESC&() const {") 1215 cpp_quote(" return *this;") 1216 cpp_quote(" }") 1217 cpp_quote("};") 1218 cpp_quote("#endif") 1219 1220 1221 typedef struct D3D11_SAMPLER_DESC 1222 { 1223 D3D11_FILTER Filter; 1224 D3D11_TEXTURE_ADDRESS_MODE AddressU; 1225 D3D11_TEXTURE_ADDRESS_MODE AddressV; 1226 D3D11_TEXTURE_ADDRESS_MODE AddressW; 1227 FLOAT MipLODBias; 1228 UINT MaxAnisotropy; 1229 D3D11_COMPARISON_FUNC ComparisonFunc; 1230 FLOAT BorderColor[4]; 1231 FLOAT MinLOD; 1232 FLOAT MaxLOD; 1233 } D3D11_SAMPLER_DESC; 1234 1235 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 1236 cpp_quote("struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC {") 1237 cpp_quote(" CD3D11_SAMPLER_DESC() {}") 1238 cpp_quote(" explicit CD3D11_SAMPLER_DESC(const D3D11_SAMPLER_DESC &o) : D3D11_SAMPLER_DESC(o) {}") 1239 cpp_quote(" explicit CD3D11_SAMPLER_DESC(CD3D11_DEFAULT) {" ) 1240 cpp_quote(" Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;") 1241 cpp_quote(" AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;") 1242 cpp_quote(" AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;") 1243 cpp_quote(" AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;") 1244 cpp_quote(" MipLODBias = 0;") 1245 cpp_quote(" MaxAnisotropy = 1;") 1246 cpp_quote(" ComparisonFunc = D3D11_COMPARISON_NEVER;") 1247 cpp_quote(" BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;") 1248 cpp_quote(" MinLOD = -3.402823466e+38f;") 1249 cpp_quote(" MaxLOD = 3.402823466e+38f;") 1250 cpp_quote(" }") 1251 cpp_quote(" explicit CD3D11_SAMPLER_DESC(D3D11_FILTER filter, D3D11_TEXTURE_ADDRESS_MODE addressU,") 1252 cpp_quote(" D3D11_TEXTURE_ADDRESS_MODE addressV, D3D11_TEXTURE_ADDRESS_MODE addressW,") 1253 cpp_quote(" FLOAT mipLODBias, UINT maxAnisotropy, D3D11_COMPARISON_FUNC comparisonFunc,") 1254 cpp_quote(" const FLOAT *borderColor, FLOAT minLOD, FLOAT maxLOD) {" ) 1255 cpp_quote(" Filter = filter;") 1256 cpp_quote(" AddressU = addressU;") 1257 cpp_quote(" AddressV = addressV;") 1258 cpp_quote(" AddressW = addressW;") 1259 cpp_quote(" MipLODBias = mipLODBias;") 1260 cpp_quote(" MaxAnisotropy = maxAnisotropy;") 1261 cpp_quote(" ComparisonFunc = comparisonFunc;") 1262 cpp_quote(" if(borderColor) {") 1263 cpp_quote(" BorderColor[0] = borderColor[0];") 1264 cpp_quote(" BorderColor[1] = borderColor[1];") 1265 cpp_quote(" BorderColor[2] = borderColor[2];") 1266 cpp_quote(" BorderColor[3] = borderColor[3];") 1267 cpp_quote(" }else {") 1268 cpp_quote(" BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;") 1269 cpp_quote(" }") 1270 cpp_quote(" MinLOD = minLOD;") 1271 cpp_quote(" MaxLOD = maxLOD;") 1272 cpp_quote(" }") 1273 cpp_quote(" ~CD3D11_SAMPLER_DESC() {}") 1274 cpp_quote(" operator const D3D11_SAMPLER_DESC&() const { return *this; }") 1275 cpp_quote("};") 1276 cpp_quote("#endif") 1277 1278 typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC 1279 { 1280 DXGI_FORMAT Format; 1281 D3D11_SRV_DIMENSION ViewDimension; 1282 1283 union 1284 { 1285 D3D11_BUFFER_SRV Buffer; 1286 D3D11_TEX1D_SRV Texture1D; 1287 D3D11_TEX1D_ARRAY_SRV Texture1DArray; 1288 D3D11_TEX2D_SRV Texture2D; 1289 D3D11_TEX2D_ARRAY_SRV Texture2DArray; 1290 D3D11_TEX2DMS_SRV Texture2DMS; 1291 D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; 1292 D3D11_TEX3D_SRV Texture3D; 1293 D3D11_TEXCUBE_SRV TextureCube; 1294 D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; 1295 D3D11_BUFFEREX_SRV BufferEx; 1296 }; 1297 } D3D11_SHADER_RESOURCE_VIEW_DESC; 1298 1299 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined( __cplusplus )") 1300 cpp_quote("struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC {") 1301 cpp_quote(" CD3D11_SHADER_RESOURCE_VIEW_DESC() {}") 1302 cpp_quote(" explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(D3D11_SRV_DIMENSION dim,") 1303 cpp_quote(" DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0,") 1304 cpp_quote(" UINT mip_levels = -1, UINT first_slice = 0, UINT array_size = -1, UINT flags = 0) {") 1305 cpp_quote(" Format = format;") 1306 cpp_quote(" ViewDimension = dim;") 1307 cpp_quote(" switch(ViewDimension) {") 1308 cpp_quote(" case D3D11_SRV_DIMENSION_BUFFER:") 1309 cpp_quote(" Buffer.FirstElement = most_detailed_mip;") 1310 cpp_quote(" Buffer.NumElements = mip_levels;") 1311 cpp_quote(" break;") 1312 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURE1D:") 1313 cpp_quote(" Texture1D.MostDetailedMip = most_detailed_mip;") 1314 cpp_quote(" Texture1D.MipLevels = mip_levels;") 1315 cpp_quote(" break;") 1316 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:") 1317 cpp_quote(" Texture1DArray.MostDetailedMip = most_detailed_mip;") 1318 cpp_quote(" Texture1DArray.MipLevels = mip_levels;") 1319 cpp_quote(" Texture1DArray.FirstArraySlice = first_slice;") 1320 cpp_quote(" Texture1DArray.ArraySize = array_size;") 1321 cpp_quote(" break;") 1322 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURE2D:") 1323 cpp_quote(" Texture2D.MostDetailedMip = most_detailed_mip;") 1324 cpp_quote(" Texture2D.MipLevels = mip_levels;") 1325 cpp_quote(" break;") 1326 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:") 1327 cpp_quote(" Texture2DArray.MostDetailedMip = most_detailed_mip;") 1328 cpp_quote(" Texture2DArray.MipLevels = mip_levels;") 1329 cpp_quote(" Texture2DArray.FirstArraySlice = first_slice;") 1330 cpp_quote(" Texture2DArray.ArraySize = array_size;") 1331 cpp_quote(" break;") 1332 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:") 1333 cpp_quote(" Texture2DMSArray.FirstArraySlice = first_slice;") 1334 cpp_quote(" Texture2DMSArray.ArraySize = array_size;") 1335 cpp_quote(" break;") 1336 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURE3D:") 1337 cpp_quote(" Texture3D.MostDetailedMip = most_detailed_mip;") 1338 cpp_quote(" Texture3D.MipLevels = mip_levels;") 1339 cpp_quote(" break;") 1340 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURECUBE:") 1341 cpp_quote(" TextureCube.MostDetailedMip = most_detailed_mip;") 1342 cpp_quote(" TextureCube.MipLevels = mip_levels;") 1343 cpp_quote(" break;") 1344 cpp_quote(" case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:") 1345 cpp_quote(" TextureCubeArray.MostDetailedMip = most_detailed_mip;") 1346 cpp_quote(" TextureCubeArray.MipLevels = mip_levels;") 1347 cpp_quote(" TextureCubeArray.First2DArrayFace = first_slice;") 1348 cpp_quote(" TextureCubeArray.NumCubes = array_size;") 1349 cpp_quote(" break;") 1350 cpp_quote(" case D3D11_SRV_DIMENSION_BUFFEREX:") 1351 cpp_quote(" BufferEx.FirstElement = most_detailed_mip;") 1352 cpp_quote(" BufferEx.NumElements = mip_levels;") 1353 cpp_quote(" BufferEx.Flags = flags;") 1354 cpp_quote(" break;") 1355 cpp_quote(" default:") 1356 cpp_quote(" break;") 1357 cpp_quote(" }") 1358 cpp_quote(" }") 1359 cpp_quote(" explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,") 1360 cpp_quote(" UINT elem_cnt, UINT flags = 0);") /* FIXME: implement */ 1361 cpp_quote(" explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture1D *texture, D3D11_SRV_DIMENSION dim,") 1362 cpp_quote(" DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,") 1363 cpp_quote(" UINT first_slice = 0, UINT array_size = -1 );") /* FIXME: implement */ 1364 cpp_quote(" explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture2D *texture, D3D11_SRV_DIMENSION dim,") 1365 cpp_quote(" DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,") 1366 cpp_quote(" UINT first_slice = 0, UINT array_size = -1 );") /* FIXME: implement */ 1367 cpp_quote(" explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,") 1368 cpp_quote(" UINT most_detailed_mip = 0, UINT mip_levels = -1 );") 1369 cpp_quote(" ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {}") 1370 cpp_quote(" explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(const D3D11_SHADER_RESOURCE_VIEW_DESC &other)") 1371 cpp_quote(" : D3D11_SHADER_RESOURCE_VIEW_DESC(other) {}") 1372 cpp_quote(" operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const {") 1373 cpp_quote(" return *this;") 1374 cpp_quote(" }") 1375 cpp_quote("};") 1376 cpp_quote("#endif") 1377 1378 typedef struct D3D11_TEXTURE1D_DESC 1379 { 1380 UINT Width; 1381 UINT MipLevels; 1382 UINT ArraySize; 1383 DXGI_FORMAT Format; 1384 D3D11_USAGE Usage; 1385 UINT BindFlags; 1386 UINT CPUAccessFlags; 1387 UINT MiscFlags; 1388 } D3D11_TEXTURE1D_DESC; 1389 1390 typedef struct D3D11_TEXTURE2D_DESC 1391 { 1392 UINT Width; 1393 UINT Height; 1394 UINT MipLevels; 1395 UINT ArraySize; 1396 DXGI_FORMAT Format; 1397 DXGI_SAMPLE_DESC SampleDesc; 1398 D3D11_USAGE Usage; 1399 UINT BindFlags; 1400 UINT CPUAccessFlags; 1401 UINT MiscFlags; 1402 } D3D11_TEXTURE2D_DESC; 1403 1404 cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)") 1405 cpp_quote("struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC {") 1406 cpp_quote(" CD3D11_TEXTURE2D_DESC() {}") 1407 cpp_quote(" explicit CD3D11_TEXTURE2D_DESC(const D3D11_TEXTURE2D_DESC &o) : D3D11_TEXTURE2D_DESC(o) {}") 1408 cpp_quote(" explicit CD3D11_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height, UINT arraySize = 1,") 1409 cpp_quote(" UINT mipLevels = 0, UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,") 1410 cpp_quote(" D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT sampleCount = 1," ) 1411 cpp_quote(" UINT sampleQuality = 0, UINT miscFlags = 0) {") 1412 cpp_quote(" Width = width;") 1413 cpp_quote(" Height = height;") 1414 cpp_quote(" MipLevels = mipLevels;") 1415 cpp_quote(" ArraySize = arraySize;") 1416 cpp_quote(" Format = format;") 1417 cpp_quote(" SampleDesc.Count = sampleCount;") 1418 cpp_quote(" SampleDesc.Quality = sampleQuality;") 1419 cpp_quote(" Usage = usage;") 1420 cpp_quote(" BindFlags = bindFlags;") 1421 cpp_quote(" CPUAccessFlags = cpuaccessFlags;") 1422 cpp_quote(" MiscFlags = miscFlags;") 1423 cpp_quote(" }" ) 1424 cpp_quote(" ~CD3D11_TEXTURE2D_DESC() {}") 1425 cpp_quote(" operator const D3D11_TEXTURE2D_DESC&() const { return *this; }") 1426 cpp_quote("};") 1427 cpp_quote("#endif") 1428 1429 typedef struct D3D11_TEXTURE3D_DESC 1430 { 1431 UINT Width; 1432 UINT Height; 1433 UINT Depth; 1434 UINT MipLevels; 1435 DXGI_FORMAT Format; 1436 D3D11_USAGE Usage; 1437 UINT BindFlags; 1438 UINT CPUAccessFlags; 1439 UINT MiscFlags; 1440 } D3D11_TEXTURE3D_DESC; 1441 1442 typedef struct D3D11_VIDEO_DECODER_DESC 1443 { 1444 GUID Guid; 1445 UINT SampleWidth; 1446 UINT SampleHeight; 1447 DXGI_FORMAT OutputFormat; 1448 } D3D11_VIDEO_DECODER_DESC; 1449 1450 typedef struct D3D11_VIDEO_DECODER_CONFIG 1451 { 1452 GUID guidConfigBitstreamEncryption; 1453 GUID guidConfigMBcontrolEncryption; 1454 GUID guidConfigResidDiffEncryption; 1455 UINT ConfigBitstreamRaw; 1456 UINT ConfigMBcontrolRasterOrder; 1457 UINT ConfigResidDiffHost; 1458 UINT ConfigSpatialResid8; 1459 UINT ConfigResid8Subtraction; 1460 UINT ConfigSpatialHost8or9Clipping; 1461 UINT ConfigSpatialResidInterleaved; 1462 UINT ConfigIntraResidUnsigned; 1463 UINT ConfigResidDiffAccelerator; 1464 UINT ConfigHostInverseScan; 1465 UINT ConfigSpecificIDCT; 1466 UINT Config4GroupedCoefs; 1467 USHORT ConfigMinRenderTargetBuffCount; 1468 USHORT ConfigDecoderSpecific; 1469 } D3D11_VIDEO_DECODER_CONFIG; 1470 1471 typedef enum D3D11_VIDEO_FRAME_FORMAT 1472 { 1473 D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0, 1474 D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, 1475 D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2 1476 } D3D11_VIDEO_FRAME_FORMAT; 1477 1478 typedef enum D3D11_VIDEO_USAGE 1479 { 1480 D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0, 1481 D3D11_VIDEO_USAGE_OPTIMAL_SPEED = 1, 1482 D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2 1483 } D3D11_VIDEO_USAGE; 1484 1485 typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC 1486 { 1487 D3D11_VIDEO_FRAME_FORMAT InputFrameFormat; 1488 DXGI_RATIONAL InputFrameRate; 1489 UINT InputWidth; 1490 UINT InputHeight; 1491 DXGI_RATIONAL OutputFrameRate; 1492 UINT OutputWidth; 1493 UINT OutputHeight; 1494 D3D11_VIDEO_USAGE Usage; 1495 } D3D11_VIDEO_PROCESSOR_CONTENT_DESC; 1496 1497 typedef struct D3D11_VIDEO_PROCESSOR_CAPS 1498 { 1499 UINT DeviceCaps; 1500 UINT FeatureCaps; 1501 UINT FilterCaps; 1502 UINT InputFormatCaps; 1503 UINT AutoStreamCaps; 1504 UINT StereoCaps; 1505 UINT RateConversionCapsCount; 1506 UINT MaxInputStreams; 1507 UINT MaxStreamStates; 1508 } D3D11_VIDEO_PROCESSOR_CAPS; 1509 1510 typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS 1511 { 1512 UINT PastFrames; 1513 UINT FutureFrames; 1514 UINT ProcessorCaps; 1515 UINT ITelecineCaps; 1516 UINT CustomRateCount; 1517 } D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS; 1518 1519 typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE 1520 { 1521 DXGI_RATIONAL CustomRate; 1522 UINT OutputFrames; 1523 BOOL InputInterlaced; 1524 UINT InputFramesOrFields; 1525 } D3D11_VIDEO_PROCESSOR_CUSTOM_RATE; 1526 1527 typedef enum D3D11_VIDEO_PROCESSOR_FILTER 1528 { 1529 D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS = 0, 1530 D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST = 1, 1531 D3D11_VIDEO_PROCESSOR_FILTER_HUE = 2, 1532 D3D11_VIDEO_PROCESSOR_FILTER_SATURATION = 3, 1533 D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION = 4, 1534 D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT = 5, 1535 D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6, 1536 D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT = 7 1537 } D3D11_VIDEO_PROCESSOR_FILTER; 1538 1539 typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE 1540 { 1541 int Minimum; 1542 int Maximum; 1543 int Default; 1544 float Multiplier; 1545 } D3D11_VIDEO_PROCESSOR_FILTER_RANGE; 1546 1547 typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE 1548 { 1549 D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, 1550 D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, 1551 D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 1552 } D3D11_AUTHENTICATED_CHANNEL_TYPE; 1553 1554 typedef enum D3D11_VDOV_DIMENSION 1555 { 1556 D3D11_VDOV_DIMENSION_UNKNOWN = 0, 1557 D3D11_VDOV_DIMENSION_TEXTURE2D = 1 1558 } D3D11_VDOV_DIMENSION; 1559 1560 typedef struct D3D11_TEX2D_VDOV 1561 { 1562 UINT ArraySlice; 1563 } D3D11_TEX2D_VDOV; 1564 1565 typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC 1566 { 1567 GUID DecodeProfile; 1568 D3D11_VDOV_DIMENSION ViewDimension; 1569 union { 1570 D3D11_TEX2D_VDOV Texture2D; 1571 }; 1572 } D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; 1573 1574 typedef enum D3D11_VPIV_DIMENSION 1575 { 1576 D3D11_VPIV_DIMENSION_UNKNOWN = 0, 1577 D3D11_VPIV_DIMENSION_TEXTURE2D = 1 1578 } D3D11_VPIV_DIMENSION; 1579 1580 typedef struct D3D11_TEX2D_VPIV 1581 { 1582 UINT MipSlice; 1583 UINT ArraySlice; 1584 } D3D11_TEX2D_VPIV; 1585 1586 typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC 1587 { 1588 UINT FourCC; 1589 D3D11_VPIV_DIMENSION ViewDimension; 1590 union { 1591 D3D11_TEX2D_VPIV Texture2D; 1592 }; 1593 } D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC; 1594 1595 typedef enum D3D11_VPOV_DIMENSION 1596 { 1597 D3D11_VPOV_DIMENSION_UNKNOWN = 0, 1598 D3D11_VPOV_DIMENSION_TEXTURE2D = 1, 1599 D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2 1600 } D3D11_VPOV_DIMENSION; 1601 1602 typedef struct D3D11_TEX2D_VPOV 1603 { 1604 UINT MipSlice; 1605 } D3D11_TEX2D_VPOV; 1606 1607 typedef struct D3D11_TEX2D_ARRAY_VPOV 1608 { 1609 UINT MipSlice; 1610 UINT FirstArraySlice; 1611 UINT ArraySize; 1612 } D3D11_TEX2D_ARRAY_VPOV; 1613 1614 typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC 1615 { 1616 D3D11_VPOV_DIMENSION ViewDimension; 1617 union { 1618 D3D11_TEX2D_VPOV Texture2D; 1619 D3D11_TEX2D_ARRAY_VPOV Texture2DArray; 1620 }; 1621 } D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC; 1622 1623 typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS 1624 { 1625 UINT Caps; 1626 UINT KeyExchangeTypeCount; 1627 UINT BlockAlignmentSize; 1628 ULONGLONG ProtectedMemorySize; 1629 } D3D11_VIDEO_CONTENT_PROTECTION_CAPS; 1630 1631 typedef struct D3D11_ENCRYPTED_BLOCK_INFO 1632 { 1633 UINT NumEncryptedBytesAtBeginning; 1634 UINT NumBytesInSkipPattern; 1635 UINT NumBytesInEncryptPattern; 1636 } D3D11_ENCRYPTED_BLOCK_INFO; 1637 1638 typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC 1639 { 1640 D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; 1641 UINT BufferIndex; 1642 UINT DataOffset; 1643 UINT DataSize; 1644 UINT FirstMBaddress; 1645 UINT NumMBsInBuffer; 1646 UINT Width; 1647 UINT Height; 1648 UINT Stride; 1649 UINT ReservedBits; 1650 void *pIV; 1651 UINT IVSize; 1652 BOOL PartialEncryption; 1653 D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; 1654 } D3D11_VIDEO_DECODER_BUFFER_DESC; 1655 1656 typedef struct D3D11_VIDEO_DECODER_EXTENSION 1657 { 1658 UINT Function; 1659 void *pPrivateInputData; 1660 UINT PrivateInputDataSize; 1661 void *pPrivateOutputData; 1662 UINT PrivateOutputDataSize; 1663 UINT ResourceCount; 1664 ID3D11Resource **ppResourceList; 1665 } D3D11_VIDEO_DECODER_EXTENSION; 1666 1667 typedef struct D3D11_VIDEO_COLOR_YCbCrA 1668 { 1669 float Y; 1670 float Cb; 1671 float Cr; 1672 float A; 1673 } D3D11_VIDEO_COLOR_YCbCrA; 1674 1675 typedef struct D3D11_VIDEO_COLOR_RGBA 1676 { 1677 float R; 1678 float G; 1679 float B; 1680 float A; 1681 } D3D11_VIDEO_COLOR_RGBA; 1682 1683 typedef struct D3D11_VIDEO_COLOR 1684 { 1685 union 1686 { 1687 D3D11_VIDEO_COLOR_YCbCrA YCbCr; 1688 D3D11_VIDEO_COLOR_RGBA RGBA; 1689 }; 1690 } D3D11_VIDEO_COLOR; 1691 1692 typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE 1693 { 1694 UINT Usage : 1; 1695 UINT RGB_Range : 1; 1696 UINT YCbCr_Matrix : 1; 1697 UINT YCbCr_xvYCC : 1; 1698 UINT Nominal_Range : 2; 1699 UINT Reserved : 26; 1700 } D3D11_VIDEO_PROCESSOR_COLOR_SPACE; 1701 1702 typedef struct D3D11_VIDEO_PROCESSOR_STREAM 1703 { 1704 BOOL Enable; 1705 UINT OutputIndex; 1706 UINT InputFrameOrField; 1707 UINT PastFrames; 1708 UINT FutureFrames; 1709 ID3D11VideoProcessorInputView **ppPastSurfaces; 1710 ID3D11VideoProcessorInputView *pInputSurface; 1711 ID3D11VideoProcessorInputView **ppFutureSurfaces; 1712 ID3D11VideoProcessorInputView **ppPastSurfacesRight; 1713 ID3D11VideoProcessorInputView *pInputSurfaceRight; 1714 ID3D11VideoProcessorInputView **ppFutureSurfacesRight; 1715 } D3D11_VIDEO_PROCESSOR_STREAM; 1716 1717 typedef struct D3D11_OMAC 1718 { 1719 BYTE Omac[D3D11_OMAC_SIZE]; 1720 } D3D11_OMAC; 1721 1722 typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT 1723 { 1724 D3D11_OMAC omac; 1725 GUID ConfigureType; 1726 HANDLE hChannel; 1727 UINT SequenceNumber; 1728 HRESULT ReturnCode; 1729 } D3D11_AUTHENTICATED_CONFIGURE_OUTPUT; 1730 1731 typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT 1732 { 1733 UINT64 Frequency; 1734 BOOL Disjoint; 1735 } D3D11_QUERY_DATA_TIMESTAMP_DISJOINT; 1736 1737 [ 1738 object, 1739 local, 1740 uuid(1841e5c8-16b0-489b-bcc8-44cfb0d5deae) 1741 ] 1742 interface ID3D11DeviceChild : IUnknown 1743 { 1744 void GetDevice( 1745 [out] ID3D11Device **ppDevice); 1746 HRESULT GetPrivateData( 1747 [in] REFGUID guid, 1748 [in, out] UINT *pDataSize, 1749 [out] void *pData); 1750 HRESULT SetPrivateData( 1751 [in] REFGUID guid, 1752 [in] UINT DataSize, 1753 [in] const void *pData); 1754 HRESULT SetPrivateDataInterface( 1755 [in] REFGUID guid, 1756 [in] const IUnknown *pData); 1757 } 1758 1759 [ 1760 object, 1761 local, 1762 uuid(4b35d0cd-1e15-4258-9c98-1b1333f6dd3b) 1763 ] 1764 interface ID3D11Asynchronous : ID3D11DeviceChild 1765 { 1766 UINT GetDataSize(); 1767 } 1768 1769 [ 1770 object, 1771 local, 1772 uuid(d6c00747-87b7-425e-b84d-44d108560afd) 1773 ] 1774 interface ID3D11Query : ID3D11Asynchronous 1775 { 1776 void GetDesc( 1777 [out] D3D11_QUERY_DESC *pDesc); 1778 } 1779 1780 [ 1781 object, 1782 local, 1783 uuid(dc8e63f3-d12b-4952-b47b-5e45026a862d) 1784 ] 1785 interface ID3D11Resource : ID3D11DeviceChild 1786 { 1787 void GetType( 1788 [out] D3D11_RESOURCE_DIMENSION *pResourceDimension); 1789 void SetEvictionPriority( 1790 [in] UINT EvictionPriority); 1791 UINT GetEvictionPriority(); 1792 } 1793 1794 [ 1795 object, 1796 local, 1797 uuid(839d1216-bb2e-412b-b7f4-a9dbebe08ed1) 1798 ] 1799 interface ID3D11View : ID3D11DeviceChild 1800 { 1801 void GetResource( 1802 [out] ID3D11Resource **ppResource); 1803 } 1804 1805 [ 1806 object, 1807 local, 1808 uuid(75b68faa-347d-4159-8f45-a0640f01cd9a) 1809 ] 1810 interface ID3D11BlendState : ID3D11DeviceChild 1811 { 1812 void GetDesc( 1813 [out] D3D11_BLEND_DESC *pDesc); 1814 } 1815 1816 [ 1817 object, 1818 local, 1819 uuid(48570b85-d1ee-4fcd-a250-eb350722b037) 1820 ] 1821 interface ID3D11Buffer : ID3D11Resource 1822 { 1823 void GetDesc( 1824 [out] D3D11_BUFFER_DESC *pDesc); 1825 } 1826 1827 [ 1828 object, 1829 local, 1830 uuid(a6cd7faa-b0b7-4a2f-9436-8662a65797cb) 1831 ] 1832 interface ID3D11ClassInstance : ID3D11DeviceChild 1833 { 1834 void GetClassLinkage( 1835 [out] ID3D11ClassLinkage **ppLinkage); 1836 void GetDesc( 1837 [out] D3D11_CLASS_INSTANCE_DESC *pDesc); 1838 void GetInstanceName( 1839 [out] LPSTR pInstanceName, 1840 [in, out] SIZE_T *pBufferLength); 1841 void GetTypeName( 1842 [out] LPSTR pTypeName, 1843 [in, out] SIZE_T *pBufferLength); 1844 } 1845 1846 [ 1847 object, 1848 local, 1849 uuid(ddf57cba-9543-46e4-a12b-f207a0fe7fed) 1850 ] 1851 interface ID3D11ClassLinkage : ID3D11DeviceChild 1852 { 1853 HRESULT GetClassInstance( 1854 [in] LPCSTR pClassInstanceName, 1855 [in] UINT InstanceIndex, 1856 [out] ID3D11ClassInstance **ppInstance); 1857 HRESULT CreateClassInstance( 1858 [in] LPCSTR pClassTypeName, 1859 [in] UINT ConstantBufferOffset, 1860 [in] UINT ConstantVectorOffset, 1861 [in] UINT TextureOffset, 1862 [in] UINT SamplerOffset, 1863 [out] ID3D11ClassInstance **ppInstance); 1864 } 1865 1866 [ 1867 object, 1868 local, 1869 uuid(a24bc4d1-769e-43f7-8013-98ff566c18e2) 1870 ] 1871 interface ID3D11CommandList : ID3D11DeviceChild 1872 { 1873 UINT GetContextFlags(); 1874 } 1875 1876 [ 1877 object, 1878 local, 1879 uuid(4f5b196e-c2bd-495e-bd01-1fded38e4969) 1880 ] 1881 interface ID3D11ComputeShader : ID3D11DeviceChild 1882 { 1883 } 1884 1885 [ 1886 object, 1887 local, 1888 uuid(6e8c49fb-a371-4770-b440-29086022b741) 1889 ] 1890 interface ID3D11Counter : ID3D11Asynchronous 1891 { 1892 void GetDesc( 1893 [out] D3D11_COUNTER_DESC *pDesc); 1894 } 1895 1896 [ 1897 object, 1898 local, 1899 uuid(03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1) 1900 ] 1901 interface ID3D11DepthStencilState : ID3D11DeviceChild 1902 { 1903 void GetDesc( 1904 [out] D3D11_DEPTH_STENCIL_DESC *pDesc); 1905 } 1906 1907 [ 1908 object, 1909 local, 1910 uuid(9fdac92a-1876-48c3-afad-25b94f84a9b6) 1911 ] 1912 interface ID3D11DepthStencilView : ID3D11View 1913 { 1914 void GetDesc( 1915 [out] D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc); 1916 } 1917 1918 [ 1919 object, 1920 local, 1921 uuid(f582c508-0f36-490c-9977-31eece268cfa) 1922 ] 1923 interface ID3D11DomainShader : ID3D11DeviceChild 1924 { 1925 } 1926 1927 [ 1928 object, 1929 local, 1930 uuid(38325b96-effb-4022-ba02-2e795b70275c) 1931 ] 1932 interface ID3D11GeometryShader : ID3D11DeviceChild 1933 { 1934 } 1935 1936 [ 1937 object, 1938 local, 1939 uuid(8e5c6061-628a-4c8e-8264-bbe45cb3d5dd) 1940 ] 1941 interface ID3D11HullShader : ID3D11DeviceChild 1942 { 1943 } 1944 1945 [ 1946 object, 1947 local, 1948 uuid(e4819ddc-4cf0-4025-bd26-5de82a3e07b7) 1949 ] 1950 interface ID3D11InputLayout : ID3D11DeviceChild 1951 { 1952 } 1953 1954 [ 1955 object, 1956 local, 1957 uuid(ea82e40d-51dc-4f33-93d4-db7c9125ae8c) 1958 ] 1959 interface ID3D11PixelShader : ID3D11DeviceChild 1960 { 1961 } 1962 1963 [ 1964 object, 1965 local, 1966 uuid(9eb576dd-9f77-4d86-81aa-8bab5fe490e2) 1967 ] 1968 interface ID3D11Predicate : ID3D11Query 1969 { 1970 } 1971 1972 [ 1973 object, 1974 local, 1975 uuid(9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7) 1976 ] 1977 interface ID3D11RasterizerState : ID3D11DeviceChild 1978 { 1979 void GetDesc( 1980 [out] D3D11_RASTERIZER_DESC *pDesc); 1981 } 1982 1983 [ 1984 object, 1985 local, 1986 uuid(dfdba067-0b8d-4865-875b-d7b4516cc164) 1987 ] 1988 interface ID3D11RenderTargetView : ID3D11View 1989 { 1990 void GetDesc( 1991 [out] D3D11_RENDER_TARGET_VIEW_DESC *pDesc); 1992 } 1993 1994 [ 1995 object, 1996 local, 1997 uuid(da6fea51-564c-4487-9810-f0d0f9b4e3a5) 1998 ] 1999 interface ID3D11SamplerState : ID3D11DeviceChild 2000 { 2001 void GetDesc( 2002 [out] D3D11_SAMPLER_DESC *pDesc); 2003 } 2004 2005 [ 2006 object, 2007 local, 2008 uuid(b0e06fe0-8192-4e1a-b1ca-36d7414710b2) 2009 ] 2010 interface ID3D11ShaderResourceView : ID3D11View 2011 { 2012 void GetDesc( 2013 [out] D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc); 2014 } 2015 2016 [ 2017 object, 2018 local, 2019 uuid(f8fb5c27-c6b3-4f75-a4c8-439af2ef564c), 2020 ] 2021 interface ID3D11Texture1D : ID3D11Resource 2022 { 2023 void GetDesc( 2024 [out] D3D11_TEXTURE1D_DESC *pDesc); 2025 } 2026 2027 [ 2028 object, 2029 local, 2030 uuid(6f15aaf2-d208-4e89-9ab4-489535d34f9c) 2031 ] 2032 interface ID3D11Texture2D : ID3D11Resource 2033 { 2034 void GetDesc( 2035 [out] D3D11_TEXTURE2D_DESC *pDesc); 2036 } 2037 2038 [ 2039 object, 2040 local, 2041 uuid(037e866e-f56d-4357-a8af-9dabbe6e250e) 2042 ] 2043 interface ID3D11Texture3D : ID3D11Resource 2044 { 2045 void GetDesc( 2046 [out] D3D11_TEXTURE3D_DESC *pDesc); 2047 } 2048 2049 [ 2050 object, 2051 local, 2052 uuid(28acf509-7f5c-48f6-8611-f316010a6380) 2053 ] 2054 interface ID3D11UnorderedAccessView : ID3D11View 2055 { 2056 void GetDesc( 2057 [out] D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc); 2058 } 2059 2060 [ 2061 object, 2062 local, 2063 uuid(3b301d64-d678-4289-8897-22f8928b72f3) 2064 ] 2065 interface ID3D11VertexShader : ID3D11DeviceChild 2066 { 2067 } 2068 2069 [ 2070 object, 2071 local, 2072 uuid(c0bfa96c-e089-44fb-8eaf-26f8796190da) 2073 ] 2074 interface ID3D11DeviceContext : ID3D11DeviceChild 2075 { 2076 void VSSetConstantBuffers( 2077 [in] UINT StartSlot, 2078 [in] UINT NumBuffers, 2079 [in] ID3D11Buffer *const *ppConstantBuffers); 2080 void PSSetShaderResources( 2081 [in] UINT StartSlot, 2082 [in] UINT NumViews, 2083 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 2084 void PSSetShader( 2085 [in] ID3D11PixelShader *pPixelShader, 2086 [in] ID3D11ClassInstance *const *ppClassInstances, 2087 UINT NumClassInstances); 2088 void PSSetSamplers( 2089 [in] UINT StartSlot, 2090 [in] UINT NumSamplers, 2091 [in] ID3D11SamplerState *const *ppSamplers); 2092 void VSSetShader( 2093 [in] ID3D11VertexShader *pVertexShader, 2094 [in] ID3D11ClassInstance *const *ppClassInstances, 2095 UINT NumClassInstances); 2096 void DrawIndexed( 2097 [in] UINT IndexCount, 2098 [in] UINT StartIndexLocation, 2099 [in] INT BaseVertexLocation); 2100 void Draw( 2101 [in] UINT VertexCount, 2102 [in] UINT StartVertexLocation); 2103 HRESULT Map( 2104 [in] ID3D11Resource *pResource, 2105 [in] UINT Subresource, 2106 [in] D3D11_MAP MapType, 2107 [in] UINT MapFlags, 2108 [out] D3D11_MAPPED_SUBRESOURCE *pMappedResource); 2109 void Unmap( 2110 [in] ID3D11Resource *pResource, 2111 [in] UINT Subresource); 2112 void PSSetConstantBuffers( 2113 [in] UINT StartSlot, 2114 [in] UINT NumBuffers, 2115 [in] ID3D11Buffer *const *ppConstantBuffers); 2116 void IASetInputLayout( 2117 [in] ID3D11InputLayout *pInputLayout); 2118 void IASetVertexBuffers( 2119 [in] UINT StartSlot, 2120 [in] UINT NumBuffers, 2121 [in] ID3D11Buffer *const *ppVertexBuffers, 2122 [in] const UINT *pStrides, 2123 [in] const UINT *pOffsets); 2124 void IASetIndexBuffer( 2125 [in] ID3D11Buffer *pIndexBuffer, 2126 [in] DXGI_FORMAT Format, 2127 [in] UINT Offset); 2128 void DrawIndexedInstanced( 2129 [in] UINT IndexCountPerInstance, 2130 [in] UINT InstanceCount, 2131 [in] UINT StartIndexLocation, 2132 [in] INT BaseVertexLocation, 2133 [in] UINT StartInstanceLocation); 2134 void DrawInstanced( 2135 [in] UINT VertexCountPerInstance, 2136 [in] UINT InstanceCount, 2137 [in] UINT StartVertexLocation, 2138 [in] UINT StartInstanceLocation); 2139 void GSSetConstantBuffers( 2140 [in] UINT StartSlot, 2141 [in] UINT NumBuffers, 2142 [in] ID3D11Buffer *const *ppConstantBuffers); 2143 void GSSetShader( 2144 [in] ID3D11GeometryShader *pShader, 2145 [in] ID3D11ClassInstance *const *ppClassInstances, 2146 UINT NumClassInstances); 2147 void IASetPrimitiveTopology( 2148 [in] D3D11_PRIMITIVE_TOPOLOGY Topology); 2149 void VSSetShaderResources( 2150 [in] UINT StartSlot, 2151 [in] UINT NumViews, 2152 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 2153 void VSSetSamplers( 2154 [in] UINT StartSlot, 2155 [in] UINT NumSamplers, 2156 [in] ID3D11SamplerState *const *ppSamplers); 2157 void Begin( 2158 [in] ID3D11Asynchronous *pAsync); 2159 void End( 2160 [in] ID3D11Asynchronous *pAsync); 2161 HRESULT GetData( 2162 [in] ID3D11Asynchronous *pAsync, 2163 [in] void *pData, 2164 [in] UINT DataSize, 2165 [in] UINT GetDataFlags); 2166 void SetPredication( 2167 [in] ID3D11Predicate *pPredicate, 2168 [in] BOOL PredicateValue); 2169 void GSSetShaderResources( 2170 [in] UINT StartSlot, 2171 [in] UINT NumViews, 2172 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 2173 void GSSetSamplers( 2174 [in] UINT StartSlot, 2175 [in] UINT NumSamplers, 2176 [in] ID3D11SamplerState *const *ppSamplers); 2177 void OMSetRenderTargets( 2178 [in] UINT NumViews, 2179 [in] ID3D11RenderTargetView *const *ppRenderTargetViews, 2180 [in] ID3D11DepthStencilView *pDepthStencilView); 2181 void OMSetRenderTargetsAndUnorderedAccessViews( 2182 [in] UINT NumRTVs, 2183 [in] ID3D11RenderTargetView *const *ppRenderTargetViews, 2184 [in] ID3D11DepthStencilView *pDepthStencilView, 2185 [in] UINT UAVStartSlot, 2186 [in] UINT NumUAVs, 2187 [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, 2188 [in] const UINT *pUAVInitialCounts); 2189 void OMSetBlendState( 2190 [in] ID3D11BlendState *pBlendState, 2191 [in] const FLOAT BlendFactor[4], 2192 [in] UINT SampleMask); 2193 void OMSetDepthStencilState( 2194 [in] ID3D11DepthStencilState *pDepthStencilState, 2195 [in] UINT StencilRef); 2196 void SOSetTargets( 2197 [in] UINT NumBuffers, 2198 [in] ID3D11Buffer *const *ppSOTargets, 2199 [in] const UINT *pOffsets); 2200 void DrawAuto(); 2201 void DrawIndexedInstancedIndirect( 2202 [in] ID3D11Buffer *pBufferForArgs, 2203 [in] UINT AlignedByteOffsetForArgs); 2204 void DrawInstancedIndirect( 2205 [in] ID3D11Buffer *pBufferForArgs, 2206 [in] UINT AlignedByteOffsetForArgs); 2207 void Dispatch( 2208 [in] UINT ThreadGroupCountX, 2209 [in] UINT ThreadGroupCountY, 2210 [in] UINT ThreadGroupCountZ); 2211 void DispatchIndirect( 2212 [in] ID3D11Buffer *pBufferForArgs, 2213 [in] UINT AlignedByteOffsetForArgs); 2214 void RSSetState( 2215 [in] ID3D11RasterizerState *pRasterizerState); 2216 void RSSetViewports( 2217 [in] UINT NumViewports, 2218 [in] const D3D11_VIEWPORT *pViewports); 2219 void RSSetScissorRects( 2220 [in] UINT NumRects, 2221 [in] const D3D11_RECT *pRects); 2222 void CopySubresourceRegion( 2223 [in] ID3D11Resource *pDstResource, 2224 [in] UINT DstSubresource, 2225 [in] UINT DstX, 2226 [in] UINT DstY, 2227 [in] UINT DstZ, 2228 [in] ID3D11Resource *pSrcResource, 2229 [in] UINT SrcSubresource, 2230 [in] const D3D11_BOX *pSrcBox); 2231 void CopyResource( 2232 [in] ID3D11Resource *pDstResource, 2233 [in] ID3D11Resource *pSrcResource); 2234 void UpdateSubresource( 2235 [in] ID3D11Resource *pDstResource, 2236 [in] UINT DstSubresource, 2237 [in] const D3D11_BOX *pDstBox, 2238 [in] const void *pSrcData, 2239 [in] UINT SrcRowPitch, 2240 [in] UINT SrcDepthPitch); 2241 void CopyStructureCount( 2242 [in] ID3D11Buffer *pDstBuffer, 2243 [in] UINT DstAlignedByteOffset, 2244 [in] ID3D11UnorderedAccessView *pSrcView); 2245 void ClearRenderTargetView( 2246 [in] ID3D11RenderTargetView *pRenderTargetView, 2247 [in] const FLOAT ColorRGBA[4]); 2248 void ClearUnorderedAccessViewUint( 2249 [in] ID3D11UnorderedAccessView *pUnorderedAccessView, 2250 [in] const UINT Values[4]); 2251 void ClearUnorderedAccessViewFloat( 2252 [in] ID3D11UnorderedAccessView *pUnorderedAccessView, 2253 [in] const FLOAT Values[4]); 2254 void ClearDepthStencilView( 2255 [in] ID3D11DepthStencilView *pDepthStencilView, 2256 [in] UINT ClearFlags, 2257 [in] FLOAT Depth, 2258 [in] UINT8 Stencil); 2259 void GenerateMips( 2260 [in] ID3D11ShaderResourceView *pShaderResourceView); 2261 void SetResourceMinLOD( 2262 [in] ID3D11Resource *pResource, FLOAT MinLOD); 2263 FLOAT GetResourceMinLOD( 2264 [in] ID3D11Resource *pResource); 2265 void ResolveSubresource( 2266 [in] ID3D11Resource *pDstResource, 2267 [in] UINT DstSubresource, 2268 [in] ID3D11Resource *pSrcResource, 2269 [in] UINT SrcSubresource, 2270 [in] DXGI_FORMAT Format); 2271 void ExecuteCommandList( 2272 [in] ID3D11CommandList *pCommandList, 2273 BOOL RestoreContextState); 2274 void HSSetShaderResources( 2275 [in] UINT StartSlot, 2276 [in] UINT NumViews, 2277 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 2278 void HSSetShader( 2279 [in] ID3D11HullShader *pHullShader, 2280 [in] ID3D11ClassInstance *const *ppClassInstances, 2281 UINT NumClassInstances); 2282 void HSSetSamplers( 2283 [in] UINT StartSlot, 2284 [in] UINT NumSamplers, 2285 [in] ID3D11SamplerState *const *ppSamplers); 2286 void HSSetConstantBuffers( 2287 [in] UINT StartSlot, 2288 [in] UINT NumBuffers, 2289 [in] ID3D11Buffer *const *ppConstantBuffers); 2290 void DSSetShaderResources( 2291 [in] UINT StartSlot, 2292 [in] UINT NumViews, 2293 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 2294 void DSSetShader( 2295 [in] ID3D11DomainShader *pDomainShader, 2296 [in] ID3D11ClassInstance *const *ppClassInstances, 2297 UINT NumClassInstances); 2298 void DSSetSamplers( 2299 [in] UINT StartSlot, 2300 [in] UINT NumSamplers, 2301 [in] ID3D11SamplerState *const *ppSamplers); 2302 void DSSetConstantBuffers( 2303 [in] UINT StartSlot, 2304 [in] UINT NumBuffers, 2305 [in] ID3D11Buffer *const *ppConstantBuffers); 2306 void CSSetShaderResources( 2307 [in] UINT StartSlot, 2308 [in] UINT NumViews, 2309 [in] ID3D11ShaderResourceView *const *ppShaderResourceViews); 2310 void CSSetUnorderedAccessViews( 2311 [in] UINT StartSlot, 2312 [in] UINT NumUAVs, 2313 [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews, 2314 [in] const UINT *pUAVInitialCounts); 2315 void CSSetShader( 2316 [in] ID3D11ComputeShader *pComputeShader, 2317 [in] ID3D11ClassInstance *const *ppClassInstances, 2318 UINT NumClassInstances); 2319 void CSSetSamplers( 2320 [in] UINT StartSlot, 2321 [in] UINT NumSamplers, 2322 [in] ID3D11SamplerState *const *ppSamplers); 2323 void CSSetConstantBuffers( 2324 [in] UINT StartSlot, 2325 [in] UINT NumBuffers, 2326 [in] ID3D11Buffer *const *ppConstantBuffers); 2327 void VSGetConstantBuffers( 2328 [in] UINT StartSlot, 2329 [in] UINT NumBuffers, 2330 [out] ID3D11Buffer **ppConstantBuffers); 2331 void PSGetShaderResources( 2332 [in] UINT StartSlot, 2333 [in] UINT NumViews, 2334 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 2335 void PSGetShader( 2336 [out] ID3D11PixelShader **ppPixelShader, 2337 [out] ID3D11ClassInstance **ppClassInstances, 2338 [in, out] UINT *pNumClassInstances); 2339 void PSGetSamplers( 2340 [in] UINT StartSlot, 2341 [in] UINT NumSamplers, 2342 [out] ID3D11SamplerState **ppSamplers); 2343 void VSGetShader( 2344 [out] ID3D11VertexShader **ppVertexShader, 2345 [out] ID3D11ClassInstance **ppClassInstances, 2346 [in, out] UINT *pNumClassInstances); 2347 void PSGetConstantBuffers( 2348 [in] UINT StartSlot, 2349 [in] UINT NumBuffers, 2350 [out] ID3D11Buffer **ppConstantBuffers); 2351 void IAGetInputLayout( 2352 [out] ID3D11InputLayout **ppInputLayout); 2353 void IAGetVertexBuffers( 2354 [in] UINT StartSlot, 2355 [in] UINT NumBuffers, 2356 [out] ID3D11Buffer **ppVertexBuffers, 2357 [out] UINT *pStrides, 2358 [out] UINT *pOffsets); 2359 void IAGetIndexBuffer( 2360 [out] ID3D11Buffer **pIndexBuffer, 2361 [out] DXGI_FORMAT* Format, 2362 [out] UINT* Offset); 2363 void GSGetConstantBuffers( 2364 [in] UINT StartSlot, 2365 [in] UINT NumBuffers, 2366 [out] ID3D11Buffer **ppConstantBuffers); 2367 void GSGetShader( 2368 [out] ID3D11GeometryShader **ppGeometryShader, 2369 [out] ID3D11ClassInstance **ppClassInstances, 2370 [in, out] UINT *pNumClassInstances); 2371 void IAGetPrimitiveTopology( 2372 [out] D3D11_PRIMITIVE_TOPOLOGY *pTopology); 2373 void VSGetShaderResources( 2374 [in] UINT StartSlot, 2375 [in] UINT NumViews, 2376 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 2377 void VSGetSamplers( 2378 [in] UINT StartSlot, 2379 [in] UINT NumSamplers, 2380 [out] ID3D11SamplerState **ppSamplers); 2381 void GetPredication( 2382 [out] ID3D11Predicate **ppPredicate, 2383 [out] BOOL *pPredicateValue); 2384 void GSGetShaderResources( 2385 [in] UINT StartSlot, 2386 [in] UINT NumViews, 2387 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 2388 void GSGetSamplers( 2389 [in] UINT StartSlot, 2390 [in] UINT NumSamplers, 2391 [out] ID3D11SamplerState **ppSamplers); 2392 void OMGetRenderTargets( 2393 [in] UINT NumViews, 2394 [out] ID3D11RenderTargetView **ppRenderTargetViews, 2395 [out] ID3D11DepthStencilView **ppDepthStencilView); 2396 void OMGetRenderTargetsAndUnorderedAccessViews( 2397 [in] UINT NumRTVs, 2398 [out] ID3D11RenderTargetView **ppRenderTargetViews, 2399 [out] ID3D11DepthStencilView **ppDepthStencilView, 2400 [in] UINT UAVStartSlot, 2401 [in] UINT NumUAVs, 2402 [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews); 2403 void OMGetBlendState( 2404 [out] ID3D11BlendState **ppBlendState, 2405 [out] FLOAT BlendFactor[4], 2406 [out] UINT *pSampleMask); 2407 void OMGetDepthStencilState( 2408 [out] ID3D11DepthStencilState **ppDepthStencilState, 2409 [out] UINT *pStencilRef); 2410 void SOGetTargets( 2411 [in] UINT NumBuffers, 2412 [out] ID3D11Buffer **ppSOTargets); 2413 void RSGetState( 2414 [out] ID3D11RasterizerState **ppRasterizerState); 2415 void RSGetViewports( 2416 [in, out] UINT *pNumViewports, 2417 [out] D3D11_VIEWPORT *pViewports); 2418 void RSGetScissorRects( 2419 [in, out] UINT *pNumRects, 2420 [out] D3D11_RECT *pRects); 2421 void HSGetShaderResources( 2422 [in] UINT StartSlot, 2423 [in] UINT NumViews, 2424 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 2425 void HSGetShader( 2426 [out] ID3D11HullShader **ppHullShader, 2427 [out] ID3D11ClassInstance **ppClassInstances, 2428 [in, out] UINT *pNumClassInstances); 2429 void HSGetSamplers( 2430 [in] UINT StartSlot, 2431 [in] UINT NumSamplers, 2432 [out] ID3D11SamplerState **ppSamplers); 2433 void HSGetConstantBuffers( 2434 [in] UINT StartSlot, 2435 [in] UINT NumBuffers, 2436 [out] ID3D11Buffer **ppConstantBuffers); 2437 void DSGetShaderResources( 2438 [in] UINT StartSlot, 2439 [in] UINT NumViews, 2440 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 2441 void DSGetShader( 2442 [out] ID3D11DomainShader **ppDomainShader, 2443 [out] ID3D11ClassInstance **ppClassInstances, 2444 [in, out] UINT *pNumClassInstances); 2445 void DSGetSamplers( 2446 [in] UINT StartSlot, 2447 [in] UINT NumSamplers, 2448 [out] ID3D11SamplerState **ppSamplers); 2449 void DSGetConstantBuffers( 2450 [in] UINT StartSlot, 2451 [in] UINT NumBuffers, 2452 [out] ID3D11Buffer **ppConstantBuffers); 2453 void CSGetShaderResources( 2454 [in] UINT StartSlot, 2455 [in] UINT NumViews, 2456 [out] ID3D11ShaderResourceView **ppShaderResourceViews); 2457 void CSGetUnorderedAccessViews( 2458 [in] UINT StartSlot, 2459 [in] UINT NumUAVs, 2460 [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews); 2461 void CSGetShader( 2462 [out] ID3D11ComputeShader **ppComputeShader, 2463 [out] ID3D11ClassInstance **ppClassInstances, 2464 [in, out] UINT *pNumClassInstances); 2465 void CSGetSamplers( 2466 [in] UINT StartSlot, 2467 [in] UINT NumSamplers, 2468 [out] ID3D11SamplerState **ppSamplers); 2469 void CSGetConstantBuffers( 2470 [in] UINT StartSlot, 2471 [in] UINT NumBuffers, 2472 [out] ID3D11Buffer **ppConstantBuffers); 2473 void ClearState(); 2474 void Flush(); 2475 D3D11_DEVICE_CONTEXT_TYPE GetType(); 2476 UINT GetContextFlags(); 2477 HRESULT FinishCommandList( 2478 BOOL RestoreDeferredContextState, 2479 [out] ID3D11CommandList **ppCommandList); 2480 } 2481 2482 [ 2483 object, 2484 uuid(3015a308-dcbd-47aa-a747-192486d14d4a), 2485 local, 2486 pointer_default(unique) 2487 ] 2488 interface ID3D11AuthenticatedChannel : ID3D11DeviceChild 2489 { 2490 HRESULT GetCertificateSize( 2491 UINT *pCertificateSize); 2492 HRESULT GetCertificate( 2493 UINT CertificateSize, 2494 BYTE *pCertificate); 2495 void GetChannelHandle( 2496 HANDLE *pChannelHandle); 2497 } 2498 2499 [ 2500 object, 2501 uuid(9b32f9ad-bdcc-40a6-a39d-d5c865845720), 2502 local, 2503 pointer_default(unique) 2504 ] 2505 interface ID3D11CryptoSession : ID3D11DeviceChild 2506 { 2507 void GetCryptoType( 2508 GUID *pCryptoType); 2509 void GetDecoderProfile( 2510 GUID *pDecoderProfile); 2511 HRESULT GetCertificateSize( 2512 UINT *pCertificateSize); 2513 HRESULT GetCertificate( 2514 UINT CertificateSize, 2515 BYTE *pCertificate); 2516 void GetCryptoSessionHandle( 2517 HANDLE *pCryptoSessionHandle); 2518 } 2519 2520 [ 2521 object, 2522 uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c), 2523 local, 2524 pointer_default(unique) 2525 ] 2526 interface ID3D11VideoDecoder : ID3D11DeviceChild 2527 { 2528 HRESULT GetCreationParameters( 2529 D3D11_VIDEO_DECODER_DESC *pVideoDesc, 2530 D3D11_VIDEO_DECODER_CONFIG *pConfig); 2531 HRESULT GetDriverHandle( 2532 HANDLE *pDriverHandle); 2533 } 2534 2535 [ 2536 object, 2537 uuid(31627037-53ab-4200-9061-05faa9ab45f9), 2538 local, 2539 pointer_default(unique) 2540 ] 2541 interface ID3D11VideoProcessorEnumerator : ID3D11DeviceChild 2542 { 2543 HRESULT GetVideoProcessorContentDesc( 2544 D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc); 2545 HRESULT CheckVideoProcessorFormat( 2546 DXGI_FORMAT Format, 2547 UINT *pFlags); 2548 HRESULT GetVideoProcessorCaps( 2549 D3D11_VIDEO_PROCESSOR_CAPS *pCaps); 2550 HRESULT GetVideoProcessorRateConversionCaps( 2551 UINT TypeIndex, 2552 D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps); 2553 HRESULT GetVideoProcessorCustomRate( 2554 UINT TypeIndex, 2555 UINT CustomRateIndex, 2556 D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate); 2557 HRESULT GetVideoProcessorFilterRange( 2558 D3D11_VIDEO_PROCESSOR_FILTER Filter, 2559 D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange); 2560 } 2561 2562 [ 2563 object, 2564 uuid(1d7b0652-185f-41c6-85ce-0c5be3d4ae6c), 2565 local, 2566 pointer_default(unique) 2567 ] 2568 interface ID3D11VideoProcessor : ID3D11DeviceChild 2569 { 2570 void GetContentDesc( 2571 D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc); 2572 void GetRateConversionCaps( 2573 D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps); 2574 } 2575 2576 [ 2577 object, 2578 uuid(c2931aea-2a85-4f20-860f-fba1fd256e18), 2579 local, 2580 pointer_default(unique) 2581 ] 2582 interface ID3D11VideoDecoderOutputView : ID3D11View 2583 { 2584 void GetDesc( 2585 D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); 2586 } 2587 2588 [ 2589 object, 2590 uuid(11ec5a5f-51dc-4945-ab34-6e8c21300ea5), 2591 local, 2592 pointer_default(unique) 2593 ] 2594 interface ID3D11VideoProcessorInputView : ID3D11View 2595 { 2596 void GetDesc( 2597 D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc); 2598 } 2599 2600 [ 2601 object, 2602 uuid(a048285e-25a9-4527-bd93-d68b68c44254), 2603 local, 2604 pointer_default(unique) 2605 ] 2606 interface ID3D11VideoProcessorOutputView : ID3D11View 2607 { 2608 void GetDesc( 2609 D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc); 2610 } 2611 2612 [ 2613 object, 2614 uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333), 2615 local, 2616 pointer_default(unique) 2617 ] 2618 interface ID3D11VideoDevice : IUnknown 2619 { 2620 HRESULT CreateVideoDecoder( 2621 const D3D11_VIDEO_DECODER_DESC *pVideoDesc, 2622 const D3D11_VIDEO_DECODER_CONFIG *pConfig, 2623 ID3D11VideoDecoder **ppDecoder); 2624 HRESULT CreateVideoProcessor( 2625 ID3D11VideoProcessorEnumerator *pEnum, 2626 UINT RateConversionIndex, 2627 ID3D11VideoProcessor **ppVideoProcessor); 2628 HRESULT CreateAuthenticatedChannel( 2629 D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, 2630 ID3D11AuthenticatedChannel **ppAuthenticatedChannel); 2631 HRESULT CreateCryptoSession( 2632 const GUID *pCryptoType, 2633 const GUID *pDecoderProfile, 2634 const GUID *pKeyExchangeType, 2635 ID3D11CryptoSession **ppCryptoSession); 2636 HRESULT CreateVideoDecoderOutputView( 2637 ID3D11Resource *pResource, 2638 const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, 2639 ID3D11VideoDecoderOutputView **ppVDOVView); 2640 HRESULT CreateVideoProcessorInputView( 2641 ID3D11Resource *pResource, 2642 ID3D11VideoProcessorEnumerator *pEnum, 2643 const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc, 2644 ID3D11VideoProcessorInputView **ppVPIView); 2645 HRESULT CreateVideoProcessorOutputView( 2646 ID3D11Resource *pResource, 2647 ID3D11VideoProcessorEnumerator *pEnum, 2648 const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc, 2649 ID3D11VideoProcessorOutputView **ppVPOView); 2650 HRESULT CreateVideoProcessorEnumerator( 2651 const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc, 2652 ID3D11VideoProcessorEnumerator **ppEnum); 2653 UINT GetVideoDecoderProfileCount(); 2654 HRESULT GetVideoDecoderProfile( 2655 UINT Index, 2656 GUID *pDecoderProfile); 2657 HRESULT CheckVideoDecoderFormat( 2658 const GUID *pDecoderProfile, 2659 DXGI_FORMAT Format, 2660 BOOL *pSupported); 2661 HRESULT GetVideoDecoderConfigCount( 2662 const D3D11_VIDEO_DECODER_DESC *pDesc, 2663 UINT *pCount); 2664 HRESULT GetVideoDecoderConfig( 2665 const D3D11_VIDEO_DECODER_DESC *pDesc, 2666 UINT Index, 2667 D3D11_VIDEO_DECODER_CONFIG *pConfig); 2668 HRESULT GetContentProtectionCaps( 2669 const GUID *pCryptoType, 2670 const GUID *pDecoderProfile, 2671 D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps); 2672 HRESULT CheckCryptoKeyExchange( 2673 const GUID *pCryptoType, 2674 const GUID *pDecoderProfile, 2675 UINT Index, 2676 GUID *pKeyExchangeType); 2677 HRESULT SetPrivateData( 2678 REFGUID guid, 2679 UINT DataSize, 2680 const void *pData); 2681 HRESULT SetPrivateDataInterface( 2682 REFGUID guid, 2683 const IUnknown *pData); 2684 } 2685 2686 [ 2687 object, 2688 uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4), 2689 local, 2690 pointer_default(unique) 2691 ] 2692 interface ID3D11VideoContext : ID3D11DeviceChild 2693 { 2694 HRESULT GetDecoderBuffer( 2695 [in] ID3D11VideoDecoder *decoder, 2696 [in] D3D11_VIDEO_DECODER_BUFFER_TYPE type, 2697 [out] UINT *buffer_size, 2698 [out] void **buffer 2699 ); 2700 HRESULT ReleaseDecoderBuffer( 2701 [in] ID3D11VideoDecoder *decoder, 2702 [in] D3D11_VIDEO_DECODER_BUFFER_TYPE type 2703 ); 2704 HRESULT DecoderBeginFrame( 2705 [in] ID3D11VideoDecoder *decoder, 2706 [in] ID3D11VideoDecoderOutputView *view, 2707 [in] UINT key_size, 2708 [in] const void *key 2709 ); 2710 HRESULT DecoderEndFrame( 2711 [in] ID3D11VideoDecoder *decoder 2712 ); 2713 HRESULT SubmitDecoderBuffers( 2714 [in] ID3D11VideoDecoder *decoder, 2715 [in] UINT buffers_count, 2716 [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc 2717 ); 2718 HRESULT DecoderExtension( 2719 [in] ID3D11VideoDecoder *decoder, 2720 [in] const D3D11_VIDEO_DECODER_EXTENSION *extension 2721 ); 2722 void VideoProcessorSetOutputTargetRect( 2723 [in] ID3D11VideoProcessor *processor, 2724 [in] BOOL enable, 2725 [in] const RECT *rect 2726 ); 2727 void VideoProcessorSetOutputBackgroundColor( 2728 [in] ID3D11VideoProcessor *processor, 2729 [in] BOOL y_cb_cr, 2730 [in] const D3D11_VIDEO_COLOR *color 2731 ); 2732 void VideoProcessorSetOutputColorSpace( 2733 [in] ID3D11VideoProcessor *processor, 2734 [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space 2735 ); 2736 void VideoProcessorSetOutputAlphaFillMode( 2737 [in] ID3D11VideoProcessor *processor, 2738 [in] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode, 2739 [in] UINT stream_idx 2740 ); 2741 void VideoProcessorSetOutputConstriction( 2742 [in] ID3D11VideoProcessor *processor, 2743 [in] BOOL enable, 2744 [in] SIZE size 2745 ); 2746 void VideoProcessorSetOutputStereoMode( 2747 [in] ID3D11VideoProcessor *processor, 2748 [in] BOOL enable 2749 ); 2750 HRESULT VideoProcessorSetOutputExtension( 2751 [in] ID3D11VideoProcessor *processor, 2752 [in] const GUID *guid, 2753 [in] UINT data_size, 2754 [in] void *data 2755 ); 2756 void VideoProcessorGetOutputTargetRect( 2757 [in] ID3D11VideoProcessor *processor, 2758 [out] BOOL *enabled, 2759 [out] RECT *rect 2760 ); 2761 void VideoProcessorGetOutputBackgroundColor( 2762 [in] ID3D11VideoProcessor *processor, 2763 [out] BOOL *y_cb_cr, 2764 [out] D3D11_VIDEO_COLOR *color 2765 ); 2766 void VideoProcessorGetOutputColorSpace( 2767 [in] ID3D11VideoProcessor *processor, 2768 [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space 2769 ); 2770 void VideoProcessorGetOutputAlphaFillMode( 2771 [in] ID3D11VideoProcessor *processor, 2772 [out] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode, 2773 [out] UINT *stream_idx 2774 ); 2775 void VideoProcessorGetOutputConstriction( 2776 [in] ID3D11VideoProcessor *processor, 2777 [out] BOOL *enabled, 2778 [out] SIZE *size 2779 ); 2780 void VideoProcessorGetOutputStereoMode( 2781 [in] ID3D11VideoProcessor *processor, 2782 [out] BOOL *enabled 2783 ); 2784 HRESULT VideoProcessorGetOutputExtension( 2785 [in] ID3D11VideoProcessor *processor, 2786 [in] const GUID *guid, 2787 [in] UINT data_size, 2788 [out] void *data 2789 ); 2790 void VideoProcessorSetStreamFrameFormat( 2791 [in] ID3D11VideoProcessor *processor, 2792 [in] UINT stream_idx, 2793 [in] D3D11_VIDEO_FRAME_FORMAT format 2794 ); 2795 void VideoProcessorSetStreamColorSpace( 2796 [in] ID3D11VideoProcessor *processor, 2797 [in] UINT stream_idx, 2798 [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space 2799 ); 2800 void VideoProcessorSetStreamOutputRate( 2801 [in] ID3D11VideoProcessor *processor, 2802 [in] UINT stream_idx, 2803 [in] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate, 2804 [in] BOOL repeat, 2805 [in] const DXGI_RATIONAL *custom_rate 2806 ); 2807 void VideoProcessorSetStreamSourceRect( 2808 [in] ID3D11VideoProcessor *processor, 2809 [in] UINT stream_idx, 2810 [in] BOOL enable, 2811 [in] const RECT *rect 2812 ); 2813 void VideoProcessorSetStreamDestRect( 2814 [in] ID3D11VideoProcessor *processor, 2815 [in] UINT stream_idx, 2816 [in] BOOL enable, 2817 [in] const RECT *rect 2818 ); 2819 void VideoProcessorSetStreamAlpha( 2820 [in] ID3D11VideoProcessor *processor, 2821 [in] UINT stream_idx, 2822 [in] BOOL enable, 2823 [in] float alpha 2824 ); 2825 void VideoProcessorSetStreamPalette( 2826 [in] ID3D11VideoProcessor *processor, 2827 [in] UINT stream_idx, 2828 [in] UINT entry_count, 2829 [in] const UINT *entries 2830 ); 2831 void VideoProcessorSetStreamPixelAspectRatio( 2832 [in] ID3D11VideoProcessor *processor, 2833 [in] UINT stream_idx, 2834 [in] BOOL enable, 2835 [in] const DXGI_RATIONAL *src_aspect_ratio, 2836 [in] const DXGI_RATIONAL *dst_aspect_ratio 2837 ); 2838 void VideoProcessorSetStreamLumaKey( 2839 [in] ID3D11VideoProcessor *processor, 2840 [in] UINT stream_idx, 2841 [in] BOOL enable, 2842 [in] float lower, 2843 [in] float upper 2844 ); 2845 void VideoProcessorSetStreamStereoFormat( 2846 [in] ID3D11VideoProcessor *processor, 2847 [in] UINT stream_idx, 2848 [in] BOOL enable, 2849 [in] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format, 2850 [in] BOOL left_view_frame0, 2851 [in] BOOL base_view_frame0, 2852 [in] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode, 2853 [in] int mono_offset 2854 ); 2855 void VideoProcessorSetStreamAutoProcessingMode( 2856 [in] ID3D11VideoProcessor *processor, 2857 [in] UINT stream_idx, 2858 [in] BOOL enable 2859 ); 2860 void VideoProcessorSetStreamFilter( 2861 [in] ID3D11VideoProcessor *processor, 2862 [in] UINT stream_idx, 2863 [in] D3D11_VIDEO_PROCESSOR_FILTER filter, 2864 [in] BOOL enable, 2865 [in] int level 2866 ); 2867 HRESULT VideoProcessorSetStreamExtension( 2868 [in] ID3D11VideoProcessor *processor, 2869 [in] UINT stream_idx, 2870 [in] const GUID *guid, 2871 [in] UINT data_size, 2872 [in] void *data 2873 ); 2874 void VideoProcessorGetStreamFrameFormat( 2875 [in] ID3D11VideoProcessor *processor, 2876 [in] UINT stream_idx, 2877 [out] D3D11_VIDEO_FRAME_FORMAT *format 2878 ); 2879 void VideoProcessorGetStreamColorSpace( 2880 [in] ID3D11VideoProcessor *processor, 2881 [in] UINT stream_idx, 2882 [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space 2883 ); 2884 void VideoProcessorGetStreamOutputRate( 2885 [in] ID3D11VideoProcessor *processor, 2886 [in] UINT stream_idx, 2887 [out] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate, 2888 [out] BOOL *repeat, 2889 [out] DXGI_RATIONAL *custom_rate 2890 ); 2891 void VideoProcessorGetStreamSourceRect( 2892 [in] ID3D11VideoProcessor *processor, 2893 [in] UINT stream_idx, 2894 [out] BOOL *enabled, 2895 [out] RECT *rect 2896 ); 2897 void VideoProcessorGetStreamDestRect( 2898 [in] ID3D11VideoProcessor *processor, 2899 [in] UINT stream_idx, 2900 [out] BOOL *enabled, 2901 [out] RECT *rect 2902 ); 2903 void VideoProcessorGetStreamAlpha( 2904 [in] ID3D11VideoProcessor *processor, 2905 [in] UINT stream_idx, 2906 [out] BOOL *enabled, 2907 [out] float *alpha 2908 ); 2909 void VideoProcessorGetStreamPalette( 2910 [in] ID3D11VideoProcessor *processor, 2911 [in] UINT stream_idx, 2912 [in] UINT entry_count, 2913 [out] UINT *entries 2914 ); 2915 void VideoProcessorGetStreamPixelAspectRatio( 2916 [in] ID3D11VideoProcessor *processor, 2917 [in] UINT stream_idx, 2918 [out] BOOL *enabled, 2919 [out] DXGI_RATIONAL *src_aspect_ratio, 2920 [out] DXGI_RATIONAL *dst_aspect_ratio 2921 ); 2922 void VideoProcessorGetStreamLumaKey( 2923 [in] ID3D11VideoProcessor *processor, 2924 [in] UINT stream_idx, 2925 [out] BOOL *enabled, 2926 [out] float *lower, 2927 [out] float *upper 2928 ); 2929 void VideoProcessorGetStreamStereoFormat( 2930 [in] ID3D11VideoProcessor *processor, 2931 [in] UINT stream_idx, 2932 [out] BOOL *enabled, 2933 [out] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format, 2934 [out] BOOL *left_view_frame0, 2935 [out] BOOL *base_view_frame0, 2936 [out] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode, 2937 [out] int *mono_offset 2938 ); 2939 void VideoProcessorGetStreamAutoProcessingMode( 2940 [in] ID3D11VideoProcessor *processor, 2941 [in] UINT stream_idx, 2942 [out] BOOL *enabled 2943 ); 2944 void VideoProcessorGetStreamFilter( 2945 [in] ID3D11VideoProcessor *processor, 2946 [in] UINT stream_idx, 2947 [in] D3D11_VIDEO_PROCESSOR_FILTER filter, 2948 [out] BOOL *enabled, 2949 [out] int *level 2950 ); 2951 HRESULT VideoProcessorGetStreamExtension( 2952 [in] ID3D11VideoProcessor *processor, 2953 [in] UINT stream_idx, 2954 [in] const GUID *guid, 2955 [in] UINT data_size, 2956 [out] void *data 2957 ); 2958 HRESULT VideoProcessorBlt( 2959 [in] ID3D11VideoProcessor *processor, 2960 [in] ID3D11VideoProcessorOutputView *view, 2961 [in] UINT frame_idx, 2962 [in] UINT stream_count, 2963 [in] const D3D11_VIDEO_PROCESSOR_STREAM *streams 2964 ); 2965 HRESULT NegotiateCryptoSessionKeyExchange( 2966 [in] ID3D11CryptoSession *session, 2967 [in] UINT data_size, 2968 [in, out] void *data 2969 ); 2970 void EncryptionBlt( 2971 [in] ID3D11CryptoSession *session, 2972 [in] ID3D11Texture2D *src_surface, 2973 [in] ID3D11Texture2D *dst_surface, 2974 [in] UINT iv_size, 2975 [in, out] void *iv 2976 ); 2977 void DecryptionBlt( 2978 [in] ID3D11CryptoSession *session, 2979 [in] ID3D11Texture2D *src_surface, 2980 [in] ID3D11Texture2D *dst_surface, 2981 [in] D3D11_ENCRYPTED_BLOCK_INFO *block_info, 2982 [in] UINT key_size, 2983 [in] const void *key, 2984 [in] UINT iv_size, 2985 [in, out] void *iv 2986 ); 2987 void StartSessionKeyRefresh( 2988 [in] ID3D11CryptoSession *session, 2989 [in] UINT random_number_size, 2990 [out] void *random_number 2991 ); 2992 void FinishSessionKeyRefresh( 2993 [in] ID3D11CryptoSession *session 2994 ); 2995 HRESULT GetEncryptionBltKey( 2996 [in] ID3D11CryptoSession *session, 2997 [in] UINT key_size, 2998 [out] void *key 2999 ); 3000 HRESULT NegotiateAuthenticatedChannelKeyExchange( 3001 [in] ID3D11AuthenticatedChannel *channel, 3002 [in] UINT data_size, 3003 [in, out] void *data 3004 ); 3005 HRESULT QueryAuthenticatedChannel( 3006 [in] ID3D11AuthenticatedChannel *channel, 3007 [in] UINT input_size, 3008 [in] const void *input, 3009 [in] UINT output_size, 3010 [out] void *output 3011 ); 3012 HRESULT ConfigureAuthenticatedChannel( 3013 [in] ID3D11AuthenticatedChannel *channel, 3014 [in] UINT input_size, 3015 [in] const void *input, 3016 [out] D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output 3017 ); 3018 void VideoProcessorSetStreamRotation( 3019 [in] ID3D11VideoProcessor *processor, 3020 [in] UINT stream_idx, 3021 [in] BOOL enable, 3022 [in] D3D11_VIDEO_PROCESSOR_ROTATION rotation 3023 ); 3024 void VideoProcessorGetStreamRotation( 3025 [in] ID3D11VideoProcessor *processor, 3026 [in] UINT stream_idx, 3027 [out] BOOL *enable, 3028 [out] D3D11_VIDEO_PROCESSOR_ROTATION *rotation 3029 ); 3030 } 3031 3032 [ 3033 object, 3034 local, 3035 uuid(db6f6ddb-ac77-4e88-8253-819df9bbf140) 3036 ] 3037 interface ID3D11Device : IUnknown 3038 { 3039 HRESULT CreateBuffer( 3040 [in] const D3D11_BUFFER_DESC *pDesc, 3041 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 3042 [out] ID3D11Buffer **ppBuffer); 3043 HRESULT CreateTexture1D( 3044 [in] const D3D11_TEXTURE1D_DESC *pDesc, 3045 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 3046 [out] ID3D11Texture1D **ppTexture1D); 3047 HRESULT CreateTexture2D( 3048 [in] const D3D11_TEXTURE2D_DESC *pDesc, 3049 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 3050 [out] ID3D11Texture2D **ppTexture2D); 3051 HRESULT CreateTexture3D( 3052 [in] const D3D11_TEXTURE3D_DESC *pDesc, 3053 [in] const D3D11_SUBRESOURCE_DATA *pInitialData, 3054 [out] ID3D11Texture3D **ppTexture3D); 3055 HRESULT CreateShaderResourceView( 3056 [in] ID3D11Resource *pResource, 3057 [in] const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc, 3058 [out] ID3D11ShaderResourceView **ppSRView); 3059 HRESULT CreateUnorderedAccessView( 3060 [in] ID3D11Resource *pResource, 3061 [in] const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc, 3062 [out] ID3D11UnorderedAccessView **ppUAView); 3063 HRESULT CreateRenderTargetView( 3064 [in] ID3D11Resource *pResource, 3065 [in] const D3D11_RENDER_TARGET_VIEW_DESC *pDesc, 3066 [out] ID3D11RenderTargetView **ppRTView); 3067 HRESULT CreateDepthStencilView( 3068 [in] ID3D11Resource *pResource, 3069 [in] const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc, 3070 [out] ID3D11DepthStencilView **ppDepthStencilView); 3071 HRESULT CreateInputLayout( 3072 [in] const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs, 3073 [in] UINT NumElements, 3074 [in] const void *pShaderBytecodeWithInputSignature, 3075 [in] SIZE_T BytecodeLength, 3076 [out] ID3D11InputLayout **ppInputLayout); 3077 HRESULT CreateVertexShader( 3078 [in] const void *pShaderBytecode, 3079 [in] SIZE_T BytecodeLength, 3080 [in] ID3D11ClassLinkage *pClassLinkage, 3081 [out] ID3D11VertexShader **ppVertexShader); 3082 HRESULT CreateGeometryShader( 3083 [in] const void *pShaderBytecode, 3084 [in] SIZE_T BytecodeLength, 3085 [in] ID3D11ClassLinkage *pClassLinkage, 3086 [out] ID3D11GeometryShader **ppGeometryShader); 3087 HRESULT CreateGeometryShaderWithStreamOutput( 3088 [in] const void *pShaderBytecode, 3089 [in] SIZE_T BytecodeLength, 3090 [in] const D3D11_SO_DECLARATION_ENTRY *pSODeclaration, 3091 [in] UINT NumEntries, 3092 [in] const UINT *pBufferStrides, 3093 [in] UINT NumStrides, 3094 [in] UINT RasterizedStream, 3095 [in] ID3D11ClassLinkage *pClassLinkage, 3096 [out] ID3D11GeometryShader **ppGeometryShader); 3097 HRESULT CreatePixelShader( 3098 [in] const void *pShaderBytecode, 3099 [in] SIZE_T BytecodeLength, 3100 [in] ID3D11ClassLinkage *pClassLinkage, 3101 [out] ID3D11PixelShader **ppPixelShader); 3102 HRESULT CreateHullShader( 3103 [in] const void *pShaderBytecode, 3104 [in] SIZE_T BytecodeLength, 3105 [in] ID3D11ClassLinkage *pClassLinkage, 3106 [out] ID3D11HullShader **ppHullShader); 3107 HRESULT CreateDomainShader( 3108 [in] const void *pShaderBytecode, 3109 [in] SIZE_T BytecodeLength, 3110 [in] ID3D11ClassLinkage *pClassLinkage, 3111 [out] ID3D11DomainShader **ppDomainShader); 3112 HRESULT CreateComputeShader( 3113 [in] const void *pShaderBytecode, 3114 [in] SIZE_T BytecodeLength, 3115 [in] ID3D11ClassLinkage *pClassLinkage, 3116 [out] ID3D11ComputeShader **ppComputeShader); 3117 HRESULT CreateClassLinkage( 3118 [out] ID3D11ClassLinkage **ppLinkage); 3119 HRESULT CreateBlendState( 3120 [in] const D3D11_BLEND_DESC *pBlendStateDesc, 3121 [out] ID3D11BlendState **ppBlendState); 3122 HRESULT CreateDepthStencilState( 3123 [in] const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc, 3124 [out] ID3D11DepthStencilState **ppDepthStencilState); 3125 HRESULT CreateRasterizerState( 3126 [in] const D3D11_RASTERIZER_DESC *pRasterizerDesc, 3127 [out] ID3D11RasterizerState **ppRasterizerState); 3128 HRESULT CreateSamplerState( 3129 [in] const D3D11_SAMPLER_DESC *pSamplerDesc, 3130 [out] ID3D11SamplerState **ppSamplerState); 3131 HRESULT CreateQuery( 3132 [in] const D3D11_QUERY_DESC *pQueryDesc, 3133 [out] ID3D11Query **ppQuery); 3134 HRESULT CreatePredicate( 3135 [in] const D3D11_QUERY_DESC *pPredicateDesc, 3136 [out] ID3D11Predicate **ppPredicate); 3137 HRESULT CreateCounter( 3138 [in] const D3D11_COUNTER_DESC *pCounterDesc, 3139 [out] ID3D11Counter **ppCounter); 3140 HRESULT CreateDeferredContext( 3141 UINT ContextFlags, 3142 [out] ID3D11DeviceContext **ppDeferredContext); 3143 HRESULT OpenSharedResource( 3144 [in] HANDLE hResource, 3145 [in] REFIID ReturnedInterface, 3146 [out] void **ppResource); 3147 HRESULT CheckFormatSupport( 3148 [in] DXGI_FORMAT Format, 3149 [out] UINT *pFormatSupport); 3150 HRESULT CheckMultisampleQualityLevels( 3151 [in] DXGI_FORMAT Format, 3152 [in] UINT SampleCount, 3153 [out] UINT *pNumQualityLevels); 3154 void CheckCounterInfo( 3155 [out] D3D11_COUNTER_INFO *pCounterInfo); 3156 HRESULT CheckCounter( 3157 [in] const D3D11_COUNTER_DESC *pDesc, 3158 [out] D3D11_COUNTER_TYPE *pType, 3159 [out] UINT *pActiveCounters, 3160 [out] LPSTR szName, 3161 [in, out] UINT *pNameLength, 3162 [out] LPSTR szUnits, 3163 [in, out] UINT *pUnitsLength, 3164 [out] LPSTR szDescription, 3165 [in, out] UINT *pDescriptionLength); 3166 HRESULT CheckFeatureSupport( 3167 D3D11_FEATURE Feature, 3168 [out] void *pFeatureSupportData, 3169 UINT FeatureSupportDataSize); 3170 HRESULT GetPrivateData( 3171 [in] REFGUID guid, 3172 [in, out] UINT *pDataSize, 3173 [out] void *pData); 3174 HRESULT SetPrivateData( 3175 [in] REFGUID guid, 3176 [in] UINT DataSize, 3177 [in] const void *pData); 3178 HRESULT SetPrivateDataInterface( 3179 [in] REFGUID guid, 3180 [in] const IUnknown *pData); 3181 D3D_FEATURE_LEVEL GetFeatureLevel(); 3182 UINT GetCreationFlags(); 3183 HRESULT GetDeviceRemovedReason(); 3184 void GetImmediateContext( 3185 [out] ID3D11DeviceContext **ppImmediateContext); 3186 HRESULT SetExceptionMode(UINT RaiseFlags); 3187 UINT GetExceptionMode(); 3188 } 3189 3190 typedef enum D3D11_CREATE_DEVICE_FLAG { 3191 D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, 3192 D3D11_CREATE_DEVICE_DEBUG = 0x0002, 3193 D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x0004, 3194 D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x0008, 3195 D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x0020, 3196 D3D11_CREATE_DEVICE_DEBUGGABLE = 0x0040, 3197 D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x0080, 3198 D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x0100, 3199 D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x0800 3200 } D3D11_CREATE_DEVICE_FLAG; 3201 3202 const UINT D3D11_SDK_VERSION = 7; 3203 3204 cpp_quote("#include <d3d10_1.h>") 3205 cpp_quote("#ifndef D3D11_IGNORE_SDK_LAYERS") 3206 cpp_quote("# include <d3d11sdklayers.h>") 3207 cpp_quote("#endif") 3208 cpp_quote("#include <d3d10misc.h>") 3209 cpp_quote("#include <d3d10shader.h>") 3210 cpp_quote("#include <d3d10effect.h>") 3211 cpp_quote("#include <d3d10_1shader.h>") 3212 3213 cpp_quote("typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") 3214 cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") 3215 3216 cpp_quote("HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,const D3D_FEATURE_LEVEL*," ) 3217 cpp_quote(" UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") 3218 3219 cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,") 3220 cpp_quote(" const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,") 3221 cpp_quote(" D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);") 3222 3223 [local] HRESULT __stdcall D3D11CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D_DRIVER_TYPE driver_type, 3224 HMODULE swrast, UINT flags, const D3D_FEATURE_LEVEL *feature_levels, UINT levels, UINT sdk_version, 3225 const DXGI_SWAP_CHAIN_DESC *swapchain_desc, IDXGISwapChain **swapchain, ID3D11Device **device, 3226 D3D_FEATURE_LEVEL *obtained_feature_level, ID3D11DeviceContext **immediate_context); 3227