From 6c8ae19be66cee247980a48e736a4e05d14de179 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Tue, 2 Dec 2025 16:39:36 -0800 Subject: Immediate-mode renderer, triangle demo, shader compilation in cmake, Agility SDK --- .../include/directx/d3d12compiler.idl | 291 +++++++++++++++++++++ 1 file changed, 291 insertions(+) create mode 100644 contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl (limited to 'contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl') diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl new file mode 100644 index 0000000..c8ae4b4 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl @@ -0,0 +1,291 @@ +/*------------------------------------------------------------------------------------- + * + * Copyright (c) Microsoft Corporation + * Licensed under the MIT license + * + *-------------------------------------------------------------------------------------*/ +import "oaidl.idl"; +import "ocidl.idl"; + +import "dxgicommon.idl"; +import "d3d12.idl"; + +cpp_quote("#include ") + +#pragma region App Family +cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") + + +typedef struct D3D12_ADAPTER_FAMILY +{ + WCHAR szAdapterFamily[128]; +} D3D12_ADAPTER_FAMILY; + +cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_COMPILER_CREATE_FACTORY)( ") +cpp_quote(" _In_ LPCWSTR pPluginCompilerDllPath,") +cpp_quote(" _In_ REFIID riid,") +cpp_quote(" _COM_Outptr_opt_ void** ppFactory );") +cpp_quote("") +cpp_quote("HRESULT WINAPI D3D12CompilerCreateFactory(") +cpp_quote(" _In_ LPCWSTR pPluginCompilerDllPath,") +cpp_quote(" _In_ REFIID riid, // Expected: ID3D12CompilerFactory") +cpp_quote(" _COM_Outptr_opt_ void** ppFactory );") +cpp_quote("") +cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_COMPILER_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(") +cpp_quote(" _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,") +cpp_quote(" _Out_ ID3DBlob** ppBlob,") +cpp_quote(" _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);") +cpp_quote("") +cpp_quote("HRESULT WINAPI D3D12CompilerSerializeVersionedRootSignature(") +cpp_quote(" _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,") +cpp_quote(" _Out_ ID3DBlob** ppBlob,") +cpp_quote(" _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);") +cpp_quote("") + +[uuid(e0d06420-9f31-47e8-ae9a-dd2ba25ac0bc), object, local, pointer_default(unique)] +interface ID3D12CompilerFactoryChild + : IUnknown +{ + HRESULT GetFactory( + [annotation("_In_")] REFIID riid, // ID3D12CompilerFactory + [annotation("_COM_Outptr_")] void** ppCompilerFactory + ); +}; + +typedef enum D3D12_COMPILER_VALUE_TYPE +{ + D3D12_COMPILER_VALUE_TYPE_OBJECT_CODE = 0, + D3D12_COMPILER_VALUE_TYPE_METADATA = 1, + D3D12_COMPILER_VALUE_TYPE_DEBUG_PDB = 2, + D3D12_COMPILER_VALUE_TYPE_PERFORMANCE_DATA = 3, + +} D3D12_COMPILER_VALUE_TYPE; + +typedef enum D3D12_COMPILER_VALUE_TYPE_FLAGS +{ + D3D12_COMPILER_VALUE_TYPE_FLAGS_NONE = 0x00000000, + D3D12_COMPILER_VALUE_TYPE_FLAGS_OBJECT_CODE = (1 << D3D12_COMPILER_VALUE_TYPE_OBJECT_CODE), + D3D12_COMPILER_VALUE_TYPE_FLAGS_METADATA = (1 << D3D12_COMPILER_VALUE_TYPE_METADATA), + D3D12_COMPILER_VALUE_TYPE_FLAGS_DEBUG_PDB = (1 << D3D12_COMPILER_VALUE_TYPE_DEBUG_PDB), + D3D12_COMPILER_VALUE_TYPE_FLAGS_PERFORMANCE_DATA = (1 << D3D12_COMPILER_VALUE_TYPE_PERFORMANCE_DATA), + + +} D3D12_COMPILER_VALUE_TYPE_FLAGS; +cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPILER_VALUE_TYPE_FLAGS )") + +typedef struct D3D12_COMPILER_DATABASE_PATH +{ + D3D12_COMPILER_VALUE_TYPE_FLAGS Types; + LPCWSTR pPath; +} D3D12_COMPILER_DATABASE_PATH; + +typedef struct D3D12_COMPILER_CACHE_GROUP_KEY +{ + [annotation("_Field_size_bytes_full_(KeySize)")] const void* pKey; + UINT KeySize; +} D3D12_COMPILER_CACHE_GROUP_KEY; + +typedef struct D3D12_COMPILER_CACHE_VALUE_KEY +{ + [annotation("_Field_size_bytes_full_(KeySize)")] const void* pKey; + UINT KeySize; +} D3D12_COMPILER_CACHE_VALUE_KEY; + +typedef struct D3D12_COMPILER_CACHE_VALUE +{ + [annotation("_Field_size_bytes_full_(ValueSize)")] void* pValue; + UINT ValueSize; +} D3D12_COMPILER_CACHE_VALUE; + +typedef struct D3D12_COMPILER_CACHE_TYPED_VALUE +{ + D3D12_COMPILER_VALUE_TYPE Type; + D3D12_COMPILER_CACHE_VALUE Value; +} D3D12_COMPILER_CACHE_TYPED_VALUE; + +typedef struct D3D12_COMPILER_CACHE_CONST_VALUE +{ + [annotation("_Field_size_bytes_full_(ValueSize)")] const void* pValue; + UINT ValueSize; +} D3D12_COMPILER_CACHE_CONST_VALUE; + +typedef struct D3D12_COMPILER_CACHE_TYPED_CONST_VALUE +{ + D3D12_COMPILER_VALUE_TYPE Type; + D3D12_COMPILER_CACHE_CONST_VALUE Value; +} D3D12_COMPILER_CACHE_TYPED_CONST_VALUE; + +typedef struct D3D12_COMPILER_TARGET +{ + UINT AdapterFamilyIndex; + UINT64 ABIVersion; +} D3D12_COMPILER_TARGET; + +typedef void* (__stdcall* D3D12CompilerCacheSessionAllocationFunc) ( + SIZE_T SizeInBytes, + [annotation("_Inout_opt_")] void* pContext + ); + +typedef void(__stdcall* D3D12CompilerCacheSessionGroupValueKeysFunc) ( + [annotation("_In_")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKey, + [annotation("_Inout_opt_")] void* pContext + ); + +typedef void(__stdcall* D3D12CompilerCacheSessionGroupValuesFunc) ( + UINT ValueKeyIndex, + [annotation("_In_")] const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE* pTypedValue, + [annotation("_Inout_opt_")] void* pContext + ); + +[uuid(5704e5e6-054b-4738-b661-7b0d68d8dde2), object, local, pointer_default(unique)] +interface ID3D12CompilerCacheSession + : ID3D12CompilerFactoryChild +{ + HRESULT FindGroup( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + [annotation("_Out_opt_")] UINT* pGroupVersion + ); + + HRESULT FindGroupValueKeys( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + [annotation("_In_opt_")] const UINT* pExpectedGroupVersion, + [annotation("_In_")] D3D12CompilerCacheSessionGroupValueKeysFunc CallbackFunc, + [annotation("_Inout_opt_")] void* pContext + ); + + HRESULT FindGroupValues( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + [annotation("_In_opt_")] const UINT* pExpectedGroupVersion, + D3D12_COMPILER_VALUE_TYPE_FLAGS ValueTypeFlags, + [annotation("_In_opt_")] D3D12CompilerCacheSessionGroupValuesFunc CallbackFunc, + [annotation("_Inout_opt_")] void* pContext + ); + + HRESULT FindValue( + [annotation("_In_")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKey, + [annotation("_Inout_count_(NumTypedValues)")] D3D12_COMPILER_CACHE_TYPED_VALUE* pTypedValues, + UINT NumTypedValues, + [annotation("_In_opt_")] D3D12CompilerCacheSessionAllocationFunc pCallbackFunc, + [annotation("_Inout_opt_")] void* pContext + ); + + const D3D12_APPLICATION_DESC* GetApplicationDesc(); + + D3D12_COMPILER_TARGET GetCompilerTarget(); + + D3D12_COMPILER_VALUE_TYPE_FLAGS GetValueTypes(); + + HRESULT StoreGroupValueKeys( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + UINT GroupVersion, + [annotation("_In_reads_(NumValueKeys)")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKeys, + UINT NumValueKeys + ); + + HRESULT StoreValue( + [annotation("_In_")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKey, + [annotation("_In_reads_(NumTypedValues)")] const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE* pTypedValues, + UINT NumTypedValues + ); +}; + +[uuid(5981cca4-e8ae-44ca-9b92-4fa86f5a3a3a), object, local, pointer_default(unique)] +interface ID3D12CompilerStateObject + : IUnknown +{ + HRESULT GetCompiler( + [annotation("_In_")] REFIID riid, // ID3D12Compiler + [annotation("_COM_Outptr_")] void** ppCompiler + ); +}; + +typedef struct D3D12_COMPILER_EXISTING_COLLECTION_DESC +{ + ID3D12CompilerStateObject* pExistingCollection; + UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced + [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; +} D3D12_COMPILER_EXISTING_COLLECTION_DESC; + +[uuid(8c403c12-993b-4583-80f1-6824138fa68e), object, local, pointer_default(unique)] +interface ID3D12Compiler + : ID3D12CompilerFactoryChild +{ + HRESULT CompilePipelineState( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + UINT GroupVersion, + [annotation("_In_")] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc + ); + + HRESULT CompileStateObject( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + UINT GroupVersion, + [annotation("_In_")] const D3D12_STATE_OBJECT_DESC* pDesc, + [annotation("_In_")] REFIID riid, // ID3D12CompilerStateObject + [annotation("_COM_Outptr_")] void** ppCompilerStateObject + ); + + HRESULT CompileAddToStateObject( + [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, + UINT GroupVersion, + [annotation("_In_")] const D3D12_STATE_OBJECT_DESC* pAddition, + [annotation("_In_")] ID3D12CompilerStateObject* pCompilerStateObjectToGrowFrom, + [annotation("_In_")] REFIID riid, // ID3D12CompilerStateObject + [annotation("_COM_Outptr_")] void** ppNewCompilerStateObject + ); + + HRESULT GetCacheSession( + [annotation("_In_")] REFIID riid, // ID3D12CompilerCacheSession + [annotation("_COM_Outptr_")] void** ppCompilerCacheSession + ); +}; + +[uuid(c1ee4b59-3f59-47a5-9b4e-a855c858a878), object, local, pointer_default(unique)] +interface ID3D12CompilerFactory + : IUnknown +{ + HRESULT EnumerateAdapterFamilies( + UINT AdapterFamilyIndex, + [annotation("_Out_")] D3D12_ADAPTER_FAMILY* pAdapterFamily + ); + + HRESULT EnumerateAdapterFamilyABIVersions( + UINT AdapterFamilyIndex, + [annotation("_Inout_")] UINT32* pNumABIVersions, + [annotation("_Out_writes_opt_(*pNumABIVersions)")] UINT64 * pABIVersions + ); + + HRESULT EnumerateAdapterFamilyCompilerVersion( + UINT AdapterFamilyIndex, + [annotation("_Out_")] D3D12_VERSION_NUMBER* pCompilerVersion + ); + + HRESULT GetApplicationProfileVersion( + [annotation("_In_")] const D3D12_COMPILER_TARGET* pTarget, + [annotation("_In_")] const D3D12_APPLICATION_DESC* pApplicationDesc, + [annotation("_Out_")] D3D12_VERSION_NUMBER* pApplicationProfileVersion + ); + + HRESULT CreateCompilerCacheSession( + [annotation("_In_reads_(NumPaths)")] const D3D12_COMPILER_DATABASE_PATH* pPaths, + UINT NumPaths, + [annotation("_In_opt_")] const D3D12_COMPILER_TARGET* pTarget, + [annotation("_In_opt_")] const D3D12_APPLICATION_DESC* pApplicationDesc, + [annotation("_In_")] REFIID riid, // ID3D12CompilerCacheSession + [annotation("_COM_Outptr_")] void** ppCompilerCacheSession + ); + + HRESULT CreateCompiler( + [annotation("_In_")] ID3D12CompilerCacheSession* pCompilerCacheSession, + [annotation("_In_")] REFIID riid, // ID3D12Compiler + [annotation("_COM_Outptr_")] void** ppCompiler + ); +}; + +cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") +#pragma endregion + +cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerFactoryChild,0xe0d06420,0x9f31,0x47e8,0xae,0x9a,0xdd,0x2b,0xa2,0x5a,0xc0,0xbc);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerCacheSession,0x5704e5e6,0x054b,0x4738,0xb6,0x61,0x7b,0x0d,0x68,0xd8,0xdd,0xe2);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerStateObject,0x5981cca4,0xe8ae,0x44ca,0x9b,0x92,0x4f,0xa8,0x6f,0x5a,0x3a,0x3a);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12Compiler,0x8c403c12,0x993b,0x4583,0x80,0xf1,0x68,0x24,0x13,0x8f,0xa6,0x8e);" ) +cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerFactory,0xc1ee4b59,0x3f59,0x47a5,0x9b,0x4e,0xa8,0x55,0xc8,0x58,0xa8,0x78);" ) -- cgit v1.2.3