1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)] 2 #[link(name = "windows")] 3 extern "system" { DxcCreateInstance(rclsid: *const ::windows_sys::core::GUID, riid: *const ::windows_sys::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT4 pub fn DxcCreateInstance(rclsid: *const ::windows_sys::core::GUID, riid: *const ::windows_sys::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; 5 #[cfg(feature = "Win32_System_Com")] DxcCreateInstance2(pmalloc: super::super::super::System::Com::IMalloc, rclsid: *const ::windows_sys::core::GUID, riid: *const ::windows_sys::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT6 pub fn DxcCreateInstance2(pmalloc: super::super::super::System::Com::IMalloc, rclsid: *const ::windows_sys::core::GUID, riid: *const ::windows_sys::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; 7 } 8 pub const CLSID_DxcAssembler: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 9 data1: 3609779048, 10 data2: 63747, 11 data3: 20352, 12 data4: [148, 205, 220, 207, 118, 236, 113, 81], 13 }; 14 pub const CLSID_DxcCompiler: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 15 data1: 1944202643, 16 data2: 59086, 17 data3: 18419, 18 data4: [181, 191, 240, 102, 79, 57, 193, 176], 19 }; 20 pub const CLSID_DxcCompilerArgs: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 21 data1: 1045868162, 22 data2: 8781, 23 data3: 18191, 24 data4: [161, 161, 254, 48, 22, 238, 159, 157], 25 }; 26 pub const CLSID_DxcContainerBuilder: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 27 data1: 2484290196, 28 data2: 16671, 29 data3: 17780, 30 data4: [180, 208, 135, 65, 226, 82, 64, 210], 31 }; 32 pub const CLSID_DxcContainerReflection: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 33 data1: 3119858825, 34 data2: 21944, 35 data3: 16396, 36 data4: [186, 58, 22, 117, 228, 114, 139, 145], 37 }; 38 pub const CLSID_DxcDiaDataSource: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 39 data1: 3441388403, 40 data2: 10928, 41 data3: 18509, 42 data4: [142, 220, 235, 231, 164, 60, 160, 159], 43 }; 44 pub const CLSID_DxcLibrary: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 45 data1: 1648744111, 46 data2: 26336, 47 data3: 18685, 48 data4: [128, 180, 77, 39, 23, 150, 116, 140], 49 }; 50 pub const CLSID_DxcLinker: ::windows_sys::core::GUID = ::windows_sys::core::GUID { data1: 4016734343, data2: 45290, data3: 19798, data4: [158, 69, 208, 126, 26, 139, 120, 6] }; 51 pub const CLSID_DxcOptimizer: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 52 data1: 2922174367, 53 data2: 52258, 54 data3: 17727, 55 data4: [155, 107, 177, 36, 231, 165, 32, 76], 56 }; 57 pub const CLSID_DxcPdbUtils: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 58 data1: 1415716347, 59 data2: 62158, 60 data3: 17790, 61 data4: [174, 140, 236, 53, 95, 174, 236, 124], 62 }; 63 pub const CLSID_DxcValidator: ::windows_sys::core::GUID = ::windows_sys::core::GUID { 64 data1: 2359550485, 65 data2: 63272, 66 data3: 19699, 67 data4: [140, 221, 136, 175, 145, 117, 135, 161], 68 }; 69 pub type DXC_CP = u32; 70 pub const DXC_CP_ACP: DXC_CP = 0u32; 71 pub const DXC_CP_UTF16: DXC_CP = 1200u32; 72 pub const DXC_CP_UTF8: DXC_CP = 65001u32; 73 pub const DXC_HASHFLAG_INCLUDES_SOURCE: u32 = 1u32; 74 pub type DXC_OUT_KIND = i32; 75 pub const DXC_OUT_NONE: DXC_OUT_KIND = 0i32; 76 pub const DXC_OUT_OBJECT: DXC_OUT_KIND = 1i32; 77 pub const DXC_OUT_ERRORS: DXC_OUT_KIND = 2i32; 78 pub const DXC_OUT_PDB: DXC_OUT_KIND = 3i32; 79 pub const DXC_OUT_SHADER_HASH: DXC_OUT_KIND = 4i32; 80 pub const DXC_OUT_DISASSEMBLY: DXC_OUT_KIND = 5i32; 81 pub const DXC_OUT_HLSL: DXC_OUT_KIND = 6i32; 82 pub const DXC_OUT_TEXT: DXC_OUT_KIND = 7i32; 83 pub const DXC_OUT_REFLECTION: DXC_OUT_KIND = 8i32; 84 pub const DXC_OUT_ROOT_SIGNATURE: DXC_OUT_KIND = 9i32; 85 pub const DXC_OUT_EXTRA_OUTPUTS: DXC_OUT_KIND = 10i32; 86 pub const DXC_OUT_FORCE_DWORD: DXC_OUT_KIND = -1i32; 87 #[repr(C)] 88 #[cfg(feature = "Win32_Foundation")] 89 pub struct DxcArgPair { 90 pub pName: super::super::super::Foundation::PWSTR, 91 pub pValue: super::super::super::Foundation::PWSTR, 92 } 93 #[cfg(feature = "Win32_Foundation")] 94 impl ::core::marker::Copy for DxcArgPair {} 95 #[cfg(feature = "Win32_Foundation")] 96 impl ::core::clone::Clone for DxcArgPair { clone(&self) -> Self97 fn clone(&self) -> Self { 98 *self 99 } 100 } 101 #[repr(C)] 102 pub struct DxcBuffer { 103 pub Ptr: *mut ::core::ffi::c_void, 104 pub Size: usize, 105 pub Encoding: u32, 106 } 107 impl ::core::marker::Copy for DxcBuffer {} 108 impl ::core::clone::Clone for DxcBuffer { clone(&self) -> Self109 fn clone(&self) -> Self { 110 *self 111 } 112 } 113 #[cfg(feature = "Win32_System_Com")] 114 pub type DxcCreateInstance2Proc = unsafe extern "system" fn(pmalloc: super::super::super::System::Com::IMalloc, rclsid: *const ::windows_sys::core::GUID, riid: *const ::windows_sys::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; 115 pub type DxcCreateInstanceProc = unsafe extern "system" fn(rclsid: *const ::windows_sys::core::GUID, riid: *const ::windows_sys::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; 116 #[repr(C)] 117 #[cfg(feature = "Win32_Foundation")] 118 pub struct DxcDefine { 119 pub Name: super::super::super::Foundation::PWSTR, 120 pub Value: super::super::super::Foundation::PWSTR, 121 } 122 #[cfg(feature = "Win32_Foundation")] 123 impl ::core::marker::Copy for DxcDefine {} 124 #[cfg(feature = "Win32_Foundation")] 125 impl ::core::clone::Clone for DxcDefine { clone(&self) -> Self126 fn clone(&self) -> Self { 127 *self 128 } 129 } 130 #[repr(C)] 131 pub struct DxcShaderHash { 132 pub Flags: u32, 133 pub HashDigest: [u8; 16], 134 } 135 impl ::core::marker::Copy for DxcShaderHash {} 136 impl ::core::clone::Clone for DxcShaderHash { clone(&self) -> Self137 fn clone(&self) -> Self { 138 *self 139 } 140 } 141 pub const DxcValidatorFlags_Default: u32 = 0u32; 142 pub const DxcValidatorFlags_InPlaceEdit: u32 = 1u32; 143 pub const DxcValidatorFlags_ModuleOnly: u32 = 4u32; 144 pub const DxcValidatorFlags_RootSignatureOnly: u32 = 2u32; 145 pub const DxcValidatorFlags_ValidMask: u32 = 7u32; 146 pub const DxcVersionInfoFlags_Debug: u32 = 1u32; 147 pub const DxcVersionInfoFlags_Internal: u32 = 2u32; 148 pub const DxcVersionInfoFlags_None: u32 = 0u32; 149 pub type IDxcAssembler = *mut ::core::ffi::c_void; 150 pub type IDxcBlob = *mut ::core::ffi::c_void; 151 pub type IDxcBlobEncoding = *mut ::core::ffi::c_void; 152 pub type IDxcBlobUtf16 = *mut ::core::ffi::c_void; 153 pub type IDxcBlobUtf8 = *mut ::core::ffi::c_void; 154 pub type IDxcCompiler = *mut ::core::ffi::c_void; 155 pub type IDxcCompiler2 = *mut ::core::ffi::c_void; 156 pub type IDxcCompiler3 = *mut ::core::ffi::c_void; 157 pub type IDxcCompilerArgs = *mut ::core::ffi::c_void; 158 pub type IDxcContainerBuilder = *mut ::core::ffi::c_void; 159 pub type IDxcContainerReflection = *mut ::core::ffi::c_void; 160 pub type IDxcExtraOutputs = *mut ::core::ffi::c_void; 161 pub type IDxcIncludeHandler = *mut ::core::ffi::c_void; 162 pub type IDxcLibrary = *mut ::core::ffi::c_void; 163 pub type IDxcLinker = *mut ::core::ffi::c_void; 164 pub type IDxcOperationResult = *mut ::core::ffi::c_void; 165 pub type IDxcOptimizer = *mut ::core::ffi::c_void; 166 pub type IDxcOptimizerPass = *mut ::core::ffi::c_void; 167 pub type IDxcPdbUtils = *mut ::core::ffi::c_void; 168 pub type IDxcResult = *mut ::core::ffi::c_void; 169 pub type IDxcUtils = *mut ::core::ffi::c_void; 170 pub type IDxcValidator = *mut ::core::ffi::c_void; 171 pub type IDxcValidator2 = *mut ::core::ffi::c_void; 172 pub type IDxcVersionInfo = *mut ::core::ffi::c_void; 173 pub type IDxcVersionInfo2 = *mut ::core::ffi::c_void; 174 pub type IDxcVersionInfo3 = *mut ::core::ffi::c_void; 175