[1166] | 1 | /*
|
---|
| 2 | * Copyright 2016 Józef Kucia for CodeWeavers
|
---|
| 3 | *
|
---|
| 4 | * This library is free software; you can redistribute it and/or
|
---|
| 5 | * modify it under the terms of the GNU Lesser General Public
|
---|
| 6 | * License as published by the Free Software Foundation; either
|
---|
| 7 | * version 2.1 of the License, or (at your option) any later version.
|
---|
| 8 | *
|
---|
| 9 | * This library is distributed in the hope that it will be useful,
|
---|
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
| 12 | * Lesser General Public License for more details.
|
---|
| 13 | *
|
---|
| 14 | * You should have received a copy of the GNU Lesser General Public
|
---|
| 15 | * License along with this library; if not, write to the Free Software
|
---|
| 16 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
---|
| 17 | */
|
---|
| 18 |
|
---|
| 19 | import "oaidl.idl";
|
---|
| 20 | import "ocidl.idl";
|
---|
| 21 | import "dxgi.idl";
|
---|
| 22 | import "d3dcommon.idl";
|
---|
| 23 |
|
---|
| 24 | cpp_quote("#ifndef _D3D12_CONSTANTS")
|
---|
| 25 | cpp_quote("#define _D3D12_CONSTANTS")
|
---|
| 26 |
|
---|
| 27 | const UINT D3D12_CS_TGSM_REGISTER_COUNT = 8192;
|
---|
| 28 | const UINT D3D12_MAX_ROOT_COST = 64;
|
---|
| 29 | const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767;
|
---|
| 30 | const UINT D3D12_VIEWPORT_BOUNDS_MIN = -32768;
|
---|
| 31 |
|
---|
| 32 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
|
---|
| 33 |
|
---|
| 34 | const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff;
|
---|
| 35 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)")
|
---|
| 36 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)")
|
---|
| 37 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_GREEN (1.0f)")
|
---|
| 38 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_RED (1.0f)")
|
---|
| 39 | const UINT D3D12_DEFAULT_DEPTH_BIAS = 0;
|
---|
| 40 | cpp_quote("#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP (0.0f)")
|
---|
| 41 | cpp_quote("#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.0f)")
|
---|
| 42 | const UINT D3D12_DEFAULT_STENCIL_READ_MASK = 0xff;
|
---|
| 43 | const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff;
|
---|
| 44 | const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff;
|
---|
| 45 | cpp_quote("#define D3D12_FLOAT32_MAX (3.402823466e+38f)")
|
---|
| 46 | const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
|
---|
| 47 | const UINT D3D12_UAV_SLOT_COUNT = 64;
|
---|
| 48 | const UINT D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
|
---|
| 49 | const UINT D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
|
---|
| 50 | const UINT D3D12_REQ_MIP_LEVELS = 15;
|
---|
| 51 | const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048;
|
---|
| 52 | const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384;
|
---|
| 53 | const UINT D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048;
|
---|
| 54 | const UINT D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384;
|
---|
| 55 | const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
|
---|
| 56 | const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384;
|
---|
| 57 | const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff;
|
---|
| 58 | const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
|
---|
| 59 | const UINT D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
|
---|
| 60 | const UINT D3D12_SO_BUFFER_SLOT_COUNT = 4;
|
---|
| 61 | const UINT D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff;
|
---|
| 62 | const UINT D3D12_SO_NO_RASTERIZED_STREAM = 0xffffffff;
|
---|
| 63 | const UINT D3D12_SO_OUTPUT_COMPONENT_COUNT = 128;
|
---|
| 64 | const UINT D3D12_SO_STREAM_COUNT = 4;
|
---|
| 65 | const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256;
|
---|
| 66 | const UINT D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304;
|
---|
| 67 | const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
|
---|
| 68 | const UINT D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16;
|
---|
| 69 | const UINT D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
|
---|
| 70 | const UINT D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096;
|
---|
| 71 | const UINT D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
|
---|
| 72 | const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256;
|
---|
| 73 | const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512;
|
---|
| 74 | const UINT D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096;
|
---|
| 75 | const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32;
|
---|
| 76 | const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
|
---|
| 77 |
|
---|
| 78 | cpp_quote("#endif")
|
---|
| 79 |
|
---|
| 80 | const UINT D3D12_SHADER_COMPONENT_MAPPING_MASK = 0x7;
|
---|
| 81 | const UINT D3D12_SHADER_COMPONENT_MAPPING_SHIFT = 3;
|
---|
| 82 | const UINT D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES
|
---|
| 83 | = 1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4);
|
---|
| 84 |
|
---|
| 85 | typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT
|
---|
| 86 | {
|
---|
| 87 | D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0,
|
---|
| 88 | D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
|
---|
| 89 | D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2,
|
---|
| 90 | } D3D12_SHADER_MIN_PRECISION_SUPPORT;
|
---|
| 91 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_MIN_PRECISION_SUPPORT);")
|
---|
| 92 |
|
---|
| 93 | typedef enum D3D12_TILED_RESOURCES_TIER
|
---|
| 94 | {
|
---|
| 95 | D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
|
---|
| 96 | D3D12_TILED_RESOURCES_TIER_1 = 1,
|
---|
| 97 | D3D12_TILED_RESOURCES_TIER_2 = 2,
|
---|
| 98 | D3D12_TILED_RESOURCES_TIER_3 = 3,
|
---|
| 99 | } D3D12_TILED_RESOURCES_TIER;
|
---|
| 100 |
|
---|
| 101 | typedef enum D3D12_RESOURCE_BINDING_TIER
|
---|
| 102 | {
|
---|
| 103 | D3D12_RESOURCE_BINDING_TIER_1 = 1,
|
---|
| 104 | D3D12_RESOURCE_BINDING_TIER_2 = 2,
|
---|
| 105 | D3D12_RESOURCE_BINDING_TIER_3 = 3,
|
---|
| 106 | } D3D12_RESOURCE_BINDING_TIER;
|
---|
| 107 |
|
---|
| 108 | typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
|
---|
| 109 | {
|
---|
| 110 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
|
---|
| 111 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
|
---|
| 112 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
|
---|
| 113 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3,
|
---|
| 114 | } D3D12_CONSERVATIVE_RASTERIZATION_TIER;
|
---|
| 115 |
|
---|
| 116 | typedef enum D3D12_CROSS_NODE_SHARING_TIER
|
---|
| 117 | {
|
---|
| 118 | D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
|
---|
| 119 | D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
|
---|
| 120 | D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
|
---|
| 121 | D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
|
---|
| 122 | } D3D12_CROSS_NODE_SHARING_TIER;
|
---|
| 123 |
|
---|
| 124 | typedef enum D3D12_RESOURCE_HEAP_TIER
|
---|
| 125 | {
|
---|
| 126 | D3D12_RESOURCE_HEAP_TIER_1 = 1,
|
---|
| 127 | D3D12_RESOURCE_HEAP_TIER_2 = 2,
|
---|
| 128 | } D3D12_RESOURCE_HEAP_TIER;
|
---|
| 129 |
|
---|
| 130 | typedef enum D3D12_FORMAT_SUPPORT1
|
---|
| 131 | {
|
---|
| 132 | D3D12_FORMAT_SUPPORT1_NONE = 0x00000000,
|
---|
| 133 | D3D12_FORMAT_SUPPORT1_BUFFER = 0x00000001,
|
---|
| 134 | D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x00000002,
|
---|
| 135 | D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x00000004,
|
---|
| 136 | D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x00000008,
|
---|
| 137 | D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x00000010,
|
---|
| 138 | D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x00000020,
|
---|
| 139 | D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x00000040,
|
---|
| 140 | D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x00000080,
|
---|
| 141 | D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x00000100,
|
---|
| 142 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x00000200,
|
---|
| 143 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x00000400,
|
---|
| 144 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x00000800,
|
---|
| 145 | D3D12_FORMAT_SUPPORT1_MIP = 0x00001000,
|
---|
| 146 | D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x00004000,
|
---|
| 147 | D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x00008000,
|
---|
| 148 | D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x00010000,
|
---|
| 149 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x00040000,
|
---|
| 150 | D3D12_FORMAT_SUPPORT1_DISPLAY = 0x00080000,
|
---|
| 151 | D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x00100000,
|
---|
| 152 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x00200000,
|
---|
| 153 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x00400000,
|
---|
| 154 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x00800000,
|
---|
| 155 | D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x01000000,
|
---|
| 156 | D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x02000000,
|
---|
| 157 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x04000000,
|
---|
| 158 | D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x08000000,
|
---|
| 159 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
|
---|
| 160 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
|
---|
| 161 | D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000,
|
---|
| 162 | } D3D12_FORMAT_SUPPORT1;
|
---|
| 163 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT1);")
|
---|
| 164 |
|
---|
| 165 | typedef enum D3D12_FORMAT_SUPPORT2
|
---|
| 166 | {
|
---|
| 167 | D3D12_FORMAT_SUPPORT2_NONE = 0x00000000,
|
---|
| 168 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x00000001,
|
---|
| 169 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x00000002,
|
---|
| 170 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x00000004,
|
---|
| 171 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x00000008,
|
---|
| 172 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x00000010,
|
---|
| 173 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x00000020,
|
---|
| 174 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x00000040,
|
---|
| 175 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x00000080,
|
---|
| 176 | D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x00000100,
|
---|
| 177 | D3D12_FORMAT_SUPPORT2_TILED = 0x00000200,
|
---|
| 178 | D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000,
|
---|
| 179 | } D3D12_FORMAT_SUPPORT2;
|
---|
| 180 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2);")
|
---|
| 181 |
|
---|
| 182 | typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE
|
---|
| 183 | {
|
---|
| 184 | D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
|
---|
| 185 | D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
|
---|
| 186 | D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2,
|
---|
| 187 | } D3D12_WRITEBUFFERIMMEDIATE_MODE;
|
---|
| 188 |
|
---|
| 189 | typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER
|
---|
| 190 | {
|
---|
| 191 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0,
|
---|
| 192 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1,
|
---|
| 193 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2,
|
---|
| 194 | } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
|
---|
| 195 |
|
---|
| 196 | typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS
|
---|
| 197 | {
|
---|
| 198 | D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
|
---|
| 199 | D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
|
---|
| 200 | D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
|
---|
| 201 | D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
|
---|
| 202 | D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8,
|
---|
| 203 | } D3D12_SHADER_CACHE_SUPPORT_FLAGS;
|
---|
| 204 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS);")
|
---|
| 205 |
|
---|
| 206 | typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS
|
---|
| 207 | {
|
---|
| 208 | D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
|
---|
| 209 | D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1,
|
---|
| 210 | D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2,
|
---|
| 211 | D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4,
|
---|
| 212 | D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8,
|
---|
| 213 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10,
|
---|
| 214 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20,
|
---|
| 215 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40,
|
---|
| 216 | } D3D12_COMMAND_LIST_SUPPORT_FLAGS;
|
---|
| 217 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_SUPPORT_FLAGS);")
|
---|
| 218 |
|
---|
| 219 | typedef enum D3D12_VIEW_INSTANCING_TIER
|
---|
| 220 | {
|
---|
| 221 | D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0,
|
---|
| 222 | D3D12_VIEW_INSTANCING_TIER_1 = 0x1,
|
---|
| 223 | D3D12_VIEW_INSTANCING_TIER_2 = 0x2,
|
---|
| 224 | D3D12_VIEW_INSTANCING_TIER_3 = 0x3,
|
---|
| 225 | } D3D12_VIEW_INSTANCING_TIER;
|
---|
| 226 |
|
---|
| 227 | typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER
|
---|
| 228 | {
|
---|
| 229 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0,
|
---|
| 230 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1,
|
---|
| 231 | } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
|
---|
| 232 |
|
---|
| 233 | typedef enum D3D12_HEAP_SERIALIZATION_TIER
|
---|
| 234 | {
|
---|
| 235 | D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0,
|
---|
| 236 | D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa,
|
---|
| 237 | } D3D12_HEAP_SERIALIZATION_TIER;
|
---|
| 238 |
|
---|
| 239 | typedef enum D3D12_RENDER_PASS_TIER
|
---|
| 240 | {
|
---|
| 241 | D3D12_RENDER_PASS_TIER_0 = 0x0,
|
---|
| 242 | D3D12_RENDER_PASS_TIER_1 = 0x1,
|
---|
| 243 | D3D12_RENDER_PASS_TIER_2 = 0x2,
|
---|
| 244 | } D3D12_RENDER_PASS_TIER;
|
---|
| 245 |
|
---|
| 246 | typedef enum D3D12_RAYTRACING_TIER
|
---|
| 247 | {
|
---|
| 248 | D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0,
|
---|
| 249 | D3D12_RAYTRACING_TIER_1_0 = 0xa,
|
---|
| 250 | } D3D12_RAYTRACING_TIER;
|
---|
| 251 |
|
---|
| 252 | interface ID3D12Fence;
|
---|
| 253 | interface ID3D12RootSignature;
|
---|
| 254 | interface ID3D12Heap;
|
---|
| 255 | interface ID3D12DescriptorHeap;
|
---|
| 256 | interface ID3D12Resource;
|
---|
| 257 | interface ID3D12CommandAllocator;
|
---|
| 258 | interface ID3D12GraphicsCommandList;
|
---|
| 259 | interface ID3D12CommandQueue;
|
---|
| 260 | interface ID3D12PipelineState;
|
---|
| 261 | interface ID3D12Device;
|
---|
| 262 |
|
---|
| 263 | typedef RECT D3D12_RECT;
|
---|
| 264 |
|
---|
| 265 | typedef struct D3D12_BOX
|
---|
| 266 | {
|
---|
| 267 | UINT left;
|
---|
| 268 | UINT top;
|
---|
| 269 | UINT front;
|
---|
| 270 | UINT right;
|
---|
| 271 | UINT bottom;
|
---|
| 272 | UINT back;
|
---|
| 273 | } D3D12_BOX;
|
---|
| 274 |
|
---|
| 275 | typedef struct D3D12_VIEWPORT
|
---|
| 276 | {
|
---|
| 277 | FLOAT TopLeftX;
|
---|
| 278 | FLOAT TopLeftY;
|
---|
| 279 | FLOAT Width;
|
---|
| 280 | FLOAT Height;
|
---|
| 281 | FLOAT MinDepth;
|
---|
| 282 | FLOAT MaxDepth;
|
---|
| 283 | } D3D12_VIEWPORT;
|
---|
| 284 |
|
---|
| 285 | typedef struct D3D12_RANGE
|
---|
| 286 | {
|
---|
| 287 | SIZE_T Begin;
|
---|
| 288 | SIZE_T End;
|
---|
| 289 | } D3D12_RANGE;
|
---|
| 290 |
|
---|
| 291 | typedef struct D3D12_RANGE_UINT64
|
---|
| 292 | {
|
---|
| 293 | UINT64 Begin;
|
---|
| 294 | UINT64 End;
|
---|
| 295 | } D3D12_RANGE_UINT64;
|
---|
| 296 |
|
---|
| 297 | typedef struct D3D12_SUBRESOURCE_RANGE_UINT64
|
---|
| 298 | {
|
---|
| 299 | UINT Subresource;
|
---|
| 300 | D3D12_RANGE_UINT64 Range;
|
---|
| 301 | } D3D12_SUBRESOURCE_RANGE_UINT64;
|
---|
| 302 |
|
---|
| 303 | typedef struct D3D12_RESOURCE_ALLOCATION_INFO
|
---|
| 304 | {
|
---|
| 305 | UINT64 SizeInBytes;
|
---|
| 306 | UINT64 Alignment;
|
---|
| 307 | } D3D12_RESOURCE_ALLOCATION_INFO;
|
---|
| 308 |
|
---|
| 309 | typedef struct D3D12_DRAW_ARGUMENTS
|
---|
| 310 | {
|
---|
| 311 | UINT VertexCountPerInstance;
|
---|
| 312 | UINT InstanceCount;
|
---|
| 313 | UINT StartVertexLocation;
|
---|
| 314 | UINT StartInstanceLocation;
|
---|
| 315 | } D3D12_DRAW_ARGUMENTS;
|
---|
| 316 |
|
---|
| 317 | typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
|
---|
| 318 | {
|
---|
| 319 | UINT IndexCountPerInstance;
|
---|
| 320 | UINT InstanceCount;
|
---|
| 321 | UINT StartIndexLocation;
|
---|
| 322 | INT BaseVertexLocation;
|
---|
| 323 | UINT StartInstanceLocation;
|
---|
| 324 | } D3D12_DRAW_INDEXED_ARGUMENTS;
|
---|
| 325 |
|
---|
| 326 | typedef struct D3D12_DISPATCH_ARGUMENTS
|
---|
| 327 | {
|
---|
| 328 | UINT ThreadGroupCountX;
|
---|
| 329 | UINT ThreadGroupCountY;
|
---|
| 330 | UINT ThreadGroupCountZ;
|
---|
| 331 | } D3D12_DISPATCH_ARGUMENTS;
|
---|
| 332 |
|
---|
| 333 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
|
---|
| 334 | {
|
---|
| 335 | BOOL DoublePrecisionFloatShaderOps;
|
---|
| 336 | BOOL OutputMergerLogicOp;
|
---|
| 337 | D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
|
---|
| 338 | D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
|
---|
| 339 | D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
|
---|
| 340 | BOOL PSSpecifiedStencilRefSupported;
|
---|
| 341 | BOOL TypedUAVLoadAdditionalFormats;
|
---|
| 342 | BOOL ROVsSupported;
|
---|
| 343 | D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
|
---|
| 344 | UINT MaxGPUVirtualAddressBitsPerResource;
|
---|
| 345 | BOOL StandardSwizzle64KBSupported;
|
---|
| 346 | D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
|
---|
| 347 | BOOL CrossAdapterRowMajorTextureSupported;
|
---|
| 348 | BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
|
---|
| 349 | D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
|
---|
| 350 | } D3D12_FEATURE_DATA_D3D12_OPTIONS;
|
---|
| 351 |
|
---|
| 352 | typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
|
---|
| 353 | {
|
---|
| 354 | DXGI_FORMAT Format;
|
---|
| 355 | D3D12_FORMAT_SUPPORT1 Support1;
|
---|
| 356 | D3D12_FORMAT_SUPPORT2 Support2;
|
---|
| 357 | } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
|
---|
| 358 |
|
---|
| 359 | typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS
|
---|
| 360 | {
|
---|
| 361 | D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x00000000,
|
---|
| 362 | D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x00000001,
|
---|
| 363 | } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
|
---|
| 364 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS);")
|
---|
| 365 |
|
---|
| 366 | typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS
|
---|
| 367 | {
|
---|
| 368 | DXGI_FORMAT Format;
|
---|
| 369 | UINT SampleCount;
|
---|
| 370 | D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
|
---|
| 371 | UINT NumQualityLevels;
|
---|
| 372 | } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
|
---|
| 373 |
|
---|
| 374 | typedef enum D3D12_HEAP_TYPE
|
---|
| 375 | {
|
---|
| 376 | D3D12_HEAP_TYPE_DEFAULT = 1,
|
---|
| 377 | D3D12_HEAP_TYPE_UPLOAD = 2,
|
---|
| 378 | D3D12_HEAP_TYPE_READBACK = 3,
|
---|
| 379 | D3D12_HEAP_TYPE_CUSTOM = 4,
|
---|
| 380 | } D3D12_HEAP_TYPE;
|
---|
| 381 |
|
---|
| 382 | typedef enum D3D12_CPU_PAGE_PROPERTY
|
---|
| 383 | {
|
---|
| 384 | D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
|
---|
| 385 | D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
|
---|
| 386 | D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
|
---|
| 387 | D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3,
|
---|
| 388 | } D3D12_CPU_PAGE_PROPERTY;
|
---|
| 389 |
|
---|
| 390 | typedef enum D3D12_MEMORY_POOL
|
---|
| 391 | {
|
---|
| 392 | D3D12_MEMORY_POOL_UNKNOWN = 0,
|
---|
| 393 | D3D12_MEMORY_POOL_L0 = 1,
|
---|
| 394 | D3D12_MEMORY_POOL_L1 = 2,
|
---|
| 395 | } D3D12_MEMORY_POOL;
|
---|
| 396 |
|
---|
| 397 | typedef struct D3D12_HEAP_PROPERTIES
|
---|
| 398 | {
|
---|
| 399 | D3D12_HEAP_TYPE Type;
|
---|
| 400 | D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
|
---|
| 401 | D3D12_MEMORY_POOL MemoryPoolPreference;
|
---|
| 402 | UINT CreationNodeMask;
|
---|
| 403 | UINT VisibleNodeMask;
|
---|
| 404 | } D3D12_HEAP_PROPERTIES;
|
---|
| 405 |
|
---|
| 406 | typedef enum D3D12_HEAP_FLAGS
|
---|
| 407 | {
|
---|
| 408 | D3D12_HEAP_FLAG_NONE = 0x00,
|
---|
| 409 | D3D12_HEAP_FLAG_SHARED = 0x01,
|
---|
| 410 | D3D12_HEAP_FLAG_DENY_BUFFERS = 0x04,
|
---|
| 411 | D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x08,
|
---|
| 412 | D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
|
---|
| 413 | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
|
---|
| 414 | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
|
---|
| 415 | D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x00,
|
---|
| 416 | D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
|
---|
| 417 | D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
|
---|
| 418 | D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84,
|
---|
| 419 | } D3D12_HEAP_FLAGS;
|
---|
| 420 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_HEAP_FLAGS);")
|
---|
| 421 |
|
---|
| 422 | typedef struct D3D12_HEAP_DESC
|
---|
| 423 | {
|
---|
| 424 | UINT64 SizeInBytes;
|
---|
| 425 | D3D12_HEAP_PROPERTIES Properties;
|
---|
| 426 | UINT64 Alignment;
|
---|
| 427 | D3D12_HEAP_FLAGS Flags;
|
---|
| 428 | } D3D12_HEAP_DESC;
|
---|
| 429 |
|
---|
| 430 | typedef struct D3D12_TILED_RESOURCE_COORDINATE
|
---|
| 431 | {
|
---|
| 432 | UINT X;
|
---|
| 433 | UINT Y;
|
---|
| 434 | UINT Z;
|
---|
| 435 | UINT Subresource;
|
---|
| 436 | } D3D12_TILED_RESOURCE_COORDINATE;
|
---|
| 437 |
|
---|
| 438 | typedef struct D3D12_TILE_REGION_SIZE
|
---|
| 439 | {
|
---|
| 440 | UINT NumTiles;
|
---|
| 441 | BOOL UseBox;
|
---|
| 442 | UINT Width;
|
---|
| 443 | UINT16 Height;
|
---|
| 444 | UINT16 Depth;
|
---|
| 445 | } D3D12_TILE_REGION_SIZE;
|
---|
| 446 |
|
---|
| 447 | typedef struct D3D12_SUBRESOURCE_TILING
|
---|
| 448 | {
|
---|
| 449 | UINT WidthInTiles;
|
---|
| 450 | UINT16 HeightInTiles;
|
---|
| 451 | UINT16 DepthInTiles;
|
---|
| 452 | UINT StartTileIndexInOverallResource;
|
---|
| 453 | } D3D12_SUBRESOURCE_TILING;
|
---|
| 454 |
|
---|
| 455 | typedef struct D3D12_TILE_SHAPE
|
---|
| 456 | {
|
---|
| 457 | UINT WidthInTexels;
|
---|
| 458 | UINT HeightInTexels;
|
---|
| 459 | UINT DepthInTexels;
|
---|
| 460 | } D3D12_TILE_SHAPE;
|
---|
| 461 |
|
---|
| 462 | typedef struct D3D12_SHADER_BYTECODE
|
---|
| 463 | {
|
---|
| 464 | const void *pShaderBytecode;
|
---|
| 465 | SIZE_T BytecodeLength;
|
---|
| 466 | } D3D12_SHADER_BYTECODE;
|
---|
| 467 |
|
---|
| 468 | typedef struct D3D12_DEPTH_STENCIL_VALUE
|
---|
| 469 | {
|
---|
| 470 | FLOAT Depth;
|
---|
| 471 | UINT8 Stencil;
|
---|
| 472 | } D3D12_DEPTH_STENCIL_VALUE;
|
---|
| 473 |
|
---|
| 474 | typedef struct D3D12_CLEAR_VALUE
|
---|
| 475 | {
|
---|
| 476 | DXGI_FORMAT Format;
|
---|
| 477 | union
|
---|
| 478 | {
|
---|
| 479 | FLOAT Color[4];
|
---|
| 480 | D3D12_DEPTH_STENCIL_VALUE DepthStencil;
|
---|
| 481 | };
|
---|
| 482 | } D3D12_CLEAR_VALUE;
|
---|
| 483 |
|
---|
| 484 | typedef struct D3D12_PACKED_MIP_INFO
|
---|
| 485 | {
|
---|
| 486 | UINT8 NumStandardMips;
|
---|
| 487 | UINT8 NumPackedMips;
|
---|
| 488 | UINT NumTilesForPackedMips;
|
---|
| 489 | UINT StartTileIndexInOverallResource;
|
---|
| 490 | } D3D12_PACKED_MIP_INFO;
|
---|
| 491 |
|
---|
| 492 | typedef enum D3D12_RESOURCE_STATES
|
---|
| 493 | {
|
---|
| 494 | D3D12_RESOURCE_STATE_COMMON = 0,
|
---|
| 495 | D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
|
---|
| 496 | D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
|
---|
| 497 | D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
|
---|
| 498 | D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
|
---|
| 499 | D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
|
---|
| 500 | D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
|
---|
| 501 | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
|
---|
| 502 | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
|
---|
| 503 | D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
|
---|
| 504 | D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
|
---|
| 505 | D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
|
---|
| 506 | D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
|
---|
| 507 | D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
|
---|
| 508 | D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
|
---|
| 509 | D3D12_RESOURCE_STATE_GENERIC_READ = 0x1 | 0x2 | 0x40 | 0x80 | 0x200 | 0x800,
|
---|
| 510 | D3D12_RESOURCE_STATE_PRESENT = 0x0,
|
---|
| 511 | D3D12_RESOURCE_STATE_PREDICATION = 0x200,
|
---|
| 512 | D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
|
---|
| 513 | D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
|
---|
| 514 | D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
|
---|
| 515 | D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
|
---|
| 516 | D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
|
---|
| 517 | D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000,
|
---|
| 518 | } D3D12_RESOURCE_STATES;
|
---|
| 519 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES);")
|
---|
| 520 |
|
---|
| 521 | typedef enum D3D12_RESOURCE_BARRIER_TYPE
|
---|
| 522 | {
|
---|
| 523 | D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
|
---|
| 524 | D3D12_RESOURCE_BARRIER_TYPE_ALIASING = 1,
|
---|
| 525 | D3D12_RESOURCE_BARRIER_TYPE_UAV = 2,
|
---|
| 526 | } D3D12_RESOURCE_BARRIER_TYPE;
|
---|
| 527 |
|
---|
| 528 | typedef enum D3D12_RESOURCE_BARRIER_FLAGS
|
---|
| 529 | {
|
---|
| 530 | D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0,
|
---|
| 531 | D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
|
---|
| 532 | D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2,
|
---|
| 533 | } D3D12_RESOURCE_BARRIER_FLAGS;
|
---|
| 534 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_BARRIER_FLAGS);")
|
---|
| 535 |
|
---|
| 536 | typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
|
---|
| 537 | {
|
---|
| 538 | ID3D12Resource *pResource;
|
---|
| 539 | UINT Subresource;
|
---|
| 540 | D3D12_RESOURCE_STATES StateBefore;
|
---|
| 541 | D3D12_RESOURCE_STATES StateAfter;
|
---|
| 542 | } D3D12_RESOURCE_TRANSITION_BARRIER;
|
---|
| 543 |
|
---|
| 544 | typedef struct D3D12_RESOURCE_ALIASING_BARRIER_ALIASING
|
---|
| 545 | {
|
---|
| 546 | ID3D12Resource *pResourceBefore;
|
---|
| 547 | ID3D12Resource *pResourceAfter;
|
---|
| 548 | } D3D12_RESOURCE_ALIASING_BARRIER;
|
---|
| 549 |
|
---|
| 550 | typedef struct D3D12_RESOURCE_UAV_BARRIER
|
---|
| 551 | {
|
---|
| 552 | ID3D12Resource *pResource;
|
---|
| 553 | } D3D12_RESOURCE_UAV_BARRIER;
|
---|
| 554 |
|
---|
| 555 | typedef struct D3D12_RESOURCE_BARRIER
|
---|
| 556 | {
|
---|
| 557 | D3D12_RESOURCE_BARRIER_TYPE Type;
|
---|
| 558 | D3D12_RESOURCE_BARRIER_FLAGS Flags;
|
---|
| 559 | union
|
---|
| 560 | {
|
---|
| 561 | D3D12_RESOURCE_TRANSITION_BARRIER Transition;
|
---|
| 562 | D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
|
---|
| 563 | D3D12_RESOURCE_UAV_BARRIER UAV;
|
---|
| 564 | };
|
---|
| 565 | } D3D12_RESOURCE_BARRIER;
|
---|
| 566 |
|
---|
| 567 | typedef enum D3D12_RESOURCE_DIMENSION
|
---|
| 568 | {
|
---|
| 569 | D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
|
---|
| 570 | D3D12_RESOURCE_DIMENSION_BUFFER = 1,
|
---|
| 571 | D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
|
---|
| 572 | D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
|
---|
| 573 | D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4,
|
---|
| 574 | } D3D12_RESOURCE_DIMENSION;
|
---|
| 575 |
|
---|
| 576 | typedef enum D3D12_TEXTURE_LAYOUT
|
---|
| 577 | {
|
---|
| 578 | D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
|
---|
| 579 | D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
|
---|
| 580 | D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
|
---|
| 581 | D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3,
|
---|
| 582 | } D3D12_TEXTURE_LAYOUT;
|
---|
| 583 |
|
---|
| 584 | typedef enum D3D12_RESOURCE_FLAGS
|
---|
| 585 | {
|
---|
| 586 | D3D12_RESOURCE_FLAG_NONE = 0x0,
|
---|
| 587 | D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
|
---|
| 588 | D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
|
---|
| 589 | D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
|
---|
| 590 | D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
|
---|
| 591 | D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
|
---|
| 592 | D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
|
---|
| 593 | } D3D12_RESOURCE_FLAGS;
|
---|
| 594 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS);")
|
---|
| 595 |
|
---|
| 596 | typedef struct D3D12_RESOURCE_DESC
|
---|
| 597 | {
|
---|
| 598 | D3D12_RESOURCE_DIMENSION Dimension;
|
---|
| 599 | UINT64 Alignment;
|
---|
| 600 | UINT64 Width;
|
---|
| 601 | UINT Height;
|
---|
| 602 | UINT16 DepthOrArraySize;
|
---|
| 603 | UINT16 MipLevels;
|
---|
| 604 | DXGI_FORMAT Format;
|
---|
| 605 | DXGI_SAMPLE_DESC SampleDesc;
|
---|
| 606 | D3D12_TEXTURE_LAYOUT Layout;
|
---|
| 607 | D3D12_RESOURCE_FLAGS Flags;
|
---|
| 608 | } D3D12_RESOURCE_DESC;
|
---|
| 609 |
|
---|
| 610 | typedef enum D3D12_RESOLVE_MODE
|
---|
| 611 | {
|
---|
| 612 | D3D12_RESOLVE_MODE_DECOMPRESS = 0,
|
---|
| 613 | D3D12_RESOLVE_MODE_MIN = 1,
|
---|
| 614 | D3D12_RESOLVE_MODE_MAX = 2,
|
---|
| 615 | D3D12_RESOLVE_MODE_AVERAGE = 3,
|
---|
| 616 | } D3D12_RESOLVE_MODE;
|
---|
| 617 |
|
---|
| 618 | typedef struct D3D12_SAMPLE_POSITION
|
---|
| 619 | {
|
---|
| 620 | INT8 X;
|
---|
| 621 | INT8 Y;
|
---|
| 622 | } D3D12_SAMPLE_POSITION;
|
---|
| 623 |
|
---|
| 624 | typedef enum D3D12_TEXTURE_COPY_TYPE
|
---|
| 625 | {
|
---|
| 626 | D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
|
---|
| 627 | D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1,
|
---|
| 628 | } D3D12_TEXTURE_COPY_TYPE;
|
---|
| 629 |
|
---|
| 630 | typedef struct D3D12_SUBRESOURCE_FOOTPRINT
|
---|
| 631 | {
|
---|
| 632 | DXGI_FORMAT Format;
|
---|
| 633 | UINT Width;
|
---|
| 634 | UINT Height;
|
---|
| 635 | UINT Depth;
|
---|
| 636 | UINT RowPitch;
|
---|
| 637 | } D3D12_SUBRESOURCE_FOOTPRINT;
|
---|
| 638 |
|
---|
| 639 | typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
|
---|
| 640 | {
|
---|
| 641 | UINT64 Offset;
|
---|
| 642 | D3D12_SUBRESOURCE_FOOTPRINT Footprint;
|
---|
| 643 | } D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
|
---|
| 644 |
|
---|
| 645 | typedef struct D3D12_TEXTURE_COPY_LOCATION
|
---|
| 646 | {
|
---|
| 647 | ID3D12Resource *pResource;
|
---|
| 648 | D3D12_TEXTURE_COPY_TYPE Type;
|
---|
| 649 | union
|
---|
| 650 | {
|
---|
| 651 | D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
|
---|
| 652 | UINT SubresourceIndex;
|
---|
| 653 | };
|
---|
| 654 | } D3D12_TEXTURE_COPY_LOCATION;
|
---|
| 655 |
|
---|
| 656 | typedef enum D3D12_DESCRIPTOR_RANGE_TYPE
|
---|
| 657 | {
|
---|
| 658 | D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
|
---|
| 659 | D3D12_DESCRIPTOR_RANGE_TYPE_UAV = 1,
|
---|
| 660 | D3D12_DESCRIPTOR_RANGE_TYPE_CBV = 2,
|
---|
| 661 | D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = 3,
|
---|
| 662 | } D3D12_DESCRIPTOR_RANGE_TYPE;
|
---|
| 663 |
|
---|
| 664 | typedef struct D3D12_DESCRIPTOR_RANGE
|
---|
| 665 | {
|
---|
| 666 | D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
|
---|
| 667 | UINT NumDescriptors;
|
---|
| 668 | UINT BaseShaderRegister;
|
---|
| 669 | UINT RegisterSpace;
|
---|
| 670 | UINT OffsetInDescriptorsFromTableStart;
|
---|
| 671 | } D3D12_DESCRIPTOR_RANGE;
|
---|
| 672 |
|
---|
| 673 | typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS
|
---|
| 674 | {
|
---|
| 675 | D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
|
---|
| 676 | D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
|
---|
| 677 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
|
---|
| 678 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
|
---|
| 679 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
|
---|
| 680 | } D3D12_DESCRIPTOR_RANGE_FLAGS;
|
---|
| 681 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS);")
|
---|
| 682 |
|
---|
| 683 | typedef struct D3D12_DESCRIPTOR_RANGE1
|
---|
| 684 | {
|
---|
| 685 | D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
|
---|
| 686 | UINT NumDescriptors;
|
---|
| 687 | UINT BaseShaderRegister;
|
---|
| 688 | UINT RegisterSpace;
|
---|
| 689 | D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
|
---|
| 690 | UINT OffsetInDescriptorsFromTableStart;
|
---|
| 691 | } D3D12_DESCRIPTOR_RANGE1;
|
---|
| 692 |
|
---|
| 693 | typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
|
---|
| 694 | {
|
---|
| 695 | UINT NumDescriptorRanges;
|
---|
| 696 | const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
|
---|
| 697 | } D3D12_ROOT_DESCRIPTOR_TABLE;
|
---|
| 698 |
|
---|
| 699 | typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
|
---|
| 700 | {
|
---|
| 701 | UINT NumDescriptorRanges;
|
---|
| 702 | const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
|
---|
| 703 | } D3D12_ROOT_DESCRIPTOR_TABLE1;
|
---|
| 704 |
|
---|
| 705 | typedef struct D3D12_ROOT_CONSTANTS
|
---|
| 706 | {
|
---|
| 707 | UINT ShaderRegister;
|
---|
| 708 | UINT RegisterSpace;
|
---|
| 709 | UINT Num32BitValues;
|
---|
| 710 | } D3D12_ROOT_CONSTANTS;
|
---|
| 711 |
|
---|
| 712 | typedef struct D3D12_ROOT_DESCRIPTOR
|
---|
| 713 | {
|
---|
| 714 | UINT ShaderRegister;
|
---|
| 715 | UINT RegisterSpace;
|
---|
| 716 | } D3D12_ROOT_DESCRIPTOR;
|
---|
| 717 |
|
---|
| 718 | typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS
|
---|
| 719 | {
|
---|
| 720 | D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
|
---|
| 721 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
|
---|
| 722 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
|
---|
| 723 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8,
|
---|
| 724 | } D3D12_ROOT_DESCRIPTOR_FLAGS;
|
---|
| 725 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_DESCRIPTOR_FLAGS);")
|
---|
| 726 |
|
---|
| 727 | typedef struct D3D12_ROOT_DESCRIPTOR1
|
---|
| 728 | {
|
---|
| 729 | UINT ShaderRegister;
|
---|
| 730 | UINT RegisterSpace;
|
---|
| 731 | D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
|
---|
| 732 | } D3D12_ROOT_DESCRIPTOR1;
|
---|
| 733 |
|
---|
| 734 | typedef enum D3D12_ROOT_PARAMETER_TYPE
|
---|
| 735 | {
|
---|
| 736 | D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
|
---|
| 737 | D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 1,
|
---|
| 738 | D3D12_ROOT_PARAMETER_TYPE_CBV = 2,
|
---|
| 739 | D3D12_ROOT_PARAMETER_TYPE_SRV = 3,
|
---|
| 740 | D3D12_ROOT_PARAMETER_TYPE_UAV = 4,
|
---|
| 741 | } D3D12_ROOT_PARAMETER_TYPE;
|
---|
| 742 |
|
---|
| 743 | typedef enum D3D12_SHADER_VISIBILITY
|
---|
| 744 | {
|
---|
| 745 | D3D12_SHADER_VISIBILITY_ALL = 0,
|
---|
| 746 | D3D12_SHADER_VISIBILITY_VERTEX = 1,
|
---|
| 747 | D3D12_SHADER_VISIBILITY_HULL = 2,
|
---|
| 748 | D3D12_SHADER_VISIBILITY_DOMAIN = 3,
|
---|
| 749 | D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
|
---|
| 750 | D3D12_SHADER_VISIBILITY_PIXEL = 5,
|
---|
| 751 | } D3D12_SHADER_VISIBILITY;
|
---|
| 752 |
|
---|
| 753 | typedef struct D3D12_ROOT_PARAMETER
|
---|
| 754 | {
|
---|
| 755 | D3D12_ROOT_PARAMETER_TYPE ParameterType;
|
---|
| 756 | union
|
---|
| 757 | {
|
---|
| 758 | D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
|
---|
| 759 | D3D12_ROOT_CONSTANTS Constants;
|
---|
| 760 | D3D12_ROOT_DESCRIPTOR Descriptor;
|
---|
| 761 | };
|
---|
| 762 | D3D12_SHADER_VISIBILITY ShaderVisibility;
|
---|
| 763 | } D3D12_ROOT_PARAMETER;
|
---|
| 764 |
|
---|
| 765 | typedef struct D3D12_ROOT_PARAMETER1
|
---|
| 766 | {
|
---|
| 767 | D3D12_ROOT_PARAMETER_TYPE ParameterType;
|
---|
| 768 | union
|
---|
| 769 | {
|
---|
| 770 | D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
|
---|
| 771 | D3D12_ROOT_CONSTANTS Constants;
|
---|
| 772 | D3D12_ROOT_DESCRIPTOR1 Descriptor;
|
---|
| 773 | };
|
---|
| 774 | D3D12_SHADER_VISIBILITY ShaderVisibility;
|
---|
| 775 | } D3D12_ROOT_PARAMETER1;
|
---|
| 776 |
|
---|
| 777 | typedef enum D3D12_STATIC_BORDER_COLOR
|
---|
| 778 | {
|
---|
| 779 | D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
|
---|
| 780 | D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = 1,
|
---|
| 781 | D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = 2,
|
---|
| 782 | } D3D12_STATIC_BORDER_COLOR;
|
---|
| 783 |
|
---|
| 784 | typedef enum D3D12_FILTER
|
---|
| 785 | {
|
---|
| 786 | D3D12_FILTER_MIN_MAG_MIP_POINT = 0x00,
|
---|
| 787 | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01,
|
---|
| 788 | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04,
|
---|
| 789 | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05,
|
---|
| 790 | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
|
---|
| 791 | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
|
---|
| 792 | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
|
---|
| 793 | D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
|
---|
| 794 | D3D12_FILTER_ANISOTROPIC = 0x55,
|
---|
| 795 | D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
|
---|
| 796 | D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
|
---|
| 797 | D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
|
---|
| 798 | D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
|
---|
| 799 | D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
|
---|
| 800 | D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
|
---|
| 801 | D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
|
---|
| 802 | D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
|
---|
| 803 | D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
|
---|
| 804 | D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
|
---|
| 805 | D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
|
---|
| 806 | D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
|
---|
| 807 | D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
|
---|
| 808 | D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
|
---|
| 809 | D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
|
---|
| 810 | D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
|
---|
| 811 | D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
|
---|
| 812 | D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
|
---|
| 813 | D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
|
---|
| 814 | D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
|
---|
| 815 | D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
|
---|
| 816 | D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
|
---|
| 817 | D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
|
---|
| 818 | D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
|
---|
| 819 | D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
|
---|
| 820 | D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
|
---|
| 821 | D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5,
|
---|
| 822 | } D3D12_FILTER;
|
---|
| 823 |
|
---|
| 824 | typedef enum D3D12_FILTER_TYPE
|
---|
| 825 | {
|
---|
| 826 | D3D12_FILTER_TYPE_POINT = 0,
|
---|
| 827 | D3D12_FILTER_TYPE_LINEAR = 1,
|
---|
| 828 | } D3D12_FILTER_TYPE;
|
---|
| 829 |
|
---|
| 830 | const UINT D3D12_MIP_FILTER_SHIFT = 0;
|
---|
| 831 | const UINT D3D12_MAG_FILTER_SHIFT = 2;
|
---|
| 832 | const UINT D3D12_MIN_FILTER_SHIFT = 4;
|
---|
| 833 | const UINT D3D12_FILTER_TYPE_MASK = 0x3;
|
---|
| 834 |
|
---|
| 835 | const UINT D3D12_ANISOTROPIC_FILTERING_BIT = 0x40;
|
---|
| 836 |
|
---|
| 837 | typedef enum D3D12_FILTER_REDUCTION_TYPE
|
---|
| 838 | {
|
---|
| 839 | D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
|
---|
| 840 | D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
|
---|
| 841 | D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
|
---|
| 842 | D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3,
|
---|
| 843 | } D3D12_FILTER_REDUCTION_TYPE;
|
---|
| 844 |
|
---|
| 845 | const UINT D3D12_FILTER_REDUCTION_TYPE_MASK = 0x3;
|
---|
| 846 | const UINT D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7;
|
---|
| 847 |
|
---|
| 848 | cpp_quote("#define D3D12_DECODE_MAG_FILTER(filter) \\")
|
---|
| 849 | cpp_quote(" ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MAG_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))")
|
---|
| 850 |
|
---|
| 851 | cpp_quote("#define D3D12_DECODE_MIN_FILTER(filter) \\")
|
---|
| 852 | cpp_quote(" ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIN_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))")
|
---|
| 853 |
|
---|
| 854 | cpp_quote("#define D3D12_DECODE_MIP_FILTER(filter) \\")
|
---|
| 855 | cpp_quote(" ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIP_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))")
|
---|
| 856 |
|
---|
| 857 | cpp_quote("#define D3D12_DECODE_IS_ANISOTROPIC_FILTER(filter) \\")
|
---|
| 858 | cpp_quote(" (((filter) & D3D12_ANISOTROPIC_FILTERING_BIT) \\")
|
---|
| 859 | cpp_quote(" && (D3D12_DECODE_MIN_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \\")
|
---|
| 860 | cpp_quote(" && (D3D12_DECODE_MAG_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \\")
|
---|
| 861 | cpp_quote(" && (D3D12_DECODE_MIP_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR))")
|
---|
| 862 |
|
---|
| 863 | cpp_quote("#define D3D12_DECODE_FILTER_REDUCTION(filter) \\")
|
---|
| 864 | cpp_quote(" ((D3D12_FILTER_REDUCTION_TYPE)(((filter) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT) \\")
|
---|
| 865 | cpp_quote(" & D3D12_FILTER_REDUCTION_TYPE_MASK))")
|
---|
| 866 |
|
---|
| 867 | cpp_quote("#define D3D12_DECODE_IS_COMPARISON_FILTER(filter) \\")
|
---|
| 868 | cpp_quote(" (D3D12_DECODE_FILTER_REDUCTION(filter) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON)")
|
---|
| 869 |
|
---|
| 870 | typedef enum D3D12_TEXTURE_ADDRESS_MODE
|
---|
| 871 | {
|
---|
| 872 | D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
|
---|
| 873 | D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
|
---|
| 874 | D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
|
---|
| 875 | D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
|
---|
| 876 | D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5,
|
---|
| 877 | } D3D12_TEXTURE_ADDRESS_MODE;
|
---|
| 878 |
|
---|
| 879 | typedef enum D3D12_COMPARISON_FUNC
|
---|
| 880 | {
|
---|
| 881 | D3D12_COMPARISON_FUNC_NEVER = 1,
|
---|
| 882 | D3D12_COMPARISON_FUNC_LESS = 2,
|
---|
| 883 | D3D12_COMPARISON_FUNC_EQUAL = 3,
|
---|
| 884 | D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
|
---|
| 885 | D3D12_COMPARISON_FUNC_GREATER = 5,
|
---|
| 886 | D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
|
---|
| 887 | D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
|
---|
| 888 | D3D12_COMPARISON_FUNC_ALWAYS = 8,
|
---|
| 889 | } D3D12_COMPARISON_FUNC;
|
---|
| 890 |
|
---|
| 891 | typedef struct D3D12_STATIC_SAMPLER_DESC
|
---|
| 892 | {
|
---|
| 893 | D3D12_FILTER Filter;
|
---|
| 894 | D3D12_TEXTURE_ADDRESS_MODE AddressU;
|
---|
| 895 | D3D12_TEXTURE_ADDRESS_MODE AddressV;
|
---|
| 896 | D3D12_TEXTURE_ADDRESS_MODE AddressW;
|
---|
| 897 | FLOAT MipLODBias;
|
---|
| 898 | UINT MaxAnisotropy;
|
---|
| 899 | D3D12_COMPARISON_FUNC ComparisonFunc;
|
---|
| 900 | D3D12_STATIC_BORDER_COLOR BorderColor;
|
---|
| 901 | FLOAT MinLOD;
|
---|
| 902 | FLOAT MaxLOD;
|
---|
| 903 | UINT ShaderRegister;
|
---|
| 904 | UINT RegisterSpace;
|
---|
| 905 | D3D12_SHADER_VISIBILITY ShaderVisibility;
|
---|
| 906 | } D3D12_STATIC_SAMPLER_DESC;
|
---|
| 907 |
|
---|
| 908 | typedef enum D3D12_ROOT_SIGNATURE_FLAGS
|
---|
| 909 | {
|
---|
| 910 | D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x00,
|
---|
| 911 | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x01,
|
---|
| 912 | D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x02,
|
---|
| 913 | D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x04,
|
---|
| 914 | D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x08,
|
---|
| 915 | D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
|
---|
| 916 | D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
|
---|
| 917 | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
|
---|
| 918 | } D3D12_ROOT_SIGNATURE_FLAGS;
|
---|
| 919 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_SIGNATURE_FLAGS);")
|
---|
| 920 |
|
---|
| 921 | typedef struct D3D12_ROOT_SIGNATURE_DESC
|
---|
| 922 | {
|
---|
| 923 | UINT NumParameters;
|
---|
| 924 | const D3D12_ROOT_PARAMETER *pParameters;
|
---|
| 925 | UINT NumStaticSamplers;
|
---|
| 926 | const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
|
---|
| 927 | D3D12_ROOT_SIGNATURE_FLAGS Flags;
|
---|
| 928 | } D3D12_ROOT_SIGNATURE_DESC;
|
---|
| 929 |
|
---|
| 930 | typedef struct D3D12_ROOT_SIGNATURE_DESC1
|
---|
| 931 | {
|
---|
| 932 | UINT NumParameters;
|
---|
| 933 | const D3D12_ROOT_PARAMETER1 *pParameters;
|
---|
| 934 | UINT NumStaticSamplers;
|
---|
| 935 | const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
|
---|
| 936 | D3D12_ROOT_SIGNATURE_FLAGS Flags;
|
---|
| 937 | } D3D12_ROOT_SIGNATURE_DESC1;
|
---|
| 938 |
|
---|
| 939 | typedef enum D3D_ROOT_SIGNATURE_VERSION
|
---|
| 940 | {
|
---|
| 941 | D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
|
---|
| 942 | D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
|
---|
| 943 | D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
|
---|
| 944 | } D3D_ROOT_SIGNATURE_VERSION;
|
---|
| 945 |
|
---|
| 946 | typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
|
---|
| 947 | {
|
---|
| 948 | D3D_ROOT_SIGNATURE_VERSION Version;
|
---|
| 949 | union
|
---|
| 950 | {
|
---|
| 951 | D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
|
---|
| 952 | D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
|
---|
| 953 | };
|
---|
| 954 | } D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
|
---|
| 955 |
|
---|
| 956 | typedef enum D3D12_DESCRIPTOR_HEAP_TYPE
|
---|
| 957 | {
|
---|
| 958 | D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV,
|
---|
| 959 | D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER,
|
---|
| 960 | D3D12_DESCRIPTOR_HEAP_TYPE_RTV,
|
---|
| 961 | D3D12_DESCRIPTOR_HEAP_TYPE_DSV,
|
---|
| 962 | D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES,
|
---|
| 963 | } D3D12_DESCRIPTOR_HEAP_TYPE;
|
---|
| 964 |
|
---|
| 965 | typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS
|
---|
| 966 | {
|
---|
| 967 | D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
|
---|
| 968 | D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1,
|
---|
| 969 | } D3D12_DESCRIPTOR_HEAP_FLAGS;
|
---|
| 970 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_HEAP_FLAGS);")
|
---|
| 971 |
|
---|
| 972 | typedef struct D3D12_DESCRIPTOR_HEAP_DESC
|
---|
| 973 | {
|
---|
| 974 | D3D12_DESCRIPTOR_HEAP_TYPE Type;
|
---|
| 975 | UINT NumDescriptors;
|
---|
| 976 | D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
|
---|
| 977 | UINT NodeMask;
|
---|
| 978 | } D3D12_DESCRIPTOR_HEAP_DESC;
|
---|
| 979 |
|
---|
| 980 | typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
|
---|
| 981 |
|
---|
| 982 | typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
|
---|
| 983 | {
|
---|
| 984 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
|
---|
| 985 | UINT SizeInBytes;
|
---|
| 986 | } D3D12_CONSTANT_BUFFER_VIEW_DESC;
|
---|
| 987 |
|
---|
| 988 | typedef enum D3D12_SRV_DIMENSION
|
---|
| 989 | {
|
---|
| 990 | D3D12_SRV_DIMENSION_UNKNOWN = 0,
|
---|
| 991 | D3D12_SRV_DIMENSION_BUFFER = 1,
|
---|
| 992 | D3D12_SRV_DIMENSION_TEXTURE1D = 2,
|
---|
| 993 | D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
|
---|
| 994 | D3D12_SRV_DIMENSION_TEXTURE2D = 4,
|
---|
| 995 | D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
|
---|
| 996 | D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
|
---|
| 997 | D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
|
---|
| 998 | D3D12_SRV_DIMENSION_TEXTURE3D = 8,
|
---|
| 999 | D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
|
---|
| 1000 | D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
|
---|
| 1001 | } D3D12_SRV_DIMENSION;
|
---|
| 1002 |
|
---|
| 1003 | typedef enum D3D12_BUFFER_SRV_FLAGS
|
---|
| 1004 | {
|
---|
| 1005 | D3D12_BUFFER_SRV_FLAG_NONE = 0x0,
|
---|
| 1006 | D3D12_BUFFER_SRV_FLAG_RAW = 0x1,
|
---|
| 1007 | } D3D12_BUFFER_SRV_FLAGS;
|
---|
| 1008 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_SRV_FLAGS);")
|
---|
| 1009 |
|
---|
| 1010 | typedef enum D3D12_SHADER_COMPONENT_MAPPING
|
---|
| 1011 | {
|
---|
| 1012 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
|
---|
| 1013 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
|
---|
| 1014 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
|
---|
| 1015 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
|
---|
| 1016 | D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
|
---|
| 1017 | D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5,
|
---|
| 1018 | } D3D12_SHADER_COMPONENT_MAPPING;
|
---|
| 1019 |
|
---|
| 1020 | cpp_quote("#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(x, y, z, w) \\")
|
---|
| 1021 | cpp_quote(" (((x) & D3D12_SHADER_COMPONENT_MAPPING_MASK) \\")
|
---|
| 1022 | cpp_quote(" | (((y) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \\")
|
---|
| 1023 | cpp_quote(" | (((z) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) \\")
|
---|
| 1024 | cpp_quote(" | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \\")
|
---|
| 1025 | cpp_quote(" | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)")
|
---|
| 1026 | cpp_quote("#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)")
|
---|
| 1027 |
|
---|
| 1028 | cpp_quote("#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \\")
|
---|
| 1029 | cpp_quote(" ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \\")
|
---|
| 1030 | cpp_quote(" & D3D12_SHADER_COMPONENT_MAPPING_MASK))")
|
---|
| 1031 |
|
---|
| 1032 | typedef struct D3D12_BUFFER_SRV
|
---|
| 1033 | {
|
---|
| 1034 | UINT64 FirstElement;
|
---|
| 1035 | UINT NumElements;
|
---|
| 1036 | UINT StructureByteStride;
|
---|
| 1037 | D3D12_BUFFER_SRV_FLAGS Flags;
|
---|
| 1038 | } D3D12_BUFFER_SRV;
|
---|
| 1039 |
|
---|
| 1040 | typedef struct D3D12_TEX1D_SRV
|
---|
| 1041 | {
|
---|
| 1042 | UINT MostDetailedMip;
|
---|
| 1043 | UINT MipLevels;
|
---|
| 1044 | FLOAT ResourceMinLODClamp;
|
---|
| 1045 | } D3D12_TEX1D_SRV;
|
---|
| 1046 |
|
---|
| 1047 | typedef struct D3D12_TEX1D_ARRAY_SRV
|
---|
| 1048 | {
|
---|
| 1049 | UINT MostDetailedMip;
|
---|
| 1050 | UINT MipLevels;
|
---|
| 1051 | UINT FirstArraySlice;
|
---|
| 1052 | UINT ArraySize;
|
---|
| 1053 | FLOAT ResourceMinLODClamp;
|
---|
| 1054 | } D3D12_TEX1D_ARRAY_SRV;
|
---|
| 1055 |
|
---|
| 1056 | typedef struct D3D12_TEX2D_SRV
|
---|
| 1057 | {
|
---|
| 1058 | UINT MostDetailedMip;
|
---|
| 1059 | UINT MipLevels;
|
---|
| 1060 | UINT PlaneSlice;
|
---|
| 1061 | FLOAT ResourceMinLODClamp;
|
---|
| 1062 | } D3D12_TEX2D_SRV;
|
---|
| 1063 |
|
---|
| 1064 | typedef struct D3D12_TEX2D_ARRAY_SRV
|
---|
| 1065 | {
|
---|
| 1066 | UINT MostDetailedMip;
|
---|
| 1067 | UINT MipLevels;
|
---|
| 1068 | UINT FirstArraySlice;
|
---|
| 1069 | UINT ArraySize;
|
---|
| 1070 | UINT PlaneSlice;
|
---|
| 1071 | FLOAT ResourceMinLODClamp;
|
---|
| 1072 | } D3D12_TEX2D_ARRAY_SRV;
|
---|
| 1073 |
|
---|
| 1074 | typedef struct D3D12_TEX2DMS_SRV
|
---|
| 1075 | {
|
---|
| 1076 | UINT UnusedField_NothingToDefine;
|
---|
| 1077 | } D3D12_TEX2DMS_SRV;
|
---|
| 1078 |
|
---|
| 1079 | typedef struct D3D12_TEX2DMS_ARRAY_SRV
|
---|
| 1080 | {
|
---|
| 1081 | UINT FirstArraySlice;
|
---|
| 1082 | UINT ArraySize;
|
---|
| 1083 | } D3D12_TEX2DMS_ARRAY_SRV;
|
---|
| 1084 |
|
---|
| 1085 | typedef struct D3D12_TEX3D_SRV
|
---|
| 1086 | {
|
---|
| 1087 | UINT MostDetailedMip;
|
---|
| 1088 | UINT MipLevels;
|
---|
| 1089 | FLOAT ResourceMinLODClamp;
|
---|
| 1090 | } D3D12_TEX3D_SRV;
|
---|
| 1091 |
|
---|
| 1092 | typedef struct D3D12_TEXCUBE_SRV
|
---|
| 1093 | {
|
---|
| 1094 | UINT MostDetailedMip;
|
---|
| 1095 | UINT MipLevels;
|
---|
| 1096 | FLOAT ResourceMinLODClamp;
|
---|
| 1097 | } D3D12_TEXCUBE_SRV;
|
---|
| 1098 |
|
---|
| 1099 | typedef struct D3D12_TEXCUBE_ARRAY_SRV
|
---|
| 1100 | {
|
---|
| 1101 | UINT MostDetailedMip;
|
---|
| 1102 | UINT MipLevels;
|
---|
| 1103 | UINT First2DArrayFace;
|
---|
| 1104 | UINT NumCubes;
|
---|
| 1105 | FLOAT ResourceMinLODClamp;
|
---|
| 1106 | } D3D12_TEXCUBE_ARRAY_SRV;
|
---|
| 1107 |
|
---|
| 1108 | typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
|
---|
| 1109 | {
|
---|
| 1110 | DXGI_FORMAT Format;
|
---|
| 1111 | D3D12_SRV_DIMENSION ViewDimension;
|
---|
| 1112 | UINT Shader4ComponentMapping;
|
---|
| 1113 | union
|
---|
| 1114 | {
|
---|
| 1115 | D3D12_BUFFER_SRV Buffer;
|
---|
| 1116 | D3D12_TEX1D_SRV Texture1D;
|
---|
| 1117 | D3D12_TEX1D_ARRAY_SRV Texture1DArray;
|
---|
| 1118 | D3D12_TEX2D_SRV Texture2D;
|
---|
| 1119 | D3D12_TEX2D_ARRAY_SRV Texture2DArray;
|
---|
| 1120 | D3D12_TEX2DMS_SRV Texture2DMS;
|
---|
| 1121 | D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
|
---|
| 1122 | D3D12_TEX3D_SRV Texture3D;
|
---|
| 1123 | D3D12_TEXCUBE_SRV TextureCube;
|
---|
| 1124 | D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
|
---|
| 1125 | };
|
---|
| 1126 | } D3D12_SHADER_RESOURCE_VIEW_DESC;
|
---|
| 1127 |
|
---|
| 1128 | typedef enum D3D12_UAV_DIMENSION
|
---|
| 1129 | {
|
---|
| 1130 | D3D12_UAV_DIMENSION_UNKNOWN = 0,
|
---|
| 1131 | D3D12_UAV_DIMENSION_BUFFER = 1,
|
---|
| 1132 | D3D12_UAV_DIMENSION_TEXTURE1D = 2,
|
---|
| 1133 | D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
|
---|
| 1134 | D3D12_UAV_DIMENSION_TEXTURE2D = 4,
|
---|
| 1135 | D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
|
---|
| 1136 | D3D12_UAV_DIMENSION_TEXTURE3D = 8,
|
---|
| 1137 | } D3D12_UAV_DIMENSION;
|
---|
| 1138 |
|
---|
| 1139 | typedef enum D3D12_BUFFER_UAV_FLAGS
|
---|
| 1140 | {
|
---|
| 1141 | D3D12_BUFFER_UAV_FLAG_NONE = 0x0,
|
---|
| 1142 | D3D12_BUFFER_UAV_FLAG_RAW = 0x1,
|
---|
| 1143 | } D3D12_BUFFER_UAV_FLAGS;
|
---|
| 1144 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_UAV_FLAGS);")
|
---|
| 1145 |
|
---|
| 1146 | typedef struct D3D12_BUFFER_UAV
|
---|
| 1147 | {
|
---|
| 1148 | UINT64 FirstElement;
|
---|
| 1149 | UINT NumElements;
|
---|
| 1150 | UINT StructureByteStride;
|
---|
| 1151 | UINT64 CounterOffsetInBytes;
|
---|
| 1152 | D3D12_BUFFER_UAV_FLAGS Flags;
|
---|
| 1153 | } D3D12_BUFFER_UAV;
|
---|
| 1154 |
|
---|
| 1155 | typedef struct D3D12_TEX1D_UAV
|
---|
| 1156 | {
|
---|
| 1157 | UINT MipSlice;
|
---|
| 1158 | } D3D12_TEX1D_UAV;
|
---|
| 1159 |
|
---|
| 1160 | typedef struct D3D12_TEX1D_ARRAY_UAV
|
---|
| 1161 | {
|
---|
| 1162 | UINT MipSlice;
|
---|
| 1163 | UINT FirstArraySlice;
|
---|
| 1164 | UINT ArraySize;
|
---|
| 1165 | } D3D12_TEX1D_ARRAY_UAV;
|
---|
| 1166 |
|
---|
| 1167 | typedef struct D3D12_TEX2D_UAV
|
---|
| 1168 | {
|
---|
| 1169 | UINT MipSlice;
|
---|
| 1170 | UINT PlaneSlice;
|
---|
| 1171 | } D3D12_TEX2D_UAV;
|
---|
| 1172 |
|
---|
| 1173 | typedef struct D3D12_TEX2D_ARRAY_UAV
|
---|
| 1174 | {
|
---|
| 1175 | UINT MipSlice;
|
---|
| 1176 | UINT FirstArraySlice;
|
---|
| 1177 | UINT ArraySize;
|
---|
| 1178 | UINT PlaneSlice;
|
---|
| 1179 | } D3D12_TEX2D_ARRAY_UAV;
|
---|
| 1180 |
|
---|
| 1181 | typedef struct D3D12_TEX3D_UAV
|
---|
| 1182 | {
|
---|
| 1183 | UINT MipSlice;
|
---|
| 1184 | UINT FirstWSlice;
|
---|
| 1185 | UINT WSize;
|
---|
| 1186 | } D3D12_TEX3D_UAV;
|
---|
| 1187 |
|
---|
| 1188 | typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
|
---|
| 1189 | {
|
---|
| 1190 | DXGI_FORMAT Format;
|
---|
| 1191 | D3D12_UAV_DIMENSION ViewDimension;
|
---|
| 1192 | union
|
---|
| 1193 | {
|
---|
| 1194 | D3D12_BUFFER_UAV Buffer;
|
---|
| 1195 | D3D12_TEX1D_UAV Texture1D;
|
---|
| 1196 | D3D12_TEX1D_ARRAY_UAV Texture1DArray;
|
---|
| 1197 | D3D12_TEX2D_UAV Texture2D;
|
---|
| 1198 | D3D12_TEX2D_ARRAY_UAV Texture2DArray;
|
---|
| 1199 | D3D12_TEX3D_UAV Texture3D;
|
---|
| 1200 | };
|
---|
| 1201 | } D3D12_UNORDERED_ACCESS_VIEW_DESC;
|
---|
| 1202 |
|
---|
| 1203 | typedef enum D3D12_RTV_DIMENSION
|
---|
| 1204 | {
|
---|
| 1205 | D3D12_RTV_DIMENSION_UNKNOWN = 0,
|
---|
| 1206 | D3D12_RTV_DIMENSION_BUFFER = 1,
|
---|
| 1207 | D3D12_RTV_DIMENSION_TEXTURE1D = 2,
|
---|
| 1208 | D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
|
---|
| 1209 | D3D12_RTV_DIMENSION_TEXTURE2D = 4,
|
---|
| 1210 | D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
|
---|
| 1211 | D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
|
---|
| 1212 | D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
|
---|
| 1213 | D3D12_RTV_DIMENSION_TEXTURE3D = 8,
|
---|
| 1214 | } D3D12_RTV_DIMENSION;
|
---|
| 1215 |
|
---|
| 1216 | typedef struct D3D12_BUFFER_RTV
|
---|
| 1217 | {
|
---|
| 1218 | UINT64 FirstElement;
|
---|
| 1219 | UINT NumElements;
|
---|
| 1220 | } D3D12_BUFFER_RTV;
|
---|
| 1221 |
|
---|
| 1222 | typedef struct D3D12_TEX1D_RTV
|
---|
| 1223 | {
|
---|
| 1224 | UINT MipSlice;
|
---|
| 1225 | } D3D12_TEX1D_RTV;
|
---|
| 1226 |
|
---|
| 1227 | typedef struct D3D12_TEX1D_ARRAY_RTV
|
---|
| 1228 | {
|
---|
| 1229 | UINT MipSlice;
|
---|
| 1230 | UINT FirstArraySlice;
|
---|
| 1231 | UINT ArraySize;
|
---|
| 1232 | } D3D12_TEX1D_ARRAY_RTV;
|
---|
| 1233 |
|
---|
| 1234 | typedef struct D3D12_TEX2D_RTV
|
---|
| 1235 | {
|
---|
| 1236 | UINT MipSlice;
|
---|
| 1237 | UINT PlaneSlice;
|
---|
| 1238 | } D3D12_TEX2D_RTV;
|
---|
| 1239 |
|
---|
| 1240 | typedef struct D3D12_TEX2D_ARRAY_RTV
|
---|
| 1241 | {
|
---|
| 1242 | UINT MipSlice;
|
---|
| 1243 | UINT FirstArraySlice;
|
---|
| 1244 | UINT ArraySize;
|
---|
| 1245 | UINT PlaneSlice;
|
---|
| 1246 | } D3D12_TEX2D_ARRAY_RTV;
|
---|
| 1247 |
|
---|
| 1248 | typedef struct D3D12_TEX2DMS_RTV
|
---|
| 1249 | {
|
---|
| 1250 | UINT UnusedField_NothingToDefine;
|
---|
| 1251 | } D3D12_TEX2DMS_RTV;
|
---|
| 1252 |
|
---|
| 1253 | typedef struct D3D12_TEX2DMS_ARRAY_RTV
|
---|
| 1254 | {
|
---|
| 1255 | UINT FirstArraySlice;
|
---|
| 1256 | UINT ArraySize;
|
---|
| 1257 | } D3D12_TEX2DMS_ARRAY_RTV;
|
---|
| 1258 |
|
---|
| 1259 | typedef struct D3D12_TEX3D_RTV
|
---|
| 1260 | {
|
---|
| 1261 | UINT MipSlice;
|
---|
| 1262 | UINT FirstWSlice;
|
---|
| 1263 | UINT WSize;
|
---|
| 1264 | } D3D12_TEX3D_RTV;
|
---|
| 1265 |
|
---|
| 1266 | typedef struct D3D12_RENDER_TARGET_VIEW_DESC
|
---|
| 1267 | {
|
---|
| 1268 | DXGI_FORMAT Format;
|
---|
| 1269 | D3D12_RTV_DIMENSION ViewDimension;
|
---|
| 1270 | union
|
---|
| 1271 | {
|
---|
| 1272 | D3D12_BUFFER_RTV Buffer;
|
---|
| 1273 | D3D12_TEX1D_RTV Texture1D;
|
---|
| 1274 | D3D12_TEX1D_ARRAY_RTV Texture1DArray;
|
---|
| 1275 | D3D12_TEX2D_RTV Texture2D;
|
---|
| 1276 | D3D12_TEX2D_ARRAY_RTV Texture2DArray;
|
---|
| 1277 | D3D12_TEX2DMS_RTV Texture2DMS;
|
---|
| 1278 | D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
|
---|
| 1279 | D3D12_TEX3D_RTV Texture3D;
|
---|
| 1280 | };
|
---|
| 1281 | } D3D12_RENDER_TARGET_VIEW_DESC;
|
---|
| 1282 |
|
---|
| 1283 | typedef enum D3D12_DSV_DIMENSION
|
---|
| 1284 | {
|
---|
| 1285 | D3D12_DSV_DIMENSION_UNKNOWN = 0,
|
---|
| 1286 | D3D12_DSV_DIMENSION_TEXTURE1D = 1,
|
---|
| 1287 | D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
|
---|
| 1288 | D3D12_DSV_DIMENSION_TEXTURE2D = 3,
|
---|
| 1289 | D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
|
---|
| 1290 | D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
|
---|
| 1291 | D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6,
|
---|
| 1292 | } D3D12_DSV_DIMENSION;
|
---|
| 1293 |
|
---|
| 1294 | typedef enum D3D12_DSV_FLAGS
|
---|
| 1295 | {
|
---|
| 1296 | D3D12_DSV_FLAG_NONE = 0x0,
|
---|
| 1297 | D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
|
---|
| 1298 | D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2,
|
---|
| 1299 | } D3D12_DSV_FLAGS;
|
---|
| 1300 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DSV_FLAGS);")
|
---|
| 1301 |
|
---|
| 1302 | typedef struct D3D12_TEX1D_DSV
|
---|
| 1303 | {
|
---|
| 1304 | UINT MipSlice;
|
---|
| 1305 | } D3D12_TEX1D_DSV;
|
---|
| 1306 |
|
---|
| 1307 | typedef struct D3D12_TEX1D_ARRAY_DSV
|
---|
| 1308 | {
|
---|
| 1309 | UINT MipSlice;
|
---|
| 1310 | UINT FirstArraySlice;
|
---|
| 1311 | UINT ArraySize;
|
---|
| 1312 | } D3D12_TEX1D_ARRAY_DSV;
|
---|
| 1313 |
|
---|
| 1314 | typedef struct D3D12_TEX2D_DSV
|
---|
| 1315 | {
|
---|
| 1316 | UINT MipSlice;
|
---|
| 1317 | } D3D12_TEX2D_DSV;
|
---|
| 1318 |
|
---|
| 1319 | typedef struct D3D12_TEX2D_ARRAY_DSV
|
---|
| 1320 | {
|
---|
| 1321 | UINT MipSlice;
|
---|
| 1322 | UINT FirstArraySlice;
|
---|
| 1323 | UINT ArraySize;
|
---|
| 1324 | } D3D12_TEX2D_ARRAY_DSV;
|
---|
| 1325 |
|
---|
| 1326 | typedef struct D3D12_TEX2DMS_DSV
|
---|
| 1327 | {
|
---|
| 1328 | UINT UnusedField_NothingToDefine;
|
---|
| 1329 | } D3D12_TEX2DMS_DSV;
|
---|
| 1330 |
|
---|
| 1331 | typedef struct D3D12_TEX2DMS_ARRAY_DSV
|
---|
| 1332 | {
|
---|
| 1333 | UINT FirstArraySlice;
|
---|
| 1334 | UINT ArraySize;
|
---|
| 1335 | } D3D12_TEX2DMS_ARRAY_DSV;
|
---|
| 1336 |
|
---|
| 1337 | typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
|
---|
| 1338 | {
|
---|
| 1339 | DXGI_FORMAT Format;
|
---|
| 1340 | D3D12_DSV_DIMENSION ViewDimension;
|
---|
| 1341 | D3D12_DSV_FLAGS Flags;
|
---|
| 1342 | union
|
---|
| 1343 | {
|
---|
| 1344 | D3D12_TEX1D_DSV Texture1D;
|
---|
| 1345 | D3D12_TEX1D_ARRAY_DSV Texture1DArray;
|
---|
| 1346 | D3D12_TEX2D_DSV Texture2D;
|
---|
| 1347 | D3D12_TEX2D_ARRAY_DSV Texture2DArray;
|
---|
| 1348 | D3D12_TEX2DMS_DSV Texture2DMS;
|
---|
| 1349 | D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
|
---|
| 1350 | };
|
---|
| 1351 | } D3D12_DEPTH_STENCIL_VIEW_DESC;
|
---|
| 1352 |
|
---|
| 1353 | typedef struct D3D12_SAMPLER_DESC
|
---|
| 1354 | {
|
---|
| 1355 | D3D12_FILTER Filter;
|
---|
| 1356 | D3D12_TEXTURE_ADDRESS_MODE AddressU;
|
---|
| 1357 | D3D12_TEXTURE_ADDRESS_MODE AddressV;
|
---|
| 1358 | D3D12_TEXTURE_ADDRESS_MODE AddressW;
|
---|
| 1359 | FLOAT MipLODBias;
|
---|
| 1360 | UINT MaxAnisotropy;
|
---|
| 1361 | D3D12_COMPARISON_FUNC ComparisonFunc;
|
---|
| 1362 | FLOAT BorderColor[4];
|
---|
| 1363 | FLOAT MinLOD;
|
---|
| 1364 | FLOAT MaxLOD;
|
---|
| 1365 | } D3D12_SAMPLER_DESC;
|
---|
| 1366 |
|
---|
| 1367 | typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
|
---|
| 1368 | {
|
---|
| 1369 | SIZE_T ptr;
|
---|
| 1370 | } D3D12_CPU_DESCRIPTOR_HANDLE;
|
---|
| 1371 |
|
---|
| 1372 | typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
|
---|
| 1373 | {
|
---|
| 1374 | UINT64 ptr;
|
---|
| 1375 | } D3D12_GPU_DESCRIPTOR_HANDLE;
|
---|
| 1376 |
|
---|
| 1377 | typedef enum D3D12_STENCIL_OP
|
---|
| 1378 | {
|
---|
| 1379 | D3D12_STENCIL_OP_KEEP = 1,
|
---|
| 1380 | D3D12_STENCIL_OP_ZERO = 2,
|
---|
| 1381 | D3D12_STENCIL_OP_REPLACE = 3,
|
---|
| 1382 | D3D12_STENCIL_OP_INCR_SAT = 4,
|
---|
| 1383 | D3D12_STENCIL_OP_DECR_SAT = 5,
|
---|
| 1384 | D3D12_STENCIL_OP_INVERT = 6,
|
---|
| 1385 | D3D12_STENCIL_OP_INCR = 7,
|
---|
| 1386 | D3D12_STENCIL_OP_DECR = 8,
|
---|
| 1387 | } D3D12_STENCIL_OP;
|
---|
| 1388 |
|
---|
| 1389 | typedef struct D3D12_DEPTH_STENCILOP_DESC
|
---|
| 1390 | {
|
---|
| 1391 | D3D12_STENCIL_OP StencilFailOp;
|
---|
| 1392 | D3D12_STENCIL_OP StencilDepthFailOp;
|
---|
| 1393 | D3D12_STENCIL_OP StencilPassOp;
|
---|
| 1394 | D3D12_COMPARISON_FUNC StencilFunc;
|
---|
| 1395 | } D3D12_DEPTH_STENCILOP_DESC;
|
---|
| 1396 |
|
---|
| 1397 | typedef enum D3D12_DEPTH_WRITE_MASK
|
---|
| 1398 | {
|
---|
| 1399 | D3D12_DEPTH_WRITE_MASK_ZERO = 0,
|
---|
| 1400 | D3D12_DEPTH_WRITE_MASK_ALL = 1,
|
---|
| 1401 | } D3D12_DEPTH_WRITE_MASK;
|
---|
| 1402 |
|
---|
| 1403 | typedef struct D3D12_DEPTH_STENCIL_DESC
|
---|
| 1404 | {
|
---|
| 1405 | BOOL DepthEnable;
|
---|
| 1406 | D3D12_DEPTH_WRITE_MASK DepthWriteMask;
|
---|
| 1407 | D3D12_COMPARISON_FUNC DepthFunc;
|
---|
| 1408 | BOOL StencilEnable;
|
---|
| 1409 | UINT8 StencilReadMask;
|
---|
| 1410 | UINT8 StencilWriteMask;
|
---|
| 1411 | D3D12_DEPTH_STENCILOP_DESC FrontFace;
|
---|
| 1412 | D3D12_DEPTH_STENCILOP_DESC BackFace;
|
---|
| 1413 | } D3D12_DEPTH_STENCIL_DESC;
|
---|
| 1414 |
|
---|
| 1415 | typedef enum D3D12_BLEND
|
---|
| 1416 | {
|
---|
| 1417 | D3D12_BLEND_ZERO = 1,
|
---|
| 1418 | D3D12_BLEND_ONE = 2,
|
---|
| 1419 | D3D12_BLEND_SRC_COLOR = 3,
|
---|
| 1420 | D3D12_BLEND_INV_SRC_COLOR = 4,
|
---|
| 1421 | D3D12_BLEND_SRC_ALPHA = 5,
|
---|
| 1422 | D3D12_BLEND_INV_SRC_ALPHA = 6,
|
---|
| 1423 | D3D12_BLEND_DEST_ALPHA = 7,
|
---|
| 1424 | D3D12_BLEND_INV_DEST_ALPHA = 8,
|
---|
| 1425 | D3D12_BLEND_DEST_COLOR = 9,
|
---|
| 1426 | D3D12_BLEND_INV_DEST_COLOR = 10,
|
---|
| 1427 | D3D12_BLEND_SRC_ALPHA_SAT = 11,
|
---|
| 1428 | D3D12_BLEND_BLEND_FACTOR = 14,
|
---|
| 1429 | D3D12_BLEND_INV_BLEND_FACTOR = 15,
|
---|
| 1430 | D3D12_BLEND_SRC1_COLOR = 16,
|
---|
| 1431 | D3D12_BLEND_INV_SRC1_COLOR = 17,
|
---|
| 1432 | D3D12_BLEND_SRC1_ALPHA = 18,
|
---|
| 1433 | D3D12_BLEND_INV_SRC1_ALPHA = 19,
|
---|
| 1434 | } D3D12_BLEND;
|
---|
| 1435 |
|
---|
| 1436 | typedef enum D3D12_BLEND_OP
|
---|
| 1437 | {
|
---|
| 1438 | D3D12_BLEND_OP_ADD = 1,
|
---|
| 1439 | D3D12_BLEND_OP_SUBTRACT = 2,
|
---|
| 1440 | D3D12_BLEND_OP_REV_SUBTRACT = 3,
|
---|
| 1441 | D3D12_BLEND_OP_MIN = 4,
|
---|
| 1442 | D3D12_BLEND_OP_MAX = 5,
|
---|
| 1443 | } D3D12_BLEND_OP;
|
---|
| 1444 |
|
---|
| 1445 | typedef enum D3D12_LOGIC_OP
|
---|
| 1446 | {
|
---|
| 1447 | D3D12_LOGIC_OP_CLEAR = 0,
|
---|
| 1448 | D3D12_LOGIC_OP_SET = 1,
|
---|
| 1449 | D3D12_LOGIC_OP_COPY = 2,
|
---|
| 1450 | D3D12_LOGIC_OP_COPY_INVERTED = 3,
|
---|
| 1451 | D3D12_LOGIC_OP_NOOP = 4,
|
---|
| 1452 | } D3D12_LOGIC_OP;
|
---|
| 1453 |
|
---|
| 1454 | typedef enum D3D12_COLOR_WRITE_ENABLE
|
---|
| 1455 | {
|
---|
| 1456 | D3D12_COLOR_WRITE_ENABLE_RED = 0x1,
|
---|
| 1457 | D3D12_COLOR_WRITE_ENABLE_GREEN = 0x2,
|
---|
| 1458 | D3D12_COLOR_WRITE_ENABLE_BLUE = 0x4,
|
---|
| 1459 | D3D12_COLOR_WRITE_ENABLE_ALPHA = 0x8,
|
---|
| 1460 | D3D12_COLOR_WRITE_ENABLE_ALL = (D3D12_COLOR_WRITE_ENABLE_RED
|
---|
| 1461 | | D3D12_COLOR_WRITE_ENABLE_GREEN | D3D12_COLOR_WRITE_ENABLE_BLUE
|
---|
| 1462 | | D3D12_COLOR_WRITE_ENABLE_ALPHA),
|
---|
| 1463 | } D3D12_COLOR_WRITE_ENABLE;
|
---|
| 1464 |
|
---|
| 1465 | typedef struct D3D12_RENDER_TARGET_BLEND_DESC
|
---|
| 1466 | {
|
---|
| 1467 | BOOL BlendEnable;
|
---|
| 1468 | BOOL LogicOpEnable;
|
---|
| 1469 | D3D12_BLEND SrcBlend;
|
---|
| 1470 | D3D12_BLEND DestBlend;
|
---|
| 1471 | D3D12_BLEND_OP BlendOp;
|
---|
| 1472 | D3D12_BLEND SrcBlendAlpha;
|
---|
| 1473 | D3D12_BLEND DestBlendAlpha;
|
---|
| 1474 | D3D12_BLEND_OP BlendOpAlpha;
|
---|
| 1475 | D3D12_LOGIC_OP LogicOp;
|
---|
| 1476 | UINT8 RenderTargetWriteMask;
|
---|
| 1477 | } D3D12_RENDER_TARGET_BLEND_DESC;
|
---|
| 1478 |
|
---|
| 1479 | typedef struct D3D12_BLEND_DESC
|
---|
| 1480 | {
|
---|
| 1481 | BOOL AlphaToCoverageEnable;
|
---|
| 1482 | BOOL IndependentBlendEnable;
|
---|
| 1483 | D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
|
---|
| 1484 | } D3D12_BLEND_DESC;
|
---|
| 1485 |
|
---|
| 1486 | typedef enum D3D12_FILL_MODE
|
---|
| 1487 | {
|
---|
| 1488 | D3D12_FILL_MODE_WIREFRAME = 2,
|
---|
| 1489 | D3D12_FILL_MODE_SOLID = 3,
|
---|
| 1490 | } D3D12_FILL_MODE;
|
---|
| 1491 |
|
---|
| 1492 | typedef enum D3D12_CULL_MODE
|
---|
| 1493 | {
|
---|
| 1494 | D3D12_CULL_MODE_NONE = 1,
|
---|
| 1495 | D3D12_CULL_MODE_FRONT = 2,
|
---|
| 1496 | D3D12_CULL_MODE_BACK = 3,
|
---|
| 1497 | } D3D12_CULL_MODE;
|
---|
| 1498 |
|
---|
| 1499 | typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
|
---|
| 1500 | {
|
---|
| 1501 | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
|
---|
| 1502 | D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1,
|
---|
| 1503 | } D3D12_CONSERVATIVE_RASTERIZATION_MODE;
|
---|
| 1504 |
|
---|
| 1505 | typedef struct D3D12_RASTERIZER_DESC
|
---|
| 1506 | {
|
---|
| 1507 | D3D12_FILL_MODE FillMode;
|
---|
| 1508 | D3D12_CULL_MODE CullMode;
|
---|
| 1509 | BOOL FrontCounterClockwise;
|
---|
| 1510 | INT DepthBias;
|
---|
| 1511 | FLOAT DepthBiasClamp;
|
---|
| 1512 | FLOAT SlopeScaledDepthBias;
|
---|
| 1513 | BOOL DepthClipEnable;
|
---|
| 1514 | BOOL MultisampleEnable;
|
---|
| 1515 | BOOL AntialiasedLineEnable;
|
---|
| 1516 | UINT ForcedSampleCount;
|
---|
| 1517 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
|
---|
| 1518 | } D3D12_RASTERIZER_DESC;
|
---|
| 1519 |
|
---|
| 1520 | typedef struct D3D12_SO_DECLARATION_ENTRY
|
---|
| 1521 | {
|
---|
| 1522 | UINT Stream;
|
---|
| 1523 | const char *SemanticName;
|
---|
| 1524 | UINT SemanticIndex;
|
---|
| 1525 | BYTE StartComponent;
|
---|
| 1526 | BYTE ComponentCount;
|
---|
| 1527 | BYTE OutputSlot;
|
---|
| 1528 | } D3D12_SO_DECLARATION_ENTRY;
|
---|
| 1529 |
|
---|
| 1530 | typedef struct D3D12_STREAM_OUTPUT_DESC
|
---|
| 1531 | {
|
---|
| 1532 | const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
|
---|
| 1533 | UINT NumEntries;
|
---|
| 1534 | const UINT *pBufferStrides;
|
---|
| 1535 | UINT NumStrides;
|
---|
| 1536 | UINT RasterizedStream;
|
---|
| 1537 | } D3D12_STREAM_OUTPUT_DESC;
|
---|
| 1538 |
|
---|
| 1539 | typedef enum D3D12_INPUT_CLASSIFICATION
|
---|
| 1540 | {
|
---|
| 1541 | D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
|
---|
| 1542 | D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1,
|
---|
| 1543 | } D3D12_INPUT_CLASSIFICATION;
|
---|
| 1544 |
|
---|
| 1545 | typedef struct D3D12_INPUT_ELEMENT_DESC
|
---|
| 1546 | {
|
---|
| 1547 | const char *SemanticName;
|
---|
| 1548 | UINT SemanticIndex;
|
---|
| 1549 | DXGI_FORMAT Format;
|
---|
| 1550 | UINT InputSlot;
|
---|
| 1551 | UINT AlignedByteOffset;
|
---|
| 1552 | D3D12_INPUT_CLASSIFICATION InputSlotClass;
|
---|
| 1553 | UINT InstanceDataStepRate;
|
---|
| 1554 | } D3D12_INPUT_ELEMENT_DESC;
|
---|
| 1555 |
|
---|
| 1556 | typedef struct D3D12_INPUT_LAYOUT_DESC
|
---|
| 1557 | {
|
---|
| 1558 | const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
|
---|
| 1559 | UINT NumElements;
|
---|
| 1560 | } D3D12_INPUT_LAYOUT_DESC;
|
---|
| 1561 |
|
---|
| 1562 | typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
|
---|
| 1563 | {
|
---|
| 1564 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
|
---|
| 1565 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
|
---|
| 1566 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2,
|
---|
| 1567 | } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
|
---|
| 1568 |
|
---|
| 1569 | typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
|
---|
| 1570 |
|
---|
| 1571 | typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
|
---|
| 1572 | {
|
---|
| 1573 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
|
---|
| 1574 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
|
---|
| 1575 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
|
---|
| 1576 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
|
---|
| 1577 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4,
|
---|
| 1578 | } D3D12_PRIMITIVE_TOPOLOGY_TYPE;
|
---|
| 1579 |
|
---|
| 1580 | typedef struct D3D12_CACHED_PIPELINE_STATE
|
---|
| 1581 | {
|
---|
| 1582 | const void *pCachedBlob;
|
---|
| 1583 | SIZE_T CachedBlobSizeInBytes;
|
---|
| 1584 | } D3D12_CACHED_PIPELINE_STATE;
|
---|
| 1585 |
|
---|
| 1586 | typedef enum D3D12_PIPELINE_STATE_FLAGS
|
---|
| 1587 | {
|
---|
| 1588 | D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
|
---|
| 1589 | D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1,
|
---|
| 1590 | } D3D12_PIPELINE_STATE_FLAGS;
|
---|
| 1591 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_PIPELINE_STATE_FLAGS);")
|
---|
| 1592 |
|
---|
| 1593 | typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
|
---|
| 1594 | {
|
---|
| 1595 | ID3D12RootSignature *pRootSignature;
|
---|
| 1596 | D3D12_SHADER_BYTECODE VS;
|
---|
| 1597 | D3D12_SHADER_BYTECODE PS;
|
---|
| 1598 | D3D12_SHADER_BYTECODE DS;
|
---|
| 1599 | D3D12_SHADER_BYTECODE HS;
|
---|
| 1600 | D3D12_SHADER_BYTECODE GS;
|
---|
| 1601 | D3D12_STREAM_OUTPUT_DESC StreamOutput;
|
---|
| 1602 | D3D12_BLEND_DESC BlendState;
|
---|
| 1603 | UINT SampleMask;
|
---|
| 1604 | D3D12_RASTERIZER_DESC RasterizerState;
|
---|
| 1605 | D3D12_DEPTH_STENCIL_DESC DepthStencilState;
|
---|
| 1606 | D3D12_INPUT_LAYOUT_DESC InputLayout;
|
---|
| 1607 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
|
---|
| 1608 | D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
|
---|
| 1609 | UINT NumRenderTargets;
|
---|
| 1610 | DXGI_FORMAT RTVFormats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
|
---|
| 1611 | DXGI_FORMAT DSVFormat;
|
---|
| 1612 | DXGI_SAMPLE_DESC SampleDesc;
|
---|
| 1613 | UINT NodeMask;
|
---|
| 1614 | D3D12_CACHED_PIPELINE_STATE CachedPSO;
|
---|
| 1615 | D3D12_PIPELINE_STATE_FLAGS Flags;
|
---|
| 1616 | } D3D12_GRAPHICS_PIPELINE_STATE_DESC;
|
---|
| 1617 |
|
---|
| 1618 | typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
|
---|
| 1619 | {
|
---|
| 1620 | ID3D12RootSignature *pRootSignature;
|
---|
| 1621 | D3D12_SHADER_BYTECODE CS;
|
---|
| 1622 | UINT NodeMask;
|
---|
| 1623 | D3D12_CACHED_PIPELINE_STATE CachedPSO;
|
---|
| 1624 | D3D12_PIPELINE_STATE_FLAGS Flags;
|
---|
| 1625 | } D3D12_COMPUTE_PIPELINE_STATE_DESC;
|
---|
| 1626 |
|
---|
| 1627 | typedef enum D3D12_COMMAND_LIST_TYPE
|
---|
| 1628 | {
|
---|
| 1629 | D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
|
---|
| 1630 | D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
|
---|
| 1631 | D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
|
---|
| 1632 | D3D12_COMMAND_LIST_TYPE_COPY = 3,
|
---|
| 1633 | } D3D12_COMMAND_LIST_TYPE;
|
---|
| 1634 |
|
---|
| 1635 | typedef enum D3D12_COMMAND_QUEUE_PRIORITY
|
---|
| 1636 | {
|
---|
| 1637 | D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
|
---|
| 1638 | D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
|
---|
| 1639 | D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000,
|
---|
| 1640 | } D3D12_COMMAND_QUEUE_PRIORITY;
|
---|
| 1641 |
|
---|
| 1642 | typedef enum D3D12_COMMAND_QUEUE_FLAGS
|
---|
| 1643 | {
|
---|
| 1644 | D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
|
---|
| 1645 | D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1,
|
---|
| 1646 | } D3D12_COMMAND_QUEUE_FLAGS;
|
---|
| 1647 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_QUEUE_FLAGS);")
|
---|
| 1648 |
|
---|
| 1649 | typedef struct D3D12_COMMAND_QUEUE_DESC
|
---|
| 1650 | {
|
---|
| 1651 | D3D12_COMMAND_LIST_TYPE Type;
|
---|
| 1652 | INT Priority;
|
---|
| 1653 | D3D12_COMMAND_QUEUE_FLAGS Flags;
|
---|
| 1654 | UINT NodeMask;
|
---|
| 1655 | } D3D12_COMMAND_QUEUE_DESC;
|
---|
| 1656 |
|
---|
| 1657 | typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
|
---|
| 1658 | {
|
---|
| 1659 | UINT NodeIndex;
|
---|
| 1660 | BOOL TileBasedRenderer;
|
---|
| 1661 | BOOL UMA;
|
---|
| 1662 | BOOL CacheCoherentUMA;
|
---|
| 1663 | } D3D12_FEATURE_DATA_ARCHITECTURE;
|
---|
| 1664 |
|
---|
| 1665 | typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
|
---|
| 1666 | {
|
---|
| 1667 | DXGI_FORMAT Format;
|
---|
| 1668 | UINT8 PlaneCount;
|
---|
| 1669 | } D3D12_FEATURE_DATA_FORMAT_INFO;
|
---|
| 1670 |
|
---|
| 1671 | typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
|
---|
| 1672 | {
|
---|
| 1673 | UINT NumFeatureLevels;
|
---|
| 1674 | const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
|
---|
| 1675 | D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
|
---|
| 1676 | } D3D12_FEATURE_DATA_FEATURE_LEVELS;
|
---|
| 1677 |
|
---|
| 1678 | typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE
|
---|
| 1679 | {
|
---|
| 1680 | D3D_ROOT_SIGNATURE_VERSION HighestVersion;
|
---|
| 1681 | } D3D12_FEATURE_DATA_ROOT_SIGNATURE;
|
---|
| 1682 |
|
---|
| 1683 | typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
|
---|
| 1684 | {
|
---|
| 1685 | UINT MaxGPUVirtualAddressBitsPerResource;
|
---|
| 1686 | UINT MaxGPUVirtualAddressBitsPerProcess;
|
---|
| 1687 | } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
|
---|
| 1688 |
|
---|
| 1689 | typedef enum D3D_SHADER_MODEL
|
---|
| 1690 | {
|
---|
| 1691 | D3D_SHADER_MODEL_5_1 = 0x51,
|
---|
| 1692 | D3D_SHADER_MODEL_6_0 = 0x60,
|
---|
| 1693 | } D3D_SHADER_MODEL;
|
---|
| 1694 |
|
---|
| 1695 | typedef struct D3D12_FEATURE_DATA_SHADER_MODEL
|
---|
| 1696 | {
|
---|
| 1697 | D3D_SHADER_MODEL HighestShaderModel;
|
---|
| 1698 | } D3D12_FEATURE_DATA_SHADER_MODEL;
|
---|
| 1699 |
|
---|
| 1700 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1
|
---|
| 1701 | {
|
---|
| 1702 | BOOL WaveOps;
|
---|
| 1703 | UINT WaveLaneCountMin;
|
---|
| 1704 | UINT WaveLaneCountMax;
|
---|
| 1705 | UINT TotalLaneCount;
|
---|
| 1706 | BOOL ExpandedComputeResourceStates;
|
---|
| 1707 | BOOL Int64ShaderOps;
|
---|
| 1708 | } D3D12_FEATURE_DATA_D3D12_OPTIONS1;
|
---|
| 1709 |
|
---|
| 1710 | typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1
|
---|
| 1711 | {
|
---|
| 1712 | UINT NodeIndex;
|
---|
| 1713 | BOOL TileBasedRenderer;
|
---|
| 1714 | BOOL UMA;
|
---|
| 1715 | BOOL CacheCoherentUMA;
|
---|
| 1716 | BOOL IsolatedMMU;
|
---|
| 1717 | } D3D12_FEATURE_DATA_ARCHITECTURE1;
|
---|
| 1718 |
|
---|
| 1719 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2
|
---|
| 1720 | {
|
---|
| 1721 | BOOL DepthBoundsTestSupported;
|
---|
| 1722 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
|
---|
| 1723 | } D3D12_FEATURE_DATA_D3D12_OPTIONS2;
|
---|
| 1724 |
|
---|
| 1725 | typedef struct D3D12_FEATURE_DATA_SHADER_CACHE
|
---|
| 1726 | {
|
---|
| 1727 | D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
|
---|
| 1728 | } D3D12_FEATURE_DATA_SHADER_CACHE;
|
---|
| 1729 |
|
---|
| 1730 | typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY
|
---|
| 1731 | {
|
---|
| 1732 | D3D12_COMMAND_LIST_TYPE CommandListType;
|
---|
| 1733 | UINT Priority;
|
---|
| 1734 | BOOL PriorityForTypeIsSupported;
|
---|
| 1735 | } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
|
---|
| 1736 |
|
---|
| 1737 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3
|
---|
| 1738 | {
|
---|
| 1739 | BOOL CopyQueueTimestampQueriesSupported;
|
---|
| 1740 | BOOL CastingFullyTypedFormatSupported;
|
---|
| 1741 | D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
|
---|
| 1742 | D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
|
---|
| 1743 | BOOL BarycentricsSupported;
|
---|
| 1744 | } D3D12_FEATURE_DATA_D3D12_OPTIONS3;
|
---|
| 1745 |
|
---|
| 1746 | typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS
|
---|
| 1747 | {
|
---|
| 1748 | BOOL Supported;
|
---|
| 1749 | } D3D12_FEATURE_DATA_EXISTING_HEAPS;
|
---|
| 1750 |
|
---|
| 1751 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4
|
---|
| 1752 | {
|
---|
| 1753 | BOOL MSAA64KBAlignedTextureSupported;
|
---|
| 1754 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
|
---|
| 1755 | BOOL Native16BitShaderOpsSupported;
|
---|
| 1756 | } D3D12_FEATURE_DATA_D3D12_OPTIONS4;
|
---|
| 1757 |
|
---|
| 1758 | typedef struct D3D12_FEATURE_DATA_SERIALIZATION
|
---|
| 1759 | {
|
---|
| 1760 | UINT NodeIndex;
|
---|
| 1761 | D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
|
---|
| 1762 | } D3D12_FEATURE_DATA_SERIALIZATION;
|
---|
| 1763 |
|
---|
| 1764 | typedef struct D3D12_FEATURE_DATA_CROSS_NODE
|
---|
| 1765 | {
|
---|
| 1766 | D3D12_CROSS_NODE_SHARING_TIER SharingTier;
|
---|
| 1767 | BOOL AtomicShaderInstructions;
|
---|
| 1768 | } D3D12_FEATURE_DATA_CROSS_NODE;
|
---|
| 1769 |
|
---|
| 1770 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5
|
---|
| 1771 | {
|
---|
| 1772 | BOOL SRVOnlyTiledResourceTier3;
|
---|
| 1773 | D3D12_RENDER_PASS_TIER RenderPassesTier;
|
---|
| 1774 | D3D12_RAYTRACING_TIER RaytracingTier;
|
---|
| 1775 | } D3D12_FEATURE_DATA_D3D12_OPTIONS5;
|
---|
| 1776 |
|
---|
| 1777 | typedef enum D3D12_FEATURE
|
---|
| 1778 | {
|
---|
| 1779 | D3D12_FEATURE_D3D12_OPTIONS = 0,
|
---|
| 1780 | D3D12_FEATURE_ARCHITECTURE = 1,
|
---|
| 1781 | D3D12_FEATURE_FEATURE_LEVELS = 2,
|
---|
| 1782 | D3D12_FEATURE_FORMAT_SUPPORT = 3,
|
---|
| 1783 | D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
|
---|
| 1784 | D3D12_FEATURE_FORMAT_INFO = 5,
|
---|
| 1785 | D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
|
---|
| 1786 | D3D12_FEATURE_SHADER_MODEL = 7,
|
---|
| 1787 | D3D12_FEATURE_D3D12_OPTIONS1 = 8,
|
---|
| 1788 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
|
---|
| 1789 | D3D12_FEATURE_ROOT_SIGNATURE = 12,
|
---|
| 1790 | D3D12_FEATURE_ARCHITECTURE1 = 16,
|
---|
| 1791 | D3D12_FEATURE_D3D12_OPTIONS2 = 18,
|
---|
| 1792 | D3D12_FEATURE_SHADER_CACHE = 19,
|
---|
| 1793 | D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
|
---|
| 1794 | D3D12_FEATURE_D3D12_OPTIONS3 = 21,
|
---|
| 1795 | D3D12_FEATURE_EXISTING_HEAPS = 22,
|
---|
| 1796 | D3D12_FEATURE_D3D12_OPTIONS4 = 23,
|
---|
| 1797 | D3D12_FEATURE_SERIALIZATION = 24,
|
---|
| 1798 | D3D12_FEATURE_CROSS_NODE = 25,
|
---|
| 1799 | D3D12_FEATURE_D3D12_OPTIONS5 = 27,
|
---|
| 1800 | D3D12_FEATURE_D3D12_OPTIONS6 = 30,
|
---|
| 1801 | D3D12_FEATURE_QUERY_META_COMMAND = 31,
|
---|
| 1802 | D3D12_FEATURE_D3D12_OPTIONS7 = 32,
|
---|
| 1803 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
|
---|
| 1804 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34,
|
---|
| 1805 | } D3D12_FEATURE;
|
---|
| 1806 |
|
---|
| 1807 | typedef struct D3D12_MEMCPY_DEST
|
---|
| 1808 | {
|
---|
| 1809 | void *pData;
|
---|
| 1810 | SIZE_T RowPitch;
|
---|
| 1811 | SIZE_T SlicePitch;
|
---|
| 1812 | } D3D12_MEMCPY_DEST;
|
---|
| 1813 |
|
---|
| 1814 | typedef struct D3D12_SUBRESOURCE_DATA
|
---|
| 1815 | {
|
---|
| 1816 | const void *pData;
|
---|
| 1817 | LONG_PTR RowPitch;
|
---|
| 1818 | LONG_PTR SlicePitch;
|
---|
| 1819 | } D3D12_SUBRESOURCE_DATA;
|
---|
| 1820 |
|
---|
| 1821 | typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS
|
---|
| 1822 | {
|
---|
| 1823 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
|
---|
| 1824 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
|
---|
| 1825 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0,
|
---|
| 1826 | } D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
|
---|
| 1827 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS);")
|
---|
| 1828 |
|
---|
| 1829 | typedef enum D3D12_RESIDENCY_PRIORITY
|
---|
| 1830 | {
|
---|
| 1831 | D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
|
---|
| 1832 | D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
|
---|
| 1833 | D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
|
---|
| 1834 | D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
|
---|
| 1835 | D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000,
|
---|
| 1836 | } D3D12_RESIDENCY_PRIORITY;
|
---|
| 1837 |
|
---|
| 1838 | typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER
|
---|
| 1839 | {
|
---|
| 1840 | D3D12_GPU_VIRTUAL_ADDRESS Dest;
|
---|
| 1841 | UINT32 Value;
|
---|
| 1842 | } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
|
---|
| 1843 |
|
---|
| 1844 | [
|
---|
| 1845 | uuid(c4fec28f-7966-4e95-9f94-f431cb56c3b8),
|
---|
| 1846 | object,
|
---|
| 1847 | local,
|
---|
| 1848 | pointer_default(unique)
|
---|
| 1849 | ]
|
---|
| 1850 | interface ID3D12Object : IUnknown
|
---|
| 1851 | {
|
---|
| 1852 | HRESULT GetPrivateData(REFGUID guid, UINT *data_size, void *data);
|
---|
| 1853 | HRESULT SetPrivateData(REFGUID guid, UINT data_size, const void *data);
|
---|
| 1854 | HRESULT SetPrivateDataInterface(REFGUID guid, const IUnknown *data);
|
---|
| 1855 | HRESULT SetName(const WCHAR *name);
|
---|
| 1856 | }
|
---|
| 1857 |
|
---|
| 1858 | [
|
---|
| 1859 | uuid(905db94b-a00c-4140-9df5-2b64ca9ea357),
|
---|
| 1860 | object,
|
---|
| 1861 | local,
|
---|
| 1862 | pointer_default(unique)
|
---|
| 1863 | ]
|
---|
| 1864 | interface ID3D12DeviceChild : ID3D12Object
|
---|
| 1865 | {
|
---|
| 1866 | HRESULT GetDevice(REFIID riid, void **device);
|
---|
| 1867 | }
|
---|
| 1868 |
|
---|
| 1869 | [
|
---|
| 1870 | uuid(63ee58fb-1268-4835-86da-f008ce62f0d6),
|
---|
| 1871 | object,
|
---|
| 1872 | local,
|
---|
| 1873 | pointer_default(unique)
|
---|
| 1874 | ]
|
---|
| 1875 | interface ID3D12Pageable : ID3D12DeviceChild
|
---|
| 1876 | {
|
---|
| 1877 | }
|
---|
| 1878 |
|
---|
| 1879 | [
|
---|
| 1880 | uuid(6b3b2502-6e51-45b3-90ee-9884265e8df3),
|
---|
| 1881 | object,
|
---|
| 1882 | local,
|
---|
| 1883 | pointer_default(unique)
|
---|
| 1884 | ]
|
---|
| 1885 | interface ID3D12Heap : ID3D12Pageable
|
---|
| 1886 | {
|
---|
| 1887 | D3D12_HEAP_DESC GetDesc();
|
---|
| 1888 | }
|
---|
| 1889 |
|
---|
| 1890 | [
|
---|
| 1891 | uuid(696442be-a72e-4059-bc79-5b5c98040fad),
|
---|
| 1892 | object,
|
---|
| 1893 | local,
|
---|
| 1894 | pointer_default(unique)
|
---|
| 1895 | ]
|
---|
| 1896 | interface ID3D12Resource : ID3D12Pageable
|
---|
| 1897 | {
|
---|
| 1898 | HRESULT Map(UINT sub_resource, const D3D12_RANGE *read_range, void **data);
|
---|
| 1899 | void Unmap(UINT sub_resource, const D3D12_RANGE *written_range);
|
---|
| 1900 |
|
---|
| 1901 | D3D12_RESOURCE_DESC GetDesc();
|
---|
| 1902 |
|
---|
| 1903 | D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress();
|
---|
| 1904 |
|
---|
| 1905 | HRESULT WriteToSubresource(UINT dst_sub_resource, const D3D12_BOX *dst_box,
|
---|
| 1906 | const void *src_data, UINT src_row_pitch, UINT src_slice_pitch);
|
---|
| 1907 | HRESULT ReadFromSubresource(void *dst_data, UINT dst_row_pitch, UINT dst_slice_pitch,
|
---|
| 1908 | UINT src_sub_resource, const D3D12_BOX *src_box);
|
---|
| 1909 |
|
---|
| 1910 | HRESULT GetHeapProperties(D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS *flags);
|
---|
| 1911 | }
|
---|
| 1912 |
|
---|
| 1913 | [
|
---|
| 1914 | uuid(7116d91c-e7e4-47ce-b8c6-ec8168f437e5),
|
---|
| 1915 | object,
|
---|
| 1916 | local,
|
---|
| 1917 | pointer_default(unique)
|
---|
| 1918 | ]
|
---|
| 1919 | interface ID3D12CommandList : ID3D12DeviceChild
|
---|
| 1920 | {
|
---|
| 1921 | D3D12_COMMAND_LIST_TYPE GetType();
|
---|
| 1922 | }
|
---|
| 1923 |
|
---|
| 1924 | typedef enum D3D12_TILE_COPY_FLAGS
|
---|
| 1925 | {
|
---|
| 1926 | D3D12_TILE_COPY_FLAG_NONE = 0x0,
|
---|
| 1927 | D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
|
---|
| 1928 | D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
|
---|
| 1929 | D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4,
|
---|
| 1930 | } D3D12_TILE_COPY_FLAGS;
|
---|
| 1931 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_COPY_FLAGS);")
|
---|
| 1932 |
|
---|
| 1933 | typedef struct D3D12_INDEX_BUFFER_VIEW
|
---|
| 1934 | {
|
---|
| 1935 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
|
---|
| 1936 | UINT SizeInBytes;
|
---|
| 1937 | DXGI_FORMAT Format;
|
---|
| 1938 | } D3D12_INDEX_BUFFER_VIEW;
|
---|
| 1939 |
|
---|
| 1940 | typedef struct D3D12_VERTEX_BUFFER_VIEW
|
---|
| 1941 | {
|
---|
| 1942 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
|
---|
| 1943 | UINT SizeInBytes;
|
---|
| 1944 | UINT StrideInBytes;
|
---|
| 1945 | } D3D12_VERTEX_BUFFER_VIEW;
|
---|
| 1946 |
|
---|
| 1947 | typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
|
---|
| 1948 | {
|
---|
| 1949 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
|
---|
| 1950 | UINT64 SizeInBytes;
|
---|
| 1951 | D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
|
---|
| 1952 | } D3D12_STREAM_OUTPUT_BUFFER_VIEW;
|
---|
| 1953 |
|
---|
| 1954 | typedef enum D3D12_CLEAR_FLAGS
|
---|
| 1955 | {
|
---|
| 1956 | D3D12_CLEAR_FLAG_DEPTH = 0x1,
|
---|
| 1957 | D3D12_CLEAR_FLAG_STENCIL = 0x2,
|
---|
| 1958 | } D3D12_CLEAR_FLAGS;
|
---|
| 1959 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_CLEAR_FLAGS);")
|
---|
| 1960 |
|
---|
| 1961 | typedef struct D3D12_DISCARD_REGION
|
---|
| 1962 | {
|
---|
| 1963 | UINT NumRects;
|
---|
| 1964 | const D3D12_RECT *pRects;
|
---|
| 1965 | UINT FirstSubresource;
|
---|
| 1966 | UINT NumSubresources;
|
---|
| 1967 | } D3D12_DISCARD_REGION;
|
---|
| 1968 |
|
---|
| 1969 | typedef enum D3D12_QUERY_TYPE
|
---|
| 1970 | {
|
---|
| 1971 | D3D12_QUERY_TYPE_OCCLUSION = 0,
|
---|
| 1972 | D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
|
---|
| 1973 | D3D12_QUERY_TYPE_TIMESTAMP = 2,
|
---|
| 1974 | D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
|
---|
| 1975 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
|
---|
| 1976 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
|
---|
| 1977 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
|
---|
| 1978 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
|
---|
| 1979 | } D3D12_QUERY_TYPE;
|
---|
| 1980 |
|
---|
| 1981 | typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
|
---|
| 1982 | {
|
---|
| 1983 | UINT64 IAVertices;
|
---|
| 1984 | UINT64 IAPrimitives;
|
---|
| 1985 | UINT64 VSInvocations;
|
---|
| 1986 | UINT64 GSInvocations;
|
---|
| 1987 | UINT64 GSPrimitives;
|
---|
| 1988 | UINT64 CInvocations;
|
---|
| 1989 | UINT64 CPrimitives;
|
---|
| 1990 | UINT64 PSInvocations;
|
---|
| 1991 | UINT64 HSInvocations;
|
---|
| 1992 | UINT64 DSInvocations;
|
---|
| 1993 | UINT64 CSInvocations;
|
---|
| 1994 | } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
|
---|
| 1995 |
|
---|
| 1996 | typedef struct D3D12_QUERY_DATA_SO_STATISTICS
|
---|
| 1997 | {
|
---|
| 1998 | UINT64 NumPrimitivesWritten;
|
---|
| 1999 | UINT64 PrimitivesStorageNeeded;
|
---|
| 2000 | } D3D12_QUERY_DATA_SO_STATISTICS;
|
---|
| 2001 |
|
---|
| 2002 | typedef enum D3D12_PREDICATION_OP
|
---|
| 2003 | {
|
---|
| 2004 | D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
|
---|
| 2005 | D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1,
|
---|
| 2006 | } D3D12_PREDICATION_OP;
|
---|
| 2007 |
|
---|
| 2008 | [
|
---|
| 2009 | uuid(8efb471d-616c-4f49-90f7-127bb763fa51),
|
---|
| 2010 | object,
|
---|
| 2011 | local,
|
---|
| 2012 | pointer_default(unique)
|
---|
| 2013 | ]
|
---|
| 2014 | interface ID3D12DescriptorHeap : ID3D12Pageable
|
---|
| 2015 | {
|
---|
| 2016 | D3D12_DESCRIPTOR_HEAP_DESC GetDesc();
|
---|
| 2017 |
|
---|
| 2018 | D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart();
|
---|
| 2019 | D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart();
|
---|
| 2020 | }
|
---|
| 2021 |
|
---|
| 2022 | [
|
---|
| 2023 | uuid(0d9658ae-ed45-469e-a61d-970ec583cab4),
|
---|
| 2024 | object,
|
---|
| 2025 | local,
|
---|
| 2026 | pointer_default(unique)
|
---|
| 2027 | ]
|
---|
| 2028 | interface ID3D12QueryHeap : ID3D12Pageable
|
---|
| 2029 | {
|
---|
| 2030 | }
|
---|
| 2031 |
|
---|
| 2032 | [
|
---|
| 2033 | uuid(c36a797c-ec80-4f0a-8985-a7b2475082d1),
|
---|
| 2034 | object,
|
---|
| 2035 | local,
|
---|
| 2036 | pointer_default(unique)
|
---|
| 2037 | ]
|
---|
| 2038 | interface ID3D12CommandSignature : ID3D12Pageable
|
---|
| 2039 | {
|
---|
| 2040 | }
|
---|
| 2041 |
|
---|
| 2042 | [
|
---|
| 2043 | uuid(5b160d0f-ac1b-4185-8ba8-b3ae42a5a455),
|
---|
| 2044 | object,
|
---|
| 2045 | local,
|
---|
| 2046 | pointer_default(unique)
|
---|
| 2047 | ]
|
---|
| 2048 | interface ID3D12GraphicsCommandList : ID3D12CommandList
|
---|
| 2049 | {
|
---|
| 2050 | HRESULT Close();
|
---|
| 2051 |
|
---|
| 2052 | HRESULT Reset(ID3D12CommandAllocator *allocator, ID3D12PipelineState *initial_state);
|
---|
| 2053 |
|
---|
| 2054 | HRESULT ClearState(ID3D12PipelineState *pipeline_state);
|
---|
| 2055 |
|
---|
| 2056 | void DrawInstanced(UINT vertex_count_per_instance, UINT instance_count,
|
---|
| 2057 | UINT start_vertex_location, UINT start_instance_location);
|
---|
| 2058 | void DrawIndexedInstanced(UINT index_count_per_instance, UINT instance_count,
|
---|
| 2059 | UINT start_vertex_location, INT base_vertex_location, UINT start_instance_location);
|
---|
| 2060 |
|
---|
| 2061 | void Dispatch(UINT x, UINT u, UINT z);
|
---|
| 2062 |
|
---|
| 2063 | void CopyBufferRegion(ID3D12Resource *dst_buffer, UINT64 dst_offset,
|
---|
| 2064 | ID3D12Resource *src_buffer, UINT64 src_offset, UINT64 byte_count);
|
---|
| 2065 | void CopyTextureRegion(const D3D12_TEXTURE_COPY_LOCATION *dst,
|
---|
| 2066 | UINT dst_x, UINT dst_y, UINT dst_z,
|
---|
| 2067 | const D3D12_TEXTURE_COPY_LOCATION *src, const D3D12_BOX *src_box);
|
---|
| 2068 | void CopyResource(ID3D12Resource *dst_resource, ID3D12Resource *src_resource);
|
---|
| 2069 |
|
---|
| 2070 | void CopyTiles(ID3D12Resource *tiled_resource,
|
---|
| 2071 | const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
|
---|
| 2072 | const D3D12_TILE_REGION_SIZE *tile_region_size,
|
---|
| 2073 | ID3D12Resource *buffer,
|
---|
| 2074 | UINT64 buffer_offset,
|
---|
| 2075 | D3D12_TILE_COPY_FLAGS flags);
|
---|
| 2076 |
|
---|
| 2077 | void ResolveSubresource(ID3D12Resource *dst_resource, UINT dst_sub_resource,
|
---|
| 2078 | ID3D12Resource *src_resource, UINT src_sub_resource,
|
---|
| 2079 | DXGI_FORMAT format);
|
---|
| 2080 |
|
---|
| 2081 | void IASetPrimitiveTopology(D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
|
---|
| 2082 |
|
---|
| 2083 | void RSSetViewports(UINT viewport_count, const D3D12_VIEWPORT *viewports);
|
---|
| 2084 | void RSSetScissorRects(UINT rect_count, const D3D12_RECT *rects);
|
---|
| 2085 |
|
---|
| 2086 | void OMSetBlendFactor(const FLOAT blend_factor[4]);
|
---|
| 2087 | void OMSetStencilRef(UINT stencil_ref);
|
---|
| 2088 |
|
---|
| 2089 | void SetPipelineState(ID3D12PipelineState *pipeline_state);
|
---|
| 2090 |
|
---|
| 2091 | void ResourceBarrier(UINT barrier_count, const D3D12_RESOURCE_BARRIER *barriers);
|
---|
| 2092 |
|
---|
| 2093 | void ExecuteBundle(ID3D12GraphicsCommandList *command_list);
|
---|
| 2094 |
|
---|
| 2095 | void SetDescriptorHeaps(UINT heap_count, ID3D12DescriptorHeap * const *heaps);
|
---|
| 2096 |
|
---|
| 2097 | void SetComputeRootSignature(ID3D12RootSignature *root_signature);
|
---|
| 2098 | void SetGraphicsRootSignature(ID3D12RootSignature *root_signature);
|
---|
| 2099 |
|
---|
| 2100 | void SetComputeRootDescriptorTable(UINT root_parameter_index, D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
|
---|
| 2101 | void SetGraphicsRootDescriptorTable(UINT root_parameter_index, D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
|
---|
| 2102 |
|
---|
| 2103 | void SetComputeRoot32BitConstant(UINT root_parameter_index, UINT data, UINT dst_offset);
|
---|
| 2104 | void SetGraphicsRoot32BitConstant(UINT root_parameter_index, UINT data, UINT dst_offset);
|
---|
| 2105 |
|
---|
| 2106 | void SetComputeRoot32BitConstants(UINT root_parameter_index, UINT constant_count, const void *data,
|
---|
| 2107 | UINT dst_offset);
|
---|
| 2108 | void SetGraphicsRoot32BitConstants(UINT root_parameter_index, UINT constant_count, const void *data,
|
---|
| 2109 | UINT dst_offset);
|
---|
| 2110 |
|
---|
| 2111 | void SetComputeRootConstantBufferView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
|
---|
| 2112 | void SetGraphicsRootConstantBufferView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
|
---|
| 2113 |
|
---|
| 2114 | void SetComputeRootShaderResourceView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
|
---|
| 2115 | void SetGraphicsRootShaderResourceView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
|
---|
| 2116 |
|
---|
| 2117 | void SetComputeRootUnorderedAccessView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
|
---|
| 2118 | void SetGraphicsRootUnorderedAccessView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
|
---|
| 2119 |
|
---|
| 2120 | void IASetIndexBuffer(const D3D12_INDEX_BUFFER_VIEW *view);
|
---|
| 2121 | void IASetVertexBuffers(UINT start_slot, UINT view_count, const D3D12_VERTEX_BUFFER_VIEW *views);
|
---|
| 2122 |
|
---|
| 2123 | void SOSetTargets(UINT start_slot, UINT view_count, const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
|
---|
| 2124 |
|
---|
| 2125 | void OMSetRenderTargets(UINT render_target_descriptor_count,
|
---|
| 2126 | const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
|
---|
| 2127 | BOOL single_descriptor_handle,
|
---|
| 2128 | const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
|
---|
| 2129 |
|
---|
| 2130 | void ClearDepthStencilView(D3D12_CPU_DESCRIPTOR_HANDLE dsv, D3D12_CLEAR_FLAGS flags,
|
---|
| 2131 | FLOAT depth, UINT8 stencil, UINT rect_count, const D3D12_RECT *rects);
|
---|
| 2132 | void ClearRenderTargetView(D3D12_CPU_DESCRIPTOR_HANDLE rtv, const FLOAT color[4],
|
---|
| 2133 | UINT rect_count, const D3D12_RECT *rects);
|
---|
| 2134 | void ClearUnorderedAccessViewUint(D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
|
---|
| 2135 | D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, ID3D12Resource *resource, const UINT values[4],
|
---|
| 2136 | UINT rect_count, const D3D12_RECT *rects);
|
---|
| 2137 | void ClearUnorderedAccessViewFloat(D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
|
---|
| 2138 | D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, ID3D12Resource *resource, const float values[4],
|
---|
| 2139 | UINT rect_count, const D3D12_RECT *rects);
|
---|
| 2140 |
|
---|
| 2141 | void DiscardResource(ID3D12Resource *resource, const D3D12_DISCARD_REGION *region);
|
---|
| 2142 |
|
---|
| 2143 | void BeginQuery(ID3D12QueryHeap *heap, D3D12_QUERY_TYPE type, UINT index);
|
---|
| 2144 | void EndQuery(ID3D12QueryHeap *heap, D3D12_QUERY_TYPE type, UINT index);
|
---|
| 2145 | void ResolveQueryData(ID3D12QueryHeap *heap, D3D12_QUERY_TYPE type,
|
---|
| 2146 | UINT start_index, UINT query_count,
|
---|
| 2147 | ID3D12Resource *dst_buffer, UINT64 aligned_dst_buffer_offset);
|
---|
| 2148 |
|
---|
| 2149 | void SetPredication(ID3D12Resource *buffer, UINT64 aligned_buffer_offset,
|
---|
| 2150 | D3D12_PREDICATION_OP operation);
|
---|
| 2151 |
|
---|
| 2152 | void SetMarker(UINT metadata, const void *data, UINT size);
|
---|
| 2153 | void BeginEvent(UINT metadata, const void *data, UINT size);
|
---|
| 2154 | void EndEvent();
|
---|
| 2155 |
|
---|
| 2156 | void ExecuteIndirect(ID3D12CommandSignature *command_signature,
|
---|
| 2157 | UINT max_command_count, ID3D12Resource *arg_buffer, UINT64 arg_buffer_offset,
|
---|
| 2158 | ID3D12Resource *count_buffer, UINT64 count_buffer_offset);
|
---|
| 2159 | }
|
---|
| 2160 |
|
---|
| 2161 | [
|
---|
| 2162 | uuid(553103fb-1fe7-4557-bb38-946d7d0e7ca7),
|
---|
| 2163 | object,
|
---|
| 2164 | local,
|
---|
| 2165 | pointer_default(unique)
|
---|
| 2166 | ]
|
---|
| 2167 | interface ID3D12GraphicsCommandList1 : ID3D12GraphicsCommandList
|
---|
| 2168 | {
|
---|
| 2169 | void AtomicCopyBufferUINT(ID3D12Resource *dst_buffer, UINT64 dst_offset,
|
---|
| 2170 | ID3D12Resource *src_buffer, UINT64 src_offset,
|
---|
| 2171 | UINT dependent_resource_count, ID3D12Resource * const *dependent_resources,
|
---|
| 2172 | const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
|
---|
| 2173 |
|
---|
| 2174 | void AtomicCopyBufferUINT64(ID3D12Resource *dst_buffer, UINT64 dst_offset,
|
---|
| 2175 | ID3D12Resource *src_buffer, UINT64 src_offset,
|
---|
| 2176 | UINT dependent_resource_count, ID3D12Resource * const *dependent_resources,
|
---|
| 2177 | const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
|
---|
| 2178 |
|
---|
| 2179 | void OMSetDepthBounds(FLOAT min, FLOAT max);
|
---|
| 2180 |
|
---|
| 2181 | void SetSamplePositions(UINT sample_count, UINT pixel_count,
|
---|
| 2182 | D3D12_SAMPLE_POSITION *sample_positions);
|
---|
| 2183 |
|
---|
| 2184 | void ResolveSubresourceRegion(ID3D12Resource *dst_resource,
|
---|
| 2185 | UINT dst_sub_resource_idx, UINT dst_x, UINT dst_y,
|
---|
| 2186 | ID3D12Resource *src_resource, UINT src_sub_resource_idx,
|
---|
| 2187 | D3D12_RECT *src_rect, DXGI_FORMAT format, D3D12_RESOLVE_MODE mode);
|
---|
| 2188 |
|
---|
| 2189 | void SetViewInstanceMask(UINT mask);
|
---|
| 2190 | }
|
---|
| 2191 |
|
---|
| 2192 | [
|
---|
| 2193 | uuid(38c3e585-ff17-412c-9150-4fc6f9d72a28),
|
---|
| 2194 | object,
|
---|
| 2195 | local,
|
---|
| 2196 | pointer_default(unique)
|
---|
| 2197 | ]
|
---|
| 2198 | interface ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1
|
---|
| 2199 | {
|
---|
| 2200 | void WriteBufferImmediate(UINT count,
|
---|
| 2201 | const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
|
---|
| 2202 | const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
|
---|
| 2203 | }
|
---|
| 2204 |
|
---|
| 2205 | typedef enum D3D12_TILE_RANGE_FLAGS
|
---|
| 2206 | {
|
---|
| 2207 | D3D12_TILE_RANGE_FLAG_NONE = 0x0,
|
---|
| 2208 | D3D12_TILE_RANGE_FLAG_NULL = 0x1,
|
---|
| 2209 | D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
|
---|
| 2210 | D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
|
---|
| 2211 | } D3D12_TILE_RANGE_FLAGS;
|
---|
| 2212 |
|
---|
| 2213 | typedef enum D3D12_TILE_MAPPING_FLAGS
|
---|
| 2214 | {
|
---|
| 2215 | D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
|
---|
| 2216 | D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1,
|
---|
| 2217 | } D3D12_TILE_MAPPING_FLAGS;
|
---|
| 2218 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_MAPPING_FLAGS);")
|
---|
| 2219 |
|
---|
| 2220 | [
|
---|
| 2221 | uuid(0ec870a6-5d7e-4c22-8cfc-5baae07616ed),
|
---|
| 2222 | object,
|
---|
| 2223 | local,
|
---|
| 2224 | pointer_default(unique)
|
---|
| 2225 | ]
|
---|
| 2226 | interface ID3D12CommandQueue : ID3D12Pageable
|
---|
| 2227 | {
|
---|
| 2228 | void UpdateTileMappings(ID3D12Resource *resource, UINT region_count,
|
---|
| 2229 | const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
|
---|
| 2230 | const D3D12_TILE_REGION_SIZE *region_sizes,
|
---|
| 2231 | UINT range_count,
|
---|
| 2232 | const D3D12_TILE_RANGE_FLAGS *range_flags,
|
---|
| 2233 | UINT *heap_range_offsets,
|
---|
| 2234 | UINT *range_tile_counts,
|
---|
| 2235 | D3D12_TILE_MAPPING_FLAGS flags);
|
---|
| 2236 |
|
---|
| 2237 | void CopyTileMappings(ID3D12Resource *dst_resource,
|
---|
| 2238 | const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
|
---|
| 2239 | ID3D12Resource *src_resource,
|
---|
| 2240 | const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
|
---|
| 2241 | const D3D12_TILE_REGION_SIZE *region_size,
|
---|
| 2242 | D3D12_TILE_MAPPING_FLAGS flags);
|
---|
| 2243 |
|
---|
| 2244 | void ExecuteCommandLists(UINT command_list_count,
|
---|
| 2245 | ID3D12CommandList * const * command_lists);
|
---|
| 2246 |
|
---|
| 2247 | void SetMarker(UINT metadata, const void *data, UINT size);
|
---|
| 2248 | void BeginEvent(UINT metadata, const void *data, UINT size);
|
---|
| 2249 | void EndEvent();
|
---|
| 2250 |
|
---|
| 2251 | HRESULT Signal(ID3D12Fence *fence, UINT64 value);
|
---|
| 2252 | HRESULT Wait(ID3D12Fence *fence, UINT64 value);
|
---|
| 2253 |
|
---|
| 2254 | HRESULT GetTimestampFrequency(UINT64 *frequency);
|
---|
| 2255 | HRESULT GetClockCalibration(UINT64 *gpu_timestamp, UINT64 *cpu_timestamp);
|
---|
| 2256 |
|
---|
| 2257 | D3D12_COMMAND_QUEUE_DESC GetDesc();
|
---|
| 2258 | }
|
---|
| 2259 |
|
---|
| 2260 | typedef enum D3D12_FENCE_FLAGS
|
---|
| 2261 | {
|
---|
| 2262 | D3D12_FENCE_FLAG_NONE = 0x0,
|
---|
| 2263 | D3D12_FENCE_FLAG_SHARED = 0x1,
|
---|
| 2264 | D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
|
---|
| 2265 | } D3D12_FENCE_FLAGS;
|
---|
| 2266 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS);")
|
---|
| 2267 |
|
---|
| 2268 | typedef enum D3D12_QUERY_HEAP_TYPE
|
---|
| 2269 | {
|
---|
| 2270 | D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
|
---|
| 2271 | D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
|
---|
| 2272 | D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
|
---|
| 2273 | D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
|
---|
| 2274 | } D3D12_QUERY_HEAP_TYPE;
|
---|
| 2275 |
|
---|
| 2276 | typedef struct D3D12_QUERY_HEAP_DESC
|
---|
| 2277 | {
|
---|
| 2278 | D3D12_QUERY_HEAP_TYPE Type;
|
---|
| 2279 | UINT Count;
|
---|
| 2280 | UINT NodeMask;
|
---|
| 2281 | } D3D12_QUERY_HEAP_DESC;
|
---|
| 2282 |
|
---|
| 2283 | typedef enum D3D12_INDIRECT_ARGUMENT_TYPE
|
---|
| 2284 | {
|
---|
| 2285 | D3D12_INDIRECT_ARGUMENT_TYPE_DRAW,
|
---|
| 2286 | D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED,
|
---|
| 2287 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH,
|
---|
| 2288 | D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW,
|
---|
| 2289 | D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW,
|
---|
| 2290 | D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT,
|
---|
| 2291 | D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW,
|
---|
| 2292 | D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW,
|
---|
| 2293 | D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW,
|
---|
| 2294 | } D3D12_INDIRECT_ARGUMENT_TYPE;
|
---|
| 2295 |
|
---|
| 2296 | typedef struct D3D12_INDIRECT_ARGUMENT_DESC
|
---|
| 2297 | {
|
---|
| 2298 | D3D12_INDIRECT_ARGUMENT_TYPE Type;
|
---|
| 2299 | union
|
---|
| 2300 | {
|
---|
| 2301 | struct
|
---|
| 2302 | {
|
---|
| 2303 | UINT Slot;
|
---|
| 2304 | } VertexBuffer;
|
---|
| 2305 | struct
|
---|
| 2306 | {
|
---|
| 2307 | UINT RootParameterIndex;
|
---|
| 2308 | UINT DestOffsetIn32BitValues;
|
---|
| 2309 | UINT Num32BitValuesToSet;
|
---|
| 2310 | } Constant;
|
---|
| 2311 | struct
|
---|
| 2312 | {
|
---|
| 2313 | UINT RootParameterIndex;
|
---|
| 2314 | } ConstantBufferView;
|
---|
| 2315 | struct
|
---|
| 2316 | {
|
---|
| 2317 | UINT RootParameterIndex;
|
---|
| 2318 | } ShaderResourceView;
|
---|
| 2319 | struct
|
---|
| 2320 | {
|
---|
| 2321 | UINT RootParameterIndex;
|
---|
| 2322 | } UnorderedAccessView;
|
---|
| 2323 | };
|
---|
| 2324 | } D3D12_INDIRECT_ARGUMENT_DESC;
|
---|
| 2325 |
|
---|
| 2326 | typedef struct D3D12_COMMAND_SIGNATURE_DESC
|
---|
| 2327 | {
|
---|
| 2328 | UINT ByteStride;
|
---|
| 2329 | UINT NumArgumentDescs;
|
---|
| 2330 | const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
|
---|
| 2331 | UINT NodeMask;
|
---|
| 2332 | } D3D12_COMMAND_SIGNATURE_DESC;
|
---|
| 2333 |
|
---|
| 2334 | [
|
---|
| 2335 | uuid(c54a6b66-72df-4ee8-8be5-a946a1429214),
|
---|
| 2336 | object,
|
---|
| 2337 | local,
|
---|
| 2338 | pointer_default(unique)
|
---|
| 2339 | ]
|
---|
| 2340 | interface ID3D12RootSignature : ID3D12DeviceChild
|
---|
| 2341 | {
|
---|
| 2342 | }
|
---|
| 2343 |
|
---|
| 2344 | [
|
---|
| 2345 | uuid(765a30f3-f624-4c6f-a828-ace948622445),
|
---|
| 2346 | object,
|
---|
| 2347 | local,
|
---|
| 2348 | pointer_default(unique)
|
---|
| 2349 | ]
|
---|
| 2350 | interface ID3D12PipelineState : ID3D12Pageable
|
---|
| 2351 | {
|
---|
| 2352 | HRESULT GetCachedBlob(ID3DBlob **blob);
|
---|
| 2353 | }
|
---|
| 2354 |
|
---|
| 2355 | [
|
---|
| 2356 | uuid(0a753dcf-c4d8-4b91-adf6-be5a60d95a76),
|
---|
| 2357 | object,
|
---|
| 2358 | local,
|
---|
| 2359 | pointer_default(unique)
|
---|
| 2360 | ]
|
---|
| 2361 | interface ID3D12Fence : ID3D12Pageable
|
---|
| 2362 | {
|
---|
| 2363 | UINT64 GetCompletedValue();
|
---|
| 2364 | HRESULT SetEventOnCompletion(UINT64 value, HANDLE event);
|
---|
| 2365 | HRESULT Signal(UINT64 value);
|
---|
| 2366 | }
|
---|
| 2367 |
|
---|
| 2368 | [
|
---|
| 2369 | uuid(6102dee4-af59-4b09-b999-b44d73f09b24),
|
---|
| 2370 | object,
|
---|
| 2371 | local,
|
---|
| 2372 | pointer_default(unique)
|
---|
| 2373 | ]
|
---|
| 2374 | interface ID3D12CommandAllocator : ID3D12Pageable
|
---|
| 2375 | {
|
---|
| 2376 | HRESULT Reset();
|
---|
| 2377 | }
|
---|
| 2378 |
|
---|
| 2379 | [
|
---|
| 2380 | uuid(189819f1-1db6-4b57-be54-1821339b85f7),
|
---|
| 2381 | object,
|
---|
| 2382 | local,
|
---|
| 2383 | pointer_default(unique)
|
---|
| 2384 | ]
|
---|
| 2385 | interface ID3D12Device : ID3D12Object
|
---|
| 2386 | {
|
---|
| 2387 | UINT GetNodeCount();
|
---|
| 2388 |
|
---|
| 2389 | HRESULT CreateCommandQueue(const D3D12_COMMAND_QUEUE_DESC *desc,
|
---|
| 2390 | REFIID riid, void **command_queue);
|
---|
| 2391 | HRESULT CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE type,
|
---|
| 2392 | REFIID riid, void **command_allocator);
|
---|
| 2393 | HRESULT CreateGraphicsPipelineState(const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
|
---|
| 2394 | REFIID riid, void **pipeline_state);
|
---|
| 2395 | HRESULT CreateComputePipelineState(const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
|
---|
| 2396 | REFIID riid, void **pipeline_state);
|
---|
| 2397 | HRESULT CreateCommandList(UINT node_mask,
|
---|
| 2398 | D3D12_COMMAND_LIST_TYPE type,
|
---|
| 2399 | ID3D12CommandAllocator *command_allocator,
|
---|
| 2400 | ID3D12PipelineState *initial_pipeline_state,
|
---|
| 2401 | REFIID riid, void **command_list);
|
---|
| 2402 |
|
---|
| 2403 | HRESULT CheckFeatureSupport(D3D12_FEATURE feature,
|
---|
| 2404 | void *feature_data, UINT feature_data_size);
|
---|
| 2405 |
|
---|
| 2406 | HRESULT CreateDescriptorHeap(const D3D12_DESCRIPTOR_HEAP_DESC *desc,
|
---|
| 2407 | REFIID riid, void **descriptor_heap);
|
---|
| 2408 | UINT GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
|
---|
| 2409 |
|
---|
| 2410 | HRESULT CreateRootSignature(UINT node_mask,
|
---|
| 2411 | const void *bytecode, SIZE_T bytecode_length,
|
---|
| 2412 | REFIID riid, void **root_signature);
|
---|
| 2413 |
|
---|
| 2414 | void CreateConstantBufferView(const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
|
---|
| 2415 | D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
|
---|
| 2416 | void CreateShaderResourceView(ID3D12Resource *resource,
|
---|
| 2417 | const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
|
---|
| 2418 | D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
|
---|
| 2419 | void CreateUnorderedAccessView(ID3D12Resource *resource, ID3D12Resource *counter_resource,
|
---|
| 2420 | const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
|
---|
| 2421 | D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
|
---|
| 2422 | void CreateRenderTargetView(ID3D12Resource *resource,
|
---|
| 2423 | const D3D12_RENDER_TARGET_VIEW_DESC *desc,
|
---|
| 2424 | D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
|
---|
| 2425 | void CreateDepthStencilView(ID3D12Resource *resource,
|
---|
| 2426 | const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
|
---|
| 2427 | D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
|
---|
| 2428 | void CreateSampler(const D3D12_SAMPLER_DESC *desc,
|
---|
| 2429 | D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
|
---|
| 2430 |
|
---|
| 2431 | void CopyDescriptors(UINT dst_descriptor_range_count,
|
---|
| 2432 | const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
|
---|
| 2433 | const UINT *dst_descriptor_range_sizes,
|
---|
| 2434 | UINT src_descriptor_range_count,
|
---|
| 2435 | const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
|
---|
| 2436 | const UINT *src_descriptor_range_sizes,
|
---|
| 2437 | D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
|
---|
| 2438 | void CopyDescriptorsSimple(UINT descriptor_count,
|
---|
| 2439 | const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
|
---|
| 2440 | const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
|
---|
| 2441 | D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
|
---|
| 2442 |
|
---|
| 2443 | D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(UINT visible_mask,
|
---|
| 2444 | UINT reource_desc_count, const D3D12_RESOURCE_DESC *resource_descs);
|
---|
| 2445 |
|
---|
| 2446 | D3D12_HEAP_PROPERTIES GetCustomHeapProperties(UINT node_mask,
|
---|
| 2447 | D3D12_HEAP_TYPE heap_type);
|
---|
| 2448 |
|
---|
| 2449 | HRESULT CreateCommittedResource(const D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS heap_flags,
|
---|
| 2450 | const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state,
|
---|
| 2451 | const D3D12_CLEAR_VALUE *optimized_clear_value,
|
---|
| 2452 | REFIID riid, void **resource);
|
---|
| 2453 |
|
---|
| 2454 | HRESULT CreateHeap(const D3D12_HEAP_DESC *desc, REFIID riid, void **heap);
|
---|
| 2455 |
|
---|
| 2456 | HRESULT CreatePlacedResource(ID3D12Heap *heap, UINT64 heap_offset,
|
---|
| 2457 | const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state,
|
---|
| 2458 | const D3D12_CLEAR_VALUE *optimized_clear_value,
|
---|
| 2459 | REFIID riid, void **resource);
|
---|
| 2460 | HRESULT CreateReservedResource(const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state,
|
---|
| 2461 | const D3D12_CLEAR_VALUE *optimized_clear_value,
|
---|
| 2462 | REFIID riid, void **resource);
|
---|
| 2463 |
|
---|
| 2464 | HRESULT CreateSharedHandle(ID3D12DeviceChild *object,
|
---|
| 2465 | const SECURITY_ATTRIBUTES *attributes, DWORD access,
|
---|
| 2466 | const WCHAR *name, HANDLE *handle);
|
---|
| 2467 | HRESULT OpenSharedHandle(HANDLE handle,
|
---|
| 2468 | REFIID riid, void **object);
|
---|
| 2469 | HRESULT OpenSharedHandleByName(const WCHAR *name, DWORD access, HANDLE *handle);
|
---|
| 2470 |
|
---|
| 2471 | HRESULT MakeResident(UINT object_count, ID3D12Pageable * const *objects);
|
---|
| 2472 | HRESULT Evict(UINT object_count, ID3D12Pageable * const *objects);
|
---|
| 2473 |
|
---|
| 2474 | HRESULT CreateFence(UINT64 initial_value, D3D12_FENCE_FLAGS flags, REFIID riid, void **fence);
|
---|
| 2475 |
|
---|
| 2476 | HRESULT GetDeviceRemovedReason();
|
---|
| 2477 |
|
---|
| 2478 | void GetCopyableFootprints(const D3D12_RESOURCE_DESC *desc,
|
---|
| 2479 | UINT first_sub_resource,
|
---|
| 2480 | UINT sub_resource_count,
|
---|
| 2481 | UINT64 base_offset,
|
---|
| 2482 | D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
|
---|
| 2483 | UINT *row_count,
|
---|
| 2484 | UINT64 *row_size,
|
---|
| 2485 | UINT64 *total_bytes);
|
---|
| 2486 |
|
---|
| 2487 | HRESULT CreateQueryHeap(const D3D12_QUERY_HEAP_DESC *desc,
|
---|
| 2488 | REFIID riid, void **heap);
|
---|
| 2489 |
|
---|
| 2490 | HRESULT SetStablePowerState(BOOL enable);
|
---|
| 2491 |
|
---|
| 2492 | HRESULT CreateCommandSignature(const D3D12_COMMAND_SIGNATURE_DESC *desc,
|
---|
| 2493 | ID3D12RootSignature *root_signature,
|
---|
| 2494 | REFIID riid, void **command_signature);
|
---|
| 2495 |
|
---|
| 2496 | void GetResourceTiling(ID3D12Resource *resource,
|
---|
| 2497 | UINT *total_tile_count,
|
---|
| 2498 | D3D12_PACKED_MIP_INFO *packed_mip_info,
|
---|
| 2499 | D3D12_TILE_SHAPE *standard_tile_shape,
|
---|
| 2500 | UINT *sub_resource_tiling_count,
|
---|
| 2501 | UINT first_sub_resource_tiling,
|
---|
| 2502 | D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
|
---|
| 2503 |
|
---|
| 2504 | LUID GetAdapterLuid();
|
---|
| 2505 | }
|
---|
| 2506 |
|
---|
| 2507 | [
|
---|
| 2508 | uuid(77acce80-638e-4e65-8895-c1f23386863e),
|
---|
| 2509 | object,
|
---|
| 2510 | local,
|
---|
| 2511 | pointer_default(unique)
|
---|
| 2512 | ]
|
---|
| 2513 | interface ID3D12Device1 : ID3D12Device
|
---|
| 2514 | {
|
---|
| 2515 | HRESULT CreatePipelineLibrary(const void *blob, SIZE_T blob_size, REFIID iid, void **lib);
|
---|
| 2516 |
|
---|
| 2517 | HRESULT SetEventOnMultipleFenceCompletion(ID3D12Fence * const *fences,
|
---|
| 2518 | const UINT64 *values, UINT fence_count, D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags, HANDLE event);
|
---|
| 2519 |
|
---|
| 2520 | HRESULT SetResidencyPriority(UINT object_count, ID3D12Pageable * const *objects,
|
---|
| 2521 | const D3D12_RESIDENCY_PRIORITY *priorities);
|
---|
| 2522 | }
|
---|
| 2523 |
|
---|
| 2524 | [
|
---|
| 2525 | uuid(34ab647b-3cc8-46ac-841b-c0965645c046),
|
---|
| 2526 | object,
|
---|
| 2527 | local,
|
---|
| 2528 | pointer_default(unique)
|
---|
| 2529 | ]
|
---|
| 2530 | interface ID3D12RootSignatureDeserializer : IUnknown
|
---|
| 2531 | {
|
---|
| 2532 | const D3D12_ROOT_SIGNATURE_DESC *GetRootSignatureDesc();
|
---|
| 2533 | }
|
---|
| 2534 |
|
---|
| 2535 | [
|
---|
| 2536 | uuid(7f91ce67-090c-4bb7-b78e-ed8ff2e31da0),
|
---|
| 2537 | object,
|
---|
| 2538 | local,
|
---|
| 2539 | pointer_default(unique)
|
---|
| 2540 | ]
|
---|
| 2541 | interface ID3D12VersionedRootSignatureDeserializer : IUnknown
|
---|
| 2542 | {
|
---|
| 2543 | HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION version,
|
---|
| 2544 | const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc);
|
---|
| 2545 |
|
---|
| 2546 | const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *GetUnconvertedRootSignatureDesc();
|
---|
| 2547 | };
|
---|
| 2548 |
|
---|
| 2549 | [local] HRESULT __stdcall D3D12CreateRootSignatureDeserializer(
|
---|
| 2550 | const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
|
---|
| 2551 |
|
---|
| 2552 | typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(
|
---|
| 2553 | const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
|
---|
| 2554 |
|
---|
| 2555 | [local] HRESULT __stdcall D3D12CreateVersionedRootSignatureDeserializer(
|
---|
| 2556 | const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
|
---|
| 2557 |
|
---|
| 2558 | [local] HRESULT __stdcall D3D12SerializeRootSignature(
|
---|
| 2559 | const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,
|
---|
| 2560 | D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
|
---|
| 2561 |
|
---|
| 2562 | typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(
|
---|
| 2563 | const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc, ID3DBlob **blob, ID3DBlob **error_blob);
|
---|
| 2564 |
|
---|
| 2565 | [local] HRESULT __stdcall D3D12SerializeVersionedRootSignature(
|
---|
| 2566 | const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,
|
---|
| 2567 | ID3DBlob **blob, ID3DBlob **error_blob);
|
---|
| 2568 |
|
---|
| 2569 | typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,
|
---|
| 2570 | D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device);
|
---|
| 2571 |
|
---|
| 2572 | [local] HRESULT __stdcall D3D12CreateDevice(IUnknown *adapter,
|
---|
| 2573 | D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device);
|
---|
| 2574 |
|
---|
| 2575 | typedef HRESULT (__stdcall *PFN_D3D12_GET_DEBUG_INTERFACE)(REFIID iid, void **debug);
|
---|
| 2576 |
|
---|
| 2577 | [local] HRESULT __stdcall D3D12GetDebugInterface(REFIID iid, void **debug);
|
---|
| 2578 |
|
---|
| 2579 | [local] HRESULT __stdcall D3D12EnableExperimentalFeatures(UINT feature_count,
|
---|
| 2580 | const IID *iids, void *configurations, UINT *configurations_sizes);
|
---|