/*------------------------------------------------------------------------------------- * * Copyright (c) Microsoft Corporation * *-------------------------------------------------------------------------------------*/ /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 8.00.0613 */ /* verify that the version is high enough to compile this file*/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 500 #endif /* verify that the version is high enough to compile this file*/ #ifndef __REQUIRED_RPCSAL_H_VERSION__ #define __REQUIRED_RPCSAL_H_VERSION__ 100 #endif #include "rpc.h" #include "rpcndr.h" #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of #endif /* __RPCNDR_H_VERSION__ */ #ifndef COM_NO_WINDOWS_H #include "windows.h" #include "ole2.h" #endif /*COM_NO_WINDOWS_H*/ #ifndef __d3d12_h__ #define __d3d12_h__ #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /* Forward Declarations */ #ifndef __ID3D12Object_FWD_DEFINED__ #define __ID3D12Object_FWD_DEFINED__ typedef interface ID3D12Object ID3D12Object; #endif /* __ID3D12Object_FWD_DEFINED__ */ #ifndef __ID3D12DeviceChild_FWD_DEFINED__ #define __ID3D12DeviceChild_FWD_DEFINED__ typedef interface ID3D12DeviceChild ID3D12DeviceChild; #endif /* __ID3D12DeviceChild_FWD_DEFINED__ */ #ifndef __ID3D12RootSignature_FWD_DEFINED__ #define __ID3D12RootSignature_FWD_DEFINED__ typedef interface ID3D12RootSignature ID3D12RootSignature; #endif /* __ID3D12RootSignature_FWD_DEFINED__ */ #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__ #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__ typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; #endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */ #ifndef __ID3D12Pageable_FWD_DEFINED__ #define __ID3D12Pageable_FWD_DEFINED__ typedef interface ID3D12Pageable ID3D12Pageable; #endif /* __ID3D12Pageable_FWD_DEFINED__ */ #ifndef __ID3D12Heap_FWD_DEFINED__ #define __ID3D12Heap_FWD_DEFINED__ typedef interface ID3D12Heap ID3D12Heap; #endif /* __ID3D12Heap_FWD_DEFINED__ */ #ifndef __ID3D12Resource_FWD_DEFINED__ #define __ID3D12Resource_FWD_DEFINED__ typedef interface ID3D12Resource ID3D12Resource; #endif /* __ID3D12Resource_FWD_DEFINED__ */ #ifndef __ID3D12CommandAllocator_FWD_DEFINED__ #define __ID3D12CommandAllocator_FWD_DEFINED__ typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; #endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */ #ifndef __ID3D12Fence_FWD_DEFINED__ #define __ID3D12Fence_FWD_DEFINED__ typedef interface ID3D12Fence ID3D12Fence; #endif /* __ID3D12Fence_FWD_DEFINED__ */ #ifndef __ID3D12PipelineState_FWD_DEFINED__ #define __ID3D12PipelineState_FWD_DEFINED__ typedef interface ID3D12PipelineState ID3D12PipelineState; #endif /* __ID3D12PipelineState_FWD_DEFINED__ */ #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ #define __ID3D12DescriptorHeap_FWD_DEFINED__ typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; #endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */ #ifndef __ID3D12QueryHeap_FWD_DEFINED__ #define __ID3D12QueryHeap_FWD_DEFINED__ typedef interface ID3D12QueryHeap ID3D12QueryHeap; #endif /* __ID3D12QueryHeap_FWD_DEFINED__ */ #ifndef __ID3D12CommandSignature_FWD_DEFINED__ #define __ID3D12CommandSignature_FWD_DEFINED__ typedef interface ID3D12CommandSignature ID3D12CommandSignature; #endif /* __ID3D12CommandSignature_FWD_DEFINED__ */ #ifndef __ID3D12CommandList_FWD_DEFINED__ #define __ID3D12CommandList_FWD_DEFINED__ typedef interface ID3D12CommandList ID3D12CommandList; #endif /* __ID3D12CommandList_FWD_DEFINED__ */ #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ #define __ID3D12GraphicsCommandList_FWD_DEFINED__ typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; #endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */ #ifndef __ID3D12CommandQueue_FWD_DEFINED__ #define __ID3D12CommandQueue_FWD_DEFINED__ typedef interface ID3D12CommandQueue ID3D12CommandQueue; #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ #ifndef __ID3D12Device_FWD_DEFINED__ #define __ID3D12Device_FWD_DEFINED__ typedef interface ID3D12Device ID3D12Device; #endif /* __ID3D12Device_FWD_DEFINED__ */ /* header files for imported files */ #include "oaidl.h" #include "ocidl.h" #include "dxgi.h" #include "d3dcommon.h" #ifdef __cplusplus extern "C"{ #endif /* interface __MIDL_itf_d3d12_0000_0000 */ /* [local] */ #include #pragma region App Family #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) #ifndef _D3D12_CONSTANTS #define _D3D12_CONSTANTS #define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) #define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) #define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) #define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) #define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) #define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) #define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) #define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) #define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) #define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) #define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) #define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) #define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) #define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) #define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 ) #define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 ) #define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 ) #define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 ) #define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 ) #define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 ) #define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 ) #define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 ) #define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 ) #define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 ) #define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 ) #define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 ) #define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 ) #define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 ) #define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 ) #define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 ) #define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 ) #define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 ) #define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 ) #define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 ) #define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 ) #define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 ) #define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 ) #define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 ) #define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 ) #define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 ) #define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 ) #define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 ) #define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 ) #define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 ) #define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 ) #define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 ) #define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 ) #define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 ) #define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 ) #define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 ) #define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 ) #define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 ) #define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 ) #define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 ) #define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 ) #define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 ) #define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 ) #define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 ) #define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 ) #define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 ) #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 ) #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 ) #define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 ) #define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 ) #define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 ) #define D3D12_CS_THREADID_REGISTER_COUNT ( 1 ) #define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 ) #define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 ) #define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 ) #define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 ) #define D3D12_CS_THREAD_GROUP_MIN_X ( 1 ) #define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 ) #define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 ) #define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 ) #define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) #define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) #define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) #define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) #define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) #define D3D12_DEFAULT_DEPTH_BIAS ( 0 ) #define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) #define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 ) #define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f ) #define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 ) #define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) #define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) #define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff ) #define D3D12_DEFAULT_SCISSOR_ENDX ( 0 ) #define D3D12_DEFAULT_SCISSOR_ENDY ( 0 ) #define D3D12_DEFAULT_SCISSOR_STARTX ( 0 ) #define D3D12_DEFAULT_SCISSOR_STARTY ( 0 ) #define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) #define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff ) #define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 ) #define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) #define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) #define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 ) #define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) #define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) #define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) #define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) #define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 ) #define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff ) #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 ) #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) #define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 ) #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 ) #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 ) #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 ) #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) #define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 ) #define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) #define D3D12_FLOAT32_MAX ( 3.402823466e+38f ) #define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) #define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) #define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) #define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f ) #define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) #define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) #define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) #define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) #define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) #define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) #define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) #define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 ) #define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 ) #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 ) #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) #define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_GS_INPUT_REGISTER_COUNT ( 32 ) #define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 ) #define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 ) #define D3D12_GS_MAX_INSTANCE_COUNT ( 32 ) #define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 ) #define D3D12_GS_OUTPUT_ELEMENTS ( 32 ) #define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 ) #define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 ) #define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 ) #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) #define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 ) #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 ) #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) #define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) #define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f ) #define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f ) #define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 ) #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 ) #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 ) #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 ) #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 ) #define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) #define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) #define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) #define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) #define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 ) #define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) #define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 ) #define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) #define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 ) #define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) #define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) #define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) #define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff ) #define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff ) #define D3D12_LINEAR_GAMMA ( 1.0f ) #define D3D12_MAJOR_VERSION ( 12 ) #define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) #define D3D12_MAX_DEPTH ( 1.0f ) #define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 ) #define D3D12_MAX_MAXANISOTROPY ( 16 ) #define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) #define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f ) #define D3D12_MAX_ROOT_COST ( 64 ) #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 ) #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 ) #define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 ) #define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) #define D3D12_MINOR_VERSION ( 0 ) #define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) #define D3D12_MIN_DEPTH ( 0.0f ) #define D3D12_MIN_MAXANISOTROPY ( 0 ) #define D3D12_MIP_LOD_BIAS_MAX ( 15.99f ) #define D3D12_MIP_LOD_BIAS_MIN ( -16.0f ) #define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 ) #define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 ) #define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) #define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 ) #define D3D12_PACKED_TILE ( 0xffffffff ) #define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) #define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) #define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 ) #define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 ) #define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 ) #define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 ) #define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) #define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 ) #define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) #define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_PS_INPUT_REGISTER_COUNT ( 32 ) #define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 ) #define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) #define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 ) #define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) #define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 ) #define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 ) #define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) #define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) #define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 ) #define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) #define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) #define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 ) #define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) #define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) #define D3D12_REQ_MAXANISOTROPY ( 16 ) #define D3D12_REQ_MIP_LEVELS ( 15 ) #define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) #define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 ) #define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 ) #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 ) #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f ) #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 ) #define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 ) #define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 ) #define D3D12_REQ_SUBRESOURCES ( 30720 ) #define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 ) #define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 ) #define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 ) #define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 ) #define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) #define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 ) #define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) #define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff ) #define D3D12_SHADER_MAJOR_VERSION ( 5 ) #define D3D12_SHADER_MAX_INSTANCES ( 65535 ) #define D3D12_SHADER_MAX_INTERFACES ( 253 ) #define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 ) #define D3D12_SHADER_MAX_TYPES ( 65535 ) #define D3D12_SHADER_MINOR_VERSION ( 1 ) #define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) #define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) #define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) #define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) #define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 ) #define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) #define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 ) #define D3D12_SO_BUFFER_SLOT_COUNT ( 4 ) #define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) #define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff ) #define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 ) #define D3D12_SO_STREAM_COUNT ( 4 ) #define D3D12_SPEC_DATE_DAY ( 14 ) #define D3D12_SPEC_DATE_MONTH ( 11 ) #define D3D12_SPEC_DATE_YEAR ( 2014 ) #define D3D12_SPEC_VERSION ( 1.16 ) #define D3D12_SRGB_GAMMA ( 2.2f ) #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) #define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) #define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f ) #define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) #define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) #define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) #define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) #define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) #define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) #define D3D12_STANDARD_VECTOR_SIZE ( 4 ) #define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) #define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) #define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) #define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 ) #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) #define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 ) #define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 ) #define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 ) #define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 ) #define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 ) #define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 ) #define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 ) #define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) #define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 ) #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) #define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) #define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 ) #define D3D12_UAV_SLOT_COUNT ( 64 ) #define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) #define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) #define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 ) #define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 ) #define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_VS_INPUT_REGISTER_COUNT ( 32 ) #define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) #define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 ) #define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) #define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) #define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 ) #define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) #define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) #define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) #endif typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; typedef enum D3D12_COMMAND_LIST_TYPE { D3D12_COMMAND_LIST_TYPE_DIRECT = 0, D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, D3D12_COMMAND_LIST_TYPE_COPY = 3 } D3D12_COMMAND_LIST_TYPE; typedef enum D3D12_COMMAND_QUEUE_FLAGS { D3D12_COMMAND_QUEUE_FLAG_NONE = 0, D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1 } D3D12_COMMAND_QUEUE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ); typedef enum D3D12_COMMAND_QUEUE_PRIORITY { D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100 } D3D12_COMMAND_QUEUE_PRIORITY; typedef struct D3D12_COMMAND_QUEUE_DESC { D3D12_COMMAND_LIST_TYPE Type; INT Priority; D3D12_COMMAND_QUEUE_FLAGS Flags; UINT NodeMask; } D3D12_COMMAND_QUEUE_DESC; typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE { D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 } D3D12_PRIMITIVE_TOPOLOGY_TYPE; typedef enum D3D12_INPUT_CLASSIFICATION { D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 } D3D12_INPUT_CLASSIFICATION; typedef struct D3D12_INPUT_ELEMENT_DESC { LPCSTR SemanticName; UINT SemanticIndex; DXGI_FORMAT Format; UINT InputSlot; UINT AlignedByteOffset; D3D12_INPUT_CLASSIFICATION InputSlotClass; UINT InstanceDataStepRate; } D3D12_INPUT_ELEMENT_DESC; typedef enum D3D12_FILL_MODE { D3D12_FILL_MODE_WIREFRAME = 2, D3D12_FILL_MODE_SOLID = 3 } D3D12_FILL_MODE; typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; typedef D3D_PRIMITIVE D3D12_PRIMITIVE; typedef enum D3D12_CULL_MODE { D3D12_CULL_MODE_NONE = 1, D3D12_CULL_MODE_FRONT = 2, D3D12_CULL_MODE_BACK = 3 } D3D12_CULL_MODE; typedef struct D3D12_SO_DECLARATION_ENTRY { UINT Stream; LPCSTR SemanticName; UINT SemanticIndex; BYTE StartComponent; BYTE ComponentCount; BYTE OutputSlot; } D3D12_SO_DECLARATION_ENTRY; typedef struct D3D12_VIEWPORT { FLOAT TopLeftX; FLOAT TopLeftY; FLOAT Width; FLOAT Height; FLOAT MinDepth; FLOAT MaxDepth; } D3D12_VIEWPORT; typedef RECT D3D12_RECT; typedef struct D3D12_BOX { UINT left; UINT top; UINT front; UINT right; UINT bottom; UINT back; } D3D12_BOX; typedef enum D3D12_COMPARISON_FUNC { D3D12_COMPARISON_FUNC_NEVER = 1, D3D12_COMPARISON_FUNC_LESS = 2, D3D12_COMPARISON_FUNC_EQUAL = 3, D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, D3D12_COMPARISON_FUNC_GREATER = 5, D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, D3D12_COMPARISON_FUNC_ALWAYS = 8 } D3D12_COMPARISON_FUNC; typedef enum D3D12_DEPTH_WRITE_MASK { D3D12_DEPTH_WRITE_MASK_ZERO = 0, D3D12_DEPTH_WRITE_MASK_ALL = 1 } D3D12_DEPTH_WRITE_MASK; typedef enum D3D12_STENCIL_OP { D3D12_STENCIL_OP_KEEP = 1, D3D12_STENCIL_OP_ZERO = 2, D3D12_STENCIL_OP_REPLACE = 3, D3D12_STENCIL_OP_INCR_SAT = 4, D3D12_STENCIL_OP_DECR_SAT = 5, D3D12_STENCIL_OP_INVERT = 6, D3D12_STENCIL_OP_INCR = 7, D3D12_STENCIL_OP_DECR = 8 } D3D12_STENCIL_OP; typedef struct D3D12_DEPTH_STENCILOP_DESC { D3D12_STENCIL_OP StencilFailOp; D3D12_STENCIL_OP StencilDepthFailOp; D3D12_STENCIL_OP StencilPassOp; D3D12_COMPARISON_FUNC StencilFunc; } D3D12_DEPTH_STENCILOP_DESC; typedef struct D3D12_DEPTH_STENCIL_DESC { BOOL DepthEnable; D3D12_DEPTH_WRITE_MASK DepthWriteMask; D3D12_COMPARISON_FUNC DepthFunc; BOOL StencilEnable; UINT8 StencilReadMask; UINT8 StencilWriteMask; D3D12_DEPTH_STENCILOP_DESC FrontFace; D3D12_DEPTH_STENCILOP_DESC BackFace; } D3D12_DEPTH_STENCIL_DESC; typedef enum D3D12_BLEND { D3D12_BLEND_ZERO = 1, D3D12_BLEND_ONE = 2, D3D12_BLEND_SRC_COLOR = 3, D3D12_BLEND_INV_SRC_COLOR = 4, D3D12_BLEND_SRC_ALPHA = 5, D3D12_BLEND_INV_SRC_ALPHA = 6, D3D12_BLEND_DEST_ALPHA = 7, D3D12_BLEND_INV_DEST_ALPHA = 8, D3D12_BLEND_DEST_COLOR = 9, D3D12_BLEND_INV_DEST_COLOR = 10, D3D12_BLEND_SRC_ALPHA_SAT = 11, D3D12_BLEND_BLEND_FACTOR = 14, D3D12_BLEND_INV_BLEND_FACTOR = 15, D3D12_BLEND_SRC1_COLOR = 16, D3D12_BLEND_INV_SRC1_COLOR = 17, D3D12_BLEND_SRC1_ALPHA = 18, D3D12_BLEND_INV_SRC1_ALPHA = 19 } D3D12_BLEND; typedef enum D3D12_BLEND_OP { D3D12_BLEND_OP_ADD = 1, D3D12_BLEND_OP_SUBTRACT = 2, D3D12_BLEND_OP_REV_SUBTRACT = 3, D3D12_BLEND_OP_MIN = 4, D3D12_BLEND_OP_MAX = 5 } D3D12_BLEND_OP; typedef enum D3D12_COLOR_WRITE_ENABLE { D3D12_COLOR_WRITE_ENABLE_RED = 1, D3D12_COLOR_WRITE_ENABLE_GREEN = 2, D3D12_COLOR_WRITE_ENABLE_BLUE = 4, D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, D3D12_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D12_COLOR_WRITE_ENABLE_RED | D3D12_COLOR_WRITE_ENABLE_GREEN ) | D3D12_COLOR_WRITE_ENABLE_BLUE ) | D3D12_COLOR_WRITE_ENABLE_ALPHA ) } D3D12_COLOR_WRITE_ENABLE; typedef enum D3D12_LOGIC_OP { D3D12_LOGIC_OP_CLEAR = 0, D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) , D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) , D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) , D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) , D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) , D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) , D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) , D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) , D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) , D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) , D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) , D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) , D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) , D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) , D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 ) } D3D12_LOGIC_OP; typedef struct D3D12_RENDER_TARGET_BLEND_DESC { BOOL BlendEnable; BOOL LogicOpEnable; D3D12_BLEND SrcBlend; D3D12_BLEND DestBlend; D3D12_BLEND_OP BlendOp; D3D12_BLEND SrcBlendAlpha; D3D12_BLEND DestBlendAlpha; D3D12_BLEND_OP BlendOpAlpha; D3D12_LOGIC_OP LogicOp; UINT8 RenderTargetWriteMask; } D3D12_RENDER_TARGET_BLEND_DESC; typedef struct D3D12_BLEND_DESC { BOOL AlphaToCoverageEnable; BOOL IndependentBlendEnable; D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; } D3D12_BLEND_DESC; /* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE { D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 } D3D12_CONSERVATIVE_RASTERIZATION_MODE; typedef struct D3D12_RASTERIZER_DESC { D3D12_FILL_MODE FillMode; D3D12_CULL_MODE CullMode; BOOL FrontCounterClockwise; INT DepthBias; FLOAT DepthBiasClamp; FLOAT SlopeScaledDepthBias; BOOL DepthClipEnable; BOOL MultisampleEnable; BOOL AntialiasedLineEnable; UINT ForcedSampleCount; D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; } D3D12_RASTERIZER_DESC; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec; #ifndef __ID3D12Object_INTERFACE_DEFINED__ #define __ID3D12Object_INTERFACE_DEFINED__ /* interface ID3D12Object */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12Object; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8") ID3D12Object : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE GetPrivateData( _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0; virtual HRESULT STDMETHODCALLTYPE SetPrivateData( _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData) = 0; virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( _In_ REFGUID guid, _In_opt_ const IUnknown *pData) = 0; virtual HRESULT STDMETHODCALLTYPE SetName( _In_z_ LPCWSTR Name) = 0; }; #else /* C style interface */ typedef struct ID3D12ObjectVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12Object * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12Object * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12Object * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12Object * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12Object * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12Object * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12Object * This, _In_z_ LPCWSTR Name); END_INTERFACE } ID3D12ObjectVtbl; interface ID3D12Object { CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12Object_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12Object_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12Object_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12Object_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12Object_INTERFACE_DEFINED__ */ #ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__ #define __ID3D12DeviceChild_INTERFACE_DEFINED__ /* interface ID3D12DeviceChild */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12DeviceChild; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357") ID3D12DeviceChild : public ID3D12Object { public: virtual HRESULT STDMETHODCALLTYPE GetDevice( REFIID riid, _COM_Outptr_opt_ void **ppvDevice) = 0; }; #else /* C style interface */ typedef struct ID3D12DeviceChildVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12DeviceChild * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12DeviceChild * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12DeviceChild * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12DeviceChild * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12DeviceChild * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12DeviceChild * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12DeviceChild * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12DeviceChild * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); END_INTERFACE } ID3D12DeviceChildVtbl; interface ID3D12DeviceChild { CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12DeviceChild_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12DeviceChild_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12DeviceChild_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */ #ifndef __ID3D12RootSignature_INTERFACE_DEFINED__ #define __ID3D12RootSignature_INTERFACE_DEFINED__ /* interface ID3D12RootSignature */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12RootSignature; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214") ID3D12RootSignature : public ID3D12DeviceChild { public: }; #else /* C style interface */ typedef struct ID3D12RootSignatureVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12RootSignature * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12RootSignature * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12RootSignature * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12RootSignature * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12RootSignature * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12RootSignature * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12RootSignature * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12RootSignature * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); END_INTERFACE } ID3D12RootSignatureVtbl; interface ID3D12RootSignature { CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12RootSignature_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12RootSignature_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12RootSignature_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_d3d12_0000_0001 */ /* [local] */ typedef struct D3D12_SHADER_BYTECODE { _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode; SIZE_T BytecodeLength; } D3D12_SHADER_BYTECODE; typedef struct D3D12_STREAM_OUTPUT_DESC { _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; UINT NumEntries; _Field_size_full_(NumStrides) const UINT *pBufferStrides; UINT NumStrides; UINT RasterizedStream; } D3D12_STREAM_OUTPUT_DESC; typedef struct D3D12_INPUT_LAYOUT_DESC { _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; UINT NumElements; } D3D12_INPUT_LAYOUT_DESC; typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE { D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; typedef struct D3D12_CACHED_PIPELINE_STATE { _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob; SIZE_T CachedBlobSizeInBytes; } D3D12_CACHED_PIPELINE_STATE; typedef enum D3D12_PIPELINE_STATE_FLAGS { D3D12_PIPELINE_STATE_FLAG_NONE = 0, D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1 } D3D12_PIPELINE_STATE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS ); typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC { ID3D12RootSignature *pRootSignature; D3D12_SHADER_BYTECODE VS; D3D12_SHADER_BYTECODE PS; D3D12_SHADER_BYTECODE DS; D3D12_SHADER_BYTECODE HS; D3D12_SHADER_BYTECODE GS; D3D12_STREAM_OUTPUT_DESC StreamOutput; D3D12_BLEND_DESC BlendState; UINT SampleMask; D3D12_RASTERIZER_DESC RasterizerState; D3D12_DEPTH_STENCIL_DESC DepthStencilState; D3D12_INPUT_LAYOUT_DESC InputLayout; D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; UINT NumRenderTargets; DXGI_FORMAT RTVFormats[ 8 ]; DXGI_FORMAT DSVFormat; DXGI_SAMPLE_DESC SampleDesc; UINT NodeMask; D3D12_CACHED_PIPELINE_STATE CachedPSO; D3D12_PIPELINE_STATE_FLAGS Flags; } D3D12_GRAPHICS_PIPELINE_STATE_DESC; typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC { ID3D12RootSignature *pRootSignature; D3D12_SHADER_BYTECODE CS; UINT NodeMask; D3D12_CACHED_PIPELINE_STATE CachedPSO; D3D12_PIPELINE_STATE_FLAGS Flags; } D3D12_COMPUTE_PIPELINE_STATE_DESC; typedef enum D3D12_FEATURE { D3D12_FEATURE_D3D12_OPTIONS = 0, D3D12_FEATURE_ARCHITECTURE = ( D3D12_FEATURE_D3D12_OPTIONS + 1 ) , D3D12_FEATURE_FEATURE_LEVELS = ( D3D12_FEATURE_ARCHITECTURE + 1 ) , D3D12_FEATURE_FORMAT_SUPPORT = ( D3D12_FEATURE_FEATURE_LEVELS + 1 ) , D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = ( D3D12_FEATURE_FORMAT_SUPPORT + 1 ) , D3D12_FEATURE_FORMAT_INFO = ( D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS + 1 ) , D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = ( D3D12_FEATURE_FORMAT_INFO + 1 ) } D3D12_FEATURE; typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT { D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0, D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 } D3D12_SHADER_MIN_PRECISION_SUPPORT; DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT ); typedef enum D3D12_TILED_RESOURCES_TIER { D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, D3D12_TILED_RESOURCES_TIER_1 = 1, D3D12_TILED_RESOURCES_TIER_2 = 2, D3D12_TILED_RESOURCES_TIER_3 = 3 } D3D12_TILED_RESOURCES_TIER; typedef enum D3D12_RESOURCE_BINDING_TIER { D3D12_RESOURCE_BINDING_TIER_1 = 1, D3D12_RESOURCE_BINDING_TIER_2 = 2, D3D12_RESOURCE_BINDING_TIER_3 = 3 } D3D12_RESOURCE_BINDING_TIER; typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER { D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 } D3D12_CONSERVATIVE_RASTERIZATION_TIER; typedef enum D3D12_FORMAT_SUPPORT1 { D3D12_FORMAT_SUPPORT1_NONE = 0, D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, D3D12_FORMAT_SUPPORT1_MIP = 0x1000, D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 } D3D12_FORMAT_SUPPORT1; DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 ); typedef enum D3D12_FORMAT_SUPPORT2 { D3D12_FORMAT_SUPPORT2_NONE = 0, D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, D3D12_FORMAT_SUPPORT2_TILED = 0x200, D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000 } D3D12_FORMAT_SUPPORT2; DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ); typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS { D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS ); typedef enum D3D12_CROSS_NODE_SHARING_TIER { D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, D3D12_CROSS_NODE_SHARING_TIER_1 = 2, D3D12_CROSS_NODE_SHARING_TIER_2 = 3 } D3D12_CROSS_NODE_SHARING_TIER; typedef enum D3D12_RESOURCE_HEAP_TIER { D3D12_RESOURCE_HEAP_TIER_1 = 1, D3D12_RESOURCE_HEAP_TIER_2 = 2 } D3D12_RESOURCE_HEAP_TIER; typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS { _Out_ BOOL DoublePrecisionFloatShaderOps; _Out_ BOOL OutputMergerLogicOp; _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier; _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; _Out_ BOOL PSSpecifiedStencilRefSupported; _Out_ BOOL TypedUAVLoadAdditionalFormats; _Out_ BOOL ROVsSupported; _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; _Out_ UINT MaxGPUVirtualAddressBitsPerResource; _Out_ BOOL StandardSwizzle64KBSupported; _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; _Out_ BOOL CrossAdapterRowMajorTextureSupported; _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; } D3D12_FEATURE_DATA_D3D12_OPTIONS; typedef struct D3D12_FEATURE_DATA_ARCHITECTURE { _In_ UINT NodeIndex; _Out_ BOOL TileBasedRenderer; _Out_ BOOL UMA; _Out_ BOOL CacheCoherentUMA; } D3D12_FEATURE_DATA_ARCHITECTURE; typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS { _In_ UINT NumFeatureLevels; _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; } D3D12_FEATURE_DATA_FEATURE_LEVELS; typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT { _In_ DXGI_FORMAT Format; _Out_ D3D12_FORMAT_SUPPORT1 Support1; _Out_ D3D12_FORMAT_SUPPORT2 Support2; } D3D12_FEATURE_DATA_FORMAT_SUPPORT; typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS { _In_ DXGI_FORMAT Format; _In_ UINT SampleCount; _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; _Out_ UINT NumQualityLevels; } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; typedef struct D3D12_FEATURE_DATA_FORMAT_INFO { DXGI_FORMAT Format; UINT8 PlaneCount; } D3D12_FEATURE_DATA_FORMAT_INFO; typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT { UINT MaxGPUVirtualAddressBitsPerResource; UINT MaxGPUVirtualAddressBitsPerProcess; } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; typedef struct D3D12_RESOURCE_ALLOCATION_INFO { UINT64 SizeInBytes; UINT64 Alignment; } D3D12_RESOURCE_ALLOCATION_INFO; typedef enum D3D12_HEAP_TYPE { D3D12_HEAP_TYPE_DEFAULT = 1, D3D12_HEAP_TYPE_UPLOAD = 2, D3D12_HEAP_TYPE_READBACK = 3, D3D12_HEAP_TYPE_CUSTOM = 4 } D3D12_HEAP_TYPE; typedef enum D3D12_CPU_PAGE_PROPERTY { D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 } D3D12_CPU_PAGE_PROPERTY; typedef enum D3D12_MEMORY_POOL { D3D12_MEMORY_POOL_UNKNOWN = 0, D3D12_MEMORY_POOL_L0 = 1, D3D12_MEMORY_POOL_L1 = 2 } D3D12_MEMORY_POOL; typedef struct D3D12_HEAP_PROPERTIES { D3D12_HEAP_TYPE Type; D3D12_CPU_PAGE_PROPERTY CPUPageProperty; D3D12_MEMORY_POOL MemoryPoolPreference; UINT CreationNodeMask; UINT VisibleNodeMask; } D3D12_HEAP_PROPERTIES; typedef enum D3D12_HEAP_FLAGS { D3D12_HEAP_FLAG_NONE = 0, D3D12_HEAP_FLAG_SHARED = 0x1, D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 } D3D12_HEAP_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS ); typedef struct D3D12_HEAP_DESC { UINT64 SizeInBytes; D3D12_HEAP_PROPERTIES Properties; UINT64 Alignment; D3D12_HEAP_FLAGS Flags; } D3D12_HEAP_DESC; typedef enum D3D12_RESOURCE_DIMENSION { D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, D3D12_RESOURCE_DIMENSION_BUFFER = 1, D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 } D3D12_RESOURCE_DIMENSION; typedef enum D3D12_TEXTURE_LAYOUT { D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 } D3D12_TEXTURE_LAYOUT; typedef enum D3D12_RESOURCE_FLAGS { D3D12_RESOURCE_FLAG_NONE = 0, D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20 } D3D12_RESOURCE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ); typedef struct D3D12_RESOURCE_DESC { D3D12_RESOURCE_DIMENSION Dimension; UINT64 Alignment; UINT64 Width; UINT Height; UINT16 DepthOrArraySize; UINT16 MipLevels; DXGI_FORMAT Format; DXGI_SAMPLE_DESC SampleDesc; D3D12_TEXTURE_LAYOUT Layout; D3D12_RESOURCE_FLAGS Flags; } D3D12_RESOURCE_DESC; typedef struct D3D12_DEPTH_STENCIL_VALUE { FLOAT Depth; UINT8 Stencil; } D3D12_DEPTH_STENCIL_VALUE; typedef struct D3D12_CLEAR_VALUE { DXGI_FORMAT Format; union { FLOAT Color[ 4 ]; D3D12_DEPTH_STENCIL_VALUE DepthStencil; } ; } D3D12_CLEAR_VALUE; typedef struct D3D12_RANGE { SIZE_T Begin; SIZE_T End; } D3D12_RANGE; typedef struct D3D12_SUBRESOURCE_INFO { UINT64 Offset; UINT RowPitch; UINT DepthPitch; } D3D12_SUBRESOURCE_INFO; typedef struct D3D12_TILED_RESOURCE_COORDINATE { UINT X; UINT Y; UINT Z; UINT Subresource; } D3D12_TILED_RESOURCE_COORDINATE; typedef struct D3D12_TILE_REGION_SIZE { UINT NumTiles; BOOL UseBox; UINT Width; UINT16 Height; UINT16 Depth; } D3D12_TILE_REGION_SIZE; typedef enum D3D12_TILE_RANGE_FLAGS { D3D12_TILE_RANGE_FLAG_NONE = 0, D3D12_TILE_RANGE_FLAG_NULL = 1, D3D12_TILE_RANGE_FLAG_SKIP = 2, D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4 } D3D12_TILE_RANGE_FLAGS; typedef struct D3D12_SUBRESOURCE_TILING { UINT WidthInTiles; UINT16 HeightInTiles; UINT16 DepthInTiles; UINT StartTileIndexInOverallResource; } D3D12_SUBRESOURCE_TILING; typedef struct D3D12_TILE_SHAPE { UINT WidthInTexels; UINT HeightInTexels; UINT DepthInTexels; } D3D12_TILE_SHAPE; typedef struct D3D12_PACKED_MIP_INFO { UINT8 NumStandardMips; UINT8 NumPackedMips; UINT NumTilesForPackedMips; UINT StartTileIndexInOverallResource; } D3D12_PACKED_MIP_INFO; typedef enum D3D12_TILE_MAPPING_FLAGS { D3D12_TILE_MAPPING_FLAG_NONE = 0, D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 } D3D12_TILE_MAPPING_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS ); typedef enum D3D12_TILE_COPY_FLAGS { D3D12_TILE_COPY_FLAG_NONE = 0, D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 } D3D12_TILE_COPY_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS ); typedef enum D3D12_RESOURCE_STATES { D3D12_RESOURCE_STATE_COMMON = 0, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, D3D12_RESOURCE_STATE_COPY_DEST = 0x400, D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , D3D12_RESOURCE_STATE_PRESENT = 0, D3D12_RESOURCE_STATE_PREDICATION = 0x200 } D3D12_RESOURCE_STATES; DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES ); typedef enum D3D12_RESOURCE_BARRIER_TYPE { D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) , D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 ) } D3D12_RESOURCE_BARRIER_TYPE; typedef struct D3D12_RESOURCE_TRANSITION_BARRIER { ID3D12Resource *pResource; UINT Subresource; D3D12_RESOURCE_STATES StateBefore; D3D12_RESOURCE_STATES StateAfter; } D3D12_RESOURCE_TRANSITION_BARRIER; typedef struct D3D12_RESOURCE_ALIASING_BARRIER { ID3D12Resource *pResourceBefore; ID3D12Resource *pResourceAfter; } D3D12_RESOURCE_ALIASING_BARRIER; typedef struct D3D12_RESOURCE_UAV_BARRIER { ID3D12Resource *pResource; } D3D12_RESOURCE_UAV_BARRIER; typedef enum D3D12_RESOURCE_BARRIER_FLAGS { D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 } D3D12_RESOURCE_BARRIER_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS ); typedef struct D3D12_RESOURCE_BARRIER { D3D12_RESOURCE_BARRIER_TYPE Type; D3D12_RESOURCE_BARRIER_FLAGS Flags; union { D3D12_RESOURCE_TRANSITION_BARRIER Transition; D3D12_RESOURCE_ALIASING_BARRIER Aliasing; D3D12_RESOURCE_UAV_BARRIER UAV; } ; } D3D12_RESOURCE_BARRIER; typedef struct D3D12_SUBRESOURCE_FOOTPRINT { DXGI_FORMAT Format; UINT Width; UINT Height; UINT Depth; UINT RowPitch; } D3D12_SUBRESOURCE_FOOTPRINT; typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT { UINT64 Offset; D3D12_SUBRESOURCE_FOOTPRINT Footprint; } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; typedef enum D3D12_TEXTURE_COPY_TYPE { D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 } D3D12_TEXTURE_COPY_TYPE; typedef struct D3D12_TEXTURE_COPY_LOCATION { ID3D12Resource *pResource; D3D12_TEXTURE_COPY_TYPE Type; union { D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; UINT SubresourceIndex; } ; } D3D12_TEXTURE_COPY_LOCATION; typedef enum D3D12_SHADER_COMPONENT_MAPPING { D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 } D3D12_SHADER_COMPONENT_MAPPING; #define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 #define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \ (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK)) #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) typedef enum D3D12_BUFFER_SRV_FLAGS { D3D12_BUFFER_SRV_FLAG_NONE = 0, D3D12_BUFFER_SRV_FLAG_RAW = 0x1 } D3D12_BUFFER_SRV_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS ); typedef struct D3D12_BUFFER_SRV { UINT64 FirstElement; UINT NumElements; UINT StructureByteStride; D3D12_BUFFER_SRV_FLAGS Flags; } D3D12_BUFFER_SRV; typedef struct D3D12_TEX1D_SRV { UINT MostDetailedMip; UINT MipLevels; FLOAT ResourceMinLODClamp; } D3D12_TEX1D_SRV; typedef struct D3D12_TEX1D_ARRAY_SRV { UINT MostDetailedMip; UINT MipLevels; UINT FirstArraySlice; UINT ArraySize; FLOAT ResourceMinLODClamp; } D3D12_TEX1D_ARRAY_SRV; typedef struct D3D12_TEX2D_SRV { UINT MostDetailedMip; UINT MipLevels; UINT PlaneSlice; FLOAT ResourceMinLODClamp; } D3D12_TEX2D_SRV; typedef struct D3D12_TEX2D_ARRAY_SRV { UINT MostDetailedMip; UINT MipLevels; UINT FirstArraySlice; UINT ArraySize; UINT PlaneSlice; FLOAT ResourceMinLODClamp; } D3D12_TEX2D_ARRAY_SRV; typedef struct D3D12_TEX3D_SRV { UINT MostDetailedMip; UINT MipLevels; FLOAT ResourceMinLODClamp; } D3D12_TEX3D_SRV; typedef struct D3D12_TEXCUBE_SRV { UINT MostDetailedMip; UINT MipLevels; FLOAT ResourceMinLODClamp; } D3D12_TEXCUBE_SRV; typedef struct D3D12_TEXCUBE_ARRAY_SRV { UINT MostDetailedMip; UINT MipLevels; UINT First2DArrayFace; UINT NumCubes; FLOAT ResourceMinLODClamp; } D3D12_TEXCUBE_ARRAY_SRV; typedef struct D3D12_TEX2DMS_SRV { UINT UnusedField_NothingToDefine; } D3D12_TEX2DMS_SRV; typedef struct D3D12_TEX2DMS_ARRAY_SRV { UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX2DMS_ARRAY_SRV; typedef enum D3D12_SRV_DIMENSION { D3D12_SRV_DIMENSION_UNKNOWN = 0, D3D12_SRV_DIMENSION_BUFFER = 1, D3D12_SRV_DIMENSION_TEXTURE1D = 2, D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, D3D12_SRV_DIMENSION_TEXTURE2D = 4, D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, D3D12_SRV_DIMENSION_TEXTURE3D = 8, D3D12_SRV_DIMENSION_TEXTURECUBE = 9, D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10 } D3D12_SRV_DIMENSION; typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC { DXGI_FORMAT Format; D3D12_SRV_DIMENSION ViewDimension; UINT Shader4ComponentMapping; union { D3D12_BUFFER_SRV Buffer; D3D12_TEX1D_SRV Texture1D; D3D12_TEX1D_ARRAY_SRV Texture1DArray; D3D12_TEX2D_SRV Texture2D; D3D12_TEX2D_ARRAY_SRV Texture2DArray; D3D12_TEX2DMS_SRV Texture2DMS; D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; D3D12_TEX3D_SRV Texture3D; D3D12_TEXCUBE_SRV TextureCube; D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; } ; } D3D12_SHADER_RESOURCE_VIEW_DESC; typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT SizeInBytes; } D3D12_CONSTANT_BUFFER_VIEW_DESC; typedef enum D3D12_FILTER { D3D12_FILTER_MIN_MAG_MIP_POINT = 0, D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, D3D12_FILTER_ANISOTROPIC = 0x55, D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 } D3D12_FILTER; typedef enum D3D12_FILTER_TYPE { D3D12_FILTER_TYPE_POINT = 0, D3D12_FILTER_TYPE_LINEAR = 1 } D3D12_FILTER_TYPE; typedef enum D3D12_FILTER_REDUCTION_TYPE { D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 } D3D12_FILTER_REDUCTION_TYPE; #define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 ) #define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 ) #define D3D12_FILTER_TYPE_MASK ( 0x3 ) #define D3D12_MIN_FILTER_SHIFT ( 4 ) #define D3D12_MAG_FILTER_SHIFT ( 2 ) #define D3D12_MIP_FILTER_SHIFT ( 0 ) #define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 ) #define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ ( ( D3D12_FILTER ) ( \ ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \ ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \ ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \ ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) #define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \ ( ( D3D12_FILTER ) ( \ D3D12_ANISOTROPIC_FILTERING_BIT | \ D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ D3D12_FILTER_TYPE_LINEAR, \ D3D12_FILTER_TYPE_LINEAR, \ reduction ) ) ) #define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \ ( ( D3D12_FILTER_TYPE ) \ ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) #define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \ ( ( D3D12_FILTER_TYPE ) \ ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) #define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \ ( ( D3D12_FILTER_TYPE ) \ ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) #define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \ ( ( D3D12_FILTER_REDUCTION_TYPE ) \ ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) #define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \ ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) #define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \ ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \ ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \ ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) && \ ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIP_FILTER( D3D12Filter ) ) ) typedef enum D3D12_TEXTURE_ADDRESS_MODE { D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 } D3D12_TEXTURE_ADDRESS_MODE; typedef struct D3D12_SAMPLER_DESC { D3D12_FILTER Filter; D3D12_TEXTURE_ADDRESS_MODE AddressU; D3D12_TEXTURE_ADDRESS_MODE AddressV; D3D12_TEXTURE_ADDRESS_MODE AddressW; FLOAT MipLODBias; UINT MaxAnisotropy; D3D12_COMPARISON_FUNC ComparisonFunc; FLOAT BorderColor[ 4 ]; FLOAT MinLOD; FLOAT MaxLOD; } D3D12_SAMPLER_DESC; typedef enum D3D12_BUFFER_UAV_FLAGS { D3D12_BUFFER_UAV_FLAG_NONE = 0, D3D12_BUFFER_UAV_FLAG_RAW = 0x1 } D3D12_BUFFER_UAV_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS ); typedef struct D3D12_BUFFER_UAV { UINT64 FirstElement; UINT NumElements; UINT StructureByteStride; UINT64 CounterOffsetInBytes; D3D12_BUFFER_UAV_FLAGS Flags; } D3D12_BUFFER_UAV; typedef struct D3D12_TEX1D_UAV { UINT MipSlice; } D3D12_TEX1D_UAV; typedef struct D3D12_TEX1D_ARRAY_UAV { UINT MipSlice; UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX1D_ARRAY_UAV; typedef struct D3D12_TEX2D_UAV { UINT MipSlice; UINT PlaneSlice; } D3D12_TEX2D_UAV; typedef struct D3D12_TEX2D_ARRAY_UAV { UINT MipSlice; UINT FirstArraySlice; UINT ArraySize; UINT PlaneSlice; } D3D12_TEX2D_ARRAY_UAV; typedef struct D3D12_TEX3D_UAV { UINT MipSlice; UINT FirstWSlice; UINT WSize; } D3D12_TEX3D_UAV; typedef enum D3D12_UAV_DIMENSION { D3D12_UAV_DIMENSION_UNKNOWN = 0, D3D12_UAV_DIMENSION_BUFFER = 1, D3D12_UAV_DIMENSION_TEXTURE1D = 2, D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, D3D12_UAV_DIMENSION_TEXTURE2D = 4, D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, D3D12_UAV_DIMENSION_TEXTURE3D = 8 } D3D12_UAV_DIMENSION; typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC { DXGI_FORMAT Format; D3D12_UAV_DIMENSION ViewDimension; union { D3D12_BUFFER_UAV Buffer; D3D12_TEX1D_UAV Texture1D; D3D12_TEX1D_ARRAY_UAV Texture1DArray; D3D12_TEX2D_UAV Texture2D; D3D12_TEX2D_ARRAY_UAV Texture2DArray; D3D12_TEX3D_UAV Texture3D; } ; } D3D12_UNORDERED_ACCESS_VIEW_DESC; typedef struct D3D12_BUFFER_RTV { UINT64 FirstElement; UINT NumElements; } D3D12_BUFFER_RTV; typedef struct D3D12_TEX1D_RTV { UINT MipSlice; } D3D12_TEX1D_RTV; typedef struct D3D12_TEX1D_ARRAY_RTV { UINT MipSlice; UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX1D_ARRAY_RTV; typedef struct D3D12_TEX2D_RTV { UINT MipSlice; UINT PlaneSlice; } D3D12_TEX2D_RTV; typedef struct D3D12_TEX2DMS_RTV { UINT UnusedField_NothingToDefine; } D3D12_TEX2DMS_RTV; typedef struct D3D12_TEX2D_ARRAY_RTV { UINT MipSlice; UINT FirstArraySlice; UINT ArraySize; UINT PlaneSlice; } D3D12_TEX2D_ARRAY_RTV; typedef struct D3D12_TEX2DMS_ARRAY_RTV { UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX2DMS_ARRAY_RTV; typedef struct D3D12_TEX3D_RTV { UINT MipSlice; UINT FirstWSlice; UINT WSize; } D3D12_TEX3D_RTV; typedef enum D3D12_RTV_DIMENSION { D3D12_RTV_DIMENSION_UNKNOWN = 0, D3D12_RTV_DIMENSION_BUFFER = 1, D3D12_RTV_DIMENSION_TEXTURE1D = 2, D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, D3D12_RTV_DIMENSION_TEXTURE2D = 4, D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, D3D12_RTV_DIMENSION_TEXTURE3D = 8 } D3D12_RTV_DIMENSION; typedef struct D3D12_RENDER_TARGET_VIEW_DESC { DXGI_FORMAT Format; D3D12_RTV_DIMENSION ViewDimension; union { D3D12_BUFFER_RTV Buffer; D3D12_TEX1D_RTV Texture1D; D3D12_TEX1D_ARRAY_RTV Texture1DArray; D3D12_TEX2D_RTV Texture2D; D3D12_TEX2D_ARRAY_RTV Texture2DArray; D3D12_TEX2DMS_RTV Texture2DMS; D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; D3D12_TEX3D_RTV Texture3D; } ; } D3D12_RENDER_TARGET_VIEW_DESC; typedef struct D3D12_TEX1D_DSV { UINT MipSlice; } D3D12_TEX1D_DSV; typedef struct D3D12_TEX1D_ARRAY_DSV { UINT MipSlice; UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX1D_ARRAY_DSV; typedef struct D3D12_TEX2D_DSV { UINT MipSlice; } D3D12_TEX2D_DSV; typedef struct D3D12_TEX2D_ARRAY_DSV { UINT MipSlice; UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX2D_ARRAY_DSV; typedef struct D3D12_TEX2DMS_DSV { UINT UnusedField_NothingToDefine; } D3D12_TEX2DMS_DSV; typedef struct D3D12_TEX2DMS_ARRAY_DSV { UINT FirstArraySlice; UINT ArraySize; } D3D12_TEX2DMS_ARRAY_DSV; typedef enum D3D12_DSV_FLAGS { D3D12_DSV_FLAG_NONE = 0, D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 } D3D12_DSV_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS ); typedef enum D3D12_DSV_DIMENSION { D3D12_DSV_DIMENSION_UNKNOWN = 0, D3D12_DSV_DIMENSION_TEXTURE1D = 1, D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, D3D12_DSV_DIMENSION_TEXTURE2D = 3, D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 } D3D12_DSV_DIMENSION; typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC { DXGI_FORMAT Format; D3D12_DSV_DIMENSION ViewDimension; D3D12_DSV_FLAGS Flags; union { D3D12_TEX1D_DSV Texture1D; D3D12_TEX1D_ARRAY_DSV Texture1DArray; D3D12_TEX2D_DSV Texture2D; D3D12_TEX2D_ARRAY_DSV Texture2DArray; D3D12_TEX2DMS_DSV Texture2DMS; D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; } ; } D3D12_DEPTH_STENCIL_VIEW_DESC; typedef enum D3D12_CLEAR_FLAGS { D3D12_CLEAR_FLAG_DEPTH = 0x1, D3D12_CLEAR_FLAG_STENCIL = 0x2 } D3D12_CLEAR_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS ); typedef enum D3D12_FENCE_FLAGS { D3D12_FENCE_FLAG_NONE = 0, D3D12_FENCE_FLAG_SHARED = 0x1, D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2 } D3D12_FENCE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS ); typedef enum D3D12_DESCRIPTOR_HEAP_TYPE { D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) , D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) , D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) , D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 ) } D3D12_DESCRIPTOR_HEAP_TYPE; typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS { D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 } D3D12_DESCRIPTOR_HEAP_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS ); typedef struct D3D12_DESCRIPTOR_HEAP_DESC { D3D12_DESCRIPTOR_HEAP_TYPE Type; UINT NumDescriptors; D3D12_DESCRIPTOR_HEAP_FLAGS Flags; UINT NodeMask; } D3D12_DESCRIPTOR_HEAP_DESC; typedef enum D3D12_DESCRIPTOR_RANGE_TYPE { D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) , D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) , D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 ) } D3D12_DESCRIPTOR_RANGE_TYPE; typedef struct D3D12_DESCRIPTOR_RANGE { D3D12_DESCRIPTOR_RANGE_TYPE RangeType; UINT NumDescriptors; UINT BaseShaderRegister; UINT RegisterSpace; UINT OffsetInDescriptorsFromTableStart; } D3D12_DESCRIPTOR_RANGE; typedef struct D3D12_ROOT_DESCRIPTOR_TABLE { UINT NumDescriptorRanges; _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; } D3D12_ROOT_DESCRIPTOR_TABLE; typedef struct D3D12_ROOT_CONSTANTS { UINT ShaderRegister; UINT RegisterSpace; UINT Num32BitValues; } D3D12_ROOT_CONSTANTS; typedef struct D3D12_ROOT_DESCRIPTOR { UINT ShaderRegister; UINT RegisterSpace; } D3D12_ROOT_DESCRIPTOR; typedef enum D3D12_SHADER_VISIBILITY { D3D12_SHADER_VISIBILITY_ALL = 0, D3D12_SHADER_VISIBILITY_VERTEX = 1, D3D12_SHADER_VISIBILITY_HULL = 2, D3D12_SHADER_VISIBILITY_DOMAIN = 3, D3D12_SHADER_VISIBILITY_GEOMETRY = 4, D3D12_SHADER_VISIBILITY_PIXEL = 5 } D3D12_SHADER_VISIBILITY; typedef enum D3D12_ROOT_PARAMETER_TYPE { D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) , D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) , D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) , D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 ) } D3D12_ROOT_PARAMETER_TYPE; typedef struct D3D12_ROOT_PARAMETER { D3D12_ROOT_PARAMETER_TYPE ParameterType; union { D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; D3D12_ROOT_CONSTANTS Constants; D3D12_ROOT_DESCRIPTOR Descriptor; } ; D3D12_SHADER_VISIBILITY ShaderVisibility; } D3D12_ROOT_PARAMETER; typedef enum D3D12_ROOT_SIGNATURE_FLAGS { D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40 } D3D12_ROOT_SIGNATURE_FLAGS; DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS ); typedef enum D3D12_STATIC_BORDER_COLOR { D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) , D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) } D3D12_STATIC_BORDER_COLOR; typedef struct D3D12_STATIC_SAMPLER_DESC { D3D12_FILTER Filter; D3D12_TEXTURE_ADDRESS_MODE AddressU; D3D12_TEXTURE_ADDRESS_MODE AddressV; D3D12_TEXTURE_ADDRESS_MODE AddressW; FLOAT MipLODBias; UINT MaxAnisotropy; D3D12_COMPARISON_FUNC ComparisonFunc; D3D12_STATIC_BORDER_COLOR BorderColor; FLOAT MinLOD; FLOAT MaxLOD; UINT ShaderRegister; UINT RegisterSpace; D3D12_SHADER_VISIBILITY ShaderVisibility; } D3D12_STATIC_SAMPLER_DESC; typedef struct D3D12_ROOT_SIGNATURE_DESC { UINT NumParameters; _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters; UINT NumStaticSamplers; _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; D3D12_ROOT_SIGNATURE_FLAGS Flags; } D3D12_ROOT_SIGNATURE_DESC; typedef enum D3D_ROOT_SIGNATURE_VERSION { D3D_ROOT_SIGNATURE_VERSION_1 = 0x1 } D3D_ROOT_SIGNATURE_VERSION; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec; #ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ #define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ /* interface ID3D12RootSignatureDeserializer */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12RootSignatureDeserializer; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046") ID3D12RootSignatureDeserializer : public IUnknown { public: virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0; }; #else /* C style interface */ typedef struct ID3D12RootSignatureDeserializerVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12RootSignatureDeserializer * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12RootSignatureDeserializer * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12RootSignatureDeserializer * This); const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )( ID3D12RootSignatureDeserializer * This); END_INTERFACE } ID3D12RootSignatureDeserializerVtbl; interface ID3D12RootSignatureDeserializer { CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12RootSignatureDeserializer_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12RootSignatureDeserializer_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \ ( (This)->lpVtbl -> GetRootSignatureDesc(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_d3d12_0000_0002 */ /* [local] */ typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)( _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, _In_ D3D_ROOT_SIGNATURE_VERSION Version, _Out_ ID3DBlob** ppBlob, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); HRESULT WINAPI D3D12SerializeRootSignature( _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, _In_ D3D_ROOT_SIGNATURE_VERSION Version, _Out_ ID3DBlob** ppBlob, _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, _In_ SIZE_T SrcDataSizeInBytes, _In_ REFIID pRootSignatureDeserializerInterface, _Out_ void** ppRootSignatureDeserializer); HRESULT WINAPI D3D12CreateRootSignatureDeserializer( _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, _In_ SIZE_T SrcDataSizeInBytes, _In_ REFIID pRootSignatureDeserializerInterface, _Out_ void** ppRootSignatureDeserializer); typedef struct D3D12_CPU_DESCRIPTOR_HANDLE { SIZE_T ptr; } D3D12_CPU_DESCRIPTOR_HANDLE; typedef struct D3D12_GPU_DESCRIPTOR_HANDLE { UINT64 ptr; } D3D12_GPU_DESCRIPTOR_HANDLE; // If rects are supplied in D3D12_DISCARD_REGION, below, the resource // must have 2D subresources with all specified subresources the same dimension. typedef struct D3D12_DISCARD_REGION { UINT NumRects; _In_reads_(NumRects) const D3D12_RECT *pRects; UINT FirstSubresource; UINT NumSubresources; } D3D12_DISCARD_REGION; typedef enum D3D12_QUERY_HEAP_TYPE { D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3 } D3D12_QUERY_HEAP_TYPE; typedef struct D3D12_QUERY_HEAP_DESC { D3D12_QUERY_HEAP_TYPE Type; UINT Count; UINT NodeMask; } D3D12_QUERY_HEAP_DESC; typedef enum D3D12_QUERY_TYPE { D3D12_QUERY_TYPE_OCCLUSION = 0, D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, D3D12_QUERY_TYPE_TIMESTAMP = 2, D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7 } D3D12_QUERY_TYPE; typedef enum D3D12_PREDICATION_OP { D3D12_PREDICATION_OP_EQUAL_ZERO = 0, D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 } D3D12_PREDICATION_OP; typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS { UINT64 IAVertices; UINT64 IAPrimitives; UINT64 VSInvocations; UINT64 GSInvocations; UINT64 GSPrimitives; UINT64 CInvocations; UINT64 CPrimitives; UINT64 PSInvocations; UINT64 HSInvocations; UINT64 DSInvocations; UINT64 CSInvocations; } D3D12_QUERY_DATA_PIPELINE_STATISTICS; typedef struct D3D12_QUERY_DATA_SO_STATISTICS { UINT64 NumPrimitivesWritten; UINT64 PrimitivesStorageNeeded; } D3D12_QUERY_DATA_SO_STATISTICS; typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT64 SizeInBytes; D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; } D3D12_STREAM_OUTPUT_BUFFER_VIEW; typedef struct D3D12_DRAW_ARGUMENTS { UINT VertexCountPerInstance; UINT InstanceCount; UINT StartVertexLocation; UINT StartInstanceLocation; } D3D12_DRAW_ARGUMENTS; typedef struct D3D12_DRAW_INDEXED_ARGUMENTS { UINT IndexCountPerInstance; UINT InstanceCount; UINT StartIndexLocation; INT BaseVertexLocation; UINT StartInstanceLocation; } D3D12_DRAW_INDEXED_ARGUMENTS; typedef struct D3D12_DISPATCH_ARGUMENTS { UINT ThreadGroupCountX; UINT ThreadGroupCountY; UINT ThreadGroupCountZ; } D3D12_DISPATCH_ARGUMENTS; typedef struct D3D12_VERTEX_BUFFER_VIEW { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT SizeInBytes; UINT StrideInBytes; } D3D12_VERTEX_BUFFER_VIEW; typedef struct D3D12_INDEX_BUFFER_VIEW { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT SizeInBytes; DXGI_FORMAT Format; } D3D12_INDEX_BUFFER_VIEW; typedef enum D3D12_INDIRECT_ARGUMENT_TYPE { D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) , D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) } D3D12_INDIRECT_ARGUMENT_TYPE; typedef struct D3D12_INDIRECT_ARGUMENT_DESC { D3D12_INDIRECT_ARGUMENT_TYPE Type; union { struct { UINT Slot; } VertexBuffer; struct { UINT RootParameterIndex; UINT DestOffsetIn32BitValues; UINT Num32BitValuesToSet; } Constant; struct { UINT RootParameterIndex; } ConstantBufferView; struct { UINT RootParameterIndex; } ShaderResourceView; struct { UINT RootParameterIndex; } UnorderedAccessView; } ; } D3D12_INDIRECT_ARGUMENT_DESC; typedef struct D3D12_COMMAND_SIGNATURE_DESC { UINT ByteStride; UINT NumArgumentDescs; _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; UINT NodeMask; } D3D12_COMMAND_SIGNATURE_DESC; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0002_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0002_v0_0_s_ifspec; #ifndef __ID3D12Pageable_INTERFACE_DEFINED__ #define __ID3D12Pageable_INTERFACE_DEFINED__ /* interface ID3D12Pageable */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12Pageable; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6") ID3D12Pageable : public ID3D12DeviceChild { public: }; #else /* C style interface */ typedef struct ID3D12PageableVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12Pageable * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12Pageable * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12Pageable * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12Pageable * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12Pageable * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12Pageable * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12Pageable * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12Pageable * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); END_INTERFACE } ID3D12PageableVtbl; interface ID3D12Pageable { CONST_VTBL struct ID3D12PageableVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12Pageable_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12Pageable_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12Pageable_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */ #ifndef __ID3D12Heap_INTERFACE_DEFINED__ #define __ID3D12Heap_INTERFACE_DEFINED__ /* interface ID3D12Heap */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12Heap; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3") ID3D12Heap : public ID3D12Pageable { public: virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; }; #else /* C style interface */ typedef struct ID3D12HeapVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12Heap * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12Heap * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12Heap * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12Heap * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12Heap * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12Heap * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12Heap * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12Heap * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( ID3D12Heap * This); END_INTERFACE } ID3D12HeapVtbl; interface ID3D12Heap { CONST_VTBL struct ID3D12HeapVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12Heap_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12Heap_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12Heap_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12Heap_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12Heap_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12Heap_GetDesc(This) \ ( (This)->lpVtbl -> GetDesc(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12Heap_INTERFACE_DEFINED__ */ #ifndef __ID3D12Resource_INTERFACE_DEFINED__ #define __ID3D12Resource_INTERFACE_DEFINED__ /* interface ID3D12Resource */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12Resource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad") ID3D12Resource : public ID3D12Pageable { public: virtual HRESULT STDMETHODCALLTYPE Map( UINT Subresource, _In_opt_ const D3D12_RANGE *pReadRange, _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0; virtual void STDMETHODCALLTYPE Unmap( UINT Subresource, _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0; virtual HRESULT STDMETHODCALLTYPE WriteToSubresource( UINT DstSubresource, _In_opt_ const D3D12_BOX *pDstBox, _In_ const void *pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch) = 0; virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource( _Out_ void *pDstData, UINT DstRowPitch, UINT DstDepthPitch, UINT SrcSubresource, _In_opt_ const D3D12_BOX *pSrcBox) = 0; virtual HRESULT STDMETHODCALLTYPE GetHeapProperties( _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0; }; #else /* C style interface */ typedef struct ID3D12ResourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12Resource * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12Resource * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12Resource * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12Resource * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12Resource * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12Resource * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12Resource * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12Resource * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); HRESULT ( STDMETHODCALLTYPE *Map )( ID3D12Resource * This, UINT Subresource, _In_opt_ const D3D12_RANGE *pReadRange, _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); void ( STDMETHODCALLTYPE *Unmap )( ID3D12Resource * This, UINT Subresource, _In_opt_ const D3D12_RANGE *pWrittenRange); D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( ID3D12Resource * This); D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( ID3D12Resource * This); HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( ID3D12Resource * This, UINT DstSubresource, _In_opt_ const D3D12_BOX *pDstBox, _In_ const void *pSrcData, UINT SrcRowPitch, UINT SrcDepthPitch); HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( ID3D12Resource * This, _Out_ void *pDstData, UINT DstRowPitch, UINT DstDepthPitch, UINT SrcSubresource, _In_opt_ const D3D12_BOX *pSrcBox); HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( ID3D12Resource * This, _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); END_INTERFACE } ID3D12ResourceVtbl; interface ID3D12Resource { CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12Resource_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12Resource_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12Resource_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12Resource_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12Resource_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \ ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) #define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \ ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) #define ID3D12Resource_GetDesc(This) \ ( (This)->lpVtbl -> GetDesc(This) ) #define ID3D12Resource_GetGPUVirtualAddress(This) \ ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) #define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) #define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) #define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12Resource_INTERFACE_DEFINED__ */ #ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__ #define __ID3D12CommandAllocator_INTERFACE_DEFINED__ /* interface ID3D12CommandAllocator */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12CommandAllocator; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24") ID3D12CommandAllocator : public ID3D12Pageable { public: virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; }; #else /* C style interface */ typedef struct ID3D12CommandAllocatorVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12CommandAllocator * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12CommandAllocator * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12CommandAllocator * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12CommandAllocator * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12CommandAllocator * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12CommandAllocator * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12CommandAllocator * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12CommandAllocator * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); HRESULT ( STDMETHODCALLTYPE *Reset )( ID3D12CommandAllocator * This); END_INTERFACE } ID3D12CommandAllocatorVtbl; interface ID3D12CommandAllocator { CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12CommandAllocator_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12CommandAllocator_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12CommandAllocator_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12CommandAllocator_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */ #ifndef __ID3D12Fence_INTERFACE_DEFINED__ #define __ID3D12Fence_INTERFACE_DEFINED__ /* interface ID3D12Fence */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12Fence; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76") ID3D12Fence : public ID3D12Pageable { public: virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0; virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( UINT64 Value, HANDLE hEvent) = 0; virtual HRESULT STDMETHODCALLTYPE Signal( UINT64 Value) = 0; }; #else /* C style interface */ typedef struct ID3D12FenceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12Fence * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12Fence * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12Fence * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12Fence * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12Fence * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12Fence * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12Fence * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12Fence * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( ID3D12Fence * This); HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( ID3D12Fence * This, UINT64 Value, HANDLE hEvent); HRESULT ( STDMETHODCALLTYPE *Signal )( ID3D12Fence * This, UINT64 Value); END_INTERFACE } ID3D12FenceVtbl; interface ID3D12Fence { CONST_VTBL struct ID3D12FenceVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12Fence_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12Fence_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12Fence_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12Fence_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12Fence_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12Fence_GetCompletedValue(This) \ ( (This)->lpVtbl -> GetCompletedValue(This) ) #define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \ ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) #define ID3D12Fence_Signal(This,Value) \ ( (This)->lpVtbl -> Signal(This,Value) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12Fence_INTERFACE_DEFINED__ */ #ifndef __ID3D12PipelineState_INTERFACE_DEFINED__ #define __ID3D12PipelineState_INTERFACE_DEFINED__ /* interface ID3D12PipelineState */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12PipelineState; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445") ID3D12PipelineState : public ID3D12Pageable { public: virtual HRESULT STDMETHODCALLTYPE GetCachedBlob( _COM_Outptr_ ID3DBlob **ppBlob) = 0; }; #else /* C style interface */ typedef struct ID3D12PipelineStateVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12PipelineState * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12PipelineState * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12PipelineState * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12PipelineState * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12PipelineState * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12PipelineState * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12PipelineState * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12PipelineState * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( ID3D12PipelineState * This, _COM_Outptr_ ID3DBlob **ppBlob); END_INTERFACE } ID3D12PipelineStateVtbl; interface ID3D12PipelineState { CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12PipelineState_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12PipelineState_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12PipelineState_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \ ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ /* interface ID3D12DescriptorHeap */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12DescriptorHeap; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51") ID3D12DescriptorHeap : public ID3D12Pageable { public: virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0; virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0; }; #else /* C style interface */ typedef struct ID3D12DescriptorHeapVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12DescriptorHeap * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12DescriptorHeap * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12DescriptorHeap * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12DescriptorHeap * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12DescriptorHeap * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12DescriptorHeap * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12DescriptorHeap * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12DescriptorHeap * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( ID3D12DescriptorHeap * This); D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( ID3D12DescriptorHeap * This); D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( ID3D12DescriptorHeap * This); END_INTERFACE } ID3D12DescriptorHeapVtbl; interface ID3D12DescriptorHeap { CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12DescriptorHeap_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12DescriptorHeap_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12DescriptorHeap_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12DescriptorHeap_GetDesc(This) \ ( (This)->lpVtbl -> GetDesc(This) ) #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \ ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) ) #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \ ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */ #ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__ #define __ID3D12QueryHeap_INTERFACE_DEFINED__ /* interface ID3D12QueryHeap */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12QueryHeap; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4") ID3D12QueryHeap : public ID3D12Pageable { public: }; #else /* C style interface */ typedef struct ID3D12QueryHeapVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12QueryHeap * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12QueryHeap * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12QueryHeap * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12QueryHeap * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12QueryHeap * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12QueryHeap * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12QueryHeap * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12QueryHeap * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); END_INTERFACE } ID3D12QueryHeapVtbl; interface ID3D12QueryHeap { CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12QueryHeap_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12QueryHeap_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12QueryHeap_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */ #ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__ #define __ID3D12CommandSignature_INTERFACE_DEFINED__ /* interface ID3D12CommandSignature */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12CommandSignature; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1") ID3D12CommandSignature : public ID3D12Pageable { public: }; #else /* C style interface */ typedef struct ID3D12CommandSignatureVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12CommandSignature * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12CommandSignature * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12CommandSignature * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12CommandSignature * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12CommandSignature * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12CommandSignature * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12CommandSignature * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12CommandSignature * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); END_INTERFACE } ID3D12CommandSignatureVtbl; interface ID3D12CommandSignature { CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12CommandSignature_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12CommandSignature_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12CommandSignature_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */ #ifndef __ID3D12CommandList_INTERFACE_DEFINED__ #define __ID3D12CommandList_INTERFACE_DEFINED__ /* interface ID3D12CommandList */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12CommandList; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5") ID3D12CommandList : public ID3D12DeviceChild { public: virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0; }; #else /* C style interface */ typedef struct ID3D12CommandListVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12CommandList * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12CommandList * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12CommandList * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12CommandList * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12CommandList * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12CommandList * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12CommandList * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12CommandList * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( ID3D12CommandList * This); END_INTERFACE } ID3D12CommandListVtbl; interface ID3D12CommandList { CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12CommandList_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12CommandList_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12CommandList_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12CommandList_GetType(This) \ ( (This)->lpVtbl -> GetType(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */ #ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ #define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ /* interface ID3D12GraphicsCommandList */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12GraphicsCommandList; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455") ID3D12GraphicsCommandList : public ID3D12CommandList { public: virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( _In_ ID3D12CommandAllocator *pAllocator, _In_opt_ ID3D12PipelineState *pInitialState) = 0; virtual void STDMETHODCALLTYPE ClearState( _In_opt_ ID3D12PipelineState *pPipelineState) = 0; virtual void STDMETHODCALLTYPE DrawInstanced( _In_ UINT VertexCountPerInstance, _In_ UINT InstanceCount, _In_ UINT StartVertexLocation, _In_ UINT StartInstanceLocation) = 0; virtual void STDMETHODCALLTYPE DrawIndexedInstanced( _In_ UINT IndexCountPerInstance, _In_ UINT InstanceCount, _In_ UINT StartIndexLocation, _In_ INT BaseVertexLocation, _In_ UINT StartInstanceLocation) = 0; virtual void STDMETHODCALLTYPE Dispatch( _In_ UINT ThreadGroupCountX, _In_ UINT ThreadGroupCountY, _In_ UINT ThreadGroupCountZ) = 0; virtual void STDMETHODCALLTYPE CopyBufferRegion( _In_ ID3D12Resource *pDstBuffer, UINT64 DstOffset, _In_ ID3D12Resource *pSrcBuffer, UINT64 SrcOffset, UINT64 NumBytes) = 0; virtual void STDMETHODCALLTYPE CopyTextureRegion( _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, UINT DstX, UINT DstY, UINT DstZ, _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, _In_opt_ const D3D12_BOX *pSrcBox) = 0; virtual void STDMETHODCALLTYPE CopyResource( _In_ ID3D12Resource *pDstResource, _In_ ID3D12Resource *pSrcResource) = 0; virtual void STDMETHODCALLTYPE CopyTiles( _In_ ID3D12Resource *pTiledResource, _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, _In_ ID3D12Resource *pBuffer, UINT64 BufferStartOffsetInBytes, D3D12_TILE_COPY_FLAGS Flags) = 0; virtual void STDMETHODCALLTYPE ResolveSubresource( _In_ ID3D12Resource *pDstResource, _In_ UINT DstSubresource, _In_ ID3D12Resource *pSrcResource, _In_ UINT SrcSubresource, _In_ DXGI_FORMAT Format) = 0; virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0; virtual void STDMETHODCALLTYPE RSSetViewports( _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0; virtual void STDMETHODCALLTYPE RSSetScissorRects( _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, _In_reads_( NumRects) const D3D12_RECT *pRects) = 0; virtual void STDMETHODCALLTYPE OMSetBlendFactor( _In_opt_ const FLOAT BlendFactor[ 4 ]) = 0; virtual void STDMETHODCALLTYPE OMSetStencilRef( _In_ UINT StencilRef) = 0; virtual void STDMETHODCALLTYPE SetPipelineState( _In_ ID3D12PipelineState *pPipelineState) = 0; virtual void STDMETHODCALLTYPE ResourceBarrier( _In_ UINT NumBarriers, _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; virtual void STDMETHODCALLTYPE ExecuteBundle( _In_ ID3D12GraphicsCommandList *pCommandList) = 0; virtual void STDMETHODCALLTYPE SetDescriptorHeaps( _In_ UINT NumDescriptorHeaps, _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap **ppDescriptorHeaps) = 0; virtual void STDMETHODCALLTYPE SetComputeRootSignature( _In_ ID3D12RootSignature *pRootSignature) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRootSignature( _In_ ID3D12RootSignature *pRootSignature) = 0; virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant( _In_ UINT RootParameterIndex, _In_ UINT SrcData, _In_ UINT DestOffsetIn32BitValues) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant( _In_ UINT RootParameterIndex, _In_ UINT SrcData, _In_ UINT DestOffsetIn32BitValues) = 0; virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants( _In_ UINT RootParameterIndex, _In_ UINT Num32BitValuesToSet, _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, _In_ UINT DestOffsetIn32BitValues) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants( _In_ UINT RootParameterIndex, _In_ UINT Num32BitValuesToSet, _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, _In_ UINT DestOffsetIn32BitValues) = 0; virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView( _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; virtual void STDMETHODCALLTYPE IASetIndexBuffer( _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0; virtual void STDMETHODCALLTYPE IASetVertexBuffers( _In_ UINT StartSlot, _In_ UINT NumViews, _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0; virtual void STDMETHODCALLTYPE SOSetTargets( _In_ UINT StartSlot, _In_ UINT NumViews, _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0; virtual void STDMETHODCALLTYPE OMSetRenderTargets( _In_ UINT NumRenderTargetDescriptors, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, _In_ BOOL RTsSingleHandleToDescriptorRange, _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0; virtual void STDMETHODCALLTYPE ClearDepthStencilView( _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, _In_ D3D12_CLEAR_FLAGS ClearFlags, _In_ FLOAT Depth, _In_ UINT8 Stencil, _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; virtual void STDMETHODCALLTYPE ClearRenderTargetView( _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, _In_ const FLOAT ColorRGBA[ 4 ], _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, _In_ ID3D12Resource *pResource, _In_ const UINT Values[ 4 ], _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, _In_ ID3D12Resource *pResource, _In_ const FLOAT Values[ 4 ], _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; virtual void STDMETHODCALLTYPE DiscardResource( _In_ ID3D12Resource *pResource, _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; virtual void STDMETHODCALLTYPE BeginQuery( _In_ ID3D12QueryHeap *pQueryHeap, _In_ D3D12_QUERY_TYPE Type, _In_ UINT Index) = 0; virtual void STDMETHODCALLTYPE EndQuery( _In_ ID3D12QueryHeap *pQueryHeap, _In_ D3D12_QUERY_TYPE Type, _In_ UINT Index) = 0; virtual void STDMETHODCALLTYPE ResolveQueryData( _In_ ID3D12QueryHeap *pQueryHeap, _In_ D3D12_QUERY_TYPE Type, _In_ UINT StartIndex, _In_ UINT NumQueries, _In_ ID3D12Resource *pDestinationBuffer, _In_ UINT64 AlignedDestinationBufferOffset) = 0; virtual void STDMETHODCALLTYPE SetPredication( _In_opt_ ID3D12Resource *pBuffer, _In_ UINT64 AlignedBufferOffset, _In_ D3D12_PREDICATION_OP Operation) = 0; virtual void STDMETHODCALLTYPE SetMarker( UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size) = 0; virtual void STDMETHODCALLTYPE BeginEvent( UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size) = 0; virtual void STDMETHODCALLTYPE EndEvent( void) = 0; virtual void STDMETHODCALLTYPE ExecuteIndirect( _In_ ID3D12CommandSignature *pCommandSignature, _In_ UINT MaxCommandCount, _In_ ID3D12Resource *pArgumentBuffer, _In_ UINT64 ArgumentBufferOffset, _In_opt_ ID3D12Resource *pCountBuffer, _In_ UINT64 CountBufferOffset) = 0; }; #else /* C style interface */ typedef struct ID3D12GraphicsCommandListVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12GraphicsCommandList * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12GraphicsCommandList * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12GraphicsCommandList * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12GraphicsCommandList * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12GraphicsCommandList * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12GraphicsCommandList * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12GraphicsCommandList * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12GraphicsCommandList * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( ID3D12GraphicsCommandList * This); HRESULT ( STDMETHODCALLTYPE *Close )( ID3D12GraphicsCommandList * This); HRESULT ( STDMETHODCALLTYPE *Reset )( ID3D12GraphicsCommandList * This, _In_ ID3D12CommandAllocator *pAllocator, _In_opt_ ID3D12PipelineState *pInitialState); void ( STDMETHODCALLTYPE *ClearState )( ID3D12GraphicsCommandList * This, _In_opt_ ID3D12PipelineState *pPipelineState); void ( STDMETHODCALLTYPE *DrawInstanced )( ID3D12GraphicsCommandList * This, _In_ UINT VertexCountPerInstance, _In_ UINT InstanceCount, _In_ UINT StartVertexLocation, _In_ UINT StartInstanceLocation); void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( ID3D12GraphicsCommandList * This, _In_ UINT IndexCountPerInstance, _In_ UINT InstanceCount, _In_ UINT StartIndexLocation, _In_ INT BaseVertexLocation, _In_ UINT StartInstanceLocation); void ( STDMETHODCALLTYPE *Dispatch )( ID3D12GraphicsCommandList * This, _In_ UINT ThreadGroupCountX, _In_ UINT ThreadGroupCountY, _In_ UINT ThreadGroupCountZ); void ( STDMETHODCALLTYPE *CopyBufferRegion )( ID3D12GraphicsCommandList * This, _In_ ID3D12Resource *pDstBuffer, UINT64 DstOffset, _In_ ID3D12Resource *pSrcBuffer, UINT64 SrcOffset, UINT64 NumBytes); void ( STDMETHODCALLTYPE *CopyTextureRegion )( ID3D12GraphicsCommandList * This, _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, UINT DstX, UINT DstY, UINT DstZ, _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, _In_opt_ const D3D12_BOX *pSrcBox); void ( STDMETHODCALLTYPE *CopyResource )( ID3D12GraphicsCommandList * This, _In_ ID3D12Resource *pDstResource, _In_ ID3D12Resource *pSrcResource); void ( STDMETHODCALLTYPE *CopyTiles )( ID3D12GraphicsCommandList * This, _In_ ID3D12Resource *pTiledResource, _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, _In_ ID3D12Resource *pBuffer, UINT64 BufferStartOffsetInBytes, D3D12_TILE_COPY_FLAGS Flags); void ( STDMETHODCALLTYPE *ResolveSubresource )( ID3D12GraphicsCommandList * This, _In_ ID3D12Resource *pDstResource, _In_ UINT DstSubresource, _In_ ID3D12Resource *pSrcResource, _In_ UINT SrcSubresource, _In_ DXGI_FORMAT Format); void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( ID3D12GraphicsCommandList * This, _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); void ( STDMETHODCALLTYPE *RSSetViewports )( ID3D12GraphicsCommandList * This, _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); void ( STDMETHODCALLTYPE *RSSetScissorRects )( ID3D12GraphicsCommandList * This, _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, _In_reads_( NumRects) const D3D12_RECT *pRects); void ( STDMETHODCALLTYPE *OMSetBlendFactor )( ID3D12GraphicsCommandList * This, _In_opt_ const FLOAT BlendFactor[ 4 ]); void ( STDMETHODCALLTYPE *OMSetStencilRef )( ID3D12GraphicsCommandList * This, _In_ UINT StencilRef); void ( STDMETHODCALLTYPE *SetPipelineState )( ID3D12GraphicsCommandList * This, _In_ ID3D12PipelineState *pPipelineState); void ( STDMETHODCALLTYPE *ResourceBarrier )( ID3D12GraphicsCommandList * This, _In_ UINT NumBarriers, _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); void ( STDMETHODCALLTYPE *ExecuteBundle )( ID3D12GraphicsCommandList * This, _In_ ID3D12GraphicsCommandList *pCommandList); void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( ID3D12GraphicsCommandList * This, _In_ UINT NumDescriptorHeaps, _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap **ppDescriptorHeaps); void ( STDMETHODCALLTYPE *SetComputeRootSignature )( ID3D12GraphicsCommandList * This, _In_ ID3D12RootSignature *pRootSignature); void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( ID3D12GraphicsCommandList * This, _In_ ID3D12RootSignature *pRootSignature); void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ UINT SrcData, _In_ UINT DestOffsetIn32BitValues); void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ UINT SrcData, _In_ UINT DestOffsetIn32BitValues); void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ UINT Num32BitValuesToSet, _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, _In_ UINT DestOffsetIn32BitValues); void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ UINT Num32BitValuesToSet, _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, _In_ UINT DestOffsetIn32BitValues); void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( ID3D12GraphicsCommandList * This, _In_ UINT RootParameterIndex, _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); void ( STDMETHODCALLTYPE *IASetIndexBuffer )( ID3D12GraphicsCommandList * This, _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); void ( STDMETHODCALLTYPE *IASetVertexBuffers )( ID3D12GraphicsCommandList * This, _In_ UINT StartSlot, _In_ UINT NumViews, _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); void ( STDMETHODCALLTYPE *SOSetTargets )( ID3D12GraphicsCommandList * This, _In_ UINT StartSlot, _In_ UINT NumViews, _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); void ( STDMETHODCALLTYPE *OMSetRenderTargets )( ID3D12GraphicsCommandList * This, _In_ UINT NumRenderTargetDescriptors, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, _In_ BOOL RTsSingleHandleToDescriptorRange, _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); void ( STDMETHODCALLTYPE *ClearDepthStencilView )( ID3D12GraphicsCommandList * This, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, _In_ D3D12_CLEAR_FLAGS ClearFlags, _In_ FLOAT Depth, _In_ UINT8 Stencil, _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects); void ( STDMETHODCALLTYPE *ClearRenderTargetView )( ID3D12GraphicsCommandList * This, _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, _In_ const FLOAT ColorRGBA[ 4 ], _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects); void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( ID3D12GraphicsCommandList * This, _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, _In_ ID3D12Resource *pResource, _In_ const UINT Values[ 4 ], _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects); void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( ID3D12GraphicsCommandList * This, _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, _In_ ID3D12Resource *pResource, _In_ const FLOAT Values[ 4 ], _In_ UINT NumRects, _In_reads_(NumRects) const D3D12_RECT *pRects); void ( STDMETHODCALLTYPE *DiscardResource )( ID3D12GraphicsCommandList * This, _In_ ID3D12Resource *pResource, _In_opt_ const D3D12_DISCARD_REGION *pRegion); void ( STDMETHODCALLTYPE *BeginQuery )( ID3D12GraphicsCommandList * This, _In_ ID3D12QueryHeap *pQueryHeap, _In_ D3D12_QUERY_TYPE Type, _In_ UINT Index); void ( STDMETHODCALLTYPE *EndQuery )( ID3D12GraphicsCommandList * This, _In_ ID3D12QueryHeap *pQueryHeap, _In_ D3D12_QUERY_TYPE Type, _In_ UINT Index); void ( STDMETHODCALLTYPE *ResolveQueryData )( ID3D12GraphicsCommandList * This, _In_ ID3D12QueryHeap *pQueryHeap, _In_ D3D12_QUERY_TYPE Type, _In_ UINT StartIndex, _In_ UINT NumQueries, _In_ ID3D12Resource *pDestinationBuffer, _In_ UINT64 AlignedDestinationBufferOffset); void ( STDMETHODCALLTYPE *SetPredication )( ID3D12GraphicsCommandList * This, _In_opt_ ID3D12Resource *pBuffer, _In_ UINT64 AlignedBufferOffset, _In_ D3D12_PREDICATION_OP Operation); void ( STDMETHODCALLTYPE *SetMarker )( ID3D12GraphicsCommandList * This, UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size); void ( STDMETHODCALLTYPE *BeginEvent )( ID3D12GraphicsCommandList * This, UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size); void ( STDMETHODCALLTYPE *EndEvent )( ID3D12GraphicsCommandList * This); void ( STDMETHODCALLTYPE *ExecuteIndirect )( ID3D12GraphicsCommandList * This, _In_ ID3D12CommandSignature *pCommandSignature, _In_ UINT MaxCommandCount, _In_ ID3D12Resource *pArgumentBuffer, _In_ UINT64 ArgumentBufferOffset, _In_opt_ ID3D12Resource *pCountBuffer, _In_ UINT64 CountBufferOffset); END_INTERFACE } ID3D12GraphicsCommandListVtbl; interface ID3D12GraphicsCommandList { CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12GraphicsCommandList_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12GraphicsCommandList_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12GraphicsCommandList_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12GraphicsCommandList_GetType(This) \ ( (This)->lpVtbl -> GetType(This) ) #define ID3D12GraphicsCommandList_Close(This) \ ( (This)->lpVtbl -> Close(This) ) #define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \ ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) #define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \ ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) #define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) #define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) #define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) #define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) #define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) #define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \ ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) #define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) #define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) #define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \ ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) #define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \ ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) #define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \ ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) #define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \ ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) #define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \ ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) #define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \ ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) #define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) #define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \ ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) #define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) #define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \ ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) #define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \ ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) #define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) #define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) #define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) #define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) #define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) #define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) #define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) #define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) #define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \ ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) #define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) #define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \ ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) #define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) #define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) #define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) #define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \ ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) #define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) #define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \ ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) #define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) #define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) #define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \ ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) #define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \ ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) #define ID3D12GraphicsCommandList_EndEvent(This) \ ( (This)->lpVtbl -> EndEvent(This) ) #define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ #define __ID3D12CommandQueue_INTERFACE_DEFINED__ /* interface ID3D12CommandQueue */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12CommandQueue; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed") ID3D12CommandQueue : public ID3D12Pageable { public: virtual void STDMETHODCALLTYPE UpdateTileMappings( _In_ ID3D12Resource *pResource, UINT NumResourceRegions, _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, _In_opt_ ID3D12Heap *pHeap, UINT NumRanges, _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags) = 0; virtual void STDMETHODCALLTYPE CopyTileMappings( _In_ ID3D12Resource *pDstResource, _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, _In_ ID3D12Resource *pSrcResource, _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, D3D12_TILE_MAPPING_FLAGS Flags) = 0; virtual void STDMETHODCALLTYPE ExecuteCommandLists( _In_ UINT NumCommandLists, _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0; virtual void STDMETHODCALLTYPE SetMarker( UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size) = 0; virtual void STDMETHODCALLTYPE BeginEvent( UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size) = 0; virtual void STDMETHODCALLTYPE EndEvent( void) = 0; virtual HRESULT STDMETHODCALLTYPE Signal( ID3D12Fence *pFence, UINT64 Value) = 0; virtual HRESULT STDMETHODCALLTYPE Wait( ID3D12Fence *pFence, UINT64 Value) = 0; virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency( _Out_ UINT64 *pFrequency) = 0; virtual HRESULT STDMETHODCALLTYPE GetClockCalibration( _Out_ UINT64 *pGpuTimestamp, _Out_ UINT64 *pCpuTimestamp) = 0; virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; }; #else /* C style interface */ typedef struct ID3D12CommandQueueVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12CommandQueue * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12CommandQueue * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12CommandQueue * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12CommandQueue * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12CommandQueue * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12CommandQueue * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12CommandQueue * This, _In_z_ LPCWSTR Name); HRESULT ( STDMETHODCALLTYPE *GetDevice )( ID3D12CommandQueue * This, REFIID riid, _COM_Outptr_opt_ void **ppvDevice); void ( STDMETHODCALLTYPE *UpdateTileMappings )( ID3D12CommandQueue * This, _In_ ID3D12Resource *pResource, UINT NumResourceRegions, _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, _In_opt_ ID3D12Heap *pHeap, UINT NumRanges, _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags); void ( STDMETHODCALLTYPE *CopyTileMappings )( ID3D12CommandQueue * This, _In_ ID3D12Resource *pDstResource, _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, _In_ ID3D12Resource *pSrcResource, _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, D3D12_TILE_MAPPING_FLAGS Flags); void ( STDMETHODCALLTYPE *ExecuteCommandLists )( ID3D12CommandQueue * This, _In_ UINT NumCommandLists, _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); void ( STDMETHODCALLTYPE *SetMarker )( ID3D12CommandQueue * This, UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size); void ( STDMETHODCALLTYPE *BeginEvent )( ID3D12CommandQueue * This, UINT Metadata, _In_reads_bytes_opt_(Size) const void *pData, UINT Size); void ( STDMETHODCALLTYPE *EndEvent )( ID3D12CommandQueue * This); HRESULT ( STDMETHODCALLTYPE *Signal )( ID3D12CommandQueue * This, ID3D12Fence *pFence, UINT64 Value); HRESULT ( STDMETHODCALLTYPE *Wait )( ID3D12CommandQueue * This, ID3D12Fence *pFence, UINT64 Value); HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( ID3D12CommandQueue * This, _Out_ UINT64 *pFrequency); HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( ID3D12CommandQueue * This, _Out_ UINT64 *pGpuTimestamp, _Out_ UINT64 *pCpuTimestamp); D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( ID3D12CommandQueue * This); END_INTERFACE } ID3D12CommandQueueVtbl; interface ID3D12CommandQueue { CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12CommandQueue_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12CommandQueue_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12CommandQueue_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \ ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) #define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) #define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) #define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) #define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \ ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) #define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \ ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) #define ID3D12CommandQueue_EndEvent(This) \ ( (This)->lpVtbl -> EndEvent(This) ) #define ID3D12CommandQueue_Signal(This,pFence,Value) \ ( (This)->lpVtbl -> Signal(This,pFence,Value) ) #define ID3D12CommandQueue_Wait(This,pFence,Value) \ ( (This)->lpVtbl -> Wait(This,pFence,Value) ) #define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \ ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) #define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) #define ID3D12CommandQueue_GetDesc(This) \ ( (This)->lpVtbl -> GetDesc(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ #ifndef __ID3D12Device_INTERFACE_DEFINED__ #define __ID3D12Device_INTERFACE_DEFINED__ /* interface ID3D12Device */ /* [unique][local][object][uuid] */ EXTERN_C const IID IID_ID3D12Device; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7") ID3D12Device : public ID3D12Object { public: virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0; virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue( _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, REFIID riid, _COM_Outptr_ void **ppCommandQueue) = 0; virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator( _In_ D3D12_COMMAND_LIST_TYPE type, REFIID riid, _COM_Outptr_ void **ppCommandAllocator) = 0; virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState( _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, REFIID riid, _COM_Outptr_ void **ppPipelineState) = 0; virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState( _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, REFIID riid, _COM_Outptr_ void **ppPipelineState) = 0; virtual HRESULT STDMETHODCALLTYPE CreateCommandList( _In_ UINT nodeMask, _In_ D3D12_COMMAND_LIST_TYPE type, _In_ ID3D12CommandAllocator *pCommandAllocator, _In_opt_ ID3D12PipelineState *pInitialState, REFIID riid, _COM_Outptr_ void **ppCommandList) = 0; virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( D3D12_FEATURE Feature, _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, UINT FeatureSupportDataSize) = 0; virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap( _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, REFIID riid, _COM_Outptr_ void **ppvHeap) = 0; virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize( _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0; virtual HRESULT STDMETHODCALLTYPE CreateRootSignature( _In_ UINT nodeMask, _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, _In_ SIZE_T blobLengthInBytes, REFIID riid, _COM_Outptr_ void **ppvRootSignature) = 0; virtual void STDMETHODCALLTYPE CreateConstantBufferView( _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; virtual void STDMETHODCALLTYPE CreateShaderResourceView( _In_opt_ ID3D12Resource *pResource, _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; virtual void STDMETHODCALLTYPE CreateUnorderedAccessView( _In_opt_ ID3D12Resource *pResource, _In_opt_ ID3D12Resource *pCounterResource, _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; virtual void STDMETHODCALLTYPE CreateRenderTargetView( _In_opt_ ID3D12Resource *pResource, _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; virtual void STDMETHODCALLTYPE CreateDepthStencilView( _In_opt_ ID3D12Resource *pResource, _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; virtual void STDMETHODCALLTYPE CreateSampler( _In_ const D3D12_SAMPLER_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; virtual void STDMETHODCALLTYPE CopyDescriptors( _In_ UINT NumDestDescriptorRanges, _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, _In_ UINT NumSrcDescriptorRanges, _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; virtual void STDMETHODCALLTYPE CopyDescriptorsSimple( _In_ UINT NumDescriptors, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( _In_ UINT visibleMask, _In_ UINT numResourceDescs, _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( _In_ UINT nodeMask, D3D12_HEAP_TYPE heapType) = 0; virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource( _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, _In_ const D3D12_RESOURCE_DESC *pResourceDesc, D3D12_RESOURCE_STATES InitialResourceState, _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riidResource, _COM_Outptr_opt_ void **ppvResource) = 0; virtual HRESULT STDMETHODCALLTYPE CreateHeap( _In_ const D3D12_HEAP_DESC *pDesc, REFIID riid, _COM_Outptr_opt_ void **ppvHeap) = 0; virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource( _In_ ID3D12Heap *pHeap, UINT64 HeapOffset, _In_ const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riid, _COM_Outptr_opt_ void **ppvResource) = 0; virtual HRESULT STDMETHODCALLTYPE CreateReservedResource( _In_ const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riid, _COM_Outptr_opt_ void **ppvResource) = 0; virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( _In_ ID3D12DeviceChild *pObject, _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, DWORD Access, _In_opt_ LPCWSTR Name, _Out_ HANDLE *pHandle) = 0; virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle( _In_ HANDLE NTHandle, REFIID riid, _COM_Outptr_opt_ void **ppvObj) = 0; virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName( _In_ LPCWSTR Name, DWORD Access, /* [annotation][out] */ _Out_ HANDLE *pNTHandle) = 0; virtual HRESULT STDMETHODCALLTYPE MakeResident( UINT NumObjects, _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; virtual HRESULT STDMETHODCALLTYPE Evict( UINT NumObjects, _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; virtual HRESULT STDMETHODCALLTYPE CreateFence( UINT64 InitialValue, D3D12_FENCE_FLAGS Flags, REFIID riid, _COM_Outptr_ void **ppFence) = 0; virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; virtual void STDMETHODCALLTYPE GetCopyableFootprints( _In_ const D3D12_RESOURCE_DESC *pResourceDesc, _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, UINT64 BaseOffset, _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, _Out_writes_opt_(NumSubresources) UINT *pNumRows, _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, _Out_opt_ UINT64 *pTotalBytes) = 0; virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap( _In_ const D3D12_QUERY_HEAP_DESC *pDesc, REFIID riid, _COM_Outptr_opt_ void **ppvHeap) = 0; virtual HRESULT STDMETHODCALLTYPE SetStablePowerState( BOOL Enable) = 0; virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature( _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, _In_opt_ ID3D12RootSignature *pRootSignature, REFIID riid, _COM_Outptr_opt_ void **ppvCommandSignature) = 0; virtual void STDMETHODCALLTYPE GetResourceTiling( _In_ ID3D12Resource *pTiledResource, _Out_opt_ UINT *pNumTilesForEntireResource, _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, _Inout_opt_ UINT *pNumSubresourceTilings, _In_ UINT FirstSubresourceTilingToGet, _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0; virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0; }; #else /* C style interface */ typedef struct ID3D12DeviceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ID3D12Device * This, REFIID riid, _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( ID3D12Device * This); ULONG ( STDMETHODCALLTYPE *Release )( ID3D12Device * This); HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( ID3D12Device * This, _In_ REFGUID guid, _Inout_ UINT *pDataSize, _Out_writes_bytes_opt_( *pDataSize ) void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( ID3D12Device * This, _In_ REFGUID guid, _In_ UINT DataSize, _In_reads_bytes_opt_( DataSize ) const void *pData); HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( ID3D12Device * This, _In_ REFGUID guid, _In_opt_ const IUnknown *pData); HRESULT ( STDMETHODCALLTYPE *SetName )( ID3D12Device * This, _In_z_ LPCWSTR Name); UINT ( STDMETHODCALLTYPE *GetNodeCount )( ID3D12Device * This); HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( ID3D12Device * This, _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, REFIID riid, _COM_Outptr_ void **ppCommandQueue); HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( ID3D12Device * This, _In_ D3D12_COMMAND_LIST_TYPE type, REFIID riid, _COM_Outptr_ void **ppCommandAllocator); HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( ID3D12Device * This, _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, REFIID riid, _COM_Outptr_ void **ppPipelineState); HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( ID3D12Device * This, _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, REFIID riid, _COM_Outptr_ void **ppPipelineState); HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( ID3D12Device * This, _In_ UINT nodeMask, _In_ D3D12_COMMAND_LIST_TYPE type, _In_ ID3D12CommandAllocator *pCommandAllocator, _In_opt_ ID3D12PipelineState *pInitialState, REFIID riid, _COM_Outptr_ void **ppCommandList); HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( ID3D12Device * This, D3D12_FEATURE Feature, _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, UINT FeatureSupportDataSize); HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( ID3D12Device * This, _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, REFIID riid, _COM_Outptr_ void **ppvHeap); UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( ID3D12Device * This, _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( ID3D12Device * This, _In_ UINT nodeMask, _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, _In_ SIZE_T blobLengthInBytes, REFIID riid, _COM_Outptr_ void **ppvRootSignature); void ( STDMETHODCALLTYPE *CreateConstantBufferView )( ID3D12Device * This, _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); void ( STDMETHODCALLTYPE *CreateShaderResourceView )( ID3D12Device * This, _In_opt_ ID3D12Resource *pResource, _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( ID3D12Device * This, _In_opt_ ID3D12Resource *pResource, _In_opt_ ID3D12Resource *pCounterResource, _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); void ( STDMETHODCALLTYPE *CreateRenderTargetView )( ID3D12Device * This, _In_opt_ ID3D12Resource *pResource, _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); void ( STDMETHODCALLTYPE *CreateDepthStencilView )( ID3D12Device * This, _In_opt_ ID3D12Resource *pResource, _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); void ( STDMETHODCALLTYPE *CreateSampler )( ID3D12Device * This, _In_ const D3D12_SAMPLER_DESC *pDesc, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); void ( STDMETHODCALLTYPE *CopyDescriptors )( ID3D12Device * This, _In_ UINT NumDestDescriptorRanges, _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, _In_ UINT NumSrcDescriptorRanges, _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( ID3D12Device * This, _In_ UINT NumDescriptors, _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( ID3D12Device * This, _In_ UINT visibleMask, _In_ UINT numResourceDescs, _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( ID3D12Device * This, _In_ UINT nodeMask, D3D12_HEAP_TYPE heapType); HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( ID3D12Device * This, _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, _In_ const D3D12_RESOURCE_DESC *pResourceDesc, D3D12_RESOURCE_STATES InitialResourceState, _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riidResource, _COM_Outptr_opt_ void **ppvResource); HRESULT ( STDMETHODCALLTYPE *CreateHeap )( ID3D12Device * This, _In_ const D3D12_HEAP_DESC *pDesc, REFIID riid, _COM_Outptr_opt_ void **ppvHeap); HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( ID3D12Device * This, _In_ ID3D12Heap *pHeap, UINT64 HeapOffset, _In_ const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riid, _COM_Outptr_opt_ void **ppvResource); HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( ID3D12Device * This, _In_ const D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, REFIID riid, _COM_Outptr_opt_ void **ppvResource); HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( ID3D12Device * This, _In_ ID3D12DeviceChild *pObject, _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, DWORD Access, _In_opt_ LPCWSTR Name, _Out_ HANDLE *pHandle); HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( ID3D12Device * This, _In_ HANDLE NTHandle, REFIID riid, _COM_Outptr_opt_ void **ppvObj); HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( ID3D12Device * This, _In_ LPCWSTR Name, DWORD Access, /* [annotation][out] */ _Out_ HANDLE *pNTHandle); HRESULT ( STDMETHODCALLTYPE *MakeResident )( ID3D12Device * This, UINT NumObjects, _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); HRESULT ( STDMETHODCALLTYPE *Evict )( ID3D12Device * This, UINT NumObjects, _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); HRESULT ( STDMETHODCALLTYPE *CreateFence )( ID3D12Device * This, UINT64 InitialValue, D3D12_FENCE_FLAGS Flags, REFIID riid, _COM_Outptr_ void **ppFence); HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( ID3D12Device * This); void ( STDMETHODCALLTYPE *GetCopyableFootprints )( ID3D12Device * This, _In_ const D3D12_RESOURCE_DESC *pResourceDesc, _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, UINT64 BaseOffset, _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, _Out_writes_opt_(NumSubresources) UINT *pNumRows, _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, _Out_opt_ UINT64 *pTotalBytes); HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( ID3D12Device * This, _In_ const D3D12_QUERY_HEAP_DESC *pDesc, REFIID riid, _COM_Outptr_opt_ void **ppvHeap); HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( ID3D12Device * This, BOOL Enable); HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( ID3D12Device * This, _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, _In_opt_ ID3D12RootSignature *pRootSignature, REFIID riid, _COM_Outptr_opt_ void **ppvCommandSignature); void ( STDMETHODCALLTYPE *GetResourceTiling )( ID3D12Device * This, _In_ ID3D12Resource *pTiledResource, _Out_opt_ UINT *pNumTilesForEntireResource, _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, _Inout_opt_ UINT *pNumSubresourceTilings, _In_ UINT FirstSubresourceTilingToGet, _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( ID3D12Device * This); END_INTERFACE } ID3D12DeviceVtbl; interface ID3D12Device { CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl; }; #ifdef COBJMACROS #define ID3D12Device_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) #define ID3D12Device_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) #define ID3D12Device_Release(This) \ ( (This)->lpVtbl -> Release(This) ) #define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \ ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) #define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \ ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) #define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \ ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) #define ID3D12Device_SetName(This,Name) \ ( (This)->lpVtbl -> SetName(This,Name) ) #define ID3D12Device_GetNodeCount(This) \ ( (This)->lpVtbl -> GetNodeCount(This) ) #define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) #define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) #define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) #define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) #define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) #define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) #define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) #define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) #define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) #define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \ ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) #define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) #define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) #define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) #define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) #define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \ ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) #define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) #define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) #define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) #define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \ ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) #define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pResourceDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pResourceDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) #define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \ ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) #define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) #define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) #define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) #define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) #define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) #define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \ ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) #define ID3D12Device_Evict(This,NumObjects,ppObjects) \ ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) #define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \ ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) #define ID3D12Device_GetDeviceRemovedReason(This) \ ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) #define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) #define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) #define ID3D12Device_SetStablePowerState(This,Enable) \ ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) #define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) #define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) #define ID3D12Device_GetAdapterLuid(This) \ ( (This)->lpVtbl -> GetAdapterLuid(This) ) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __ID3D12Device_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_d3d12_0000_0017 */ /* [local] */ typedef struct D3D12_SUBRESOURCE_DATA { const void *pData; LONG_PTR RowPitch; LONG_PTR SlicePitch; } D3D12_SUBRESOURCE_DATA; typedef struct D3D12_MEMCPY_DEST { void *pData; SIZE_T RowPitch; SIZE_T SlicePitch; } D3D12_MEMCPY_DEST; #if !defined( D3D12_IGNORE_SDK_LAYERS ) #include "d3d12sdklayers.h" #endif /////////////////////////////////////////////////////////////////////////// // D3D12CreateDevice // ------------------ // // pAdapter // If NULL, D3D12CreateDevice will choose the primary adapter. // If non-NULL, D3D12CreateDevice will use the provided adapter. // MinimumFeatureLevel // The minimum feature level required for successful device creation. // riid // The interface IID of the device to be returned. Expected: ID3D12Device. // ppDevice // Pointer to returned interface. May be NULL. // // Return Values // Any of those documented for // CreateDXGIFactory1 // IDXGIFactory::EnumAdapters // D3D12CreateDevice // /////////////////////////////////////////////////////////////////////////// typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, D3D_FEATURE_LEVEL, _In_ REFIID, _COM_Outptr_opt_ void** ); HRESULT WINAPI D3D12CreateDevice( _In_opt_ IUnknown* pAdapter, D3D_FEATURE_LEVEL MinimumFeatureLevel, _In_ REFIID riid, // Expected: ID3D12Device _COM_Outptr_opt_ void** ppDevice ); typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** ); HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ #pragma endregion DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8); DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57); DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14); DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46); DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6); DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3); DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad); DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24); DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5); DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55); DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed); DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7); extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0017_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0017_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ #ifdef __cplusplus } #endif #endif