1#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2#[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3pub mod Common;
4#[inline]
5pub unsafe fn CreateDXGIFactory<T>() -> ::windows_core::Result<T>
6where
7 T: ::windows_core::ComInterface,
8{
9 ::windows_targets::link!("dxgi.dll" "system" fn CreateDXGIFactory(riid : *const ::windows_core::GUID, ppfactory : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
10 let mut result__: *mut c_void = ::std::ptr::null_mut();
11 CreateDXGIFactory(&<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
12}
13#[inline]
14pub unsafe fn CreateDXGIFactory1<T>() -> ::windows_core::Result<T>
15where
16 T: ::windows_core::ComInterface,
17{
18 ::windows_targets::link!("dxgi.dll" "system" fn CreateDXGIFactory1(riid : *const ::windows_core::GUID, ppfactory : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
19 let mut result__: *mut c_void = ::std::ptr::null_mut();
20 CreateDXGIFactory1(&<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
21}
22#[inline]
23pub unsafe fn CreateDXGIFactory2<T>(flags: u32) -> ::windows_core::Result<T>
24where
25 T: ::windows_core::ComInterface,
26{
27 ::windows_targets::link!("dxgi.dll" "system" fn CreateDXGIFactory2(flags : u32, riid : *const ::windows_core::GUID, ppfactory : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
28 let mut result__: *mut c_void = ::std::ptr::null_mut();
29 CreateDXGIFactory2(flags, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
30}
31#[inline]
32pub unsafe fn DXGIDeclareAdapterRemovalSupport() -> ::windows_core::Result<()> {
33 ::windows_targets::link!("dxgi.dll" "system" fn DXGIDeclareAdapterRemovalSupport() -> ::windows_core::HRESULT);
34 DXGIDeclareAdapterRemovalSupport().ok()
35}
36#[inline]
37pub unsafe fn DXGIDisableVBlankVirtualization() -> ::windows_core::Result<()> {
38 ::windows_targets::link!("dxgi.dll" "system" fn DXGIDisableVBlankVirtualization() -> ::windows_core::HRESULT);
39 DXGIDisableVBlankVirtualization().ok()
40}
41#[inline]
42pub unsafe fn DXGIGetDebugInterface1<T>(flags: u32) -> ::windows_core::Result<T>
43where
44 T: ::windows_core::ComInterface,
45{
46 ::windows_targets::link!("dxgi.dll" "system" fn DXGIGetDebugInterface1(flags : u32, riid : *const ::windows_core::GUID, pdebug : *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT);
47 let mut result__: *mut c_void = ::std::ptr::null_mut();
48 DXGIGetDebugInterface1(flags, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
49}
50#[repr(transparent)]
51#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
52pub struct IDXGIAdapter(::windows_core::IUnknown);
53impl IDXGIAdapter {
54 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
55 (::windows_core::Interface::vtable(self).base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
56 }
57 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
58 where
59 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
60 {
61 (::windows_core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
62 }
63 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
64 (::windows_core::Interface::vtable(self).base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
65 }
66 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
67 where
68 T: ::windows_core::ComInterface,
69 {
70 let mut result__ = ::std::ptr::null_mut();
71 (::windows_core::Interface::vtable(self).base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
72 }
73 pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows_core::Result<IDXGIOutput> {
74 let mut result__ = ::std::mem::zeroed();
75 (::windows_core::Interface::vtable(self).EnumOutputs)(::windows_core::Interface::as_raw(self), output, &mut result__).from_abi(result__)
76 }
77 #[doc = "Required features: `\"Win32_Foundation\"`"]
78 #[cfg(feature = "Win32_Foundation")]
79 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows_core::Result<()> {
80 (::windows_core::Interface::vtable(self).GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
81 }
82 pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows_core::GUID) -> ::windows_core::Result<i64> {
83 let mut result__ = ::std::mem::zeroed();
84 (::windows_core::Interface::vtable(self).CheckInterfaceSupport)(::windows_core::Interface::as_raw(self), interfacename, &mut result__).from_abi(result__)
85 }
86}
87::windows_core::imp::interface_hierarchy!(IDXGIAdapter, ::windows_core::IUnknown, IDXGIObject);
88unsafe impl ::core::marker::Send for IDXGIAdapter {}
89unsafe impl ::core::marker::Sync for IDXGIAdapter {}
90unsafe impl ::windows_core::Interface for IDXGIAdapter {
91 type Vtable = IDXGIAdapter_Vtbl;
92}
93unsafe impl ::windows_core::ComInterface for IDXGIAdapter {
94 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x2411e7e1_12ac_4ccf_bd14_9798e8534dc0);
95}
96#[repr(C)]
97#[doc(hidden)]
98pub struct IDXGIAdapter_Vtbl {
99 pub base__: IDXGIObject_Vtbl,
100 pub EnumOutputs: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, output: u32, ppoutput: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
101 #[cfg(feature = "Win32_Foundation")]
102 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows_core::HRESULT,
103 #[cfg(not(feature = "Win32_Foundation"))]
104 GetDesc: usize,
105 pub CheckInterfaceSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, interfacename: *const ::windows_core::GUID, pumdversion: *mut i64) -> ::windows_core::HRESULT,
106}
107#[repr(transparent)]
108#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
109pub struct IDXGIAdapter1(::windows_core::IUnknown);
110impl IDXGIAdapter1 {
111 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
112 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
113 }
114 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
115 where
116 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
117 {
118 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
119 }
120 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
121 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
122 }
123 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
124 where
125 T: ::windows_core::ComInterface,
126 {
127 let mut result__ = ::std::ptr::null_mut();
128 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
129 }
130 pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows_core::Result<IDXGIOutput> {
131 let mut result__ = ::std::mem::zeroed();
132 (::windows_core::Interface::vtable(self).base__.EnumOutputs)(::windows_core::Interface::as_raw(self), output, &mut result__).from_abi(result__)
133 }
134 #[doc = "Required features: `\"Win32_Foundation\"`"]
135 #[cfg(feature = "Win32_Foundation")]
136 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows_core::Result<()> {
137 (::windows_core::Interface::vtable(self).base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
138 }
139 pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows_core::GUID) -> ::windows_core::Result<i64> {
140 let mut result__ = ::std::mem::zeroed();
141 (::windows_core::Interface::vtable(self).base__.CheckInterfaceSupport)(::windows_core::Interface::as_raw(self), interfacename, &mut result__).from_abi(result__)
142 }
143 #[doc = "Required features: `\"Win32_Foundation\"`"]
144 #[cfg(feature = "Win32_Foundation")]
145 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows_core::Result<()> {
146 (::windows_core::Interface::vtable(self).GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
147 }
148}
149::windows_core::imp::interface_hierarchy!(IDXGIAdapter1, ::windows_core::IUnknown, IDXGIObject, IDXGIAdapter);
150unsafe impl ::core::marker::Send for IDXGIAdapter1 {}
151unsafe impl ::core::marker::Sync for IDXGIAdapter1 {}
152unsafe impl ::windows_core::Interface for IDXGIAdapter1 {
153 type Vtable = IDXGIAdapter1_Vtbl;
154}
155unsafe impl ::windows_core::ComInterface for IDXGIAdapter1 {
156 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x29038f61_3839_4626_91fd_086879011a05);
157}
158#[repr(C)]
159#[doc(hidden)]
160pub struct IDXGIAdapter1_Vtbl {
161 pub base__: IDXGIAdapter_Vtbl,
162 #[cfg(feature = "Win32_Foundation")]
163 pub GetDesc1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows_core::HRESULT,
164 #[cfg(not(feature = "Win32_Foundation"))]
165 GetDesc1: usize,
166}
167#[repr(transparent)]
168#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
169pub struct IDXGIAdapter2(::windows_core::IUnknown);
170impl IDXGIAdapter2 {
171 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
172 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
173 }
174 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
175 where
176 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
177 {
178 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
179 }
180 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
181 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
182 }
183 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
184 where
185 T: ::windows_core::ComInterface,
186 {
187 let mut result__ = ::std::ptr::null_mut();
188 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
189 }
190 pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows_core::Result<IDXGIOutput> {
191 let mut result__ = ::std::mem::zeroed();
192 (::windows_core::Interface::vtable(self).base__.base__.EnumOutputs)(::windows_core::Interface::as_raw(self), output, &mut result__).from_abi(result__)
193 }
194 #[doc = "Required features: `\"Win32_Foundation\"`"]
195 #[cfg(feature = "Win32_Foundation")]
196 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows_core::Result<()> {
197 (::windows_core::Interface::vtable(self).base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
198 }
199 pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows_core::GUID) -> ::windows_core::Result<i64> {
200 let mut result__ = ::std::mem::zeroed();
201 (::windows_core::Interface::vtable(self).base__.base__.CheckInterfaceSupport)(::windows_core::Interface::as_raw(self), interfacename, &mut result__).from_abi(result__)
202 }
203 #[doc = "Required features: `\"Win32_Foundation\"`"]
204 #[cfg(feature = "Win32_Foundation")]
205 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows_core::Result<()> {
206 (::windows_core::Interface::vtable(self).base__.GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
207 }
208 #[doc = "Required features: `\"Win32_Foundation\"`"]
209 #[cfg(feature = "Win32_Foundation")]
210 pub unsafe fn GetDesc2(&self, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows_core::Result<()> {
211 (::windows_core::Interface::vtable(self).GetDesc2)(::windows_core::Interface::as_raw(self), pdesc).ok()
212 }
213}
214::windows_core::imp::interface_hierarchy!(IDXGIAdapter2, ::windows_core::IUnknown, IDXGIObject, IDXGIAdapter, IDXGIAdapter1);
215unsafe impl ::core::marker::Send for IDXGIAdapter2 {}
216unsafe impl ::core::marker::Sync for IDXGIAdapter2 {}
217unsafe impl ::windows_core::Interface for IDXGIAdapter2 {
218 type Vtable = IDXGIAdapter2_Vtbl;
219}
220unsafe impl ::windows_core::ComInterface for IDXGIAdapter2 {
221 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x0aa1ae0a_fa0e_4b84_8644_e05ff8e5acb5);
222}
223#[repr(C)]
224#[doc(hidden)]
225pub struct IDXGIAdapter2_Vtbl {
226 pub base__: IDXGIAdapter1_Vtbl,
227 #[cfg(feature = "Win32_Foundation")]
228 pub GetDesc2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows_core::HRESULT,
229 #[cfg(not(feature = "Win32_Foundation"))]
230 GetDesc2: usize,
231}
232#[repr(transparent)]
233#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
234pub struct IDXGIAdapter3(::windows_core::IUnknown);
235impl IDXGIAdapter3 {
236 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
237 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
238 }
239 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
240 where
241 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
242 {
243 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
244 }
245 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
246 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
247 }
248 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
249 where
250 T: ::windows_core::ComInterface,
251 {
252 let mut result__ = ::std::ptr::null_mut();
253 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
254 }
255 pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows_core::Result<IDXGIOutput> {
256 let mut result__ = ::std::mem::zeroed();
257 (::windows_core::Interface::vtable(self).base__.base__.base__.EnumOutputs)(::windows_core::Interface::as_raw(self), output, &mut result__).from_abi(result__)
258 }
259 #[doc = "Required features: `\"Win32_Foundation\"`"]
260 #[cfg(feature = "Win32_Foundation")]
261 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows_core::Result<()> {
262 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
263 }
264 pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows_core::GUID) -> ::windows_core::Result<i64> {
265 let mut result__ = ::std::mem::zeroed();
266 (::windows_core::Interface::vtable(self).base__.base__.base__.CheckInterfaceSupport)(::windows_core::Interface::as_raw(self), interfacename, &mut result__).from_abi(result__)
267 }
268 #[doc = "Required features: `\"Win32_Foundation\"`"]
269 #[cfg(feature = "Win32_Foundation")]
270 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows_core::Result<()> {
271 (::windows_core::Interface::vtable(self).base__.base__.GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
272 }
273 #[doc = "Required features: `\"Win32_Foundation\"`"]
274 #[cfg(feature = "Win32_Foundation")]
275 pub unsafe fn GetDesc2(&self, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows_core::Result<()> {
276 (::windows_core::Interface::vtable(self).base__.GetDesc2)(::windows_core::Interface::as_raw(self), pdesc).ok()
277 }
278 #[doc = "Required features: `\"Win32_Foundation\"`"]
279 #[cfg(feature = "Win32_Foundation")]
280 pub unsafe fn RegisterHardwareContentProtectionTeardownStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
281 where
282 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
283 {
284 let mut result__ = ::std::mem::zeroed();
285 (::windows_core::Interface::vtable(self).RegisterHardwareContentProtectionTeardownStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
286 }
287 pub unsafe fn UnregisterHardwareContentProtectionTeardownStatus(&self, dwcookie: u32) {
288 (::windows_core::Interface::vtable(self).UnregisterHardwareContentProtectionTeardownStatus)(::windows_core::Interface::as_raw(self), dwcookie)
289 }
290 pub unsafe fn QueryVideoMemoryInfo(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, pvideomemoryinfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO) -> ::windows_core::Result<()> {
291 (::windows_core::Interface::vtable(self).QueryVideoMemoryInfo)(::windows_core::Interface::as_raw(self), nodeindex, memorysegmentgroup, pvideomemoryinfo).ok()
292 }
293 pub unsafe fn SetVideoMemoryReservation(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows_core::Result<()> {
294 (::windows_core::Interface::vtable(self).SetVideoMemoryReservation)(::windows_core::Interface::as_raw(self), nodeindex, memorysegmentgroup, reservation).ok()
295 }
296 #[doc = "Required features: `\"Win32_Foundation\"`"]
297 #[cfg(feature = "Win32_Foundation")]
298 pub unsafe fn RegisterVideoMemoryBudgetChangeNotificationEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
299 where
300 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
301 {
302 let mut result__ = ::std::mem::zeroed();
303 (::windows_core::Interface::vtable(self).RegisterVideoMemoryBudgetChangeNotificationEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
304 }
305 pub unsafe fn UnregisterVideoMemoryBudgetChangeNotification(&self, dwcookie: u32) {
306 (::windows_core::Interface::vtable(self).UnregisterVideoMemoryBudgetChangeNotification)(::windows_core::Interface::as_raw(self), dwcookie)
307 }
308}
309::windows_core::imp::interface_hierarchy!(IDXGIAdapter3, ::windows_core::IUnknown, IDXGIObject, IDXGIAdapter, IDXGIAdapter1, IDXGIAdapter2);
310unsafe impl ::core::marker::Send for IDXGIAdapter3 {}
311unsafe impl ::core::marker::Sync for IDXGIAdapter3 {}
312unsafe impl ::windows_core::Interface for IDXGIAdapter3 {
313 type Vtable = IDXGIAdapter3_Vtbl;
314}
315unsafe impl ::windows_core::ComInterface for IDXGIAdapter3 {
316 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x645967a4_1392_4310_a798_8053ce3e93fd);
317}
318#[repr(C)]
319#[doc(hidden)]
320pub struct IDXGIAdapter3_Vtbl {
321 pub base__: IDXGIAdapter2_Vtbl,
322 #[cfg(feature = "Win32_Foundation")]
323 pub RegisterHardwareContentProtectionTeardownStatusEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
324 #[cfg(not(feature = "Win32_Foundation"))]
325 RegisterHardwareContentProtectionTeardownStatusEvent: usize,
326 pub UnregisterHardwareContentProtectionTeardownStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32),
327 pub QueryVideoMemoryInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, pvideomemoryinfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO) -> ::windows_core::HRESULT,
328 pub SetVideoMemoryReservation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows_core::HRESULT,
329 #[cfg(feature = "Win32_Foundation")]
330 pub RegisterVideoMemoryBudgetChangeNotificationEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
331 #[cfg(not(feature = "Win32_Foundation"))]
332 RegisterVideoMemoryBudgetChangeNotificationEvent: usize,
333 pub UnregisterVideoMemoryBudgetChangeNotification: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32),
334}
335#[repr(transparent)]
336#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
337pub struct IDXGIAdapter4(::windows_core::IUnknown);
338impl IDXGIAdapter4 {
339 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
340 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
341 }
342 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
343 where
344 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
345 {
346 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
347 }
348 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
349 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
350 }
351 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
352 where
353 T: ::windows_core::ComInterface,
354 {
355 let mut result__ = ::std::ptr::null_mut();
356 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
357 }
358 pub unsafe fn EnumOutputs(&self, output: u32) -> ::windows_core::Result<IDXGIOutput> {
359 let mut result__ = ::std::mem::zeroed();
360 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.EnumOutputs)(::windows_core::Interface::as_raw(self), output, &mut result__).from_abi(result__)
361 }
362 #[doc = "Required features: `\"Win32_Foundation\"`"]
363 #[cfg(feature = "Win32_Foundation")]
364 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_ADAPTER_DESC) -> ::windows_core::Result<()> {
365 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
366 }
367 pub unsafe fn CheckInterfaceSupport(&self, interfacename: *const ::windows_core::GUID) -> ::windows_core::Result<i64> {
368 let mut result__ = ::std::mem::zeroed();
369 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CheckInterfaceSupport)(::windows_core::Interface::as_raw(self), interfacename, &mut result__).from_abi(result__)
370 }
371 #[doc = "Required features: `\"Win32_Foundation\"`"]
372 #[cfg(feature = "Win32_Foundation")]
373 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_ADAPTER_DESC1) -> ::windows_core::Result<()> {
374 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
375 }
376 #[doc = "Required features: `\"Win32_Foundation\"`"]
377 #[cfg(feature = "Win32_Foundation")]
378 pub unsafe fn GetDesc2(&self, pdesc: *mut DXGI_ADAPTER_DESC2) -> ::windows_core::Result<()> {
379 (::windows_core::Interface::vtable(self).base__.base__.GetDesc2)(::windows_core::Interface::as_raw(self), pdesc).ok()
380 }
381 #[doc = "Required features: `\"Win32_Foundation\"`"]
382 #[cfg(feature = "Win32_Foundation")]
383 pub unsafe fn RegisterHardwareContentProtectionTeardownStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
384 where
385 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
386 {
387 let mut result__ = ::std::mem::zeroed();
388 (::windows_core::Interface::vtable(self).base__.RegisterHardwareContentProtectionTeardownStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
389 }
390 pub unsafe fn UnregisterHardwareContentProtectionTeardownStatus(&self, dwcookie: u32) {
391 (::windows_core::Interface::vtable(self).base__.UnregisterHardwareContentProtectionTeardownStatus)(::windows_core::Interface::as_raw(self), dwcookie)
392 }
393 pub unsafe fn QueryVideoMemoryInfo(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, pvideomemoryinfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO) -> ::windows_core::Result<()> {
394 (::windows_core::Interface::vtable(self).base__.QueryVideoMemoryInfo)(::windows_core::Interface::as_raw(self), nodeindex, memorysegmentgroup, pvideomemoryinfo).ok()
395 }
396 pub unsafe fn SetVideoMemoryReservation(&self, nodeindex: u32, memorysegmentgroup: DXGI_MEMORY_SEGMENT_GROUP, reservation: u64) -> ::windows_core::Result<()> {
397 (::windows_core::Interface::vtable(self).base__.SetVideoMemoryReservation)(::windows_core::Interface::as_raw(self), nodeindex, memorysegmentgroup, reservation).ok()
398 }
399 #[doc = "Required features: `\"Win32_Foundation\"`"]
400 #[cfg(feature = "Win32_Foundation")]
401 pub unsafe fn RegisterVideoMemoryBudgetChangeNotificationEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
402 where
403 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
404 {
405 let mut result__ = ::std::mem::zeroed();
406 (::windows_core::Interface::vtable(self).base__.RegisterVideoMemoryBudgetChangeNotificationEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
407 }
408 pub unsafe fn UnregisterVideoMemoryBudgetChangeNotification(&self, dwcookie: u32) {
409 (::windows_core::Interface::vtable(self).base__.UnregisterVideoMemoryBudgetChangeNotification)(::windows_core::Interface::as_raw(self), dwcookie)
410 }
411 #[doc = "Required features: `\"Win32_Foundation\"`"]
412 #[cfg(feature = "Win32_Foundation")]
413 pub unsafe fn GetDesc3(&self, pdesc: *mut DXGI_ADAPTER_DESC3) -> ::windows_core::Result<()> {
414 (::windows_core::Interface::vtable(self).GetDesc3)(::windows_core::Interface::as_raw(self), pdesc).ok()
415 }
416}
417::windows_core::imp::interface_hierarchy!(IDXGIAdapter4, ::windows_core::IUnknown, IDXGIObject, IDXGIAdapter, IDXGIAdapter1, IDXGIAdapter2, IDXGIAdapter3);
418unsafe impl ::core::marker::Send for IDXGIAdapter4 {}
419unsafe impl ::core::marker::Sync for IDXGIAdapter4 {}
420unsafe impl ::windows_core::Interface for IDXGIAdapter4 {
421 type Vtable = IDXGIAdapter4_Vtbl;
422}
423unsafe impl ::windows_core::ComInterface for IDXGIAdapter4 {
424 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x3c8d99d1_4fbf_4181_a82c_af66bf7bd24e);
425}
426#[repr(C)]
427#[doc(hidden)]
428pub struct IDXGIAdapter4_Vtbl {
429 pub base__: IDXGIAdapter3_Vtbl,
430 #[cfg(feature = "Win32_Foundation")]
431 pub GetDesc3: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_ADAPTER_DESC3) -> ::windows_core::HRESULT,
432 #[cfg(not(feature = "Win32_Foundation"))]
433 GetDesc3: usize,
434}
435#[repr(transparent)]
436#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
437pub struct IDXGIDebug(::windows_core::IUnknown);
438impl IDXGIDebug {
439 pub unsafe fn ReportLiveObjects(&self, apiid: ::windows_core::GUID, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows_core::Result<()> {
440 (::windows_core::Interface::vtable(self).ReportLiveObjects)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(src:apiid), flags).ok()
441 }
442}
443::windows_core::imp::interface_hierarchy!(IDXGIDebug, ::windows_core::IUnknown);
444unsafe impl ::core::marker::Send for IDXGIDebug {}
445unsafe impl ::core::marker::Sync for IDXGIDebug {}
446unsafe impl ::windows_core::Interface for IDXGIDebug {
447 type Vtable = IDXGIDebug_Vtbl;
448}
449unsafe impl ::windows_core::ComInterface for IDXGIDebug {
450 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x119e7452_de9e_40fe_8806_88f90c12b441);
451}
452#[repr(C)]
453#[doc(hidden)]
454pub struct IDXGIDebug_Vtbl {
455 pub base__: ::windows_core::IUnknown_Vtbl,
456 pub ReportLiveObjects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, apiid: ::windows_core::GUID, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows_core::HRESULT,
457}
458#[repr(transparent)]
459#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
460pub struct IDXGIDebug1(::windows_core::IUnknown);
461impl IDXGIDebug1 {
462 pub unsafe fn ReportLiveObjects(&self, apiid: ::windows_core::GUID, flags: DXGI_DEBUG_RLO_FLAGS) -> ::windows_core::Result<()> {
463 (::windows_core::Interface::vtable(self).base__.ReportLiveObjects)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(src:apiid), flags).ok()
464 }
465 pub unsafe fn EnableLeakTrackingForThread(&self) {
466 (::windows_core::Interface::vtable(self).EnableLeakTrackingForThread)(::windows_core::Interface::as_raw(self))
467 }
468 pub unsafe fn DisableLeakTrackingForThread(&self) {
469 (::windows_core::Interface::vtable(self).DisableLeakTrackingForThread)(::windows_core::Interface::as_raw(self))
470 }
471 #[doc = "Required features: `\"Win32_Foundation\"`"]
472 #[cfg(feature = "Win32_Foundation")]
473 pub unsafe fn IsLeakTrackingEnabledForThread(&self) -> super::super::Foundation::BOOL {
474 (::windows_core::Interface::vtable(self).IsLeakTrackingEnabledForThread)(::windows_core::Interface::as_raw(self))
475 }
476}
477::windows_core::imp::interface_hierarchy!(IDXGIDebug1, ::windows_core::IUnknown, IDXGIDebug);
478unsafe impl ::core::marker::Send for IDXGIDebug1 {}
479unsafe impl ::core::marker::Sync for IDXGIDebug1 {}
480unsafe impl ::windows_core::Interface for IDXGIDebug1 {
481 type Vtable = IDXGIDebug1_Vtbl;
482}
483unsafe impl ::windows_core::ComInterface for IDXGIDebug1 {
484 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xc5a05f0c_16f2_4adf_9f4d_a8c4d58ac550);
485}
486#[repr(C)]
487#[doc(hidden)]
488pub struct IDXGIDebug1_Vtbl {
489 pub base__: IDXGIDebug_Vtbl,
490 pub EnableLeakTrackingForThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
491 pub DisableLeakTrackingForThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
492 #[cfg(feature = "Win32_Foundation")]
493 pub IsLeakTrackingEnabledForThread: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
494 #[cfg(not(feature = "Win32_Foundation"))]
495 IsLeakTrackingEnabledForThread: usize,
496}
497#[repr(transparent)]
498#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
499pub struct IDXGIDecodeSwapChain(::windows_core::IUnknown);
500impl IDXGIDecodeSwapChain {
501 pub unsafe fn PresentBuffer(&self, buffertopresent: u32, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT {
502 (::windows_core::Interface::vtable(self).PresentBuffer)(::windows_core::Interface::as_raw(self), buffertopresent, syncinterval, flags)
503 }
504 #[doc = "Required features: `\"Win32_Foundation\"`"]
505 #[cfg(feature = "Win32_Foundation")]
506 pub unsafe fn SetSourceRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()> {
507 (::windows_core::Interface::vtable(self).SetSourceRect)(::windows_core::Interface::as_raw(self), prect).ok()
508 }
509 #[doc = "Required features: `\"Win32_Foundation\"`"]
510 #[cfg(feature = "Win32_Foundation")]
511 pub unsafe fn SetTargetRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()> {
512 (::windows_core::Interface::vtable(self).SetTargetRect)(::windows_core::Interface::as_raw(self), prect).ok()
513 }
514 pub unsafe fn SetDestSize(&self, width: u32, height: u32) -> ::windows_core::Result<()> {
515 (::windows_core::Interface::vtable(self).SetDestSize)(::windows_core::Interface::as_raw(self), width, height).ok()
516 }
517 #[doc = "Required features: `\"Win32_Foundation\"`"]
518 #[cfg(feature = "Win32_Foundation")]
519 pub unsafe fn GetSourceRect(&self) -> ::windows_core::Result<super::super::Foundation::RECT> {
520 let mut result__ = ::std::mem::zeroed();
521 (::windows_core::Interface::vtable(self).GetSourceRect)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
522 }
523 #[doc = "Required features: `\"Win32_Foundation\"`"]
524 #[cfg(feature = "Win32_Foundation")]
525 pub unsafe fn GetTargetRect(&self) -> ::windows_core::Result<super::super::Foundation::RECT> {
526 let mut result__ = ::std::mem::zeroed();
527 (::windows_core::Interface::vtable(self).GetTargetRect)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
528 }
529 pub unsafe fn GetDestSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows_core::Result<()> {
530 (::windows_core::Interface::vtable(self).GetDestSize)(::windows_core::Interface::as_raw(self), pwidth, pheight).ok()
531 }
532 pub unsafe fn SetColorSpace(&self, colorspace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS) -> ::windows_core::Result<()> {
533 (::windows_core::Interface::vtable(self).SetColorSpace)(::windows_core::Interface::as_raw(self), colorspace).ok()
534 }
535 pub unsafe fn GetColorSpace(&self) -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
536 (::windows_core::Interface::vtable(self).GetColorSpace)(::windows_core::Interface::as_raw(self))
537 }
538}
539::windows_core::imp::interface_hierarchy!(IDXGIDecodeSwapChain, ::windows_core::IUnknown);
540unsafe impl ::core::marker::Send for IDXGIDecodeSwapChain {}
541unsafe impl ::core::marker::Sync for IDXGIDecodeSwapChain {}
542unsafe impl ::windows_core::Interface for IDXGIDecodeSwapChain {
543 type Vtable = IDXGIDecodeSwapChain_Vtbl;
544}
545unsafe impl ::windows_core::ComInterface for IDXGIDecodeSwapChain {
546 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x2633066b_4514_4c7a_8fd8_12ea98059d18);
547}
548#[repr(C)]
549#[doc(hidden)]
550pub struct IDXGIDecodeSwapChain_Vtbl {
551 pub base__: ::windows_core::IUnknown_Vtbl,
552 pub PresentBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffertopresent: u32, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT,
553 #[cfg(feature = "Win32_Foundation")]
554 pub SetSourceRect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT,
555 #[cfg(not(feature = "Win32_Foundation"))]
556 SetSourceRect: usize,
557 #[cfg(feature = "Win32_Foundation")]
558 pub SetTargetRect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT,
559 #[cfg(not(feature = "Win32_Foundation"))]
560 SetTargetRect: usize,
561 pub SetDestSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, width: u32, height: u32) -> ::windows_core::HRESULT,
562 #[cfg(feature = "Win32_Foundation")]
563 pub GetSourceRect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT,
564 #[cfg(not(feature = "Win32_Foundation"))]
565 GetSourceRect: usize,
566 #[cfg(feature = "Win32_Foundation")]
567 pub GetTargetRect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT,
568 #[cfg(not(feature = "Win32_Foundation"))]
569 GetTargetRect: usize,
570 pub GetDestSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwidth: *mut u32, pheight: *mut u32) -> ::windows_core::HRESULT,
571 pub SetColorSpace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, colorspace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS) -> ::windows_core::HRESULT,
572 pub GetColorSpace: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
573}
574#[repr(transparent)]
575#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
576pub struct IDXGIDevice(::windows_core::IUnknown);
577impl IDXGIDevice {
578 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
579 (::windows_core::Interface::vtable(self).base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
580 }
581 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
582 where
583 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
584 {
585 (::windows_core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
586 }
587 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
588 (::windows_core::Interface::vtable(self).base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
589 }
590 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
591 where
592 T: ::windows_core::ComInterface,
593 {
594 let mut result__ = ::std::ptr::null_mut();
595 (::windows_core::Interface::vtable(self).base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
596 }
597 pub unsafe fn GetAdapter(&self) -> ::windows_core::Result<IDXGIAdapter> {
598 let mut result__ = ::std::mem::zeroed();
599 (::windows_core::Interface::vtable(self).GetAdapter)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
600 }
601 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
602 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
603 pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, usage: DXGI_USAGE, psharedresource: ::core::option::Option<*const DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option<IDXGISurface>]) -> ::windows_core::Result<()> {
604 (::windows_core::Interface::vtable(self).CreateSurface)(::windows_core::Interface::as_raw(self), pdesc, ppsurface.len().try_into().unwrap(), usage, ::core::mem::transmute(psharedresource.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppsurface.as_ptr())).ok()
605 }
606 pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows_core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows_core::Result<()> {
607 (::windows_core::Interface::vtable(self).QueryResourceResidency)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(ppresources), presidencystatus, numresources).ok()
608 }
609 pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows_core::Result<()> {
610 (::windows_core::Interface::vtable(self).SetGPUThreadPriority)(::windows_core::Interface::as_raw(self), priority).ok()
611 }
612 pub unsafe fn GetGPUThreadPriority(&self) -> ::windows_core::Result<i32> {
613 let mut result__ = ::std::mem::zeroed();
614 (::windows_core::Interface::vtable(self).GetGPUThreadPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
615 }
616}
617::windows_core::imp::interface_hierarchy!(IDXGIDevice, ::windows_core::IUnknown, IDXGIObject);
618unsafe impl ::core::marker::Send for IDXGIDevice {}
619unsafe impl ::core::marker::Sync for IDXGIDevice {}
620unsafe impl ::windows_core::Interface for IDXGIDevice {
621 type Vtable = IDXGIDevice_Vtbl;
622}
623unsafe impl ::windows_core::ComInterface for IDXGIDevice {
624 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x54ec77fa_1377_44e6_8c32_88fd5f44c84c);
625}
626#[repr(C)]
627#[doc(hidden)]
628pub struct IDXGIDevice_Vtbl {
629 pub base__: IDXGIObject_Vtbl,
630 pub GetAdapter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, padapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
631 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
632 pub CreateSurface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const DXGI_SURFACE_DESC, numsurfaces: u32, usage: DXGI_USAGE, psharedresource: *const DXGI_SHARED_RESOURCE, ppsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
633 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
634 CreateSurface: usize,
635 pub QueryResourceResidency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppresources: *const *mut ::core::ffi::c_void, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows_core::HRESULT,
636 pub SetGPUThreadPriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, priority: i32) -> ::windows_core::HRESULT,
637 pub GetGPUThreadPriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppriority: *mut i32) -> ::windows_core::HRESULT,
638}
639#[repr(transparent)]
640#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
641pub struct IDXGIDevice1(::windows_core::IUnknown);
642impl IDXGIDevice1 {
643 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
644 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
645 }
646 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
647 where
648 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
649 {
650 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
651 }
652 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
653 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
654 }
655 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
656 where
657 T: ::windows_core::ComInterface,
658 {
659 let mut result__ = ::std::ptr::null_mut();
660 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
661 }
662 pub unsafe fn GetAdapter(&self) -> ::windows_core::Result<IDXGIAdapter> {
663 let mut result__ = ::std::mem::zeroed();
664 (::windows_core::Interface::vtable(self).base__.GetAdapter)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
665 }
666 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
667 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
668 pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, usage: DXGI_USAGE, psharedresource: ::core::option::Option<*const DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option<IDXGISurface>]) -> ::windows_core::Result<()> {
669 (::windows_core::Interface::vtable(self).base__.CreateSurface)(::windows_core::Interface::as_raw(self), pdesc, ppsurface.len().try_into().unwrap(), usage, ::core::mem::transmute(psharedresource.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppsurface.as_ptr())).ok()
670 }
671 pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows_core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows_core::Result<()> {
672 (::windows_core::Interface::vtable(self).base__.QueryResourceResidency)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(ppresources), presidencystatus, numresources).ok()
673 }
674 pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows_core::Result<()> {
675 (::windows_core::Interface::vtable(self).base__.SetGPUThreadPriority)(::windows_core::Interface::as_raw(self), priority).ok()
676 }
677 pub unsafe fn GetGPUThreadPriority(&self) -> ::windows_core::Result<i32> {
678 let mut result__ = ::std::mem::zeroed();
679 (::windows_core::Interface::vtable(self).base__.GetGPUThreadPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
680 }
681 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
682 (::windows_core::Interface::vtable(self).SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
683 }
684 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
685 let mut result__ = ::std::mem::zeroed();
686 (::windows_core::Interface::vtable(self).GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
687 }
688}
689::windows_core::imp::interface_hierarchy!(IDXGIDevice1, ::windows_core::IUnknown, IDXGIObject, IDXGIDevice);
690unsafe impl ::core::marker::Send for IDXGIDevice1 {}
691unsafe impl ::core::marker::Sync for IDXGIDevice1 {}
692unsafe impl ::windows_core::Interface for IDXGIDevice1 {
693 type Vtable = IDXGIDevice1_Vtbl;
694}
695unsafe impl ::windows_core::ComInterface for IDXGIDevice1 {
696 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x77db970f_6276_48ba_ba28_070143b4392c);
697}
698#[repr(C)]
699#[doc(hidden)]
700pub struct IDXGIDevice1_Vtbl {
701 pub base__: IDXGIDevice_Vtbl,
702 pub SetMaximumFrameLatency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, maxlatency: u32) -> ::windows_core::HRESULT,
703 pub GetMaximumFrameLatency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmaxlatency: *mut u32) -> ::windows_core::HRESULT,
704}
705#[repr(transparent)]
706#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
707pub struct IDXGIDevice2(::windows_core::IUnknown);
708impl IDXGIDevice2 {
709 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
710 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
711 }
712 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
713 where
714 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
715 {
716 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
717 }
718 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
719 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
720 }
721 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
722 where
723 T: ::windows_core::ComInterface,
724 {
725 let mut result__ = ::std::ptr::null_mut();
726 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
727 }
728 pub unsafe fn GetAdapter(&self) -> ::windows_core::Result<IDXGIAdapter> {
729 let mut result__ = ::std::mem::zeroed();
730 (::windows_core::Interface::vtable(self).base__.base__.GetAdapter)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
731 }
732 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
733 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
734 pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, usage: DXGI_USAGE, psharedresource: ::core::option::Option<*const DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option<IDXGISurface>]) -> ::windows_core::Result<()> {
735 (::windows_core::Interface::vtable(self).base__.base__.CreateSurface)(::windows_core::Interface::as_raw(self), pdesc, ppsurface.len().try_into().unwrap(), usage, ::core::mem::transmute(psharedresource.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppsurface.as_ptr())).ok()
736 }
737 pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows_core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows_core::Result<()> {
738 (::windows_core::Interface::vtable(self).base__.base__.QueryResourceResidency)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(ppresources), presidencystatus, numresources).ok()
739 }
740 pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows_core::Result<()> {
741 (::windows_core::Interface::vtable(self).base__.base__.SetGPUThreadPriority)(::windows_core::Interface::as_raw(self), priority).ok()
742 }
743 pub unsafe fn GetGPUThreadPriority(&self) -> ::windows_core::Result<i32> {
744 let mut result__ = ::std::mem::zeroed();
745 (::windows_core::Interface::vtable(self).base__.base__.GetGPUThreadPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
746 }
747 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
748 (::windows_core::Interface::vtable(self).base__.SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
749 }
750 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
751 let mut result__ = ::std::mem::zeroed();
752 (::windows_core::Interface::vtable(self).base__.GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
753 }
754 pub unsafe fn OfferResources(&self, ppresources: &[::core::option::Option<IDXGIResource>], priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows_core::Result<()> {
755 (::windows_core::Interface::vtable(self).OfferResources)(::windows_core::Interface::as_raw(self), ppresources.len().try_into().unwrap(), ::core::mem::transmute(ppresources.as_ptr()), priority).ok()
756 }
757 #[doc = "Required features: `\"Win32_Foundation\"`"]
758 #[cfg(feature = "Win32_Foundation")]
759 pub unsafe fn ReclaimResources(&self, numresources: u32, ppresources: *const ::core::option::Option<IDXGIResource>, pdiscarded: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows_core::Result<()> {
760 (::windows_core::Interface::vtable(self).ReclaimResources)(::windows_core::Interface::as_raw(self), numresources, ::core::mem::transmute(ppresources), ::core::mem::transmute(pdiscarded.unwrap_or(::std::ptr::null_mut()))).ok()
761 }
762 #[doc = "Required features: `\"Win32_Foundation\"`"]
763 #[cfg(feature = "Win32_Foundation")]
764 pub unsafe fn EnqueueSetEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<()>
765 where
766 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
767 {
768 (::windows_core::Interface::vtable(self).EnqueueSetEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi()).ok()
769 }
770}
771::windows_core::imp::interface_hierarchy!(IDXGIDevice2, ::windows_core::IUnknown, IDXGIObject, IDXGIDevice, IDXGIDevice1);
772unsafe impl ::core::marker::Send for IDXGIDevice2 {}
773unsafe impl ::core::marker::Sync for IDXGIDevice2 {}
774unsafe impl ::windows_core::Interface for IDXGIDevice2 {
775 type Vtable = IDXGIDevice2_Vtbl;
776}
777unsafe impl ::windows_core::ComInterface for IDXGIDevice2 {
778 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x05008617_fbfd_4051_a790_144884b4f6a9);
779}
780#[repr(C)]
781#[doc(hidden)]
782pub struct IDXGIDevice2_Vtbl {
783 pub base__: IDXGIDevice1_Vtbl,
784 pub OfferResources: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numresources: u32, ppresources: *const *mut ::core::ffi::c_void, priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows_core::HRESULT,
785 #[cfg(feature = "Win32_Foundation")]
786 pub ReclaimResources: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numresources: u32, ppresources: *const *mut ::core::ffi::c_void, pdiscarded: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
787 #[cfg(not(feature = "Win32_Foundation"))]
788 ReclaimResources: usize,
789 #[cfg(feature = "Win32_Foundation")]
790 pub EnqueueSetEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT,
791 #[cfg(not(feature = "Win32_Foundation"))]
792 EnqueueSetEvent: usize,
793}
794#[repr(transparent)]
795#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
796pub struct IDXGIDevice3(::windows_core::IUnknown);
797impl IDXGIDevice3 {
798 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
799 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
800 }
801 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
802 where
803 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
804 {
805 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
806 }
807 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
808 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
809 }
810 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
811 where
812 T: ::windows_core::ComInterface,
813 {
814 let mut result__ = ::std::ptr::null_mut();
815 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
816 }
817 pub unsafe fn GetAdapter(&self) -> ::windows_core::Result<IDXGIAdapter> {
818 let mut result__ = ::std::mem::zeroed();
819 (::windows_core::Interface::vtable(self).base__.base__.base__.GetAdapter)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
820 }
821 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
822 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
823 pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, usage: DXGI_USAGE, psharedresource: ::core::option::Option<*const DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option<IDXGISurface>]) -> ::windows_core::Result<()> {
824 (::windows_core::Interface::vtable(self).base__.base__.base__.CreateSurface)(::windows_core::Interface::as_raw(self), pdesc, ppsurface.len().try_into().unwrap(), usage, ::core::mem::transmute(psharedresource.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppsurface.as_ptr())).ok()
825 }
826 pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows_core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows_core::Result<()> {
827 (::windows_core::Interface::vtable(self).base__.base__.base__.QueryResourceResidency)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(ppresources), presidencystatus, numresources).ok()
828 }
829 pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows_core::Result<()> {
830 (::windows_core::Interface::vtable(self).base__.base__.base__.SetGPUThreadPriority)(::windows_core::Interface::as_raw(self), priority).ok()
831 }
832 pub unsafe fn GetGPUThreadPriority(&self) -> ::windows_core::Result<i32> {
833 let mut result__ = ::std::mem::zeroed();
834 (::windows_core::Interface::vtable(self).base__.base__.base__.GetGPUThreadPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
835 }
836 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
837 (::windows_core::Interface::vtable(self).base__.base__.SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
838 }
839 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
840 let mut result__ = ::std::mem::zeroed();
841 (::windows_core::Interface::vtable(self).base__.base__.GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
842 }
843 pub unsafe fn OfferResources(&self, ppresources: &[::core::option::Option<IDXGIResource>], priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows_core::Result<()> {
844 (::windows_core::Interface::vtable(self).base__.OfferResources)(::windows_core::Interface::as_raw(self), ppresources.len().try_into().unwrap(), ::core::mem::transmute(ppresources.as_ptr()), priority).ok()
845 }
846 #[doc = "Required features: `\"Win32_Foundation\"`"]
847 #[cfg(feature = "Win32_Foundation")]
848 pub unsafe fn ReclaimResources(&self, numresources: u32, ppresources: *const ::core::option::Option<IDXGIResource>, pdiscarded: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows_core::Result<()> {
849 (::windows_core::Interface::vtable(self).base__.ReclaimResources)(::windows_core::Interface::as_raw(self), numresources, ::core::mem::transmute(ppresources), ::core::mem::transmute(pdiscarded.unwrap_or(::std::ptr::null_mut()))).ok()
850 }
851 #[doc = "Required features: `\"Win32_Foundation\"`"]
852 #[cfg(feature = "Win32_Foundation")]
853 pub unsafe fn EnqueueSetEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<()>
854 where
855 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
856 {
857 (::windows_core::Interface::vtable(self).base__.EnqueueSetEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi()).ok()
858 }
859 pub unsafe fn Trim(&self) {
860 (::windows_core::Interface::vtable(self).Trim)(::windows_core::Interface::as_raw(self))
861 }
862}
863::windows_core::imp::interface_hierarchy!(IDXGIDevice3, ::windows_core::IUnknown, IDXGIObject, IDXGIDevice, IDXGIDevice1, IDXGIDevice2);
864unsafe impl ::core::marker::Send for IDXGIDevice3 {}
865unsafe impl ::core::marker::Sync for IDXGIDevice3 {}
866unsafe impl ::windows_core::Interface for IDXGIDevice3 {
867 type Vtable = IDXGIDevice3_Vtbl;
868}
869unsafe impl ::windows_core::ComInterface for IDXGIDevice3 {
870 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x6007896c_3244_4afd_bf18_a6d3beda5023);
871}
872#[repr(C)]
873#[doc(hidden)]
874pub struct IDXGIDevice3_Vtbl {
875 pub base__: IDXGIDevice2_Vtbl,
876 pub Trim: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
877}
878#[repr(transparent)]
879#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
880pub struct IDXGIDevice4(::windows_core::IUnknown);
881impl IDXGIDevice4 {
882 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
883 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
884 }
885 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
886 where
887 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
888 {
889 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
890 }
891 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
892 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
893 }
894 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
895 where
896 T: ::windows_core::ComInterface,
897 {
898 let mut result__ = ::std::ptr::null_mut();
899 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
900 }
901 pub unsafe fn GetAdapter(&self) -> ::windows_core::Result<IDXGIAdapter> {
902 let mut result__ = ::std::mem::zeroed();
903 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetAdapter)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
904 }
905 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
906 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
907 pub unsafe fn CreateSurface(&self, pdesc: *const DXGI_SURFACE_DESC, usage: DXGI_USAGE, psharedresource: ::core::option::Option<*const DXGI_SHARED_RESOURCE>, ppsurface: &mut [::core::option::Option<IDXGISurface>]) -> ::windows_core::Result<()> {
908 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CreateSurface)(::windows_core::Interface::as_raw(self), pdesc, ppsurface.len().try_into().unwrap(), usage, ::core::mem::transmute(psharedresource.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppsurface.as_ptr())).ok()
909 }
910 pub unsafe fn QueryResourceResidency(&self, ppresources: *const ::core::option::Option<::windows_core::IUnknown>, presidencystatus: *mut DXGI_RESIDENCY, numresources: u32) -> ::windows_core::Result<()> {
911 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.QueryResourceResidency)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(ppresources), presidencystatus, numresources).ok()
912 }
913 pub unsafe fn SetGPUThreadPriority(&self, priority: i32) -> ::windows_core::Result<()> {
914 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetGPUThreadPriority)(::windows_core::Interface::as_raw(self), priority).ok()
915 }
916 pub unsafe fn GetGPUThreadPriority(&self) -> ::windows_core::Result<i32> {
917 let mut result__ = ::std::mem::zeroed();
918 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetGPUThreadPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
919 }
920 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
921 (::windows_core::Interface::vtable(self).base__.base__.base__.SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
922 }
923 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
924 let mut result__ = ::std::mem::zeroed();
925 (::windows_core::Interface::vtable(self).base__.base__.base__.GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
926 }
927 pub unsafe fn OfferResources(&self, ppresources: &[::core::option::Option<IDXGIResource>], priority: DXGI_OFFER_RESOURCE_PRIORITY) -> ::windows_core::Result<()> {
928 (::windows_core::Interface::vtable(self).base__.base__.OfferResources)(::windows_core::Interface::as_raw(self), ppresources.len().try_into().unwrap(), ::core::mem::transmute(ppresources.as_ptr()), priority).ok()
929 }
930 #[doc = "Required features: `\"Win32_Foundation\"`"]
931 #[cfg(feature = "Win32_Foundation")]
932 pub unsafe fn ReclaimResources(&self, numresources: u32, ppresources: *const ::core::option::Option<IDXGIResource>, pdiscarded: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows_core::Result<()> {
933 (::windows_core::Interface::vtable(self).base__.base__.ReclaimResources)(::windows_core::Interface::as_raw(self), numresources, ::core::mem::transmute(ppresources), ::core::mem::transmute(pdiscarded.unwrap_or(::std::ptr::null_mut()))).ok()
934 }
935 #[doc = "Required features: `\"Win32_Foundation\"`"]
936 #[cfg(feature = "Win32_Foundation")]
937 pub unsafe fn EnqueueSetEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<()>
938 where
939 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
940 {
941 (::windows_core::Interface::vtable(self).base__.base__.EnqueueSetEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi()).ok()
942 }
943 pub unsafe fn Trim(&self) {
944 (::windows_core::Interface::vtable(self).base__.Trim)(::windows_core::Interface::as_raw(self))
945 }
946 pub unsafe fn OfferResources1(&self, ppresources: &[::core::option::Option<IDXGIResource>], priority: DXGI_OFFER_RESOURCE_PRIORITY, flags: u32) -> ::windows_core::Result<()> {
947 (::windows_core::Interface::vtable(self).OfferResources1)(::windows_core::Interface::as_raw(self), ppresources.len().try_into().unwrap(), ::core::mem::transmute(ppresources.as_ptr()), priority, flags).ok()
948 }
949 pub unsafe fn ReclaimResources1(&self, numresources: u32, ppresources: *const ::core::option::Option<IDXGIResource>, presults: *mut DXGI_RECLAIM_RESOURCE_RESULTS) -> ::windows_core::Result<()> {
950 (::windows_core::Interface::vtable(self).ReclaimResources1)(::windows_core::Interface::as_raw(self), numresources, ::core::mem::transmute(ppresources), presults).ok()
951 }
952}
953::windows_core::imp::interface_hierarchy!(IDXGIDevice4, ::windows_core::IUnknown, IDXGIObject, IDXGIDevice, IDXGIDevice1, IDXGIDevice2, IDXGIDevice3);
954unsafe impl ::core::marker::Send for IDXGIDevice4 {}
955unsafe impl ::core::marker::Sync for IDXGIDevice4 {}
956unsafe impl ::windows_core::Interface for IDXGIDevice4 {
957 type Vtable = IDXGIDevice4_Vtbl;
958}
959unsafe impl ::windows_core::ComInterface for IDXGIDevice4 {
960 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x95b4f95f_d8da_4ca4_9ee6_3b76d5968a10);
961}
962#[repr(C)]
963#[doc(hidden)]
964pub struct IDXGIDevice4_Vtbl {
965 pub base__: IDXGIDevice3_Vtbl,
966 pub OfferResources1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numresources: u32, ppresources: *const *mut ::core::ffi::c_void, priority: DXGI_OFFER_RESOURCE_PRIORITY, flags: u32) -> ::windows_core::HRESULT,
967 pub ReclaimResources1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numresources: u32, ppresources: *const *mut ::core::ffi::c_void, presults: *mut DXGI_RECLAIM_RESOURCE_RESULTS) -> ::windows_core::HRESULT,
968}
969#[repr(transparent)]
970#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
971pub struct IDXGIDeviceSubObject(::windows_core::IUnknown);
972impl IDXGIDeviceSubObject {
973 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
974 (::windows_core::Interface::vtable(self).base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
975 }
976 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
977 where
978 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
979 {
980 (::windows_core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
981 }
982 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
983 (::windows_core::Interface::vtable(self).base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
984 }
985 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
986 where
987 T: ::windows_core::ComInterface,
988 {
989 let mut result__ = ::std::ptr::null_mut();
990 (::windows_core::Interface::vtable(self).base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
991 }
992 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
993 where
994 T: ::windows_core::ComInterface,
995 {
996 let mut result__ = ::std::ptr::null_mut();
997 (::windows_core::Interface::vtable(self).GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
998 }
999}
1000::windows_core::imp::interface_hierarchy!(IDXGIDeviceSubObject, ::windows_core::IUnknown, IDXGIObject);
1001unsafe impl ::core::marker::Send for IDXGIDeviceSubObject {}
1002unsafe impl ::core::marker::Sync for IDXGIDeviceSubObject {}
1003unsafe impl ::windows_core::Interface for IDXGIDeviceSubObject {
1004 type Vtable = IDXGIDeviceSubObject_Vtbl;
1005}
1006unsafe impl ::windows_core::ComInterface for IDXGIDeviceSubObject {
1007 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x3d3e0379_f9de_4d58_bb6c_18d62992f1a6);
1008}
1009#[repr(C)]
1010#[doc(hidden)]
1011pub struct IDXGIDeviceSubObject_Vtbl {
1012 pub base__: IDXGIObject_Vtbl,
1013 pub GetDevice: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppdevice: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1014}
1015#[repr(transparent)]
1016#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1017pub struct IDXGIDisplayControl(::windows_core::IUnknown);
1018impl IDXGIDisplayControl {
1019 #[doc = "Required features: `\"Win32_Foundation\"`"]
1020 #[cfg(feature = "Win32_Foundation")]
1021 pub unsafe fn IsStereoEnabled(&self) -> super::super::Foundation::BOOL {
1022 (::windows_core::Interface::vtable(self).IsStereoEnabled)(::windows_core::Interface::as_raw(self))
1023 }
1024 #[doc = "Required features: `\"Win32_Foundation\"`"]
1025 #[cfg(feature = "Win32_Foundation")]
1026 pub unsafe fn SetStereoEnabled<P0>(&self, enabled: P0)
1027 where
1028 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
1029 {
1030 (::windows_core::Interface::vtable(self).SetStereoEnabled)(::windows_core::Interface::as_raw(self), enabled.into_param().abi())
1031 }
1032}
1033::windows_core::imp::interface_hierarchy!(IDXGIDisplayControl, ::windows_core::IUnknown);
1034unsafe impl ::core::marker::Send for IDXGIDisplayControl {}
1035unsafe impl ::core::marker::Sync for IDXGIDisplayControl {}
1036unsafe impl ::windows_core::Interface for IDXGIDisplayControl {
1037 type Vtable = IDXGIDisplayControl_Vtbl;
1038}
1039unsafe impl ::windows_core::ComInterface for IDXGIDisplayControl {
1040 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xea9dbf1a_c88e_4486_854a_98aa0138f30c);
1041}
1042#[repr(C)]
1043#[doc(hidden)]
1044pub struct IDXGIDisplayControl_Vtbl {
1045 pub base__: ::windows_core::IUnknown_Vtbl,
1046 #[cfg(feature = "Win32_Foundation")]
1047 pub IsStereoEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
1048 #[cfg(not(feature = "Win32_Foundation"))]
1049 IsStereoEnabled: usize,
1050 #[cfg(feature = "Win32_Foundation")]
1051 pub SetStereoEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enabled: super::super::Foundation::BOOL),
1052 #[cfg(not(feature = "Win32_Foundation"))]
1053 SetStereoEnabled: usize,
1054}
1055#[repr(transparent)]
1056#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1057pub struct IDXGIFactory(::windows_core::IUnknown);
1058impl IDXGIFactory {
1059 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
1060 (::windows_core::Interface::vtable(self).base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
1061 }
1062 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
1063 where
1064 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1065 {
1066 (::windows_core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
1067 }
1068 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
1069 (::windows_core::Interface::vtable(self).base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
1070 }
1071 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
1072 where
1073 T: ::windows_core::ComInterface,
1074 {
1075 let mut result__ = ::std::ptr::null_mut();
1076 (::windows_core::Interface::vtable(self).base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1077 }
1078 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
1079 let mut result__ = ::std::mem::zeroed();
1080 (::windows_core::Interface::vtable(self).EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1081 }
1082 #[doc = "Required features: `\"Win32_Foundation\"`"]
1083 #[cfg(feature = "Win32_Foundation")]
1084 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
1085 where
1086 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1087 {
1088 (::windows_core::Interface::vtable(self).MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
1089 }
1090 #[doc = "Required features: `\"Win32_Foundation\"`"]
1091 #[cfg(feature = "Win32_Foundation")]
1092 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
1093 let mut result__ = ::std::mem::zeroed();
1094 (::windows_core::Interface::vtable(self).GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
1095 }
1096 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1097 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1098 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
1099 where
1100 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1101 {
1102 (::windows_core::Interface::vtable(self).CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
1103 }
1104 #[doc = "Required features: `\"Win32_Foundation\"`"]
1105 #[cfg(feature = "Win32_Foundation")]
1106 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
1107 where
1108 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
1109 {
1110 let mut result__ = ::std::mem::zeroed();
1111 (::windows_core::Interface::vtable(self).CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
1112 }
1113}
1114::windows_core::imp::interface_hierarchy!(IDXGIFactory, ::windows_core::IUnknown, IDXGIObject);
1115unsafe impl ::core::marker::Send for IDXGIFactory {}
1116unsafe impl ::core::marker::Sync for IDXGIFactory {}
1117unsafe impl ::windows_core::Interface for IDXGIFactory {
1118 type Vtable = IDXGIFactory_Vtbl;
1119}
1120unsafe impl ::windows_core::ComInterface for IDXGIFactory {
1121 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x7b7166ec_21c7_44ae_b21a_c9ae321ae369);
1122}
1123#[repr(C)]
1124#[doc(hidden)]
1125pub struct IDXGIFactory_Vtbl {
1126 pub base__: IDXGIObject_Vtbl,
1127 pub EnumAdapters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adapter: u32, ppadapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1128 #[cfg(feature = "Win32_Foundation")]
1129 pub MakeWindowAssociation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, windowhandle: super::super::Foundation::HWND, flags: u32) -> ::windows_core::HRESULT,
1130 #[cfg(not(feature = "Win32_Foundation"))]
1131 MakeWindowAssociation: usize,
1132 #[cfg(feature = "Win32_Foundation")]
1133 pub GetWindowAssociation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwindowhandle: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT,
1134 #[cfg(not(feature = "Win32_Foundation"))]
1135 GetWindowAssociation: usize,
1136 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1137 pub CreateSwapChain: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1138 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
1139 CreateSwapChain: usize,
1140 #[cfg(feature = "Win32_Foundation")]
1141 pub CreateSoftwareAdapter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, module: super::super::Foundation::HMODULE, ppadapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1142 #[cfg(not(feature = "Win32_Foundation"))]
1143 CreateSoftwareAdapter: usize,
1144}
1145#[repr(transparent)]
1146#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1147pub struct IDXGIFactory1(::windows_core::IUnknown);
1148impl IDXGIFactory1 {
1149 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
1150 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
1151 }
1152 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
1153 where
1154 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1155 {
1156 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
1157 }
1158 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
1159 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
1160 }
1161 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
1162 where
1163 T: ::windows_core::ComInterface,
1164 {
1165 let mut result__ = ::std::ptr::null_mut();
1166 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1167 }
1168 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
1169 let mut result__ = ::std::mem::zeroed();
1170 (::windows_core::Interface::vtable(self).base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1171 }
1172 #[doc = "Required features: `\"Win32_Foundation\"`"]
1173 #[cfg(feature = "Win32_Foundation")]
1174 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
1175 where
1176 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1177 {
1178 (::windows_core::Interface::vtable(self).base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
1179 }
1180 #[doc = "Required features: `\"Win32_Foundation\"`"]
1181 #[cfg(feature = "Win32_Foundation")]
1182 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
1183 let mut result__ = ::std::mem::zeroed();
1184 (::windows_core::Interface::vtable(self).base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
1185 }
1186 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1187 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1188 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
1189 where
1190 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1191 {
1192 (::windows_core::Interface::vtable(self).base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
1193 }
1194 #[doc = "Required features: `\"Win32_Foundation\"`"]
1195 #[cfg(feature = "Win32_Foundation")]
1196 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
1197 where
1198 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
1199 {
1200 let mut result__ = ::std::mem::zeroed();
1201 (::windows_core::Interface::vtable(self).base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
1202 }
1203 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
1204 let mut result__ = ::std::mem::zeroed();
1205 (::windows_core::Interface::vtable(self).EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1206 }
1207 #[doc = "Required features: `\"Win32_Foundation\"`"]
1208 #[cfg(feature = "Win32_Foundation")]
1209 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
1210 (::windows_core::Interface::vtable(self).IsCurrent)(::windows_core::Interface::as_raw(self))
1211 }
1212}
1213::windows_core::imp::interface_hierarchy!(IDXGIFactory1, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory);
1214unsafe impl ::core::marker::Send for IDXGIFactory1 {}
1215unsafe impl ::core::marker::Sync for IDXGIFactory1 {}
1216unsafe impl ::windows_core::Interface for IDXGIFactory1 {
1217 type Vtable = IDXGIFactory1_Vtbl;
1218}
1219unsafe impl ::windows_core::ComInterface for IDXGIFactory1 {
1220 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x770aae78_f26f_4dba_a829_253c83d1b387);
1221}
1222#[repr(C)]
1223#[doc(hidden)]
1224pub struct IDXGIFactory1_Vtbl {
1225 pub base__: IDXGIFactory_Vtbl,
1226 pub EnumAdapters1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adapter: u32, ppadapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1227 #[cfg(feature = "Win32_Foundation")]
1228 pub IsCurrent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
1229 #[cfg(not(feature = "Win32_Foundation"))]
1230 IsCurrent: usize,
1231}
1232#[repr(transparent)]
1233#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1234pub struct IDXGIFactory2(::windows_core::IUnknown);
1235impl IDXGIFactory2 {
1236 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
1237 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
1238 }
1239 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
1240 where
1241 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1242 {
1243 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
1244 }
1245 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
1246 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
1247 }
1248 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
1249 where
1250 T: ::windows_core::ComInterface,
1251 {
1252 let mut result__ = ::std::ptr::null_mut();
1253 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1254 }
1255 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
1256 let mut result__ = ::std::mem::zeroed();
1257 (::windows_core::Interface::vtable(self).base__.base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1258 }
1259 #[doc = "Required features: `\"Win32_Foundation\"`"]
1260 #[cfg(feature = "Win32_Foundation")]
1261 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
1262 where
1263 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1264 {
1265 (::windows_core::Interface::vtable(self).base__.base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
1266 }
1267 #[doc = "Required features: `\"Win32_Foundation\"`"]
1268 #[cfg(feature = "Win32_Foundation")]
1269 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
1270 let mut result__ = ::std::mem::zeroed();
1271 (::windows_core::Interface::vtable(self).base__.base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
1272 }
1273 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1274 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1275 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
1276 where
1277 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1278 {
1279 (::windows_core::Interface::vtable(self).base__.base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
1280 }
1281 #[doc = "Required features: `\"Win32_Foundation\"`"]
1282 #[cfg(feature = "Win32_Foundation")]
1283 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
1284 where
1285 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
1286 {
1287 let mut result__ = ::std::mem::zeroed();
1288 (::windows_core::Interface::vtable(self).base__.base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
1289 }
1290 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
1291 let mut result__ = ::std::mem::zeroed();
1292 (::windows_core::Interface::vtable(self).base__.EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1293 }
1294 #[doc = "Required features: `\"Win32_Foundation\"`"]
1295 #[cfg(feature = "Win32_Foundation")]
1296 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
1297 (::windows_core::Interface::vtable(self).base__.IsCurrent)(::windows_core::Interface::as_raw(self))
1298 }
1299 #[doc = "Required features: `\"Win32_Foundation\"`"]
1300 #[cfg(feature = "Win32_Foundation")]
1301 pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
1302 (::windows_core::Interface::vtable(self).IsWindowedStereoEnabled)(::windows_core::Interface::as_raw(self))
1303 }
1304 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1305 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1306 pub unsafe fn CreateSwapChainForHwnd<P0, P1, P2>(&self, pdevice: P0, hwnd: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: ::core::option::Option<*const DXGI_SWAP_CHAIN_FULLSCREEN_DESC>, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1307 where
1308 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1309 P1: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1310 P2: ::windows_core::IntoParam<IDXGIOutput>,
1311 {
1312 let mut result__ = ::std::mem::zeroed();
1313 (::windows_core::Interface::vtable(self).CreateSwapChainForHwnd)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hwnd.into_param().abi(), pdesc, ::core::mem::transmute(pfullscreendesc.unwrap_or(::std::ptr::null())), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1314 }
1315 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1316 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1317 pub unsafe fn CreateSwapChainForCoreWindow<P0, P1, P2>(&self, pdevice: P0, pwindow: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1318 where
1319 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1320 P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
1321 P2: ::windows_core::IntoParam<IDXGIOutput>,
1322 {
1323 let mut result__ = ::std::mem::zeroed();
1324 (::windows_core::Interface::vtable(self).CreateSwapChainForCoreWindow)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pwindow.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1325 }
1326 #[doc = "Required features: `\"Win32_Foundation\"`"]
1327 #[cfg(feature = "Win32_Foundation")]
1328 pub unsafe fn GetSharedResourceAdapterLuid<P0>(&self, hresource: P0) -> ::windows_core::Result<super::super::Foundation::LUID>
1329 where
1330 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1331 {
1332 let mut result__ = ::std::mem::zeroed();
1333 (::windows_core::Interface::vtable(self).GetSharedResourceAdapterLuid)(::windows_core::Interface::as_raw(self), hresource.into_param().abi(), &mut result__).from_abi(result__)
1334 }
1335 #[doc = "Required features: `\"Win32_Foundation\"`"]
1336 #[cfg(feature = "Win32_Foundation")]
1337 pub unsafe fn RegisterStereoStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1338 where
1339 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1340 {
1341 let mut result__ = ::std::mem::zeroed();
1342 (::windows_core::Interface::vtable(self).RegisterStereoStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1343 }
1344 #[doc = "Required features: `\"Win32_Foundation\"`"]
1345 #[cfg(feature = "Win32_Foundation")]
1346 pub unsafe fn RegisterStereoStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1347 where
1348 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1349 {
1350 let mut result__ = ::std::mem::zeroed();
1351 (::windows_core::Interface::vtable(self).RegisterStereoStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1352 }
1353 pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
1354 (::windows_core::Interface::vtable(self).UnregisterStereoStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1355 }
1356 #[doc = "Required features: `\"Win32_Foundation\"`"]
1357 #[cfg(feature = "Win32_Foundation")]
1358 pub unsafe fn RegisterOcclusionStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1359 where
1360 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1361 {
1362 let mut result__ = ::std::mem::zeroed();
1363 (::windows_core::Interface::vtable(self).RegisterOcclusionStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1364 }
1365 #[doc = "Required features: `\"Win32_Foundation\"`"]
1366 #[cfg(feature = "Win32_Foundation")]
1367 pub unsafe fn RegisterOcclusionStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1368 where
1369 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1370 {
1371 let mut result__ = ::std::mem::zeroed();
1372 (::windows_core::Interface::vtable(self).RegisterOcclusionStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1373 }
1374 pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
1375 (::windows_core::Interface::vtable(self).UnregisterOcclusionStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1376 }
1377 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1378 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1379 pub unsafe fn CreateSwapChainForComposition<P0, P1>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P1) -> ::windows_core::Result<IDXGISwapChain1>
1380 where
1381 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1382 P1: ::windows_core::IntoParam<IDXGIOutput>,
1383 {
1384 let mut result__ = ::std::mem::zeroed();
1385 (::windows_core::Interface::vtable(self).CreateSwapChainForComposition)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1386 }
1387}
1388::windows_core::imp::interface_hierarchy!(IDXGIFactory2, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory, IDXGIFactory1);
1389unsafe impl ::core::marker::Send for IDXGIFactory2 {}
1390unsafe impl ::core::marker::Sync for IDXGIFactory2 {}
1391unsafe impl ::windows_core::Interface for IDXGIFactory2 {
1392 type Vtable = IDXGIFactory2_Vtbl;
1393}
1394unsafe impl ::windows_core::ComInterface for IDXGIFactory2 {
1395 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x50c83a1c_e072_4c48_87b0_3630fa36a6d0);
1396}
1397#[repr(C)]
1398#[doc(hidden)]
1399pub struct IDXGIFactory2_Vtbl {
1400 pub base__: IDXGIFactory1_Vtbl,
1401 #[cfg(feature = "Win32_Foundation")]
1402 pub IsWindowedStereoEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
1403 #[cfg(not(feature = "Win32_Foundation"))]
1404 IsWindowedStereoEnabled: usize,
1405 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1406 pub CreateSwapChainForHwnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC, prestricttooutput: *mut ::core::ffi::c_void, ppswapchain: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1407 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
1408 CreateSwapChainForHwnd: usize,
1409 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1410 pub CreateSwapChainForCoreWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, pwindow: *mut ::core::ffi::c_void, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: *mut ::core::ffi::c_void, ppswapchain: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1411 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
1412 CreateSwapChainForCoreWindow: usize,
1413 #[cfg(feature = "Win32_Foundation")]
1414 pub GetSharedResourceAdapterLuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hresource: super::super::Foundation::HANDLE, pluid: *mut super::super::Foundation::LUID) -> ::windows_core::HRESULT,
1415 #[cfg(not(feature = "Win32_Foundation"))]
1416 GetSharedResourceAdapterLuid: usize,
1417 #[cfg(feature = "Win32_Foundation")]
1418 pub RegisterStereoStatusWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
1419 #[cfg(not(feature = "Win32_Foundation"))]
1420 RegisterStereoStatusWindow: usize,
1421 #[cfg(feature = "Win32_Foundation")]
1422 pub RegisterStereoStatusEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
1423 #[cfg(not(feature = "Win32_Foundation"))]
1424 RegisterStereoStatusEvent: usize,
1425 pub UnregisterStereoStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32),
1426 #[cfg(feature = "Win32_Foundation")]
1427 pub RegisterOcclusionStatusWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, windowhandle: super::super::Foundation::HWND, wmsg: u32, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
1428 #[cfg(not(feature = "Win32_Foundation"))]
1429 RegisterOcclusionStatusWindow: usize,
1430 #[cfg(feature = "Win32_Foundation")]
1431 pub RegisterOcclusionStatusEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
1432 #[cfg(not(feature = "Win32_Foundation"))]
1433 RegisterOcclusionStatusEvent: usize,
1434 pub UnregisterOcclusionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32),
1435 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1436 pub CreateSwapChainForComposition: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: *mut ::core::ffi::c_void, ppswapchain: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1437 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
1438 CreateSwapChainForComposition: usize,
1439}
1440#[repr(transparent)]
1441#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1442pub struct IDXGIFactory3(::windows_core::IUnknown);
1443impl IDXGIFactory3 {
1444 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
1445 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
1446 }
1447 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
1448 where
1449 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1450 {
1451 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
1452 }
1453 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
1454 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
1455 }
1456 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
1457 where
1458 T: ::windows_core::ComInterface,
1459 {
1460 let mut result__ = ::std::ptr::null_mut();
1461 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1462 }
1463 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
1464 let mut result__ = ::std::mem::zeroed();
1465 (::windows_core::Interface::vtable(self).base__.base__.base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1466 }
1467 #[doc = "Required features: `\"Win32_Foundation\"`"]
1468 #[cfg(feature = "Win32_Foundation")]
1469 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
1470 where
1471 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1472 {
1473 (::windows_core::Interface::vtable(self).base__.base__.base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
1474 }
1475 #[doc = "Required features: `\"Win32_Foundation\"`"]
1476 #[cfg(feature = "Win32_Foundation")]
1477 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
1478 let mut result__ = ::std::mem::zeroed();
1479 (::windows_core::Interface::vtable(self).base__.base__.base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
1480 }
1481 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1482 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1483 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
1484 where
1485 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1486 {
1487 (::windows_core::Interface::vtable(self).base__.base__.base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
1488 }
1489 #[doc = "Required features: `\"Win32_Foundation\"`"]
1490 #[cfg(feature = "Win32_Foundation")]
1491 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
1492 where
1493 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
1494 {
1495 let mut result__ = ::std::mem::zeroed();
1496 (::windows_core::Interface::vtable(self).base__.base__.base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
1497 }
1498 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
1499 let mut result__ = ::std::mem::zeroed();
1500 (::windows_core::Interface::vtable(self).base__.base__.EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1501 }
1502 #[doc = "Required features: `\"Win32_Foundation\"`"]
1503 #[cfg(feature = "Win32_Foundation")]
1504 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
1505 (::windows_core::Interface::vtable(self).base__.base__.IsCurrent)(::windows_core::Interface::as_raw(self))
1506 }
1507 #[doc = "Required features: `\"Win32_Foundation\"`"]
1508 #[cfg(feature = "Win32_Foundation")]
1509 pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
1510 (::windows_core::Interface::vtable(self).base__.IsWindowedStereoEnabled)(::windows_core::Interface::as_raw(self))
1511 }
1512 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1513 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1514 pub unsafe fn CreateSwapChainForHwnd<P0, P1, P2>(&self, pdevice: P0, hwnd: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: ::core::option::Option<*const DXGI_SWAP_CHAIN_FULLSCREEN_DESC>, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1515 where
1516 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1517 P1: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1518 P2: ::windows_core::IntoParam<IDXGIOutput>,
1519 {
1520 let mut result__ = ::std::mem::zeroed();
1521 (::windows_core::Interface::vtable(self).base__.CreateSwapChainForHwnd)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hwnd.into_param().abi(), pdesc, ::core::mem::transmute(pfullscreendesc.unwrap_or(::std::ptr::null())), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1522 }
1523 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1524 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1525 pub unsafe fn CreateSwapChainForCoreWindow<P0, P1, P2>(&self, pdevice: P0, pwindow: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1526 where
1527 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1528 P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
1529 P2: ::windows_core::IntoParam<IDXGIOutput>,
1530 {
1531 let mut result__ = ::std::mem::zeroed();
1532 (::windows_core::Interface::vtable(self).base__.CreateSwapChainForCoreWindow)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pwindow.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1533 }
1534 #[doc = "Required features: `\"Win32_Foundation\"`"]
1535 #[cfg(feature = "Win32_Foundation")]
1536 pub unsafe fn GetSharedResourceAdapterLuid<P0>(&self, hresource: P0) -> ::windows_core::Result<super::super::Foundation::LUID>
1537 where
1538 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1539 {
1540 let mut result__ = ::std::mem::zeroed();
1541 (::windows_core::Interface::vtable(self).base__.GetSharedResourceAdapterLuid)(::windows_core::Interface::as_raw(self), hresource.into_param().abi(), &mut result__).from_abi(result__)
1542 }
1543 #[doc = "Required features: `\"Win32_Foundation\"`"]
1544 #[cfg(feature = "Win32_Foundation")]
1545 pub unsafe fn RegisterStereoStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1546 where
1547 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1548 {
1549 let mut result__ = ::std::mem::zeroed();
1550 (::windows_core::Interface::vtable(self).base__.RegisterStereoStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1551 }
1552 #[doc = "Required features: `\"Win32_Foundation\"`"]
1553 #[cfg(feature = "Win32_Foundation")]
1554 pub unsafe fn RegisterStereoStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1555 where
1556 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1557 {
1558 let mut result__ = ::std::mem::zeroed();
1559 (::windows_core::Interface::vtable(self).base__.RegisterStereoStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1560 }
1561 pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
1562 (::windows_core::Interface::vtable(self).base__.UnregisterStereoStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1563 }
1564 #[doc = "Required features: `\"Win32_Foundation\"`"]
1565 #[cfg(feature = "Win32_Foundation")]
1566 pub unsafe fn RegisterOcclusionStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1567 where
1568 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1569 {
1570 let mut result__ = ::std::mem::zeroed();
1571 (::windows_core::Interface::vtable(self).base__.RegisterOcclusionStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1572 }
1573 #[doc = "Required features: `\"Win32_Foundation\"`"]
1574 #[cfg(feature = "Win32_Foundation")]
1575 pub unsafe fn RegisterOcclusionStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1576 where
1577 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1578 {
1579 let mut result__ = ::std::mem::zeroed();
1580 (::windows_core::Interface::vtable(self).base__.RegisterOcclusionStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1581 }
1582 pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
1583 (::windows_core::Interface::vtable(self).base__.UnregisterOcclusionStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1584 }
1585 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1586 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1587 pub unsafe fn CreateSwapChainForComposition<P0, P1>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P1) -> ::windows_core::Result<IDXGISwapChain1>
1588 where
1589 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1590 P1: ::windows_core::IntoParam<IDXGIOutput>,
1591 {
1592 let mut result__ = ::std::mem::zeroed();
1593 (::windows_core::Interface::vtable(self).base__.CreateSwapChainForComposition)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1594 }
1595 pub unsafe fn GetCreationFlags(&self) -> u32 {
1596 (::windows_core::Interface::vtable(self).GetCreationFlags)(::windows_core::Interface::as_raw(self))
1597 }
1598}
1599::windows_core::imp::interface_hierarchy!(IDXGIFactory3, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2);
1600unsafe impl ::core::marker::Send for IDXGIFactory3 {}
1601unsafe impl ::core::marker::Sync for IDXGIFactory3 {}
1602unsafe impl ::windows_core::Interface for IDXGIFactory3 {
1603 type Vtable = IDXGIFactory3_Vtbl;
1604}
1605unsafe impl ::windows_core::ComInterface for IDXGIFactory3 {
1606 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x25483823_cd46_4c7d_86ca_47aa95b837bd);
1607}
1608#[repr(C)]
1609#[doc(hidden)]
1610pub struct IDXGIFactory3_Vtbl {
1611 pub base__: IDXGIFactory2_Vtbl,
1612 pub GetCreationFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
1613}
1614#[repr(transparent)]
1615#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1616pub struct IDXGIFactory4(::windows_core::IUnknown);
1617impl IDXGIFactory4 {
1618 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
1619 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
1620 }
1621 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
1622 where
1623 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1624 {
1625 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
1626 }
1627 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
1628 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
1629 }
1630 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
1631 where
1632 T: ::windows_core::ComInterface,
1633 {
1634 let mut result__ = ::std::ptr::null_mut();
1635 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1636 }
1637 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
1638 let mut result__ = ::std::mem::zeroed();
1639 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1640 }
1641 #[doc = "Required features: `\"Win32_Foundation\"`"]
1642 #[cfg(feature = "Win32_Foundation")]
1643 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
1644 where
1645 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1646 {
1647 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
1648 }
1649 #[doc = "Required features: `\"Win32_Foundation\"`"]
1650 #[cfg(feature = "Win32_Foundation")]
1651 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
1652 let mut result__ = ::std::mem::zeroed();
1653 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
1654 }
1655 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1656 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1657 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
1658 where
1659 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1660 {
1661 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
1662 }
1663 #[doc = "Required features: `\"Win32_Foundation\"`"]
1664 #[cfg(feature = "Win32_Foundation")]
1665 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
1666 where
1667 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
1668 {
1669 let mut result__ = ::std::mem::zeroed();
1670 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
1671 }
1672 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
1673 let mut result__ = ::std::mem::zeroed();
1674 (::windows_core::Interface::vtable(self).base__.base__.base__.EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1675 }
1676 #[doc = "Required features: `\"Win32_Foundation\"`"]
1677 #[cfg(feature = "Win32_Foundation")]
1678 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
1679 (::windows_core::Interface::vtable(self).base__.base__.base__.IsCurrent)(::windows_core::Interface::as_raw(self))
1680 }
1681 #[doc = "Required features: `\"Win32_Foundation\"`"]
1682 #[cfg(feature = "Win32_Foundation")]
1683 pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
1684 (::windows_core::Interface::vtable(self).base__.base__.IsWindowedStereoEnabled)(::windows_core::Interface::as_raw(self))
1685 }
1686 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1687 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1688 pub unsafe fn CreateSwapChainForHwnd<P0, P1, P2>(&self, pdevice: P0, hwnd: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: ::core::option::Option<*const DXGI_SWAP_CHAIN_FULLSCREEN_DESC>, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1689 where
1690 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1691 P1: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1692 P2: ::windows_core::IntoParam<IDXGIOutput>,
1693 {
1694 let mut result__ = ::std::mem::zeroed();
1695 (::windows_core::Interface::vtable(self).base__.base__.CreateSwapChainForHwnd)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hwnd.into_param().abi(), pdesc, ::core::mem::transmute(pfullscreendesc.unwrap_or(::std::ptr::null())), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1696 }
1697 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1698 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1699 pub unsafe fn CreateSwapChainForCoreWindow<P0, P1, P2>(&self, pdevice: P0, pwindow: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1700 where
1701 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1702 P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
1703 P2: ::windows_core::IntoParam<IDXGIOutput>,
1704 {
1705 let mut result__ = ::std::mem::zeroed();
1706 (::windows_core::Interface::vtable(self).base__.base__.CreateSwapChainForCoreWindow)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pwindow.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1707 }
1708 #[doc = "Required features: `\"Win32_Foundation\"`"]
1709 #[cfg(feature = "Win32_Foundation")]
1710 pub unsafe fn GetSharedResourceAdapterLuid<P0>(&self, hresource: P0) -> ::windows_core::Result<super::super::Foundation::LUID>
1711 where
1712 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1713 {
1714 let mut result__ = ::std::mem::zeroed();
1715 (::windows_core::Interface::vtable(self).base__.base__.GetSharedResourceAdapterLuid)(::windows_core::Interface::as_raw(self), hresource.into_param().abi(), &mut result__).from_abi(result__)
1716 }
1717 #[doc = "Required features: `\"Win32_Foundation\"`"]
1718 #[cfg(feature = "Win32_Foundation")]
1719 pub unsafe fn RegisterStereoStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1720 where
1721 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1722 {
1723 let mut result__ = ::std::mem::zeroed();
1724 (::windows_core::Interface::vtable(self).base__.base__.RegisterStereoStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1725 }
1726 #[doc = "Required features: `\"Win32_Foundation\"`"]
1727 #[cfg(feature = "Win32_Foundation")]
1728 pub unsafe fn RegisterStereoStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1729 where
1730 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1731 {
1732 let mut result__ = ::std::mem::zeroed();
1733 (::windows_core::Interface::vtable(self).base__.base__.RegisterStereoStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1734 }
1735 pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
1736 (::windows_core::Interface::vtable(self).base__.base__.UnregisterStereoStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1737 }
1738 #[doc = "Required features: `\"Win32_Foundation\"`"]
1739 #[cfg(feature = "Win32_Foundation")]
1740 pub unsafe fn RegisterOcclusionStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1741 where
1742 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1743 {
1744 let mut result__ = ::std::mem::zeroed();
1745 (::windows_core::Interface::vtable(self).base__.base__.RegisterOcclusionStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1746 }
1747 #[doc = "Required features: `\"Win32_Foundation\"`"]
1748 #[cfg(feature = "Win32_Foundation")]
1749 pub unsafe fn RegisterOcclusionStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1750 where
1751 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1752 {
1753 let mut result__ = ::std::mem::zeroed();
1754 (::windows_core::Interface::vtable(self).base__.base__.RegisterOcclusionStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1755 }
1756 pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
1757 (::windows_core::Interface::vtable(self).base__.base__.UnregisterOcclusionStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1758 }
1759 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1760 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1761 pub unsafe fn CreateSwapChainForComposition<P0, P1>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P1) -> ::windows_core::Result<IDXGISwapChain1>
1762 where
1763 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1764 P1: ::windows_core::IntoParam<IDXGIOutput>,
1765 {
1766 let mut result__ = ::std::mem::zeroed();
1767 (::windows_core::Interface::vtable(self).base__.base__.CreateSwapChainForComposition)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1768 }
1769 pub unsafe fn GetCreationFlags(&self) -> u32 {
1770 (::windows_core::Interface::vtable(self).base__.GetCreationFlags)(::windows_core::Interface::as_raw(self))
1771 }
1772 #[doc = "Required features: `\"Win32_Foundation\"`"]
1773 #[cfg(feature = "Win32_Foundation")]
1774 pub unsafe fn EnumAdapterByLuid<T>(&self, adapterluid: super::super::Foundation::LUID) -> ::windows_core::Result<T>
1775 where
1776 T: ::windows_core::ComInterface,
1777 {
1778 let mut result__ = ::std::ptr::null_mut();
1779 (::windows_core::Interface::vtable(self).EnumAdapterByLuid)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(adapterluid), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1780 }
1781 pub unsafe fn EnumWarpAdapter<T>(&self) -> ::windows_core::Result<T>
1782 where
1783 T: ::windows_core::ComInterface,
1784 {
1785 let mut result__ = ::std::ptr::null_mut();
1786 (::windows_core::Interface::vtable(self).EnumWarpAdapter)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1787 }
1788}
1789::windows_core::imp::interface_hierarchy!(IDXGIFactory4, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3);
1790unsafe impl ::core::marker::Send for IDXGIFactory4 {}
1791unsafe impl ::core::marker::Sync for IDXGIFactory4 {}
1792unsafe impl ::windows_core::Interface for IDXGIFactory4 {
1793 type Vtable = IDXGIFactory4_Vtbl;
1794}
1795unsafe impl ::windows_core::ComInterface for IDXGIFactory4 {
1796 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x1bc6ea02_ef36_464f_bf0c_21ca39e5168a);
1797}
1798#[repr(C)]
1799#[doc(hidden)]
1800pub struct IDXGIFactory4_Vtbl {
1801 pub base__: IDXGIFactory3_Vtbl,
1802 #[cfg(feature = "Win32_Foundation")]
1803 pub EnumAdapterByLuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adapterluid: super::super::Foundation::LUID, riid: *const ::windows_core::GUID, ppvadapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1804 #[cfg(not(feature = "Win32_Foundation"))]
1805 EnumAdapterByLuid: usize,
1806 pub EnumWarpAdapter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppvadapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
1807}
1808#[repr(transparent)]
1809#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
1810pub struct IDXGIFactory5(::windows_core::IUnknown);
1811impl IDXGIFactory5 {
1812 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
1813 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
1814 }
1815 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
1816 where
1817 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1818 {
1819 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
1820 }
1821 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
1822 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
1823 }
1824 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
1825 where
1826 T: ::windows_core::ComInterface,
1827 {
1828 let mut result__ = ::std::ptr::null_mut();
1829 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1830 }
1831 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
1832 let mut result__ = ::std::mem::zeroed();
1833 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1834 }
1835 #[doc = "Required features: `\"Win32_Foundation\"`"]
1836 #[cfg(feature = "Win32_Foundation")]
1837 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
1838 where
1839 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1840 {
1841 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
1842 }
1843 #[doc = "Required features: `\"Win32_Foundation\"`"]
1844 #[cfg(feature = "Win32_Foundation")]
1845 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
1846 let mut result__ = ::std::mem::zeroed();
1847 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
1848 }
1849 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1850 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1851 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
1852 where
1853 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1854 {
1855 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
1856 }
1857 #[doc = "Required features: `\"Win32_Foundation\"`"]
1858 #[cfg(feature = "Win32_Foundation")]
1859 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
1860 where
1861 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
1862 {
1863 let mut result__ = ::std::mem::zeroed();
1864 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
1865 }
1866 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
1867 let mut result__ = ::std::mem::zeroed();
1868 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
1869 }
1870 #[doc = "Required features: `\"Win32_Foundation\"`"]
1871 #[cfg(feature = "Win32_Foundation")]
1872 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
1873 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.IsCurrent)(::windows_core::Interface::as_raw(self))
1874 }
1875 #[doc = "Required features: `\"Win32_Foundation\"`"]
1876 #[cfg(feature = "Win32_Foundation")]
1877 pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
1878 (::windows_core::Interface::vtable(self).base__.base__.base__.IsWindowedStereoEnabled)(::windows_core::Interface::as_raw(self))
1879 }
1880 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1881 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1882 pub unsafe fn CreateSwapChainForHwnd<P0, P1, P2>(&self, pdevice: P0, hwnd: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: ::core::option::Option<*const DXGI_SWAP_CHAIN_FULLSCREEN_DESC>, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1883 where
1884 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1885 P1: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1886 P2: ::windows_core::IntoParam<IDXGIOutput>,
1887 {
1888 let mut result__ = ::std::mem::zeroed();
1889 (::windows_core::Interface::vtable(self).base__.base__.base__.CreateSwapChainForHwnd)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hwnd.into_param().abi(), pdesc, ::core::mem::transmute(pfullscreendesc.unwrap_or(::std::ptr::null())), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1890 }
1891 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1892 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1893 pub unsafe fn CreateSwapChainForCoreWindow<P0, P1, P2>(&self, pdevice: P0, pwindow: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
1894 where
1895 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1896 P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
1897 P2: ::windows_core::IntoParam<IDXGIOutput>,
1898 {
1899 let mut result__ = ::std::mem::zeroed();
1900 (::windows_core::Interface::vtable(self).base__.base__.base__.CreateSwapChainForCoreWindow)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pwindow.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1901 }
1902 #[doc = "Required features: `\"Win32_Foundation\"`"]
1903 #[cfg(feature = "Win32_Foundation")]
1904 pub unsafe fn GetSharedResourceAdapterLuid<P0>(&self, hresource: P0) -> ::windows_core::Result<super::super::Foundation::LUID>
1905 where
1906 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1907 {
1908 let mut result__ = ::std::mem::zeroed();
1909 (::windows_core::Interface::vtable(self).base__.base__.base__.GetSharedResourceAdapterLuid)(::windows_core::Interface::as_raw(self), hresource.into_param().abi(), &mut result__).from_abi(result__)
1910 }
1911 #[doc = "Required features: `\"Win32_Foundation\"`"]
1912 #[cfg(feature = "Win32_Foundation")]
1913 pub unsafe fn RegisterStereoStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1914 where
1915 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1916 {
1917 let mut result__ = ::std::mem::zeroed();
1918 (::windows_core::Interface::vtable(self).base__.base__.base__.RegisterStereoStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1919 }
1920 #[doc = "Required features: `\"Win32_Foundation\"`"]
1921 #[cfg(feature = "Win32_Foundation")]
1922 pub unsafe fn RegisterStereoStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1923 where
1924 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1925 {
1926 let mut result__ = ::std::mem::zeroed();
1927 (::windows_core::Interface::vtable(self).base__.base__.base__.RegisterStereoStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1928 }
1929 pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
1930 (::windows_core::Interface::vtable(self).base__.base__.base__.UnregisterStereoStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1931 }
1932 #[doc = "Required features: `\"Win32_Foundation\"`"]
1933 #[cfg(feature = "Win32_Foundation")]
1934 pub unsafe fn RegisterOcclusionStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
1935 where
1936 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
1937 {
1938 let mut result__ = ::std::mem::zeroed();
1939 (::windows_core::Interface::vtable(self).base__.base__.base__.RegisterOcclusionStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
1940 }
1941 #[doc = "Required features: `\"Win32_Foundation\"`"]
1942 #[cfg(feature = "Win32_Foundation")]
1943 pub unsafe fn RegisterOcclusionStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
1944 where
1945 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
1946 {
1947 let mut result__ = ::std::mem::zeroed();
1948 (::windows_core::Interface::vtable(self).base__.base__.base__.RegisterOcclusionStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
1949 }
1950 pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
1951 (::windows_core::Interface::vtable(self).base__.base__.base__.UnregisterOcclusionStatus)(::windows_core::Interface::as_raw(self), dwcookie)
1952 }
1953 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
1954 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1955 pub unsafe fn CreateSwapChainForComposition<P0, P1>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P1) -> ::windows_core::Result<IDXGISwapChain1>
1956 where
1957 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
1958 P1: ::windows_core::IntoParam<IDXGIOutput>,
1959 {
1960 let mut result__ = ::std::mem::zeroed();
1961 (::windows_core::Interface::vtable(self).base__.base__.base__.CreateSwapChainForComposition)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
1962 }
1963 pub unsafe fn GetCreationFlags(&self) -> u32 {
1964 (::windows_core::Interface::vtable(self).base__.base__.GetCreationFlags)(::windows_core::Interface::as_raw(self))
1965 }
1966 #[doc = "Required features: `\"Win32_Foundation\"`"]
1967 #[cfg(feature = "Win32_Foundation")]
1968 pub unsafe fn EnumAdapterByLuid<T>(&self, adapterluid: super::super::Foundation::LUID) -> ::windows_core::Result<T>
1969 where
1970 T: ::windows_core::ComInterface,
1971 {
1972 let mut result__ = ::std::ptr::null_mut();
1973 (::windows_core::Interface::vtable(self).base__.EnumAdapterByLuid)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(adapterluid), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1974 }
1975 pub unsafe fn EnumWarpAdapter<T>(&self) -> ::windows_core::Result<T>
1976 where
1977 T: ::windows_core::ComInterface,
1978 {
1979 let mut result__ = ::std::ptr::null_mut();
1980 (::windows_core::Interface::vtable(self).base__.EnumWarpAdapter)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
1981 }
1982 pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows_core::Result<()> {
1983 (::windows_core::Interface::vtable(self).CheckFeatureSupport)(::windows_core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
1984 }
1985}
1986::windows_core::imp::interface_hierarchy!(IDXGIFactory5, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3, IDXGIFactory4);
1987unsafe impl ::core::marker::Send for IDXGIFactory5 {}
1988unsafe impl ::core::marker::Sync for IDXGIFactory5 {}
1989unsafe impl ::windows_core::Interface for IDXGIFactory5 {
1990 type Vtable = IDXGIFactory5_Vtbl;
1991}
1992unsafe impl ::windows_core::ComInterface for IDXGIFactory5 {
1993 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x7632e1f5_ee65_4dca_87fd_84cd75f8838d);
1994}
1995#[repr(C)]
1996#[doc(hidden)]
1997pub struct IDXGIFactory5_Vtbl {
1998 pub base__: IDXGIFactory4_Vtbl,
1999 pub CheckFeatureSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows_core::HRESULT,
2000}
2001#[repr(transparent)]
2002#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2003pub struct IDXGIFactory6(::windows_core::IUnknown);
2004impl IDXGIFactory6 {
2005 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
2006 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
2007 }
2008 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
2009 where
2010 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2011 {
2012 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
2013 }
2014 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
2015 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
2016 }
2017 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
2018 where
2019 T: ::windows_core::ComInterface,
2020 {
2021 let mut result__ = ::std::ptr::null_mut();
2022 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2023 }
2024 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
2025 let mut result__ = ::std::mem::zeroed();
2026 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
2027 }
2028 #[doc = "Required features: `\"Win32_Foundation\"`"]
2029 #[cfg(feature = "Win32_Foundation")]
2030 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
2031 where
2032 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2033 {
2034 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
2035 }
2036 #[doc = "Required features: `\"Win32_Foundation\"`"]
2037 #[cfg(feature = "Win32_Foundation")]
2038 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
2039 let mut result__ = ::std::mem::zeroed();
2040 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
2041 }
2042 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2043 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2044 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
2045 where
2046 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2047 {
2048 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
2049 }
2050 #[doc = "Required features: `\"Win32_Foundation\"`"]
2051 #[cfg(feature = "Win32_Foundation")]
2052 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
2053 where
2054 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
2055 {
2056 let mut result__ = ::std::mem::zeroed();
2057 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
2058 }
2059 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
2060 let mut result__ = ::std::mem::zeroed();
2061 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
2062 }
2063 #[doc = "Required features: `\"Win32_Foundation\"`"]
2064 #[cfg(feature = "Win32_Foundation")]
2065 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
2066 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.IsCurrent)(::windows_core::Interface::as_raw(self))
2067 }
2068 #[doc = "Required features: `\"Win32_Foundation\"`"]
2069 #[cfg(feature = "Win32_Foundation")]
2070 pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
2071 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.IsWindowedStereoEnabled)(::windows_core::Interface::as_raw(self))
2072 }
2073 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2074 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2075 pub unsafe fn CreateSwapChainForHwnd<P0, P1, P2>(&self, pdevice: P0, hwnd: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: ::core::option::Option<*const DXGI_SWAP_CHAIN_FULLSCREEN_DESC>, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
2076 where
2077 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2078 P1: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2079 P2: ::windows_core::IntoParam<IDXGIOutput>,
2080 {
2081 let mut result__ = ::std::mem::zeroed();
2082 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CreateSwapChainForHwnd)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hwnd.into_param().abi(), pdesc, ::core::mem::transmute(pfullscreendesc.unwrap_or(::std::ptr::null())), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2083 }
2084 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2085 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2086 pub unsafe fn CreateSwapChainForCoreWindow<P0, P1, P2>(&self, pdevice: P0, pwindow: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
2087 where
2088 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2089 P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
2090 P2: ::windows_core::IntoParam<IDXGIOutput>,
2091 {
2092 let mut result__ = ::std::mem::zeroed();
2093 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CreateSwapChainForCoreWindow)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pwindow.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2094 }
2095 #[doc = "Required features: `\"Win32_Foundation\"`"]
2096 #[cfg(feature = "Win32_Foundation")]
2097 pub unsafe fn GetSharedResourceAdapterLuid<P0>(&self, hresource: P0) -> ::windows_core::Result<super::super::Foundation::LUID>
2098 where
2099 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2100 {
2101 let mut result__ = ::std::mem::zeroed();
2102 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetSharedResourceAdapterLuid)(::windows_core::Interface::as_raw(self), hresource.into_param().abi(), &mut result__).from_abi(result__)
2103 }
2104 #[doc = "Required features: `\"Win32_Foundation\"`"]
2105 #[cfg(feature = "Win32_Foundation")]
2106 pub unsafe fn RegisterStereoStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
2107 where
2108 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2109 {
2110 let mut result__ = ::std::mem::zeroed();
2111 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.RegisterStereoStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
2112 }
2113 #[doc = "Required features: `\"Win32_Foundation\"`"]
2114 #[cfg(feature = "Win32_Foundation")]
2115 pub unsafe fn RegisterStereoStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
2116 where
2117 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2118 {
2119 let mut result__ = ::std::mem::zeroed();
2120 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.RegisterStereoStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
2121 }
2122 pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
2123 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.UnregisterStereoStatus)(::windows_core::Interface::as_raw(self), dwcookie)
2124 }
2125 #[doc = "Required features: `\"Win32_Foundation\"`"]
2126 #[cfg(feature = "Win32_Foundation")]
2127 pub unsafe fn RegisterOcclusionStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
2128 where
2129 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2130 {
2131 let mut result__ = ::std::mem::zeroed();
2132 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.RegisterOcclusionStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
2133 }
2134 #[doc = "Required features: `\"Win32_Foundation\"`"]
2135 #[cfg(feature = "Win32_Foundation")]
2136 pub unsafe fn RegisterOcclusionStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
2137 where
2138 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2139 {
2140 let mut result__ = ::std::mem::zeroed();
2141 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.RegisterOcclusionStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
2142 }
2143 pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
2144 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.UnregisterOcclusionStatus)(::windows_core::Interface::as_raw(self), dwcookie)
2145 }
2146 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2147 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2148 pub unsafe fn CreateSwapChainForComposition<P0, P1>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P1) -> ::windows_core::Result<IDXGISwapChain1>
2149 where
2150 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2151 P1: ::windows_core::IntoParam<IDXGIOutput>,
2152 {
2153 let mut result__ = ::std::mem::zeroed();
2154 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.CreateSwapChainForComposition)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2155 }
2156 pub unsafe fn GetCreationFlags(&self) -> u32 {
2157 (::windows_core::Interface::vtable(self).base__.base__.base__.GetCreationFlags)(::windows_core::Interface::as_raw(self))
2158 }
2159 #[doc = "Required features: `\"Win32_Foundation\"`"]
2160 #[cfg(feature = "Win32_Foundation")]
2161 pub unsafe fn EnumAdapterByLuid<T>(&self, adapterluid: super::super::Foundation::LUID) -> ::windows_core::Result<T>
2162 where
2163 T: ::windows_core::ComInterface,
2164 {
2165 let mut result__ = ::std::ptr::null_mut();
2166 (::windows_core::Interface::vtable(self).base__.base__.EnumAdapterByLuid)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(adapterluid), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2167 }
2168 pub unsafe fn EnumWarpAdapter<T>(&self) -> ::windows_core::Result<T>
2169 where
2170 T: ::windows_core::ComInterface,
2171 {
2172 let mut result__ = ::std::ptr::null_mut();
2173 (::windows_core::Interface::vtable(self).base__.base__.EnumWarpAdapter)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2174 }
2175 pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows_core::Result<()> {
2176 (::windows_core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows_core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
2177 }
2178 pub unsafe fn EnumAdapterByGpuPreference<T>(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows_core::Result<T>
2179 where
2180 T: ::windows_core::ComInterface,
2181 {
2182 let mut result__ = ::std::ptr::null_mut();
2183 (::windows_core::Interface::vtable(self).EnumAdapterByGpuPreference)(::windows_core::Interface::as_raw(self), adapter, gpupreference, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2184 }
2185}
2186::windows_core::imp::interface_hierarchy!(IDXGIFactory6, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3, IDXGIFactory4, IDXGIFactory5);
2187unsafe impl ::core::marker::Send for IDXGIFactory6 {}
2188unsafe impl ::core::marker::Sync for IDXGIFactory6 {}
2189unsafe impl ::windows_core::Interface for IDXGIFactory6 {
2190 type Vtable = IDXGIFactory6_Vtbl;
2191}
2192unsafe impl ::windows_core::ComInterface for IDXGIFactory6 {
2193 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xc1b6694f_ff09_44a9_b03c_77900a0a1d17);
2194}
2195#[repr(C)]
2196#[doc(hidden)]
2197pub struct IDXGIFactory6_Vtbl {
2198 pub base__: IDXGIFactory5_Vtbl,
2199 pub EnumAdapterByGpuPreference: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE, riid: *const ::windows_core::GUID, ppvadapter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2200}
2201#[repr(transparent)]
2202#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2203pub struct IDXGIFactory7(::windows_core::IUnknown);
2204impl IDXGIFactory7 {
2205 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
2206 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
2207 }
2208 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
2209 where
2210 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2211 {
2212 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
2213 }
2214 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
2215 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
2216 }
2217 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
2218 where
2219 T: ::windows_core::ComInterface,
2220 {
2221 let mut result__ = ::std::ptr::null_mut();
2222 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2223 }
2224 pub unsafe fn EnumAdapters(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter> {
2225 let mut result__ = ::std::mem::zeroed();
2226 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.EnumAdapters)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
2227 }
2228 #[doc = "Required features: `\"Win32_Foundation\"`"]
2229 #[cfg(feature = "Win32_Foundation")]
2230 pub unsafe fn MakeWindowAssociation<P0>(&self, windowhandle: P0, flags: u32) -> ::windows_core::Result<()>
2231 where
2232 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2233 {
2234 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.MakeWindowAssociation)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), flags).ok()
2235 }
2236 #[doc = "Required features: `\"Win32_Foundation\"`"]
2237 #[cfg(feature = "Win32_Foundation")]
2238 pub unsafe fn GetWindowAssociation(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
2239 let mut result__ = ::std::mem::zeroed();
2240 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetWindowAssociation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
2241 }
2242 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2243 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2244 pub unsafe fn CreateSwapChain<P0>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC, ppswapchain: *mut ::core::option::Option<IDXGISwapChain>) -> ::windows_core::HRESULT
2245 where
2246 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2247 {
2248 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateSwapChain)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, ::core::mem::transmute(ppswapchain))
2249 }
2250 #[doc = "Required features: `\"Win32_Foundation\"`"]
2251 #[cfg(feature = "Win32_Foundation")]
2252 pub unsafe fn CreateSoftwareAdapter<P0>(&self, module: P0) -> ::windows_core::Result<IDXGIAdapter>
2253 where
2254 P0: ::windows_core::IntoParam<super::super::Foundation::HMODULE>,
2255 {
2256 let mut result__ = ::std::mem::zeroed();
2257 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateSoftwareAdapter)(::windows_core::Interface::as_raw(self), module.into_param().abi(), &mut result__).from_abi(result__)
2258 }
2259 pub unsafe fn EnumAdapters1(&self, adapter: u32) -> ::windows_core::Result<IDXGIAdapter1> {
2260 let mut result__ = ::std::mem::zeroed();
2261 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnumAdapters1)(::windows_core::Interface::as_raw(self), adapter, &mut result__).from_abi(result__)
2262 }
2263 #[doc = "Required features: `\"Win32_Foundation\"`"]
2264 #[cfg(feature = "Win32_Foundation")]
2265 pub unsafe fn IsCurrent(&self) -> super::super::Foundation::BOOL {
2266 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IsCurrent)(::windows_core::Interface::as_raw(self))
2267 }
2268 #[doc = "Required features: `\"Win32_Foundation\"`"]
2269 #[cfg(feature = "Win32_Foundation")]
2270 pub unsafe fn IsWindowedStereoEnabled(&self) -> super::super::Foundation::BOOL {
2271 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.IsWindowedStereoEnabled)(::windows_core::Interface::as_raw(self))
2272 }
2273 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2274 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2275 pub unsafe fn CreateSwapChainForHwnd<P0, P1, P2>(&self, pdevice: P0, hwnd: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, pfullscreendesc: ::core::option::Option<*const DXGI_SWAP_CHAIN_FULLSCREEN_DESC>, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
2276 where
2277 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2278 P1: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2279 P2: ::windows_core::IntoParam<IDXGIOutput>,
2280 {
2281 let mut result__ = ::std::mem::zeroed();
2282 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSwapChainForHwnd)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hwnd.into_param().abi(), pdesc, ::core::mem::transmute(pfullscreendesc.unwrap_or(::std::ptr::null())), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2283 }
2284 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2285 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2286 pub unsafe fn CreateSwapChainForCoreWindow<P0, P1, P2>(&self, pdevice: P0, pwindow: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
2287 where
2288 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2289 P1: ::windows_core::IntoParam<::windows_core::IUnknown>,
2290 P2: ::windows_core::IntoParam<IDXGIOutput>,
2291 {
2292 let mut result__ = ::std::mem::zeroed();
2293 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSwapChainForCoreWindow)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pwindow.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2294 }
2295 #[doc = "Required features: `\"Win32_Foundation\"`"]
2296 #[cfg(feature = "Win32_Foundation")]
2297 pub unsafe fn GetSharedResourceAdapterLuid<P0>(&self, hresource: P0) -> ::windows_core::Result<super::super::Foundation::LUID>
2298 where
2299 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2300 {
2301 let mut result__ = ::std::mem::zeroed();
2302 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetSharedResourceAdapterLuid)(::windows_core::Interface::as_raw(self), hresource.into_param().abi(), &mut result__).from_abi(result__)
2303 }
2304 #[doc = "Required features: `\"Win32_Foundation\"`"]
2305 #[cfg(feature = "Win32_Foundation")]
2306 pub unsafe fn RegisterStereoStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
2307 where
2308 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2309 {
2310 let mut result__ = ::std::mem::zeroed();
2311 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterStereoStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
2312 }
2313 #[doc = "Required features: `\"Win32_Foundation\"`"]
2314 #[cfg(feature = "Win32_Foundation")]
2315 pub unsafe fn RegisterStereoStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
2316 where
2317 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2318 {
2319 let mut result__ = ::std::mem::zeroed();
2320 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterStereoStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
2321 }
2322 pub unsafe fn UnregisterStereoStatus(&self, dwcookie: u32) {
2323 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.UnregisterStereoStatus)(::windows_core::Interface::as_raw(self), dwcookie)
2324 }
2325 #[doc = "Required features: `\"Win32_Foundation\"`"]
2326 #[cfg(feature = "Win32_Foundation")]
2327 pub unsafe fn RegisterOcclusionStatusWindow<P0>(&self, windowhandle: P0, wmsg: u32) -> ::windows_core::Result<u32>
2328 where
2329 P0: ::windows_core::IntoParam<super::super::Foundation::HWND>,
2330 {
2331 let mut result__ = ::std::mem::zeroed();
2332 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterOcclusionStatusWindow)(::windows_core::Interface::as_raw(self), windowhandle.into_param().abi(), wmsg, &mut result__).from_abi(result__)
2333 }
2334 #[doc = "Required features: `\"Win32_Foundation\"`"]
2335 #[cfg(feature = "Win32_Foundation")]
2336 pub unsafe fn RegisterOcclusionStatusEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
2337 where
2338 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2339 {
2340 let mut result__ = ::std::mem::zeroed();
2341 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.RegisterOcclusionStatusEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
2342 }
2343 pub unsafe fn UnregisterOcclusionStatus(&self, dwcookie: u32) {
2344 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.UnregisterOcclusionStatus)(::windows_core::Interface::as_raw(self), dwcookie)
2345 }
2346 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2347 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2348 pub unsafe fn CreateSwapChainForComposition<P0, P1>(&self, pdevice: P0, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P1) -> ::windows_core::Result<IDXGISwapChain1>
2349 where
2350 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2351 P1: ::windows_core::IntoParam<IDXGIOutput>,
2352 {
2353 let mut result__ = ::std::mem::zeroed();
2354 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSwapChainForComposition)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2355 }
2356 pub unsafe fn GetCreationFlags(&self) -> u32 {
2357 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetCreationFlags)(::windows_core::Interface::as_raw(self))
2358 }
2359 #[doc = "Required features: `\"Win32_Foundation\"`"]
2360 #[cfg(feature = "Win32_Foundation")]
2361 pub unsafe fn EnumAdapterByLuid<T>(&self, adapterluid: super::super::Foundation::LUID) -> ::windows_core::Result<T>
2362 where
2363 T: ::windows_core::ComInterface,
2364 {
2365 let mut result__ = ::std::ptr::null_mut();
2366 (::windows_core::Interface::vtable(self).base__.base__.base__.EnumAdapterByLuid)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(adapterluid), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2367 }
2368 pub unsafe fn EnumWarpAdapter<T>(&self) -> ::windows_core::Result<T>
2369 where
2370 T: ::windows_core::ComInterface,
2371 {
2372 let mut result__ = ::std::ptr::null_mut();
2373 (::windows_core::Interface::vtable(self).base__.base__.base__.EnumWarpAdapter)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2374 }
2375 pub unsafe fn CheckFeatureSupport(&self, feature: DXGI_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows_core::Result<()> {
2376 (::windows_core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows_core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
2377 }
2378 pub unsafe fn EnumAdapterByGpuPreference<T>(&self, adapter: u32, gpupreference: DXGI_GPU_PREFERENCE) -> ::windows_core::Result<T>
2379 where
2380 T: ::windows_core::ComInterface,
2381 {
2382 let mut result__ = ::std::ptr::null_mut();
2383 (::windows_core::Interface::vtable(self).base__.EnumAdapterByGpuPreference)(::windows_core::Interface::as_raw(self), adapter, gpupreference, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2384 }
2385 #[doc = "Required features: `\"Win32_Foundation\"`"]
2386 #[cfg(feature = "Win32_Foundation")]
2387 pub unsafe fn RegisterAdaptersChangedEvent<P0>(&self, hevent: P0) -> ::windows_core::Result<u32>
2388 where
2389 P0: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2390 {
2391 let mut result__ = ::std::mem::zeroed();
2392 (::windows_core::Interface::vtable(self).RegisterAdaptersChangedEvent)(::windows_core::Interface::as_raw(self), hevent.into_param().abi(), &mut result__).from_abi(result__)
2393 }
2394 pub unsafe fn UnregisterAdaptersChangedEvent(&self, dwcookie: u32) -> ::windows_core::Result<()> {
2395 (::windows_core::Interface::vtable(self).UnregisterAdaptersChangedEvent)(::windows_core::Interface::as_raw(self), dwcookie).ok()
2396 }
2397}
2398::windows_core::imp::interface_hierarchy!(IDXGIFactory7, ::windows_core::IUnknown, IDXGIObject, IDXGIFactory, IDXGIFactory1, IDXGIFactory2, IDXGIFactory3, IDXGIFactory4, IDXGIFactory5, IDXGIFactory6);
2399unsafe impl ::core::marker::Send for IDXGIFactory7 {}
2400unsafe impl ::core::marker::Sync for IDXGIFactory7 {}
2401unsafe impl ::windows_core::Interface for IDXGIFactory7 {
2402 type Vtable = IDXGIFactory7_Vtbl;
2403}
2404unsafe impl ::windows_core::ComInterface for IDXGIFactory7 {
2405 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xa4966eed_76db_44da_84c1_ee9a7afb20a8);
2406}
2407#[repr(C)]
2408#[doc(hidden)]
2409pub struct IDXGIFactory7_Vtbl {
2410 pub base__: IDXGIFactory6_Vtbl,
2411 #[cfg(feature = "Win32_Foundation")]
2412 pub RegisterAdaptersChangedEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hevent: super::super::Foundation::HANDLE, pdwcookie: *mut u32) -> ::windows_core::HRESULT,
2413 #[cfg(not(feature = "Win32_Foundation"))]
2414 RegisterAdaptersChangedEvent: usize,
2415 pub UnregisterAdaptersChangedEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dwcookie: u32) -> ::windows_core::HRESULT,
2416}
2417#[repr(transparent)]
2418#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2419pub struct IDXGIFactoryMedia(::windows_core::IUnknown);
2420impl IDXGIFactoryMedia {
2421 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2422 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2423 pub unsafe fn CreateSwapChainForCompositionSurfaceHandle<P0, P1, P2>(&self, pdevice: P0, hsurface: P1, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: P2) -> ::windows_core::Result<IDXGISwapChain1>
2424 where
2425 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2426 P1: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2427 P2: ::windows_core::IntoParam<IDXGIOutput>,
2428 {
2429 let mut result__ = ::std::mem::zeroed();
2430 (::windows_core::Interface::vtable(self).CreateSwapChainForCompositionSurfaceHandle)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hsurface.into_param().abi(), pdesc, prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2431 }
2432 #[doc = "Required features: `\"Win32_Foundation\"`"]
2433 #[cfg(feature = "Win32_Foundation")]
2434 pub unsafe fn CreateDecodeSwapChainForCompositionSurfaceHandle<P0, P1, P2, P3>(&self, pdevice: P0, hsurface: P1, pdesc: *const DXGI_DECODE_SWAP_CHAIN_DESC, pyuvdecodebuffers: P2, prestricttooutput: P3) -> ::windows_core::Result<IDXGIDecodeSwapChain>
2435 where
2436 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2437 P1: ::windows_core::IntoParam<super::super::Foundation::HANDLE>,
2438 P2: ::windows_core::IntoParam<IDXGIResource>,
2439 P3: ::windows_core::IntoParam<IDXGIOutput>,
2440 {
2441 let mut result__ = ::std::mem::zeroed();
2442 (::windows_core::Interface::vtable(self).CreateDecodeSwapChainForCompositionSurfaceHandle)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), hsurface.into_param().abi(), pdesc, pyuvdecodebuffers.into_param().abi(), prestricttooutput.into_param().abi(), &mut result__).from_abi(result__)
2443 }
2444}
2445::windows_core::imp::interface_hierarchy!(IDXGIFactoryMedia, ::windows_core::IUnknown);
2446unsafe impl ::core::marker::Send for IDXGIFactoryMedia {}
2447unsafe impl ::core::marker::Sync for IDXGIFactoryMedia {}
2448unsafe impl ::windows_core::Interface for IDXGIFactoryMedia {
2449 type Vtable = IDXGIFactoryMedia_Vtbl;
2450}
2451unsafe impl ::windows_core::ComInterface for IDXGIFactoryMedia {
2452 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x41e7d1f2_a591_4f7b_a2e5_fa9c843e1c12);
2453}
2454#[repr(C)]
2455#[doc(hidden)]
2456pub struct IDXGIFactoryMedia_Vtbl {
2457 pub base__: ::windows_core::IUnknown_Vtbl,
2458 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2459 pub CreateSwapChainForCompositionSurfaceHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, hsurface: super::super::Foundation::HANDLE, pdesc: *const DXGI_SWAP_CHAIN_DESC1, prestricttooutput: *mut ::core::ffi::c_void, ppswapchain: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2460 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
2461 CreateSwapChainForCompositionSurfaceHandle: usize,
2462 #[cfg(feature = "Win32_Foundation")]
2463 pub CreateDecodeSwapChainForCompositionSurfaceHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, hsurface: super::super::Foundation::HANDLE, pdesc: *const DXGI_DECODE_SWAP_CHAIN_DESC, pyuvdecodebuffers: *mut ::core::ffi::c_void, prestricttooutput: *mut ::core::ffi::c_void, ppswapchain: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2464 #[cfg(not(feature = "Win32_Foundation"))]
2465 CreateDecodeSwapChainForCompositionSurfaceHandle: usize,
2466}
2467#[repr(transparent)]
2468#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2469pub struct IDXGIInfoQueue(::windows_core::IUnknown);
2470impl IDXGIInfoQueue {
2471 pub unsafe fn SetMessageCountLimit(&self, producer: ::windows_core::GUID, messagecountlimit: u64) -> ::windows_core::Result<()> {
2472 (::windows_core::Interface::vtable(self).SetMessageCountLimit)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), messagecountlimit).ok()
2473 }
2474 pub unsafe fn ClearStoredMessages(&self, producer: ::windows_core::GUID) {
2475 (::windows_core::Interface::vtable(self).ClearStoredMessages)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2476 }
2477 pub unsafe fn GetMessage(&self, producer: ::windows_core::GUID, messageindex: u64, pmessage: ::core::option::Option<*mut DXGI_INFO_QUEUE_MESSAGE>, pmessagebytelength: *mut usize) -> ::windows_core::Result<()> {
2478 (::windows_core::Interface::vtable(self).GetMessage)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), messageindex, ::core::mem::transmute(pmessage.unwrap_or(::std::ptr::null_mut())), pmessagebytelength).ok()
2479 }
2480 pub unsafe fn GetNumStoredMessagesAllowedByRetrievalFilters(&self, producer: ::windows_core::GUID) -> u64 {
2481 (::windows_core::Interface::vtable(self).GetNumStoredMessagesAllowedByRetrievalFilters)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2482 }
2483 pub unsafe fn GetNumStoredMessages(&self, producer: ::windows_core::GUID) -> u64 {
2484 (::windows_core::Interface::vtable(self).GetNumStoredMessages)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2485 }
2486 pub unsafe fn GetNumMessagesDiscardedByMessageCountLimit(&self, producer: ::windows_core::GUID) -> u64 {
2487 (::windows_core::Interface::vtable(self).GetNumMessagesDiscardedByMessageCountLimit)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2488 }
2489 pub unsafe fn GetMessageCountLimit(&self, producer: ::windows_core::GUID) -> u64 {
2490 (::windows_core::Interface::vtable(self).GetMessageCountLimit)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2491 }
2492 pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self, producer: ::windows_core::GUID) -> u64 {
2493 (::windows_core::Interface::vtable(self).GetNumMessagesAllowedByStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2494 }
2495 pub unsafe fn GetNumMessagesDeniedByStorageFilter(&self, producer: ::windows_core::GUID) -> u64 {
2496 (::windows_core::Interface::vtable(self).GetNumMessagesDeniedByStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2497 }
2498 pub unsafe fn AddStorageFilterEntries(&self, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::Result<()> {
2499 (::windows_core::Interface::vtable(self).AddStorageFilterEntries)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), pfilter).ok()
2500 }
2501 pub unsafe fn GetStorageFilter(&self, producer: ::windows_core::GUID, pfilter: ::core::option::Option<*mut DXGI_INFO_QUEUE_FILTER>, pfilterbytelength: *mut usize) -> ::windows_core::Result<()> {
2502 (::windows_core::Interface::vtable(self).GetStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), ::core::mem::transmute(pfilter.unwrap_or(::std::ptr::null_mut())), pfilterbytelength).ok()
2503 }
2504 pub unsafe fn ClearStorageFilter(&self, producer: ::windows_core::GUID) {
2505 (::windows_core::Interface::vtable(self).ClearStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2506 }
2507 pub unsafe fn PushEmptyStorageFilter(&self, producer: ::windows_core::GUID) -> ::windows_core::Result<()> {
2508 (::windows_core::Interface::vtable(self).PushEmptyStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer)).ok()
2509 }
2510 pub unsafe fn PushDenyAllStorageFilter(&self, producer: ::windows_core::GUID) -> ::windows_core::Result<()> {
2511 (::windows_core::Interface::vtable(self).PushDenyAllStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer)).ok()
2512 }
2513 pub unsafe fn PushCopyOfStorageFilter(&self, producer: ::windows_core::GUID) -> ::windows_core::Result<()> {
2514 (::windows_core::Interface::vtable(self).PushCopyOfStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer)).ok()
2515 }
2516 pub unsafe fn PushStorageFilter(&self, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::Result<()> {
2517 (::windows_core::Interface::vtable(self).PushStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), pfilter).ok()
2518 }
2519 pub unsafe fn PopStorageFilter(&self, producer: ::windows_core::GUID) {
2520 (::windows_core::Interface::vtable(self).PopStorageFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2521 }
2522 pub unsafe fn GetStorageFilterStackSize(&self, producer: ::windows_core::GUID) -> u32 {
2523 (::windows_core::Interface::vtable(self).GetStorageFilterStackSize)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2524 }
2525 pub unsafe fn AddRetrievalFilterEntries(&self, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::Result<()> {
2526 (::windows_core::Interface::vtable(self).AddRetrievalFilterEntries)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), pfilter).ok()
2527 }
2528 pub unsafe fn GetRetrievalFilter(&self, producer: ::windows_core::GUID, pfilter: ::core::option::Option<*mut DXGI_INFO_QUEUE_FILTER>, pfilterbytelength: *mut usize) -> ::windows_core::Result<()> {
2529 (::windows_core::Interface::vtable(self).GetRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), ::core::mem::transmute(pfilter.unwrap_or(::std::ptr::null_mut())), pfilterbytelength).ok()
2530 }
2531 pub unsafe fn ClearRetrievalFilter(&self, producer: ::windows_core::GUID) {
2532 (::windows_core::Interface::vtable(self).ClearRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2533 }
2534 pub unsafe fn PushEmptyRetrievalFilter(&self, producer: ::windows_core::GUID) -> ::windows_core::Result<()> {
2535 (::windows_core::Interface::vtable(self).PushEmptyRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer)).ok()
2536 }
2537 pub unsafe fn PushDenyAllRetrievalFilter(&self, producer: ::windows_core::GUID) -> ::windows_core::Result<()> {
2538 (::windows_core::Interface::vtable(self).PushDenyAllRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer)).ok()
2539 }
2540 pub unsafe fn PushCopyOfRetrievalFilter(&self, producer: ::windows_core::GUID) -> ::windows_core::Result<()> {
2541 (::windows_core::Interface::vtable(self).PushCopyOfRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer)).ok()
2542 }
2543 pub unsafe fn PushRetrievalFilter(&self, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::Result<()> {
2544 (::windows_core::Interface::vtable(self).PushRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), pfilter).ok()
2545 }
2546 pub unsafe fn PopRetrievalFilter(&self, producer: ::windows_core::GUID) {
2547 (::windows_core::Interface::vtable(self).PopRetrievalFilter)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2548 }
2549 pub unsafe fn GetRetrievalFilterStackSize(&self, producer: ::windows_core::GUID) -> u32 {
2550 (::windows_core::Interface::vtable(self).GetRetrievalFilterStackSize)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2551 }
2552 pub unsafe fn AddMessage<P0>(&self, producer: ::windows_core::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, id: i32, pdescription: P0) -> ::windows_core::Result<()>
2553 where
2554 P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
2555 {
2556 (::windows_core::Interface::vtable(self).AddMessage)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), category, severity, id, pdescription.into_param().abi()).ok()
2557 }
2558 pub unsafe fn AddApplicationMessage<P0>(&self, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, pdescription: P0) -> ::windows_core::Result<()>
2559 where
2560 P0: ::windows_core::IntoParam<::windows_core::PCSTR>,
2561 {
2562 (::windows_core::Interface::vtable(self).AddApplicationMessage)(::windows_core::Interface::as_raw(self), severity, pdescription.into_param().abi()).ok()
2563 }
2564 #[doc = "Required features: `\"Win32_Foundation\"`"]
2565 #[cfg(feature = "Win32_Foundation")]
2566 pub unsafe fn SetBreakOnCategory<P0>(&self, producer: ::windows_core::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, benable: P0) -> ::windows_core::Result<()>
2567 where
2568 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
2569 {
2570 (::windows_core::Interface::vtable(self).SetBreakOnCategory)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), category, benable.into_param().abi()).ok()
2571 }
2572 #[doc = "Required features: `\"Win32_Foundation\"`"]
2573 #[cfg(feature = "Win32_Foundation")]
2574 pub unsafe fn SetBreakOnSeverity<P0>(&self, producer: ::windows_core::GUID, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, benable: P0) -> ::windows_core::Result<()>
2575 where
2576 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
2577 {
2578 (::windows_core::Interface::vtable(self).SetBreakOnSeverity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), severity, benable.into_param().abi()).ok()
2579 }
2580 #[doc = "Required features: `\"Win32_Foundation\"`"]
2581 #[cfg(feature = "Win32_Foundation")]
2582 pub unsafe fn SetBreakOnID<P0>(&self, producer: ::windows_core::GUID, id: i32, benable: P0) -> ::windows_core::Result<()>
2583 where
2584 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
2585 {
2586 (::windows_core::Interface::vtable(self).SetBreakOnID)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), id, benable.into_param().abi()).ok()
2587 }
2588 #[doc = "Required features: `\"Win32_Foundation\"`"]
2589 #[cfg(feature = "Win32_Foundation")]
2590 pub unsafe fn GetBreakOnCategory(&self, producer: ::windows_core::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL {
2591 (::windows_core::Interface::vtable(self).GetBreakOnCategory)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), category)
2592 }
2593 #[doc = "Required features: `\"Win32_Foundation\"`"]
2594 #[cfg(feature = "Win32_Foundation")]
2595 pub unsafe fn GetBreakOnSeverity(&self, producer: ::windows_core::GUID, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL {
2596 (::windows_core::Interface::vtable(self).GetBreakOnSeverity)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), severity)
2597 }
2598 #[doc = "Required features: `\"Win32_Foundation\"`"]
2599 #[cfg(feature = "Win32_Foundation")]
2600 pub unsafe fn GetBreakOnID(&self, producer: ::windows_core::GUID, id: i32) -> super::super::Foundation::BOOL {
2601 (::windows_core::Interface::vtable(self).GetBreakOnID)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), id)
2602 }
2603 #[doc = "Required features: `\"Win32_Foundation\"`"]
2604 #[cfg(feature = "Win32_Foundation")]
2605 pub unsafe fn SetMuteDebugOutput<P0>(&self, producer: ::windows_core::GUID, bmute: P0)
2606 where
2607 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
2608 {
2609 (::windows_core::Interface::vtable(self).SetMuteDebugOutput)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer), bmute.into_param().abi())
2610 }
2611 #[doc = "Required features: `\"Win32_Foundation\"`"]
2612 #[cfg(feature = "Win32_Foundation")]
2613 pub unsafe fn GetMuteDebugOutput(&self, producer: ::windows_core::GUID) -> super::super::Foundation::BOOL {
2614 (::windows_core::Interface::vtable(self).GetMuteDebugOutput)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(producer))
2615 }
2616}
2617::windows_core::imp::interface_hierarchy!(IDXGIInfoQueue, ::windows_core::IUnknown);
2618unsafe impl ::core::marker::Send for IDXGIInfoQueue {}
2619unsafe impl ::core::marker::Sync for IDXGIInfoQueue {}
2620unsafe impl ::windows_core::Interface for IDXGIInfoQueue {
2621 type Vtable = IDXGIInfoQueue_Vtbl;
2622}
2623unsafe impl ::windows_core::ComInterface for IDXGIInfoQueue {
2624 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xd67441c7_672a_476f_9e82_cd55b44949ce);
2625}
2626#[repr(C)]
2627#[doc(hidden)]
2628pub struct IDXGIInfoQueue_Vtbl {
2629 pub base__: ::windows_core::IUnknown_Vtbl,
2630 pub SetMessageCountLimit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, messagecountlimit: u64) -> ::windows_core::HRESULT,
2631 pub ClearStoredMessages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID),
2632 pub GetMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, messageindex: u64, pmessage: *mut DXGI_INFO_QUEUE_MESSAGE, pmessagebytelength: *mut usize) -> ::windows_core::HRESULT,
2633 pub GetNumStoredMessagesAllowedByRetrievalFilters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u64,
2634 pub GetNumStoredMessages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u64,
2635 pub GetNumMessagesDiscardedByMessageCountLimit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u64,
2636 pub GetMessageCountLimit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u64,
2637 pub GetNumMessagesAllowedByStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u64,
2638 pub GetNumMessagesDeniedByStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u64,
2639 pub AddStorageFilterEntries: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::HRESULT,
2640 pub GetStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows_core::HRESULT,
2641 pub ClearStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID),
2642 pub PushEmptyStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> ::windows_core::HRESULT,
2643 pub PushDenyAllStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> ::windows_core::HRESULT,
2644 pub PushCopyOfStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> ::windows_core::HRESULT,
2645 pub PushStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::HRESULT,
2646 pub PopStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID),
2647 pub GetStorageFilterStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u32,
2648 pub AddRetrievalFilterEntries: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::HRESULT,
2649 pub GetRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, pfilter: *mut DXGI_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows_core::HRESULT,
2650 pub ClearRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID),
2651 pub PushEmptyRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> ::windows_core::HRESULT,
2652 pub PushDenyAllRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> ::windows_core::HRESULT,
2653 pub PushCopyOfRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> ::windows_core::HRESULT,
2654 pub PushRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, pfilter: *const DXGI_INFO_QUEUE_FILTER) -> ::windows_core::HRESULT,
2655 pub PopRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID),
2656 pub GetRetrievalFilterStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> u32,
2657 pub AddMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, id: i32, pdescription: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
2658 pub AddApplicationMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, pdescription: ::windows_core::PCSTR) -> ::windows_core::HRESULT,
2659 #[cfg(feature = "Win32_Foundation")]
2660 pub SetBreakOnCategory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY, benable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
2661 #[cfg(not(feature = "Win32_Foundation"))]
2662 SetBreakOnCategory: usize,
2663 #[cfg(feature = "Win32_Foundation")]
2664 pub SetBreakOnSeverity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY, benable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
2665 #[cfg(not(feature = "Win32_Foundation"))]
2666 SetBreakOnSeverity: usize,
2667 #[cfg(feature = "Win32_Foundation")]
2668 pub SetBreakOnID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, id: i32, benable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
2669 #[cfg(not(feature = "Win32_Foundation"))]
2670 SetBreakOnID: usize,
2671 #[cfg(feature = "Win32_Foundation")]
2672 pub GetBreakOnCategory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL,
2673 #[cfg(not(feature = "Win32_Foundation"))]
2674 GetBreakOnCategory: usize,
2675 #[cfg(feature = "Win32_Foundation")]
2676 pub GetBreakOnSeverity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL,
2677 #[cfg(not(feature = "Win32_Foundation"))]
2678 GetBreakOnSeverity: usize,
2679 #[cfg(feature = "Win32_Foundation")]
2680 pub GetBreakOnID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, id: i32) -> super::super::Foundation::BOOL,
2681 #[cfg(not(feature = "Win32_Foundation"))]
2682 GetBreakOnID: usize,
2683 #[cfg(feature = "Win32_Foundation")]
2684 pub SetMuteDebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID, bmute: super::super::Foundation::BOOL),
2685 #[cfg(not(feature = "Win32_Foundation"))]
2686 SetMuteDebugOutput: usize,
2687 #[cfg(feature = "Win32_Foundation")]
2688 pub GetMuteDebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, producer: ::windows_core::GUID) -> super::super::Foundation::BOOL,
2689 #[cfg(not(feature = "Win32_Foundation"))]
2690 GetMuteDebugOutput: usize,
2691}
2692#[repr(transparent)]
2693#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2694pub struct IDXGIKeyedMutex(::windows_core::IUnknown);
2695impl IDXGIKeyedMutex {
2696 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
2697 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
2698 }
2699 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
2700 where
2701 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2702 {
2703 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
2704 }
2705 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
2706 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
2707 }
2708 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
2709 where
2710 T: ::windows_core::ComInterface,
2711 {
2712 let mut result__ = ::std::ptr::null_mut();
2713 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2714 }
2715 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
2716 where
2717 T: ::windows_core::ComInterface,
2718 {
2719 let mut result__ = ::std::ptr::null_mut();
2720 (::windows_core::Interface::vtable(self).base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2721 }
2722 pub unsafe fn AcquireSync(&self, key: u64, dwmilliseconds: u32) -> ::windows_core::Result<()> {
2723 (::windows_core::Interface::vtable(self).AcquireSync)(::windows_core::Interface::as_raw(self), key, dwmilliseconds).ok()
2724 }
2725 pub unsafe fn ReleaseSync(&self, key: u64) -> ::windows_core::Result<()> {
2726 (::windows_core::Interface::vtable(self).ReleaseSync)(::windows_core::Interface::as_raw(self), key).ok()
2727 }
2728}
2729::windows_core::imp::interface_hierarchy!(IDXGIKeyedMutex, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject);
2730unsafe impl ::core::marker::Send for IDXGIKeyedMutex {}
2731unsafe impl ::core::marker::Sync for IDXGIKeyedMutex {}
2732unsafe impl ::windows_core::Interface for IDXGIKeyedMutex {
2733 type Vtable = IDXGIKeyedMutex_Vtbl;
2734}
2735unsafe impl ::windows_core::ComInterface for IDXGIKeyedMutex {
2736 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x9d8e1289_d7b3_465f_8126_250e349af85d);
2737}
2738#[repr(C)]
2739#[doc(hidden)]
2740pub struct IDXGIKeyedMutex_Vtbl {
2741 pub base__: IDXGIDeviceSubObject_Vtbl,
2742 pub AcquireSync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: u64, dwmilliseconds: u32) -> ::windows_core::HRESULT,
2743 pub ReleaseSync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, key: u64) -> ::windows_core::HRESULT,
2744}
2745#[repr(transparent)]
2746#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2747pub struct IDXGIObject(::windows_core::IUnknown);
2748impl IDXGIObject {
2749 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
2750 (::windows_core::Interface::vtable(self).SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
2751 }
2752 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
2753 where
2754 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2755 {
2756 (::windows_core::Interface::vtable(self).SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
2757 }
2758 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
2759 (::windows_core::Interface::vtable(self).GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
2760 }
2761 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
2762 where
2763 T: ::windows_core::ComInterface,
2764 {
2765 let mut result__: *mut c_void = ::std::ptr::null_mut();
2766 (::windows_core::Interface::vtable(self).GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2767 }
2768}
2769::windows_core::imp::interface_hierarchy!(IDXGIObject, ::windows_core::IUnknown);
2770unsafe impl ::core::marker::Send for IDXGIObject {}
2771unsafe impl ::core::marker::Sync for IDXGIObject {}
2772unsafe impl ::windows_core::Interface for IDXGIObject {
2773 type Vtable = IDXGIObject_Vtbl;
2774}
2775unsafe impl ::windows_core::ComInterface for IDXGIObject {
2776 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xaec22fb8_76f3_4639_9be0_28eb43a67a2e);
2777}
2778#[repr(C)]
2779#[doc(hidden)]
2780pub struct IDXGIObject_Vtbl {
2781 pub base__: ::windows_core::IUnknown_Vtbl,
2782 pub SetPrivateData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
2783 pub SetPrivateDataInterface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *const ::windows_core::GUID, punknown: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2784 pub GetPrivateData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2785 pub GetParent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppparent: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2786}
2787#[repr(transparent)]
2788#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2789pub struct IDXGIOutput(::windows_core::IUnknown);
2790impl IDXGIOutput {
2791 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
2792 (::windows_core::Interface::vtable(self).base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
2793 }
2794 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
2795 where
2796 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2797 {
2798 (::windows_core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
2799 }
2800 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
2801 (::windows_core::Interface::vtable(self).base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
2802 }
2803 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
2804 where
2805 T: ::windows_core::ComInterface,
2806 {
2807 let mut result__ = ::std::ptr::null_mut();
2808 (::windows_core::Interface::vtable(self).base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2809 }
2810 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
2811 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
2812 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
2813 (::windows_core::Interface::vtable(self).GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
2814 }
2815 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2816 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2817 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
2818 (::windows_core::Interface::vtable(self).GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
2819 }
2820 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2821 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2822 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
2823 where
2824 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2825 {
2826 (::windows_core::Interface::vtable(self).FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
2827 }
2828 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
2829 (::windows_core::Interface::vtable(self).WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
2830 }
2831 #[doc = "Required features: `\"Win32_Foundation\"`"]
2832 #[cfg(feature = "Win32_Foundation")]
2833 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
2834 where
2835 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2836 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
2837 {
2838 (::windows_core::Interface::vtable(self).TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
2839 }
2840 pub unsafe fn ReleaseOwnership(&self) {
2841 (::windows_core::Interface::vtable(self).ReleaseOwnership)(::windows_core::Interface::as_raw(self))
2842 }
2843 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2844 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2845 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
2846 (::windows_core::Interface::vtable(self).GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
2847 }
2848 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2849 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2850 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
2851 (::windows_core::Interface::vtable(self).SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
2852 }
2853 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2854 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2855 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
2856 (::windows_core::Interface::vtable(self).GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
2857 }
2858 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
2859 where
2860 P0: ::windows_core::IntoParam<IDXGISurface>,
2861 {
2862 (::windows_core::Interface::vtable(self).SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
2863 }
2864 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
2865 where
2866 P0: ::windows_core::IntoParam<IDXGISurface>,
2867 {
2868 (::windows_core::Interface::vtable(self).GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
2869 }
2870 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
2871 (::windows_core::Interface::vtable(self).GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
2872 }
2873}
2874::windows_core::imp::interface_hierarchy!(IDXGIOutput, ::windows_core::IUnknown, IDXGIObject);
2875unsafe impl ::core::marker::Send for IDXGIOutput {}
2876unsafe impl ::core::marker::Sync for IDXGIOutput {}
2877unsafe impl ::windows_core::Interface for IDXGIOutput {
2878 type Vtable = IDXGIOutput_Vtbl;
2879}
2880unsafe impl ::windows_core::ComInterface for IDXGIOutput {
2881 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xae02eedb_c735_4690_8d52_5a8dc20213aa);
2882}
2883#[repr(C)]
2884#[doc(hidden)]
2885pub struct IDXGIOutput_Vtbl {
2886 pub base__: IDXGIObject_Vtbl,
2887 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
2888 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::HRESULT,
2889 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi")))]
2890 GetDesc: usize,
2891 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2892 pub GetDisplayModeList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut Common::DXGI_MODE_DESC) -> ::windows_core::HRESULT,
2893 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2894 GetDisplayModeList: usize,
2895 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2896 pub FindClosestMatchingMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2897 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2898 FindClosestMatchingMode: usize,
2899 pub WaitForVBlank: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2900 #[cfg(feature = "Win32_Foundation")]
2901 pub TakeOwnership: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, exclusive: super::super::Foundation::BOOL) -> ::windows_core::HRESULT,
2902 #[cfg(not(feature = "Win32_Foundation"))]
2903 TakeOwnership: usize,
2904 pub ReleaseOwnership: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
2905 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2906 pub GetGammaControlCapabilities: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::HRESULT,
2907 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
2908 GetGammaControlCapabilities: usize,
2909 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2910 pub SetGammaControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::HRESULT,
2911 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2912 SetGammaControl: usize,
2913 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2914 pub GetGammaControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::HRESULT,
2915 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2916 GetGammaControl: usize,
2917 pub SetDisplaySurface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pscanoutsurface: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2918 pub GetDisplaySurfaceData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdestination: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
2919 pub GetFrameStatistics: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::HRESULT,
2920}
2921#[repr(transparent)]
2922#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
2923pub struct IDXGIOutput1(::windows_core::IUnknown);
2924impl IDXGIOutput1 {
2925 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
2926 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
2927 }
2928 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
2929 where
2930 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2931 {
2932 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
2933 }
2934 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
2935 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
2936 }
2937 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
2938 where
2939 T: ::windows_core::ComInterface,
2940 {
2941 let mut result__ = ::std::ptr::null_mut();
2942 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
2943 }
2944 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
2945 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
2946 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
2947 (::windows_core::Interface::vtable(self).base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
2948 }
2949 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2950 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2951 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
2952 (::windows_core::Interface::vtable(self).base__.GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
2953 }
2954 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2955 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2956 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
2957 where
2958 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2959 {
2960 (::windows_core::Interface::vtable(self).base__.FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
2961 }
2962 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
2963 (::windows_core::Interface::vtable(self).base__.WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
2964 }
2965 #[doc = "Required features: `\"Win32_Foundation\"`"]
2966 #[cfg(feature = "Win32_Foundation")]
2967 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
2968 where
2969 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
2970 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
2971 {
2972 (::windows_core::Interface::vtable(self).base__.TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
2973 }
2974 pub unsafe fn ReleaseOwnership(&self) {
2975 (::windows_core::Interface::vtable(self).base__.ReleaseOwnership)(::windows_core::Interface::as_raw(self))
2976 }
2977 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
2978 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2979 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
2980 (::windows_core::Interface::vtable(self).base__.GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
2981 }
2982 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2983 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2984 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
2985 (::windows_core::Interface::vtable(self).base__.SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
2986 }
2987 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
2988 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2989 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
2990 (::windows_core::Interface::vtable(self).base__.GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
2991 }
2992 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
2993 where
2994 P0: ::windows_core::IntoParam<IDXGISurface>,
2995 {
2996 (::windows_core::Interface::vtable(self).base__.SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
2997 }
2998 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
2999 where
3000 P0: ::windows_core::IntoParam<IDXGISurface>,
3001 {
3002 (::windows_core::Interface::vtable(self).base__.GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3003 }
3004 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
3005 (::windows_core::Interface::vtable(self).base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
3006 }
3007 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3008 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3009 pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut DXGI_MODE_DESC1>) -> ::windows_core::Result<()> {
3010 (::windows_core::Interface::vtable(self).GetDisplayModeList1)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3011 }
3012 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3013 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3014 pub unsafe fn FindClosestMatchingMode1<P0>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: P0) -> ::windows_core::Result<()>
3015 where
3016 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3017 {
3018 (::windows_core::Interface::vtable(self).FindClosestMatchingMode1)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3019 }
3020 pub unsafe fn GetDisplaySurfaceData1<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3021 where
3022 P0: ::windows_core::IntoParam<IDXGIResource>,
3023 {
3024 (::windows_core::Interface::vtable(self).GetDisplaySurfaceData1)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3025 }
3026 pub unsafe fn DuplicateOutput<P0>(&self, pdevice: P0) -> ::windows_core::Result<IDXGIOutputDuplication>
3027 where
3028 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3029 {
3030 let mut result__ = ::std::mem::zeroed();
3031 (::windows_core::Interface::vtable(self).DuplicateOutput)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), &mut result__).from_abi(result__)
3032 }
3033}
3034::windows_core::imp::interface_hierarchy!(IDXGIOutput1, ::windows_core::IUnknown, IDXGIObject, IDXGIOutput);
3035unsafe impl ::core::marker::Send for IDXGIOutput1 {}
3036unsafe impl ::core::marker::Sync for IDXGIOutput1 {}
3037unsafe impl ::windows_core::Interface for IDXGIOutput1 {
3038 type Vtable = IDXGIOutput1_Vtbl;
3039}
3040unsafe impl ::windows_core::ComInterface for IDXGIOutput1 {
3041 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x00cddea8_939b_4b83_a340_a685226666cc);
3042}
3043#[repr(C)]
3044#[doc(hidden)]
3045pub struct IDXGIOutput1_Vtbl {
3046 pub base__: IDXGIOutput_Vtbl,
3047 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3048 pub GetDisplayModeList1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: *mut DXGI_MODE_DESC1) -> ::windows_core::HRESULT,
3049 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
3050 GetDisplayModeList1: usize,
3051 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3052 pub FindClosestMatchingMode1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3053 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
3054 FindClosestMatchingMode1: usize,
3055 pub GetDisplaySurfaceData1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdestination: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3056 pub DuplicateOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, ppoutputduplication: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3057}
3058#[repr(transparent)]
3059#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3060pub struct IDXGIOutput2(::windows_core::IUnknown);
3061impl IDXGIOutput2 {
3062 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3063 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3064 }
3065 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3066 where
3067 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3068 {
3069 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3070 }
3071 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3072 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3073 }
3074 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3075 where
3076 T: ::windows_core::ComInterface,
3077 {
3078 let mut result__ = ::std::ptr::null_mut();
3079 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3080 }
3081 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
3082 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3083 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
3084 (::windows_core::Interface::vtable(self).base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
3085 }
3086 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3087 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3088 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
3089 (::windows_core::Interface::vtable(self).base__.base__.GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3090 }
3091 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3092 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3093 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
3094 where
3095 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3096 {
3097 (::windows_core::Interface::vtable(self).base__.base__.FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3098 }
3099 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
3100 (::windows_core::Interface::vtable(self).base__.base__.WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
3101 }
3102 #[doc = "Required features: `\"Win32_Foundation\"`"]
3103 #[cfg(feature = "Win32_Foundation")]
3104 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
3105 where
3106 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3107 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
3108 {
3109 (::windows_core::Interface::vtable(self).base__.base__.TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
3110 }
3111 pub unsafe fn ReleaseOwnership(&self) {
3112 (::windows_core::Interface::vtable(self).base__.base__.ReleaseOwnership)(::windows_core::Interface::as_raw(self))
3113 }
3114 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3115 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3116 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
3117 (::windows_core::Interface::vtable(self).base__.base__.GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
3118 }
3119 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3120 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3121 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3122 (::windows_core::Interface::vtable(self).base__.base__.SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3123 }
3124 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3125 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3126 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3127 (::windows_core::Interface::vtable(self).base__.base__.GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3128 }
3129 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
3130 where
3131 P0: ::windows_core::IntoParam<IDXGISurface>,
3132 {
3133 (::windows_core::Interface::vtable(self).base__.base__.SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
3134 }
3135 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3136 where
3137 P0: ::windows_core::IntoParam<IDXGISurface>,
3138 {
3139 (::windows_core::Interface::vtable(self).base__.base__.GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3140 }
3141 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
3142 (::windows_core::Interface::vtable(self).base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
3143 }
3144 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3145 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3146 pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut DXGI_MODE_DESC1>) -> ::windows_core::Result<()> {
3147 (::windows_core::Interface::vtable(self).base__.GetDisplayModeList1)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3148 }
3149 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3150 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3151 pub unsafe fn FindClosestMatchingMode1<P0>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: P0) -> ::windows_core::Result<()>
3152 where
3153 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3154 {
3155 (::windows_core::Interface::vtable(self).base__.FindClosestMatchingMode1)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3156 }
3157 pub unsafe fn GetDisplaySurfaceData1<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3158 where
3159 P0: ::windows_core::IntoParam<IDXGIResource>,
3160 {
3161 (::windows_core::Interface::vtable(self).base__.GetDisplaySurfaceData1)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3162 }
3163 pub unsafe fn DuplicateOutput<P0>(&self, pdevice: P0) -> ::windows_core::Result<IDXGIOutputDuplication>
3164 where
3165 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3166 {
3167 let mut result__ = ::std::mem::zeroed();
3168 (::windows_core::Interface::vtable(self).base__.DuplicateOutput)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), &mut result__).from_abi(result__)
3169 }
3170 #[doc = "Required features: `\"Win32_Foundation\"`"]
3171 #[cfg(feature = "Win32_Foundation")]
3172 pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
3173 (::windows_core::Interface::vtable(self).SupportsOverlays)(::windows_core::Interface::as_raw(self))
3174 }
3175}
3176::windows_core::imp::interface_hierarchy!(IDXGIOutput2, ::windows_core::IUnknown, IDXGIObject, IDXGIOutput, IDXGIOutput1);
3177unsafe impl ::core::marker::Send for IDXGIOutput2 {}
3178unsafe impl ::core::marker::Sync for IDXGIOutput2 {}
3179unsafe impl ::windows_core::Interface for IDXGIOutput2 {
3180 type Vtable = IDXGIOutput2_Vtbl;
3181}
3182unsafe impl ::windows_core::ComInterface for IDXGIOutput2 {
3183 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x595e39d1_2724_4663_99b1_da969de28364);
3184}
3185#[repr(C)]
3186#[doc(hidden)]
3187pub struct IDXGIOutput2_Vtbl {
3188 pub base__: IDXGIOutput1_Vtbl,
3189 #[cfg(feature = "Win32_Foundation")]
3190 pub SupportsOverlays: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
3191 #[cfg(not(feature = "Win32_Foundation"))]
3192 SupportsOverlays: usize,
3193}
3194#[repr(transparent)]
3195#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3196pub struct IDXGIOutput3(::windows_core::IUnknown);
3197impl IDXGIOutput3 {
3198 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3199 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3200 }
3201 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3202 where
3203 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3204 {
3205 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3206 }
3207 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3208 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3209 }
3210 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3211 where
3212 T: ::windows_core::ComInterface,
3213 {
3214 let mut result__ = ::std::ptr::null_mut();
3215 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3216 }
3217 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
3218 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3219 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
3220 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
3221 }
3222 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3223 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3224 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
3225 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3226 }
3227 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3228 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3229 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
3230 where
3231 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3232 {
3233 (::windows_core::Interface::vtable(self).base__.base__.base__.FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3234 }
3235 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
3236 (::windows_core::Interface::vtable(self).base__.base__.base__.WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
3237 }
3238 #[doc = "Required features: `\"Win32_Foundation\"`"]
3239 #[cfg(feature = "Win32_Foundation")]
3240 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
3241 where
3242 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3243 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
3244 {
3245 (::windows_core::Interface::vtable(self).base__.base__.base__.TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
3246 }
3247 pub unsafe fn ReleaseOwnership(&self) {
3248 (::windows_core::Interface::vtable(self).base__.base__.base__.ReleaseOwnership)(::windows_core::Interface::as_raw(self))
3249 }
3250 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3251 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3252 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
3253 (::windows_core::Interface::vtable(self).base__.base__.base__.GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
3254 }
3255 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3256 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3257 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3258 (::windows_core::Interface::vtable(self).base__.base__.base__.SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3259 }
3260 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3261 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3262 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3263 (::windows_core::Interface::vtable(self).base__.base__.base__.GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3264 }
3265 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
3266 where
3267 P0: ::windows_core::IntoParam<IDXGISurface>,
3268 {
3269 (::windows_core::Interface::vtable(self).base__.base__.base__.SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
3270 }
3271 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3272 where
3273 P0: ::windows_core::IntoParam<IDXGISurface>,
3274 {
3275 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3276 }
3277 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
3278 (::windows_core::Interface::vtable(self).base__.base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
3279 }
3280 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3281 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3282 pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut DXGI_MODE_DESC1>) -> ::windows_core::Result<()> {
3283 (::windows_core::Interface::vtable(self).base__.base__.GetDisplayModeList1)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3284 }
3285 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3286 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3287 pub unsafe fn FindClosestMatchingMode1<P0>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: P0) -> ::windows_core::Result<()>
3288 where
3289 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3290 {
3291 (::windows_core::Interface::vtable(self).base__.base__.FindClosestMatchingMode1)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3292 }
3293 pub unsafe fn GetDisplaySurfaceData1<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3294 where
3295 P0: ::windows_core::IntoParam<IDXGIResource>,
3296 {
3297 (::windows_core::Interface::vtable(self).base__.base__.GetDisplaySurfaceData1)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3298 }
3299 pub unsafe fn DuplicateOutput<P0>(&self, pdevice: P0) -> ::windows_core::Result<IDXGIOutputDuplication>
3300 where
3301 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3302 {
3303 let mut result__ = ::std::mem::zeroed();
3304 (::windows_core::Interface::vtable(self).base__.base__.DuplicateOutput)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), &mut result__).from_abi(result__)
3305 }
3306 #[doc = "Required features: `\"Win32_Foundation\"`"]
3307 #[cfg(feature = "Win32_Foundation")]
3308 pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
3309 (::windows_core::Interface::vtable(self).base__.SupportsOverlays)(::windows_core::Interface::as_raw(self))
3310 }
3311 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3312 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3313 pub unsafe fn CheckOverlaySupport<P0>(&self, enumformat: Common::DXGI_FORMAT, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3314 where
3315 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3316 {
3317 let mut result__ = ::std::mem::zeroed();
3318 (::windows_core::Interface::vtable(self).CheckOverlaySupport)(::windows_core::Interface::as_raw(self), enumformat, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3319 }
3320}
3321::windows_core::imp::interface_hierarchy!(IDXGIOutput3, ::windows_core::IUnknown, IDXGIObject, IDXGIOutput, IDXGIOutput1, IDXGIOutput2);
3322unsafe impl ::core::marker::Send for IDXGIOutput3 {}
3323unsafe impl ::core::marker::Sync for IDXGIOutput3 {}
3324unsafe impl ::windows_core::Interface for IDXGIOutput3 {
3325 type Vtable = IDXGIOutput3_Vtbl;
3326}
3327unsafe impl ::windows_core::ComInterface for IDXGIOutput3 {
3328 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x8a6bb301_7e7e_41f4_a8e0_5b32f7f99b18);
3329}
3330#[repr(C)]
3331#[doc(hidden)]
3332pub struct IDXGIOutput3_Vtbl {
3333 pub base__: IDXGIOutput2_Vtbl,
3334 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3335 pub CheckOverlaySupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enumformat: Common::DXGI_FORMAT, pconcerneddevice: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows_core::HRESULT,
3336 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
3337 CheckOverlaySupport: usize,
3338}
3339#[repr(transparent)]
3340#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3341pub struct IDXGIOutput4(::windows_core::IUnknown);
3342impl IDXGIOutput4 {
3343 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3344 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3345 }
3346 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3347 where
3348 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3349 {
3350 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3351 }
3352 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3353 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3354 }
3355 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3356 where
3357 T: ::windows_core::ComInterface,
3358 {
3359 let mut result__ = ::std::ptr::null_mut();
3360 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3361 }
3362 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
3363 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3364 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
3365 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
3366 }
3367 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3368 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3369 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
3370 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3371 }
3372 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3373 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3374 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
3375 where
3376 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3377 {
3378 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3379 }
3380 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
3381 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
3382 }
3383 #[doc = "Required features: `\"Win32_Foundation\"`"]
3384 #[cfg(feature = "Win32_Foundation")]
3385 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
3386 where
3387 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3388 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
3389 {
3390 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
3391 }
3392 pub unsafe fn ReleaseOwnership(&self) {
3393 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.ReleaseOwnership)(::windows_core::Interface::as_raw(self))
3394 }
3395 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3396 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3397 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
3398 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
3399 }
3400 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3401 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3402 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3403 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3404 }
3405 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3406 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3407 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3408 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3409 }
3410 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
3411 where
3412 P0: ::windows_core::IntoParam<IDXGISurface>,
3413 {
3414 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
3415 }
3416 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3417 where
3418 P0: ::windows_core::IntoParam<IDXGISurface>,
3419 {
3420 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3421 }
3422 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
3423 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
3424 }
3425 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3426 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3427 pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut DXGI_MODE_DESC1>) -> ::windows_core::Result<()> {
3428 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDisplayModeList1)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3429 }
3430 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3431 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3432 pub unsafe fn FindClosestMatchingMode1<P0>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: P0) -> ::windows_core::Result<()>
3433 where
3434 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3435 {
3436 (::windows_core::Interface::vtable(self).base__.base__.base__.FindClosestMatchingMode1)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3437 }
3438 pub unsafe fn GetDisplaySurfaceData1<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3439 where
3440 P0: ::windows_core::IntoParam<IDXGIResource>,
3441 {
3442 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDisplaySurfaceData1)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3443 }
3444 pub unsafe fn DuplicateOutput<P0>(&self, pdevice: P0) -> ::windows_core::Result<IDXGIOutputDuplication>
3445 where
3446 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3447 {
3448 let mut result__ = ::std::mem::zeroed();
3449 (::windows_core::Interface::vtable(self).base__.base__.base__.DuplicateOutput)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), &mut result__).from_abi(result__)
3450 }
3451 #[doc = "Required features: `\"Win32_Foundation\"`"]
3452 #[cfg(feature = "Win32_Foundation")]
3453 pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
3454 (::windows_core::Interface::vtable(self).base__.base__.SupportsOverlays)(::windows_core::Interface::as_raw(self))
3455 }
3456 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3457 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3458 pub unsafe fn CheckOverlaySupport<P0>(&self, enumformat: Common::DXGI_FORMAT, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3459 where
3460 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3461 {
3462 let mut result__ = ::std::mem::zeroed();
3463 (::windows_core::Interface::vtable(self).base__.CheckOverlaySupport)(::windows_core::Interface::as_raw(self), enumformat, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3464 }
3465 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3466 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3467 pub unsafe fn CheckOverlayColorSpaceSupport<P0>(&self, format: Common::DXGI_FORMAT, colorspace: Common::DXGI_COLOR_SPACE_TYPE, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3468 where
3469 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3470 {
3471 let mut result__ = ::std::mem::zeroed();
3472 (::windows_core::Interface::vtable(self).CheckOverlayColorSpaceSupport)(::windows_core::Interface::as_raw(self), format, colorspace, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3473 }
3474}
3475::windows_core::imp::interface_hierarchy!(IDXGIOutput4, ::windows_core::IUnknown, IDXGIObject, IDXGIOutput, IDXGIOutput1, IDXGIOutput2, IDXGIOutput3);
3476unsafe impl ::core::marker::Send for IDXGIOutput4 {}
3477unsafe impl ::core::marker::Sync for IDXGIOutput4 {}
3478unsafe impl ::windows_core::Interface for IDXGIOutput4 {
3479 type Vtable = IDXGIOutput4_Vtbl;
3480}
3481unsafe impl ::windows_core::ComInterface for IDXGIOutput4 {
3482 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xdc7dca35_2196_414d_9f53_617884032a60);
3483}
3484#[repr(C)]
3485#[doc(hidden)]
3486pub struct IDXGIOutput4_Vtbl {
3487 pub base__: IDXGIOutput3_Vtbl,
3488 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3489 pub CheckOverlayColorSpaceSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, format: Common::DXGI_FORMAT, colorspace: Common::DXGI_COLOR_SPACE_TYPE, pconcerneddevice: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows_core::HRESULT,
3490 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
3491 CheckOverlayColorSpaceSupport: usize,
3492}
3493#[repr(transparent)]
3494#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3495pub struct IDXGIOutput5(::windows_core::IUnknown);
3496impl IDXGIOutput5 {
3497 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3498 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3499 }
3500 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3501 where
3502 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3503 {
3504 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3505 }
3506 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3507 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3508 }
3509 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3510 where
3511 T: ::windows_core::ComInterface,
3512 {
3513 let mut result__ = ::std::ptr::null_mut();
3514 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3515 }
3516 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
3517 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3518 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
3519 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
3520 }
3521 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3522 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3523 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
3524 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3525 }
3526 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3527 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3528 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
3529 where
3530 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3531 {
3532 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3533 }
3534 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
3535 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
3536 }
3537 #[doc = "Required features: `\"Win32_Foundation\"`"]
3538 #[cfg(feature = "Win32_Foundation")]
3539 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
3540 where
3541 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3542 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
3543 {
3544 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
3545 }
3546 pub unsafe fn ReleaseOwnership(&self) {
3547 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.ReleaseOwnership)(::windows_core::Interface::as_raw(self))
3548 }
3549 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3550 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3551 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
3552 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
3553 }
3554 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3555 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3556 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3557 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3558 }
3559 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3560 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3561 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3562 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3563 }
3564 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
3565 where
3566 P0: ::windows_core::IntoParam<IDXGISurface>,
3567 {
3568 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
3569 }
3570 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3571 where
3572 P0: ::windows_core::IntoParam<IDXGISurface>,
3573 {
3574 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3575 }
3576 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
3577 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
3578 }
3579 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3580 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3581 pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut DXGI_MODE_DESC1>) -> ::windows_core::Result<()> {
3582 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDisplayModeList1)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3583 }
3584 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3585 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3586 pub unsafe fn FindClosestMatchingMode1<P0>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: P0) -> ::windows_core::Result<()>
3587 where
3588 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3589 {
3590 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.FindClosestMatchingMode1)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3591 }
3592 pub unsafe fn GetDisplaySurfaceData1<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3593 where
3594 P0: ::windows_core::IntoParam<IDXGIResource>,
3595 {
3596 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDisplaySurfaceData1)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3597 }
3598 pub unsafe fn DuplicateOutput<P0>(&self, pdevice: P0) -> ::windows_core::Result<IDXGIOutputDuplication>
3599 where
3600 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3601 {
3602 let mut result__ = ::std::mem::zeroed();
3603 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.DuplicateOutput)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), &mut result__).from_abi(result__)
3604 }
3605 #[doc = "Required features: `\"Win32_Foundation\"`"]
3606 #[cfg(feature = "Win32_Foundation")]
3607 pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
3608 (::windows_core::Interface::vtable(self).base__.base__.base__.SupportsOverlays)(::windows_core::Interface::as_raw(self))
3609 }
3610 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3611 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3612 pub unsafe fn CheckOverlaySupport<P0>(&self, enumformat: Common::DXGI_FORMAT, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3613 where
3614 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3615 {
3616 let mut result__ = ::std::mem::zeroed();
3617 (::windows_core::Interface::vtable(self).base__.base__.CheckOverlaySupport)(::windows_core::Interface::as_raw(self), enumformat, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3618 }
3619 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3620 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3621 pub unsafe fn CheckOverlayColorSpaceSupport<P0>(&self, format: Common::DXGI_FORMAT, colorspace: Common::DXGI_COLOR_SPACE_TYPE, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3622 where
3623 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3624 {
3625 let mut result__ = ::std::mem::zeroed();
3626 (::windows_core::Interface::vtable(self).base__.CheckOverlayColorSpaceSupport)(::windows_core::Interface::as_raw(self), format, colorspace, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3627 }
3628 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3629 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3630 pub unsafe fn DuplicateOutput1<P0>(&self, pdevice: P0, flags: u32, psupportedformats: &[Common::DXGI_FORMAT]) -> ::windows_core::Result<IDXGIOutputDuplication>
3631 where
3632 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3633 {
3634 let mut result__ = ::std::mem::zeroed();
3635 (::windows_core::Interface::vtable(self).DuplicateOutput1)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), flags, psupportedformats.len().try_into().unwrap(), ::core::mem::transmute(psupportedformats.as_ptr()), &mut result__).from_abi(result__)
3636 }
3637}
3638::windows_core::imp::interface_hierarchy!(IDXGIOutput5, ::windows_core::IUnknown, IDXGIObject, IDXGIOutput, IDXGIOutput1, IDXGIOutput2, IDXGIOutput3, IDXGIOutput4);
3639unsafe impl ::core::marker::Send for IDXGIOutput5 {}
3640unsafe impl ::core::marker::Sync for IDXGIOutput5 {}
3641unsafe impl ::windows_core::Interface for IDXGIOutput5 {
3642 type Vtable = IDXGIOutput5_Vtbl;
3643}
3644unsafe impl ::windows_core::ComInterface for IDXGIOutput5 {
3645 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x80a07424_ab52_42eb_833c_0c42fd282d98);
3646}
3647#[repr(C)]
3648#[doc(hidden)]
3649pub struct IDXGIOutput5_Vtbl {
3650 pub base__: IDXGIOutput4_Vtbl,
3651 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3652 pub DuplicateOutput1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdevice: *mut ::core::ffi::c_void, flags: u32, supportedformatscount: u32, psupportedformats: *const Common::DXGI_FORMAT, ppoutputduplication: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3653 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
3654 DuplicateOutput1: usize,
3655}
3656#[repr(transparent)]
3657#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3658pub struct IDXGIOutput6(::windows_core::IUnknown);
3659impl IDXGIOutput6 {
3660 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3661 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3662 }
3663 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3664 where
3665 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3666 {
3667 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3668 }
3669 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3670 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3671 }
3672 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3673 where
3674 T: ::windows_core::ComInterface,
3675 {
3676 let mut result__ = ::std::ptr::null_mut();
3677 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3678 }
3679 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
3680 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3681 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTPUT_DESC) -> ::windows_core::Result<()> {
3682 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
3683 }
3684 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3685 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3686 pub unsafe fn GetDisplayModeList(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut Common::DXGI_MODE_DESC>) -> ::windows_core::Result<()> {
3687 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDisplayModeList)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3688 }
3689 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3690 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3691 pub unsafe fn FindClosestMatchingMode<P0>(&self, pmodetomatch: *const Common::DXGI_MODE_DESC, pclosestmatch: *mut Common::DXGI_MODE_DESC, pconcerneddevice: P0) -> ::windows_core::Result<()>
3692 where
3693 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3694 {
3695 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.FindClosestMatchingMode)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3696 }
3697 pub unsafe fn WaitForVBlank(&self) -> ::windows_core::Result<()> {
3698 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.WaitForVBlank)(::windows_core::Interface::as_raw(self)).ok()
3699 }
3700 #[doc = "Required features: `\"Win32_Foundation\"`"]
3701 #[cfg(feature = "Win32_Foundation")]
3702 pub unsafe fn TakeOwnership<P0, P1>(&self, pdevice: P0, exclusive: P1) -> ::windows_core::Result<()>
3703 where
3704 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3705 P1: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
3706 {
3707 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.TakeOwnership)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), exclusive.into_param().abi()).ok()
3708 }
3709 pub unsafe fn ReleaseOwnership(&self) {
3710 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ReleaseOwnership)(::windows_core::Interface::as_raw(self))
3711 }
3712 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3713 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3714 pub unsafe fn GetGammaControlCapabilities(&self, pgammacaps: *mut Common::DXGI_GAMMA_CONTROL_CAPABILITIES) -> ::windows_core::Result<()> {
3715 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetGammaControlCapabilities)(::windows_core::Interface::as_raw(self), pgammacaps).ok()
3716 }
3717 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3718 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3719 pub unsafe fn SetGammaControl(&self, parray: *const Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3720 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3721 }
3722 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3723 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3724 pub unsafe fn GetGammaControl(&self, parray: *mut Common::DXGI_GAMMA_CONTROL) -> ::windows_core::Result<()> {
3725 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetGammaControl)(::windows_core::Interface::as_raw(self), parray).ok()
3726 }
3727 pub unsafe fn SetDisplaySurface<P0>(&self, pscanoutsurface: P0) -> ::windows_core::Result<()>
3728 where
3729 P0: ::windows_core::IntoParam<IDXGISurface>,
3730 {
3731 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetDisplaySurface)(::windows_core::Interface::as_raw(self), pscanoutsurface.into_param().abi()).ok()
3732 }
3733 pub unsafe fn GetDisplaySurfaceData<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3734 where
3735 P0: ::windows_core::IntoParam<IDXGISurface>,
3736 {
3737 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDisplaySurfaceData)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3738 }
3739 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
3740 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
3741 }
3742 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3743 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3744 pub unsafe fn GetDisplayModeList1(&self, enumformat: Common::DXGI_FORMAT, flags: u32, pnummodes: *mut u32, pdesc: ::core::option::Option<*mut DXGI_MODE_DESC1>) -> ::windows_core::Result<()> {
3745 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDisplayModeList1)(::windows_core::Interface::as_raw(self), enumformat, flags, pnummodes, ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null_mut()))).ok()
3746 }
3747 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3748 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3749 pub unsafe fn FindClosestMatchingMode1<P0>(&self, pmodetomatch: *const DXGI_MODE_DESC1, pclosestmatch: *mut DXGI_MODE_DESC1, pconcerneddevice: P0) -> ::windows_core::Result<()>
3750 where
3751 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3752 {
3753 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.FindClosestMatchingMode1)(::windows_core::Interface::as_raw(self), pmodetomatch, pclosestmatch, pconcerneddevice.into_param().abi()).ok()
3754 }
3755 pub unsafe fn GetDisplaySurfaceData1<P0>(&self, pdestination: P0) -> ::windows_core::Result<()>
3756 where
3757 P0: ::windows_core::IntoParam<IDXGIResource>,
3758 {
3759 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDisplaySurfaceData1)(::windows_core::Interface::as_raw(self), pdestination.into_param().abi()).ok()
3760 }
3761 pub unsafe fn DuplicateOutput<P0>(&self, pdevice: P0) -> ::windows_core::Result<IDXGIOutputDuplication>
3762 where
3763 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3764 {
3765 let mut result__ = ::std::mem::zeroed();
3766 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.DuplicateOutput)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), &mut result__).from_abi(result__)
3767 }
3768 #[doc = "Required features: `\"Win32_Foundation\"`"]
3769 #[cfg(feature = "Win32_Foundation")]
3770 pub unsafe fn SupportsOverlays(&self) -> super::super::Foundation::BOOL {
3771 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SupportsOverlays)(::windows_core::Interface::as_raw(self))
3772 }
3773 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3774 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3775 pub unsafe fn CheckOverlaySupport<P0>(&self, enumformat: Common::DXGI_FORMAT, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3776 where
3777 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3778 {
3779 let mut result__ = ::std::mem::zeroed();
3780 (::windows_core::Interface::vtable(self).base__.base__.base__.CheckOverlaySupport)(::windows_core::Interface::as_raw(self), enumformat, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3781 }
3782 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3783 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3784 pub unsafe fn CheckOverlayColorSpaceSupport<P0>(&self, format: Common::DXGI_FORMAT, colorspace: Common::DXGI_COLOR_SPACE_TYPE, pconcerneddevice: P0) -> ::windows_core::Result<u32>
3785 where
3786 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3787 {
3788 let mut result__ = ::std::mem::zeroed();
3789 (::windows_core::Interface::vtable(self).base__.base__.CheckOverlayColorSpaceSupport)(::windows_core::Interface::as_raw(self), format, colorspace, pconcerneddevice.into_param().abi(), &mut result__).from_abi(result__)
3790 }
3791 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
3792 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3793 pub unsafe fn DuplicateOutput1<P0>(&self, pdevice: P0, flags: u32, psupportedformats: &[Common::DXGI_FORMAT]) -> ::windows_core::Result<IDXGIOutputDuplication>
3794 where
3795 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3796 {
3797 let mut result__ = ::std::mem::zeroed();
3798 (::windows_core::Interface::vtable(self).base__.DuplicateOutput1)(::windows_core::Interface::as_raw(self), pdevice.into_param().abi(), flags, psupportedformats.len().try_into().unwrap(), ::core::mem::transmute(psupportedformats.as_ptr()), &mut result__).from_abi(result__)
3799 }
3800 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
3801 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3802 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_OUTPUT_DESC1) -> ::windows_core::Result<()> {
3803 (::windows_core::Interface::vtable(self).GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
3804 }
3805 pub unsafe fn CheckHardwareCompositionSupport(&self) -> ::windows_core::Result<u32> {
3806 let mut result__ = ::std::mem::zeroed();
3807 (::windows_core::Interface::vtable(self).CheckHardwareCompositionSupport)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
3808 }
3809}
3810::windows_core::imp::interface_hierarchy!(IDXGIOutput6, ::windows_core::IUnknown, IDXGIObject, IDXGIOutput, IDXGIOutput1, IDXGIOutput2, IDXGIOutput3, IDXGIOutput4, IDXGIOutput5);
3811unsafe impl ::core::marker::Send for IDXGIOutput6 {}
3812unsafe impl ::core::marker::Sync for IDXGIOutput6 {}
3813unsafe impl ::windows_core::Interface for IDXGIOutput6 {
3814 type Vtable = IDXGIOutput6_Vtbl;
3815}
3816unsafe impl ::windows_core::ComInterface for IDXGIOutput6 {
3817 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x068346e8_aaec_4b84_add7_137f513f77a1);
3818}
3819#[repr(C)]
3820#[doc(hidden)]
3821pub struct IDXGIOutput6_Vtbl {
3822 pub base__: IDXGIOutput5_Vtbl,
3823 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
3824 pub GetDesc1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_OUTPUT_DESC1) -> ::windows_core::HRESULT,
3825 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi")))]
3826 GetDesc1: usize,
3827 pub CheckHardwareCompositionSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows_core::HRESULT,
3828}
3829#[repr(transparent)]
3830#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3831pub struct IDXGIOutputDuplication(::windows_core::IUnknown);
3832impl IDXGIOutputDuplication {
3833 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3834 (::windows_core::Interface::vtable(self).base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3835 }
3836 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3837 where
3838 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3839 {
3840 (::windows_core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3841 }
3842 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3843 (::windows_core::Interface::vtable(self).base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3844 }
3845 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3846 where
3847 T: ::windows_core::ComInterface,
3848 {
3849 let mut result__ = ::std::ptr::null_mut();
3850 (::windows_core::Interface::vtable(self).base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3851 }
3852 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
3853 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3854 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_OUTDUPL_DESC) {
3855 (::windows_core::Interface::vtable(self).GetDesc)(::windows_core::Interface::as_raw(self), pdesc)
3856 }
3857 #[doc = "Required features: `\"Win32_Foundation\"`"]
3858 #[cfg(feature = "Win32_Foundation")]
3859 pub unsafe fn AcquireNextFrame(&self, timeoutinmilliseconds: u32, pframeinfo: *mut DXGI_OUTDUPL_FRAME_INFO, ppdesktopresource: *mut ::core::option::Option<IDXGIResource>) -> ::windows_core::Result<()> {
3860 (::windows_core::Interface::vtable(self).AcquireNextFrame)(::windows_core::Interface::as_raw(self), timeoutinmilliseconds, pframeinfo, ::core::mem::transmute(ppdesktopresource)).ok()
3861 }
3862 #[doc = "Required features: `\"Win32_Foundation\"`"]
3863 #[cfg(feature = "Win32_Foundation")]
3864 pub unsafe fn GetFrameDirtyRects(&self, dirtyrectsbuffersize: u32, pdirtyrectsbuffer: *mut super::super::Foundation::RECT, pdirtyrectsbuffersizerequired: *mut u32) -> ::windows_core::Result<()> {
3865 (::windows_core::Interface::vtable(self).GetFrameDirtyRects)(::windows_core::Interface::as_raw(self), dirtyrectsbuffersize, pdirtyrectsbuffer, pdirtyrectsbuffersizerequired).ok()
3866 }
3867 #[doc = "Required features: `\"Win32_Foundation\"`"]
3868 #[cfg(feature = "Win32_Foundation")]
3869 pub unsafe fn GetFrameMoveRects(&self, moverectsbuffersize: u32, pmoverectbuffer: *mut DXGI_OUTDUPL_MOVE_RECT, pmoverectsbuffersizerequired: *mut u32) -> ::windows_core::Result<()> {
3870 (::windows_core::Interface::vtable(self).GetFrameMoveRects)(::windows_core::Interface::as_raw(self), moverectsbuffersize, pmoverectbuffer, pmoverectsbuffersizerequired).ok()
3871 }
3872 #[doc = "Required features: `\"Win32_Foundation\"`"]
3873 #[cfg(feature = "Win32_Foundation")]
3874 pub unsafe fn GetFramePointerShape(&self, pointershapebuffersize: u32, ppointershapebuffer: *mut ::core::ffi::c_void, ppointershapebuffersizerequired: *mut u32, ppointershapeinfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows_core::Result<()> {
3875 (::windows_core::Interface::vtable(self).GetFramePointerShape)(::windows_core::Interface::as_raw(self), pointershapebuffersize, ppointershapebuffer, ppointershapebuffersizerequired, ppointershapeinfo).ok()
3876 }
3877 pub unsafe fn MapDesktopSurface(&self) -> ::windows_core::Result<DXGI_MAPPED_RECT> {
3878 let mut result__ = ::std::mem::zeroed();
3879 (::windows_core::Interface::vtable(self).MapDesktopSurface)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
3880 }
3881 pub unsafe fn UnMapDesktopSurface(&self) -> ::windows_core::Result<()> {
3882 (::windows_core::Interface::vtable(self).UnMapDesktopSurface)(::windows_core::Interface::as_raw(self)).ok()
3883 }
3884 pub unsafe fn ReleaseFrame(&self) -> ::windows_core::Result<()> {
3885 (::windows_core::Interface::vtable(self).ReleaseFrame)(::windows_core::Interface::as_raw(self)).ok()
3886 }
3887}
3888::windows_core::imp::interface_hierarchy!(IDXGIOutputDuplication, ::windows_core::IUnknown, IDXGIObject);
3889unsafe impl ::core::marker::Send for IDXGIOutputDuplication {}
3890unsafe impl ::core::marker::Sync for IDXGIOutputDuplication {}
3891unsafe impl ::windows_core::Interface for IDXGIOutputDuplication {
3892 type Vtable = IDXGIOutputDuplication_Vtbl;
3893}
3894unsafe impl ::windows_core::ComInterface for IDXGIOutputDuplication {
3895 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x191cfac3_a341_470d_b26e_a864f428319c);
3896}
3897#[repr(C)]
3898#[doc(hidden)]
3899pub struct IDXGIOutputDuplication_Vtbl {
3900 pub base__: IDXGIObject_Vtbl,
3901 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3902 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_OUTDUPL_DESC),
3903 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
3904 GetDesc: usize,
3905 #[cfg(feature = "Win32_Foundation")]
3906 pub AcquireNextFrame: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, timeoutinmilliseconds: u32, pframeinfo: *mut DXGI_OUTDUPL_FRAME_INFO, ppdesktopresource: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3907 #[cfg(not(feature = "Win32_Foundation"))]
3908 AcquireNextFrame: usize,
3909 #[cfg(feature = "Win32_Foundation")]
3910 pub GetFrameDirtyRects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dirtyrectsbuffersize: u32, pdirtyrectsbuffer: *mut super::super::Foundation::RECT, pdirtyrectsbuffersizerequired: *mut u32) -> ::windows_core::HRESULT,
3911 #[cfg(not(feature = "Win32_Foundation"))]
3912 GetFrameDirtyRects: usize,
3913 #[cfg(feature = "Win32_Foundation")]
3914 pub GetFrameMoveRects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, moverectsbuffersize: u32, pmoverectbuffer: *mut DXGI_OUTDUPL_MOVE_RECT, pmoverectsbuffersizerequired: *mut u32) -> ::windows_core::HRESULT,
3915 #[cfg(not(feature = "Win32_Foundation"))]
3916 GetFrameMoveRects: usize,
3917 #[cfg(feature = "Win32_Foundation")]
3918 pub GetFramePointerShape: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pointershapebuffersize: u32, ppointershapebuffer: *mut ::core::ffi::c_void, ppointershapebuffersizerequired: *mut u32, ppointershapeinfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO) -> ::windows_core::HRESULT,
3919 #[cfg(not(feature = "Win32_Foundation"))]
3920 GetFramePointerShape: usize,
3921 pub MapDesktopSurface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plockedrect: *mut DXGI_MAPPED_RECT) -> ::windows_core::HRESULT,
3922 pub UnMapDesktopSurface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3923 pub ReleaseFrame: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
3924}
3925#[repr(transparent)]
3926#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3927pub struct IDXGIResource(::windows_core::IUnknown);
3928impl IDXGIResource {
3929 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3930 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
3931 }
3932 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
3933 where
3934 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
3935 {
3936 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
3937 }
3938 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
3939 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
3940 }
3941 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
3942 where
3943 T: ::windows_core::ComInterface,
3944 {
3945 let mut result__ = ::std::ptr::null_mut();
3946 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3947 }
3948 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
3949 where
3950 T: ::windows_core::ComInterface,
3951 {
3952 let mut result__ = ::std::ptr::null_mut();
3953 (::windows_core::Interface::vtable(self).base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
3954 }
3955 #[doc = "Required features: `\"Win32_Foundation\"`"]
3956 #[cfg(feature = "Win32_Foundation")]
3957 pub unsafe fn GetSharedHandle(&self) -> ::windows_core::Result<super::super::Foundation::HANDLE> {
3958 let mut result__ = ::std::mem::zeroed();
3959 (::windows_core::Interface::vtable(self).GetSharedHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
3960 }
3961 pub unsafe fn GetUsage(&self) -> ::windows_core::Result<DXGI_USAGE> {
3962 let mut result__ = ::std::mem::zeroed();
3963 (::windows_core::Interface::vtable(self).GetUsage)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
3964 }
3965 pub unsafe fn SetEvictionPriority(&self, evictionpriority: u32) -> ::windows_core::Result<()> {
3966 (::windows_core::Interface::vtable(self).SetEvictionPriority)(::windows_core::Interface::as_raw(self), evictionpriority).ok()
3967 }
3968 pub unsafe fn GetEvictionPriority(&self) -> ::windows_core::Result<u32> {
3969 let mut result__ = ::std::mem::zeroed();
3970 (::windows_core::Interface::vtable(self).GetEvictionPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
3971 }
3972}
3973::windows_core::imp::interface_hierarchy!(IDXGIResource, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject);
3974unsafe impl ::core::marker::Send for IDXGIResource {}
3975unsafe impl ::core::marker::Sync for IDXGIResource {}
3976unsafe impl ::windows_core::Interface for IDXGIResource {
3977 type Vtable = IDXGIResource_Vtbl;
3978}
3979unsafe impl ::windows_core::ComInterface for IDXGIResource {
3980 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x035f3ab4_482e_4e50_b41f_8a7f8bd8960b);
3981}
3982#[repr(C)]
3983#[doc(hidden)]
3984pub struct IDXGIResource_Vtbl {
3985 pub base__: IDXGIDeviceSubObject_Vtbl,
3986 #[cfg(feature = "Win32_Foundation")]
3987 pub GetSharedHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psharedhandle: *mut super::super::Foundation::HANDLE) -> ::windows_core::HRESULT,
3988 #[cfg(not(feature = "Win32_Foundation"))]
3989 GetSharedHandle: usize,
3990 pub GetUsage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pusage: *mut DXGI_USAGE) -> ::windows_core::HRESULT,
3991 pub SetEvictionPriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, evictionpriority: u32) -> ::windows_core::HRESULT,
3992 pub GetEvictionPriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pevictionpriority: *mut u32) -> ::windows_core::HRESULT,
3993}
3994#[repr(transparent)]
3995#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
3996pub struct IDXGIResource1(::windows_core::IUnknown);
3997impl IDXGIResource1 {
3998 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
3999 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4000 }
4001 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4002 where
4003 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4004 {
4005 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4006 }
4007 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4008 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4009 }
4010 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4011 where
4012 T: ::windows_core::ComInterface,
4013 {
4014 let mut result__ = ::std::ptr::null_mut();
4015 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4016 }
4017 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4018 where
4019 T: ::windows_core::ComInterface,
4020 {
4021 let mut result__ = ::std::ptr::null_mut();
4022 (::windows_core::Interface::vtable(self).base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4023 }
4024 #[doc = "Required features: `\"Win32_Foundation\"`"]
4025 #[cfg(feature = "Win32_Foundation")]
4026 pub unsafe fn GetSharedHandle(&self) -> ::windows_core::Result<super::super::Foundation::HANDLE> {
4027 let mut result__ = ::std::mem::zeroed();
4028 (::windows_core::Interface::vtable(self).base__.GetSharedHandle)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4029 }
4030 pub unsafe fn GetUsage(&self) -> ::windows_core::Result<DXGI_USAGE> {
4031 let mut result__ = ::std::mem::zeroed();
4032 (::windows_core::Interface::vtable(self).base__.GetUsage)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4033 }
4034 pub unsafe fn SetEvictionPriority(&self, evictionpriority: u32) -> ::windows_core::Result<()> {
4035 (::windows_core::Interface::vtable(self).base__.SetEvictionPriority)(::windows_core::Interface::as_raw(self), evictionpriority).ok()
4036 }
4037 pub unsafe fn GetEvictionPriority(&self) -> ::windows_core::Result<u32> {
4038 let mut result__ = ::std::mem::zeroed();
4039 (::windows_core::Interface::vtable(self).base__.GetEvictionPriority)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4040 }
4041 pub unsafe fn CreateSubresourceSurface(&self, index: u32) -> ::windows_core::Result<IDXGISurface2> {
4042 let mut result__ = ::std::mem::zeroed();
4043 (::windows_core::Interface::vtable(self).CreateSubresourceSurface)(::windows_core::Interface::as_raw(self), index, &mut result__).from_abi(result__)
4044 }
4045 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`"]
4046 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
4047 pub unsafe fn CreateSharedHandle<P0>(&self, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, dwaccess: u32, lpname: P0) -> ::windows_core::Result<super::super::Foundation::HANDLE>
4048 where
4049 P0: ::windows_core::IntoParam<::windows_core::PCWSTR>,
4050 {
4051 let mut result__ = ::std::mem::zeroed();
4052 (::windows_core::Interface::vtable(self).CreateSharedHandle)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), dwaccess, lpname.into_param().abi(), &mut result__).from_abi(result__)
4053 }
4054}
4055::windows_core::imp::interface_hierarchy!(IDXGIResource1, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGIResource);
4056unsafe impl ::core::marker::Send for IDXGIResource1 {}
4057unsafe impl ::core::marker::Sync for IDXGIResource1 {}
4058unsafe impl ::windows_core::Interface for IDXGIResource1 {
4059 type Vtable = IDXGIResource1_Vtbl;
4060}
4061unsafe impl ::windows_core::ComInterface for IDXGIResource1 {
4062 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x30961379_4609_4a41_998e_54fe567ee0c1);
4063}
4064#[repr(C)]
4065#[doc(hidden)]
4066pub struct IDXGIResource1_Vtbl {
4067 pub base__: IDXGIResource_Vtbl,
4068 pub CreateSubresourceSurface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32, ppsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4069 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
4070 pub CreateSharedHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pattributes: *const super::super::Security::SECURITY_ATTRIBUTES, dwaccess: u32, lpname: ::windows_core::PCWSTR, phandle: *mut super::super::Foundation::HANDLE) -> ::windows_core::HRESULT,
4071 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Security")))]
4072 CreateSharedHandle: usize,
4073}
4074#[repr(transparent)]
4075#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4076pub struct IDXGISurface(::windows_core::IUnknown);
4077impl IDXGISurface {
4078 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4079 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4080 }
4081 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4082 where
4083 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4084 {
4085 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4086 }
4087 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4088 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4089 }
4090 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4091 where
4092 T: ::windows_core::ComInterface,
4093 {
4094 let mut result__ = ::std::ptr::null_mut();
4095 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4096 }
4097 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4098 where
4099 T: ::windows_core::ComInterface,
4100 {
4101 let mut result__ = ::std::ptr::null_mut();
4102 (::windows_core::Interface::vtable(self).base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4103 }
4104 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4105 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4106 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows_core::Result<()> {
4107 (::windows_core::Interface::vtable(self).GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4108 }
4109 pub unsafe fn Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows_core::Result<()> {
4110 (::windows_core::Interface::vtable(self).Map)(::windows_core::Interface::as_raw(self), plockedrect, mapflags).ok()
4111 }
4112 pub unsafe fn Unmap(&self) -> ::windows_core::Result<()> {
4113 (::windows_core::Interface::vtable(self).Unmap)(::windows_core::Interface::as_raw(self)).ok()
4114 }
4115}
4116::windows_core::imp::interface_hierarchy!(IDXGISurface, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject);
4117unsafe impl ::core::marker::Send for IDXGISurface {}
4118unsafe impl ::core::marker::Sync for IDXGISurface {}
4119unsafe impl ::windows_core::Interface for IDXGISurface {
4120 type Vtable = IDXGISurface_Vtbl;
4121}
4122unsafe impl ::windows_core::ComInterface for IDXGISurface {
4123 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xcafcb56c_6ac3_4889_bf47_9e23bbd260ec);
4124}
4125#[repr(C)]
4126#[doc(hidden)]
4127pub struct IDXGISurface_Vtbl {
4128 pub base__: IDXGIDeviceSubObject_Vtbl,
4129 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4130 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows_core::HRESULT,
4131 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4132 GetDesc: usize,
4133 pub Map: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows_core::HRESULT,
4134 pub Unmap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4135}
4136#[repr(transparent)]
4137#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4138pub struct IDXGISurface1(::windows_core::IUnknown);
4139impl IDXGISurface1 {
4140 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4141 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4142 }
4143 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4144 where
4145 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4146 {
4147 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4148 }
4149 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4150 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4151 }
4152 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4153 where
4154 T: ::windows_core::ComInterface,
4155 {
4156 let mut result__ = ::std::ptr::null_mut();
4157 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4158 }
4159 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4160 where
4161 T: ::windows_core::ComInterface,
4162 {
4163 let mut result__ = ::std::ptr::null_mut();
4164 (::windows_core::Interface::vtable(self).base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4165 }
4166 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4167 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4168 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows_core::Result<()> {
4169 (::windows_core::Interface::vtable(self).base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4170 }
4171 pub unsafe fn Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows_core::Result<()> {
4172 (::windows_core::Interface::vtable(self).base__.Map)(::windows_core::Interface::as_raw(self), plockedrect, mapflags).ok()
4173 }
4174 pub unsafe fn Unmap(&self) -> ::windows_core::Result<()> {
4175 (::windows_core::Interface::vtable(self).base__.Unmap)(::windows_core::Interface::as_raw(self)).ok()
4176 }
4177 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"]
4178 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
4179 pub unsafe fn GetDC<P0>(&self, discard: P0) -> ::windows_core::Result<super::Gdi::HDC>
4180 where
4181 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
4182 {
4183 let mut result__ = ::std::mem::zeroed();
4184 (::windows_core::Interface::vtable(self).GetDC)(::windows_core::Interface::as_raw(self), discard.into_param().abi(), &mut result__).from_abi(result__)
4185 }
4186 #[doc = "Required features: `\"Win32_Foundation\"`"]
4187 #[cfg(feature = "Win32_Foundation")]
4188 pub unsafe fn ReleaseDC(&self, pdirtyrect: ::core::option::Option<*const super::super::Foundation::RECT>) -> ::windows_core::Result<()> {
4189 (::windows_core::Interface::vtable(self).ReleaseDC)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pdirtyrect.unwrap_or(::std::ptr::null()))).ok()
4190 }
4191}
4192::windows_core::imp::interface_hierarchy!(IDXGISurface1, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGISurface);
4193unsafe impl ::core::marker::Send for IDXGISurface1 {}
4194unsafe impl ::core::marker::Sync for IDXGISurface1 {}
4195unsafe impl ::windows_core::Interface for IDXGISurface1 {
4196 type Vtable = IDXGISurface1_Vtbl;
4197}
4198unsafe impl ::windows_core::ComInterface for IDXGISurface1 {
4199 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x4ae63092_6327_4c1b_80ae_bfe12ea32b86);
4200}
4201#[repr(C)]
4202#[doc(hidden)]
4203pub struct IDXGISurface1_Vtbl {
4204 pub base__: IDXGISurface_Vtbl,
4205 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
4206 pub GetDC: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, discard: super::super::Foundation::BOOL, phdc: *mut super::Gdi::HDC) -> ::windows_core::HRESULT,
4207 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))]
4208 GetDC: usize,
4209 #[cfg(feature = "Win32_Foundation")]
4210 pub ReleaseDC: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdirtyrect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT,
4211 #[cfg(not(feature = "Win32_Foundation"))]
4212 ReleaseDC: usize,
4213}
4214#[repr(transparent)]
4215#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4216pub struct IDXGISurface2(::windows_core::IUnknown);
4217impl IDXGISurface2 {
4218 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4219 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4220 }
4221 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4222 where
4223 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4224 {
4225 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4226 }
4227 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4228 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4229 }
4230 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4231 where
4232 T: ::windows_core::ComInterface,
4233 {
4234 let mut result__ = ::std::ptr::null_mut();
4235 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4236 }
4237 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4238 where
4239 T: ::windows_core::ComInterface,
4240 {
4241 let mut result__ = ::std::ptr::null_mut();
4242 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4243 }
4244 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4245 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4246 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SURFACE_DESC) -> ::windows_core::Result<()> {
4247 (::windows_core::Interface::vtable(self).base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4248 }
4249 pub unsafe fn Map(&self, plockedrect: *mut DXGI_MAPPED_RECT, mapflags: u32) -> ::windows_core::Result<()> {
4250 (::windows_core::Interface::vtable(self).base__.base__.Map)(::windows_core::Interface::as_raw(self), plockedrect, mapflags).ok()
4251 }
4252 pub unsafe fn Unmap(&self) -> ::windows_core::Result<()> {
4253 (::windows_core::Interface::vtable(self).base__.base__.Unmap)(::windows_core::Interface::as_raw(self)).ok()
4254 }
4255 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`"]
4256 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
4257 pub unsafe fn GetDC<P0>(&self, discard: P0) -> ::windows_core::Result<super::Gdi::HDC>
4258 where
4259 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
4260 {
4261 let mut result__ = ::std::mem::zeroed();
4262 (::windows_core::Interface::vtable(self).base__.GetDC)(::windows_core::Interface::as_raw(self), discard.into_param().abi(), &mut result__).from_abi(result__)
4263 }
4264 #[doc = "Required features: `\"Win32_Foundation\"`"]
4265 #[cfg(feature = "Win32_Foundation")]
4266 pub unsafe fn ReleaseDC(&self, pdirtyrect: ::core::option::Option<*const super::super::Foundation::RECT>) -> ::windows_core::Result<()> {
4267 (::windows_core::Interface::vtable(self).base__.ReleaseDC)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pdirtyrect.unwrap_or(::std::ptr::null()))).ok()
4268 }
4269 pub unsafe fn GetResource<T>(&self, psubresourceindex: *mut u32) -> ::windows_core::Result<T>
4270 where
4271 T: ::windows_core::ComInterface,
4272 {
4273 let mut result__ = ::std::ptr::null_mut();
4274 (::windows_core::Interface::vtable(self).GetResource)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__, psubresourceindex).from_abi(result__)
4275 }
4276}
4277::windows_core::imp::interface_hierarchy!(IDXGISurface2, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGISurface, IDXGISurface1);
4278unsafe impl ::core::marker::Send for IDXGISurface2 {}
4279unsafe impl ::core::marker::Sync for IDXGISurface2 {}
4280unsafe impl ::windows_core::Interface for IDXGISurface2 {
4281 type Vtable = IDXGISurface2_Vtbl;
4282}
4283unsafe impl ::windows_core::ComInterface for IDXGISurface2 {
4284 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xaba496dd_b617_4cb8_a866_bc44d7eb1fa2);
4285}
4286#[repr(C)]
4287#[doc(hidden)]
4288pub struct IDXGISurface2_Vtbl {
4289 pub base__: IDXGISurface1_Vtbl,
4290 pub GetResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppparentresource: *mut *mut ::core::ffi::c_void, psubresourceindex: *mut u32) -> ::windows_core::HRESULT,
4291}
4292#[repr(transparent)]
4293#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4294pub struct IDXGISwapChain(::windows_core::IUnknown);
4295impl IDXGISwapChain {
4296 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4297 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4298 }
4299 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4300 where
4301 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4302 {
4303 (::windows_core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4304 }
4305 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4306 (::windows_core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4307 }
4308 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4309 where
4310 T: ::windows_core::ComInterface,
4311 {
4312 let mut result__ = ::std::ptr::null_mut();
4313 (::windows_core::Interface::vtable(self).base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4314 }
4315 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4316 where
4317 T: ::windows_core::ComInterface,
4318 {
4319 let mut result__ = ::std::ptr::null_mut();
4320 (::windows_core::Interface::vtable(self).base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4321 }
4322 pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT {
4323 (::windows_core::Interface::vtable(self).Present)(::windows_core::Interface::as_raw(self), syncinterval, flags)
4324 }
4325 pub unsafe fn GetBuffer<T>(&self, buffer: u32) -> ::windows_core::Result<T>
4326 where
4327 T: ::windows_core::ComInterface,
4328 {
4329 let mut result__ = ::std::ptr::null_mut();
4330 (::windows_core::Interface::vtable(self).GetBuffer)(::windows_core::Interface::as_raw(self), buffer, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4331 }
4332 #[doc = "Required features: `\"Win32_Foundation\"`"]
4333 #[cfg(feature = "Win32_Foundation")]
4334 pub unsafe fn SetFullscreenState<P0, P1>(&self, fullscreen: P0, ptarget: P1) -> ::windows_core::Result<()>
4335 where
4336 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
4337 P1: ::windows_core::IntoParam<IDXGIOutput>,
4338 {
4339 (::windows_core::Interface::vtable(self).SetFullscreenState)(::windows_core::Interface::as_raw(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
4340 }
4341 #[doc = "Required features: `\"Win32_Foundation\"`"]
4342 #[cfg(feature = "Win32_Foundation")]
4343 pub unsafe fn GetFullscreenState(&self, pfullscreen: ::core::option::Option<*mut super::super::Foundation::BOOL>, pptarget: ::core::option::Option<*mut ::core::option::Option<IDXGIOutput>>) -> ::windows_core::Result<()> {
4344 (::windows_core::Interface::vtable(self).GetFullscreenState)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pfullscreen.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pptarget.unwrap_or(::std::ptr::null_mut()))).ok()
4345 }
4346 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4347 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4348 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows_core::Result<()> {
4349 (::windows_core::Interface::vtable(self).GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4350 }
4351 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4352 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4353 pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: Common::DXGI_FORMAT, swapchainflags: u32) -> ::windows_core::Result<()> {
4354 (::windows_core::Interface::vtable(self).ResizeBuffers)(::windows_core::Interface::as_raw(self), buffercount, width, height, newformat, swapchainflags).ok()
4355 }
4356 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4357 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4358 pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const Common::DXGI_MODE_DESC) -> ::windows_core::Result<()> {
4359 (::windows_core::Interface::vtable(self).ResizeTarget)(::windows_core::Interface::as_raw(self), pnewtargetparameters).ok()
4360 }
4361 pub unsafe fn GetContainingOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4362 let mut result__ = ::std::mem::zeroed();
4363 (::windows_core::Interface::vtable(self).GetContainingOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4364 }
4365 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
4366 (::windows_core::Interface::vtable(self).GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
4367 }
4368 pub unsafe fn GetLastPresentCount(&self) -> ::windows_core::Result<u32> {
4369 let mut result__ = ::std::mem::zeroed();
4370 (::windows_core::Interface::vtable(self).GetLastPresentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4371 }
4372}
4373::windows_core::imp::interface_hierarchy!(IDXGISwapChain, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject);
4374unsafe impl ::core::marker::Send for IDXGISwapChain {}
4375unsafe impl ::core::marker::Sync for IDXGISwapChain {}
4376unsafe impl ::windows_core::Interface for IDXGISwapChain {
4377 type Vtable = IDXGISwapChain_Vtbl;
4378}
4379unsafe impl ::windows_core::ComInterface for IDXGISwapChain {
4380 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x310d36a0_d2e7_4c0a_aa04_6a9d23b8886a);
4381}
4382#[repr(C)]
4383#[doc(hidden)]
4384pub struct IDXGISwapChain_Vtbl {
4385 pub base__: IDXGIDeviceSubObject_Vtbl,
4386 pub Present: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT,
4387 pub GetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffer: u32, riid: *const ::windows_core::GUID, ppsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4388 #[cfg(feature = "Win32_Foundation")]
4389 pub SetFullscreenState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, fullscreen: super::super::Foundation::BOOL, ptarget: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4390 #[cfg(not(feature = "Win32_Foundation"))]
4391 SetFullscreenState: usize,
4392 #[cfg(feature = "Win32_Foundation")]
4393 pub GetFullscreenState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfullscreen: *mut super::super::Foundation::BOOL, pptarget: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4394 #[cfg(not(feature = "Win32_Foundation"))]
4395 GetFullscreenState: usize,
4396 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4397 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows_core::HRESULT,
4398 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
4399 GetDesc: usize,
4400 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4401 pub ResizeBuffers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffercount: u32, width: u32, height: u32, newformat: Common::DXGI_FORMAT, swapchainflags: u32) -> ::windows_core::HRESULT,
4402 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4403 ResizeBuffers: usize,
4404 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4405 pub ResizeTarget: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pnewtargetparameters: *const Common::DXGI_MODE_DESC) -> ::windows_core::HRESULT,
4406 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4407 ResizeTarget: usize,
4408 pub GetContainingOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppoutput: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4409 pub GetFrameStatistics: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::HRESULT,
4410 pub GetLastPresentCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plastpresentcount: *mut u32) -> ::windows_core::HRESULT,
4411}
4412#[repr(transparent)]
4413#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4414pub struct IDXGISwapChain1(::windows_core::IUnknown);
4415impl IDXGISwapChain1 {
4416 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4417 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4418 }
4419 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4420 where
4421 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4422 {
4423 (::windows_core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4424 }
4425 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4426 (::windows_core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4427 }
4428 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4429 where
4430 T: ::windows_core::ComInterface,
4431 {
4432 let mut result__ = ::std::ptr::null_mut();
4433 (::windows_core::Interface::vtable(self).base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4434 }
4435 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4436 where
4437 T: ::windows_core::ComInterface,
4438 {
4439 let mut result__ = ::std::ptr::null_mut();
4440 (::windows_core::Interface::vtable(self).base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4441 }
4442 pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT {
4443 (::windows_core::Interface::vtable(self).base__.Present)(::windows_core::Interface::as_raw(self), syncinterval, flags)
4444 }
4445 pub unsafe fn GetBuffer<T>(&self, buffer: u32) -> ::windows_core::Result<T>
4446 where
4447 T: ::windows_core::ComInterface,
4448 {
4449 let mut result__ = ::std::ptr::null_mut();
4450 (::windows_core::Interface::vtable(self).base__.GetBuffer)(::windows_core::Interface::as_raw(self), buffer, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4451 }
4452 #[doc = "Required features: `\"Win32_Foundation\"`"]
4453 #[cfg(feature = "Win32_Foundation")]
4454 pub unsafe fn SetFullscreenState<P0, P1>(&self, fullscreen: P0, ptarget: P1) -> ::windows_core::Result<()>
4455 where
4456 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
4457 P1: ::windows_core::IntoParam<IDXGIOutput>,
4458 {
4459 (::windows_core::Interface::vtable(self).base__.SetFullscreenState)(::windows_core::Interface::as_raw(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
4460 }
4461 #[doc = "Required features: `\"Win32_Foundation\"`"]
4462 #[cfg(feature = "Win32_Foundation")]
4463 pub unsafe fn GetFullscreenState(&self, pfullscreen: ::core::option::Option<*mut super::super::Foundation::BOOL>, pptarget: ::core::option::Option<*mut ::core::option::Option<IDXGIOutput>>) -> ::windows_core::Result<()> {
4464 (::windows_core::Interface::vtable(self).base__.GetFullscreenState)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pfullscreen.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pptarget.unwrap_or(::std::ptr::null_mut()))).ok()
4465 }
4466 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4467 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4468 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows_core::Result<()> {
4469 (::windows_core::Interface::vtable(self).base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4470 }
4471 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4472 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4473 pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: Common::DXGI_FORMAT, swapchainflags: u32) -> ::windows_core::Result<()> {
4474 (::windows_core::Interface::vtable(self).base__.ResizeBuffers)(::windows_core::Interface::as_raw(self), buffercount, width, height, newformat, swapchainflags).ok()
4475 }
4476 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4477 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4478 pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const Common::DXGI_MODE_DESC) -> ::windows_core::Result<()> {
4479 (::windows_core::Interface::vtable(self).base__.ResizeTarget)(::windows_core::Interface::as_raw(self), pnewtargetparameters).ok()
4480 }
4481 pub unsafe fn GetContainingOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4482 let mut result__ = ::std::mem::zeroed();
4483 (::windows_core::Interface::vtable(self).base__.GetContainingOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4484 }
4485 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
4486 (::windows_core::Interface::vtable(self).base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
4487 }
4488 pub unsafe fn GetLastPresentCount(&self) -> ::windows_core::Result<u32> {
4489 let mut result__ = ::std::mem::zeroed();
4490 (::windows_core::Interface::vtable(self).base__.GetLastPresentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4491 }
4492 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4493 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4494 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows_core::Result<()> {
4495 (::windows_core::Interface::vtable(self).GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
4496 }
4497 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4498 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4499 pub unsafe fn GetFullscreenDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows_core::Result<()> {
4500 (::windows_core::Interface::vtable(self).GetFullscreenDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4501 }
4502 #[doc = "Required features: `\"Win32_Foundation\"`"]
4503 #[cfg(feature = "Win32_Foundation")]
4504 pub unsafe fn GetHwnd(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
4505 let mut result__ = ::std::mem::zeroed();
4506 (::windows_core::Interface::vtable(self).GetHwnd)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4507 }
4508 pub unsafe fn GetCoreWindow<T>(&self) -> ::windows_core::Result<T>
4509 where
4510 T: ::windows_core::ComInterface,
4511 {
4512 let mut result__ = ::std::ptr::null_mut();
4513 (::windows_core::Interface::vtable(self).GetCoreWindow)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4514 }
4515 #[doc = "Required features: `\"Win32_Foundation\"`"]
4516 #[cfg(feature = "Win32_Foundation")]
4517 pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows_core::HRESULT {
4518 (::windows_core::Interface::vtable(self).Present1)(::windows_core::Interface::as_raw(self), syncinterval, presentflags, ppresentparameters)
4519 }
4520 #[doc = "Required features: `\"Win32_Foundation\"`"]
4521 #[cfg(feature = "Win32_Foundation")]
4522 pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
4523 (::windows_core::Interface::vtable(self).IsTemporaryMonoSupported)(::windows_core::Interface::as_raw(self))
4524 }
4525 pub unsafe fn GetRestrictToOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4526 let mut result__ = ::std::mem::zeroed();
4527 (::windows_core::Interface::vtable(self).GetRestrictToOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4528 }
4529 pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows_core::Result<()> {
4530 (::windows_core::Interface::vtable(self).SetBackgroundColor)(::windows_core::Interface::as_raw(self), pcolor).ok()
4531 }
4532 pub unsafe fn GetBackgroundColor(&self) -> ::windows_core::Result<DXGI_RGBA> {
4533 let mut result__ = ::std::mem::zeroed();
4534 (::windows_core::Interface::vtable(self).GetBackgroundColor)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4535 }
4536 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4537 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4538 pub unsafe fn SetRotation(&self, rotation: Common::DXGI_MODE_ROTATION) -> ::windows_core::Result<()> {
4539 (::windows_core::Interface::vtable(self).SetRotation)(::windows_core::Interface::as_raw(self), rotation).ok()
4540 }
4541 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4542 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4543 pub unsafe fn GetRotation(&self) -> ::windows_core::Result<Common::DXGI_MODE_ROTATION> {
4544 let mut result__ = ::std::mem::zeroed();
4545 (::windows_core::Interface::vtable(self).GetRotation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4546 }
4547}
4548::windows_core::imp::interface_hierarchy!(IDXGISwapChain1, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGISwapChain);
4549unsafe impl ::core::marker::Send for IDXGISwapChain1 {}
4550unsafe impl ::core::marker::Sync for IDXGISwapChain1 {}
4551unsafe impl ::windows_core::Interface for IDXGISwapChain1 {
4552 type Vtable = IDXGISwapChain1_Vtbl;
4553}
4554unsafe impl ::windows_core::ComInterface for IDXGISwapChain1 {
4555 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x790a45f7_0d42_4876_983a_0a55cfe6f4aa);
4556}
4557#[repr(C)]
4558#[doc(hidden)]
4559pub struct IDXGISwapChain1_Vtbl {
4560 pub base__: IDXGISwapChain_Vtbl,
4561 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4562 pub GetDesc1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows_core::HRESULT,
4563 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
4564 GetDesc1: usize,
4565 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4566 pub GetFullscreenDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows_core::HRESULT,
4567 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
4568 GetFullscreenDesc: usize,
4569 #[cfg(feature = "Win32_Foundation")]
4570 pub GetHwnd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT,
4571 #[cfg(not(feature = "Win32_Foundation"))]
4572 GetHwnd: usize,
4573 pub GetCoreWindow: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, refiid: *const ::windows_core::GUID, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4574 #[cfg(feature = "Win32_Foundation")]
4575 pub Present1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows_core::HRESULT,
4576 #[cfg(not(feature = "Win32_Foundation"))]
4577 Present1: usize,
4578 #[cfg(feature = "Win32_Foundation")]
4579 pub IsTemporaryMonoSupported: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
4580 #[cfg(not(feature = "Win32_Foundation"))]
4581 IsTemporaryMonoSupported: usize,
4582 pub GetRestrictToOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pprestricttooutput: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4583 pub SetBackgroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcolor: *const DXGI_RGBA) -> ::windows_core::HRESULT,
4584 pub GetBackgroundColor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcolor: *mut DXGI_RGBA) -> ::windows_core::HRESULT,
4585 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4586 pub SetRotation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rotation: Common::DXGI_MODE_ROTATION) -> ::windows_core::HRESULT,
4587 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4588 SetRotation: usize,
4589 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4590 pub GetRotation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, protation: *mut Common::DXGI_MODE_ROTATION) -> ::windows_core::HRESULT,
4591 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4592 GetRotation: usize,
4593}
4594#[repr(transparent)]
4595#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4596pub struct IDXGISwapChain2(::windows_core::IUnknown);
4597impl IDXGISwapChain2 {
4598 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4599 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4600 }
4601 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4602 where
4603 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4604 {
4605 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4606 }
4607 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4608 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4609 }
4610 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4611 where
4612 T: ::windows_core::ComInterface,
4613 {
4614 let mut result__ = ::std::ptr::null_mut();
4615 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4616 }
4617 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4618 where
4619 T: ::windows_core::ComInterface,
4620 {
4621 let mut result__ = ::std::ptr::null_mut();
4622 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4623 }
4624 pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT {
4625 (::windows_core::Interface::vtable(self).base__.base__.Present)(::windows_core::Interface::as_raw(self), syncinterval, flags)
4626 }
4627 pub unsafe fn GetBuffer<T>(&self, buffer: u32) -> ::windows_core::Result<T>
4628 where
4629 T: ::windows_core::ComInterface,
4630 {
4631 let mut result__ = ::std::ptr::null_mut();
4632 (::windows_core::Interface::vtable(self).base__.base__.GetBuffer)(::windows_core::Interface::as_raw(self), buffer, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4633 }
4634 #[doc = "Required features: `\"Win32_Foundation\"`"]
4635 #[cfg(feature = "Win32_Foundation")]
4636 pub unsafe fn SetFullscreenState<P0, P1>(&self, fullscreen: P0, ptarget: P1) -> ::windows_core::Result<()>
4637 where
4638 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
4639 P1: ::windows_core::IntoParam<IDXGIOutput>,
4640 {
4641 (::windows_core::Interface::vtable(self).base__.base__.SetFullscreenState)(::windows_core::Interface::as_raw(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
4642 }
4643 #[doc = "Required features: `\"Win32_Foundation\"`"]
4644 #[cfg(feature = "Win32_Foundation")]
4645 pub unsafe fn GetFullscreenState(&self, pfullscreen: ::core::option::Option<*mut super::super::Foundation::BOOL>, pptarget: ::core::option::Option<*mut ::core::option::Option<IDXGIOutput>>) -> ::windows_core::Result<()> {
4646 (::windows_core::Interface::vtable(self).base__.base__.GetFullscreenState)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pfullscreen.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pptarget.unwrap_or(::std::ptr::null_mut()))).ok()
4647 }
4648 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4649 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4650 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows_core::Result<()> {
4651 (::windows_core::Interface::vtable(self).base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4652 }
4653 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4654 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4655 pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: Common::DXGI_FORMAT, swapchainflags: u32) -> ::windows_core::Result<()> {
4656 (::windows_core::Interface::vtable(self).base__.base__.ResizeBuffers)(::windows_core::Interface::as_raw(self), buffercount, width, height, newformat, swapchainflags).ok()
4657 }
4658 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4659 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4660 pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const Common::DXGI_MODE_DESC) -> ::windows_core::Result<()> {
4661 (::windows_core::Interface::vtable(self).base__.base__.ResizeTarget)(::windows_core::Interface::as_raw(self), pnewtargetparameters).ok()
4662 }
4663 pub unsafe fn GetContainingOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4664 let mut result__ = ::std::mem::zeroed();
4665 (::windows_core::Interface::vtable(self).base__.base__.GetContainingOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4666 }
4667 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
4668 (::windows_core::Interface::vtable(self).base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
4669 }
4670 pub unsafe fn GetLastPresentCount(&self) -> ::windows_core::Result<u32> {
4671 let mut result__ = ::std::mem::zeroed();
4672 (::windows_core::Interface::vtable(self).base__.base__.GetLastPresentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4673 }
4674 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4675 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4676 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows_core::Result<()> {
4677 (::windows_core::Interface::vtable(self).base__.GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
4678 }
4679 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4680 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4681 pub unsafe fn GetFullscreenDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows_core::Result<()> {
4682 (::windows_core::Interface::vtable(self).base__.GetFullscreenDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4683 }
4684 #[doc = "Required features: `\"Win32_Foundation\"`"]
4685 #[cfg(feature = "Win32_Foundation")]
4686 pub unsafe fn GetHwnd(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
4687 let mut result__ = ::std::mem::zeroed();
4688 (::windows_core::Interface::vtable(self).base__.GetHwnd)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4689 }
4690 pub unsafe fn GetCoreWindow<T>(&self) -> ::windows_core::Result<T>
4691 where
4692 T: ::windows_core::ComInterface,
4693 {
4694 let mut result__ = ::std::ptr::null_mut();
4695 (::windows_core::Interface::vtable(self).base__.GetCoreWindow)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4696 }
4697 #[doc = "Required features: `\"Win32_Foundation\"`"]
4698 #[cfg(feature = "Win32_Foundation")]
4699 pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows_core::HRESULT {
4700 (::windows_core::Interface::vtable(self).base__.Present1)(::windows_core::Interface::as_raw(self), syncinterval, presentflags, ppresentparameters)
4701 }
4702 #[doc = "Required features: `\"Win32_Foundation\"`"]
4703 #[cfg(feature = "Win32_Foundation")]
4704 pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
4705 (::windows_core::Interface::vtable(self).base__.IsTemporaryMonoSupported)(::windows_core::Interface::as_raw(self))
4706 }
4707 pub unsafe fn GetRestrictToOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4708 let mut result__ = ::std::mem::zeroed();
4709 (::windows_core::Interface::vtable(self).base__.GetRestrictToOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4710 }
4711 pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows_core::Result<()> {
4712 (::windows_core::Interface::vtable(self).base__.SetBackgroundColor)(::windows_core::Interface::as_raw(self), pcolor).ok()
4713 }
4714 pub unsafe fn GetBackgroundColor(&self) -> ::windows_core::Result<DXGI_RGBA> {
4715 let mut result__ = ::std::mem::zeroed();
4716 (::windows_core::Interface::vtable(self).base__.GetBackgroundColor)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4717 }
4718 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4719 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4720 pub unsafe fn SetRotation(&self, rotation: Common::DXGI_MODE_ROTATION) -> ::windows_core::Result<()> {
4721 (::windows_core::Interface::vtable(self).base__.SetRotation)(::windows_core::Interface::as_raw(self), rotation).ok()
4722 }
4723 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4724 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4725 pub unsafe fn GetRotation(&self) -> ::windows_core::Result<Common::DXGI_MODE_ROTATION> {
4726 let mut result__ = ::std::mem::zeroed();
4727 (::windows_core::Interface::vtable(self).base__.GetRotation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4728 }
4729 pub unsafe fn SetSourceSize(&self, width: u32, height: u32) -> ::windows_core::Result<()> {
4730 (::windows_core::Interface::vtable(self).SetSourceSize)(::windows_core::Interface::as_raw(self), width, height).ok()
4731 }
4732 pub unsafe fn GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows_core::Result<()> {
4733 (::windows_core::Interface::vtable(self).GetSourceSize)(::windows_core::Interface::as_raw(self), pwidth, pheight).ok()
4734 }
4735 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
4736 (::windows_core::Interface::vtable(self).SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
4737 }
4738 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
4739 let mut result__ = ::std::mem::zeroed();
4740 (::windows_core::Interface::vtable(self).GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4741 }
4742 #[doc = "Required features: `\"Win32_Foundation\"`"]
4743 #[cfg(feature = "Win32_Foundation")]
4744 pub unsafe fn GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE {
4745 (::windows_core::Interface::vtable(self).GetFrameLatencyWaitableObject)(::windows_core::Interface::as_raw(self))
4746 }
4747 pub unsafe fn SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows_core::Result<()> {
4748 (::windows_core::Interface::vtable(self).SetMatrixTransform)(::windows_core::Interface::as_raw(self), pmatrix).ok()
4749 }
4750 pub unsafe fn GetMatrixTransform(&self, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows_core::Result<()> {
4751 (::windows_core::Interface::vtable(self).GetMatrixTransform)(::windows_core::Interface::as_raw(self), pmatrix).ok()
4752 }
4753}
4754::windows_core::imp::interface_hierarchy!(IDXGISwapChain2, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGISwapChain, IDXGISwapChain1);
4755unsafe impl ::core::marker::Send for IDXGISwapChain2 {}
4756unsafe impl ::core::marker::Sync for IDXGISwapChain2 {}
4757unsafe impl ::windows_core::Interface for IDXGISwapChain2 {
4758 type Vtable = IDXGISwapChain2_Vtbl;
4759}
4760unsafe impl ::windows_core::ComInterface for IDXGISwapChain2 {
4761 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xa8be2ac4_199f_4946_b331_79599fb98de7);
4762}
4763#[repr(C)]
4764#[doc(hidden)]
4765pub struct IDXGISwapChain2_Vtbl {
4766 pub base__: IDXGISwapChain1_Vtbl,
4767 pub SetSourceSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, width: u32, height: u32) -> ::windows_core::HRESULT,
4768 pub GetSourceSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pwidth: *mut u32, pheight: *mut u32) -> ::windows_core::HRESULT,
4769 pub SetMaximumFrameLatency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, maxlatency: u32) -> ::windows_core::HRESULT,
4770 pub GetMaximumFrameLatency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmaxlatency: *mut u32) -> ::windows_core::HRESULT,
4771 #[cfg(feature = "Win32_Foundation")]
4772 pub GetFrameLatencyWaitableObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::HANDLE,
4773 #[cfg(not(feature = "Win32_Foundation"))]
4774 GetFrameLatencyWaitableObject: usize,
4775 pub SetMatrixTransform: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows_core::HRESULT,
4776 pub GetMatrixTransform: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows_core::HRESULT,
4777}
4778#[repr(transparent)]
4779#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4780pub struct IDXGISwapChain3(::windows_core::IUnknown);
4781impl IDXGISwapChain3 {
4782 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4783 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4784 }
4785 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4786 where
4787 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4788 {
4789 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4790 }
4791 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4792 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4793 }
4794 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
4795 where
4796 T: ::windows_core::ComInterface,
4797 {
4798 let mut result__ = ::std::ptr::null_mut();
4799 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4800 }
4801 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
4802 where
4803 T: ::windows_core::ComInterface,
4804 {
4805 let mut result__ = ::std::ptr::null_mut();
4806 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4807 }
4808 pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT {
4809 (::windows_core::Interface::vtable(self).base__.base__.base__.Present)(::windows_core::Interface::as_raw(self), syncinterval, flags)
4810 }
4811 pub unsafe fn GetBuffer<T>(&self, buffer: u32) -> ::windows_core::Result<T>
4812 where
4813 T: ::windows_core::ComInterface,
4814 {
4815 let mut result__ = ::std::ptr::null_mut();
4816 (::windows_core::Interface::vtable(self).base__.base__.base__.GetBuffer)(::windows_core::Interface::as_raw(self), buffer, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4817 }
4818 #[doc = "Required features: `\"Win32_Foundation\"`"]
4819 #[cfg(feature = "Win32_Foundation")]
4820 pub unsafe fn SetFullscreenState<P0, P1>(&self, fullscreen: P0, ptarget: P1) -> ::windows_core::Result<()>
4821 where
4822 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
4823 P1: ::windows_core::IntoParam<IDXGIOutput>,
4824 {
4825 (::windows_core::Interface::vtable(self).base__.base__.base__.SetFullscreenState)(::windows_core::Interface::as_raw(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
4826 }
4827 #[doc = "Required features: `\"Win32_Foundation\"`"]
4828 #[cfg(feature = "Win32_Foundation")]
4829 pub unsafe fn GetFullscreenState(&self, pfullscreen: ::core::option::Option<*mut super::super::Foundation::BOOL>, pptarget: ::core::option::Option<*mut ::core::option::Option<IDXGIOutput>>) -> ::windows_core::Result<()> {
4830 (::windows_core::Interface::vtable(self).base__.base__.base__.GetFullscreenState)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pfullscreen.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pptarget.unwrap_or(::std::ptr::null_mut()))).ok()
4831 }
4832 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4833 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4834 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows_core::Result<()> {
4835 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4836 }
4837 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4838 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4839 pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: Common::DXGI_FORMAT, swapchainflags: u32) -> ::windows_core::Result<()> {
4840 (::windows_core::Interface::vtable(self).base__.base__.base__.ResizeBuffers)(::windows_core::Interface::as_raw(self), buffercount, width, height, newformat, swapchainflags).ok()
4841 }
4842 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4843 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4844 pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const Common::DXGI_MODE_DESC) -> ::windows_core::Result<()> {
4845 (::windows_core::Interface::vtable(self).base__.base__.base__.ResizeTarget)(::windows_core::Interface::as_raw(self), pnewtargetparameters).ok()
4846 }
4847 pub unsafe fn GetContainingOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4848 let mut result__ = ::std::mem::zeroed();
4849 (::windows_core::Interface::vtable(self).base__.base__.base__.GetContainingOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4850 }
4851 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
4852 (::windows_core::Interface::vtable(self).base__.base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
4853 }
4854 pub unsafe fn GetLastPresentCount(&self) -> ::windows_core::Result<u32> {
4855 let mut result__ = ::std::mem::zeroed();
4856 (::windows_core::Interface::vtable(self).base__.base__.base__.GetLastPresentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4857 }
4858 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4859 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4860 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows_core::Result<()> {
4861 (::windows_core::Interface::vtable(self).base__.base__.GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
4862 }
4863 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
4864 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4865 pub unsafe fn GetFullscreenDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows_core::Result<()> {
4866 (::windows_core::Interface::vtable(self).base__.base__.GetFullscreenDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
4867 }
4868 #[doc = "Required features: `\"Win32_Foundation\"`"]
4869 #[cfg(feature = "Win32_Foundation")]
4870 pub unsafe fn GetHwnd(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
4871 let mut result__ = ::std::mem::zeroed();
4872 (::windows_core::Interface::vtable(self).base__.base__.GetHwnd)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4873 }
4874 pub unsafe fn GetCoreWindow<T>(&self) -> ::windows_core::Result<T>
4875 where
4876 T: ::windows_core::ComInterface,
4877 {
4878 let mut result__ = ::std::ptr::null_mut();
4879 (::windows_core::Interface::vtable(self).base__.base__.GetCoreWindow)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
4880 }
4881 #[doc = "Required features: `\"Win32_Foundation\"`"]
4882 #[cfg(feature = "Win32_Foundation")]
4883 pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows_core::HRESULT {
4884 (::windows_core::Interface::vtable(self).base__.base__.Present1)(::windows_core::Interface::as_raw(self), syncinterval, presentflags, ppresentparameters)
4885 }
4886 #[doc = "Required features: `\"Win32_Foundation\"`"]
4887 #[cfg(feature = "Win32_Foundation")]
4888 pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
4889 (::windows_core::Interface::vtable(self).base__.base__.IsTemporaryMonoSupported)(::windows_core::Interface::as_raw(self))
4890 }
4891 pub unsafe fn GetRestrictToOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
4892 let mut result__ = ::std::mem::zeroed();
4893 (::windows_core::Interface::vtable(self).base__.base__.GetRestrictToOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4894 }
4895 pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows_core::Result<()> {
4896 (::windows_core::Interface::vtable(self).base__.base__.SetBackgroundColor)(::windows_core::Interface::as_raw(self), pcolor).ok()
4897 }
4898 pub unsafe fn GetBackgroundColor(&self) -> ::windows_core::Result<DXGI_RGBA> {
4899 let mut result__ = ::std::mem::zeroed();
4900 (::windows_core::Interface::vtable(self).base__.base__.GetBackgroundColor)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4901 }
4902 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4903 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4904 pub unsafe fn SetRotation(&self, rotation: Common::DXGI_MODE_ROTATION) -> ::windows_core::Result<()> {
4905 (::windows_core::Interface::vtable(self).base__.base__.SetRotation)(::windows_core::Interface::as_raw(self), rotation).ok()
4906 }
4907 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4908 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4909 pub unsafe fn GetRotation(&self) -> ::windows_core::Result<Common::DXGI_MODE_ROTATION> {
4910 let mut result__ = ::std::mem::zeroed();
4911 (::windows_core::Interface::vtable(self).base__.base__.GetRotation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4912 }
4913 pub unsafe fn SetSourceSize(&self, width: u32, height: u32) -> ::windows_core::Result<()> {
4914 (::windows_core::Interface::vtable(self).base__.SetSourceSize)(::windows_core::Interface::as_raw(self), width, height).ok()
4915 }
4916 pub unsafe fn GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows_core::Result<()> {
4917 (::windows_core::Interface::vtable(self).base__.GetSourceSize)(::windows_core::Interface::as_raw(self), pwidth, pheight).ok()
4918 }
4919 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
4920 (::windows_core::Interface::vtable(self).base__.SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
4921 }
4922 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
4923 let mut result__ = ::std::mem::zeroed();
4924 (::windows_core::Interface::vtable(self).base__.GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
4925 }
4926 #[doc = "Required features: `\"Win32_Foundation\"`"]
4927 #[cfg(feature = "Win32_Foundation")]
4928 pub unsafe fn GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE {
4929 (::windows_core::Interface::vtable(self).base__.GetFrameLatencyWaitableObject)(::windows_core::Interface::as_raw(self))
4930 }
4931 pub unsafe fn SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows_core::Result<()> {
4932 (::windows_core::Interface::vtable(self).base__.SetMatrixTransform)(::windows_core::Interface::as_raw(self), pmatrix).ok()
4933 }
4934 pub unsafe fn GetMatrixTransform(&self, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows_core::Result<()> {
4935 (::windows_core::Interface::vtable(self).base__.GetMatrixTransform)(::windows_core::Interface::as_raw(self), pmatrix).ok()
4936 }
4937 pub unsafe fn GetCurrentBackBufferIndex(&self) -> u32 {
4938 (::windows_core::Interface::vtable(self).GetCurrentBackBufferIndex)(::windows_core::Interface::as_raw(self))
4939 }
4940 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4941 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4942 pub unsafe fn CheckColorSpaceSupport(&self, colorspace: Common::DXGI_COLOR_SPACE_TYPE) -> ::windows_core::Result<u32> {
4943 let mut result__ = ::std::mem::zeroed();
4944 (::windows_core::Interface::vtable(self).CheckColorSpaceSupport)(::windows_core::Interface::as_raw(self), colorspace, &mut result__).from_abi(result__)
4945 }
4946 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4947 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4948 pub unsafe fn SetColorSpace1(&self, colorspace: Common::DXGI_COLOR_SPACE_TYPE) -> ::windows_core::Result<()> {
4949 (::windows_core::Interface::vtable(self).SetColorSpace1)(::windows_core::Interface::as_raw(self), colorspace).ok()
4950 }
4951 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
4952 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4953 pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::core::option::Option<::windows_core::IUnknown>) -> ::windows_core::Result<()> {
4954 (::windows_core::Interface::vtable(self).ResizeBuffers1)(::windows_core::Interface::as_raw(self), buffercount, width, height, format, swapchainflags, pcreationnodemask, ::core::mem::transmute(pppresentqueue)).ok()
4955 }
4956}
4957::windows_core::imp::interface_hierarchy!(IDXGISwapChain3, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGISwapChain, IDXGISwapChain1, IDXGISwapChain2);
4958unsafe impl ::core::marker::Send for IDXGISwapChain3 {}
4959unsafe impl ::core::marker::Sync for IDXGISwapChain3 {}
4960unsafe impl ::windows_core::Interface for IDXGISwapChain3 {
4961 type Vtable = IDXGISwapChain3_Vtbl;
4962}
4963unsafe impl ::windows_core::ComInterface for IDXGISwapChain3 {
4964 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x94d99bdb_f1f8_4ab0_b236_7da0170edab1);
4965}
4966#[repr(C)]
4967#[doc(hidden)]
4968pub struct IDXGISwapChain3_Vtbl {
4969 pub base__: IDXGISwapChain2_Vtbl,
4970 pub GetCurrentBackBufferIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
4971 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4972 pub CheckColorSpaceSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, colorspace: Common::DXGI_COLOR_SPACE_TYPE, pcolorspacesupport: *mut u32) -> ::windows_core::HRESULT,
4973 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4974 CheckColorSpaceSupport: usize,
4975 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4976 pub SetColorSpace1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, colorspace: Common::DXGI_COLOR_SPACE_TYPE) -> ::windows_core::HRESULT,
4977 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4978 SetColorSpace1: usize,
4979 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4980 pub ResizeBuffers1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const *mut ::core::ffi::c_void) -> ::windows_core::HRESULT,
4981 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4982 ResizeBuffers1: usize,
4983}
4984#[repr(transparent)]
4985#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
4986pub struct IDXGISwapChain4(::windows_core::IUnknown);
4987impl IDXGISwapChain4 {
4988 pub unsafe fn SetPrivateData(&self, name: *const ::windows_core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows_core::Result<()> {
4989 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows_core::Interface::as_raw(self), name, datasize, pdata).ok()
4990 }
4991 pub unsafe fn SetPrivateDataInterface<P0>(&self, name: *const ::windows_core::GUID, punknown: P0) -> ::windows_core::Result<()>
4992 where
4993 P0: ::windows_core::IntoParam<::windows_core::IUnknown>,
4994 {
4995 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows_core::Interface::as_raw(self), name, punknown.into_param().abi()).ok()
4996 }
4997 pub unsafe fn GetPrivateData(&self, name: *const ::windows_core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows_core::Result<()> {
4998 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows_core::Interface::as_raw(self), name, pdatasize, pdata).ok()
4999 }
5000 pub unsafe fn GetParent<T>(&self) -> ::windows_core::Result<T>
5001 where
5002 T: ::windows_core::ComInterface,
5003 {
5004 let mut result__ = ::std::ptr::null_mut();
5005 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetParent)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
5006 }
5007 pub unsafe fn GetDevice<T>(&self) -> ::windows_core::Result<T>
5008 where
5009 T: ::windows_core::ComInterface,
5010 {
5011 let mut result__ = ::std::ptr::null_mut();
5012 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDevice)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
5013 }
5014 pub unsafe fn Present(&self, syncinterval: u32, flags: u32) -> ::windows_core::HRESULT {
5015 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.Present)(::windows_core::Interface::as_raw(self), syncinterval, flags)
5016 }
5017 pub unsafe fn GetBuffer<T>(&self, buffer: u32) -> ::windows_core::Result<T>
5018 where
5019 T: ::windows_core::ComInterface,
5020 {
5021 let mut result__ = ::std::ptr::null_mut();
5022 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetBuffer)(::windows_core::Interface::as_raw(self), buffer, &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
5023 }
5024 #[doc = "Required features: `\"Win32_Foundation\"`"]
5025 #[cfg(feature = "Win32_Foundation")]
5026 pub unsafe fn SetFullscreenState<P0, P1>(&self, fullscreen: P0, ptarget: P1) -> ::windows_core::Result<()>
5027 where
5028 P0: ::windows_core::IntoParam<super::super::Foundation::BOOL>,
5029 P1: ::windows_core::IntoParam<IDXGIOutput>,
5030 {
5031 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.SetFullscreenState)(::windows_core::Interface::as_raw(self), fullscreen.into_param().abi(), ptarget.into_param().abi()).ok()
5032 }
5033 #[doc = "Required features: `\"Win32_Foundation\"`"]
5034 #[cfg(feature = "Win32_Foundation")]
5035 pub unsafe fn GetFullscreenState(&self, pfullscreen: ::core::option::Option<*mut super::super::Foundation::BOOL>, pptarget: ::core::option::Option<*mut ::core::option::Option<IDXGIOutput>>) -> ::windows_core::Result<()> {
5036 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetFullscreenState)(::windows_core::Interface::as_raw(self), ::core::mem::transmute(pfullscreen.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pptarget.unwrap_or(::std::ptr::null_mut()))).ok()
5037 }
5038 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
5039 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
5040 pub unsafe fn GetDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC) -> ::windows_core::Result<()> {
5041 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
5042 }
5043 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5044 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5045 pub unsafe fn ResizeBuffers(&self, buffercount: u32, width: u32, height: u32, newformat: Common::DXGI_FORMAT, swapchainflags: u32) -> ::windows_core::Result<()> {
5046 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.ResizeBuffers)(::windows_core::Interface::as_raw(self), buffercount, width, height, newformat, swapchainflags).ok()
5047 }
5048 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5049 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5050 pub unsafe fn ResizeTarget(&self, pnewtargetparameters: *const Common::DXGI_MODE_DESC) -> ::windows_core::Result<()> {
5051 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.ResizeTarget)(::windows_core::Interface::as_raw(self), pnewtargetparameters).ok()
5052 }
5053 pub unsafe fn GetContainingOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
5054 let mut result__ = ::std::mem::zeroed();
5055 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetContainingOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5056 }
5057 pub unsafe fn GetFrameStatistics(&self, pstats: *mut DXGI_FRAME_STATISTICS) -> ::windows_core::Result<()> {
5058 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetFrameStatistics)(::windows_core::Interface::as_raw(self), pstats).ok()
5059 }
5060 pub unsafe fn GetLastPresentCount(&self) -> ::windows_core::Result<u32> {
5061 let mut result__ = ::std::mem::zeroed();
5062 (::windows_core::Interface::vtable(self).base__.base__.base__.base__.GetLastPresentCount)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5063 }
5064 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
5065 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
5066 pub unsafe fn GetDesc1(&self, pdesc: *mut DXGI_SWAP_CHAIN_DESC1) -> ::windows_core::Result<()> {
5067 (::windows_core::Interface::vtable(self).base__.base__.base__.GetDesc1)(::windows_core::Interface::as_raw(self), pdesc).ok()
5068 }
5069 #[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
5070 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
5071 pub unsafe fn GetFullscreenDesc(&self, pdesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC) -> ::windows_core::Result<()> {
5072 (::windows_core::Interface::vtable(self).base__.base__.base__.GetFullscreenDesc)(::windows_core::Interface::as_raw(self), pdesc).ok()
5073 }
5074 #[doc = "Required features: `\"Win32_Foundation\"`"]
5075 #[cfg(feature = "Win32_Foundation")]
5076 pub unsafe fn GetHwnd(&self) -> ::windows_core::Result<super::super::Foundation::HWND> {
5077 let mut result__ = ::std::mem::zeroed();
5078 (::windows_core::Interface::vtable(self).base__.base__.base__.GetHwnd)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5079 }
5080 pub unsafe fn GetCoreWindow<T>(&self) -> ::windows_core::Result<T>
5081 where
5082 T: ::windows_core::ComInterface,
5083 {
5084 let mut result__ = ::std::ptr::null_mut();
5085 (::windows_core::Interface::vtable(self).base__.base__.base__.GetCoreWindow)(::windows_core::Interface::as_raw(self), &<T as ::windows_core::ComInterface>::IID, &mut result__).from_abi(result__)
5086 }
5087 #[doc = "Required features: `\"Win32_Foundation\"`"]
5088 #[cfg(feature = "Win32_Foundation")]
5089 pub unsafe fn Present1(&self, syncinterval: u32, presentflags: u32, ppresentparameters: *const DXGI_PRESENT_PARAMETERS) -> ::windows_core::HRESULT {
5090 (::windows_core::Interface::vtable(self).base__.base__.base__.Present1)(::windows_core::Interface::as_raw(self), syncinterval, presentflags, ppresentparameters)
5091 }
5092 #[doc = "Required features: `\"Win32_Foundation\"`"]
5093 #[cfg(feature = "Win32_Foundation")]
5094 pub unsafe fn IsTemporaryMonoSupported(&self) -> super::super::Foundation::BOOL {
5095 (::windows_core::Interface::vtable(self).base__.base__.base__.IsTemporaryMonoSupported)(::windows_core::Interface::as_raw(self))
5096 }
5097 pub unsafe fn GetRestrictToOutput(&self) -> ::windows_core::Result<IDXGIOutput> {
5098 let mut result__ = ::std::mem::zeroed();
5099 (::windows_core::Interface::vtable(self).base__.base__.base__.GetRestrictToOutput)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5100 }
5101 pub unsafe fn SetBackgroundColor(&self, pcolor: *const DXGI_RGBA) -> ::windows_core::Result<()> {
5102 (::windows_core::Interface::vtable(self).base__.base__.base__.SetBackgroundColor)(::windows_core::Interface::as_raw(self), pcolor).ok()
5103 }
5104 pub unsafe fn GetBackgroundColor(&self) -> ::windows_core::Result<DXGI_RGBA> {
5105 let mut result__ = ::std::mem::zeroed();
5106 (::windows_core::Interface::vtable(self).base__.base__.base__.GetBackgroundColor)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5107 }
5108 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5109 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5110 pub unsafe fn SetRotation(&self, rotation: Common::DXGI_MODE_ROTATION) -> ::windows_core::Result<()> {
5111 (::windows_core::Interface::vtable(self).base__.base__.base__.SetRotation)(::windows_core::Interface::as_raw(self), rotation).ok()
5112 }
5113 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5114 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5115 pub unsafe fn GetRotation(&self) -> ::windows_core::Result<Common::DXGI_MODE_ROTATION> {
5116 let mut result__ = ::std::mem::zeroed();
5117 (::windows_core::Interface::vtable(self).base__.base__.base__.GetRotation)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5118 }
5119 pub unsafe fn SetSourceSize(&self, width: u32, height: u32) -> ::windows_core::Result<()> {
5120 (::windows_core::Interface::vtable(self).base__.base__.SetSourceSize)(::windows_core::Interface::as_raw(self), width, height).ok()
5121 }
5122 pub unsafe fn GetSourceSize(&self, pwidth: *mut u32, pheight: *mut u32) -> ::windows_core::Result<()> {
5123 (::windows_core::Interface::vtable(self).base__.base__.GetSourceSize)(::windows_core::Interface::as_raw(self), pwidth, pheight).ok()
5124 }
5125 pub unsafe fn SetMaximumFrameLatency(&self, maxlatency: u32) -> ::windows_core::Result<()> {
5126 (::windows_core::Interface::vtable(self).base__.base__.SetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), maxlatency).ok()
5127 }
5128 pub unsafe fn GetMaximumFrameLatency(&self) -> ::windows_core::Result<u32> {
5129 let mut result__ = ::std::mem::zeroed();
5130 (::windows_core::Interface::vtable(self).base__.base__.GetMaximumFrameLatency)(::windows_core::Interface::as_raw(self), &mut result__).from_abi(result__)
5131 }
5132 #[doc = "Required features: `\"Win32_Foundation\"`"]
5133 #[cfg(feature = "Win32_Foundation")]
5134 pub unsafe fn GetFrameLatencyWaitableObject(&self) -> super::super::Foundation::HANDLE {
5135 (::windows_core::Interface::vtable(self).base__.base__.GetFrameLatencyWaitableObject)(::windows_core::Interface::as_raw(self))
5136 }
5137 pub unsafe fn SetMatrixTransform(&self, pmatrix: *const DXGI_MATRIX_3X2_F) -> ::windows_core::Result<()> {
5138 (::windows_core::Interface::vtable(self).base__.base__.SetMatrixTransform)(::windows_core::Interface::as_raw(self), pmatrix).ok()
5139 }
5140 pub unsafe fn GetMatrixTransform(&self, pmatrix: *mut DXGI_MATRIX_3X2_F) -> ::windows_core::Result<()> {
5141 (::windows_core::Interface::vtable(self).base__.base__.GetMatrixTransform)(::windows_core::Interface::as_raw(self), pmatrix).ok()
5142 }
5143 pub unsafe fn GetCurrentBackBufferIndex(&self) -> u32 {
5144 (::windows_core::Interface::vtable(self).base__.GetCurrentBackBufferIndex)(::windows_core::Interface::as_raw(self))
5145 }
5146 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5147 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5148 pub unsafe fn CheckColorSpaceSupport(&self, colorspace: Common::DXGI_COLOR_SPACE_TYPE) -> ::windows_core::Result<u32> {
5149 let mut result__ = ::std::mem::zeroed();
5150 (::windows_core::Interface::vtable(self).base__.CheckColorSpaceSupport)(::windows_core::Interface::as_raw(self), colorspace, &mut result__).from_abi(result__)
5151 }
5152 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5153 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5154 pub unsafe fn SetColorSpace1(&self, colorspace: Common::DXGI_COLOR_SPACE_TYPE) -> ::windows_core::Result<()> {
5155 (::windows_core::Interface::vtable(self).base__.SetColorSpace1)(::windows_core::Interface::as_raw(self), colorspace).ok()
5156 }
5157 #[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
5158 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5159 pub unsafe fn ResizeBuffers1(&self, buffercount: u32, width: u32, height: u32, format: Common::DXGI_FORMAT, swapchainflags: u32, pcreationnodemask: *const u32, pppresentqueue: *const ::core::option::Option<::windows_core::IUnknown>) -> ::windows_core::Result<()> {
5160 (::windows_core::Interface::vtable(self).base__.ResizeBuffers1)(::windows_core::Interface::as_raw(self), buffercount, width, height, format, swapchainflags, pcreationnodemask, ::core::mem::transmute(pppresentqueue)).ok()
5161 }
5162 pub unsafe fn SetHDRMetaData(&self, r#type: DXGI_HDR_METADATA_TYPE, pmetadata: ::core::option::Option<&[u8]>) -> ::windows_core::Result<()> {
5163 (::windows_core::Interface::vtable(self).SetHDRMetaData)(::windows_core::Interface::as_raw(self), r#type, pmetadata.as_deref().map_or(0, |slice| slice.len().try_into().unwrap()), ::core::mem::transmute(pmetadata.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr()))).ok()
5164 }
5165}
5166::windows_core::imp::interface_hierarchy!(IDXGISwapChain4, ::windows_core::IUnknown, IDXGIObject, IDXGIDeviceSubObject, IDXGISwapChain, IDXGISwapChain1, IDXGISwapChain2, IDXGISwapChain3);
5167unsafe impl ::core::marker::Send for IDXGISwapChain4 {}
5168unsafe impl ::core::marker::Sync for IDXGISwapChain4 {}
5169unsafe impl ::windows_core::Interface for IDXGISwapChain4 {
5170 type Vtable = IDXGISwapChain4_Vtbl;
5171}
5172unsafe impl ::windows_core::ComInterface for IDXGISwapChain4 {
5173 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x3d585d5a_bd4a_489e_b1f4_3dbcb6452ffb);
5174}
5175#[repr(C)]
5176#[doc(hidden)]
5177pub struct IDXGISwapChain4_Vtbl {
5178 pub base__: IDXGISwapChain3_Vtbl,
5179 pub SetHDRMetaData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: DXGI_HDR_METADATA_TYPE, size: u32, pmetadata: *const ::core::ffi::c_void) -> ::windows_core::HRESULT,
5180}
5181#[repr(transparent)]
5182#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
5183pub struct IDXGISwapChainMedia(::windows_core::IUnknown);
5184impl IDXGISwapChainMedia {
5185 pub unsafe fn GetFrameStatisticsMedia(&self, pstats: *mut DXGI_FRAME_STATISTICS_MEDIA) -> ::windows_core::Result<()> {
5186 (::windows_core::Interface::vtable(self).GetFrameStatisticsMedia)(::windows_core::Interface::as_raw(self), pstats).ok()
5187 }
5188 pub unsafe fn SetPresentDuration(&self, duration: u32) -> ::windows_core::Result<()> {
5189 (::windows_core::Interface::vtable(self).SetPresentDuration)(::windows_core::Interface::as_raw(self), duration).ok()
5190 }
5191 pub unsafe fn CheckPresentDurationSupport(&self, desiredpresentduration: u32, pclosestsmallerpresentduration: *mut u32, pclosestlargerpresentduration: *mut u32) -> ::windows_core::Result<()> {
5192 (::windows_core::Interface::vtable(self).CheckPresentDurationSupport)(::windows_core::Interface::as_raw(self), desiredpresentduration, pclosestsmallerpresentduration, pclosestlargerpresentduration).ok()
5193 }
5194}
5195::windows_core::imp::interface_hierarchy!(IDXGISwapChainMedia, ::windows_core::IUnknown);
5196unsafe impl ::core::marker::Send for IDXGISwapChainMedia {}
5197unsafe impl ::core::marker::Sync for IDXGISwapChainMedia {}
5198unsafe impl ::windows_core::Interface for IDXGISwapChainMedia {
5199 type Vtable = IDXGISwapChainMedia_Vtbl;
5200}
5201unsafe impl ::windows_core::ComInterface for IDXGISwapChainMedia {
5202 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xdd95b90b_f05f_4f6a_bd65_25bfb264bd84);
5203}
5204#[repr(C)]
5205#[doc(hidden)]
5206pub struct IDXGISwapChainMedia_Vtbl {
5207 pub base__: ::windows_core::IUnknown_Vtbl,
5208 pub GetFrameStatisticsMedia: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstats: *mut DXGI_FRAME_STATISTICS_MEDIA) -> ::windows_core::HRESULT,
5209 pub SetPresentDuration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, duration: u32) -> ::windows_core::HRESULT,
5210 pub CheckPresentDurationSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, desiredpresentduration: u32, pclosestsmallerpresentduration: *mut u32, pclosestlargerpresentduration: *mut u32) -> ::windows_core::HRESULT,
5211}
5212#[repr(transparent)]
5213#[derive(::core::cmp::PartialEq, ::core::cmp::Eq, ::core::fmt::Debug, ::core::clone::Clone)]
5214pub struct IDXGraphicsAnalysis(::windows_core::IUnknown);
5215impl IDXGraphicsAnalysis {
5216 pub unsafe fn BeginCapture(&self) {
5217 (::windows_core::Interface::vtable(self).BeginCapture)(::windows_core::Interface::as_raw(self))
5218 }
5219 pub unsafe fn EndCapture(&self) {
5220 (::windows_core::Interface::vtable(self).EndCapture)(::windows_core::Interface::as_raw(self))
5221 }
5222}
5223::windows_core::imp::interface_hierarchy!(IDXGraphicsAnalysis, ::windows_core::IUnknown);
5224unsafe impl ::windows_core::Interface for IDXGraphicsAnalysis {
5225 type Vtable = IDXGraphicsAnalysis_Vtbl;
5226}
5227unsafe impl ::windows_core::ComInterface for IDXGraphicsAnalysis {
5228 const IID: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x9f251514_9d4d_4902_9d60_18988ab7d4b5);
5229}
5230#[repr(C)]
5231#[doc(hidden)]
5232pub struct IDXGraphicsAnalysis_Vtbl {
5233 pub base__: ::windows_core::IUnknown_Vtbl,
5234 pub BeginCapture: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
5235 pub EndCapture: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
5236}
5237pub const DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(4i32);
5238pub const DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(32i32);
5239pub const DXGI_ADAPTER_FLAG3_NONE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(0i32);
5240pub const DXGI_ADAPTER_FLAG3_REMOTE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(1i32);
5241pub const DXGI_ADAPTER_FLAG3_SOFTWARE: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(2i32);
5242pub const DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(8i32);
5243pub const DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES: DXGI_ADAPTER_FLAG3 = DXGI_ADAPTER_FLAG3(16i32);
5244pub const DXGI_ADAPTER_FLAG_NONE: DXGI_ADAPTER_FLAG = DXGI_ADAPTER_FLAG(0i32);
5245pub const DXGI_ADAPTER_FLAG_REMOTE: DXGI_ADAPTER_FLAG = DXGI_ADAPTER_FLAG(1i32);
5246pub const DXGI_ADAPTER_FLAG_SOFTWARE: DXGI_ADAPTER_FLAG = DXGI_ADAPTER_FLAG(2i32);
5247pub const DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(1i32);
5248pub const DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(0i32);
5249pub const DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(4i32);
5250pub const DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(3i32);
5251pub const DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY: DXGI_COMPUTE_PREEMPTION_GRANULARITY = DXGI_COMPUTE_PREEMPTION_GRANULARITY(2i32);
5252pub const DXGI_CREATE_FACTORY_DEBUG: u32 = 1u32;
5253pub const DXGI_DEBUG_ALL: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0xe48ae283_da80_490b_87e6_43e9a9cfda08);
5254pub const DXGI_DEBUG_APP: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x06cd6e01_4219_4ebd_8709_27ed23360c62);
5255pub const DXGI_DEBUG_BINARY_VERSION: u32 = 1u32;
5256pub const DXGI_DEBUG_DX: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x35cdd7fc_13b2_421d_a5d7_7e4451287d64);
5257pub const DXGI_DEBUG_DXGI: ::windows_core::GUID = ::windows_core::GUID::from_u128(uuid:0x25cddaa4_b1c6_47e1_ac3e_98875b5a2e2a);
5258pub const DXGI_DEBUG_RLO_ALL: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(7i32);
5259pub const DXGI_DEBUG_RLO_DETAIL: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(2i32);
5260pub const DXGI_DEBUG_RLO_IGNORE_INTERNAL: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(4i32);
5261pub const DXGI_DEBUG_RLO_SUMMARY: DXGI_DEBUG_RLO_FLAGS = DXGI_DEBUG_RLO_FLAGS(1i32);
5262pub const DXGI_ENUM_MODES_DISABLED_STEREO: u32 = 8u32;
5263pub const DXGI_ENUM_MODES_INTERLACED: u32 = 1u32;
5264pub const DXGI_ENUM_MODES_SCALING: u32 = 2u32;
5265pub const DXGI_ENUM_MODES_STEREO: u32 = 4u32;
5266pub const DXGI_ERROR_ACCESS_DENIED: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270485i32);
5267pub const DXGI_ERROR_ACCESS_LOST: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270490i32);
5268pub const DXGI_ERROR_ALREADY_EXISTS: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270474i32);
5269pub const DXGI_ERROR_CACHE_CORRUPT: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270477i32);
5270pub const DXGI_ERROR_CACHE_FULL: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270476i32);
5271pub const DXGI_ERROR_CACHE_HASH_COLLISION: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270475i32);
5272pub const DXGI_ERROR_CANNOT_PROTECT_CONTENT: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270486i32);
5273pub const DXGI_ERROR_DEVICE_HUNG: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270522i32);
5274pub const DXGI_ERROR_DEVICE_REMOVED: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270523i32);
5275pub const DXGI_ERROR_DEVICE_RESET: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270521i32);
5276pub const DXGI_ERROR_DRIVER_INTERNAL_ERROR: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270496i32);
5277pub const DXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270479i32);
5278pub const DXGI_ERROR_FRAME_STATISTICS_DISJOINT: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270517i32);
5279pub const DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270516i32);
5280pub const DXGI_ERROR_HW_PROTECTION_OUTOFMEMORY: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270480i32);
5281pub const DXGI_ERROR_INVALID_CALL: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270527i32);
5282pub const DXGI_ERROR_MODE_CHANGE_IN_PROGRESS: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270491i32);
5283pub const DXGI_ERROR_MORE_DATA: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270525i32);
5284pub const DXGI_ERROR_MPO_UNPINNED: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270428i32);
5285pub const DXGI_ERROR_NAME_ALREADY_EXISTS: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270484i32);
5286pub const DXGI_ERROR_NONEXCLUSIVE: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270495i32);
5287pub const DXGI_ERROR_NON_COMPOSITED_UI: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270478i32);
5288pub const DXGI_ERROR_NOT_CURRENT: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270482i32);
5289pub const DXGI_ERROR_NOT_CURRENTLY_AVAILABLE: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270494i32);
5290pub const DXGI_ERROR_NOT_FOUND: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270526i32);
5291pub const DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270493i32);
5292pub const DXGI_ERROR_REMOTE_OUTOFMEMORY: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270492i32);
5293pub const DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270487i32);
5294pub const DXGI_ERROR_SDK_COMPONENT_MISSING: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270483i32);
5295pub const DXGI_ERROR_SESSION_DISCONNECTED: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270488i32);
5296pub const DXGI_ERROR_UNSUPPORTED: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270524i32);
5297pub const DXGI_ERROR_WAIT_TIMEOUT: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270489i32);
5298pub const DXGI_ERROR_WAS_STILL_DRAWING: ::windows_core::HRESULT = ::windows_core::HRESULT(-2005270518i32);
5299pub const DXGI_FEATURE_PRESENT_ALLOW_TEARING: DXGI_FEATURE = DXGI_FEATURE(0i32);
5300pub const DXGI_FRAME_PRESENTATION_MODE_COMPOSED: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(0i32);
5301pub const DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(3i32);
5302pub const DXGI_FRAME_PRESENTATION_MODE_NONE: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(2i32);
5303pub const DXGI_FRAME_PRESENTATION_MODE_OVERLAY: DXGI_FRAME_PRESENTATION_MODE = DXGI_FRAME_PRESENTATION_MODE(1i32);
5304pub const DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE: DXGI_GPU_PREFERENCE = DXGI_GPU_PREFERENCE(2i32);
5305pub const DXGI_GPU_PREFERENCE_MINIMUM_POWER: DXGI_GPU_PREFERENCE = DXGI_GPU_PREFERENCE(1i32);
5306pub const DXGI_GPU_PREFERENCE_UNSPECIFIED: DXGI_GPU_PREFERENCE = DXGI_GPU_PREFERENCE(0i32);
5307pub const DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(0i32);
5308pub const DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(4i32);
5309pub const DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(3i32);
5310pub const DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(1i32);
5311pub const DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY: DXGI_GRAPHICS_PREEMPTION_GRANULARITY = DXGI_GRAPHICS_PREEMPTION_GRANULARITY(2i32);
5312pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED: DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(4i32);
5313pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN: DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(1i32);
5314pub const DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED: DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS = DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(2i32);
5315pub const DXGI_HDR_METADATA_TYPE_HDR10: DXGI_HDR_METADATA_TYPE = DXGI_HDR_METADATA_TYPE(1i32);
5316pub const DXGI_HDR_METADATA_TYPE_HDR10PLUS: DXGI_HDR_METADATA_TYPE = DXGI_HDR_METADATA_TYPE(2i32);
5317pub const DXGI_HDR_METADATA_TYPE_NONE: DXGI_HDR_METADATA_TYPE = DXGI_HDR_METADATA_TYPE(0i32);
5318pub const DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT: u32 = 1024u32;
5319pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(3i32);
5320pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(4i32);
5321pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(9i32);
5322pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(2i32);
5323pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(1i32);
5324pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(8i32);
5325pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(10i32);
5326pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(5i32);
5327pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(7i32);
5328pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(6i32);
5329pub const DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN: DXGI_INFO_QUEUE_MESSAGE_CATEGORY = DXGI_INFO_QUEUE_MESSAGE_CATEGORY(0i32);
5330pub const DXGI_INFO_QUEUE_MESSAGE_ID_STRING_FROM_APPLICATION: u32 = 0u32;
5331pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(0i32);
5332pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(1i32);
5333pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(3i32);
5334pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(4i32);
5335pub const DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING: DXGI_INFO_QUEUE_MESSAGE_SEVERITY = DXGI_INFO_QUEUE_MESSAGE_SEVERITY(2i32);
5336pub const DXGI_MAP_DISCARD: u32 = 4u32;
5337pub const DXGI_MAP_READ: u32 = 1u32;
5338pub const DXGI_MAP_WRITE: u32 = 2u32;
5339pub const DXGI_MAX_SWAP_CHAIN_BUFFERS: u32 = 16u32;
5340pub const DXGI_MEMORY_SEGMENT_GROUP_LOCAL: DXGI_MEMORY_SEGMENT_GROUP = DXGI_MEMORY_SEGMENT_GROUP(0i32);
5341pub const DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL: DXGI_MEMORY_SEGMENT_GROUP = DXGI_MEMORY_SEGMENT_GROUP(1i32);
5342pub const DXGI_MSG_DXGIGetDebugInterface1_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(231i32);
5343pub const DXGI_MSG_DXGIGetDebugInterface1_NULL_ppDebug: DXGI_Message_Id = DXGI_Message_Id(230i32);
5344pub const DXGI_MSG_IDXGIAdapter_EnumOutputs2_InvalidEnumOutputs2Flag: DXGI_Message_Id = DXGI_Message_Id(257i32);
5345pub const DXGI_MSG_IDXGIAdapter_EnumOutputs_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(127i32);
5346pub const DXGI_MSG_IDXGIDecodeSwapChain_GetDestSize_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(245i32);
5347pub const DXGI_MSG_IDXGIDecodeSwapChain_GetSourceRect_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(243i32);
5348pub const DXGI_MSG_IDXGIDecodeSwapChain_GetTargetRect_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(244i32);
5349pub const DXGI_MSG_IDXGIDecodeSwapChain_SetColorSpace_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(239i32);
5350pub const DXGI_MSG_IDXGIDecodeSwapChain_SetDestSize_InvalidSize: DXGI_Message_Id = DXGI_Message_Id(242i32);
5351pub const DXGI_MSG_IDXGIDecodeSwapChain_SetSourceRect_InvalidRect: DXGI_Message_Id = DXGI_Message_Id(240i32);
5352pub const DXGI_MSG_IDXGIDecodeSwapChain_SetTargetRect_InvalidRect: DXGI_Message_Id = DXGI_Message_Id(241i32);
5353pub const DXGI_MSG_IDXGIDevice_CreateSurface_InvalidParametersWithpSharedResource: DXGI_Message_Id = DXGI_Message_Id(63i32);
5354pub const DXGI_MSG_IDXGIDisplayControl_IsStereoEnabled_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(195i32);
5355pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCompositionSurface_InvalidHandle: DXGI_Message_Id = DXGI_Message_Id(173i32);
5356pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_ForegroundUnsupportedOnAdapter: DXGI_Message_Id = DXGI_Message_Id(220i32);
5357pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_InvalidAlphaMode: DXGI_Message_Id = DXGI_Message_Id(222i32);
5358pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_InvalidScaling: DXGI_Message_Id = DXGI_Message_Id(221i32);
5359pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_UnsupportedOnWindows7: DXGI_Message_Id = DXGI_Message_Id(164i32);
5360pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_pWindowIsInvalid: DXGI_Message_Id = DXGI_Message_Id(172i32);
5361pub const DXGI_MSG_IDXGIFactory2_CreateSwapChainForCoreWindow_pWindowIsNULL: DXGI_Message_Id = DXGI_Message_Id(165i32);
5362pub const DXGI_MSG_IDXGIFactory2_RegisterOcclusionStatusEvent_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(193i32);
5363pub const DXGI_MSG_IDXGIFactory2_RegisterOcclusionStatusWindow_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(192i32);
5364pub const DXGI_MSG_IDXGIFactory2_UnregisterStatus_CookieNotFound: DXGI_Message_Id = DXGI_Message_Id(129i32);
5365pub const DXGI_MSG_IDXGIFactory7_UnregisterAdaptersChangedEvent_CookieNotFound: DXGI_Message_Id = DXGI_Message_Id(293i32);
5366pub const DXGI_MSG_IDXGIFactory_CheckFeatureSupport_InvalidFeature: DXGI_Message_Id = DXGI_Message_Id(287i32);
5367pub const DXGI_MSG_IDXGIFactory_CheckFeatureSupport_InvalidSize: DXGI_Message_Id = DXGI_Message_Id(288i32);
5368pub const DXGI_MSG_IDXGIFactory_CreateSoftwareAdapter_ModuleIsNULL: DXGI_Message_Id = DXGI_Message_Id(68i32);
5369pub const DXGI_MSG_IDXGIFactory_CreateSoftwareAdapter_ppAdapterInterfaceIsNULL: DXGI_Message_Id = DXGI_Message_Id(28i32);
5370pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_InvalidAlphaMode: DXGI_Message_Id = DXGI_Message_Id(196i32);
5371pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_InvalidScaling: DXGI_Message_Id = DXGI_Message_Id(189i32);
5372pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_OnlyFlipSequentialSupported: DXGI_Message_Id = DXGI_Message_Id(135i32);
5373pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_UnsupportedOnAdapter: DXGI_Message_Id = DXGI_Message_Id(136i32);
5374pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_UnsupportedOnWindows7: DXGI_Message_Id = DXGI_Message_Id(137i32);
5375pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForComposition_WidthOrHeightIsZero: DXGI_Message_Id = DXGI_Message_Id(134i32);
5376pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForCoreWindow_InvalidSwapEffect: DXGI_Message_Id = DXGI_Message_Id(190i32);
5377pub const DXGI_MSG_IDXGIFactory_CreateSwapChainForHwnd_InvalidScaling: DXGI_Message_Id = DXGI_Message_Id(278i32);
5378pub const DXGI_MSG_IDXGIFactory_CreateSwapChainOrRegisterOcclusionStatus_BlitModelUsedWhileRegisteredForOcclusionStatusEvents: DXGI_Message_Id = DXGI_Message_Id(208i32);
5379pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_10BitFormatNotSupported: DXGI_Message_Id = DXGI_Message_Id(272i32);
5380pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AllowTearingFlagIsFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(286i32);
5381pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AlphaIsFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(184i32);
5382pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AlphaIsWindowlessOnly: DXGI_Message_Id = DXGI_Message_Id(183i32);
5383pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_AlphaUnrecognized: DXGI_Message_Id = DXGI_Message_Id(182i32);
5384pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_BufferCountOOBForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(100i32);
5385pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_DisplayOnlyFullscreenUnsupported: DXGI_Message_Id = DXGI_Message_Id(143i32);
5386pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_DisplayOnlyOnLegacy: DXGI_Message_Id = DXGI_Message_Id(186i32);
5387pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_DisplayOnlyUnsupported: DXGI_Message_Id = DXGI_Message_Id(144i32);
5388pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FSUnsupportedForModernApps: DXGI_Message_Id = DXGI_Message_Id(166i32);
5389pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FailedToGoFSButNonPreRotated: DXGI_Message_Id = DXGI_Message_Id(207i32);
5390pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FlipSequentialNotSupportedOnD3D10: DXGI_Message_Id = DXGI_Message_Id(99i32);
5391pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_FlipSwapEffectRequired: DXGI_Message_Id = DXGI_Message_Id(273i32);
5392pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ForegroundIsCoreWindowOnly: DXGI_Message_Id = DXGI_Message_Id(219i32);
5393pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_HwProtectUnsupported: DXGI_Message_Id = DXGI_Message_Id(264i32);
5394pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidDevice: DXGI_Message_Id = DXGI_Message_Id(274i32);
5395pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(33i32);
5396pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidFormatForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(101i32);
5397pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidHwProtect: DXGI_Message_Id = DXGI_Message_Id(263i32);
5398pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_InvalidQueue: DXGI_Message_Id = DXGI_Message_Id(276i32);
5399pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_LegacyBltModelSwapEffect: DXGI_Message_Id = DXGI_Message_Id(294i32);
5400pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_MultiSamplingNotSupportedForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(102i32);
5401pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_MultipleSwapchainRefToSurface_DeferredDtr: DXGI_Message_Id = DXGI_Message_Id(297i32);
5402pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_NonPreRotatedAndGDICompatibleFlags: DXGI_Message_Id = DXGI_Message_Id(86i32);
5403pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_NonPreRotatedFlagAndWindowed: DXGI_Message_Id = DXGI_Message_Id(34i32);
5404pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_NullDeviceInterface: DXGI_Message_Id = DXGI_Message_Id(35i32);
5405pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_RestrictOutputNotSupportedOnAdapter: DXGI_Message_Id = DXGI_Message_Id(119i32);
5406pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_RestrictToOutputAdapterMismatch: DXGI_Message_Id = DXGI_Message_Id(185i32);
5407pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ScalingNoneIsFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(141i32);
5408pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ScalingNoneRequiresWindows8OrNewer: DXGI_Message_Id = DXGI_Message_Id(175i32);
5409pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ScalingUnrecognized: DXGI_Message_Id = DXGI_Message_Id(142i32);
5410pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ShaderInputUnsupported_YUV: DXGI_Message_Id = DXGI_Message_Id(254i32);
5411pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(124i32);
5412pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_UnknownSwapEffect: DXGI_Message_Id = DXGI_Message_Id(32i32);
5413pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_UnsupportedBufferUsageFlags: DXGI_Message_Id = DXGI_Message_Id(114i32);
5414pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_WaitableSwapChainsAreFlipModelOnly: DXGI_Message_Id = DXGI_Message_Id(210i32);
5415pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_WaitableSwapChainsAreNotFullscreen: DXGI_Message_Id = DXGI_Message_Id(211i32);
5416pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_pDescIsNULL: DXGI_Message_Id = DXGI_Message_Id(31i32);
5417pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_pDeviceHasMismatchedDXGIFactory: DXGI_Message_Id = DXGI_Message_Id(97i32);
5418pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_pRestrictToOutputFromOtherIDXGIFactory: DXGI_Message_Id = DXGI_Message_Id(118i32);
5419pub const DXGI_MSG_IDXGIFactory_CreateSwapChain_ppSwapChainIsNULL: DXGI_Message_Id = DXGI_Message_Id(30i32);
5420pub const DXGI_MSG_IDXGIFactory_Creation_CalledFromDllMain: DXGI_Message_Id = DXGI_Message_Id(76i32);
5421pub const DXGI_MSG_IDXGIFactory_EnumAdapters_ppAdapterInterfaceIsNULL: DXGI_Message_Id = DXGI_Message_Id(29i32);
5422pub const DXGI_MSG_IDXGIFactory_GetSharedResourceAdapterLuid_InvalidLUID: DXGI_Message_Id = DXGI_Message_Id(198i32);
5423pub const DXGI_MSG_IDXGIFactory_GetSharedResourceAdapterLuid_InvalidResource: DXGI_Message_Id = DXGI_Message_Id(197i32);
5424pub const DXGI_MSG_IDXGIFactory_GetSharedResourceAdapterLuid_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(199i32);
5425pub const DXGI_MSG_IDXGIFactory_GetWindowAssociation_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(126i32);
5426pub const DXGI_MSG_IDXGIFactory_GetWindowAssociation_phWndIsNULL: DXGI_Message_Id = DXGI_Message_Id(36i32);
5427pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_InvalidFlags: DXGI_Message_Id = DXGI_Message_Id(37i32);
5428pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_ModernApp: DXGI_Message_Id = DXGI_Message_Id(167i32);
5429pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_NoOpBehavior: DXGI_Message_Id = DXGI_Message_Id(298i32);
5430pub const DXGI_MSG_IDXGIFactory_MakeWindowAssociation_UnavailableInSession0: DXGI_Message_Id = DXGI_Message_Id(125i32);
5431pub const DXGI_MSG_IDXGIFactory_Release_CalledFromDllMain: DXGI_Message_Id = DXGI_Message_Id(83i32);
5432pub const DXGI_MSG_IDXGIObject_GetPrivateData_puiDataSizeIsNULL: DXGI_Message_Id = DXGI_Message_Id(64i32);
5433pub const DXGI_MSG_IDXGIOutput1_DuplicateOutput_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(194i32);
5434pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_2DOnly: DXGI_Message_Id = DXGI_Message_Id(200i32);
5435pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_MappedOrOfferedResource: DXGI_Message_Id = DXGI_Message_Id(205i32);
5436pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_NeedCPUAccessWrite: DXGI_Message_Id = DXGI_Message_Id(202i32);
5437pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_NoShared: DXGI_Message_Id = DXGI_Message_Id(203i32);
5438pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_OnlyMipLevels1: DXGI_Message_Id = DXGI_Message_Id(204i32);
5439pub const DXGI_MSG_IDXGIOutput1_GetDisplaySurfaceData1_StagingOnly: DXGI_Message_Id = DXGI_Message_Id(201i32);
5440pub const DXGI_MSG_IDXGIOutput3_CheckOverlaySupport_IDXGIDeviceNotSupportedBypConcernedDevice: DXGI_Message_Id = DXGI_Message_Id(256i32);
5441pub const DXGI_MSG_IDXGIOutput3_CheckOverlaySupport_NullPointers: DXGI_Message_Id = DXGI_Message_Id(255i32);
5442pub const DXGI_MSG_IDXGIOutput4_CheckOverlayColorSpaceSupport_IDXGIDeviceNotSupportedBypConcernedDevice: DXGI_Message_Id = DXGI_Message_Id(260i32);
5443pub const DXGI_MSG_IDXGIOutput4_CheckOverlayColorSpaceSupport_NullPointers: DXGI_Message_Id = DXGI_Message_Id(259i32);
5444pub const DXGI_MSG_IDXGIOutput6_CheckHardwareCompositionSupport_NullPointer: DXGI_Message_Id = DXGI_Message_Id(289i32);
5445pub const DXGI_MSG_IDXGIOutput_DuplicateOutput1_PerMonitorDpiRequired: DXGI_Message_Id = DXGI_Message_Id(292i32);
5446pub const DXGI_MSG_IDXGIOutput_DuplicateOutput_PerMonitorDpiShimApplied: DXGI_Message_Id = DXGI_Message_Id(291i32);
5447pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_IDXGIDeviceNotSupportedBypConcernedDevice: DXGI_Message_Id = DXGI_Message_Id(69i32);
5448pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_InvalidDisplayModeFormatAndDeviceCombination: DXGI_Message_Id = DXGI_Message_Id(75i32);
5449pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_InvalidDisplayModeScaling: DXGI_Message_Id = DXGI_Message_Id(74i32);
5450pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_InvalidDisplayModeScanlineOrdering: DXGI_Message_Id = DXGI_Message_Id(73i32);
5451pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_ModeHasInvalidWidthOrHeight: DXGI_Message_Id = DXGI_Message_Id(46i32);
5452pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_ModeHasRefreshRateDenominatorZero: DXGI_Message_Id = DXGI_Message_Id(71i32);
5453pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_RemoteDeviceNotSupported: DXGI_Message_Id = DXGI_Message_Id(62i32);
5454pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_RemoteOutputNotSupported: DXGI_Message_Id = DXGI_Message_Id(95i32);
5455pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_UnknownFormatIsInvalidForConfiguration: DXGI_Message_Id = DXGI_Message_Id(72i32);
5456pub const DXGI_MSG_IDXGIOutput_FindClosestMatchingMode_pModeToMatchOrpClosestMatchIsNULL: DXGI_Message_Id = DXGI_Message_Id(70i32);
5457pub const DXGI_MSG_IDXGIOutput_GetCammaControlCapabilities_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(47i32);
5458pub const DXGI_MSG_IDXGIOutput_GetDisplayModeList_RemoteDeviceNotSupported: DXGI_Message_Id = DXGI_Message_Id(61i32);
5459pub const DXGI_MSG_IDXGIOutput_GetDisplayModeList_RemoteOutputNotSupported: DXGI_Message_Id = DXGI_Message_Id(96i32);
5460pub const DXGI_MSG_IDXGIOutput_GetDisplayModeList_pNumModesIsNULL: DXGI_Message_Id = DXGI_Message_Id(45i32);
5461pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_ArraySizeMismatch: DXGI_Message_Id = DXGI_Message_Id(180i32);
5462pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_InvalidTargetSurfaceFormat: DXGI_Message_Id = DXGI_Message_Id(67i32);
5463pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_MapOfDestinationFailed: DXGI_Message_Id = DXGI_Message_Id(51i32);
5464pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(49i32);
5465pub const DXGI_MSG_IDXGIOutput_GetDisplaySurfaceData_pDestinationIsNULL: DXGI_Message_Id = DXGI_Message_Id(50i32);
5466pub const DXGI_MSG_IDXGIOutput_GetFrameStatistics_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(52i32);
5467pub const DXGI_MSG_IDXGIOutput_GetFrameStatistics_pStatsIsNULL: DXGI_Message_Id = DXGI_Message_Id(53i32);
5468pub const DXGI_MSG_IDXGIOutput_GetGammaControl_NoGammaControls: DXGI_Message_Id = DXGI_Message_Id(56i32);
5469pub const DXGI_MSG_IDXGIOutput_GetGammaControl_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(55i32);
5470pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_IDXGIResourceNotSupportedBypPrimary: DXGI_Message_Id = DXGI_Message_Id(57i32);
5471pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_ModernApp: DXGI_Message_Id = DXGI_Message_Id(170i32);
5472pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(59i32);
5473pub const DXGI_MSG_IDXGIOutput_SetDisplaySurface_pPrimaryIsInvalid: DXGI_Message_Id = DXGI_Message_Id(58i32);
5474pub const DXGI_MSG_IDXGIOutput_SetGammaControl_NoOwnerDevice: DXGI_Message_Id = DXGI_Message_Id(54i32);
5475pub const DXGI_MSG_IDXGIOutput_SetOrGetGammaControl_pArrayIsNULL: DXGI_Message_Id = DXGI_Message_Id(81i32);
5476pub const DXGI_MSG_IDXGIOutput_TakeOwnership_FailedToAcquireFullscreenMutex: DXGI_Message_Id = DXGI_Message_Id(27i32);
5477pub const DXGI_MSG_IDXGIOutput_TakeOwnership_ModernApp: DXGI_Message_Id = DXGI_Message_Id(171i32);
5478pub const DXGI_MSG_IDXGIOutput_TakeOwnership_RemoteDeviceNotSupported: DXGI_Message_Id = DXGI_Message_Id(60i32);
5479pub const DXGI_MSG_IDXGIOutput_TakeOwnership_RemoteOutputNotSupported: DXGI_Message_Id = DXGI_Message_Id(94i32);
5480pub const DXGI_MSG_IDXGIOutput_TakeOwnership_Unsupported: DXGI_Message_Id = DXGI_Message_Id(275i32);
5481pub const DXGI_MSG_IDXGIOutput_TakeOwnership_pDeviceIsNULL: DXGI_Message_Id = DXGI_Message_Id(48i32);
5482pub const DXGI_MSG_IDXGIResource1_CreateSharedHandle_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(191i32);
5483pub const DXGI_MSG_IDXGIResource1_CreateSubresourceSurface_InvalidIndex: DXGI_Message_Id = DXGI_Message_Id(188i32);
5484pub const DXGI_MSG_IDXGISurface1_GetDC_GDICompatibleFlagNotSet: DXGI_Message_Id = DXGI_Message_Id(89i32);
5485pub const DXGI_MSG_IDXGISurface1_GetDC_ModernApp: DXGI_Message_Id = DXGI_Message_Id(174i32);
5486pub const DXGI_MSG_IDXGISurface1_GetDC_SurfaceNotTexture2D: DXGI_Message_Id = DXGI_Message_Id(88i32);
5487pub const DXGI_MSG_IDXGISurface1_GetDC_UnreleasedHDC: DXGI_Message_Id = DXGI_Message_Id(90i32);
5488pub const DXGI_MSG_IDXGISurface1_GetDC_pHdcIsNULL: DXGI_Message_Id = DXGI_Message_Id(87i32);
5489pub const DXGI_MSG_IDXGISurface1_ReleaseDC_GetDCNotCalled: DXGI_Message_Id = DXGI_Message_Id(92i32);
5490pub const DXGI_MSG_IDXGISurface1_ReleaseDC_InvalidRectangleDimensions: DXGI_Message_Id = DXGI_Message_Id(93i32);
5491pub const DXGI_MSG_IDXGISurface_Map_DiscardAndReadFlagSet: DXGI_Message_Id = DXGI_Message_Id(40i32);
5492pub const DXGI_MSG_IDXGISurface_Map_DiscardButNotWriteFlagSet: DXGI_Message_Id = DXGI_Message_Id(41i32);
5493pub const DXGI_MSG_IDXGISurface_Map_DiscardFlagSetButCPUAccessIsNotDynamic: DXGI_Message_Id = DXGI_Message_Id(44i32);
5494pub const DXGI_MSG_IDXGISurface_Map_FlagsSetToZero: DXGI_Message_Id = DXGI_Message_Id(39i32);
5495pub const DXGI_MSG_IDXGISurface_Map_InvalidSurface: DXGI_Message_Id = DXGI_Message_Id(38i32);
5496pub const DXGI_MSG_IDXGISurface_Map_NoCPUAccess: DXGI_Message_Id = DXGI_Message_Id(42i32);
5497pub const DXGI_MSG_IDXGISurface_Map_NoCPUAccess2: DXGI_Message_Id = DXGI_Message_Id(91i32);
5498pub const DXGI_MSG_IDXGISurface_Map_ReadFlagSetButCPUAccessIsDynamic: DXGI_Message_Id = DXGI_Message_Id(43i32);
5499pub const DXGI_MSG_IDXGISwapChain1_GetRotation_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(158i32);
5500pub const DXGI_MSG_IDXGISwapChain1_GetRotation_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(153i32);
5501pub const DXGI_MSG_IDXGISwapChain1_SetBackgroundColor_OutOfRange: DXGI_Message_Id = DXGI_Message_Id(148i32);
5502pub const DXGI_MSG_IDXGISwapChain1_SetRotation_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(156i32);
5503pub const DXGI_MSG_IDXGISwapChain1_SetRotation_InvalidRotation: DXGI_Message_Id = DXGI_Message_Id(157i32);
5504pub const DXGI_MSG_IDXGISwapChain1_SetRotation_UnsupportedOS: DXGI_Message_Id = DXGI_Message_Id(152i32);
5505pub const DXGI_MSG_IDXGISwapChain3_CheckColorSpaceSupport_NullPointers: DXGI_Message_Id = DXGI_Message_Id(261i32);
5506pub const DXGI_MSG_IDXGISwapChain3_ResizeBuffers1_InvalidQueue: DXGI_Message_Id = DXGI_Message_Id(277i32);
5507pub const DXGI_MSG_IDXGISwapChain3_SetColorSpace1_InvalidColorSpace: DXGI_Message_Id = DXGI_Message_Id(262i32);
5508pub const DXGI_MSG_IDXGISwapChain3_SetHDRMetaData_InvalidPointer: DXGI_Message_Id = DXGI_Message_Id(280i32);
5509pub const DXGI_MSG_IDXGISwapChain3_SetHDRMetaData_InvalidSize: DXGI_Message_Id = DXGI_Message_Id(279i32);
5510pub const DXGI_MSG_IDXGISwapChain3_SetHDRMetaData_InvalidType: DXGI_Message_Id = DXGI_Message_Id(281i32);
5511pub const DXGI_MSG_IDXGISwapChain4_SetHDRMetaData_MetadataUnchanged: DXGI_Message_Id = DXGI_Message_Id(295i32);
5512pub const DXGI_MSG_IDXGISwapChain_CreateSwapChain_InvalidHwProtectGdiFlag: DXGI_Message_Id = DXGI_Message_Id(270i32);
5513pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_BufferHeightInferred: DXGI_Message_Id = DXGI_Message_Id(2i32);
5514pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_BufferWidthInferred: DXGI_Message_Id = DXGI_Message_Id(1i32);
5515pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_InvalidOutputWindow: DXGI_Message_Id = DXGI_Message_Id(0i32);
5516pub const DXGI_MSG_IDXGISwapChain_CreationOrResizeBuffers_NoScanoutFlagChanged: DXGI_Message_Id = DXGI_Message_Id(3i32);
5517pub const DXGI_MSG_IDXGISwapChain_CreationOrSetFullscreenState_FSUnsupportedForFlipDiscard: DXGI_Message_Id = DXGI_Message_Id(258i32);
5518pub const DXGI_MSG_IDXGISwapChain_CreationOrSetFullscreenState_StereoDisabled: DXGI_Message_Id = DXGI_Message_Id(128i32);
5519pub const DXGI_MSG_IDXGISwapChain_Creation_InvalidOutputWindow: DXGI_Message_Id = DXGI_Message_Id(65i32);
5520pub const DXGI_MSG_IDXGISwapChain_Creation_InvalidWindowStyle: DXGI_Message_Id = DXGI_Message_Id(78i32);
5521pub const DXGI_MSG_IDXGISwapChain_Creation_MaxBufferCountExceeded: DXGI_Message_Id = DXGI_Message_Id(4i32);
5522pub const DXGI_MSG_IDXGISwapChain_Creation_NoOutputWindow: DXGI_Message_Id = DXGI_Message_Id(6i32);
5523pub const DXGI_MSG_IDXGISwapChain_Creation_TooFewBuffers: DXGI_Message_Id = DXGI_Message_Id(5i32);
5524pub const DXGI_MSG_IDXGISwapChain_Destruction_OtherMethodsCalled: DXGI_Message_Id = DXGI_Message_Id(7i32);
5525pub const DXGI_MSG_IDXGISwapChain_GetBuffer_NoAllocatedBuffers: DXGI_Message_Id = DXGI_Message_Id(10i32);
5526pub const DXGI_MSG_IDXGISwapChain_GetBuffer_iBufferMustBeZero: DXGI_Message_Id = DXGI_Message_Id(11i32);
5527pub const DXGI_MSG_IDXGISwapChain_GetBuffer_iBufferOOB: DXGI_Message_Id = DXGI_Message_Id(12i32);
5528pub const DXGI_MSG_IDXGISwapChain_GetBuffer_ppSurfaceIsNULL: DXGI_Message_Id = DXGI_Message_Id(9i32);
5529pub const DXGI_MSG_IDXGISwapChain_GetCompositionSurface_WrongType: DXGI_Message_Id = DXGI_Message_Id(160i32);
5530pub const DXGI_MSG_IDXGISwapChain_GetContainingOutput_SwapchainAdapterDoesNotControlOutput: DXGI_Message_Id = DXGI_Message_Id(80i32);
5531pub const DXGI_MSG_IDXGISwapChain_GetContainingOutput_ppOutputIsNULL: DXGI_Message_Id = DXGI_Message_Id(13i32);
5532pub const DXGI_MSG_IDXGISwapChain_GetCoreWindow_WrongType: DXGI_Message_Id = DXGI_Message_Id(161i32);
5533pub const DXGI_MSG_IDXGISwapChain_GetDesc_pDescIsNULL: DXGI_Message_Id = DXGI_Message_Id(8i32);
5534pub const DXGI_MSG_IDXGISwapChain_GetFrameLatencyWaitableObject_OnlyWaitable: DXGI_Message_Id = DXGI_Message_Id(214i32);
5535pub const DXGI_MSG_IDXGISwapChain_GetFrameStatistics_UnsupportedStatistics: DXGI_Message_Id = DXGI_Message_Id(79i32);
5536pub const DXGI_MSG_IDXGISwapChain_GetFrameStatistics_pStatsIsNULL: DXGI_Message_Id = DXGI_Message_Id(24i32);
5537pub const DXGI_MSG_IDXGISwapChain_GetFullscreenDesc_NonHwnd: DXGI_Message_Id = DXGI_Message_Id(162i32);
5538pub const DXGI_MSG_IDXGISwapChain_GetHwnd_WrongType: DXGI_Message_Id = DXGI_Message_Id(159i32);
5539pub const DXGI_MSG_IDXGISwapChain_GetLastPresentCount_pLastPresentCountIsNULL: DXGI_Message_Id = DXGI_Message_Id(25i32);
5540pub const DXGI_MSG_IDXGISwapChain_GetMatrixTransform_MatrixPointerCannotBeNull: DXGI_Message_Id = DXGI_Message_Id(228i32);
5541pub const DXGI_MSG_IDXGISwapChain_GetMatrixTransform_RequiresCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(229i32);
5542pub const DXGI_MSG_IDXGISwapChain_GetMatrixTransform_YUV: DXGI_Message_Id = DXGI_Message_Id(250i32);
5543pub const DXGI_MSG_IDXGISwapChain_GetMaximumFrameLatency_OnlyWaitable: DXGI_Message_Id = DXGI_Message_Id(215i32);
5544pub const DXGI_MSG_IDXGISwapChain_GetMaximumFrameLatency_pMaxLatencyIsNULL: DXGI_Message_Id = DXGI_Message_Id(216i32);
5545pub const DXGI_MSG_IDXGISwapChain_GetSourceSize_Decode: DXGI_Message_Id = DXGI_Message_Id(238i32);
5546pub const DXGI_MSG_IDXGISwapChain_GetSourceSize_NullPointers: DXGI_Message_Id = DXGI_Message_Id(237i32);
5547pub const DXGI_MSG_IDXGISwapChain_GetSourceSize_YUV: DXGI_Message_Id = DXGI_Message_Id(248i32);
5548pub const DXGI_MSG_IDXGISwapChain_PresentBuffer_YUV: DXGI_Message_Id = DXGI_Message_Id(246i32);
5549pub const DXGI_MSG_IDXGISwapChain_Present_11On12_Released_Resource: DXGI_Message_Id = DXGI_Message_Id(296i32);
5550pub const DXGI_MSG_IDXGISwapChain_Present_AllowTearingRequiresCreationFlag: DXGI_Message_Id = DXGI_Message_Id(284i32);
5551pub const DXGI_MSG_IDXGISwapChain_Present_AllowTearingRequiresPresentIntervalZero: DXGI_Message_Id = DXGI_Message_Id(283i32);
5552pub const DXGI_MSG_IDXGISwapChain_Present_BlitModelUsedWhileRegisteredForOcclusionStatusEvents: DXGI_Message_Id = DXGI_Message_Id(209i32);
5553pub const DXGI_MSG_IDXGISwapChain_Present_Decode: DXGI_Message_Id = DXGI_Message_Id(232i32);
5554pub const DXGI_MSG_IDXGISwapChain_Present_DirtyRectOutOfBackbufferBounds: DXGI_Message_Id = DXGI_Message_Id(113i32);
5555pub const DXGI_MSG_IDXGISwapChain_Present_DoNotSequenceFlagSetButPreviousBufferIsUndefined: DXGI_Message_Id = DXGI_Message_Id(115i32);
5556pub const DXGI_MSG_IDXGISwapChain_Present_EmptyDirtyRect: DXGI_Message_Id = DXGI_Message_Id(112i32);
5557pub const DXGI_MSG_IDXGISwapChain_Present_EmptyScrollRect: DXGI_Message_Id = DXGI_Message_Id(109i32);
5558pub const DXGI_MSG_IDXGISwapChain_Present_FlipModelChainMustResizeOrCreateOnFSTransition: DXGI_Message_Id = DXGI_Message_Id(117i32);
5559pub const DXGI_MSG_IDXGISwapChain_Present_FullscreenAllowTearingIsInvalid: DXGI_Message_Id = DXGI_Message_Id(282i32);
5560pub const DXGI_MSG_IDXGISwapChain_Present_FullscreenPartialPresentIsInvalid: DXGI_Message_Id = DXGI_Message_Id(106i32);
5561pub const DXGI_MSG_IDXGISwapChain_Present_GetDXGIAdapterFailed: DXGI_Message_Id = DXGI_Message_Id(17i32);
5562pub const DXGI_MSG_IDXGISwapChain_Present_InvalidNonPreRotatedFlag: DXGI_Message_Id = DXGI_Message_Id(15i32);
5563pub const DXGI_MSG_IDXGISwapChain_Present_InvalidPresentTestOrDoNotSequenceFlag: DXGI_Message_Id = DXGI_Message_Id(107i32);
5564pub const DXGI_MSG_IDXGISwapChain_Present_NoAllocatedBuffers: DXGI_Message_Id = DXGI_Message_Id(16i32);
5565pub const DXGI_MSG_IDXGISwapChain_Present_NonOptimalFSConfiguration: DXGI_Message_Id = DXGI_Message_Id(98i32);
5566pub const DXGI_MSG_IDXGISwapChain_Present_OtherFlagsCausingInvalidPresentTestFlag: DXGI_Message_Id = DXGI_Message_Id(123i32);
5567pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentationBeforeStandardPresentation: DXGI_Message_Id = DXGI_Message_Id(105i32);
5568pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentationWithMSAABuffers: DXGI_Message_Id = DXGI_Message_Id(155i32);
5569pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentationWithSwapEffectDiscard: DXGI_Message_Id = DXGI_Message_Id(181i32);
5570pub const DXGI_MSG_IDXGISwapChain_Present_PartialPresentation_YUV: DXGI_Message_Id = DXGI_Message_Id(251i32);
5571pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentInWindowedModeWithDWMOffOrInvalidDisplayAffinity: DXGI_Message_Id = DXGI_Message_Id(133i32);
5572pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentInWindowedModeWithoutFSOrOverlay: DXGI_Message_Id = DXGI_Message_Id(130i32);
5573pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentInWindowedModeWithoutFlipSequential: DXGI_Message_Id = DXGI_Message_Id(131i32);
5574pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedContentWithRDPDriver: DXGI_Message_Id = DXGI_Message_Id(132i32);
5575pub const DXGI_MSG_IDXGISwapChain_Present_ProtectedWindowlessPresentationRequiresDisplayOnly: DXGI_Message_Id = DXGI_Message_Id(146i32);
5576pub const DXGI_MSG_IDXGISwapChain_Present_RestartIsFullscreenOnly: DXGI_Message_Id = DXGI_Message_Id(145i32);
5577pub const DXGI_MSG_IDXGISwapChain_Present_RestrictOutputFlagWithStaleSwapChain: DXGI_Message_Id = DXGI_Message_Id(122i32);
5578pub const DXGI_MSG_IDXGISwapChain_Present_RestrictToOutputFlagSetButInvalidpRestrictToOutput: DXGI_Message_Id = DXGI_Message_Id(120i32);
5579pub const DXGI_MSG_IDXGISwapChain_Present_RestrictToOutputFlagdWithFullscreen: DXGI_Message_Id = DXGI_Message_Id(121i32);
5580pub const DXGI_MSG_IDXGISwapChain_Present_ScrollInfoWithNoDirtyRectsSpecified: DXGI_Message_Id = DXGI_Message_Id(108i32);
5581pub const DXGI_MSG_IDXGISwapChain_Present_ScrollRectOutOfBackbufferBounds: DXGI_Message_Id = DXGI_Message_Id(110i32);
5582pub const DXGI_MSG_IDXGISwapChain_Present_ScrollRectOutOfBackbufferBoundsWithOffset: DXGI_Message_Id = DXGI_Message_Id(111i32);
5583pub const DXGI_MSG_IDXGISwapChain_Present_SyncIntervalOOB: DXGI_Message_Id = DXGI_Message_Id(14i32);
5584pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoAndPreferRight: DXGI_Message_Id = DXGI_Message_Id(176i32);
5585pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoOrPreferRightWithDoNotSequence: DXGI_Message_Id = DXGI_Message_Id(177i32);
5586pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoOrPreferRightWithoutStereo: DXGI_Message_Id = DXGI_Message_Id(178i32);
5587pub const DXGI_MSG_IDXGISwapChain_Present_TemporaryMonoUnsupported: DXGI_Message_Id = DXGI_Message_Id(179i32);
5588pub const DXGI_MSG_IDXGISwapChain_Present_UnreleasedHDC: DXGI_Message_Id = DXGI_Message_Id(84i32);
5589pub const DXGI_MSG_IDXGISwapChain_Present_UnsupportedFlags: DXGI_Message_Id = DXGI_Message_Id(116i32);
5590pub const DXGI_MSG_IDXGISwapChain_Release_SwapChainIsFullscreen: DXGI_Message_Id = DXGI_Message_Id(66i32);
5591pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers1_D3D12Only: DXGI_Message_Id = DXGI_Message_Id(267i32);
5592pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers1_FlipModel: DXGI_Message_Id = DXGI_Message_Id(268i32);
5593pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers1_NodeMaskAndQueueRequired: DXGI_Message_Id = DXGI_Message_Id(269i32);
5594pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_Alignment_YUV: DXGI_Message_Id = DXGI_Message_Id(253i32);
5595pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_BufferCountOOB: DXGI_Message_Id = DXGI_Message_Id(18i32);
5596pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_BufferCountOOBForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(103i32);
5597pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveAllowTearingFlag: DXGI_Message_Id = DXGI_Message_Id(285i32);
5598pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveFlag_YUV: DXGI_Message_Id = DXGI_Message_Id(252i32);
5599pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveForegroundFlag: DXGI_Message_Id = DXGI_Message_Id(223i32);
5600pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_CannotAddOrRemoveWaitableFlag: DXGI_Message_Id = DXGI_Message_Id(213i32);
5601pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_Decode: DXGI_Message_Id = DXGI_Message_Id(233i32);
5602pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_DisplayOnlyFullscreenUnsupported: DXGI_Message_Id = DXGI_Message_Id(149i32);
5603pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_DisplayOnlyOnLegacy: DXGI_Message_Id = DXGI_Message_Id(187i32);
5604pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_DisplayOnlyUnsupported: DXGI_Message_Id = DXGI_Message_Id(150i32);
5605pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_HwProtectUnsupported: DXGI_Message_Id = DXGI_Message_Id(266i32);
5606pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidFormatForFlipSequential: DXGI_Message_Id = DXGI_Message_Id(104i32);
5607pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidHwProtect: DXGI_Message_Id = DXGI_Message_Id(265i32);
5608pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidHwProtectGdiFlag: DXGI_Message_Id = DXGI_Message_Id(271i32);
5609pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidNonPreRotatedFlag: DXGI_Message_Id = DXGI_Message_Id(21i32);
5610pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_InvalidSwapChainFlag: DXGI_Message_Id = DXGI_Message_Id(20i32);
5611pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_NonPreRotatedAndGDICompatibleFlags: DXGI_Message_Id = DXGI_Message_Id(85i32);
5612pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_UnreleasedReferences: DXGI_Message_Id = DXGI_Message_Id(19i32);
5613pub const DXGI_MSG_IDXGISwapChain_ResizeBuffers_WidthOrHeightIsZero: DXGI_Message_Id = DXGI_Message_Id(140i32);
5614pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_InvalidWithCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(139i32);
5615pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_ModernApp: DXGI_Message_Id = DXGI_Message_Id(168i32);
5616pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_RefreshRateDivideByZero: DXGI_Message_Id = DXGI_Message_Id(22i32);
5617pub const DXGI_MSG_IDXGISwapChain_ResizeTarget_pNewTargetParametersIsNULL: DXGI_Message_Id = DXGI_Message_Id(169i32);
5618pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_CoreWindow: DXGI_Message_Id = DXGI_Message_Id(163i32);
5619pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_DisplayOnlyUnsupported: DXGI_Message_Id = DXGI_Message_Id(147i32);
5620pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_FSTransitionWithCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(138i32);
5621pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_FSUnsupportedForModernApps: DXGI_Message_Id = DXGI_Message_Id(206i32);
5622pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_FullscreenInvalidForChildWindows: DXGI_Message_Id = DXGI_Message_Id(82i32);
5623pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_InvalidTarget: DXGI_Message_Id = DXGI_Message_Id(23i32);
5624pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_OutputNotOwnedBySwapChainDevice: DXGI_Message_Id = DXGI_Message_Id(77i32);
5625pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_PerMonitorDpiShimApplied: DXGI_Message_Id = DXGI_Message_Id(290i32);
5626pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_RemoteNotSupported: DXGI_Message_Id = DXGI_Message_Id(26i32);
5627pub const DXGI_MSG_IDXGISwapChain_SetFullscreenState_Waitable: DXGI_Message_Id = DXGI_Message_Id(212i32);
5628pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_MatrixMustBeFinite: DXGI_Message_Id = DXGI_Message_Id(226i32);
5629pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_MatrixMustBeTranslateAndOrScale: DXGI_Message_Id = DXGI_Message_Id(227i32);
5630pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_MatrixPointerCannotBeNull: DXGI_Message_Id = DXGI_Message_Id(224i32);
5631pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_RequiresCompositionSwapChain: DXGI_Message_Id = DXGI_Message_Id(225i32);
5632pub const DXGI_MSG_IDXGISwapChain_SetMatrixTransform_YUV: DXGI_Message_Id = DXGI_Message_Id(249i32);
5633pub const DXGI_MSG_IDXGISwapChain_SetMaximumFrameLatency_MaxLatencyIsOutOfBounds: DXGI_Message_Id = DXGI_Message_Id(218i32);
5634pub const DXGI_MSG_IDXGISwapChain_SetMaximumFrameLatency_OnlyWaitable: DXGI_Message_Id = DXGI_Message_Id(217i32);
5635pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_Decode: DXGI_Message_Id = DXGI_Message_Id(235i32);
5636pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_FlipModel: DXGI_Message_Id = DXGI_Message_Id(234i32);
5637pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_WidthHeight: DXGI_Message_Id = DXGI_Message_Id(236i32);
5638pub const DXGI_MSG_IDXGISwapChain_SetSourceSize_YUV: DXGI_Message_Id = DXGI_Message_Id(247i32);
5639pub const DXGI_MSG_IDXGISwapchain_Present_FullscreenRotation: DXGI_Message_Id = DXGI_Message_Id(154i32);
5640pub const DXGI_MSG_IDXGISwapchain_Present_ScrollUnsupported: DXGI_Message_Id = DXGI_Message_Id(151i32);
5641pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_DISCARD_BufferCount: DXGI_Message_Id = DXGI_Message_Id(1001i32);
5642pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_FLIP_Modern_CoreWindow_Only: DXGI_Message_Id = DXGI_Message_Id(1028i32);
5643pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_FLIP_SEQUENTIAL_BufferCount: DXGI_Message_Id = DXGI_Message_Id(1027i32);
5644pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_FailedRegisterWithCompositor: DXGI_Message_Id = DXGI_Message_Id(1025i32);
5645pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_MSAA_NotSupported: DXGI_Message_Id = DXGI_Message_Id(1021i32);
5646pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_NotForegroundWindow: DXGI_Message_Id = DXGI_Message_Id(1000i32);
5647pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_NotForegroundWindow_AtRendering: DXGI_Message_Id = DXGI_Message_Id(1026i32);
5648pub const DXGI_MSG_Phone_IDXGIFactory_CreateSwapChain_ScalingAspectRatioStretch_Supported_ModernApp: DXGI_Message_Id = DXGI_Message_Id(1022i32);
5649pub const DXGI_MSG_Phone_IDXGISwapChain_GetBackgroundColor_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(1031i32);
5650pub const DXGI_MSG_Phone_IDXGISwapChain_GetFrameStatistics_NotAvailable_ModernApp: DXGI_Message_Id = DXGI_Message_Id(1023i32);
5651pub const DXGI_MSG_Phone_IDXGISwapChain_Present1_RequiresOverlays: DXGI_Message_Id = DXGI_Message_Id(1029i32);
5652pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidBlend: DXGI_Message_Id = DXGI_Message_Id(1009i32);
5653pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidDestinationRect: DXGI_Message_Id = DXGI_Message_Id(1016i32);
5654pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidFlag: DXGI_Message_Id = DXGI_Message_Id(1019i32);
5655pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidIndexForOverlay: DXGI_Message_Id = DXGI_Message_Id(1013i32);
5656pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidIndexForPrimary: DXGI_Message_Id = DXGI_Message_Id(1012i32);
5657pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidInterval: DXGI_Message_Id = DXGI_Message_Id(1020i32);
5658pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidLayerFlag: DXGI_Message_Id = DXGI_Message_Id(1007i32);
5659pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidLayerIndex: DXGI_Message_Id = DXGI_Message_Id(1005i32);
5660pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidMultiPlaneOverlayResource: DXGI_Message_Id = DXGI_Message_Id(1011i32);
5661pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidResource: DXGI_Message_Id = DXGI_Message_Id(1010i32);
5662pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidRotation: DXGI_Message_Id = DXGI_Message_Id(1008i32);
5663pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidSourceRect: DXGI_Message_Id = DXGI_Message_Id(1015i32);
5664pub const DXGI_MSG_Phone_IDXGISwapChain_Present_InvalidSubResourceIndex: DXGI_Message_Id = DXGI_Message_Id(1014i32);
5665pub const DXGI_MSG_Phone_IDXGISwapChain_Present_MultipleLayerIndex: DXGI_Message_Id = DXGI_Message_Id(1006i32);
5666pub const DXGI_MSG_Phone_IDXGISwapChain_Present_MultipleResource: DXGI_Message_Id = DXGI_Message_Id(1017i32);
5667pub const DXGI_MSG_Phone_IDXGISwapChain_Present_NotSharedResource: DXGI_Message_Id = DXGI_Message_Id(1018i32);
5668pub const DXGI_MSG_Phone_IDXGISwapChain_Present_ReplaceInterval0With1: DXGI_Message_Id = DXGI_Message_Id(1024i32);
5669pub const DXGI_MSG_Phone_IDXGISwapChain_ResizeBuffers_NotAvailable: DXGI_Message_Id = DXGI_Message_Id(1003i32);
5670pub const DXGI_MSG_Phone_IDXGISwapChain_ResizeTarget_NotAvailable: DXGI_Message_Id = DXGI_Message_Id(1004i32);
5671pub const DXGI_MSG_Phone_IDXGISwapChain_SetBackgroundColor_FlipSequentialRequired: DXGI_Message_Id = DXGI_Message_Id(1030i32);
5672pub const DXGI_MSG_Phone_IDXGISwapChain_SetFullscreenState_NotAvailable: DXGI_Message_Id = DXGI_Message_Id(1002i32);
5673pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(2i32);
5674pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(1i32);
5675pub const DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS = DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(4i32);
5676pub const DXGI_MWA_NO_ALT_ENTER: u32 = 2u32;
5677pub const DXGI_MWA_NO_PRINT_SCREEN: u32 = 4u32;
5678pub const DXGI_MWA_NO_WINDOW_CHANGES: u32 = 1u32;
5679pub const DXGI_MWA_VALID: u32 = 7u32;
5680pub const DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT: DXGI_OFFER_RESOURCE_FLAGS = DXGI_OFFER_RESOURCE_FLAGS(1i32);
5681pub const DXGI_OFFER_RESOURCE_PRIORITY_HIGH: DXGI_OFFER_RESOURCE_PRIORITY = DXGI_OFFER_RESOURCE_PRIORITY(3i32);
5682pub const DXGI_OFFER_RESOURCE_PRIORITY_LOW: DXGI_OFFER_RESOURCE_PRIORITY = DXGI_OFFER_RESOURCE_PRIORITY(1i32);
5683pub const DXGI_OFFER_RESOURCE_PRIORITY_NORMAL: DXGI_OFFER_RESOURCE_PRIORITY = DXGI_OFFER_RESOURCE_PRIORITY(2i32);
5684pub const DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY: DXGI_OUTDUPL_FLAG = DXGI_OUTDUPL_FLAG(1i32);
5685pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR: DXGI_OUTDUPL_POINTER_SHAPE_TYPE = DXGI_OUTDUPL_POINTER_SHAPE_TYPE(2i32);
5686pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR: DXGI_OUTDUPL_POINTER_SHAPE_TYPE = DXGI_OUTDUPL_POINTER_SHAPE_TYPE(4i32);
5687pub const DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME: DXGI_OUTDUPL_POINTER_SHAPE_TYPE = DXGI_OUTDUPL_POINTER_SHAPE_TYPE(1i32);
5688pub const DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT: DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG = DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG(1i32);
5689pub const DXGI_OVERLAY_SUPPORT_FLAG_DIRECT: DXGI_OVERLAY_SUPPORT_FLAG = DXGI_OVERLAY_SUPPORT_FLAG(1i32);
5690pub const DXGI_OVERLAY_SUPPORT_FLAG_SCALING: DXGI_OVERLAY_SUPPORT_FLAG = DXGI_OVERLAY_SUPPORT_FLAG(2i32);
5691pub const DXGI_PRESENT_ALLOW_TEARING: u32 = 512u32;
5692pub const DXGI_PRESENT_DO_NOT_SEQUENCE: u32 = 2u32;
5693pub const DXGI_PRESENT_DO_NOT_WAIT: u32 = 8u32;
5694pub const DXGI_PRESENT_RESTART: u32 = 4u32;
5695pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: u32 = 64u32;
5696pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: u32 = 16u32;
5697pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: u32 = 32u32;
5698pub const DXGI_PRESENT_TEST: u32 = 1u32;
5699pub const DXGI_PRESENT_USE_DURATION: u32 = 256u32;
5700pub const DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED: DXGI_RECLAIM_RESOURCE_RESULTS = DXGI_RECLAIM_RESOURCE_RESULTS(1i32);
5701pub const DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED: DXGI_RECLAIM_RESOURCE_RESULTS = DXGI_RECLAIM_RESOURCE_RESULTS(2i32);
5702pub const DXGI_RECLAIM_RESOURCE_RESULT_OK: DXGI_RECLAIM_RESOURCE_RESULTS = DXGI_RECLAIM_RESOURCE_RESULTS(0i32);
5703pub const DXGI_RESIDENCY_EVICTED_TO_DISK: DXGI_RESIDENCY = DXGI_RESIDENCY(3i32);
5704pub const DXGI_RESIDENCY_FULLY_RESIDENT: DXGI_RESIDENCY = DXGI_RESIDENCY(1i32);
5705pub const DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY: DXGI_RESIDENCY = DXGI_RESIDENCY(2i32);
5706pub const DXGI_RESOURCE_PRIORITY_HIGH: u32 = 2684354560u32;
5707pub const DXGI_RESOURCE_PRIORITY_LOW: u32 = 1342177280u32;
5708pub const DXGI_RESOURCE_PRIORITY_MAXIMUM: u32 = 3355443200u32;
5709pub const DXGI_RESOURCE_PRIORITY_MINIMUM: u32 = 671088640u32;
5710pub const DXGI_RESOURCE_PRIORITY_NORMAL: u32 = 2013265920u32;
5711pub const DXGI_SCALING_ASPECT_RATIO_STRETCH: DXGI_SCALING = DXGI_SCALING(2i32);
5712pub const DXGI_SCALING_NONE: DXGI_SCALING = DXGI_SCALING(1i32);
5713pub const DXGI_SCALING_STRETCH: DXGI_SCALING = DXGI_SCALING(0i32);
5714pub const DXGI_SHARED_RESOURCE_READ: u32 = 2147483648u32;
5715pub const DXGI_SHARED_RESOURCE_WRITE: u32 = 1u32;
5716pub const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT: DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG(2i32);
5717pub const DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT: DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG = DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG(1i32);
5718pub const DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(2i32);
5719pub const DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(2048i32);
5720pub const DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(32i32);
5721pub const DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(128i32);
5722pub const DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(64i32);
5723pub const DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(256i32);
5724pub const DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(4i32);
5725pub const DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(1024i32);
5726pub const DXGI_SWAP_CHAIN_FLAG_NONPREROTATED: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(1i32);
5727pub const DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(8i32);
5728pub const DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(4096i32);
5729pub const DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(16i32);
5730pub const DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO: DXGI_SWAP_CHAIN_FLAG = DXGI_SWAP_CHAIN_FLAG(512i32);
5731pub const DXGI_SWAP_EFFECT_DISCARD: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(0i32);
5732pub const DXGI_SWAP_EFFECT_FLIP_DISCARD: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(4i32);
5733pub const DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(3i32);
5734pub const DXGI_SWAP_EFFECT_SEQUENTIAL: DXGI_SWAP_EFFECT = DXGI_SWAP_EFFECT(1i32);
5735pub const DXGI_USAGE_BACK_BUFFER: DXGI_USAGE = DXGI_USAGE(64u32);
5736pub const DXGI_USAGE_DISCARD_ON_PRESENT: DXGI_USAGE = DXGI_USAGE(512u32);
5737pub const DXGI_USAGE_READ_ONLY: DXGI_USAGE = DXGI_USAGE(256u32);
5738pub const DXGI_USAGE_RENDER_TARGET_OUTPUT: DXGI_USAGE = DXGI_USAGE(32u32);
5739pub const DXGI_USAGE_SHADER_INPUT: DXGI_USAGE = DXGI_USAGE(16u32);
5740pub const DXGI_USAGE_SHARED: DXGI_USAGE = DXGI_USAGE(128u32);
5741pub const DXGI_USAGE_UNORDERED_ACCESS: DXGI_USAGE = DXGI_USAGE(1024u32);
5742#[repr(transparent)]
5743#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5744pub struct DXGI_ADAPTER_FLAG(pub i32);
5745impl ::core::marker::Copy for DXGI_ADAPTER_FLAG {}
5746impl ::core::clone::Clone for DXGI_ADAPTER_FLAG {
5747 fn clone(&self) -> Self {
5748 *self
5749 }
5750}
5751impl ::core::default::Default for DXGI_ADAPTER_FLAG {
5752 fn default() -> Self {
5753 Self(0)
5754 }
5755}
5756impl ::windows_core::TypeKind for DXGI_ADAPTER_FLAG {
5757 type TypeKind = ::windows_core::CopyType;
5758}
5759impl ::core::fmt::Debug for DXGI_ADAPTER_FLAG {
5760 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5761 f.debug_tuple(name:"DXGI_ADAPTER_FLAG").field(&self.0).finish()
5762 }
5763}
5764impl DXGI_ADAPTER_FLAG {
5765 pub const fn contains(&self, other: Self) -> bool {
5766 self.0 & other.0 == other.0
5767 }
5768}
5769impl ::core::ops::BitOr for DXGI_ADAPTER_FLAG {
5770 type Output = Self;
5771 fn bitor(self, other: Self) -> Self {
5772 Self(self.0 | other.0)
5773 }
5774}
5775impl ::core::ops::BitAnd for DXGI_ADAPTER_FLAG {
5776 type Output = Self;
5777 fn bitand(self, other: Self) -> Self {
5778 Self(self.0 & other.0)
5779 }
5780}
5781impl ::core::ops::BitOrAssign for DXGI_ADAPTER_FLAG {
5782 fn bitor_assign(&mut self, other: Self) {
5783 self.0.bitor_assign(other.0)
5784 }
5785}
5786impl ::core::ops::BitAndAssign for DXGI_ADAPTER_FLAG {
5787 fn bitand_assign(&mut self, other: Self) {
5788 self.0.bitand_assign(other.0)
5789 }
5790}
5791impl ::core::ops::Not for DXGI_ADAPTER_FLAG {
5792 type Output = Self;
5793 fn not(self) -> Self {
5794 Self(self.0.not())
5795 }
5796}
5797#[repr(transparent)]
5798#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5799pub struct DXGI_ADAPTER_FLAG3(pub i32);
5800impl ::core::marker::Copy for DXGI_ADAPTER_FLAG3 {}
5801impl ::core::clone::Clone for DXGI_ADAPTER_FLAG3 {
5802 fn clone(&self) -> Self {
5803 *self
5804 }
5805}
5806impl ::core::default::Default for DXGI_ADAPTER_FLAG3 {
5807 fn default() -> Self {
5808 Self(0)
5809 }
5810}
5811impl ::windows_core::TypeKind for DXGI_ADAPTER_FLAG3 {
5812 type TypeKind = ::windows_core::CopyType;
5813}
5814impl ::core::fmt::Debug for DXGI_ADAPTER_FLAG3 {
5815 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5816 f.debug_tuple(name:"DXGI_ADAPTER_FLAG3").field(&self.0).finish()
5817 }
5818}
5819impl DXGI_ADAPTER_FLAG3 {
5820 pub const fn contains(&self, other: Self) -> bool {
5821 self.0 & other.0 == other.0
5822 }
5823}
5824impl ::core::ops::BitOr for DXGI_ADAPTER_FLAG3 {
5825 type Output = Self;
5826 fn bitor(self, other: Self) -> Self {
5827 Self(self.0 | other.0)
5828 }
5829}
5830impl ::core::ops::BitAnd for DXGI_ADAPTER_FLAG3 {
5831 type Output = Self;
5832 fn bitand(self, other: Self) -> Self {
5833 Self(self.0 & other.0)
5834 }
5835}
5836impl ::core::ops::BitOrAssign for DXGI_ADAPTER_FLAG3 {
5837 fn bitor_assign(&mut self, other: Self) {
5838 self.0.bitor_assign(other.0)
5839 }
5840}
5841impl ::core::ops::BitAndAssign for DXGI_ADAPTER_FLAG3 {
5842 fn bitand_assign(&mut self, other: Self) {
5843 self.0.bitand_assign(other.0)
5844 }
5845}
5846impl ::core::ops::Not for DXGI_ADAPTER_FLAG3 {
5847 type Output = Self;
5848 fn not(self) -> Self {
5849 Self(self.0.not())
5850 }
5851}
5852#[repr(transparent)]
5853#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5854pub struct DXGI_COMPUTE_PREEMPTION_GRANULARITY(pub i32);
5855impl ::core::marker::Copy for DXGI_COMPUTE_PREEMPTION_GRANULARITY {}
5856impl ::core::clone::Clone for DXGI_COMPUTE_PREEMPTION_GRANULARITY {
5857 fn clone(&self) -> Self {
5858 *self
5859 }
5860}
5861impl ::core::default::Default for DXGI_COMPUTE_PREEMPTION_GRANULARITY {
5862 fn default() -> Self {
5863 Self(0)
5864 }
5865}
5866impl ::windows_core::TypeKind for DXGI_COMPUTE_PREEMPTION_GRANULARITY {
5867 type TypeKind = ::windows_core::CopyType;
5868}
5869impl ::core::fmt::Debug for DXGI_COMPUTE_PREEMPTION_GRANULARITY {
5870 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5871 f.debug_tuple(name:"DXGI_COMPUTE_PREEMPTION_GRANULARITY").field(&self.0).finish()
5872 }
5873}
5874#[repr(transparent)]
5875#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5876pub struct DXGI_DEBUG_RLO_FLAGS(pub i32);
5877impl ::core::marker::Copy for DXGI_DEBUG_RLO_FLAGS {}
5878impl ::core::clone::Clone for DXGI_DEBUG_RLO_FLAGS {
5879 fn clone(&self) -> Self {
5880 *self
5881 }
5882}
5883impl ::core::default::Default for DXGI_DEBUG_RLO_FLAGS {
5884 fn default() -> Self {
5885 Self(0)
5886 }
5887}
5888impl ::windows_core::TypeKind for DXGI_DEBUG_RLO_FLAGS {
5889 type TypeKind = ::windows_core::CopyType;
5890}
5891impl ::core::fmt::Debug for DXGI_DEBUG_RLO_FLAGS {
5892 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5893 f.debug_tuple(name:"DXGI_DEBUG_RLO_FLAGS").field(&self.0).finish()
5894 }
5895}
5896impl DXGI_DEBUG_RLO_FLAGS {
5897 pub const fn contains(&self, other: Self) -> bool {
5898 self.0 & other.0 == other.0
5899 }
5900}
5901impl ::core::ops::BitOr for DXGI_DEBUG_RLO_FLAGS {
5902 type Output = Self;
5903 fn bitor(self, other: Self) -> Self {
5904 Self(self.0 | other.0)
5905 }
5906}
5907impl ::core::ops::BitAnd for DXGI_DEBUG_RLO_FLAGS {
5908 type Output = Self;
5909 fn bitand(self, other: Self) -> Self {
5910 Self(self.0 & other.0)
5911 }
5912}
5913impl ::core::ops::BitOrAssign for DXGI_DEBUG_RLO_FLAGS {
5914 fn bitor_assign(&mut self, other: Self) {
5915 self.0.bitor_assign(other.0)
5916 }
5917}
5918impl ::core::ops::BitAndAssign for DXGI_DEBUG_RLO_FLAGS {
5919 fn bitand_assign(&mut self, other: Self) {
5920 self.0.bitand_assign(other.0)
5921 }
5922}
5923impl ::core::ops::Not for DXGI_DEBUG_RLO_FLAGS {
5924 type Output = Self;
5925 fn not(self) -> Self {
5926 Self(self.0.not())
5927 }
5928}
5929#[repr(transparent)]
5930#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5931pub struct DXGI_FEATURE(pub i32);
5932impl ::core::marker::Copy for DXGI_FEATURE {}
5933impl ::core::clone::Clone for DXGI_FEATURE {
5934 fn clone(&self) -> Self {
5935 *self
5936 }
5937}
5938impl ::core::default::Default for DXGI_FEATURE {
5939 fn default() -> Self {
5940 Self(0)
5941 }
5942}
5943impl ::windows_core::TypeKind for DXGI_FEATURE {
5944 type TypeKind = ::windows_core::CopyType;
5945}
5946impl ::core::fmt::Debug for DXGI_FEATURE {
5947 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5948 f.debug_tuple(name:"DXGI_FEATURE").field(&self.0).finish()
5949 }
5950}
5951#[repr(transparent)]
5952#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5953pub struct DXGI_FRAME_PRESENTATION_MODE(pub i32);
5954impl ::core::marker::Copy for DXGI_FRAME_PRESENTATION_MODE {}
5955impl ::core::clone::Clone for DXGI_FRAME_PRESENTATION_MODE {
5956 fn clone(&self) -> Self {
5957 *self
5958 }
5959}
5960impl ::core::default::Default for DXGI_FRAME_PRESENTATION_MODE {
5961 fn default() -> Self {
5962 Self(0)
5963 }
5964}
5965impl ::windows_core::TypeKind for DXGI_FRAME_PRESENTATION_MODE {
5966 type TypeKind = ::windows_core::CopyType;
5967}
5968impl ::core::fmt::Debug for DXGI_FRAME_PRESENTATION_MODE {
5969 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5970 f.debug_tuple(name:"DXGI_FRAME_PRESENTATION_MODE").field(&self.0).finish()
5971 }
5972}
5973#[repr(transparent)]
5974#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5975pub struct DXGI_GPU_PREFERENCE(pub i32);
5976impl ::core::marker::Copy for DXGI_GPU_PREFERENCE {}
5977impl ::core::clone::Clone for DXGI_GPU_PREFERENCE {
5978 fn clone(&self) -> Self {
5979 *self
5980 }
5981}
5982impl ::core::default::Default for DXGI_GPU_PREFERENCE {
5983 fn default() -> Self {
5984 Self(0)
5985 }
5986}
5987impl ::windows_core::TypeKind for DXGI_GPU_PREFERENCE {
5988 type TypeKind = ::windows_core::CopyType;
5989}
5990impl ::core::fmt::Debug for DXGI_GPU_PREFERENCE {
5991 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5992 f.debug_tuple(name:"DXGI_GPU_PREFERENCE").field(&self.0).finish()
5993 }
5994}
5995#[repr(transparent)]
5996#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
5997pub struct DXGI_GRAPHICS_PREEMPTION_GRANULARITY(pub i32);
5998impl ::core::marker::Copy for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {}
5999impl ::core::clone::Clone for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
6000 fn clone(&self) -> Self {
6001 *self
6002 }
6003}
6004impl ::core::default::Default for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
6005 fn default() -> Self {
6006 Self(0)
6007 }
6008}
6009impl ::windows_core::TypeKind for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
6010 type TypeKind = ::windows_core::CopyType;
6011}
6012impl ::core::fmt::Debug for DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
6013 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6014 f.debug_tuple(name:"DXGI_GRAPHICS_PREEMPTION_GRANULARITY").field(&self.0).finish()
6015 }
6016}
6017#[repr(transparent)]
6018#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6019pub struct DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS(pub i32);
6020impl ::core::marker::Copy for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {}
6021impl ::core::clone::Clone for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6022 fn clone(&self) -> Self {
6023 *self
6024 }
6025}
6026impl ::core::default::Default for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6027 fn default() -> Self {
6028 Self(0)
6029 }
6030}
6031impl ::windows_core::TypeKind for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6032 type TypeKind = ::windows_core::CopyType;
6033}
6034impl ::core::fmt::Debug for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6035 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6036 f.debug_tuple(name:"DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS").field(&self.0).finish()
6037 }
6038}
6039impl DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6040 pub const fn contains(&self, other: Self) -> bool {
6041 self.0 & other.0 == other.0
6042 }
6043}
6044impl ::core::ops::BitOr for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6045 type Output = Self;
6046 fn bitor(self, other: Self) -> Self {
6047 Self(self.0 | other.0)
6048 }
6049}
6050impl ::core::ops::BitAnd for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6051 type Output = Self;
6052 fn bitand(self, other: Self) -> Self {
6053 Self(self.0 & other.0)
6054 }
6055}
6056impl ::core::ops::BitOrAssign for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6057 fn bitor_assign(&mut self, other: Self) {
6058 self.0.bitor_assign(other.0)
6059 }
6060}
6061impl ::core::ops::BitAndAssign for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6062 fn bitand_assign(&mut self, other: Self) {
6063 self.0.bitand_assign(other.0)
6064 }
6065}
6066impl ::core::ops::Not for DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
6067 type Output = Self;
6068 fn not(self) -> Self {
6069 Self(self.0.not())
6070 }
6071}
6072#[repr(transparent)]
6073#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6074pub struct DXGI_HDR_METADATA_TYPE(pub i32);
6075impl ::core::marker::Copy for DXGI_HDR_METADATA_TYPE {}
6076impl ::core::clone::Clone for DXGI_HDR_METADATA_TYPE {
6077 fn clone(&self) -> Self {
6078 *self
6079 }
6080}
6081impl ::core::default::Default for DXGI_HDR_METADATA_TYPE {
6082 fn default() -> Self {
6083 Self(0)
6084 }
6085}
6086impl ::windows_core::TypeKind for DXGI_HDR_METADATA_TYPE {
6087 type TypeKind = ::windows_core::CopyType;
6088}
6089impl ::core::fmt::Debug for DXGI_HDR_METADATA_TYPE {
6090 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6091 f.debug_tuple(name:"DXGI_HDR_METADATA_TYPE").field(&self.0).finish()
6092 }
6093}
6094#[repr(transparent)]
6095#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6096pub struct DXGI_INFO_QUEUE_MESSAGE_CATEGORY(pub i32);
6097impl ::core::marker::Copy for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {}
6098impl ::core::clone::Clone for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
6099 fn clone(&self) -> Self {
6100 *self
6101 }
6102}
6103impl ::core::default::Default for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
6104 fn default() -> Self {
6105 Self(0)
6106 }
6107}
6108impl ::windows_core::TypeKind for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
6109 type TypeKind = ::windows_core::CopyType;
6110}
6111impl ::core::fmt::Debug for DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
6112 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6113 f.debug_tuple(name:"DXGI_INFO_QUEUE_MESSAGE_CATEGORY").field(&self.0).finish()
6114 }
6115}
6116#[repr(transparent)]
6117#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6118pub struct DXGI_INFO_QUEUE_MESSAGE_SEVERITY(pub i32);
6119impl ::core::marker::Copy for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {}
6120impl ::core::clone::Clone for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
6121 fn clone(&self) -> Self {
6122 *self
6123 }
6124}
6125impl ::core::default::Default for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
6126 fn default() -> Self {
6127 Self(0)
6128 }
6129}
6130impl ::windows_core::TypeKind for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
6131 type TypeKind = ::windows_core::CopyType;
6132}
6133impl ::core::fmt::Debug for DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
6134 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6135 f.debug_tuple(name:"DXGI_INFO_QUEUE_MESSAGE_SEVERITY").field(&self.0).finish()
6136 }
6137}
6138#[repr(transparent)]
6139#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6140pub struct DXGI_MEMORY_SEGMENT_GROUP(pub i32);
6141impl ::core::marker::Copy for DXGI_MEMORY_SEGMENT_GROUP {}
6142impl ::core::clone::Clone for DXGI_MEMORY_SEGMENT_GROUP {
6143 fn clone(&self) -> Self {
6144 *self
6145 }
6146}
6147impl ::core::default::Default for DXGI_MEMORY_SEGMENT_GROUP {
6148 fn default() -> Self {
6149 Self(0)
6150 }
6151}
6152impl ::windows_core::TypeKind for DXGI_MEMORY_SEGMENT_GROUP {
6153 type TypeKind = ::windows_core::CopyType;
6154}
6155impl ::core::fmt::Debug for DXGI_MEMORY_SEGMENT_GROUP {
6156 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6157 f.debug_tuple(name:"DXGI_MEMORY_SEGMENT_GROUP").field(&self.0).finish()
6158 }
6159}
6160#[repr(transparent)]
6161#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6162pub struct DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS(pub i32);
6163impl ::core::marker::Copy for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {}
6164impl ::core::clone::Clone for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
6165 fn clone(&self) -> Self {
6166 *self
6167 }
6168}
6169impl ::core::default::Default for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
6170 fn default() -> Self {
6171 Self(0)
6172 }
6173}
6174impl ::windows_core::TypeKind for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
6175 type TypeKind = ::windows_core::CopyType;
6176}
6177impl ::core::fmt::Debug for DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
6178 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6179 f.debug_tuple(name:"DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS").field(&self.0).finish()
6180 }
6181}
6182#[repr(transparent)]
6183#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6184pub struct DXGI_Message_Id(pub i32);
6185impl ::core::marker::Copy for DXGI_Message_Id {}
6186impl ::core::clone::Clone for DXGI_Message_Id {
6187 fn clone(&self) -> Self {
6188 *self
6189 }
6190}
6191impl ::core::default::Default for DXGI_Message_Id {
6192 fn default() -> Self {
6193 Self(0)
6194 }
6195}
6196impl ::windows_core::TypeKind for DXGI_Message_Id {
6197 type TypeKind = ::windows_core::CopyType;
6198}
6199impl ::core::fmt::Debug for DXGI_Message_Id {
6200 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6201 f.debug_tuple(name:"DXGI_Message_Id").field(&self.0).finish()
6202 }
6203}
6204#[repr(transparent)]
6205#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6206pub struct DXGI_OFFER_RESOURCE_FLAGS(pub i32);
6207impl ::core::marker::Copy for DXGI_OFFER_RESOURCE_FLAGS {}
6208impl ::core::clone::Clone for DXGI_OFFER_RESOURCE_FLAGS {
6209 fn clone(&self) -> Self {
6210 *self
6211 }
6212}
6213impl ::core::default::Default for DXGI_OFFER_RESOURCE_FLAGS {
6214 fn default() -> Self {
6215 Self(0)
6216 }
6217}
6218impl ::windows_core::TypeKind for DXGI_OFFER_RESOURCE_FLAGS {
6219 type TypeKind = ::windows_core::CopyType;
6220}
6221impl ::core::fmt::Debug for DXGI_OFFER_RESOURCE_FLAGS {
6222 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6223 f.debug_tuple(name:"DXGI_OFFER_RESOURCE_FLAGS").field(&self.0).finish()
6224 }
6225}
6226#[repr(transparent)]
6227#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6228pub struct DXGI_OFFER_RESOURCE_PRIORITY(pub i32);
6229impl ::core::marker::Copy for DXGI_OFFER_RESOURCE_PRIORITY {}
6230impl ::core::clone::Clone for DXGI_OFFER_RESOURCE_PRIORITY {
6231 fn clone(&self) -> Self {
6232 *self
6233 }
6234}
6235impl ::core::default::Default for DXGI_OFFER_RESOURCE_PRIORITY {
6236 fn default() -> Self {
6237 Self(0)
6238 }
6239}
6240impl ::windows_core::TypeKind for DXGI_OFFER_RESOURCE_PRIORITY {
6241 type TypeKind = ::windows_core::CopyType;
6242}
6243impl ::core::fmt::Debug for DXGI_OFFER_RESOURCE_PRIORITY {
6244 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6245 f.debug_tuple(name:"DXGI_OFFER_RESOURCE_PRIORITY").field(&self.0).finish()
6246 }
6247}
6248#[repr(transparent)]
6249#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6250pub struct DXGI_OUTDUPL_FLAG(pub i32);
6251impl ::core::marker::Copy for DXGI_OUTDUPL_FLAG {}
6252impl ::core::clone::Clone for DXGI_OUTDUPL_FLAG {
6253 fn clone(&self) -> Self {
6254 *self
6255 }
6256}
6257impl ::core::default::Default for DXGI_OUTDUPL_FLAG {
6258 fn default() -> Self {
6259 Self(0)
6260 }
6261}
6262impl ::windows_core::TypeKind for DXGI_OUTDUPL_FLAG {
6263 type TypeKind = ::windows_core::CopyType;
6264}
6265impl ::core::fmt::Debug for DXGI_OUTDUPL_FLAG {
6266 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6267 f.debug_tuple(name:"DXGI_OUTDUPL_FLAG").field(&self.0).finish()
6268 }
6269}
6270#[repr(transparent)]
6271#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6272pub struct DXGI_OUTDUPL_POINTER_SHAPE_TYPE(pub i32);
6273impl ::core::marker::Copy for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {}
6274impl ::core::clone::Clone for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
6275 fn clone(&self) -> Self {
6276 *self
6277 }
6278}
6279impl ::core::default::Default for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
6280 fn default() -> Self {
6281 Self(0)
6282 }
6283}
6284impl ::windows_core::TypeKind for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
6285 type TypeKind = ::windows_core::CopyType;
6286}
6287impl ::core::fmt::Debug for DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
6288 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6289 f.debug_tuple(name:"DXGI_OUTDUPL_POINTER_SHAPE_TYPE").field(&self.0).finish()
6290 }
6291}
6292#[repr(transparent)]
6293#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6294pub struct DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG(pub i32);
6295impl ::core::marker::Copy for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {}
6296impl ::core::clone::Clone for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
6297 fn clone(&self) -> Self {
6298 *self
6299 }
6300}
6301impl ::core::default::Default for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
6302 fn default() -> Self {
6303 Self(0)
6304 }
6305}
6306impl ::windows_core::TypeKind for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
6307 type TypeKind = ::windows_core::CopyType;
6308}
6309impl ::core::fmt::Debug for DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
6310 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6311 f.debug_tuple(name:"DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG").field(&self.0).finish()
6312 }
6313}
6314#[repr(transparent)]
6315#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6316pub struct DXGI_OVERLAY_SUPPORT_FLAG(pub i32);
6317impl ::core::marker::Copy for DXGI_OVERLAY_SUPPORT_FLAG {}
6318impl ::core::clone::Clone for DXGI_OVERLAY_SUPPORT_FLAG {
6319 fn clone(&self) -> Self {
6320 *self
6321 }
6322}
6323impl ::core::default::Default for DXGI_OVERLAY_SUPPORT_FLAG {
6324 fn default() -> Self {
6325 Self(0)
6326 }
6327}
6328impl ::windows_core::TypeKind for DXGI_OVERLAY_SUPPORT_FLAG {
6329 type TypeKind = ::windows_core::CopyType;
6330}
6331impl ::core::fmt::Debug for DXGI_OVERLAY_SUPPORT_FLAG {
6332 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6333 f.debug_tuple(name:"DXGI_OVERLAY_SUPPORT_FLAG").field(&self.0).finish()
6334 }
6335}
6336#[repr(transparent)]
6337#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6338pub struct DXGI_RECLAIM_RESOURCE_RESULTS(pub i32);
6339impl ::core::marker::Copy for DXGI_RECLAIM_RESOURCE_RESULTS {}
6340impl ::core::clone::Clone for DXGI_RECLAIM_RESOURCE_RESULTS {
6341 fn clone(&self) -> Self {
6342 *self
6343 }
6344}
6345impl ::core::default::Default for DXGI_RECLAIM_RESOURCE_RESULTS {
6346 fn default() -> Self {
6347 Self(0)
6348 }
6349}
6350impl ::windows_core::TypeKind for DXGI_RECLAIM_RESOURCE_RESULTS {
6351 type TypeKind = ::windows_core::CopyType;
6352}
6353impl ::core::fmt::Debug for DXGI_RECLAIM_RESOURCE_RESULTS {
6354 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6355 f.debug_tuple(name:"DXGI_RECLAIM_RESOURCE_RESULTS").field(&self.0).finish()
6356 }
6357}
6358#[repr(transparent)]
6359#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6360pub struct DXGI_RESIDENCY(pub i32);
6361impl ::core::marker::Copy for DXGI_RESIDENCY {}
6362impl ::core::clone::Clone for DXGI_RESIDENCY {
6363 fn clone(&self) -> Self {
6364 *self
6365 }
6366}
6367impl ::core::default::Default for DXGI_RESIDENCY {
6368 fn default() -> Self {
6369 Self(0)
6370 }
6371}
6372impl ::windows_core::TypeKind for DXGI_RESIDENCY {
6373 type TypeKind = ::windows_core::CopyType;
6374}
6375impl ::core::fmt::Debug for DXGI_RESIDENCY {
6376 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6377 f.debug_tuple(name:"DXGI_RESIDENCY").field(&self.0).finish()
6378 }
6379}
6380#[repr(transparent)]
6381#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6382pub struct DXGI_SCALING(pub i32);
6383impl ::core::marker::Copy for DXGI_SCALING {}
6384impl ::core::clone::Clone for DXGI_SCALING {
6385 fn clone(&self) -> Self {
6386 *self
6387 }
6388}
6389impl ::core::default::Default for DXGI_SCALING {
6390 fn default() -> Self {
6391 Self(0)
6392 }
6393}
6394impl ::windows_core::TypeKind for DXGI_SCALING {
6395 type TypeKind = ::windows_core::CopyType;
6396}
6397impl ::core::fmt::Debug for DXGI_SCALING {
6398 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6399 f.debug_tuple(name:"DXGI_SCALING").field(&self.0).finish()
6400 }
6401}
6402#[repr(transparent)]
6403#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6404pub struct DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG(pub i32);
6405impl ::core::marker::Copy for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {}
6406impl ::core::clone::Clone for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
6407 fn clone(&self) -> Self {
6408 *self
6409 }
6410}
6411impl ::core::default::Default for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
6412 fn default() -> Self {
6413 Self(0)
6414 }
6415}
6416impl ::windows_core::TypeKind for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
6417 type TypeKind = ::windows_core::CopyType;
6418}
6419impl ::core::fmt::Debug for DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
6420 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6421 f.debug_tuple(name:"DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG").field(&self.0).finish()
6422 }
6423}
6424#[repr(transparent)]
6425#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6426pub struct DXGI_SWAP_CHAIN_FLAG(pub i32);
6427impl ::core::marker::Copy for DXGI_SWAP_CHAIN_FLAG {}
6428impl ::core::clone::Clone for DXGI_SWAP_CHAIN_FLAG {
6429 fn clone(&self) -> Self {
6430 *self
6431 }
6432}
6433impl ::core::default::Default for DXGI_SWAP_CHAIN_FLAG {
6434 fn default() -> Self {
6435 Self(0)
6436 }
6437}
6438impl ::windows_core::TypeKind for DXGI_SWAP_CHAIN_FLAG {
6439 type TypeKind = ::windows_core::CopyType;
6440}
6441impl ::core::fmt::Debug for DXGI_SWAP_CHAIN_FLAG {
6442 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6443 f.debug_tuple(name:"DXGI_SWAP_CHAIN_FLAG").field(&self.0).finish()
6444 }
6445}
6446#[repr(transparent)]
6447#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6448pub struct DXGI_SWAP_EFFECT(pub i32);
6449impl ::core::marker::Copy for DXGI_SWAP_EFFECT {}
6450impl ::core::clone::Clone for DXGI_SWAP_EFFECT {
6451 fn clone(&self) -> Self {
6452 *self
6453 }
6454}
6455impl ::core::default::Default for DXGI_SWAP_EFFECT {
6456 fn default() -> Self {
6457 Self(0)
6458 }
6459}
6460impl ::windows_core::TypeKind for DXGI_SWAP_EFFECT {
6461 type TypeKind = ::windows_core::CopyType;
6462}
6463impl ::core::fmt::Debug for DXGI_SWAP_EFFECT {
6464 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6465 f.debug_tuple(name:"DXGI_SWAP_EFFECT").field(&self.0).finish()
6466 }
6467}
6468#[repr(transparent)]
6469#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
6470pub struct DXGI_USAGE(pub u32);
6471impl ::core::marker::Copy for DXGI_USAGE {}
6472impl ::core::clone::Clone for DXGI_USAGE {
6473 fn clone(&self) -> Self {
6474 *self
6475 }
6476}
6477impl ::core::default::Default for DXGI_USAGE {
6478 fn default() -> Self {
6479 Self(0)
6480 }
6481}
6482impl ::windows_core::TypeKind for DXGI_USAGE {
6483 type TypeKind = ::windows_core::CopyType;
6484}
6485impl ::core::fmt::Debug for DXGI_USAGE {
6486 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6487 f.debug_tuple(name:"DXGI_USAGE").field(&self.0).finish()
6488 }
6489}
6490impl DXGI_USAGE {
6491 pub const fn contains(&self, other: Self) -> bool {
6492 self.0 & other.0 == other.0
6493 }
6494}
6495impl ::core::ops::BitOr for DXGI_USAGE {
6496 type Output = Self;
6497 fn bitor(self, other: Self) -> Self {
6498 Self(self.0 | other.0)
6499 }
6500}
6501impl ::core::ops::BitAnd for DXGI_USAGE {
6502 type Output = Self;
6503 fn bitand(self, other: Self) -> Self {
6504 Self(self.0 & other.0)
6505 }
6506}
6507impl ::core::ops::BitOrAssign for DXGI_USAGE {
6508 fn bitor_assign(&mut self, other: Self) {
6509 self.0.bitor_assign(other.0)
6510 }
6511}
6512impl ::core::ops::BitAndAssign for DXGI_USAGE {
6513 fn bitand_assign(&mut self, other: Self) {
6514 self.0.bitand_assign(other.0)
6515 }
6516}
6517impl ::core::ops::Not for DXGI_USAGE {
6518 type Output = Self;
6519 fn not(self) -> Self {
6520 Self(self.0.not())
6521 }
6522}
6523#[repr(C)]
6524#[doc = "Required features: `\"Win32_Foundation\"`"]
6525#[cfg(feature = "Win32_Foundation")]
6526pub struct DXGI_ADAPTER_DESC {
6527 pub Description: [u16; 128],
6528 pub VendorId: u32,
6529 pub DeviceId: u32,
6530 pub SubSysId: u32,
6531 pub Revision: u32,
6532 pub DedicatedVideoMemory: usize,
6533 pub DedicatedSystemMemory: usize,
6534 pub SharedSystemMemory: usize,
6535 pub AdapterLuid: super::super::Foundation::LUID,
6536}
6537#[cfg(feature = "Win32_Foundation")]
6538impl ::core::marker::Copy for DXGI_ADAPTER_DESC {}
6539#[cfg(feature = "Win32_Foundation")]
6540impl ::core::clone::Clone for DXGI_ADAPTER_DESC {
6541 fn clone(&self) -> Self {
6542 *self
6543 }
6544}
6545#[cfg(feature = "Win32_Foundation")]
6546impl ::core::fmt::Debug for DXGI_ADAPTER_DESC {
6547 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6548 f.debug_struct("DXGI_ADAPTER_DESC").field("Description", &self.Description).field("VendorId", &self.VendorId).field("DeviceId", &self.DeviceId).field("SubSysId", &self.SubSysId).field("Revision", &self.Revision).field("DedicatedVideoMemory", &self.DedicatedVideoMemory).field("DedicatedSystemMemory", &self.DedicatedSystemMemory).field("SharedSystemMemory", &self.SharedSystemMemory).field(name:"AdapterLuid", &self.AdapterLuid).finish()
6549 }
6550}
6551#[cfg(feature = "Win32_Foundation")]
6552impl ::windows_core::TypeKind for DXGI_ADAPTER_DESC {
6553 type TypeKind = ::windows_core::CopyType;
6554}
6555#[cfg(feature = "Win32_Foundation")]
6556impl ::core::cmp::PartialEq for DXGI_ADAPTER_DESC {
6557 fn eq(&self, other: &Self) -> bool {
6558 self.Description == other.Description && self.VendorId == other.VendorId && self.DeviceId == other.DeviceId && self.SubSysId == other.SubSysId && self.Revision == other.Revision && self.DedicatedVideoMemory == other.DedicatedVideoMemory && self.DedicatedSystemMemory == other.DedicatedSystemMemory && self.SharedSystemMemory == other.SharedSystemMemory && self.AdapterLuid == other.AdapterLuid
6559 }
6560}
6561#[cfg(feature = "Win32_Foundation")]
6562impl ::core::cmp::Eq for DXGI_ADAPTER_DESC {}
6563#[cfg(feature = "Win32_Foundation")]
6564impl ::core::default::Default for DXGI_ADAPTER_DESC {
6565 fn default() -> Self {
6566 unsafe { ::core::mem::zeroed() }
6567 }
6568}
6569#[repr(C)]
6570#[doc = "Required features: `\"Win32_Foundation\"`"]
6571#[cfg(feature = "Win32_Foundation")]
6572pub struct DXGI_ADAPTER_DESC1 {
6573 pub Description: [u16; 128],
6574 pub VendorId: u32,
6575 pub DeviceId: u32,
6576 pub SubSysId: u32,
6577 pub Revision: u32,
6578 pub DedicatedVideoMemory: usize,
6579 pub DedicatedSystemMemory: usize,
6580 pub SharedSystemMemory: usize,
6581 pub AdapterLuid: super::super::Foundation::LUID,
6582 pub Flags: u32,
6583}
6584#[cfg(feature = "Win32_Foundation")]
6585impl ::core::marker::Copy for DXGI_ADAPTER_DESC1 {}
6586#[cfg(feature = "Win32_Foundation")]
6587impl ::core::clone::Clone for DXGI_ADAPTER_DESC1 {
6588 fn clone(&self) -> Self {
6589 *self
6590 }
6591}
6592#[cfg(feature = "Win32_Foundation")]
6593impl ::core::fmt::Debug for DXGI_ADAPTER_DESC1 {
6594 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6595 f.debug_struct("DXGI_ADAPTER_DESC1").field("Description", &self.Description).field("VendorId", &self.VendorId).field("DeviceId", &self.DeviceId).field("SubSysId", &self.SubSysId).field("Revision", &self.Revision).field("DedicatedVideoMemory", &self.DedicatedVideoMemory).field("DedicatedSystemMemory", &self.DedicatedSystemMemory).field("SharedSystemMemory", &self.SharedSystemMemory).field("AdapterLuid", &self.AdapterLuid).field(name:"Flags", &self.Flags).finish()
6596 }
6597}
6598#[cfg(feature = "Win32_Foundation")]
6599impl ::windows_core::TypeKind for DXGI_ADAPTER_DESC1 {
6600 type TypeKind = ::windows_core::CopyType;
6601}
6602#[cfg(feature = "Win32_Foundation")]
6603impl ::core::cmp::PartialEq for DXGI_ADAPTER_DESC1 {
6604 fn eq(&self, other: &Self) -> bool {
6605 self.Description == other.Description && self.VendorId == other.VendorId && self.DeviceId == other.DeviceId && self.SubSysId == other.SubSysId && self.Revision == other.Revision && self.DedicatedVideoMemory == other.DedicatedVideoMemory && self.DedicatedSystemMemory == other.DedicatedSystemMemory && self.SharedSystemMemory == other.SharedSystemMemory && self.AdapterLuid == other.AdapterLuid && self.Flags == other.Flags
6606 }
6607}
6608#[cfg(feature = "Win32_Foundation")]
6609impl ::core::cmp::Eq for DXGI_ADAPTER_DESC1 {}
6610#[cfg(feature = "Win32_Foundation")]
6611impl ::core::default::Default for DXGI_ADAPTER_DESC1 {
6612 fn default() -> Self {
6613 unsafe { ::core::mem::zeroed() }
6614 }
6615}
6616#[repr(C)]
6617#[doc = "Required features: `\"Win32_Foundation\"`"]
6618#[cfg(feature = "Win32_Foundation")]
6619pub struct DXGI_ADAPTER_DESC2 {
6620 pub Description: [u16; 128],
6621 pub VendorId: u32,
6622 pub DeviceId: u32,
6623 pub SubSysId: u32,
6624 pub Revision: u32,
6625 pub DedicatedVideoMemory: usize,
6626 pub DedicatedSystemMemory: usize,
6627 pub SharedSystemMemory: usize,
6628 pub AdapterLuid: super::super::Foundation::LUID,
6629 pub Flags: u32,
6630 pub GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
6631 pub ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
6632}
6633#[cfg(feature = "Win32_Foundation")]
6634impl ::core::marker::Copy for DXGI_ADAPTER_DESC2 {}
6635#[cfg(feature = "Win32_Foundation")]
6636impl ::core::clone::Clone for DXGI_ADAPTER_DESC2 {
6637 fn clone(&self) -> Self {
6638 *self
6639 }
6640}
6641#[cfg(feature = "Win32_Foundation")]
6642impl ::core::fmt::Debug for DXGI_ADAPTER_DESC2 {
6643 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6644 f&mut DebugStruct<'_, '_>.debug_struct("DXGI_ADAPTER_DESC2")
6645 .field("Description", &self.Description)
6646 .field("VendorId", &self.VendorId)
6647 .field("DeviceId", &self.DeviceId)
6648 .field("SubSysId", &self.SubSysId)
6649 .field("Revision", &self.Revision)
6650 .field("DedicatedVideoMemory", &self.DedicatedVideoMemory)
6651 .field("DedicatedSystemMemory", &self.DedicatedSystemMemory)
6652 .field("SharedSystemMemory", &self.SharedSystemMemory)
6653 .field("AdapterLuid", &self.AdapterLuid)
6654 .field("Flags", &self.Flags)
6655 .field("GraphicsPreemptionGranularity", &self.GraphicsPreemptionGranularity)
6656 .field(name:"ComputePreemptionGranularity", &self.ComputePreemptionGranularity)
6657 .finish()
6658 }
6659}
6660#[cfg(feature = "Win32_Foundation")]
6661impl ::windows_core::TypeKind for DXGI_ADAPTER_DESC2 {
6662 type TypeKind = ::windows_core::CopyType;
6663}
6664#[cfg(feature = "Win32_Foundation")]
6665impl ::core::cmp::PartialEq for DXGI_ADAPTER_DESC2 {
6666 fn eq(&self, other: &Self) -> bool {
6667 self.Description == other.Description && self.VendorId == other.VendorId && self.DeviceId == other.DeviceId && self.SubSysId == other.SubSysId && self.Revision == other.Revision && self.DedicatedVideoMemory == other.DedicatedVideoMemory && self.DedicatedSystemMemory == other.DedicatedSystemMemory && self.SharedSystemMemory == other.SharedSystemMemory && self.AdapterLuid == other.AdapterLuid && self.Flags == other.Flags && self.GraphicsPreemptionGranularity == other.GraphicsPreemptionGranularity && self.ComputePreemptionGranularity == other.ComputePreemptionGranularity
6668 }
6669}
6670#[cfg(feature = "Win32_Foundation")]
6671impl ::core::cmp::Eq for DXGI_ADAPTER_DESC2 {}
6672#[cfg(feature = "Win32_Foundation")]
6673impl ::core::default::Default for DXGI_ADAPTER_DESC2 {
6674 fn default() -> Self {
6675 unsafe { ::core::mem::zeroed() }
6676 }
6677}
6678#[repr(C)]
6679#[doc = "Required features: `\"Win32_Foundation\"`"]
6680#[cfg(feature = "Win32_Foundation")]
6681pub struct DXGI_ADAPTER_DESC3 {
6682 pub Description: [u16; 128],
6683 pub VendorId: u32,
6684 pub DeviceId: u32,
6685 pub SubSysId: u32,
6686 pub Revision: u32,
6687 pub DedicatedVideoMemory: usize,
6688 pub DedicatedSystemMemory: usize,
6689 pub SharedSystemMemory: usize,
6690 pub AdapterLuid: super::super::Foundation::LUID,
6691 pub Flags: DXGI_ADAPTER_FLAG3,
6692 pub GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
6693 pub ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
6694}
6695#[cfg(feature = "Win32_Foundation")]
6696impl ::core::marker::Copy for DXGI_ADAPTER_DESC3 {}
6697#[cfg(feature = "Win32_Foundation")]
6698impl ::core::clone::Clone for DXGI_ADAPTER_DESC3 {
6699 fn clone(&self) -> Self {
6700 *self
6701 }
6702}
6703#[cfg(feature = "Win32_Foundation")]
6704impl ::core::fmt::Debug for DXGI_ADAPTER_DESC3 {
6705 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6706 f&mut DebugStruct<'_, '_>.debug_struct("DXGI_ADAPTER_DESC3")
6707 .field("Description", &self.Description)
6708 .field("VendorId", &self.VendorId)
6709 .field("DeviceId", &self.DeviceId)
6710 .field("SubSysId", &self.SubSysId)
6711 .field("Revision", &self.Revision)
6712 .field("DedicatedVideoMemory", &self.DedicatedVideoMemory)
6713 .field("DedicatedSystemMemory", &self.DedicatedSystemMemory)
6714 .field("SharedSystemMemory", &self.SharedSystemMemory)
6715 .field("AdapterLuid", &self.AdapterLuid)
6716 .field("Flags", &self.Flags)
6717 .field("GraphicsPreemptionGranularity", &self.GraphicsPreemptionGranularity)
6718 .field(name:"ComputePreemptionGranularity", &self.ComputePreemptionGranularity)
6719 .finish()
6720 }
6721}
6722#[cfg(feature = "Win32_Foundation")]
6723impl ::windows_core::TypeKind for DXGI_ADAPTER_DESC3 {
6724 type TypeKind = ::windows_core::CopyType;
6725}
6726#[cfg(feature = "Win32_Foundation")]
6727impl ::core::cmp::PartialEq for DXGI_ADAPTER_DESC3 {
6728 fn eq(&self, other: &Self) -> bool {
6729 self.Description == other.Description && self.VendorId == other.VendorId && self.DeviceId == other.DeviceId && self.SubSysId == other.SubSysId && self.Revision == other.Revision && self.DedicatedVideoMemory == other.DedicatedVideoMemory && self.DedicatedSystemMemory == other.DedicatedSystemMemory && self.SharedSystemMemory == other.SharedSystemMemory && self.AdapterLuid == other.AdapterLuid && self.Flags == other.Flags && self.GraphicsPreemptionGranularity == other.GraphicsPreemptionGranularity && self.ComputePreemptionGranularity == other.ComputePreemptionGranularity
6730 }
6731}
6732#[cfg(feature = "Win32_Foundation")]
6733impl ::core::cmp::Eq for DXGI_ADAPTER_DESC3 {}
6734#[cfg(feature = "Win32_Foundation")]
6735impl ::core::default::Default for DXGI_ADAPTER_DESC3 {
6736 fn default() -> Self {
6737 unsafe { ::core::mem::zeroed() }
6738 }
6739}
6740#[repr(C)]
6741pub struct DXGI_DECODE_SWAP_CHAIN_DESC {
6742 pub Flags: u32,
6743}
6744impl ::core::marker::Copy for DXGI_DECODE_SWAP_CHAIN_DESC {}
6745impl ::core::clone::Clone for DXGI_DECODE_SWAP_CHAIN_DESC {
6746 fn clone(&self) -> Self {
6747 *self
6748 }
6749}
6750impl ::core::fmt::Debug for DXGI_DECODE_SWAP_CHAIN_DESC {
6751 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6752 f.debug_struct("DXGI_DECODE_SWAP_CHAIN_DESC").field(name:"Flags", &self.Flags).finish()
6753 }
6754}
6755impl ::windows_core::TypeKind for DXGI_DECODE_SWAP_CHAIN_DESC {
6756 type TypeKind = ::windows_core::CopyType;
6757}
6758impl ::core::cmp::PartialEq for DXGI_DECODE_SWAP_CHAIN_DESC {
6759 fn eq(&self, other: &Self) -> bool {
6760 self.Flags == other.Flags
6761 }
6762}
6763impl ::core::cmp::Eq for DXGI_DECODE_SWAP_CHAIN_DESC {}
6764impl ::core::default::Default for DXGI_DECODE_SWAP_CHAIN_DESC {
6765 fn default() -> Self {
6766 unsafe { ::core::mem::zeroed() }
6767 }
6768}
6769#[repr(C)]
6770pub struct DXGI_DISPLAY_COLOR_SPACE {
6771 pub PrimaryCoordinates: [f32; 16],
6772 pub WhitePoints: [f32; 32],
6773}
6774impl ::core::marker::Copy for DXGI_DISPLAY_COLOR_SPACE {}
6775impl ::core::clone::Clone for DXGI_DISPLAY_COLOR_SPACE {
6776 fn clone(&self) -> Self {
6777 *self
6778 }
6779}
6780impl ::core::fmt::Debug for DXGI_DISPLAY_COLOR_SPACE {
6781 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6782 f.debug_struct("DXGI_DISPLAY_COLOR_SPACE").field("PrimaryCoordinates", &self.PrimaryCoordinates).field(name:"WhitePoints", &self.WhitePoints).finish()
6783 }
6784}
6785impl ::windows_core::TypeKind for DXGI_DISPLAY_COLOR_SPACE {
6786 type TypeKind = ::windows_core::CopyType;
6787}
6788impl ::core::cmp::PartialEq for DXGI_DISPLAY_COLOR_SPACE {
6789 fn eq(&self, other: &Self) -> bool {
6790 self.PrimaryCoordinates == other.PrimaryCoordinates && self.WhitePoints == other.WhitePoints
6791 }
6792}
6793impl ::core::cmp::Eq for DXGI_DISPLAY_COLOR_SPACE {}
6794impl ::core::default::Default for DXGI_DISPLAY_COLOR_SPACE {
6795 fn default() -> Self {
6796 unsafe { ::core::mem::zeroed() }
6797 }
6798}
6799#[repr(C)]
6800pub struct DXGI_FRAME_STATISTICS {
6801 pub PresentCount: u32,
6802 pub PresentRefreshCount: u32,
6803 pub SyncRefreshCount: u32,
6804 pub SyncQPCTime: i64,
6805 pub SyncGPUTime: i64,
6806}
6807impl ::core::marker::Copy for DXGI_FRAME_STATISTICS {}
6808impl ::core::clone::Clone for DXGI_FRAME_STATISTICS {
6809 fn clone(&self) -> Self {
6810 *self
6811 }
6812}
6813impl ::core::fmt::Debug for DXGI_FRAME_STATISTICS {
6814 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6815 f.debug_struct("DXGI_FRAME_STATISTICS").field("PresentCount", &self.PresentCount).field("PresentRefreshCount", &self.PresentRefreshCount).field("SyncRefreshCount", &self.SyncRefreshCount).field("SyncQPCTime", &self.SyncQPCTime).field(name:"SyncGPUTime", &self.SyncGPUTime).finish()
6816 }
6817}
6818impl ::windows_core::TypeKind for DXGI_FRAME_STATISTICS {
6819 type TypeKind = ::windows_core::CopyType;
6820}
6821impl ::core::cmp::PartialEq for DXGI_FRAME_STATISTICS {
6822 fn eq(&self, other: &Self) -> bool {
6823 self.PresentCount == other.PresentCount && self.PresentRefreshCount == other.PresentRefreshCount && self.SyncRefreshCount == other.SyncRefreshCount && self.SyncQPCTime == other.SyncQPCTime && self.SyncGPUTime == other.SyncGPUTime
6824 }
6825}
6826impl ::core::cmp::Eq for DXGI_FRAME_STATISTICS {}
6827impl ::core::default::Default for DXGI_FRAME_STATISTICS {
6828 fn default() -> Self {
6829 unsafe { ::core::mem::zeroed() }
6830 }
6831}
6832#[repr(C)]
6833pub struct DXGI_FRAME_STATISTICS_MEDIA {
6834 pub PresentCount: u32,
6835 pub PresentRefreshCount: u32,
6836 pub SyncRefreshCount: u32,
6837 pub SyncQPCTime: i64,
6838 pub SyncGPUTime: i64,
6839 pub CompositionMode: DXGI_FRAME_PRESENTATION_MODE,
6840 pub ApprovedPresentDuration: u32,
6841}
6842impl ::core::marker::Copy for DXGI_FRAME_STATISTICS_MEDIA {}
6843impl ::core::clone::Clone for DXGI_FRAME_STATISTICS_MEDIA {
6844 fn clone(&self) -> Self {
6845 *self
6846 }
6847}
6848impl ::core::fmt::Debug for DXGI_FRAME_STATISTICS_MEDIA {
6849 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6850 f.debug_struct("DXGI_FRAME_STATISTICS_MEDIA").field("PresentCount", &self.PresentCount).field("PresentRefreshCount", &self.PresentRefreshCount).field("SyncRefreshCount", &self.SyncRefreshCount).field("SyncQPCTime", &self.SyncQPCTime).field("SyncGPUTime", &self.SyncGPUTime).field("CompositionMode", &self.CompositionMode).field(name:"ApprovedPresentDuration", &self.ApprovedPresentDuration).finish()
6851 }
6852}
6853impl ::windows_core::TypeKind for DXGI_FRAME_STATISTICS_MEDIA {
6854 type TypeKind = ::windows_core::CopyType;
6855}
6856impl ::core::cmp::PartialEq for DXGI_FRAME_STATISTICS_MEDIA {
6857 fn eq(&self, other: &Self) -> bool {
6858 self.PresentCount == other.PresentCount && self.PresentRefreshCount == other.PresentRefreshCount && self.SyncRefreshCount == other.SyncRefreshCount && self.SyncQPCTime == other.SyncQPCTime && self.SyncGPUTime == other.SyncGPUTime && self.CompositionMode == other.CompositionMode && self.ApprovedPresentDuration == other.ApprovedPresentDuration
6859 }
6860}
6861impl ::core::cmp::Eq for DXGI_FRAME_STATISTICS_MEDIA {}
6862impl ::core::default::Default for DXGI_FRAME_STATISTICS_MEDIA {
6863 fn default() -> Self {
6864 unsafe { ::core::mem::zeroed() }
6865 }
6866}
6867#[repr(C)]
6868pub struct DXGI_HDR_METADATA_HDR10 {
6869 pub RedPrimary: [u16; 2],
6870 pub GreenPrimary: [u16; 2],
6871 pub BluePrimary: [u16; 2],
6872 pub WhitePoint: [u16; 2],
6873 pub MaxMasteringLuminance: u32,
6874 pub MinMasteringLuminance: u32,
6875 pub MaxContentLightLevel: u16,
6876 pub MaxFrameAverageLightLevel: u16,
6877}
6878impl ::core::marker::Copy for DXGI_HDR_METADATA_HDR10 {}
6879impl ::core::clone::Clone for DXGI_HDR_METADATA_HDR10 {
6880 fn clone(&self) -> Self {
6881 *self
6882 }
6883}
6884impl ::core::fmt::Debug for DXGI_HDR_METADATA_HDR10 {
6885 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6886 f.debug_struct("DXGI_HDR_METADATA_HDR10").field("RedPrimary", &self.RedPrimary).field("GreenPrimary", &self.GreenPrimary).field("BluePrimary", &self.BluePrimary).field("WhitePoint", &self.WhitePoint).field("MaxMasteringLuminance", &self.MaxMasteringLuminance).field("MinMasteringLuminance", &self.MinMasteringLuminance).field("MaxContentLightLevel", &self.MaxContentLightLevel).field(name:"MaxFrameAverageLightLevel", &self.MaxFrameAverageLightLevel).finish()
6887 }
6888}
6889impl ::windows_core::TypeKind for DXGI_HDR_METADATA_HDR10 {
6890 type TypeKind = ::windows_core::CopyType;
6891}
6892impl ::core::cmp::PartialEq for DXGI_HDR_METADATA_HDR10 {
6893 fn eq(&self, other: &Self) -> bool {
6894 self.RedPrimary == other.RedPrimary && self.GreenPrimary == other.GreenPrimary && self.BluePrimary == other.BluePrimary && self.WhitePoint == other.WhitePoint && self.MaxMasteringLuminance == other.MaxMasteringLuminance && self.MinMasteringLuminance == other.MinMasteringLuminance && self.MaxContentLightLevel == other.MaxContentLightLevel && self.MaxFrameAverageLightLevel == other.MaxFrameAverageLightLevel
6895 }
6896}
6897impl ::core::cmp::Eq for DXGI_HDR_METADATA_HDR10 {}
6898impl ::core::default::Default for DXGI_HDR_METADATA_HDR10 {
6899 fn default() -> Self {
6900 unsafe { ::core::mem::zeroed() }
6901 }
6902}
6903#[repr(C)]
6904pub struct DXGI_HDR_METADATA_HDR10PLUS {
6905 pub Data: [u8; 72],
6906}
6907impl ::core::marker::Copy for DXGI_HDR_METADATA_HDR10PLUS {}
6908impl ::core::clone::Clone for DXGI_HDR_METADATA_HDR10PLUS {
6909 fn clone(&self) -> Self {
6910 *self
6911 }
6912}
6913impl ::core::fmt::Debug for DXGI_HDR_METADATA_HDR10PLUS {
6914 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6915 f.debug_struct("DXGI_HDR_METADATA_HDR10PLUS").field(name:"Data", &self.Data).finish()
6916 }
6917}
6918impl ::windows_core::TypeKind for DXGI_HDR_METADATA_HDR10PLUS {
6919 type TypeKind = ::windows_core::CopyType;
6920}
6921impl ::core::cmp::PartialEq for DXGI_HDR_METADATA_HDR10PLUS {
6922 fn eq(&self, other: &Self) -> bool {
6923 self.Data == other.Data
6924 }
6925}
6926impl ::core::cmp::Eq for DXGI_HDR_METADATA_HDR10PLUS {}
6927impl ::core::default::Default for DXGI_HDR_METADATA_HDR10PLUS {
6928 fn default() -> Self {
6929 unsafe { ::core::mem::zeroed() }
6930 }
6931}
6932#[repr(C)]
6933pub struct DXGI_INFO_QUEUE_FILTER {
6934 pub AllowList: DXGI_INFO_QUEUE_FILTER_DESC,
6935 pub DenyList: DXGI_INFO_QUEUE_FILTER_DESC,
6936}
6937impl ::core::marker::Copy for DXGI_INFO_QUEUE_FILTER {}
6938impl ::core::clone::Clone for DXGI_INFO_QUEUE_FILTER {
6939 fn clone(&self) -> Self {
6940 *self
6941 }
6942}
6943impl ::core::fmt::Debug for DXGI_INFO_QUEUE_FILTER {
6944 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6945 f.debug_struct("DXGI_INFO_QUEUE_FILTER").field("AllowList", &self.AllowList).field(name:"DenyList", &self.DenyList).finish()
6946 }
6947}
6948impl ::windows_core::TypeKind for DXGI_INFO_QUEUE_FILTER {
6949 type TypeKind = ::windows_core::CopyType;
6950}
6951impl ::core::cmp::PartialEq for DXGI_INFO_QUEUE_FILTER {
6952 fn eq(&self, other: &Self) -> bool {
6953 self.AllowList == other.AllowList && self.DenyList == other.DenyList
6954 }
6955}
6956impl ::core::cmp::Eq for DXGI_INFO_QUEUE_FILTER {}
6957impl ::core::default::Default for DXGI_INFO_QUEUE_FILTER {
6958 fn default() -> Self {
6959 unsafe { ::core::mem::zeroed() }
6960 }
6961}
6962#[repr(C)]
6963pub struct DXGI_INFO_QUEUE_FILTER_DESC {
6964 pub NumCategories: u32,
6965 pub pCategoryList: *mut DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
6966 pub NumSeverities: u32,
6967 pub pSeverityList: *mut DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
6968 pub NumIDs: u32,
6969 pub pIDList: *mut i32,
6970}
6971impl ::core::marker::Copy for DXGI_INFO_QUEUE_FILTER_DESC {}
6972impl ::core::clone::Clone for DXGI_INFO_QUEUE_FILTER_DESC {
6973 fn clone(&self) -> Self {
6974 *self
6975 }
6976}
6977impl ::core::fmt::Debug for DXGI_INFO_QUEUE_FILTER_DESC {
6978 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6979 f.debug_struct("DXGI_INFO_QUEUE_FILTER_DESC").field("NumCategories", &self.NumCategories).field("pCategoryList", &self.pCategoryList).field("NumSeverities", &self.NumSeverities).field("pSeverityList", &self.pSeverityList).field("NumIDs", &self.NumIDs).field(name:"pIDList", &self.pIDList).finish()
6980 }
6981}
6982impl ::windows_core::TypeKind for DXGI_INFO_QUEUE_FILTER_DESC {
6983 type TypeKind = ::windows_core::CopyType;
6984}
6985impl ::core::cmp::PartialEq for DXGI_INFO_QUEUE_FILTER_DESC {
6986 fn eq(&self, other: &Self) -> bool {
6987 self.NumCategories == other.NumCategories && self.pCategoryList == other.pCategoryList && self.NumSeverities == other.NumSeverities && self.pSeverityList == other.pSeverityList && self.NumIDs == other.NumIDs && self.pIDList == other.pIDList
6988 }
6989}
6990impl ::core::cmp::Eq for DXGI_INFO_QUEUE_FILTER_DESC {}
6991impl ::core::default::Default for DXGI_INFO_QUEUE_FILTER_DESC {
6992 fn default() -> Self {
6993 unsafe { ::core::mem::zeroed() }
6994 }
6995}
6996#[repr(C)]
6997pub struct DXGI_INFO_QUEUE_MESSAGE {
6998 pub Producer: ::windows_core::GUID,
6999 pub Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
7000 pub Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
7001 pub ID: i32,
7002 pub pDescription: *const u8,
7003 pub DescriptionByteLength: usize,
7004}
7005impl ::core::marker::Copy for DXGI_INFO_QUEUE_MESSAGE {}
7006impl ::core::clone::Clone for DXGI_INFO_QUEUE_MESSAGE {
7007 fn clone(&self) -> Self {
7008 *self
7009 }
7010}
7011impl ::core::fmt::Debug for DXGI_INFO_QUEUE_MESSAGE {
7012 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7013 f.debug_struct("DXGI_INFO_QUEUE_MESSAGE").field("Producer", &self.Producer).field("Category", &self.Category).field("Severity", &self.Severity).field("ID", &self.ID).field("pDescription", &self.pDescription).field(name:"DescriptionByteLength", &self.DescriptionByteLength).finish()
7014 }
7015}
7016impl ::windows_core::TypeKind for DXGI_INFO_QUEUE_MESSAGE {
7017 type TypeKind = ::windows_core::CopyType;
7018}
7019impl ::core::cmp::PartialEq for DXGI_INFO_QUEUE_MESSAGE {
7020 fn eq(&self, other: &Self) -> bool {
7021 self.Producer == other.Producer && self.Category == other.Category && self.Severity == other.Severity && self.ID == other.ID && self.pDescription == other.pDescription && self.DescriptionByteLength == other.DescriptionByteLength
7022 }
7023}
7024impl ::core::cmp::Eq for DXGI_INFO_QUEUE_MESSAGE {}
7025impl ::core::default::Default for DXGI_INFO_QUEUE_MESSAGE {
7026 fn default() -> Self {
7027 unsafe { ::core::mem::zeroed() }
7028 }
7029}
7030#[repr(C)]
7031pub struct DXGI_MAPPED_RECT {
7032 pub Pitch: i32,
7033 pub pBits: *mut u8,
7034}
7035impl ::core::marker::Copy for DXGI_MAPPED_RECT {}
7036impl ::core::clone::Clone for DXGI_MAPPED_RECT {
7037 fn clone(&self) -> Self {
7038 *self
7039 }
7040}
7041impl ::core::fmt::Debug for DXGI_MAPPED_RECT {
7042 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7043 f.debug_struct("DXGI_MAPPED_RECT").field("Pitch", &self.Pitch).field(name:"pBits", &self.pBits).finish()
7044 }
7045}
7046impl ::windows_core::TypeKind for DXGI_MAPPED_RECT {
7047 type TypeKind = ::windows_core::CopyType;
7048}
7049impl ::core::cmp::PartialEq for DXGI_MAPPED_RECT {
7050 fn eq(&self, other: &Self) -> bool {
7051 self.Pitch == other.Pitch && self.pBits == other.pBits
7052 }
7053}
7054impl ::core::cmp::Eq for DXGI_MAPPED_RECT {}
7055impl ::core::default::Default for DXGI_MAPPED_RECT {
7056 fn default() -> Self {
7057 unsafe { ::core::mem::zeroed() }
7058 }
7059}
7060#[repr(C)]
7061pub struct DXGI_MATRIX_3X2_F {
7062 pub _11: f32,
7063 pub _12: f32,
7064 pub _21: f32,
7065 pub _22: f32,
7066 pub _31: f32,
7067 pub _32: f32,
7068}
7069impl ::core::marker::Copy for DXGI_MATRIX_3X2_F {}
7070impl ::core::clone::Clone for DXGI_MATRIX_3X2_F {
7071 fn clone(&self) -> Self {
7072 *self
7073 }
7074}
7075impl ::core::fmt::Debug for DXGI_MATRIX_3X2_F {
7076 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7077 f.debug_struct("DXGI_MATRIX_3X2_F").field("_11", &self._11).field("_12", &self._12).field("_21", &self._21).field("_22", &self._22).field("_31", &self._31).field(name:"_32", &self._32).finish()
7078 }
7079}
7080impl ::windows_core::TypeKind for DXGI_MATRIX_3X2_F {
7081 type TypeKind = ::windows_core::CopyType;
7082}
7083impl ::core::cmp::PartialEq for DXGI_MATRIX_3X2_F {
7084 fn eq(&self, other: &Self) -> bool {
7085 self._11 == other._11 && self._12 == other._12 && self._21 == other._21 && self._22 == other._22 && self._31 == other._31 && self._32 == other._32
7086 }
7087}
7088impl ::core::cmp::Eq for DXGI_MATRIX_3X2_F {}
7089impl ::core::default::Default for DXGI_MATRIX_3X2_F {
7090 fn default() -> Self {
7091 unsafe { ::core::mem::zeroed() }
7092 }
7093}
7094#[repr(C)]
7095#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
7096#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7097pub struct DXGI_MODE_DESC1 {
7098 pub Width: u32,
7099 pub Height: u32,
7100 pub RefreshRate: Common::DXGI_RATIONAL,
7101 pub Format: Common::DXGI_FORMAT,
7102 pub ScanlineOrdering: Common::DXGI_MODE_SCANLINE_ORDER,
7103 pub Scaling: Common::DXGI_MODE_SCALING,
7104 pub Stereo: super::super::Foundation::BOOL,
7105}
7106#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7107impl ::core::marker::Copy for DXGI_MODE_DESC1 {}
7108#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7109impl ::core::clone::Clone for DXGI_MODE_DESC1 {
7110 fn clone(&self) -> Self {
7111 *self
7112 }
7113}
7114#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7115impl ::core::fmt::Debug for DXGI_MODE_DESC1 {
7116 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7117 f.debug_struct("DXGI_MODE_DESC1").field("Width", &self.Width).field("Height", &self.Height).field("RefreshRate", &self.RefreshRate).field("Format", &self.Format).field("ScanlineOrdering", &self.ScanlineOrdering).field("Scaling", &self.Scaling).field(name:"Stereo", &self.Stereo).finish()
7118 }
7119}
7120#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7121impl ::windows_core::TypeKind for DXGI_MODE_DESC1 {
7122 type TypeKind = ::windows_core::CopyType;
7123}
7124#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7125impl ::core::cmp::PartialEq for DXGI_MODE_DESC1 {
7126 fn eq(&self, other: &Self) -> bool {
7127 self.Width == other.Width && self.Height == other.Height && self.RefreshRate == other.RefreshRate && self.Format == other.Format && self.ScanlineOrdering == other.ScanlineOrdering && self.Scaling == other.Scaling && self.Stereo == other.Stereo
7128 }
7129}
7130#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7131impl ::core::cmp::Eq for DXGI_MODE_DESC1 {}
7132#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7133impl ::core::default::Default for DXGI_MODE_DESC1 {
7134 fn default() -> Self {
7135 unsafe { ::core::mem::zeroed() }
7136 }
7137}
7138#[repr(C)]
7139#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
7140#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7141pub struct DXGI_OUTDUPL_DESC {
7142 pub ModeDesc: Common::DXGI_MODE_DESC,
7143 pub Rotation: Common::DXGI_MODE_ROTATION,
7144 pub DesktopImageInSystemMemory: super::super::Foundation::BOOL,
7145}
7146#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7147impl ::core::marker::Copy for DXGI_OUTDUPL_DESC {}
7148#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7149impl ::core::clone::Clone for DXGI_OUTDUPL_DESC {
7150 fn clone(&self) -> Self {
7151 *self
7152 }
7153}
7154#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7155impl ::core::fmt::Debug for DXGI_OUTDUPL_DESC {
7156 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7157 f.debug_struct("DXGI_OUTDUPL_DESC").field("ModeDesc", &self.ModeDesc).field("Rotation", &self.Rotation).field(name:"DesktopImageInSystemMemory", &self.DesktopImageInSystemMemory).finish()
7158 }
7159}
7160#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7161impl ::windows_core::TypeKind for DXGI_OUTDUPL_DESC {
7162 type TypeKind = ::windows_core::CopyType;
7163}
7164#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7165impl ::core::cmp::PartialEq for DXGI_OUTDUPL_DESC {
7166 fn eq(&self, other: &Self) -> bool {
7167 self.ModeDesc == other.ModeDesc && self.Rotation == other.Rotation && self.DesktopImageInSystemMemory == other.DesktopImageInSystemMemory
7168 }
7169}
7170#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7171impl ::core::cmp::Eq for DXGI_OUTDUPL_DESC {}
7172#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7173impl ::core::default::Default for DXGI_OUTDUPL_DESC {
7174 fn default() -> Self {
7175 unsafe { ::core::mem::zeroed() }
7176 }
7177}
7178#[repr(C)]
7179#[doc = "Required features: `\"Win32_Foundation\"`"]
7180#[cfg(feature = "Win32_Foundation")]
7181pub struct DXGI_OUTDUPL_FRAME_INFO {
7182 pub LastPresentTime: i64,
7183 pub LastMouseUpdateTime: i64,
7184 pub AccumulatedFrames: u32,
7185 pub RectsCoalesced: super::super::Foundation::BOOL,
7186 pub ProtectedContentMaskedOut: super::super::Foundation::BOOL,
7187 pub PointerPosition: DXGI_OUTDUPL_POINTER_POSITION,
7188 pub TotalMetadataBufferSize: u32,
7189 pub PointerShapeBufferSize: u32,
7190}
7191#[cfg(feature = "Win32_Foundation")]
7192impl ::core::marker::Copy for DXGI_OUTDUPL_FRAME_INFO {}
7193#[cfg(feature = "Win32_Foundation")]
7194impl ::core::clone::Clone for DXGI_OUTDUPL_FRAME_INFO {
7195 fn clone(&self) -> Self {
7196 *self
7197 }
7198}
7199#[cfg(feature = "Win32_Foundation")]
7200impl ::core::fmt::Debug for DXGI_OUTDUPL_FRAME_INFO {
7201 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7202 f&mut DebugStruct<'_, '_>.debug_struct("DXGI_OUTDUPL_FRAME_INFO")
7203 .field("LastPresentTime", &self.LastPresentTime)
7204 .field("LastMouseUpdateTime", &self.LastMouseUpdateTime)
7205 .field("AccumulatedFrames", &self.AccumulatedFrames)
7206 .field("RectsCoalesced", &self.RectsCoalesced)
7207 .field("ProtectedContentMaskedOut", &self.ProtectedContentMaskedOut)
7208 .field("PointerPosition", &self.PointerPosition)
7209 .field("TotalMetadataBufferSize", &self.TotalMetadataBufferSize)
7210 .field(name:"PointerShapeBufferSize", &self.PointerShapeBufferSize)
7211 .finish()
7212 }
7213}
7214#[cfg(feature = "Win32_Foundation")]
7215impl ::windows_core::TypeKind for DXGI_OUTDUPL_FRAME_INFO {
7216 type TypeKind = ::windows_core::CopyType;
7217}
7218#[cfg(feature = "Win32_Foundation")]
7219impl ::core::cmp::PartialEq for DXGI_OUTDUPL_FRAME_INFO {
7220 fn eq(&self, other: &Self) -> bool {
7221 self.LastPresentTime == other.LastPresentTime && self.LastMouseUpdateTime == other.LastMouseUpdateTime && self.AccumulatedFrames == other.AccumulatedFrames && self.RectsCoalesced == other.RectsCoalesced && self.ProtectedContentMaskedOut == other.ProtectedContentMaskedOut && self.PointerPosition == other.PointerPosition && self.TotalMetadataBufferSize == other.TotalMetadataBufferSize && self.PointerShapeBufferSize == other.PointerShapeBufferSize
7222 }
7223}
7224#[cfg(feature = "Win32_Foundation")]
7225impl ::core::cmp::Eq for DXGI_OUTDUPL_FRAME_INFO {}
7226#[cfg(feature = "Win32_Foundation")]
7227impl ::core::default::Default for DXGI_OUTDUPL_FRAME_INFO {
7228 fn default() -> Self {
7229 unsafe { ::core::mem::zeroed() }
7230 }
7231}
7232#[repr(C)]
7233#[doc = "Required features: `\"Win32_Foundation\"`"]
7234#[cfg(feature = "Win32_Foundation")]
7235pub struct DXGI_OUTDUPL_MOVE_RECT {
7236 pub SourcePoint: super::super::Foundation::POINT,
7237 pub DestinationRect: super::super::Foundation::RECT,
7238}
7239#[cfg(feature = "Win32_Foundation")]
7240impl ::core::marker::Copy for DXGI_OUTDUPL_MOVE_RECT {}
7241#[cfg(feature = "Win32_Foundation")]
7242impl ::core::clone::Clone for DXGI_OUTDUPL_MOVE_RECT {
7243 fn clone(&self) -> Self {
7244 *self
7245 }
7246}
7247#[cfg(feature = "Win32_Foundation")]
7248impl ::core::fmt::Debug for DXGI_OUTDUPL_MOVE_RECT {
7249 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7250 f.debug_struct("DXGI_OUTDUPL_MOVE_RECT").field("SourcePoint", &self.SourcePoint).field(name:"DestinationRect", &self.DestinationRect).finish()
7251 }
7252}
7253#[cfg(feature = "Win32_Foundation")]
7254impl ::windows_core::TypeKind for DXGI_OUTDUPL_MOVE_RECT {
7255 type TypeKind = ::windows_core::CopyType;
7256}
7257#[cfg(feature = "Win32_Foundation")]
7258impl ::core::cmp::PartialEq for DXGI_OUTDUPL_MOVE_RECT {
7259 fn eq(&self, other: &Self) -> bool {
7260 self.SourcePoint == other.SourcePoint && self.DestinationRect == other.DestinationRect
7261 }
7262}
7263#[cfg(feature = "Win32_Foundation")]
7264impl ::core::cmp::Eq for DXGI_OUTDUPL_MOVE_RECT {}
7265#[cfg(feature = "Win32_Foundation")]
7266impl ::core::default::Default for DXGI_OUTDUPL_MOVE_RECT {
7267 fn default() -> Self {
7268 unsafe { ::core::mem::zeroed() }
7269 }
7270}
7271#[repr(C)]
7272#[doc = "Required features: `\"Win32_Foundation\"`"]
7273#[cfg(feature = "Win32_Foundation")]
7274pub struct DXGI_OUTDUPL_POINTER_POSITION {
7275 pub Position: super::super::Foundation::POINT,
7276 pub Visible: super::super::Foundation::BOOL,
7277}
7278#[cfg(feature = "Win32_Foundation")]
7279impl ::core::marker::Copy for DXGI_OUTDUPL_POINTER_POSITION {}
7280#[cfg(feature = "Win32_Foundation")]
7281impl ::core::clone::Clone for DXGI_OUTDUPL_POINTER_POSITION {
7282 fn clone(&self) -> Self {
7283 *self
7284 }
7285}
7286#[cfg(feature = "Win32_Foundation")]
7287impl ::core::fmt::Debug for DXGI_OUTDUPL_POINTER_POSITION {
7288 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7289 f.debug_struct("DXGI_OUTDUPL_POINTER_POSITION").field("Position", &self.Position).field(name:"Visible", &self.Visible).finish()
7290 }
7291}
7292#[cfg(feature = "Win32_Foundation")]
7293impl ::windows_core::TypeKind for DXGI_OUTDUPL_POINTER_POSITION {
7294 type TypeKind = ::windows_core::CopyType;
7295}
7296#[cfg(feature = "Win32_Foundation")]
7297impl ::core::cmp::PartialEq for DXGI_OUTDUPL_POINTER_POSITION {
7298 fn eq(&self, other: &Self) -> bool {
7299 self.Position == other.Position && self.Visible == other.Visible
7300 }
7301}
7302#[cfg(feature = "Win32_Foundation")]
7303impl ::core::cmp::Eq for DXGI_OUTDUPL_POINTER_POSITION {}
7304#[cfg(feature = "Win32_Foundation")]
7305impl ::core::default::Default for DXGI_OUTDUPL_POINTER_POSITION {
7306 fn default() -> Self {
7307 unsafe { ::core::mem::zeroed() }
7308 }
7309}
7310#[repr(C)]
7311#[doc = "Required features: `\"Win32_Foundation\"`"]
7312#[cfg(feature = "Win32_Foundation")]
7313pub struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
7314 pub Type: u32,
7315 pub Width: u32,
7316 pub Height: u32,
7317 pub Pitch: u32,
7318 pub HotSpot: super::super::Foundation::POINT,
7319}
7320#[cfg(feature = "Win32_Foundation")]
7321impl ::core::marker::Copy for DXGI_OUTDUPL_POINTER_SHAPE_INFO {}
7322#[cfg(feature = "Win32_Foundation")]
7323impl ::core::clone::Clone for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
7324 fn clone(&self) -> Self {
7325 *self
7326 }
7327}
7328#[cfg(feature = "Win32_Foundation")]
7329impl ::core::fmt::Debug for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
7330 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7331 f.debug_struct("DXGI_OUTDUPL_POINTER_SHAPE_INFO").field("Type", &self.Type).field("Width", &self.Width).field("Height", &self.Height).field("Pitch", &self.Pitch).field(name:"HotSpot", &self.HotSpot).finish()
7332 }
7333}
7334#[cfg(feature = "Win32_Foundation")]
7335impl ::windows_core::TypeKind for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
7336 type TypeKind = ::windows_core::CopyType;
7337}
7338#[cfg(feature = "Win32_Foundation")]
7339impl ::core::cmp::PartialEq for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
7340 fn eq(&self, other: &Self) -> bool {
7341 self.Type == other.Type && self.Width == other.Width && self.Height == other.Height && self.Pitch == other.Pitch && self.HotSpot == other.HotSpot
7342 }
7343}
7344#[cfg(feature = "Win32_Foundation")]
7345impl ::core::cmp::Eq for DXGI_OUTDUPL_POINTER_SHAPE_INFO {}
7346#[cfg(feature = "Win32_Foundation")]
7347impl ::core::default::Default for DXGI_OUTDUPL_POINTER_SHAPE_INFO {
7348 fn default() -> Self {
7349 unsafe { ::core::mem::zeroed() }
7350 }
7351}
7352#[repr(C)]
7353#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
7354#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7355pub struct DXGI_OUTPUT_DESC {
7356 pub DeviceName: [u16; 32],
7357 pub DesktopCoordinates: super::super::Foundation::RECT,
7358 pub AttachedToDesktop: super::super::Foundation::BOOL,
7359 pub Rotation: Common::DXGI_MODE_ROTATION,
7360 pub Monitor: super::Gdi::HMONITOR,
7361}
7362#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7363impl ::core::marker::Copy for DXGI_OUTPUT_DESC {}
7364#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7365impl ::core::clone::Clone for DXGI_OUTPUT_DESC {
7366 fn clone(&self) -> Self {
7367 *self
7368 }
7369}
7370#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7371impl ::core::fmt::Debug for DXGI_OUTPUT_DESC {
7372 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7373 f.debug_struct("DXGI_OUTPUT_DESC").field("DeviceName", &self.DeviceName).field("DesktopCoordinates", &self.DesktopCoordinates).field("AttachedToDesktop", &self.AttachedToDesktop).field("Rotation", &self.Rotation).field("Monitor", &self.Monitor).finish()
7374 }
7375}
7376#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7377impl ::windows_core::TypeKind for DXGI_OUTPUT_DESC {
7378 type TypeKind = ::windows_core::CopyType;
7379}
7380#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7381impl ::core::cmp::PartialEq for DXGI_OUTPUT_DESC {
7382 fn eq(&self, other: &Self) -> bool {
7383 self.DeviceName == other.DeviceName && self.DesktopCoordinates == other.DesktopCoordinates && self.AttachedToDesktop == other.AttachedToDesktop && self.Rotation == other.Rotation && self.Monitor == other.Monitor
7384 }
7385}
7386#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7387impl ::core::cmp::Eq for DXGI_OUTPUT_DESC {}
7388#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7389impl ::core::default::Default for DXGI_OUTPUT_DESC {
7390 fn default() -> Self {
7391 unsafe { ::core::mem::zeroed() }
7392 }
7393}
7394#[repr(C)]
7395#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"Win32_Graphics_Gdi\"`"]
7396#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7397pub struct DXGI_OUTPUT_DESC1 {
7398 pub DeviceName: [u16; 32],
7399 pub DesktopCoordinates: super::super::Foundation::RECT,
7400 pub AttachedToDesktop: super::super::Foundation::BOOL,
7401 pub Rotation: Common::DXGI_MODE_ROTATION,
7402 pub Monitor: super::Gdi::HMONITOR,
7403 pub BitsPerColor: u32,
7404 pub ColorSpace: Common::DXGI_COLOR_SPACE_TYPE,
7405 pub RedPrimary: [f32; 2],
7406 pub GreenPrimary: [f32; 2],
7407 pub BluePrimary: [f32; 2],
7408 pub WhitePoint: [f32; 2],
7409 pub MinLuminance: f32,
7410 pub MaxLuminance: f32,
7411 pub MaxFullFrameLuminance: f32,
7412}
7413#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7414impl ::core::marker::Copy for DXGI_OUTPUT_DESC1 {}
7415#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7416impl ::core::clone::Clone for DXGI_OUTPUT_DESC1 {
7417 fn clone(&self) -> Self {
7418 *self
7419 }
7420}
7421#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7422impl ::core::fmt::Debug for DXGI_OUTPUT_DESC1 {
7423 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7424 f.debug_struct("DXGI_OUTPUT_DESC1")
7425 .field("DeviceName", &self.DeviceName)
7426 .field("DesktopCoordinates", &self.DesktopCoordinates)
7427 .field("AttachedToDesktop", &self.AttachedToDesktop)
7428 .field("Rotation", &self.Rotation)
7429 .field("Monitor", &self.Monitor)
7430 .field("BitsPerColor", &self.BitsPerColor)
7431 .field("ColorSpace", &self.ColorSpace)
7432 .field("RedPrimary", &self.RedPrimary)
7433 .field("GreenPrimary", &self.GreenPrimary)
7434 .field("BluePrimary", &self.BluePrimary)
7435 .field("WhitePoint", &self.WhitePoint)
7436 .field("MinLuminance", &self.MinLuminance)
7437 .field("MaxLuminance", &self.MaxLuminance)
7438 .field("MaxFullFrameLuminance", &self.MaxFullFrameLuminance)
7439 .finish()
7440 }
7441}
7442#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7443impl ::windows_core::TypeKind for DXGI_OUTPUT_DESC1 {
7444 type TypeKind = ::windows_core::CopyType;
7445}
7446#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7447impl ::core::cmp::PartialEq for DXGI_OUTPUT_DESC1 {
7448 fn eq(&self, other: &Self) -> bool {
7449 self.DeviceName == other.DeviceName && self.DesktopCoordinates == other.DesktopCoordinates && self.AttachedToDesktop == other.AttachedToDesktop && self.Rotation == other.Rotation && self.Monitor == other.Monitor && self.BitsPerColor == other.BitsPerColor && self.ColorSpace == other.ColorSpace && self.RedPrimary == other.RedPrimary && self.GreenPrimary == other.GreenPrimary && self.BluePrimary == other.BluePrimary && self.WhitePoint == other.WhitePoint && self.MinLuminance == other.MinLuminance && self.MaxLuminance == other.MaxLuminance && self.MaxFullFrameLuminance == other.MaxFullFrameLuminance
7450 }
7451}
7452#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7453impl ::core::cmp::Eq for DXGI_OUTPUT_DESC1 {}
7454#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common", feature = "Win32_Graphics_Gdi"))]
7455impl ::core::default::Default for DXGI_OUTPUT_DESC1 {
7456 fn default() -> Self {
7457 unsafe { ::core::mem::zeroed() }
7458 }
7459}
7460#[repr(C)]
7461#[doc = "Required features: `\"Win32_Foundation\"`"]
7462#[cfg(feature = "Win32_Foundation")]
7463pub struct DXGI_PRESENT_PARAMETERS {
7464 pub DirtyRectsCount: u32,
7465 pub pDirtyRects: *mut super::super::Foundation::RECT,
7466 pub pScrollRect: *mut super::super::Foundation::RECT,
7467 pub pScrollOffset: *mut super::super::Foundation::POINT,
7468}
7469#[cfg(feature = "Win32_Foundation")]
7470impl ::core::marker::Copy for DXGI_PRESENT_PARAMETERS {}
7471#[cfg(feature = "Win32_Foundation")]
7472impl ::core::clone::Clone for DXGI_PRESENT_PARAMETERS {
7473 fn clone(&self) -> Self {
7474 *self
7475 }
7476}
7477#[cfg(feature = "Win32_Foundation")]
7478impl ::core::fmt::Debug for DXGI_PRESENT_PARAMETERS {
7479 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7480 f.debug_struct("DXGI_PRESENT_PARAMETERS").field("DirtyRectsCount", &self.DirtyRectsCount).field("pDirtyRects", &self.pDirtyRects).field("pScrollRect", &self.pScrollRect).field(name:"pScrollOffset", &self.pScrollOffset).finish()
7481 }
7482}
7483#[cfg(feature = "Win32_Foundation")]
7484impl ::windows_core::TypeKind for DXGI_PRESENT_PARAMETERS {
7485 type TypeKind = ::windows_core::CopyType;
7486}
7487#[cfg(feature = "Win32_Foundation")]
7488impl ::core::cmp::PartialEq for DXGI_PRESENT_PARAMETERS {
7489 fn eq(&self, other: &Self) -> bool {
7490 self.DirtyRectsCount == other.DirtyRectsCount && self.pDirtyRects == other.pDirtyRects && self.pScrollRect == other.pScrollRect && self.pScrollOffset == other.pScrollOffset
7491 }
7492}
7493#[cfg(feature = "Win32_Foundation")]
7494impl ::core::cmp::Eq for DXGI_PRESENT_PARAMETERS {}
7495#[cfg(feature = "Win32_Foundation")]
7496impl ::core::default::Default for DXGI_PRESENT_PARAMETERS {
7497 fn default() -> Self {
7498 unsafe { ::core::mem::zeroed() }
7499 }
7500}
7501#[repr(C)]
7502pub struct DXGI_QUERY_VIDEO_MEMORY_INFO {
7503 pub Budget: u64,
7504 pub CurrentUsage: u64,
7505 pub AvailableForReservation: u64,
7506 pub CurrentReservation: u64,
7507}
7508impl ::core::marker::Copy for DXGI_QUERY_VIDEO_MEMORY_INFO {}
7509impl ::core::clone::Clone for DXGI_QUERY_VIDEO_MEMORY_INFO {
7510 fn clone(&self) -> Self {
7511 *self
7512 }
7513}
7514impl ::core::fmt::Debug for DXGI_QUERY_VIDEO_MEMORY_INFO {
7515 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7516 f.debug_struct("DXGI_QUERY_VIDEO_MEMORY_INFO").field("Budget", &self.Budget).field("CurrentUsage", &self.CurrentUsage).field("AvailableForReservation", &self.AvailableForReservation).field(name:"CurrentReservation", &self.CurrentReservation).finish()
7517 }
7518}
7519impl ::windows_core::TypeKind for DXGI_QUERY_VIDEO_MEMORY_INFO {
7520 type TypeKind = ::windows_core::CopyType;
7521}
7522impl ::core::cmp::PartialEq for DXGI_QUERY_VIDEO_MEMORY_INFO {
7523 fn eq(&self, other: &Self) -> bool {
7524 self.Budget == other.Budget && self.CurrentUsage == other.CurrentUsage && self.AvailableForReservation == other.AvailableForReservation && self.CurrentReservation == other.CurrentReservation
7525 }
7526}
7527impl ::core::cmp::Eq for DXGI_QUERY_VIDEO_MEMORY_INFO {}
7528impl ::core::default::Default for DXGI_QUERY_VIDEO_MEMORY_INFO {
7529 fn default() -> Self {
7530 unsafe { ::core::mem::zeroed() }
7531 }
7532}
7533#[repr(C)]
7534pub struct DXGI_RGBA {
7535 pub r: f32,
7536 pub g: f32,
7537 pub b: f32,
7538 pub a: f32,
7539}
7540impl ::core::marker::Copy for DXGI_RGBA {}
7541impl ::core::clone::Clone for DXGI_RGBA {
7542 fn clone(&self) -> Self {
7543 *self
7544 }
7545}
7546impl ::core::fmt::Debug for DXGI_RGBA {
7547 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7548 f.debug_struct("DXGI_RGBA").field("r", &self.r).field("g", &self.g).field("b", &self.b).field(name:"a", &self.a).finish()
7549 }
7550}
7551impl ::windows_core::TypeKind for DXGI_RGBA {
7552 type TypeKind = ::windows_core::CopyType;
7553}
7554impl ::core::cmp::PartialEq for DXGI_RGBA {
7555 fn eq(&self, other: &Self) -> bool {
7556 self.r == other.r && self.g == other.g && self.b == other.b && self.a == other.a
7557 }
7558}
7559impl ::core::cmp::Eq for DXGI_RGBA {}
7560impl ::core::default::Default for DXGI_RGBA {
7561 fn default() -> Self {
7562 unsafe { ::core::mem::zeroed() }
7563 }
7564}
7565#[repr(C)]
7566#[doc = "Required features: `\"Win32_Foundation\"`"]
7567#[cfg(feature = "Win32_Foundation")]
7568pub struct DXGI_SHARED_RESOURCE {
7569 pub Handle: super::super::Foundation::HANDLE,
7570}
7571#[cfg(feature = "Win32_Foundation")]
7572impl ::core::marker::Copy for DXGI_SHARED_RESOURCE {}
7573#[cfg(feature = "Win32_Foundation")]
7574impl ::core::clone::Clone for DXGI_SHARED_RESOURCE {
7575 fn clone(&self) -> Self {
7576 *self
7577 }
7578}
7579#[cfg(feature = "Win32_Foundation")]
7580impl ::core::fmt::Debug for DXGI_SHARED_RESOURCE {
7581 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7582 f.debug_struct("DXGI_SHARED_RESOURCE").field(name:"Handle", &self.Handle).finish()
7583 }
7584}
7585#[cfg(feature = "Win32_Foundation")]
7586impl ::windows_core::TypeKind for DXGI_SHARED_RESOURCE {
7587 type TypeKind = ::windows_core::CopyType;
7588}
7589#[cfg(feature = "Win32_Foundation")]
7590impl ::core::cmp::PartialEq for DXGI_SHARED_RESOURCE {
7591 fn eq(&self, other: &Self) -> bool {
7592 self.Handle == other.Handle
7593 }
7594}
7595#[cfg(feature = "Win32_Foundation")]
7596impl ::core::cmp::Eq for DXGI_SHARED_RESOURCE {}
7597#[cfg(feature = "Win32_Foundation")]
7598impl ::core::default::Default for DXGI_SHARED_RESOURCE {
7599 fn default() -> Self {
7600 unsafe { ::core::mem::zeroed() }
7601 }
7602}
7603#[repr(C)]
7604#[doc = "Required features: `\"Win32_Graphics_Dxgi_Common\"`"]
7605#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7606pub struct DXGI_SURFACE_DESC {
7607 pub Width: u32,
7608 pub Height: u32,
7609 pub Format: Common::DXGI_FORMAT,
7610 pub SampleDesc: Common::DXGI_SAMPLE_DESC,
7611}
7612#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7613impl ::core::marker::Copy for DXGI_SURFACE_DESC {}
7614#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7615impl ::core::clone::Clone for DXGI_SURFACE_DESC {
7616 fn clone(&self) -> Self {
7617 *self
7618 }
7619}
7620#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7621impl ::core::fmt::Debug for DXGI_SURFACE_DESC {
7622 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7623 f.debug_struct("DXGI_SURFACE_DESC").field("Width", &self.Width).field("Height", &self.Height).field("Format", &self.Format).field(name:"SampleDesc", &self.SampleDesc).finish()
7624 }
7625}
7626#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7627impl ::windows_core::TypeKind for DXGI_SURFACE_DESC {
7628 type TypeKind = ::windows_core::CopyType;
7629}
7630#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7631impl ::core::cmp::PartialEq for DXGI_SURFACE_DESC {
7632 fn eq(&self, other: &Self) -> bool {
7633 self.Width == other.Width && self.Height == other.Height && self.Format == other.Format && self.SampleDesc == other.SampleDesc
7634 }
7635}
7636#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7637impl ::core::cmp::Eq for DXGI_SURFACE_DESC {}
7638#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7639impl ::core::default::Default for DXGI_SURFACE_DESC {
7640 fn default() -> Self {
7641 unsafe { ::core::mem::zeroed() }
7642 }
7643}
7644#[repr(C)]
7645#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
7646#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7647pub struct DXGI_SWAP_CHAIN_DESC {
7648 pub BufferDesc: Common::DXGI_MODE_DESC,
7649 pub SampleDesc: Common::DXGI_SAMPLE_DESC,
7650 pub BufferUsage: DXGI_USAGE,
7651 pub BufferCount: u32,
7652 pub OutputWindow: super::super::Foundation::HWND,
7653 pub Windowed: super::super::Foundation::BOOL,
7654 pub SwapEffect: DXGI_SWAP_EFFECT,
7655 pub Flags: u32,
7656}
7657#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7658impl ::core::marker::Copy for DXGI_SWAP_CHAIN_DESC {}
7659#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7660impl ::core::clone::Clone for DXGI_SWAP_CHAIN_DESC {
7661 fn clone(&self) -> Self {
7662 *self
7663 }
7664}
7665#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7666impl ::core::fmt::Debug for DXGI_SWAP_CHAIN_DESC {
7667 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7668 f.debug_struct("DXGI_SWAP_CHAIN_DESC").field("BufferDesc", &self.BufferDesc).field("SampleDesc", &self.SampleDesc).field("BufferUsage", &self.BufferUsage).field("BufferCount", &self.BufferCount).field("OutputWindow", &self.OutputWindow).field("Windowed", &self.Windowed).field("SwapEffect", &self.SwapEffect).field(name:"Flags", &self.Flags).finish()
7669 }
7670}
7671#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7672impl ::windows_core::TypeKind for DXGI_SWAP_CHAIN_DESC {
7673 type TypeKind = ::windows_core::CopyType;
7674}
7675#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7676impl ::core::cmp::PartialEq for DXGI_SWAP_CHAIN_DESC {
7677 fn eq(&self, other: &Self) -> bool {
7678 self.BufferDesc == other.BufferDesc && self.SampleDesc == other.SampleDesc && self.BufferUsage == other.BufferUsage && self.BufferCount == other.BufferCount && self.OutputWindow == other.OutputWindow && self.Windowed == other.Windowed && self.SwapEffect == other.SwapEffect && self.Flags == other.Flags
7679 }
7680}
7681#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7682impl ::core::cmp::Eq for DXGI_SWAP_CHAIN_DESC {}
7683#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7684impl ::core::default::Default for DXGI_SWAP_CHAIN_DESC {
7685 fn default() -> Self {
7686 unsafe { ::core::mem::zeroed() }
7687 }
7688}
7689#[repr(C)]
7690#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
7691#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7692pub struct DXGI_SWAP_CHAIN_DESC1 {
7693 pub Width: u32,
7694 pub Height: u32,
7695 pub Format: Common::DXGI_FORMAT,
7696 pub Stereo: super::super::Foundation::BOOL,
7697 pub SampleDesc: Common::DXGI_SAMPLE_DESC,
7698 pub BufferUsage: DXGI_USAGE,
7699 pub BufferCount: u32,
7700 pub Scaling: DXGI_SCALING,
7701 pub SwapEffect: DXGI_SWAP_EFFECT,
7702 pub AlphaMode: Common::DXGI_ALPHA_MODE,
7703 pub Flags: u32,
7704}
7705#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7706impl ::core::marker::Copy for DXGI_SWAP_CHAIN_DESC1 {}
7707#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7708impl ::core::clone::Clone for DXGI_SWAP_CHAIN_DESC1 {
7709 fn clone(&self) -> Self {
7710 *self
7711 }
7712}
7713#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7714impl ::core::fmt::Debug for DXGI_SWAP_CHAIN_DESC1 {
7715 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7716 f.debug_struct("DXGI_SWAP_CHAIN_DESC1").field("Width", &self.Width).field("Height", &self.Height).field("Format", &self.Format).field("Stereo", &self.Stereo).field("SampleDesc", &self.SampleDesc).field("BufferUsage", &self.BufferUsage).field("BufferCount", &self.BufferCount).field("Scaling", &self.Scaling).field("SwapEffect", &self.SwapEffect).field("AlphaMode", &self.AlphaMode).field(name:"Flags", &self.Flags).finish()
7717 }
7718}
7719#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7720impl ::windows_core::TypeKind for DXGI_SWAP_CHAIN_DESC1 {
7721 type TypeKind = ::windows_core::CopyType;
7722}
7723#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7724impl ::core::cmp::PartialEq for DXGI_SWAP_CHAIN_DESC1 {
7725 fn eq(&self, other: &Self) -> bool {
7726 self.Width == other.Width && self.Height == other.Height && self.Format == other.Format && self.Stereo == other.Stereo && self.SampleDesc == other.SampleDesc && self.BufferUsage == other.BufferUsage && self.BufferCount == other.BufferCount && self.Scaling == other.Scaling && self.SwapEffect == other.SwapEffect && self.AlphaMode == other.AlphaMode && self.Flags == other.Flags
7727 }
7728}
7729#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7730impl ::core::cmp::Eq for DXGI_SWAP_CHAIN_DESC1 {}
7731#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7732impl ::core::default::Default for DXGI_SWAP_CHAIN_DESC1 {
7733 fn default() -> Self {
7734 unsafe { ::core::mem::zeroed() }
7735 }
7736}
7737#[repr(C)]
7738#[doc = "Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`"]
7739#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7740pub struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
7741 pub RefreshRate: Common::DXGI_RATIONAL,
7742 pub ScanlineOrdering: Common::DXGI_MODE_SCANLINE_ORDER,
7743 pub Scaling: Common::DXGI_MODE_SCALING,
7744 pub Windowed: super::super::Foundation::BOOL,
7745}
7746#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7747impl ::core::marker::Copy for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {}
7748#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7749impl ::core::clone::Clone for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
7750 fn clone(&self) -> Self {
7751 *self
7752 }
7753}
7754#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7755impl ::core::fmt::Debug for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
7756 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7757 f.debug_struct("DXGI_SWAP_CHAIN_FULLSCREEN_DESC").field("RefreshRate", &self.RefreshRate).field("ScanlineOrdering", &self.ScanlineOrdering).field("Scaling", &self.Scaling).field(name:"Windowed", &self.Windowed).finish()
7758 }
7759}
7760#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7761impl ::windows_core::TypeKind for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
7762 type TypeKind = ::windows_core::CopyType;
7763}
7764#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7765impl ::core::cmp::PartialEq for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
7766 fn eq(&self, other: &Self) -> bool {
7767 self.RefreshRate == other.RefreshRate && self.ScanlineOrdering == other.ScanlineOrdering && self.Scaling == other.Scaling && self.Windowed == other.Windowed
7768 }
7769}
7770#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7771impl ::core::cmp::Eq for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {}
7772#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7773impl ::core::default::Default for DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
7774 fn default() -> Self {
7775 unsafe { ::core::mem::zeroed() }
7776 }
7777}
7778#[cfg(feature = "implement")]
7779::core::include!("impl.rs");
7780