]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/Graphics/Direct3D11on12/mod.rs
Merge 1.70 into proxmox/bookworm
[rustc.git] / vendor / windows / src / Windows / Win32 / Graphics / Direct3D11on12 / mod.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`, `\"Win32_Graphics_Direct3D\"`, `\"Win32_Graphics_Direct3D11\"`*"]
2#[cfg(all(feature = "Win32_Graphics_Direct3D", feature = "Win32_Graphics_Direct3D11"))]
3#[inline]
4pub unsafe fn D3D11On12CreateDevice<P0>(pdevice: P0, flags: u32, pfeaturelevels: ::core::option::Option<&[super::Direct3D::D3D_FEATURE_LEVEL]>, ppcommandqueues: ::core::option::Option<&[::core::option::Option<::windows::core::IUnknown>]>, nodemask: u32, ppdevice: ::core::option::Option<*mut ::core::option::Option<super::Direct3D11::ID3D11Device>>, ppimmediatecontext: ::core::option::Option<*mut ::core::option::Option<super::Direct3D11::ID3D11DeviceContext>>, pchosenfeaturelevel: ::core::option::Option<*mut super::Direct3D::D3D_FEATURE_LEVEL>) -> ::windows::core::Result<()>
5where
6 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
7{
8 ::windows::imp::link ! ( "d3d11.dll""system" fn D3D11On12CreateDevice ( pdevice : * mut::core::ffi::c_void , flags : u32 , pfeaturelevels : *const super::Direct3D:: D3D_FEATURE_LEVEL , featurelevels : u32 , ppcommandqueues : *const * mut::core::ffi::c_void , numqueues : u32 , nodemask : u32 , ppdevice : *mut * mut::core::ffi::c_void , ppimmediatecontext : *mut * mut::core::ffi::c_void , pchosenfeaturelevel : *mut super::Direct3D:: D3D_FEATURE_LEVEL ) -> :: windows::core::HRESULT );
9 D3D11On12CreateDevice(
10 pdevice.into_param().abi(),
11 flags,
12 ::core::mem::transmute(pfeaturelevels.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
13 pfeaturelevels.as_deref().map_or(0, |slice| slice.len() as _),
14 ::core::mem::transmute(ppcommandqueues.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())),
15 ppcommandqueues.as_deref().map_or(0, |slice| slice.len() as _),
16 nodemask,
17 ::core::mem::transmute(ppdevice.unwrap_or(::std::ptr::null_mut())),
18 ::core::mem::transmute(ppimmediatecontext.unwrap_or(::std::ptr::null_mut())),
19 ::core::mem::transmute(pchosenfeaturelevel.unwrap_or(::std::ptr::null_mut())),
20 )
21 .ok()
22}
23#[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`*"]
24#[repr(transparent)]
25pub struct ID3D11On12Device(::windows::core::IUnknown);
26impl ID3D11On12Device {
27 #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28 #[cfg(feature = "Win32_Graphics_Direct3D12")]
29 pub unsafe fn CreateWrappedResource<P0, T>(&self, presource12: P0, pflags11: *const D3D11_RESOURCE_FLAGS, instate: super::Direct3D12::D3D12_RESOURCE_STATES, outstate: super::Direct3D12::D3D12_RESOURCE_STATES, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
30 where
31 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
32 T: ::windows::core::ComInterface,
33 {
34 (::windows::core::Interface::vtable(self).CreateWrappedResource)(::windows::core::Interface::as_raw(self), presource12.into_param().abi(), pflags11, instate, outstate, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
35 }
36 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"]
37 #[cfg(feature = "Win32_Graphics_Direct3D11")]
38 pub unsafe fn ReleaseWrappedResources(&self, ppresources: &[::core::option::Option<super::Direct3D11::ID3D11Resource>]) {
39 (::windows::core::Interface::vtable(self).ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _)
40 }
41 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"]
42 #[cfg(feature = "Win32_Graphics_Direct3D11")]
43 pub unsafe fn AcquireWrappedResources(&self, ppresources: &[::core::option::Option<super::Direct3D11::ID3D11Resource>]) {
44 (::windows::core::Interface::vtable(self).AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _)
45 }
46}
47::windows::imp::interface_hierarchy!(ID3D11On12Device, ::windows::core::IUnknown);
48impl ::core::cmp::PartialEq for ID3D11On12Device {
49 fn eq(&self, other: &Self) -> bool {
50 self.0 == other.0
51 }
52}
53impl ::core::cmp::Eq for ID3D11On12Device {}
54impl ::core::fmt::Debug for ID3D11On12Device {
55 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
56 f.debug_tuple("ID3D11On12Device").field(&self.0).finish()
57 }
58}
59unsafe impl ::core::marker::Send for ID3D11On12Device {}
60unsafe impl ::core::marker::Sync for ID3D11On12Device {}
61unsafe impl ::windows::core::Interface for ID3D11On12Device {
62 type Vtable = ID3D11On12Device_Vtbl;
63}
64impl ::core::clone::Clone for ID3D11On12Device {
65 fn clone(&self) -> Self {
66 Self(self.0.clone())
67 }
68}
69unsafe impl ::windows::core::ComInterface for ID3D11On12Device {
70 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x85611e73_70a9_490e_9614_a9e302777904);
71}
72#[repr(C)]
73#[doc(hidden)]
74pub struct ID3D11On12Device_Vtbl {
75 pub base__: ::windows::core::IUnknown_Vtbl,
76 #[cfg(feature = "Win32_Graphics_Direct3D12")]
77 pub CreateWrappedResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource12: *mut ::core::ffi::c_void, pflags11: *const D3D11_RESOURCE_FLAGS, instate: super::Direct3D12::D3D12_RESOURCE_STATES, outstate: super::Direct3D12::D3D12_RESOURCE_STATES, riid: *const ::windows::core::GUID, ppresource11: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
78 #[cfg(not(feature = "Win32_Graphics_Direct3D12"))]
79 CreateWrappedResource: usize,
80 #[cfg(feature = "Win32_Graphics_Direct3D11")]
81 pub ReleaseWrappedResources: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppresources: *const *mut ::core::ffi::c_void, numresources: u32),
82 #[cfg(not(feature = "Win32_Graphics_Direct3D11"))]
83 ReleaseWrappedResources: usize,
84 #[cfg(feature = "Win32_Graphics_Direct3D11")]
85 pub AcquireWrappedResources: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppresources: *const *mut ::core::ffi::c_void, numresources: u32),
86 #[cfg(not(feature = "Win32_Graphics_Direct3D11"))]
87 AcquireWrappedResources: usize,
88}
89#[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`*"]
90#[repr(transparent)]
91pub struct ID3D11On12Device1(::windows::core::IUnknown);
92impl ID3D11On12Device1 {
93 #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
94 #[cfg(feature = "Win32_Graphics_Direct3D12")]
95 pub unsafe fn CreateWrappedResource<P0, T>(&self, presource12: P0, pflags11: *const D3D11_RESOURCE_FLAGS, instate: super::Direct3D12::D3D12_RESOURCE_STATES, outstate: super::Direct3D12::D3D12_RESOURCE_STATES, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
96 where
97 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
98 T: ::windows::core::ComInterface,
99 {
100 (::windows::core::Interface::vtable(self).base__.CreateWrappedResource)(::windows::core::Interface::as_raw(self), presource12.into_param().abi(), pflags11, instate, outstate, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
101 }
102 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"]
103 #[cfg(feature = "Win32_Graphics_Direct3D11")]
104 pub unsafe fn ReleaseWrappedResources(&self, ppresources: &[::core::option::Option<super::Direct3D11::ID3D11Resource>]) {
105 (::windows::core::Interface::vtable(self).base__.ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _)
106 }
107 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"]
108 #[cfg(feature = "Win32_Graphics_Direct3D11")]
109 pub unsafe fn AcquireWrappedResources(&self, ppresources: &[::core::option::Option<super::Direct3D11::ID3D11Resource>]) {
110 (::windows::core::Interface::vtable(self).base__.AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _)
111 }
112 pub unsafe fn GetD3D12Device<T>(&self) -> ::windows::core::Result<T>
113 where
114 T: ::windows::core::ComInterface,
115 {
116 let mut result__ = ::std::ptr::null_mut();
117 (::windows::core::Interface::vtable(self).GetD3D12Device)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
118 }
119}
120::windows::imp::interface_hierarchy!(ID3D11On12Device1, ::windows::core::IUnknown, ID3D11On12Device);
121impl ::core::cmp::PartialEq for ID3D11On12Device1 {
122 fn eq(&self, other: &Self) -> bool {
123 self.0 == other.0
124 }
125}
126impl ::core::cmp::Eq for ID3D11On12Device1 {}
127impl ::core::fmt::Debug for ID3D11On12Device1 {
128 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
129 f.debug_tuple("ID3D11On12Device1").field(&self.0).finish()
130 }
131}
132unsafe impl ::core::marker::Send for ID3D11On12Device1 {}
133unsafe impl ::core::marker::Sync for ID3D11On12Device1 {}
134unsafe impl ::windows::core::Interface for ID3D11On12Device1 {
135 type Vtable = ID3D11On12Device1_Vtbl;
136}
137impl ::core::clone::Clone for ID3D11On12Device1 {
138 fn clone(&self) -> Self {
139 Self(self.0.clone())
140 }
141}
142unsafe impl ::windows::core::ComInterface for ID3D11On12Device1 {
143 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbdb64df4_ea2f_4c70_b861_aaab1258bb5d);
144}
145#[repr(C)]
146#[doc(hidden)]
147pub struct ID3D11On12Device1_Vtbl {
148 pub base__: ID3D11On12Device_Vtbl,
149 pub GetD3D12Device: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvdevice: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
150}
151#[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`*"]
152#[repr(transparent)]
153pub struct ID3D11On12Device2(::windows::core::IUnknown);
154impl ID3D11On12Device2 {
155 #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
156 #[cfg(feature = "Win32_Graphics_Direct3D12")]
157 pub unsafe fn CreateWrappedResource<P0, T>(&self, presource12: P0, pflags11: *const D3D11_RESOURCE_FLAGS, instate: super::Direct3D12::D3D12_RESOURCE_STATES, outstate: super::Direct3D12::D3D12_RESOURCE_STATES, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
158 where
159 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
160 T: ::windows::core::ComInterface,
161 {
162 (::windows::core::Interface::vtable(self).base__.base__.CreateWrappedResource)(::windows::core::Interface::as_raw(self), presource12.into_param().abi(), pflags11, instate, outstate, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
163 }
164 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"]
165 #[cfg(feature = "Win32_Graphics_Direct3D11")]
166 pub unsafe fn ReleaseWrappedResources(&self, ppresources: &[::core::option::Option<super::Direct3D11::ID3D11Resource>]) {
167 (::windows::core::Interface::vtable(self).base__.base__.ReleaseWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _)
168 }
169 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"]
170 #[cfg(feature = "Win32_Graphics_Direct3D11")]
171 pub unsafe fn AcquireWrappedResources(&self, ppresources: &[::core::option::Option<super::Direct3D11::ID3D11Resource>]) {
172 (::windows::core::Interface::vtable(self).base__.base__.AcquireWrappedResources)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppresources.as_ptr()), ppresources.len() as _)
173 }
174 pub unsafe fn GetD3D12Device<T>(&self) -> ::windows::core::Result<T>
175 where
176 T: ::windows::core::ComInterface,
177 {
178 let mut result__ = ::std::ptr::null_mut();
179 (::windows::core::Interface::vtable(self).base__.GetD3D12Device)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
180 }
181 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`, `\"Win32_Graphics_Direct3D12\"`*"]
182 #[cfg(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12"))]
183 pub unsafe fn UnwrapUnderlyingResource<P0, P1, T>(&self, presource11: P0, pcommandqueue: P1) -> ::windows::core::Result<T>
184 where
185 P0: ::windows::core::IntoParam<super::Direct3D11::ID3D11Resource>,
186 P1: ::windows::core::IntoParam<super::Direct3D12::ID3D12CommandQueue>,
187 T: ::windows::core::ComInterface,
188 {
189 let mut result__ = ::std::ptr::null_mut();
190 (::windows::core::Interface::vtable(self).UnwrapUnderlyingResource)(::windows::core::Interface::as_raw(self), presource11.into_param().abi(), pcommandqueue.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
191 }
192 #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`, `\"Win32_Graphics_Direct3D12\"`*"]
193 #[cfg(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12"))]
194 pub unsafe fn ReturnUnderlyingResource<P0>(&self, presource11: P0, numsync: u32, psignalvalues: *const u64, ppfences: *const ::core::option::Option<super::Direct3D12::ID3D12Fence>) -> ::windows::core::Result<()>
195 where
196 P0: ::windows::core::IntoParam<super::Direct3D11::ID3D11Resource>,
197 {
198 (::windows::core::Interface::vtable(self).ReturnUnderlyingResource)(::windows::core::Interface::as_raw(self), presource11.into_param().abi(), numsync, psignalvalues, ::core::mem::transmute(ppfences)).ok()
199 }
200}
201::windows::imp::interface_hierarchy!(ID3D11On12Device2, ::windows::core::IUnknown, ID3D11On12Device, ID3D11On12Device1);
202impl ::core::cmp::PartialEq for ID3D11On12Device2 {
203 fn eq(&self, other: &Self) -> bool {
204 self.0 == other.0
205 }
206}
207impl ::core::cmp::Eq for ID3D11On12Device2 {}
208impl ::core::fmt::Debug for ID3D11On12Device2 {
209 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
210 f.debug_tuple("ID3D11On12Device2").field(&self.0).finish()
211 }
212}
213unsafe impl ::core::marker::Send for ID3D11On12Device2 {}
214unsafe impl ::core::marker::Sync for ID3D11On12Device2 {}
215unsafe impl ::windows::core::Interface for ID3D11On12Device2 {
216 type Vtable = ID3D11On12Device2_Vtbl;
217}
218impl ::core::clone::Clone for ID3D11On12Device2 {
219 fn clone(&self) -> Self {
220 Self(self.0.clone())
221 }
222}
223unsafe impl ::windows::core::ComInterface for ID3D11On12Device2 {
224 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdc90f331_4740_43fa_866e_67f12cb58223);
225}
226#[repr(C)]
227#[doc(hidden)]
228pub struct ID3D11On12Device2_Vtbl {
229 pub base__: ID3D11On12Device1_Vtbl,
230 #[cfg(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12"))]
231 pub UnwrapUnderlyingResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource11: *mut ::core::ffi::c_void, pcommandqueue: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvresource12: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
232 #[cfg(not(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12")))]
233 UnwrapUnderlyingResource: usize,
234 #[cfg(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12"))]
235 pub ReturnUnderlyingResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource11: *mut ::core::ffi::c_void, numsync: u32, psignalvalues: *const u64, ppfences: *const *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
236 #[cfg(not(all(feature = "Win32_Graphics_Direct3D11", feature = "Win32_Graphics_Direct3D12")))]
237 ReturnUnderlyingResource: usize,
238}
239#[repr(C)]
240#[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`*"]
241pub struct D3D11_RESOURCE_FLAGS {
242 pub BindFlags: u32,
243 pub MiscFlags: u32,
244 pub CPUAccessFlags: u32,
245 pub StructureByteStride: u32,
246}
247impl ::core::marker::Copy for D3D11_RESOURCE_FLAGS {}
248impl ::core::clone::Clone for D3D11_RESOURCE_FLAGS {
249 fn clone(&self) -> Self {
250 *self
251 }
252}
253impl ::core::fmt::Debug for D3D11_RESOURCE_FLAGS {
254 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
255 f.debug_struct("D3D11_RESOURCE_FLAGS").field("BindFlags", &self.BindFlags).field("MiscFlags", &self.MiscFlags).field("CPUAccessFlags", &self.CPUAccessFlags).field("StructureByteStride", &self.StructureByteStride).finish()
256 }
257}
258impl ::windows::core::TypeKind for D3D11_RESOURCE_FLAGS {
259 type TypeKind = ::windows::core::CopyType;
260}
261impl ::core::cmp::PartialEq for D3D11_RESOURCE_FLAGS {
262 fn eq(&self, other: &Self) -> bool {
263 self.BindFlags == other.BindFlags && self.MiscFlags == other.MiscFlags && self.CPUAccessFlags == other.CPUAccessFlags && self.StructureByteStride == other.StructureByteStride
264 }
265}
266impl ::core::cmp::Eq for D3D11_RESOURCE_FLAGS {}
267impl ::core::default::Default for D3D11_RESOURCE_FLAGS {
268 fn default() -> Self {
269 unsafe { ::core::mem::zeroed() }
270 }
271}
272#[doc = "*Required features: `\"Win32_Graphics_Direct3D11on12\"`, `\"Win32_Graphics_Direct3D\"`, `\"Win32_Graphics_Direct3D11\"`*"]
273#[cfg(all(feature = "Win32_Graphics_Direct3D", feature = "Win32_Graphics_Direct3D11"))]
274pub type PFN_D3D11ON12_CREATE_DEVICE = ::core::option::Option<unsafe extern "system" fn(param0: ::core::option::Option<::windows::core::IUnknown>, param1: u32, param2: *const super::Direct3D::D3D_FEATURE_LEVEL, featurelevels: u32, param4: *const ::core::option::Option<::windows::core::IUnknown>, numqueues: u32, param6: u32, param7: *mut ::core::option::Option<super::Direct3D11::ID3D11Device>, param8: *mut ::core::option::Option<super::Direct3D11::ID3D11DeviceContext>, param9: *mut super::Direct3D::D3D_FEATURE_LEVEL) -> ::windows::core::HRESULT>;
275#[cfg(feature = "implement")]
276::core::include!("impl.rs");