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