]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / Graphics / Direct3D12 / mod.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
2#[cfg(feature = "Win32_Graphics_Direct3D")]
3#[inline]
4pub unsafe fn D3D12CreateDevice<P0, T>(padapter: P0, minimumfeaturelevel: super::Direct3D::D3D_FEATURE_LEVEL, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5where
6 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
7 T: ::windows::core::ComInterface,
8{
9 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12CreateDevice ( padapter : * mut::core::ffi::c_void , minimumfeaturelevel : super::Direct3D:: D3D_FEATURE_LEVEL , riid : *const :: windows::core::GUID , ppdevice : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
10 D3D12CreateDevice(padapter.into_param().abi(), minimumfeaturelevel, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11}
12#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13#[inline]
14pub unsafe fn D3D12CreateRootSignatureDeserializer(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: *const ::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> {
15 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12CreateRootSignatureDeserializer ( psrcdata : *const ::core::ffi::c_void , srcdatasizeinbytes : usize , prootsignaturedeserializerinterface : *const :: windows::core::GUID , pprootsignaturedeserializer : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
16 D3D12CreateRootSignatureDeserializer(psrcdata, srcdatasizeinbytes, prootsignaturedeserializerinterface, pprootsignaturedeserializer).ok()
17}
18#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19#[inline]
20pub unsafe fn D3D12CreateVersionedRootSignatureDeserializer(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: *const ::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> {
21 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12CreateVersionedRootSignatureDeserializer ( psrcdata : *const ::core::ffi::c_void , srcdatasizeinbytes : usize , prootsignaturedeserializerinterface : *const :: windows::core::GUID , pprootsignaturedeserializer : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
22 D3D12CreateVersionedRootSignatureDeserializer(psrcdata, srcdatasizeinbytes, prootsignaturedeserializerinterface, pprootsignaturedeserializer).ok()
23}
24#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25#[inline]
26pub unsafe fn D3D12EnableExperimentalFeatures(numfeatures: u32, piids: *const ::windows::core::GUID, pconfigurationstructs: ::core::option::Option<*const ::core::ffi::c_void>, pconfigurationstructsizes: ::core::option::Option<*const u32>) -> ::windows::core::Result<()> {
27 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12EnableExperimentalFeatures ( numfeatures : u32 , piids : *const :: windows::core::GUID , pconfigurationstructs : *const ::core::ffi::c_void , pconfigurationstructsizes : *const u32 ) -> :: windows::core::HRESULT );
28 D3D12EnableExperimentalFeatures(numfeatures, piids, ::core::mem::transmute(pconfigurationstructs.unwrap_or(::std::ptr::null())), ::core::mem::transmute(pconfigurationstructsizes.unwrap_or(::std::ptr::null()))).ok()
29}
30#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31#[inline]
32pub unsafe fn D3D12GetDebugInterface<T>(result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
33where
34 T: ::windows::core::ComInterface,
35{
36 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12GetDebugInterface ( riid : *const :: windows::core::GUID , ppvdebug : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
37 D3D12GetDebugInterface(&<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
38}
39#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
40#[inline]
41pub unsafe fn D3D12GetInterface<T>(rclsid: *const ::windows::core::GUID, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
42where
43 T: ::windows::core::ComInterface,
44{
45 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12GetInterface ( rclsid : *const :: windows::core::GUID , riid : *const :: windows::core::GUID , ppvdebug : *mut *mut ::core::ffi::c_void ) -> :: windows::core::HRESULT );
46 D3D12GetInterface(rclsid, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
47}
48#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
49#[cfg(feature = "Win32_Graphics_Direct3D")]
50#[inline]
51pub unsafe fn D3D12SerializeRootSignature(prootsignature: *const D3D12_ROOT_SIGNATURE_DESC, version: D3D_ROOT_SIGNATURE_VERSION, ppblob: *mut ::core::option::Option<super::Direct3D::ID3DBlob>, pperrorblob: ::core::option::Option<*mut ::core::option::Option<super::Direct3D::ID3DBlob>>) -> ::windows::core::Result<()> {
52 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12SerializeRootSignature ( prootsignature : *const D3D12_ROOT_SIGNATURE_DESC , version : D3D_ROOT_SIGNATURE_VERSION , ppblob : *mut * mut::core::ffi::c_void , pperrorblob : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
53 D3D12SerializeRootSignature(prootsignature, version, ::core::mem::transmute(ppblob), ::core::mem::transmute(pperrorblob.unwrap_or(::std::ptr::null_mut()))).ok()
54}
55#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
56#[cfg(feature = "Win32_Graphics_Direct3D")]
57#[inline]
58pub unsafe fn D3D12SerializeVersionedRootSignature(prootsignature: *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC, ppblob: *mut ::core::option::Option<super::Direct3D::ID3DBlob>, pperrorblob: ::core::option::Option<*mut ::core::option::Option<super::Direct3D::ID3DBlob>>) -> ::windows::core::Result<()> {
59 ::windows::imp::link ! ( "d3d12.dll""system" fn D3D12SerializeVersionedRootSignature ( prootsignature : *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC , ppblob : *mut * mut::core::ffi::c_void , pperrorblob : *mut * mut::core::ffi::c_void ) -> :: windows::core::HRESULT );
60 D3D12SerializeVersionedRootSignature(prootsignature, ::core::mem::transmute(ppblob), ::core::mem::transmute(pperrorblob.unwrap_or(::std::ptr::null_mut()))).ok()
61}
62#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
63#[repr(transparent)]
64pub struct ID3D12CommandAllocator(::windows::core::IUnknown);
65impl ID3D12CommandAllocator {
66 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
67 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
68 }
69 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
70 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
71 }
72 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
73 where
74 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
75 {
76 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
77 }
78 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
79 where
80 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
81 {
82 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
83 }
84 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
85 where
86 T: ::windows::core::ComInterface,
87 {
88 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
89 }
90 pub unsafe fn Reset(&self) -> ::windows::core::Result<()> {
91 (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self)).ok()
92 }
93}
94::windows::imp::interface_hierarchy!(ID3D12CommandAllocator, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
95impl ::core::cmp::PartialEq for ID3D12CommandAllocator {
96 fn eq(&self, other: &Self) -> bool {
97 self.0 == other.0
98 }
99}
100impl ::core::cmp::Eq for ID3D12CommandAllocator {}
101impl ::core::fmt::Debug for ID3D12CommandAllocator {
102 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
103 f.debug_tuple("ID3D12CommandAllocator").field(&self.0).finish()
104 }
105}
106unsafe impl ::core::marker::Send for ID3D12CommandAllocator {}
107unsafe impl ::core::marker::Sync for ID3D12CommandAllocator {}
108unsafe impl ::windows::core::Interface for ID3D12CommandAllocator {
109 type Vtable = ID3D12CommandAllocator_Vtbl;
110}
111impl ::core::clone::Clone for ID3D12CommandAllocator {
112 fn clone(&self) -> Self {
113 Self(self.0.clone())
114 }
115}
116unsafe impl ::windows::core::ComInterface for ID3D12CommandAllocator {
117 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6102dee4_af59_4b09_b999_b44d73f09b24);
118}
119#[repr(C)]
120#[doc(hidden)]
121pub struct ID3D12CommandAllocator_Vtbl {
122 pub base__: ID3D12Pageable_Vtbl,
123 pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
124}
125#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
126#[repr(transparent)]
127pub struct ID3D12CommandList(::windows::core::IUnknown);
128impl ID3D12CommandList {
129 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
130 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
131 }
132 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
133 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
134 }
135 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
136 where
137 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
138 {
139 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
140 }
141 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
142 where
143 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
144 {
145 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
146 }
147 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
148 where
149 T: ::windows::core::ComInterface,
150 {
151 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
152 }
153 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
154 (::windows::core::Interface::vtable(self).GetType)(::windows::core::Interface::as_raw(self))
155 }
156}
157::windows::imp::interface_hierarchy!(ID3D12CommandList, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
158impl ::core::cmp::PartialEq for ID3D12CommandList {
159 fn eq(&self, other: &Self) -> bool {
160 self.0 == other.0
161 }
162}
163impl ::core::cmp::Eq for ID3D12CommandList {}
164impl ::core::fmt::Debug for ID3D12CommandList {
165 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
166 f.debug_tuple("ID3D12CommandList").field(&self.0).finish()
167 }
168}
169unsafe impl ::core::marker::Send for ID3D12CommandList {}
170unsafe impl ::core::marker::Sync for ID3D12CommandList {}
171unsafe impl ::windows::core::Interface for ID3D12CommandList {
172 type Vtable = ID3D12CommandList_Vtbl;
173}
174impl ::core::clone::Clone for ID3D12CommandList {
175 fn clone(&self) -> Self {
176 Self(self.0.clone())
177 }
178}
179unsafe impl ::windows::core::ComInterface for ID3D12CommandList {
180 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7116d91c_e7e4_47ce_b8c6_ec8168f437e5);
181}
182#[repr(C)]
183#[doc(hidden)]
184pub struct ID3D12CommandList_Vtbl {
185 pub base__: ID3D12DeviceChild_Vtbl,
186 pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_COMMAND_LIST_TYPE,
187}
188#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
189#[repr(transparent)]
190pub struct ID3D12CommandQueue(::windows::core::IUnknown);
191impl ID3D12CommandQueue {
192 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
193 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
194 }
195 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
196 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
197 }
198 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
199 where
200 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
201 {
202 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
203 }
204 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
205 where
206 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
207 {
208 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
209 }
210 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
211 where
212 T: ::windows::core::ComInterface,
213 {
214 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
215 }
216 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
217 #[cfg(feature = "Win32_Foundation")]
218 pub unsafe fn UpdateTileMappings<P0, P1>(&self, presource: P0, numresourceregions: u32, presourceregionstartcoordinates: ::core::option::Option<*const D3D12_TILED_RESOURCE_COORDINATE>, presourceregionsizes: ::core::option::Option<*const D3D12_TILE_REGION_SIZE>, pheap: P1, numranges: u32, prangeflags: ::core::option::Option<*const D3D12_TILE_RANGE_FLAGS>, pheaprangestartoffsets: ::core::option::Option<*const u32>, prangetilecounts: ::core::option::Option<*const u32>, flags: D3D12_TILE_MAPPING_FLAGS)
219 where
220 P0: ::windows::core::IntoParam<ID3D12Resource>,
221 P1: ::windows::core::IntoParam<ID3D12Heap>,
222 {
223 (::windows::core::Interface::vtable(self).UpdateTileMappings)(
224 ::windows::core::Interface::as_raw(self),
225 presource.into_param().abi(),
226 numresourceregions,
227 ::core::mem::transmute(presourceregionstartcoordinates.unwrap_or(::std::ptr::null())),
228 ::core::mem::transmute(presourceregionsizes.unwrap_or(::std::ptr::null())),
229 pheap.into_param().abi(),
230 numranges,
231 ::core::mem::transmute(prangeflags.unwrap_or(::std::ptr::null())),
232 ::core::mem::transmute(pheaprangestartoffsets.unwrap_or(::std::ptr::null())),
233 ::core::mem::transmute(prangetilecounts.unwrap_or(::std::ptr::null())),
234 flags,
235 )
236 }
237 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
238 #[cfg(feature = "Win32_Foundation")]
239 pub unsafe fn CopyTileMappings<P0, P1>(&self, pdstresource: P0, pdstregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, psrcresource: P1, psrcregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, pregionsize: *const D3D12_TILE_REGION_SIZE, flags: D3D12_TILE_MAPPING_FLAGS)
240 where
241 P0: ::windows::core::IntoParam<ID3D12Resource>,
242 P1: ::windows::core::IntoParam<ID3D12Resource>,
243 {
244 (::windows::core::Interface::vtable(self).CopyTileMappings)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), pdstregionstartcoordinate, psrcresource.into_param().abi(), psrcregionstartcoordinate, pregionsize, flags)
245 }
246 pub unsafe fn ExecuteCommandLists(&self, ppcommandlists: &[::core::option::Option<ID3D12CommandList>]) {
247 (::windows::core::Interface::vtable(self).ExecuteCommandLists)(::windows::core::Interface::as_raw(self), ppcommandlists.len() as _, ::core::mem::transmute(ppcommandlists.as_ptr()))
248 }
249 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
250 (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
251 }
252 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
253 (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
254 }
255 pub unsafe fn EndEvent(&self) {
256 (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self))
257 }
258 pub unsafe fn Signal<P0>(&self, pfence: P0, value: u64) -> ::windows::core::Result<()>
259 where
260 P0: ::windows::core::IntoParam<ID3D12Fence>,
261 {
262 (::windows::core::Interface::vtable(self).Signal)(::windows::core::Interface::as_raw(self), pfence.into_param().abi(), value).ok()
263 }
264 pub unsafe fn Wait<P0>(&self, pfence: P0, value: u64) -> ::windows::core::Result<()>
265 where
266 P0: ::windows::core::IntoParam<ID3D12Fence>,
267 {
268 (::windows::core::Interface::vtable(self).Wait)(::windows::core::Interface::as_raw(self), pfence.into_param().abi(), value).ok()
269 }
270 pub unsafe fn GetTimestampFrequency(&self) -> ::windows::core::Result<u64> {
271 let mut result__ = ::windows::core::zeroed::<u64>();
272 (::windows::core::Interface::vtable(self).GetTimestampFrequency)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
273 }
274 pub unsafe fn GetClockCalibration(&self, pgputimestamp: *mut u64, pcputimestamp: *mut u64) -> ::windows::core::Result<()> {
275 (::windows::core::Interface::vtable(self).GetClockCalibration)(::windows::core::Interface::as_raw(self), pgputimestamp, pcputimestamp).ok()
276 }
277 pub unsafe fn GetDesc(&self) -> D3D12_COMMAND_QUEUE_DESC {
278 let mut result__: D3D12_COMMAND_QUEUE_DESC = ::core::mem::zeroed();
279 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
280 result__
281 }
282}
283::windows::imp::interface_hierarchy!(ID3D12CommandQueue, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
284impl ::core::cmp::PartialEq for ID3D12CommandQueue {
285 fn eq(&self, other: &Self) -> bool {
286 self.0 == other.0
287 }
288}
289impl ::core::cmp::Eq for ID3D12CommandQueue {}
290impl ::core::fmt::Debug for ID3D12CommandQueue {
291 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
292 f.debug_tuple("ID3D12CommandQueue").field(&self.0).finish()
293 }
294}
295unsafe impl ::core::marker::Send for ID3D12CommandQueue {}
296unsafe impl ::core::marker::Sync for ID3D12CommandQueue {}
297unsafe impl ::windows::core::Interface for ID3D12CommandQueue {
298 type Vtable = ID3D12CommandQueue_Vtbl;
299}
300impl ::core::clone::Clone for ID3D12CommandQueue {
301 fn clone(&self) -> Self {
302 Self(self.0.clone())
303 }
304}
305unsafe impl ::windows::core::ComInterface for ID3D12CommandQueue {
306 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0ec870a6_5d7e_4c22_8cfc_5baae07616ed);
307}
308#[repr(C)]
309#[doc(hidden)]
310pub struct ID3D12CommandQueue_Vtbl {
311 pub base__: ID3D12Pageable_Vtbl,
312 #[cfg(feature = "Win32_Foundation")]
313 pub UpdateTileMappings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, numresourceregions: u32, presourceregionstartcoordinates: *const D3D12_TILED_RESOURCE_COORDINATE, presourceregionsizes: *const D3D12_TILE_REGION_SIZE, pheap: *mut ::core::ffi::c_void, numranges: u32, prangeflags: *const D3D12_TILE_RANGE_FLAGS, pheaprangestartoffsets: *const u32, prangetilecounts: *const u32, flags: D3D12_TILE_MAPPING_FLAGS),
314 #[cfg(not(feature = "Win32_Foundation"))]
315 UpdateTileMappings: usize,
316 #[cfg(feature = "Win32_Foundation")]
317 pub CopyTileMappings: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstresource: *mut ::core::ffi::c_void, pdstregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, psrcresource: *mut ::core::ffi::c_void, psrcregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, pregionsize: *const D3D12_TILE_REGION_SIZE, flags: D3D12_TILE_MAPPING_FLAGS),
318 #[cfg(not(feature = "Win32_Foundation"))]
319 CopyTileMappings: usize,
320 pub ExecuteCommandLists: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numcommandlists: u32, ppcommandlists: *const *mut ::core::ffi::c_void),
321 pub SetMarker: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32),
322 pub BeginEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32),
323 pub EndEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
324 pub Signal: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfence: *mut ::core::ffi::c_void, value: u64) -> ::windows::core::HRESULT,
325 pub Wait: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfence: *mut ::core::ffi::c_void, value: u64) -> ::windows::core::HRESULT,
326 pub GetTimestampFrequency: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfrequency: *mut u64) -> ::windows::core::HRESULT,
327 pub GetClockCalibration: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pgputimestamp: *mut u64, pcputimestamp: *mut u64) -> ::windows::core::HRESULT,
328 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_COMMAND_QUEUE_DESC),
329}
330#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
331#[repr(transparent)]
332pub struct ID3D12CommandSignature(::windows::core::IUnknown);
333impl ID3D12CommandSignature {
334 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
335 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
336 }
337 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
338 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
339 }
340 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
341 where
342 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
343 {
344 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
345 }
346 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
347 where
348 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
349 {
350 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
351 }
352 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
353 where
354 T: ::windows::core::ComInterface,
355 {
356 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
357 }
358}
359::windows::imp::interface_hierarchy!(ID3D12CommandSignature, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
360impl ::core::cmp::PartialEq for ID3D12CommandSignature {
361 fn eq(&self, other: &Self) -> bool {
362 self.0 == other.0
363 }
364}
365impl ::core::cmp::Eq for ID3D12CommandSignature {}
366impl ::core::fmt::Debug for ID3D12CommandSignature {
367 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
368 f.debug_tuple("ID3D12CommandSignature").field(&self.0).finish()
369 }
370}
371unsafe impl ::core::marker::Send for ID3D12CommandSignature {}
372unsafe impl ::core::marker::Sync for ID3D12CommandSignature {}
373unsafe impl ::windows::core::Interface for ID3D12CommandSignature {
374 type Vtable = ID3D12CommandSignature_Vtbl;
375}
376impl ::core::clone::Clone for ID3D12CommandSignature {
377 fn clone(&self) -> Self {
378 Self(self.0.clone())
379 }
380}
381unsafe impl ::windows::core::ComInterface for ID3D12CommandSignature {
382 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc36a797c_ec80_4f0a_8985_a7b2475082d1);
383}
384#[repr(C)]
385#[doc(hidden)]
386pub struct ID3D12CommandSignature_Vtbl {
387 pub base__: ID3D12Pageable_Vtbl,
388}
389#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
390#[repr(transparent)]
391pub struct ID3D12Debug(::windows::core::IUnknown);
392impl ID3D12Debug {
393 pub unsafe fn EnableDebugLayer(&self) {
394 (::windows::core::Interface::vtable(self).EnableDebugLayer)(::windows::core::Interface::as_raw(self))
395 }
396}
397::windows::imp::interface_hierarchy!(ID3D12Debug, ::windows::core::IUnknown);
398impl ::core::cmp::PartialEq for ID3D12Debug {
399 fn eq(&self, other: &Self) -> bool {
400 self.0 == other.0
401 }
402}
403impl ::core::cmp::Eq for ID3D12Debug {}
404impl ::core::fmt::Debug for ID3D12Debug {
405 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
406 f.debug_tuple("ID3D12Debug").field(&self.0).finish()
407 }
408}
409unsafe impl ::core::marker::Send for ID3D12Debug {}
410unsafe impl ::core::marker::Sync for ID3D12Debug {}
411unsafe impl ::windows::core::Interface for ID3D12Debug {
412 type Vtable = ID3D12Debug_Vtbl;
413}
414impl ::core::clone::Clone for ID3D12Debug {
415 fn clone(&self) -> Self {
416 Self(self.0.clone())
417 }
418}
419unsafe impl ::windows::core::ComInterface for ID3D12Debug {
420 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x344488b7_6846_474b_b989_f027448245e0);
421}
422#[repr(C)]
423#[doc(hidden)]
424pub struct ID3D12Debug_Vtbl {
425 pub base__: ::windows::core::IUnknown_Vtbl,
426 pub EnableDebugLayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
427}
428#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
429#[repr(transparent)]
430pub struct ID3D12Debug1(::windows::core::IUnknown);
431impl ID3D12Debug1 {
432 pub unsafe fn EnableDebugLayer(&self) {
433 (::windows::core::Interface::vtable(self).EnableDebugLayer)(::windows::core::Interface::as_raw(self))
434 }
435 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
436 #[cfg(feature = "Win32_Foundation")]
437 pub unsafe fn SetEnableGPUBasedValidation<P0>(&self, enable: P0)
438 where
439 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
440 {
441 (::windows::core::Interface::vtable(self).SetEnableGPUBasedValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
442 }
443 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
444 #[cfg(feature = "Win32_Foundation")]
445 pub unsafe fn SetEnableSynchronizedCommandQueueValidation<P0>(&self, enable: P0)
446 where
447 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
448 {
449 (::windows::core::Interface::vtable(self).SetEnableSynchronizedCommandQueueValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
450 }
451}
452::windows::imp::interface_hierarchy!(ID3D12Debug1, ::windows::core::IUnknown);
453impl ::core::cmp::PartialEq for ID3D12Debug1 {
454 fn eq(&self, other: &Self) -> bool {
455 self.0 == other.0
456 }
457}
458impl ::core::cmp::Eq for ID3D12Debug1 {}
459impl ::core::fmt::Debug for ID3D12Debug1 {
460 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
461 f.debug_tuple("ID3D12Debug1").field(&self.0).finish()
462 }
463}
464unsafe impl ::core::marker::Send for ID3D12Debug1 {}
465unsafe impl ::core::marker::Sync for ID3D12Debug1 {}
466unsafe impl ::windows::core::Interface for ID3D12Debug1 {
467 type Vtable = ID3D12Debug1_Vtbl;
468}
469impl ::core::clone::Clone for ID3D12Debug1 {
470 fn clone(&self) -> Self {
471 Self(self.0.clone())
472 }
473}
474unsafe impl ::windows::core::ComInterface for ID3D12Debug1 {
475 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaffaa4ca_63fe_4d8e_b8ad_159000af4304);
476}
477#[repr(C)]
478#[doc(hidden)]
479pub struct ID3D12Debug1_Vtbl {
480 pub base__: ::windows::core::IUnknown_Vtbl,
481 pub EnableDebugLayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
482 #[cfg(feature = "Win32_Foundation")]
483 pub SetEnableGPUBasedValidation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL),
484 #[cfg(not(feature = "Win32_Foundation"))]
485 SetEnableGPUBasedValidation: usize,
486 #[cfg(feature = "Win32_Foundation")]
487 pub SetEnableSynchronizedCommandQueueValidation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL),
488 #[cfg(not(feature = "Win32_Foundation"))]
489 SetEnableSynchronizedCommandQueueValidation: usize,
490}
491#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
492#[repr(transparent)]
493pub struct ID3D12Debug2(::windows::core::IUnknown);
494impl ID3D12Debug2 {
495 pub unsafe fn SetGPUBasedValidationFlags(&self, flags: D3D12_GPU_BASED_VALIDATION_FLAGS) {
496 (::windows::core::Interface::vtable(self).SetGPUBasedValidationFlags)(::windows::core::Interface::as_raw(self), flags)
497 }
498}
499::windows::imp::interface_hierarchy!(ID3D12Debug2, ::windows::core::IUnknown);
500impl ::core::cmp::PartialEq for ID3D12Debug2 {
501 fn eq(&self, other: &Self) -> bool {
502 self.0 == other.0
503 }
504}
505impl ::core::cmp::Eq for ID3D12Debug2 {}
506impl ::core::fmt::Debug for ID3D12Debug2 {
507 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
508 f.debug_tuple("ID3D12Debug2").field(&self.0).finish()
509 }
510}
511unsafe impl ::core::marker::Send for ID3D12Debug2 {}
512unsafe impl ::core::marker::Sync for ID3D12Debug2 {}
513unsafe impl ::windows::core::Interface for ID3D12Debug2 {
514 type Vtable = ID3D12Debug2_Vtbl;
515}
516impl ::core::clone::Clone for ID3D12Debug2 {
517 fn clone(&self) -> Self {
518 Self(self.0.clone())
519 }
520}
521unsafe impl ::windows::core::ComInterface for ID3D12Debug2 {
522 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x93a665c4_a3b2_4e5d_b692_a26ae14e3374);
523}
524#[repr(C)]
525#[doc(hidden)]
526pub struct ID3D12Debug2_Vtbl {
527 pub base__: ::windows::core::IUnknown_Vtbl,
528 pub SetGPUBasedValidationFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: D3D12_GPU_BASED_VALIDATION_FLAGS),
529}
530#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
531#[repr(transparent)]
532pub struct ID3D12Debug3(::windows::core::IUnknown);
533impl ID3D12Debug3 {
534 pub unsafe fn EnableDebugLayer(&self) {
535 (::windows::core::Interface::vtable(self).base__.EnableDebugLayer)(::windows::core::Interface::as_raw(self))
536 }
537 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
538 #[cfg(feature = "Win32_Foundation")]
539 pub unsafe fn SetEnableGPUBasedValidation<P0>(&self, enable: P0)
540 where
541 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
542 {
543 (::windows::core::Interface::vtable(self).SetEnableGPUBasedValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
544 }
545 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
546 #[cfg(feature = "Win32_Foundation")]
547 pub unsafe fn SetEnableSynchronizedCommandQueueValidation<P0>(&self, enable: P0)
548 where
549 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
550 {
551 (::windows::core::Interface::vtable(self).SetEnableSynchronizedCommandQueueValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
552 }
553 pub unsafe fn SetGPUBasedValidationFlags(&self, flags: D3D12_GPU_BASED_VALIDATION_FLAGS) {
554 (::windows::core::Interface::vtable(self).SetGPUBasedValidationFlags)(::windows::core::Interface::as_raw(self), flags)
555 }
556}
557::windows::imp::interface_hierarchy!(ID3D12Debug3, ::windows::core::IUnknown, ID3D12Debug);
558impl ::core::cmp::PartialEq for ID3D12Debug3 {
559 fn eq(&self, other: &Self) -> bool {
560 self.0 == other.0
561 }
562}
563impl ::core::cmp::Eq for ID3D12Debug3 {}
564impl ::core::fmt::Debug for ID3D12Debug3 {
565 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
566 f.debug_tuple("ID3D12Debug3").field(&self.0).finish()
567 }
568}
569unsafe impl ::core::marker::Send for ID3D12Debug3 {}
570unsafe impl ::core::marker::Sync for ID3D12Debug3 {}
571unsafe impl ::windows::core::Interface for ID3D12Debug3 {
572 type Vtable = ID3D12Debug3_Vtbl;
573}
574impl ::core::clone::Clone for ID3D12Debug3 {
575 fn clone(&self) -> Self {
576 Self(self.0.clone())
577 }
578}
579unsafe impl ::windows::core::ComInterface for ID3D12Debug3 {
580 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5cf4e58f_f671_4ff1_a542_3686e3d153d1);
581}
582#[repr(C)]
583#[doc(hidden)]
584pub struct ID3D12Debug3_Vtbl {
585 pub base__: ID3D12Debug_Vtbl,
586 #[cfg(feature = "Win32_Foundation")]
587 pub SetEnableGPUBasedValidation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL),
588 #[cfg(not(feature = "Win32_Foundation"))]
589 SetEnableGPUBasedValidation: usize,
590 #[cfg(feature = "Win32_Foundation")]
591 pub SetEnableSynchronizedCommandQueueValidation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL),
592 #[cfg(not(feature = "Win32_Foundation"))]
593 SetEnableSynchronizedCommandQueueValidation: usize,
594 pub SetGPUBasedValidationFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: D3D12_GPU_BASED_VALIDATION_FLAGS),
595}
596#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
597#[repr(transparent)]
598pub struct ID3D12Debug4(::windows::core::IUnknown);
599impl ID3D12Debug4 {
600 pub unsafe fn EnableDebugLayer(&self) {
601 (::windows::core::Interface::vtable(self).base__.base__.EnableDebugLayer)(::windows::core::Interface::as_raw(self))
602 }
603 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
604 #[cfg(feature = "Win32_Foundation")]
605 pub unsafe fn SetEnableGPUBasedValidation<P0>(&self, enable: P0)
606 where
607 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
608 {
609 (::windows::core::Interface::vtable(self).base__.SetEnableGPUBasedValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
610 }
611 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
612 #[cfg(feature = "Win32_Foundation")]
613 pub unsafe fn SetEnableSynchronizedCommandQueueValidation<P0>(&self, enable: P0)
614 where
615 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
616 {
617 (::windows::core::Interface::vtable(self).base__.SetEnableSynchronizedCommandQueueValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
618 }
619 pub unsafe fn SetGPUBasedValidationFlags(&self, flags: D3D12_GPU_BASED_VALIDATION_FLAGS) {
620 (::windows::core::Interface::vtable(self).base__.SetGPUBasedValidationFlags)(::windows::core::Interface::as_raw(self), flags)
621 }
622 pub unsafe fn DisableDebugLayer(&self) {
623 (::windows::core::Interface::vtable(self).DisableDebugLayer)(::windows::core::Interface::as_raw(self))
624 }
625}
626::windows::imp::interface_hierarchy!(ID3D12Debug4, ::windows::core::IUnknown, ID3D12Debug, ID3D12Debug3);
627impl ::core::cmp::PartialEq for ID3D12Debug4 {
628 fn eq(&self, other: &Self) -> bool {
629 self.0 == other.0
630 }
631}
632impl ::core::cmp::Eq for ID3D12Debug4 {}
633impl ::core::fmt::Debug for ID3D12Debug4 {
634 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
635 f.debug_tuple("ID3D12Debug4").field(&self.0).finish()
636 }
637}
638unsafe impl ::core::marker::Send for ID3D12Debug4 {}
639unsafe impl ::core::marker::Sync for ID3D12Debug4 {}
640unsafe impl ::windows::core::Interface for ID3D12Debug4 {
641 type Vtable = ID3D12Debug4_Vtbl;
642}
643impl ::core::clone::Clone for ID3D12Debug4 {
644 fn clone(&self) -> Self {
645 Self(self.0.clone())
646 }
647}
648unsafe impl ::windows::core::ComInterface for ID3D12Debug4 {
649 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x014b816e_9ec5_4a2f_a845_ffbe441ce13a);
650}
651#[repr(C)]
652#[doc(hidden)]
653pub struct ID3D12Debug4_Vtbl {
654 pub base__: ID3D12Debug3_Vtbl,
655 pub DisableDebugLayer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
656}
657#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
658#[repr(transparent)]
659pub struct ID3D12Debug5(::windows::core::IUnknown);
660impl ID3D12Debug5 {
661 pub unsafe fn EnableDebugLayer(&self) {
662 (::windows::core::Interface::vtable(self).base__.base__.base__.EnableDebugLayer)(::windows::core::Interface::as_raw(self))
663 }
664 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
665 #[cfg(feature = "Win32_Foundation")]
666 pub unsafe fn SetEnableGPUBasedValidation<P0>(&self, enable: P0)
667 where
668 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
669 {
670 (::windows::core::Interface::vtable(self).base__.base__.SetEnableGPUBasedValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
671 }
672 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
673 #[cfg(feature = "Win32_Foundation")]
674 pub unsafe fn SetEnableSynchronizedCommandQueueValidation<P0>(&self, enable: P0)
675 where
676 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
677 {
678 (::windows::core::Interface::vtable(self).base__.base__.SetEnableSynchronizedCommandQueueValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
679 }
680 pub unsafe fn SetGPUBasedValidationFlags(&self, flags: D3D12_GPU_BASED_VALIDATION_FLAGS) {
681 (::windows::core::Interface::vtable(self).base__.base__.SetGPUBasedValidationFlags)(::windows::core::Interface::as_raw(self), flags)
682 }
683 pub unsafe fn DisableDebugLayer(&self) {
684 (::windows::core::Interface::vtable(self).base__.DisableDebugLayer)(::windows::core::Interface::as_raw(self))
685 }
686 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
687 #[cfg(feature = "Win32_Foundation")]
688 pub unsafe fn SetEnableAutoName<P0>(&self, enable: P0)
689 where
690 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
691 {
692 (::windows::core::Interface::vtable(self).SetEnableAutoName)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
693 }
694}
695::windows::imp::interface_hierarchy!(ID3D12Debug5, ::windows::core::IUnknown, ID3D12Debug, ID3D12Debug3, ID3D12Debug4);
696impl ::core::cmp::PartialEq for ID3D12Debug5 {
697 fn eq(&self, other: &Self) -> bool {
698 self.0 == other.0
699 }
700}
701impl ::core::cmp::Eq for ID3D12Debug5 {}
702impl ::core::fmt::Debug for ID3D12Debug5 {
703 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
704 f.debug_tuple("ID3D12Debug5").field(&self.0).finish()
705 }
706}
707unsafe impl ::core::marker::Send for ID3D12Debug5 {}
708unsafe impl ::core::marker::Sync for ID3D12Debug5 {}
709unsafe impl ::windows::core::Interface for ID3D12Debug5 {
710 type Vtable = ID3D12Debug5_Vtbl;
711}
712impl ::core::clone::Clone for ID3D12Debug5 {
713 fn clone(&self) -> Self {
714 Self(self.0.clone())
715 }
716}
717unsafe impl ::windows::core::ComInterface for ID3D12Debug5 {
718 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x548d6b12_09fa_40e0_9069_5dcd589a52c9);
719}
720#[repr(C)]
721#[doc(hidden)]
722pub struct ID3D12Debug5_Vtbl {
723 pub base__: ID3D12Debug4_Vtbl,
724 #[cfg(feature = "Win32_Foundation")]
725 pub SetEnableAutoName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL),
726 #[cfg(not(feature = "Win32_Foundation"))]
727 SetEnableAutoName: usize,
728}
729#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
730#[repr(transparent)]
731pub struct ID3D12Debug6(::windows::core::IUnknown);
732impl ID3D12Debug6 {
733 pub unsafe fn EnableDebugLayer(&self) {
734 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnableDebugLayer)(::windows::core::Interface::as_raw(self))
735 }
736 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
737 #[cfg(feature = "Win32_Foundation")]
738 pub unsafe fn SetEnableGPUBasedValidation<P0>(&self, enable: P0)
739 where
740 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
741 {
742 (::windows::core::Interface::vtable(self).base__.base__.base__.SetEnableGPUBasedValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
743 }
744 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
745 #[cfg(feature = "Win32_Foundation")]
746 pub unsafe fn SetEnableSynchronizedCommandQueueValidation<P0>(&self, enable: P0)
747 where
748 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
749 {
750 (::windows::core::Interface::vtable(self).base__.base__.base__.SetEnableSynchronizedCommandQueueValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
751 }
752 pub unsafe fn SetGPUBasedValidationFlags(&self, flags: D3D12_GPU_BASED_VALIDATION_FLAGS) {
753 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGPUBasedValidationFlags)(::windows::core::Interface::as_raw(self), flags)
754 }
755 pub unsafe fn DisableDebugLayer(&self) {
756 (::windows::core::Interface::vtable(self).base__.base__.DisableDebugLayer)(::windows::core::Interface::as_raw(self))
757 }
758 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
759 #[cfg(feature = "Win32_Foundation")]
760 pub unsafe fn SetEnableAutoName<P0>(&self, enable: P0)
761 where
762 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
763 {
764 (::windows::core::Interface::vtable(self).base__.SetEnableAutoName)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
765 }
766 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
767 #[cfg(feature = "Win32_Foundation")]
768 pub unsafe fn SetForceLegacyBarrierValidation<P0>(&self, enable: P0)
769 where
770 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
771 {
772 (::windows::core::Interface::vtable(self).SetForceLegacyBarrierValidation)(::windows::core::Interface::as_raw(self), enable.into_param().abi())
773 }
774}
775::windows::imp::interface_hierarchy!(ID3D12Debug6, ::windows::core::IUnknown, ID3D12Debug, ID3D12Debug3, ID3D12Debug4, ID3D12Debug5);
776impl ::core::cmp::PartialEq for ID3D12Debug6 {
777 fn eq(&self, other: &Self) -> bool {
778 self.0 == other.0
779 }
780}
781impl ::core::cmp::Eq for ID3D12Debug6 {}
782impl ::core::fmt::Debug for ID3D12Debug6 {
783 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
784 f.debug_tuple("ID3D12Debug6").field(&self.0).finish()
785 }
786}
787unsafe impl ::core::marker::Send for ID3D12Debug6 {}
788unsafe impl ::core::marker::Sync for ID3D12Debug6 {}
789unsafe impl ::windows::core::Interface for ID3D12Debug6 {
790 type Vtable = ID3D12Debug6_Vtbl;
791}
792impl ::core::clone::Clone for ID3D12Debug6 {
793 fn clone(&self) -> Self {
794 Self(self.0.clone())
795 }
796}
797unsafe impl ::windows::core::ComInterface for ID3D12Debug6 {
798 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x82a816d6_5d01_4157_97d0_4975463fd1ed);
799}
800#[repr(C)]
801#[doc(hidden)]
802pub struct ID3D12Debug6_Vtbl {
803 pub base__: ID3D12Debug5_Vtbl,
804 #[cfg(feature = "Win32_Foundation")]
805 pub SetForceLegacyBarrierValidation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL),
806 #[cfg(not(feature = "Win32_Foundation"))]
807 SetForceLegacyBarrierValidation: usize,
808}
809#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
810#[repr(transparent)]
811pub struct ID3D12DebugCommandList(::windows::core::IUnknown);
812impl ID3D12DebugCommandList {
813 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
814 #[cfg(feature = "Win32_Foundation")]
815 pub unsafe fn AssertResourceState<P0>(&self, presource: P0, subresource: u32, state: u32) -> super::super::Foundation::BOOL
816 where
817 P0: ::windows::core::IntoParam<ID3D12Resource>,
818 {
819 (::windows::core::Interface::vtable(self).AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, state)
820 }
821 pub unsafe fn SetFeatureMask(&self, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::Result<()> {
822 (::windows::core::Interface::vtable(self).SetFeatureMask)(::windows::core::Interface::as_raw(self), mask).ok()
823 }
824 pub unsafe fn GetFeatureMask(&self) -> D3D12_DEBUG_FEATURE {
825 (::windows::core::Interface::vtable(self).GetFeatureMask)(::windows::core::Interface::as_raw(self))
826 }
827}
828::windows::imp::interface_hierarchy!(ID3D12DebugCommandList, ::windows::core::IUnknown);
829impl ::core::cmp::PartialEq for ID3D12DebugCommandList {
830 fn eq(&self, other: &Self) -> bool {
831 self.0 == other.0
832 }
833}
834impl ::core::cmp::Eq for ID3D12DebugCommandList {}
835impl ::core::fmt::Debug for ID3D12DebugCommandList {
836 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
837 f.debug_tuple("ID3D12DebugCommandList").field(&self.0).finish()
838 }
839}
840unsafe impl ::core::marker::Send for ID3D12DebugCommandList {}
841unsafe impl ::core::marker::Sync for ID3D12DebugCommandList {}
842unsafe impl ::windows::core::Interface for ID3D12DebugCommandList {
843 type Vtable = ID3D12DebugCommandList_Vtbl;
844}
845impl ::core::clone::Clone for ID3D12DebugCommandList {
846 fn clone(&self) -> Self {
847 Self(self.0.clone())
848 }
849}
850unsafe impl ::windows::core::ComInterface for ID3D12DebugCommandList {
851 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x09e0bf36_54ac_484f_8847_4baeeab6053f);
852}
853#[repr(C)]
854#[doc(hidden)]
855pub struct ID3D12DebugCommandList_Vtbl {
856 pub base__: ::windows::core::IUnknown_Vtbl,
857 #[cfg(feature = "Win32_Foundation")]
858 pub AssertResourceState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, state: u32) -> super::super::Foundation::BOOL,
859 #[cfg(not(feature = "Win32_Foundation"))]
860 AssertResourceState: usize,
861 pub SetFeatureMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::HRESULT,
862 pub GetFeatureMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_DEBUG_FEATURE,
863}
864#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
865#[repr(transparent)]
866pub struct ID3D12DebugCommandList1(::windows::core::IUnknown);
867impl ID3D12DebugCommandList1 {
868 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
869 #[cfg(feature = "Win32_Foundation")]
870 pub unsafe fn AssertResourceState<P0>(&self, presource: P0, subresource: u32, state: u32) -> super::super::Foundation::BOOL
871 where
872 P0: ::windows::core::IntoParam<ID3D12Resource>,
873 {
874 (::windows::core::Interface::vtable(self).AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, state)
875 }
876 pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
877 (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
878 }
879 pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
880 (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
881 }
882}
883::windows::imp::interface_hierarchy!(ID3D12DebugCommandList1, ::windows::core::IUnknown);
884impl ::core::cmp::PartialEq for ID3D12DebugCommandList1 {
885 fn eq(&self, other: &Self) -> bool {
886 self.0 == other.0
887 }
888}
889impl ::core::cmp::Eq for ID3D12DebugCommandList1 {}
890impl ::core::fmt::Debug for ID3D12DebugCommandList1 {
891 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
892 f.debug_tuple("ID3D12DebugCommandList1").field(&self.0).finish()
893 }
894}
895unsafe impl ::core::marker::Send for ID3D12DebugCommandList1 {}
896unsafe impl ::core::marker::Sync for ID3D12DebugCommandList1 {}
897unsafe impl ::windows::core::Interface for ID3D12DebugCommandList1 {
898 type Vtable = ID3D12DebugCommandList1_Vtbl;
899}
900impl ::core::clone::Clone for ID3D12DebugCommandList1 {
901 fn clone(&self) -> Self {
902 Self(self.0.clone())
903 }
904}
905unsafe impl ::windows::core::ComInterface for ID3D12DebugCommandList1 {
906 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x102ca951_311b_4b01_b11f_ecb83e061b37);
907}
908#[repr(C)]
909#[doc(hidden)]
910pub struct ID3D12DebugCommandList1_Vtbl {
911 pub base__: ::windows::core::IUnknown_Vtbl,
912 #[cfg(feature = "Win32_Foundation")]
913 pub AssertResourceState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, state: u32) -> super::super::Foundation::BOOL,
914 #[cfg(not(feature = "Win32_Foundation"))]
915 AssertResourceState: usize,
916 pub SetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
917 pub GetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
918}
919#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
920#[repr(transparent)]
921pub struct ID3D12DebugCommandList2(::windows::core::IUnknown);
922impl ID3D12DebugCommandList2 {
923 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
924 #[cfg(feature = "Win32_Foundation")]
925 pub unsafe fn AssertResourceState<P0>(&self, presource: P0, subresource: u32, state: u32) -> super::super::Foundation::BOOL
926 where
927 P0: ::windows::core::IntoParam<ID3D12Resource>,
928 {
929 (::windows::core::Interface::vtable(self).base__.AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, state)
930 }
931 pub unsafe fn SetFeatureMask(&self, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::Result<()> {
932 (::windows::core::Interface::vtable(self).base__.SetFeatureMask)(::windows::core::Interface::as_raw(self), mask).ok()
933 }
934 pub unsafe fn GetFeatureMask(&self) -> D3D12_DEBUG_FEATURE {
935 (::windows::core::Interface::vtable(self).base__.GetFeatureMask)(::windows::core::Interface::as_raw(self))
936 }
937 pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
938 (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
939 }
940 pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
941 (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
942 }
943}
944::windows::imp::interface_hierarchy!(ID3D12DebugCommandList2, ::windows::core::IUnknown, ID3D12DebugCommandList);
945impl ::core::cmp::PartialEq for ID3D12DebugCommandList2 {
946 fn eq(&self, other: &Self) -> bool {
947 self.0 == other.0
948 }
949}
950impl ::core::cmp::Eq for ID3D12DebugCommandList2 {}
951impl ::core::fmt::Debug for ID3D12DebugCommandList2 {
952 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
953 f.debug_tuple("ID3D12DebugCommandList2").field(&self.0).finish()
954 }
955}
956unsafe impl ::core::marker::Send for ID3D12DebugCommandList2 {}
957unsafe impl ::core::marker::Sync for ID3D12DebugCommandList2 {}
958unsafe impl ::windows::core::Interface for ID3D12DebugCommandList2 {
959 type Vtable = ID3D12DebugCommandList2_Vtbl;
960}
961impl ::core::clone::Clone for ID3D12DebugCommandList2 {
962 fn clone(&self) -> Self {
963 Self(self.0.clone())
964 }
965}
966unsafe impl ::windows::core::ComInterface for ID3D12DebugCommandList2 {
967 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xaeb575cf_4e06_48be_ba3b_c450fc96652e);
968}
969#[repr(C)]
970#[doc(hidden)]
971pub struct ID3D12DebugCommandList2_Vtbl {
972 pub base__: ID3D12DebugCommandList_Vtbl,
973 pub SetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
974 pub GetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
975}
976#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
977#[repr(transparent)]
978pub struct ID3D12DebugCommandList3(::windows::core::IUnknown);
979impl ID3D12DebugCommandList3 {
980 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
981 #[cfg(feature = "Win32_Foundation")]
982 pub unsafe fn AssertResourceState<P0>(&self, presource: P0, subresource: u32, state: u32) -> super::super::Foundation::BOOL
983 where
984 P0: ::windows::core::IntoParam<ID3D12Resource>,
985 {
986 (::windows::core::Interface::vtable(self).base__.base__.AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, state)
987 }
988 pub unsafe fn SetFeatureMask(&self, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::Result<()> {
989 (::windows::core::Interface::vtable(self).base__.base__.SetFeatureMask)(::windows::core::Interface::as_raw(self), mask).ok()
990 }
991 pub unsafe fn GetFeatureMask(&self) -> D3D12_DEBUG_FEATURE {
992 (::windows::core::Interface::vtable(self).base__.base__.GetFeatureMask)(::windows::core::Interface::as_raw(self))
993 }
994 pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
995 (::windows::core::Interface::vtable(self).base__.SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
996 }
997 pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
998 (::windows::core::Interface::vtable(self).base__.GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
999 }
1000 pub unsafe fn AssertResourceAccess<P0>(&self, presource: P0, subresource: u32, access: D3D12_BARRIER_ACCESS)
1001 where
1002 P0: ::windows::core::IntoParam<ID3D12Resource>,
1003 {
1004 (::windows::core::Interface::vtable(self).AssertResourceAccess)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, access)
1005 }
1006 pub unsafe fn AssertTextureLayout<P0>(&self, presource: P0, subresource: u32, layout: D3D12_BARRIER_LAYOUT)
1007 where
1008 P0: ::windows::core::IntoParam<ID3D12Resource>,
1009 {
1010 (::windows::core::Interface::vtable(self).AssertTextureLayout)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, layout)
1011 }
1012}
1013::windows::imp::interface_hierarchy!(ID3D12DebugCommandList3, ::windows::core::IUnknown, ID3D12DebugCommandList, ID3D12DebugCommandList2);
1014impl ::core::cmp::PartialEq for ID3D12DebugCommandList3 {
1015 fn eq(&self, other: &Self) -> bool {
1016 self.0 == other.0
1017 }
1018}
1019impl ::core::cmp::Eq for ID3D12DebugCommandList3 {}
1020impl ::core::fmt::Debug for ID3D12DebugCommandList3 {
1021 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1022 f.debug_tuple("ID3D12DebugCommandList3").field(&self.0).finish()
1023 }
1024}
1025unsafe impl ::core::marker::Send for ID3D12DebugCommandList3 {}
1026unsafe impl ::core::marker::Sync for ID3D12DebugCommandList3 {}
1027unsafe impl ::windows::core::Interface for ID3D12DebugCommandList3 {
1028 type Vtable = ID3D12DebugCommandList3_Vtbl;
1029}
1030impl ::core::clone::Clone for ID3D12DebugCommandList3 {
1031 fn clone(&self) -> Self {
1032 Self(self.0.clone())
1033 }
1034}
1035unsafe impl ::windows::core::ComInterface for ID3D12DebugCommandList3 {
1036 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x197d5e15_4d37_4d34_af78_724cd70fdb1f);
1037}
1038#[repr(C)]
1039#[doc(hidden)]
1040pub struct ID3D12DebugCommandList3_Vtbl {
1041 pub base__: ID3D12DebugCommandList2_Vtbl,
1042 pub AssertResourceAccess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, access: D3D12_BARRIER_ACCESS),
1043 pub AssertTextureLayout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, layout: D3D12_BARRIER_LAYOUT),
1044}
1045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1046#[repr(transparent)]
1047pub struct ID3D12DebugCommandQueue(::windows::core::IUnknown);
1048impl ID3D12DebugCommandQueue {
1049 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1050 #[cfg(feature = "Win32_Foundation")]
1051 pub unsafe fn AssertResourceState<P0>(&self, presource: P0, subresource: u32, state: u32) -> super::super::Foundation::BOOL
1052 where
1053 P0: ::windows::core::IntoParam<ID3D12Resource>,
1054 {
1055 (::windows::core::Interface::vtable(self).AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, state)
1056 }
1057}
1058::windows::imp::interface_hierarchy!(ID3D12DebugCommandQueue, ::windows::core::IUnknown);
1059impl ::core::cmp::PartialEq for ID3D12DebugCommandQueue {
1060 fn eq(&self, other: &Self) -> bool {
1061 self.0 == other.0
1062 }
1063}
1064impl ::core::cmp::Eq for ID3D12DebugCommandQueue {}
1065impl ::core::fmt::Debug for ID3D12DebugCommandQueue {
1066 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1067 f.debug_tuple("ID3D12DebugCommandQueue").field(&self.0).finish()
1068 }
1069}
1070unsafe impl ::core::marker::Send for ID3D12DebugCommandQueue {}
1071unsafe impl ::core::marker::Sync for ID3D12DebugCommandQueue {}
1072unsafe impl ::windows::core::Interface for ID3D12DebugCommandQueue {
1073 type Vtable = ID3D12DebugCommandQueue_Vtbl;
1074}
1075impl ::core::clone::Clone for ID3D12DebugCommandQueue {
1076 fn clone(&self) -> Self {
1077 Self(self.0.clone())
1078 }
1079}
1080unsafe impl ::windows::core::ComInterface for ID3D12DebugCommandQueue {
1081 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x09e0bf36_54ac_484f_8847_4baeeab6053a);
1082}
1083#[repr(C)]
1084#[doc(hidden)]
1085pub struct ID3D12DebugCommandQueue_Vtbl {
1086 pub base__: ::windows::core::IUnknown_Vtbl,
1087 #[cfg(feature = "Win32_Foundation")]
1088 pub AssertResourceState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, state: u32) -> super::super::Foundation::BOOL,
1089 #[cfg(not(feature = "Win32_Foundation"))]
1090 AssertResourceState: usize,
1091}
1092#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1093#[repr(transparent)]
1094pub struct ID3D12DebugCommandQueue1(::windows::core::IUnknown);
1095impl ID3D12DebugCommandQueue1 {
1096 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1097 #[cfg(feature = "Win32_Foundation")]
1098 pub unsafe fn AssertResourceState<P0>(&self, presource: P0, subresource: u32, state: u32) -> super::super::Foundation::BOOL
1099 where
1100 P0: ::windows::core::IntoParam<ID3D12Resource>,
1101 {
1102 (::windows::core::Interface::vtable(self).base__.AssertResourceState)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, state)
1103 }
1104 pub unsafe fn AssertResourceAccess<P0>(&self, presource: P0, subresource: u32, access: D3D12_BARRIER_ACCESS)
1105 where
1106 P0: ::windows::core::IntoParam<ID3D12Resource>,
1107 {
1108 (::windows::core::Interface::vtable(self).AssertResourceAccess)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, access)
1109 }
1110 pub unsafe fn AssertTextureLayout<P0>(&self, presource: P0, subresource: u32, layout: D3D12_BARRIER_LAYOUT)
1111 where
1112 P0: ::windows::core::IntoParam<ID3D12Resource>,
1113 {
1114 (::windows::core::Interface::vtable(self).AssertTextureLayout)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, layout)
1115 }
1116}
1117::windows::imp::interface_hierarchy!(ID3D12DebugCommandQueue1, ::windows::core::IUnknown, ID3D12DebugCommandQueue);
1118impl ::core::cmp::PartialEq for ID3D12DebugCommandQueue1 {
1119 fn eq(&self, other: &Self) -> bool {
1120 self.0 == other.0
1121 }
1122}
1123impl ::core::cmp::Eq for ID3D12DebugCommandQueue1 {}
1124impl ::core::fmt::Debug for ID3D12DebugCommandQueue1 {
1125 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1126 f.debug_tuple("ID3D12DebugCommandQueue1").field(&self.0).finish()
1127 }
1128}
1129unsafe impl ::core::marker::Send for ID3D12DebugCommandQueue1 {}
1130unsafe impl ::core::marker::Sync for ID3D12DebugCommandQueue1 {}
1131unsafe impl ::windows::core::Interface for ID3D12DebugCommandQueue1 {
1132 type Vtable = ID3D12DebugCommandQueue1_Vtbl;
1133}
1134impl ::core::clone::Clone for ID3D12DebugCommandQueue1 {
1135 fn clone(&self) -> Self {
1136 Self(self.0.clone())
1137 }
1138}
1139unsafe impl ::windows::core::ComInterface for ID3D12DebugCommandQueue1 {
1140 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x16be35a2_bfd6_49f2_bcae_eaae4aff862d);
1141}
1142#[repr(C)]
1143#[doc(hidden)]
1144pub struct ID3D12DebugCommandQueue1_Vtbl {
1145 pub base__: ID3D12DebugCommandQueue_Vtbl,
1146 pub AssertResourceAccess: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, access: D3D12_BARRIER_ACCESS),
1147 pub AssertTextureLayout: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, layout: D3D12_BARRIER_LAYOUT),
1148}
1149#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1150#[repr(transparent)]
1151pub struct ID3D12DebugDevice(::windows::core::IUnknown);
1152impl ID3D12DebugDevice {
1153 pub unsafe fn SetFeatureMask(&self, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::Result<()> {
1154 (::windows::core::Interface::vtable(self).SetFeatureMask)(::windows::core::Interface::as_raw(self), mask).ok()
1155 }
1156 pub unsafe fn GetFeatureMask(&self) -> D3D12_DEBUG_FEATURE {
1157 (::windows::core::Interface::vtable(self).GetFeatureMask)(::windows::core::Interface::as_raw(self))
1158 }
1159 pub unsafe fn ReportLiveDeviceObjects(&self, flags: D3D12_RLDO_FLAGS) -> ::windows::core::Result<()> {
1160 (::windows::core::Interface::vtable(self).ReportLiveDeviceObjects)(::windows::core::Interface::as_raw(self), flags).ok()
1161 }
1162}
1163::windows::imp::interface_hierarchy!(ID3D12DebugDevice, ::windows::core::IUnknown);
1164impl ::core::cmp::PartialEq for ID3D12DebugDevice {
1165 fn eq(&self, other: &Self) -> bool {
1166 self.0 == other.0
1167 }
1168}
1169impl ::core::cmp::Eq for ID3D12DebugDevice {}
1170impl ::core::fmt::Debug for ID3D12DebugDevice {
1171 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1172 f.debug_tuple("ID3D12DebugDevice").field(&self.0).finish()
1173 }
1174}
1175unsafe impl ::core::marker::Send for ID3D12DebugDevice {}
1176unsafe impl ::core::marker::Sync for ID3D12DebugDevice {}
1177unsafe impl ::windows::core::Interface for ID3D12DebugDevice {
1178 type Vtable = ID3D12DebugDevice_Vtbl;
1179}
1180impl ::core::clone::Clone for ID3D12DebugDevice {
1181 fn clone(&self) -> Self {
1182 Self(self.0.clone())
1183 }
1184}
1185unsafe impl ::windows::core::ComInterface for ID3D12DebugDevice {
1186 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3febd6dd_4973_4787_8194_e45f9e28923e);
1187}
1188#[repr(C)]
1189#[doc(hidden)]
1190pub struct ID3D12DebugDevice_Vtbl {
1191 pub base__: ::windows::core::IUnknown_Vtbl,
1192 pub SetFeatureMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::HRESULT,
1193 pub GetFeatureMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_DEBUG_FEATURE,
1194 pub ReportLiveDeviceObjects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: D3D12_RLDO_FLAGS) -> ::windows::core::HRESULT,
1195}
1196#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1197#[repr(transparent)]
1198pub struct ID3D12DebugDevice1(::windows::core::IUnknown);
1199impl ID3D12DebugDevice1 {
1200 pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
1201 (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
1202 }
1203 pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
1204 (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
1205 }
1206 pub unsafe fn ReportLiveDeviceObjects(&self, flags: D3D12_RLDO_FLAGS) -> ::windows::core::Result<()> {
1207 (::windows::core::Interface::vtable(self).ReportLiveDeviceObjects)(::windows::core::Interface::as_raw(self), flags).ok()
1208 }
1209}
1210::windows::imp::interface_hierarchy!(ID3D12DebugDevice1, ::windows::core::IUnknown);
1211impl ::core::cmp::PartialEq for ID3D12DebugDevice1 {
1212 fn eq(&self, other: &Self) -> bool {
1213 self.0 == other.0
1214 }
1215}
1216impl ::core::cmp::Eq for ID3D12DebugDevice1 {}
1217impl ::core::fmt::Debug for ID3D12DebugDevice1 {
1218 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1219 f.debug_tuple("ID3D12DebugDevice1").field(&self.0).finish()
1220 }
1221}
1222unsafe impl ::core::marker::Send for ID3D12DebugDevice1 {}
1223unsafe impl ::core::marker::Sync for ID3D12DebugDevice1 {}
1224unsafe impl ::windows::core::Interface for ID3D12DebugDevice1 {
1225 type Vtable = ID3D12DebugDevice1_Vtbl;
1226}
1227impl ::core::clone::Clone for ID3D12DebugDevice1 {
1228 fn clone(&self) -> Self {
1229 Self(self.0.clone())
1230 }
1231}
1232unsafe impl ::windows::core::ComInterface for ID3D12DebugDevice1 {
1233 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa9b71770_d099_4a65_a698_3dee10020f88);
1234}
1235#[repr(C)]
1236#[doc(hidden)]
1237pub struct ID3D12DebugDevice1_Vtbl {
1238 pub base__: ::windows::core::IUnknown_Vtbl,
1239 pub SetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
1240 pub GetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
1241 pub ReportLiveDeviceObjects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: D3D12_RLDO_FLAGS) -> ::windows::core::HRESULT,
1242}
1243#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1244#[repr(transparent)]
1245pub struct ID3D12DebugDevice2(::windows::core::IUnknown);
1246impl ID3D12DebugDevice2 {
1247 pub unsafe fn SetFeatureMask(&self, mask: D3D12_DEBUG_FEATURE) -> ::windows::core::Result<()> {
1248 (::windows::core::Interface::vtable(self).base__.SetFeatureMask)(::windows::core::Interface::as_raw(self), mask).ok()
1249 }
1250 pub unsafe fn GetFeatureMask(&self) -> D3D12_DEBUG_FEATURE {
1251 (::windows::core::Interface::vtable(self).base__.GetFeatureMask)(::windows::core::Interface::as_raw(self))
1252 }
1253 pub unsafe fn ReportLiveDeviceObjects(&self, flags: D3D12_RLDO_FLAGS) -> ::windows::core::Result<()> {
1254 (::windows::core::Interface::vtable(self).base__.ReportLiveDeviceObjects)(::windows::core::Interface::as_raw(self), flags).ok()
1255 }
1256 pub unsafe fn SetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
1257 (::windows::core::Interface::vtable(self).SetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
1258 }
1259 pub unsafe fn GetDebugParameter(&self, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::Result<()> {
1260 (::windows::core::Interface::vtable(self).GetDebugParameter)(::windows::core::Interface::as_raw(self), r#type, pdata, datasize).ok()
1261 }
1262}
1263::windows::imp::interface_hierarchy!(ID3D12DebugDevice2, ::windows::core::IUnknown, ID3D12DebugDevice);
1264impl ::core::cmp::PartialEq for ID3D12DebugDevice2 {
1265 fn eq(&self, other: &Self) -> bool {
1266 self.0 == other.0
1267 }
1268}
1269impl ::core::cmp::Eq for ID3D12DebugDevice2 {}
1270impl ::core::fmt::Debug for ID3D12DebugDevice2 {
1271 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1272 f.debug_tuple("ID3D12DebugDevice2").field(&self.0).finish()
1273 }
1274}
1275unsafe impl ::core::marker::Send for ID3D12DebugDevice2 {}
1276unsafe impl ::core::marker::Sync for ID3D12DebugDevice2 {}
1277unsafe impl ::windows::core::Interface for ID3D12DebugDevice2 {
1278 type Vtable = ID3D12DebugDevice2_Vtbl;
1279}
1280impl ::core::clone::Clone for ID3D12DebugDevice2 {
1281 fn clone(&self) -> Self {
1282 Self(self.0.clone())
1283 }
1284}
1285unsafe impl ::windows::core::ComInterface for ID3D12DebugDevice2 {
1286 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x60eccbc1_378d_4df1_894c_f8ac5ce4d7dd);
1287}
1288#[repr(C)]
1289#[doc(hidden)]
1290pub struct ID3D12DebugDevice2_Vtbl {
1291 pub base__: ID3D12DebugDevice_Vtbl,
1292 pub SetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *const ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
1293 pub GetDebugParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_DEBUG_DEVICE_PARAMETER_TYPE, pdata: *mut ::core::ffi::c_void, datasize: u32) -> ::windows::core::HRESULT,
1294}
1295#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1296#[repr(transparent)]
1297pub struct ID3D12DescriptorHeap(::windows::core::IUnknown);
1298impl ID3D12DescriptorHeap {
1299 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
1300 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
1301 }
1302 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
1303 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
1304 }
1305 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
1306 where
1307 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
1308 {
1309 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
1310 }
1311 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
1312 where
1313 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1314 {
1315 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
1316 }
1317 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1318 where
1319 T: ::windows::core::ComInterface,
1320 {
1321 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1322 }
1323 pub unsafe fn GetDesc(&self) -> D3D12_DESCRIPTOR_HEAP_DESC {
1324 let mut result__: D3D12_DESCRIPTOR_HEAP_DESC = ::core::mem::zeroed();
1325 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
1326 result__
1327 }
1328 pub unsafe fn GetCPUDescriptorHandleForHeapStart(&self) -> D3D12_CPU_DESCRIPTOR_HANDLE {
1329 let mut result__: D3D12_CPU_DESCRIPTOR_HANDLE = ::core::mem::zeroed();
1330 (::windows::core::Interface::vtable(self).GetCPUDescriptorHandleForHeapStart)(::windows::core::Interface::as_raw(self), &mut result__);
1331 result__
1332 }
1333 pub unsafe fn GetGPUDescriptorHandleForHeapStart(&self) -> D3D12_GPU_DESCRIPTOR_HANDLE {
1334 let mut result__: D3D12_GPU_DESCRIPTOR_HANDLE = ::core::mem::zeroed();
1335 (::windows::core::Interface::vtable(self).GetGPUDescriptorHandleForHeapStart)(::windows::core::Interface::as_raw(self), &mut result__);
1336 result__
1337 }
1338}
1339::windows::imp::interface_hierarchy!(ID3D12DescriptorHeap, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
1340impl ::core::cmp::PartialEq for ID3D12DescriptorHeap {
1341 fn eq(&self, other: &Self) -> bool {
1342 self.0 == other.0
1343 }
1344}
1345impl ::core::cmp::Eq for ID3D12DescriptorHeap {}
1346impl ::core::fmt::Debug for ID3D12DescriptorHeap {
1347 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1348 f.debug_tuple("ID3D12DescriptorHeap").field(&self.0).finish()
1349 }
1350}
1351unsafe impl ::core::marker::Send for ID3D12DescriptorHeap {}
1352unsafe impl ::core::marker::Sync for ID3D12DescriptorHeap {}
1353unsafe impl ::windows::core::Interface for ID3D12DescriptorHeap {
1354 type Vtable = ID3D12DescriptorHeap_Vtbl;
1355}
1356impl ::core::clone::Clone for ID3D12DescriptorHeap {
1357 fn clone(&self) -> Self {
1358 Self(self.0.clone())
1359 }
1360}
1361unsafe impl ::windows::core::ComInterface for ID3D12DescriptorHeap {
1362 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8efb471d_616c_4f49_90f7_127bb763fa51);
1363}
1364#[repr(C)]
1365#[doc(hidden)]
1366pub struct ID3D12DescriptorHeap_Vtbl {
1367 pub base__: ID3D12Pageable_Vtbl,
1368 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_DESCRIPTOR_HEAP_DESC),
1369 pub GetCPUDescriptorHandleForHeapStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_CPU_DESCRIPTOR_HANDLE),
1370 pub GetGPUDescriptorHandleForHeapStart: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_GPU_DESCRIPTOR_HANDLE),
1371}
1372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1373#[repr(transparent)]
1374pub struct ID3D12Device(::windows::core::IUnknown);
1375impl ID3D12Device {
1376 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
1377 (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
1378 }
1379 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
1380 (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
1381 }
1382 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
1383 where
1384 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
1385 {
1386 (::windows::core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
1387 }
1388 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
1389 where
1390 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1391 {
1392 (::windows::core::Interface::vtable(self).base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
1393 }
1394 pub unsafe fn GetNodeCount(&self) -> u32 {
1395 (::windows::core::Interface::vtable(self).GetNodeCount)(::windows::core::Interface::as_raw(self))
1396 }
1397 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
1398 where
1399 T: ::windows::core::ComInterface,
1400 {
1401 let mut result__ = ::std::ptr::null_mut();
1402 (::windows::core::Interface::vtable(self).CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1403 }
1404 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
1405 where
1406 T: ::windows::core::ComInterface,
1407 {
1408 let mut result__ = ::std::ptr::null_mut();
1409 (::windows::core::Interface::vtable(self).CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1410 }
1411 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
1412 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1413 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
1414 where
1415 T: ::windows::core::ComInterface,
1416 {
1417 let mut result__ = ::std::ptr::null_mut();
1418 (::windows::core::Interface::vtable(self).CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1419 }
1420 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
1421 where
1422 T: ::windows::core::ComInterface,
1423 {
1424 let mut result__ = ::std::ptr::null_mut();
1425 (::windows::core::Interface::vtable(self).CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1426 }
1427 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
1428 where
1429 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
1430 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
1431 T: ::windows::core::ComInterface,
1432 {
1433 let mut result__ = ::std::ptr::null_mut();
1434 (::windows::core::Interface::vtable(self).CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1435 }
1436 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
1437 (::windows::core::Interface::vtable(self).CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
1438 }
1439 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
1440 where
1441 T: ::windows::core::ComInterface,
1442 {
1443 let mut result__ = ::std::ptr::null_mut();
1444 (::windows::core::Interface::vtable(self).CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1445 }
1446 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
1447 (::windows::core::Interface::vtable(self).GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
1448 }
1449 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
1450 where
1451 T: ::windows::core::ComInterface,
1452 {
1453 let mut result__ = ::std::ptr::null_mut();
1454 (::windows::core::Interface::vtable(self).CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1455 }
1456 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
1457 (::windows::core::Interface::vtable(self).CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1458 }
1459 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1460 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1461 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1462 where
1463 P0: ::windows::core::IntoParam<ID3D12Resource>,
1464 {
1465 (::windows::core::Interface::vtable(self).CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1466 }
1467 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1468 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1469 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1470 where
1471 P0: ::windows::core::IntoParam<ID3D12Resource>,
1472 P1: ::windows::core::IntoParam<ID3D12Resource>,
1473 {
1474 (::windows::core::Interface::vtable(self).CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1475 }
1476 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1477 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1478 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1479 where
1480 P0: ::windows::core::IntoParam<ID3D12Resource>,
1481 {
1482 (::windows::core::Interface::vtable(self).CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1483 }
1484 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1485 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1486 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1487 where
1488 P0: ::windows::core::IntoParam<ID3D12Resource>,
1489 {
1490 (::windows::core::Interface::vtable(self).CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1491 }
1492 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
1493 (::windows::core::Interface::vtable(self).CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
1494 }
1495 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
1496 (::windows::core::Interface::vtable(self).CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
1497 }
1498 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
1499 (::windows::core::Interface::vtable(self).CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
1500 }
1501 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1502 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1503 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
1504 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
1505 (::windows::core::Interface::vtable(self).GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
1506 result__
1507 }
1508 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
1509 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
1510 (::windows::core::Interface::vtable(self).GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
1511 result__
1512 }
1513 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1514 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1515 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1516 where
1517 T: ::windows::core::ComInterface,
1518 {
1519 (::windows::core::Interface::vtable(self).CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1520 }
1521 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1522 where
1523 T: ::windows::core::ComInterface,
1524 {
1525 (::windows::core::Interface::vtable(self).CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1526 }
1527 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1528 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1529 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1530 where
1531 P0: ::windows::core::IntoParam<ID3D12Heap>,
1532 T: ::windows::core::ComInterface,
1533 {
1534 (::windows::core::Interface::vtable(self).CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1535 }
1536 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1537 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1538 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1539 where
1540 T: ::windows::core::ComInterface,
1541 {
1542 (::windows::core::Interface::vtable(self).CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1543 }
1544 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
1545 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
1546 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
1547 where
1548 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
1549 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1550 {
1551 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
1552 (::windows::core::Interface::vtable(self).CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
1553 }
1554 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1555 #[cfg(feature = "Win32_Foundation")]
1556 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1557 where
1558 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
1559 T: ::windows::core::ComInterface,
1560 {
1561 (::windows::core::Interface::vtable(self).OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1562 }
1563 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1564 #[cfg(feature = "Win32_Foundation")]
1565 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
1566 where
1567 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1568 {
1569 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
1570 (::windows::core::Interface::vtable(self).OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
1571 }
1572 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
1573 (::windows::core::Interface::vtable(self).MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
1574 }
1575 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
1576 (::windows::core::Interface::vtable(self).Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
1577 }
1578 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
1579 where
1580 T: ::windows::core::ComInterface,
1581 {
1582 let mut result__ = ::std::ptr::null_mut();
1583 (::windows::core::Interface::vtable(self).CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1584 }
1585 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
1586 (::windows::core::Interface::vtable(self).GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
1587 }
1588 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1589 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1590 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
1591 (::windows::core::Interface::vtable(self).GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
1592 }
1593 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1594 where
1595 T: ::windows::core::ComInterface,
1596 {
1597 (::windows::core::Interface::vtable(self).CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1598 }
1599 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1600 #[cfg(feature = "Win32_Foundation")]
1601 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
1602 where
1603 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
1604 {
1605 (::windows::core::Interface::vtable(self).SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
1606 }
1607 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1608 where
1609 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
1610 T: ::windows::core::ComInterface,
1611 {
1612 (::windows::core::Interface::vtable(self).CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1613 }
1614 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
1615 where
1616 P0: ::windows::core::IntoParam<ID3D12Resource>,
1617 {
1618 (::windows::core::Interface::vtable(self).GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
1619 }
1620 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1621 #[cfg(feature = "Win32_Foundation")]
1622 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
1623 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
1624 (::windows::core::Interface::vtable(self).GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
1625 result__
1626 }
1627}
1628::windows::imp::interface_hierarchy!(ID3D12Device, ::windows::core::IUnknown, ID3D12Object);
1629impl ::core::cmp::PartialEq for ID3D12Device {
1630 fn eq(&self, other: &Self) -> bool {
1631 self.0 == other.0
1632 }
1633}
1634impl ::core::cmp::Eq for ID3D12Device {}
1635impl ::core::fmt::Debug for ID3D12Device {
1636 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1637 f.debug_tuple("ID3D12Device").field(&self.0).finish()
1638 }
1639}
1640unsafe impl ::core::marker::Send for ID3D12Device {}
1641unsafe impl ::core::marker::Sync for ID3D12Device {}
1642unsafe impl ::windows::core::Interface for ID3D12Device {
1643 type Vtable = ID3D12Device_Vtbl;
1644}
1645impl ::core::clone::Clone for ID3D12Device {
1646 fn clone(&self) -> Self {
1647 Self(self.0.clone())
1648 }
1649}
1650unsafe impl ::windows::core::ComInterface for ID3D12Device {
1651 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x189819f1_1db6_4b57_be54_1821339b85f7);
1652}
1653#[repr(C)]
1654#[doc(hidden)]
1655pub struct ID3D12Device_Vtbl {
1656 pub base__: ID3D12Object_Vtbl,
1657 pub GetNodeCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
1658 pub CreateCommandQueue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_COMMAND_QUEUE_DESC, riid: *const ::windows::core::GUID, ppcommandqueue: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1659 pub CreateCommandAllocator: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, r#type: D3D12_COMMAND_LIST_TYPE, riid: *const ::windows::core::GUID, ppcommandallocator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1660 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1661 pub CreateGraphicsPipelineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC, riid: *const ::windows::core::GUID, pppipelinestate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1662 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
1663 CreateGraphicsPipelineState: usize,
1664 pub CreateComputePipelineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC, riid: *const ::windows::core::GUID, pppipelinestate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1665 pub CreateCommandList: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: *mut ::core::ffi::c_void, pinitialstate: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppcommandlist: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1666 pub CheckFeatureSupport: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::HRESULT,
1667 pub CreateDescriptorHeap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC, riid: *const ::windows::core::GUID, ppvheap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1668 pub GetDescriptorHandleIncrementSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32,
1669 pub CreateRootSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nodemask: u32, pblobwithrootsignature: *const ::core::ffi::c_void, bloblengthinbytes: usize, riid: *const ::windows::core::GUID, ppvrootsignature: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1670 pub CreateConstantBufferView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
1671 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1672 pub CreateShaderResourceView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, pdesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
1673 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1674 CreateShaderResourceView: usize,
1675 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1676 pub CreateUnorderedAccessView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, pcounterresource: *mut ::core::ffi::c_void, pdesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
1677 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1678 CreateUnorderedAccessView: usize,
1679 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1680 pub CreateRenderTargetView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, pdesc: *const D3D12_RENDER_TARGET_VIEW_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
1681 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1682 CreateRenderTargetView: usize,
1683 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1684 pub CreateDepthStencilView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, pdesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
1685 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1686 CreateDepthStencilView: usize,
1687 pub CreateSampler: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
1688 pub CopyDescriptors: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE),
1689 pub CopyDescriptorsSimple: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE),
1690 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1691 pub GetResourceAllocationInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_RESOURCE_ALLOCATION_INFO, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC),
1692 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1693 GetResourceAllocationInfo: usize,
1694 pub GetCustomHeapProperties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_HEAP_PROPERTIES, nodemask: u32, heaptype: D3D12_HEAP_TYPE),
1695 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1696 pub CreateCommittedResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riidresource: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1697 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1698 CreateCommittedResource: usize,
1699 pub CreateHeap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_HEAP_DESC, riid: *const ::windows::core::GUID, ppvheap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1700 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1701 pub CreatePlacedResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheap: *mut ::core::ffi::c_void, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1702 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1703 CreatePlacedResource: usize,
1704 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1705 pub CreateReservedResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1706 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1707 CreateReservedResource: usize,
1708 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
1709 pub CreateSharedHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pobject: *mut ::core::ffi::c_void, pattributes: *const super::super::Security::SECURITY_ATTRIBUTES, access: u32, name: ::windows::core::PCWSTR, phandle: *mut super::super::Foundation::HANDLE) -> ::windows::core::HRESULT,
1710 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Security")))]
1711 CreateSharedHandle: usize,
1712 #[cfg(feature = "Win32_Foundation")]
1713 pub OpenSharedHandle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nthandle: super::super::Foundation::HANDLE, riid: *const ::windows::core::GUID, ppvobj: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1714 #[cfg(not(feature = "Win32_Foundation"))]
1715 OpenSharedHandle: usize,
1716 #[cfg(feature = "Win32_Foundation")]
1717 pub OpenSharedHandleByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR, access: u32, pnthandle: *mut super::super::Foundation::HANDLE) -> ::windows::core::HRESULT,
1718 #[cfg(not(feature = "Win32_Foundation"))]
1719 OpenSharedHandleByName: usize,
1720 pub MakeResident: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numobjects: u32, ppobjects: *const *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1721 pub Evict: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numobjects: u32, ppobjects: *const *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1722 pub CreateFence: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, initialvalue: u64, flags: D3D12_FENCE_FLAGS, riid: *const ::windows::core::GUID, ppfence: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1723 pub GetDeviceRemovedReason: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1724 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1725 pub GetCopyableFootprints: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: *mut u64),
1726 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
1727 GetCopyableFootprints: usize,
1728 pub CreateQueryHeap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_QUERY_HEAP_DESC, riid: *const ::windows::core::GUID, ppvheap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1729 #[cfg(feature = "Win32_Foundation")]
1730 pub SetStablePowerState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enable: super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
1731 #[cfg(not(feature = "Win32_Foundation"))]
1732 SetStablePowerState: usize,
1733 pub CreateCommandSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvcommandsignature: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
1734 pub GetResourceTiling: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ptiledresource: *mut ::core::ffi::c_void, pnumtilesforentireresource: *mut u32, ppackedmipdesc: *mut D3D12_PACKED_MIP_INFO, pstandardtileshapefornonpackedmips: *mut D3D12_TILE_SHAPE, pnumsubresourcetilings: *mut u32, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING),
1735 #[cfg(feature = "Win32_Foundation")]
1736 pub GetAdapterLuid: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::LUID),
1737 #[cfg(not(feature = "Win32_Foundation"))]
1738 GetAdapterLuid: usize,
1739}
1740#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
1741#[repr(transparent)]
1742pub struct ID3D12Device1(::windows::core::IUnknown);
1743impl ID3D12Device1 {
1744 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
1745 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
1746 }
1747 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
1748 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
1749 }
1750 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
1751 where
1752 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
1753 {
1754 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
1755 }
1756 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
1757 where
1758 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1759 {
1760 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
1761 }
1762 pub unsafe fn GetNodeCount(&self) -> u32 {
1763 (::windows::core::Interface::vtable(self).base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
1764 }
1765 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
1766 where
1767 T: ::windows::core::ComInterface,
1768 {
1769 let mut result__ = ::std::ptr::null_mut();
1770 (::windows::core::Interface::vtable(self).base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1771 }
1772 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
1773 where
1774 T: ::windows::core::ComInterface,
1775 {
1776 let mut result__ = ::std::ptr::null_mut();
1777 (::windows::core::Interface::vtable(self).base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1778 }
1779 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
1780 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
1781 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::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).base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1787 }
1788 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
1789 where
1790 T: ::windows::core::ComInterface,
1791 {
1792 let mut result__ = ::std::ptr::null_mut();
1793 (::windows::core::Interface::vtable(self).base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1794 }
1795 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
1796 where
1797 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
1798 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
1799 T: ::windows::core::ComInterface,
1800 {
1801 let mut result__ = ::std::ptr::null_mut();
1802 (::windows::core::Interface::vtable(self).base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1803 }
1804 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
1805 (::windows::core::Interface::vtable(self).base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
1806 }
1807 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
1808 where
1809 T: ::windows::core::ComInterface,
1810 {
1811 let mut result__ = ::std::ptr::null_mut();
1812 (::windows::core::Interface::vtable(self).base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1813 }
1814 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
1815 (::windows::core::Interface::vtable(self).base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
1816 }
1817 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
1818 where
1819 T: ::windows::core::ComInterface,
1820 {
1821 let mut result__ = ::std::ptr::null_mut();
1822 (::windows::core::Interface::vtable(self).base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1823 }
1824 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
1825 (::windows::core::Interface::vtable(self).base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1826 }
1827 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1828 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1829 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1830 where
1831 P0: ::windows::core::IntoParam<ID3D12Resource>,
1832 {
1833 (::windows::core::Interface::vtable(self).base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1834 }
1835 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1836 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1837 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1838 where
1839 P0: ::windows::core::IntoParam<ID3D12Resource>,
1840 P1: ::windows::core::IntoParam<ID3D12Resource>,
1841 {
1842 (::windows::core::Interface::vtable(self).base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1843 }
1844 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1845 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1846 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1847 where
1848 P0: ::windows::core::IntoParam<ID3D12Resource>,
1849 {
1850 (::windows::core::Interface::vtable(self).base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1851 }
1852 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1853 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1854 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
1855 where
1856 P0: ::windows::core::IntoParam<ID3D12Resource>,
1857 {
1858 (::windows::core::Interface::vtable(self).base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
1859 }
1860 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
1861 (::windows::core::Interface::vtable(self).base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
1862 }
1863 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
1864 (::windows::core::Interface::vtable(self).base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
1865 }
1866 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
1867 (::windows::core::Interface::vtable(self).base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
1868 }
1869 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1870 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1871 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
1872 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
1873 (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
1874 result__
1875 }
1876 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
1877 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
1878 (::windows::core::Interface::vtable(self).base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
1879 result__
1880 }
1881 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1882 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1883 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1884 where
1885 T: ::windows::core::ComInterface,
1886 {
1887 (::windows::core::Interface::vtable(self).base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1888 }
1889 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1890 where
1891 T: ::windows::core::ComInterface,
1892 {
1893 (::windows::core::Interface::vtable(self).base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1894 }
1895 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1896 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1897 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1898 where
1899 P0: ::windows::core::IntoParam<ID3D12Heap>,
1900 T: ::windows::core::ComInterface,
1901 {
1902 (::windows::core::Interface::vtable(self).base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1903 }
1904 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1905 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1906 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1907 where
1908 T: ::windows::core::ComInterface,
1909 {
1910 (::windows::core::Interface::vtable(self).base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1911 }
1912 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
1913 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
1914 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
1915 where
1916 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
1917 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1918 {
1919 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
1920 (::windows::core::Interface::vtable(self).base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
1921 }
1922 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1923 #[cfg(feature = "Win32_Foundation")]
1924 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1925 where
1926 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
1927 T: ::windows::core::ComInterface,
1928 {
1929 (::windows::core::Interface::vtable(self).base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1930 }
1931 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1932 #[cfg(feature = "Win32_Foundation")]
1933 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
1934 where
1935 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
1936 {
1937 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
1938 (::windows::core::Interface::vtable(self).base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
1939 }
1940 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
1941 (::windows::core::Interface::vtable(self).base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
1942 }
1943 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
1944 (::windows::core::Interface::vtable(self).base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
1945 }
1946 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
1947 where
1948 T: ::windows::core::ComInterface,
1949 {
1950 let mut result__ = ::std::ptr::null_mut();
1951 (::windows::core::Interface::vtable(self).base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
1952 }
1953 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
1954 (::windows::core::Interface::vtable(self).base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
1955 }
1956 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
1957 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1958 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
1959 (::windows::core::Interface::vtable(self).base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
1960 }
1961 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1962 where
1963 T: ::windows::core::ComInterface,
1964 {
1965 (::windows::core::Interface::vtable(self).base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1966 }
1967 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1968 #[cfg(feature = "Win32_Foundation")]
1969 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
1970 where
1971 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
1972 {
1973 (::windows::core::Interface::vtable(self).base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
1974 }
1975 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
1976 where
1977 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
1978 T: ::windows::core::ComInterface,
1979 {
1980 (::windows::core::Interface::vtable(self).base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
1981 }
1982 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
1983 where
1984 P0: ::windows::core::IntoParam<ID3D12Resource>,
1985 {
1986 (::windows::core::Interface::vtable(self).base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
1987 }
1988 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
1989 #[cfg(feature = "Win32_Foundation")]
1990 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
1991 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
1992 (::windows::core::Interface::vtable(self).base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
1993 result__
1994 }
1995 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
1996 where
1997 T: ::windows::core::ComInterface,
1998 {
1999 let mut result__ = ::std::ptr::null_mut();
2000 (::windows::core::Interface::vtable(self).CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2001 }
2002 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2003 #[cfg(feature = "Win32_Foundation")]
2004 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
2005 where
2006 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2007 {
2008 (::windows::core::Interface::vtable(self).SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
2009 }
2010 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
2011 (::windows::core::Interface::vtable(self).SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
2012 }
2013}
2014::windows::imp::interface_hierarchy!(ID3D12Device1, ::windows::core::IUnknown, ID3D12Object, ID3D12Device);
2015impl ::core::cmp::PartialEq for ID3D12Device1 {
2016 fn eq(&self, other: &Self) -> bool {
2017 self.0 == other.0
2018 }
2019}
2020impl ::core::cmp::Eq for ID3D12Device1 {}
2021impl ::core::fmt::Debug for ID3D12Device1 {
2022 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2023 f.debug_tuple("ID3D12Device1").field(&self.0).finish()
2024 }
2025}
2026unsafe impl ::core::marker::Send for ID3D12Device1 {}
2027unsafe impl ::core::marker::Sync for ID3D12Device1 {}
2028unsafe impl ::windows::core::Interface for ID3D12Device1 {
2029 type Vtable = ID3D12Device1_Vtbl;
2030}
2031impl ::core::clone::Clone for ID3D12Device1 {
2032 fn clone(&self) -> Self {
2033 Self(self.0.clone())
2034 }
2035}
2036unsafe impl ::windows::core::ComInterface for ID3D12Device1 {
2037 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x77acce80_638e_4e65_8895_c1f23386863e);
2038}
2039#[repr(C)]
2040#[doc(hidden)]
2041pub struct ID3D12Device1_Vtbl {
2042 pub base__: ID3D12Device_Vtbl,
2043 pub CreatePipelineLibrary: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plibraryblob: *const ::core::ffi::c_void, bloblength: usize, riid: *const ::windows::core::GUID, pppipelinelibrary: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
2044 #[cfg(feature = "Win32_Foundation")]
2045 pub SetEventOnMultipleFenceCompletion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppfences: *const *mut ::core::ffi::c_void, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: super::super::Foundation::HANDLE) -> ::windows::core::HRESULT,
2046 #[cfg(not(feature = "Win32_Foundation"))]
2047 SetEventOnMultipleFenceCompletion: usize,
2048 pub SetResidencyPriority: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numobjects: u32, ppobjects: *const *mut ::core::ffi::c_void, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::HRESULT,
2049}
2050#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
2051#[repr(transparent)]
2052pub struct ID3D12Device10(::windows::core::IUnknown);
2053impl ID3D12Device10 {
2054 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
2055 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
2056 }
2057 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
2058 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
2059 }
2060 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
2061 where
2062 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
2063 {
2064 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
2065 }
2066 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
2067 where
2068 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
2069 {
2070 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
2071 }
2072 pub unsafe fn GetNodeCount(&self) -> u32 {
2073 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
2074 }
2075 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
2076 where
2077 T: ::windows::core::ComInterface,
2078 {
2079 let mut result__ = ::std::ptr::null_mut();
2080 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2081 }
2082 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
2083 where
2084 T: ::windows::core::ComInterface,
2085 {
2086 let mut result__ = ::std::ptr::null_mut();
2087 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2088 }
2089 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
2090 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2091 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
2092 where
2093 T: ::windows::core::ComInterface,
2094 {
2095 let mut result__ = ::std::ptr::null_mut();
2096 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2097 }
2098 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
2099 where
2100 T: ::windows::core::ComInterface,
2101 {
2102 let mut result__ = ::std::ptr::null_mut();
2103 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2104 }
2105 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
2106 where
2107 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
2108 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
2109 T: ::windows::core::ComInterface,
2110 {
2111 let mut result__ = ::std::ptr::null_mut();
2112 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2113 }
2114 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
2115 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
2116 }
2117 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
2118 where
2119 T: ::windows::core::ComInterface,
2120 {
2121 let mut result__ = ::std::ptr::null_mut();
2122 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2123 }
2124 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
2125 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
2126 }
2127 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
2128 where
2129 T: ::windows::core::ComInterface,
2130 {
2131 let mut result__ = ::std::ptr::null_mut();
2132 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2133 }
2134 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
2135 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2136 }
2137 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2138 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2139 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2140 where
2141 P0: ::windows::core::IntoParam<ID3D12Resource>,
2142 {
2143 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2144 }
2145 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2146 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2147 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2148 where
2149 P0: ::windows::core::IntoParam<ID3D12Resource>,
2150 P1: ::windows::core::IntoParam<ID3D12Resource>,
2151 {
2152 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2153 }
2154 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2155 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2156 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2157 where
2158 P0: ::windows::core::IntoParam<ID3D12Resource>,
2159 {
2160 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2161 }
2162 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2163 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2164 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2165 where
2166 P0: ::windows::core::IntoParam<ID3D12Resource>,
2167 {
2168 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2169 }
2170 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
2171 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
2172 }
2173 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
2174 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
2175 }
2176 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
2177 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
2178 }
2179 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2180 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2181 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
2182 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
2183 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
2184 result__
2185 }
2186 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
2187 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
2188 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
2189 result__
2190 }
2191 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2192 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2193 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2194 where
2195 T: ::windows::core::ComInterface,
2196 {
2197 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2198 }
2199 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2200 where
2201 T: ::windows::core::ComInterface,
2202 {
2203 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2204 }
2205 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2206 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2207 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2208 where
2209 P0: ::windows::core::IntoParam<ID3D12Heap>,
2210 T: ::windows::core::ComInterface,
2211 {
2212 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2213 }
2214 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2215 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2216 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2217 where
2218 T: ::windows::core::ComInterface,
2219 {
2220 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2221 }
2222 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
2223 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
2224 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
2225 where
2226 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
2227 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
2228 {
2229 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
2230 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
2231 }
2232 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2233 #[cfg(feature = "Win32_Foundation")]
2234 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2235 where
2236 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2237 T: ::windows::core::ComInterface,
2238 {
2239 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2240 }
2241 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2242 #[cfg(feature = "Win32_Foundation")]
2243 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
2244 where
2245 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
2246 {
2247 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
2248 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
2249 }
2250 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
2251 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
2252 }
2253 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
2254 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
2255 }
2256 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
2257 where
2258 T: ::windows::core::ComInterface,
2259 {
2260 let mut result__ = ::std::ptr::null_mut();
2261 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2262 }
2263 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
2264 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
2265 }
2266 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2267 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2268 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
2269 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
2270 }
2271 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2272 where
2273 T: ::windows::core::ComInterface,
2274 {
2275 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2276 }
2277 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2278 #[cfg(feature = "Win32_Foundation")]
2279 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
2280 where
2281 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
2282 {
2283 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
2284 }
2285 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2286 where
2287 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
2288 T: ::windows::core::ComInterface,
2289 {
2290 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2291 }
2292 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
2293 where
2294 P0: ::windows::core::IntoParam<ID3D12Resource>,
2295 {
2296 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
2297 }
2298 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2299 #[cfg(feature = "Win32_Foundation")]
2300 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
2301 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
2302 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
2303 result__
2304 }
2305 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
2306 where
2307 T: ::windows::core::ComInterface,
2308 {
2309 let mut result__ = ::std::ptr::null_mut();
2310 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2311 }
2312 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2313 #[cfg(feature = "Win32_Foundation")]
2314 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
2315 where
2316 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2317 {
2318 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
2319 }
2320 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
2321 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
2322 }
2323 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
2324 where
2325 T: ::windows::core::ComInterface,
2326 {
2327 let mut result__ = ::std::ptr::null_mut();
2328 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2329 }
2330 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
2331 where
2332 T: ::windows::core::ComInterface,
2333 {
2334 let mut result__ = ::std::ptr::null_mut();
2335 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2336 }
2337 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2338 #[cfg(feature = "Win32_Foundation")]
2339 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
2340 where
2341 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2342 T: ::windows::core::ComInterface,
2343 {
2344 let mut result__ = ::std::ptr::null_mut();
2345 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2346 }
2347 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
2348 where
2349 P0: ::windows::core::IntoParam<ID3D12Fence>,
2350 {
2351 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
2352 }
2353 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
2354 where
2355 T: ::windows::core::ComInterface,
2356 {
2357 let mut result__ = ::std::ptr::null_mut();
2358 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2359 }
2360 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
2361 where
2362 T: ::windows::core::ComInterface,
2363 {
2364 let mut result__ = ::std::ptr::null_mut();
2365 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2366 }
2367 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2368 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2369 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2370 where
2371 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2372 T: ::windows::core::ComInterface,
2373 {
2374 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2375 }
2376 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2377 where
2378 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2379 T: ::windows::core::ComInterface,
2380 {
2381 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2382 }
2383 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2384 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2385 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2386 where
2387 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2388 T: ::windows::core::ComInterface,
2389 {
2390 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2391 }
2392 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2393 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2394 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
2395 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
2396 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
2397 result__
2398 }
2399 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
2400 where
2401 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
2402 T: ::windows::core::ComInterface,
2403 {
2404 let mut result__ = ::std::ptr::null_mut();
2405 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2406 }
2407 pub unsafe fn RemoveDevice(&self) {
2408 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self))
2409 }
2410 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
2411 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
2412 }
2413 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
2414 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
2415 }
2416 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
2417 where
2418 T: ::windows::core::ComInterface,
2419 {
2420 let mut result__ = ::std::ptr::null_mut();
2421 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2422 }
2423 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
2424 where
2425 T: ::windows::core::ComInterface,
2426 {
2427 let mut result__ = ::std::ptr::null_mut();
2428 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2429 }
2430 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2431 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2432 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
2433 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
2434 }
2435 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
2436 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
2437 }
2438 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2439 #[cfg(feature = "Win32_Foundation")]
2440 pub unsafe fn SetBackgroundProcessingMode<P0>(&self, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: P0, pbfurthermeasurementsdesired: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()>
2441 where
2442 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2443 {
2444 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetBackgroundProcessingMode)(::windows::core::Interface::as_raw(self), mode, measurementsaction, heventtosignaluponcompletion.into_param().abi(), ::core::mem::transmute(pbfurthermeasurementsdesired.unwrap_or(::std::ptr::null_mut()))).ok()
2445 }
2446 pub unsafe fn AddToStateObject<P0, T>(&self, paddition: *const D3D12_STATE_OBJECT_DESC, pstateobjecttogrowfrom: P0) -> ::windows::core::Result<T>
2447 where
2448 P0: ::windows::core::IntoParam<ID3D12StateObject>,
2449 T: ::windows::core::ComInterface,
2450 {
2451 let mut result__ = ::std::ptr::null_mut();
2452 (::windows::core::Interface::vtable(self).base__.base__.base__.AddToStateObject)(::windows::core::Interface::as_raw(self), paddition, pstateobjecttogrowfrom.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2453 }
2454 pub unsafe fn CreateProtectedResourceSession1<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC1) -> ::windows::core::Result<T>
2455 where
2456 T: ::windows::core::ComInterface,
2457 {
2458 let mut result__ = ::std::ptr::null_mut();
2459 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateProtectedResourceSession1)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2460 }
2461 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2462 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2463 pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
2464 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
2465 (::windows::core::Interface::vtable(self).base__.base__.GetResourceAllocationInfo2)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
2466 result__
2467 }
2468 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2469 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2470 pub unsafe fn CreateCommittedResource2<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2471 where
2472 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2473 T: ::windows::core::ComInterface,
2474 {
2475 (::windows::core::Interface::vtable(self).base__.base__.CreateCommittedResource2)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2476 }
2477 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2478 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2479 pub unsafe fn CreatePlacedResource1<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2480 where
2481 P0: ::windows::core::IntoParam<ID3D12Heap>,
2482 T: ::windows::core::ComInterface,
2483 {
2484 (::windows::core::Interface::vtable(self).base__.base__.CreatePlacedResource1)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2485 }
2486 pub unsafe fn CreateSamplerFeedbackUnorderedAccessView<P0, P1>(&self, ptargetedresource: P0, pfeedbackresource: P1, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2487 where
2488 P0: ::windows::core::IntoParam<ID3D12Resource>,
2489 P1: ::windows::core::IntoParam<ID3D12Resource>,
2490 {
2491 (::windows::core::Interface::vtable(self).base__.base__.CreateSamplerFeedbackUnorderedAccessView)(::windows::core::Interface::as_raw(self), ptargetedresource.into_param().abi(), pfeedbackresource.into_param().abi(), ::core::mem::transmute(destdescriptor))
2492 }
2493 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2494 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2495 pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: *const D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
2496 (::windows::core::Interface::vtable(self).base__.base__.GetCopyableFootprints1)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
2497 }
2498 pub unsafe fn CreateShaderCacheSession<T>(&self, pdesc: *const D3D12_SHADER_CACHE_SESSION_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2499 where
2500 T: ::windows::core::ComInterface,
2501 {
2502 (::windows::core::Interface::vtable(self).base__.CreateShaderCacheSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2503 }
2504 pub unsafe fn ShaderCacheControl(&self, kinds: D3D12_SHADER_CACHE_KIND_FLAGS, control: D3D12_SHADER_CACHE_CONTROL_FLAGS) -> ::windows::core::Result<()> {
2505 (::windows::core::Interface::vtable(self).base__.ShaderCacheControl)(::windows::core::Interface::as_raw(self), kinds, control).ok()
2506 }
2507 pub unsafe fn CreateCommandQueue1<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC, creatorid: *const ::windows::core::GUID) -> ::windows::core::Result<T>
2508 where
2509 T: ::windows::core::ComInterface,
2510 {
2511 let mut result__ = ::std::ptr::null_mut();
2512 (::windows::core::Interface::vtable(self).base__.CreateCommandQueue1)(::windows::core::Interface::as_raw(self), pdesc, creatorid, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2513 }
2514 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2515 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2516 pub unsafe fn CreateCommittedResource3<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, pcastableformats: ::core::option::Option<&[super::Dxgi::Common::DXGI_FORMAT]>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2517 where
2518 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2519 T: ::windows::core::ComInterface,
2520 {
2521 (::windows::core::Interface::vtable(self).CreateCommittedResource3)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initiallayout, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), pcastableformats.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcastableformats.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2522 }
2523 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2524 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2525 pub unsafe fn CreatePlacedResource2<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pcastableformats: ::core::option::Option<&[super::Dxgi::Common::DXGI_FORMAT]>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2526 where
2527 P0: ::windows::core::IntoParam<ID3D12Heap>,
2528 T: ::windows::core::ComInterface,
2529 {
2530 (::windows::core::Interface::vtable(self).CreatePlacedResource2)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initiallayout, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pcastableformats.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcastableformats.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2531 }
2532 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2533 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2534 pub unsafe fn CreateReservedResource2<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, pcastableformats: ::core::option::Option<&[super::Dxgi::Common::DXGI_FORMAT]>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2535 where
2536 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2537 T: ::windows::core::ComInterface,
2538 {
2539 (::windows::core::Interface::vtable(self).CreateReservedResource2)(::windows::core::Interface::as_raw(self), pdesc, initiallayout, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), pcastableformats.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcastableformats.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2540 }
2541}
2542::windows::imp::interface_hierarchy!(ID3D12Device10, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4, ID3D12Device5, ID3D12Device6, ID3D12Device7, ID3D12Device8, ID3D12Device9);
2543impl ::core::cmp::PartialEq for ID3D12Device10 {
2544 fn eq(&self, other: &Self) -> bool {
2545 self.0 == other.0
2546 }
2547}
2548impl ::core::cmp::Eq for ID3D12Device10 {}
2549impl ::core::fmt::Debug for ID3D12Device10 {
2550 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2551 f.debug_tuple("ID3D12Device10").field(&self.0).finish()
2552 }
2553}
2554unsafe impl ::core::marker::Send for ID3D12Device10 {}
2555unsafe impl ::core::marker::Sync for ID3D12Device10 {}
2556unsafe impl ::windows::core::Interface for ID3D12Device10 {
2557 type Vtable = ID3D12Device10_Vtbl;
2558}
2559impl ::core::clone::Clone for ID3D12Device10 {
2560 fn clone(&self) -> Self {
2561 Self(self.0.clone())
2562 }
2563}
2564unsafe impl ::windows::core::ComInterface for ID3D12Device10 {
2565 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x517f8718_aa66_49f9_b02b_a7ab89c06031);
2566}
2567#[repr(C)]
2568#[doc(hidden)]
2569pub struct ID3D12Device10_Vtbl {
2570 pub base__: ID3D12Device9_Vtbl,
2571 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2572 pub CreateCommittedResource3: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, pprotectedsession: *mut ::core::ffi::c_void, numcastableformats: u32, pcastableformats: *const super::Dxgi::Common::DXGI_FORMAT, riidresource: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
2573 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2574 CreateCommittedResource3: usize,
2575 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2576 pub CreatePlacedResource2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheap: *mut ::core::ffi::c_void, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, numcastableformats: u32, pcastableformats: *const super::Dxgi::Common::DXGI_FORMAT, riid: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
2577 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2578 CreatePlacedResource2: usize,
2579 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2580 pub CreateReservedResource2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_RESOURCE_DESC, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, pprotectedsession: *mut ::core::ffi::c_void, numcastableformats: u32, pcastableformats: *const super::Dxgi::Common::DXGI_FORMAT, riid: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
2581 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
2582 CreateReservedResource2: usize,
2583}
2584#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
2585#[repr(transparent)]
2586pub struct ID3D12Device11(::windows::core::IUnknown);
2587impl ID3D12Device11 {
2588 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
2589 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
2590 }
2591 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
2592 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
2593 }
2594 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
2595 where
2596 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
2597 {
2598 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
2599 }
2600 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
2601 where
2602 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
2603 {
2604 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
2605 }
2606 pub unsafe fn GetNodeCount(&self) -> u32 {
2607 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
2608 }
2609 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
2610 where
2611 T: ::windows::core::ComInterface,
2612 {
2613 let mut result__ = ::std::ptr::null_mut();
2614 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2615 }
2616 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
2617 where
2618 T: ::windows::core::ComInterface,
2619 {
2620 let mut result__ = ::std::ptr::null_mut();
2621 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2622 }
2623 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
2624 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2625 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
2626 where
2627 T: ::windows::core::ComInterface,
2628 {
2629 let mut result__ = ::std::ptr::null_mut();
2630 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2631 }
2632 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
2633 where
2634 T: ::windows::core::ComInterface,
2635 {
2636 let mut result__ = ::std::ptr::null_mut();
2637 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2638 }
2639 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
2640 where
2641 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
2642 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
2643 T: ::windows::core::ComInterface,
2644 {
2645 let mut result__ = ::std::ptr::null_mut();
2646 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2647 }
2648 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
2649 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
2650 }
2651 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
2652 where
2653 T: ::windows::core::ComInterface,
2654 {
2655 let mut result__ = ::std::ptr::null_mut();
2656 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2657 }
2658 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
2659 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
2660 }
2661 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
2662 where
2663 T: ::windows::core::ComInterface,
2664 {
2665 let mut result__ = ::std::ptr::null_mut();
2666 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2667 }
2668 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
2669 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2670 }
2671 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2672 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2673 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2674 where
2675 P0: ::windows::core::IntoParam<ID3D12Resource>,
2676 {
2677 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2678 }
2679 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2680 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2681 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2682 where
2683 P0: ::windows::core::IntoParam<ID3D12Resource>,
2684 P1: ::windows::core::IntoParam<ID3D12Resource>,
2685 {
2686 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2687 }
2688 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2689 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2690 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2691 where
2692 P0: ::windows::core::IntoParam<ID3D12Resource>,
2693 {
2694 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2695 }
2696 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2697 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2698 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
2699 where
2700 P0: ::windows::core::IntoParam<ID3D12Resource>,
2701 {
2702 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
2703 }
2704 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
2705 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
2706 }
2707 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
2708 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
2709 }
2710 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
2711 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
2712 }
2713 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2714 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2715 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
2716 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
2717 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
2718 result__
2719 }
2720 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
2721 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
2722 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
2723 result__
2724 }
2725 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2726 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2727 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2728 where
2729 T: ::windows::core::ComInterface,
2730 {
2731 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2732 }
2733 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2734 where
2735 T: ::windows::core::ComInterface,
2736 {
2737 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2738 }
2739 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2740 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2741 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2742 where
2743 P0: ::windows::core::IntoParam<ID3D12Heap>,
2744 T: ::windows::core::ComInterface,
2745 {
2746 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2747 }
2748 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2749 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2750 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2751 where
2752 T: ::windows::core::ComInterface,
2753 {
2754 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2755 }
2756 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
2757 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
2758 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
2759 where
2760 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
2761 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
2762 {
2763 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
2764 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
2765 }
2766 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2767 #[cfg(feature = "Win32_Foundation")]
2768 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2769 where
2770 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2771 T: ::windows::core::ComInterface,
2772 {
2773 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2774 }
2775 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2776 #[cfg(feature = "Win32_Foundation")]
2777 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
2778 where
2779 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
2780 {
2781 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
2782 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
2783 }
2784 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
2785 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
2786 }
2787 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
2788 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
2789 }
2790 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
2791 where
2792 T: ::windows::core::ComInterface,
2793 {
2794 let mut result__ = ::std::ptr::null_mut();
2795 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2796 }
2797 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
2798 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
2799 }
2800 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2801 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2802 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
2803 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
2804 }
2805 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2806 where
2807 T: ::windows::core::ComInterface,
2808 {
2809 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2810 }
2811 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2812 #[cfg(feature = "Win32_Foundation")]
2813 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
2814 where
2815 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
2816 {
2817 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
2818 }
2819 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2820 where
2821 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
2822 T: ::windows::core::ComInterface,
2823 {
2824 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2825 }
2826 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
2827 where
2828 P0: ::windows::core::IntoParam<ID3D12Resource>,
2829 {
2830 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
2831 }
2832 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2833 #[cfg(feature = "Win32_Foundation")]
2834 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
2835 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
2836 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
2837 result__
2838 }
2839 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
2840 where
2841 T: ::windows::core::ComInterface,
2842 {
2843 let mut result__ = ::std::ptr::null_mut();
2844 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2845 }
2846 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2847 #[cfg(feature = "Win32_Foundation")]
2848 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
2849 where
2850 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2851 {
2852 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
2853 }
2854 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
2855 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
2856 }
2857 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
2858 where
2859 T: ::windows::core::ComInterface,
2860 {
2861 let mut result__ = ::std::ptr::null_mut();
2862 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2863 }
2864 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
2865 where
2866 T: ::windows::core::ComInterface,
2867 {
2868 let mut result__ = ::std::ptr::null_mut();
2869 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2870 }
2871 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2872 #[cfg(feature = "Win32_Foundation")]
2873 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
2874 where
2875 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2876 T: ::windows::core::ComInterface,
2877 {
2878 let mut result__ = ::std::ptr::null_mut();
2879 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2880 }
2881 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
2882 where
2883 P0: ::windows::core::IntoParam<ID3D12Fence>,
2884 {
2885 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
2886 }
2887 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
2888 where
2889 T: ::windows::core::ComInterface,
2890 {
2891 let mut result__ = ::std::ptr::null_mut();
2892 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2893 }
2894 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
2895 where
2896 T: ::windows::core::ComInterface,
2897 {
2898 let mut result__ = ::std::ptr::null_mut();
2899 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2900 }
2901 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2902 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2903 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2904 where
2905 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2906 T: ::windows::core::ComInterface,
2907 {
2908 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2909 }
2910 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2911 where
2912 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2913 T: ::windows::core::ComInterface,
2914 {
2915 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2916 }
2917 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2918 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2919 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
2920 where
2921 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
2922 T: ::windows::core::ComInterface,
2923 {
2924 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
2925 }
2926 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2927 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2928 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
2929 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
2930 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
2931 result__
2932 }
2933 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
2934 where
2935 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
2936 T: ::windows::core::ComInterface,
2937 {
2938 let mut result__ = ::std::ptr::null_mut();
2939 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2940 }
2941 pub unsafe fn RemoveDevice(&self) {
2942 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self))
2943 }
2944 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
2945 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
2946 }
2947 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
2948 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
2949 }
2950 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
2951 where
2952 T: ::windows::core::ComInterface,
2953 {
2954 let mut result__ = ::std::ptr::null_mut();
2955 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2956 }
2957 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
2958 where
2959 T: ::windows::core::ComInterface,
2960 {
2961 let mut result__ = ::std::ptr::null_mut();
2962 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2963 }
2964 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2965 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2966 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
2967 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
2968 }
2969 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
2970 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
2971 }
2972 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
2973 #[cfg(feature = "Win32_Foundation")]
2974 pub unsafe fn SetBackgroundProcessingMode<P0>(&self, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: P0, pbfurthermeasurementsdesired: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()>
2975 where
2976 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
2977 {
2978 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetBackgroundProcessingMode)(::windows::core::Interface::as_raw(self), mode, measurementsaction, heventtosignaluponcompletion.into_param().abi(), ::core::mem::transmute(pbfurthermeasurementsdesired.unwrap_or(::std::ptr::null_mut()))).ok()
2979 }
2980 pub unsafe fn AddToStateObject<P0, T>(&self, paddition: *const D3D12_STATE_OBJECT_DESC, pstateobjecttogrowfrom: P0) -> ::windows::core::Result<T>
2981 where
2982 P0: ::windows::core::IntoParam<ID3D12StateObject>,
2983 T: ::windows::core::ComInterface,
2984 {
2985 let mut result__ = ::std::ptr::null_mut();
2986 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AddToStateObject)(::windows::core::Interface::as_raw(self), paddition, pstateobjecttogrowfrom.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2987 }
2988 pub unsafe fn CreateProtectedResourceSession1<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC1) -> ::windows::core::Result<T>
2989 where
2990 T: ::windows::core::ComInterface,
2991 {
2992 let mut result__ = ::std::ptr::null_mut();
2993 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateProtectedResourceSession1)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
2994 }
2995 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
2996 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2997 pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
2998 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
2999 (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceAllocationInfo2)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
3000 result__
3001 }
3002 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3003 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3004 pub unsafe fn CreateCommittedResource2<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3005 where
3006 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
3007 T: ::windows::core::ComInterface,
3008 {
3009 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommittedResource2)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3010 }
3011 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3012 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3013 pub unsafe fn CreatePlacedResource1<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3014 where
3015 P0: ::windows::core::IntoParam<ID3D12Heap>,
3016 T: ::windows::core::ComInterface,
3017 {
3018 (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePlacedResource1)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3019 }
3020 pub unsafe fn CreateSamplerFeedbackUnorderedAccessView<P0, P1>(&self, ptargetedresource: P0, pfeedbackresource: P1, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3021 where
3022 P0: ::windows::core::IntoParam<ID3D12Resource>,
3023 P1: ::windows::core::IntoParam<ID3D12Resource>,
3024 {
3025 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateSamplerFeedbackUnorderedAccessView)(::windows::core::Interface::as_raw(self), ptargetedresource.into_param().abi(), pfeedbackresource.into_param().abi(), ::core::mem::transmute(destdescriptor))
3026 }
3027 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3028 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3029 pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: *const D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
3030 (::windows::core::Interface::vtable(self).base__.base__.base__.GetCopyableFootprints1)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
3031 }
3032 pub unsafe fn CreateShaderCacheSession<T>(&self, pdesc: *const D3D12_SHADER_CACHE_SESSION_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3033 where
3034 T: ::windows::core::ComInterface,
3035 {
3036 (::windows::core::Interface::vtable(self).base__.base__.CreateShaderCacheSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3037 }
3038 pub unsafe fn ShaderCacheControl(&self, kinds: D3D12_SHADER_CACHE_KIND_FLAGS, control: D3D12_SHADER_CACHE_CONTROL_FLAGS) -> ::windows::core::Result<()> {
3039 (::windows::core::Interface::vtable(self).base__.base__.ShaderCacheControl)(::windows::core::Interface::as_raw(self), kinds, control).ok()
3040 }
3041 pub unsafe fn CreateCommandQueue1<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC, creatorid: *const ::windows::core::GUID) -> ::windows::core::Result<T>
3042 where
3043 T: ::windows::core::ComInterface,
3044 {
3045 let mut result__ = ::std::ptr::null_mut();
3046 (::windows::core::Interface::vtable(self).base__.base__.CreateCommandQueue1)(::windows::core::Interface::as_raw(self), pdesc, creatorid, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3047 }
3048 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3049 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3050 pub unsafe fn CreateCommittedResource3<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, pcastableformats: ::core::option::Option<&[super::Dxgi::Common::DXGI_FORMAT]>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3051 where
3052 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
3053 T: ::windows::core::ComInterface,
3054 {
3055 (::windows::core::Interface::vtable(self).base__.CreateCommittedResource3)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initiallayout, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), pcastableformats.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcastableformats.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3056 }
3057 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3058 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3059 pub unsafe fn CreatePlacedResource2<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pcastableformats: ::core::option::Option<&[super::Dxgi::Common::DXGI_FORMAT]>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3060 where
3061 P0: ::windows::core::IntoParam<ID3D12Heap>,
3062 T: ::windows::core::ComInterface,
3063 {
3064 (::windows::core::Interface::vtable(self).base__.CreatePlacedResource2)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initiallayout, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pcastableformats.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcastableformats.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3065 }
3066 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3067 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3068 pub unsafe fn CreateReservedResource2<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initiallayout: D3D12_BARRIER_LAYOUT, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, pcastableformats: ::core::option::Option<&[super::Dxgi::Common::DXGI_FORMAT]>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3069 where
3070 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
3071 T: ::windows::core::ComInterface,
3072 {
3073 (::windows::core::Interface::vtable(self).base__.CreateReservedResource2)(::windows::core::Interface::as_raw(self), pdesc, initiallayout, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), pcastableformats.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pcastableformats.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3074 }
3075 pub unsafe fn CreateSampler2(&self, pdesc: *const D3D12_SAMPLER_DESC2, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3076 (::windows::core::Interface::vtable(self).CreateSampler2)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
3077 }
3078}
3079::windows::imp::interface_hierarchy!(ID3D12Device11, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4, ID3D12Device5, ID3D12Device6, ID3D12Device7, ID3D12Device8, ID3D12Device9, ID3D12Device10);
3080impl ::core::cmp::PartialEq for ID3D12Device11 {
3081 fn eq(&self, other: &Self) -> bool {
3082 self.0 == other.0
3083 }
3084}
3085impl ::core::cmp::Eq for ID3D12Device11 {}
3086impl ::core::fmt::Debug for ID3D12Device11 {
3087 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3088 f.debug_tuple("ID3D12Device11").field(&self.0).finish()
3089 }
3090}
3091unsafe impl ::core::marker::Send for ID3D12Device11 {}
3092unsafe impl ::core::marker::Sync for ID3D12Device11 {}
3093unsafe impl ::windows::core::Interface for ID3D12Device11 {
3094 type Vtable = ID3D12Device11_Vtbl;
3095}
3096impl ::core::clone::Clone for ID3D12Device11 {
3097 fn clone(&self) -> Self {
3098 Self(self.0.clone())
3099 }
3100}
3101unsafe impl ::windows::core::ComInterface for ID3D12Device11 {
3102 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5405c344_d457_444e_b4dd_2366e45aee39);
3103}
3104#[repr(C)]
3105#[doc(hidden)]
3106pub struct ID3D12Device11_Vtbl {
3107 pub base__: ID3D12Device10_Vtbl,
3108 pub CreateSampler2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_SAMPLER_DESC2, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
3109}
3110#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
3111#[repr(transparent)]
3112pub struct ID3D12Device2(::windows::core::IUnknown);
3113impl ID3D12Device2 {
3114 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
3115 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
3116 }
3117 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
3118 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
3119 }
3120 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
3121 where
3122 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
3123 {
3124 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
3125 }
3126 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
3127 where
3128 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3129 {
3130 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
3131 }
3132 pub unsafe fn GetNodeCount(&self) -> u32 {
3133 (::windows::core::Interface::vtable(self).base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
3134 }
3135 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
3136 where
3137 T: ::windows::core::ComInterface,
3138 {
3139 let mut result__ = ::std::ptr::null_mut();
3140 (::windows::core::Interface::vtable(self).base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3141 }
3142 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
3143 where
3144 T: ::windows::core::ComInterface,
3145 {
3146 let mut result__ = ::std::ptr::null_mut();
3147 (::windows::core::Interface::vtable(self).base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
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 CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
3152 where
3153 T: ::windows::core::ComInterface,
3154 {
3155 let mut result__ = ::std::ptr::null_mut();
3156 (::windows::core::Interface::vtable(self).base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3157 }
3158 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
3159 where
3160 T: ::windows::core::ComInterface,
3161 {
3162 let mut result__ = ::std::ptr::null_mut();
3163 (::windows::core::Interface::vtable(self).base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3164 }
3165 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
3166 where
3167 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
3168 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
3169 T: ::windows::core::ComInterface,
3170 {
3171 let mut result__ = ::std::ptr::null_mut();
3172 (::windows::core::Interface::vtable(self).base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3173 }
3174 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
3175 (::windows::core::Interface::vtable(self).base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
3176 }
3177 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
3178 where
3179 T: ::windows::core::ComInterface,
3180 {
3181 let mut result__ = ::std::ptr::null_mut();
3182 (::windows::core::Interface::vtable(self).base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3183 }
3184 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
3185 (::windows::core::Interface::vtable(self).base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
3186 }
3187 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
3188 where
3189 T: ::windows::core::ComInterface,
3190 {
3191 let mut result__ = ::std::ptr::null_mut();
3192 (::windows::core::Interface::vtable(self).base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3193 }
3194 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3195 (::windows::core::Interface::vtable(self).base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3196 }
3197 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3198 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3199 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3200 where
3201 P0: ::windows::core::IntoParam<ID3D12Resource>,
3202 {
3203 (::windows::core::Interface::vtable(self).base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3204 }
3205 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3206 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3207 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3208 where
3209 P0: ::windows::core::IntoParam<ID3D12Resource>,
3210 P1: ::windows::core::IntoParam<ID3D12Resource>,
3211 {
3212 (::windows::core::Interface::vtable(self).base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3213 }
3214 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3215 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3216 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3217 where
3218 P0: ::windows::core::IntoParam<ID3D12Resource>,
3219 {
3220 (::windows::core::Interface::vtable(self).base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3221 }
3222 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3223 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3224 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3225 where
3226 P0: ::windows::core::IntoParam<ID3D12Resource>,
3227 {
3228 (::windows::core::Interface::vtable(self).base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3229 }
3230 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3231 (::windows::core::Interface::vtable(self).base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
3232 }
3233 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
3234 (::windows::core::Interface::vtable(self).base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
3235 }
3236 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
3237 (::windows::core::Interface::vtable(self).base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
3238 }
3239 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3240 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3241 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
3242 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
3243 (::windows::core::Interface::vtable(self).base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
3244 result__
3245 }
3246 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
3247 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
3248 (::windows::core::Interface::vtable(self).base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
3249 result__
3250 }
3251 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3252 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3253 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3254 where
3255 T: ::windows::core::ComInterface,
3256 {
3257 (::windows::core::Interface::vtable(self).base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3258 }
3259 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3260 where
3261 T: ::windows::core::ComInterface,
3262 {
3263 (::windows::core::Interface::vtable(self).base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3264 }
3265 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3266 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3267 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3268 where
3269 P0: ::windows::core::IntoParam<ID3D12Heap>,
3270 T: ::windows::core::ComInterface,
3271 {
3272 (::windows::core::Interface::vtable(self).base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3273 }
3274 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3275 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3276 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3277 where
3278 T: ::windows::core::ComInterface,
3279 {
3280 (::windows::core::Interface::vtable(self).base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3281 }
3282 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
3283 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
3284 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
3285 where
3286 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
3287 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3288 {
3289 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
3290 (::windows::core::Interface::vtable(self).base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
3291 }
3292 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3293 #[cfg(feature = "Win32_Foundation")]
3294 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3295 where
3296 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
3297 T: ::windows::core::ComInterface,
3298 {
3299 (::windows::core::Interface::vtable(self).base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3300 }
3301 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3302 #[cfg(feature = "Win32_Foundation")]
3303 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
3304 where
3305 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3306 {
3307 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
3308 (::windows::core::Interface::vtable(self).base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
3309 }
3310 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
3311 (::windows::core::Interface::vtable(self).base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
3312 }
3313 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
3314 (::windows::core::Interface::vtable(self).base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
3315 }
3316 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
3317 where
3318 T: ::windows::core::ComInterface,
3319 {
3320 let mut result__ = ::std::ptr::null_mut();
3321 (::windows::core::Interface::vtable(self).base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3322 }
3323 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
3324 (::windows::core::Interface::vtable(self).base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
3325 }
3326 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3327 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3328 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
3329 (::windows::core::Interface::vtable(self).base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
3330 }
3331 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3332 where
3333 T: ::windows::core::ComInterface,
3334 {
3335 (::windows::core::Interface::vtable(self).base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3336 }
3337 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3338 #[cfg(feature = "Win32_Foundation")]
3339 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
3340 where
3341 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
3342 {
3343 (::windows::core::Interface::vtable(self).base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
3344 }
3345 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3346 where
3347 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
3348 T: ::windows::core::ComInterface,
3349 {
3350 (::windows::core::Interface::vtable(self).base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3351 }
3352 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
3353 where
3354 P0: ::windows::core::IntoParam<ID3D12Resource>,
3355 {
3356 (::windows::core::Interface::vtable(self).base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
3357 }
3358 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3359 #[cfg(feature = "Win32_Foundation")]
3360 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
3361 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
3362 (::windows::core::Interface::vtable(self).base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
3363 result__
3364 }
3365 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
3366 where
3367 T: ::windows::core::ComInterface,
3368 {
3369 let mut result__ = ::std::ptr::null_mut();
3370 (::windows::core::Interface::vtable(self).base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3371 }
3372 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3373 #[cfg(feature = "Win32_Foundation")]
3374 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
3375 where
3376 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
3377 {
3378 (::windows::core::Interface::vtable(self).base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
3379 }
3380 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
3381 (::windows::core::Interface::vtable(self).base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
3382 }
3383 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
3384 where
3385 T: ::windows::core::ComInterface,
3386 {
3387 let mut result__ = ::std::ptr::null_mut();
3388 (::windows::core::Interface::vtable(self).CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3389 }
3390}
3391::windows::imp::interface_hierarchy!(ID3D12Device2, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1);
3392impl ::core::cmp::PartialEq for ID3D12Device2 {
3393 fn eq(&self, other: &Self) -> bool {
3394 self.0 == other.0
3395 }
3396}
3397impl ::core::cmp::Eq for ID3D12Device2 {}
3398impl ::core::fmt::Debug for ID3D12Device2 {
3399 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3400 f.debug_tuple("ID3D12Device2").field(&self.0).finish()
3401 }
3402}
3403unsafe impl ::core::marker::Send for ID3D12Device2 {}
3404unsafe impl ::core::marker::Sync for ID3D12Device2 {}
3405unsafe impl ::windows::core::Interface for ID3D12Device2 {
3406 type Vtable = ID3D12Device2_Vtbl;
3407}
3408impl ::core::clone::Clone for ID3D12Device2 {
3409 fn clone(&self) -> Self {
3410 Self(self.0.clone())
3411 }
3412}
3413unsafe impl ::windows::core::ComInterface for ID3D12Device2 {
3414 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x30baa41e_b15b_475c_a0bb_1af5c5b64328);
3415}
3416#[repr(C)]
3417#[doc(hidden)]
3418pub struct ID3D12Device2_Vtbl {
3419 pub base__: ID3D12Device1_Vtbl,
3420 pub CreatePipelineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC, riid: *const ::windows::core::GUID, pppipelinestate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
3421}
3422#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
3423#[repr(transparent)]
3424pub struct ID3D12Device3(::windows::core::IUnknown);
3425impl ID3D12Device3 {
3426 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
3427 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
3428 }
3429 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
3430 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
3431 }
3432 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
3433 where
3434 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
3435 {
3436 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
3437 }
3438 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
3439 where
3440 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3441 {
3442 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
3443 }
3444 pub unsafe fn GetNodeCount(&self) -> u32 {
3445 (::windows::core::Interface::vtable(self).base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
3446 }
3447 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
3448 where
3449 T: ::windows::core::ComInterface,
3450 {
3451 let mut result__ = ::std::ptr::null_mut();
3452 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3453 }
3454 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
3455 where
3456 T: ::windows::core::ComInterface,
3457 {
3458 let mut result__ = ::std::ptr::null_mut();
3459 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3460 }
3461 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
3462 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3463 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
3464 where
3465 T: ::windows::core::ComInterface,
3466 {
3467 let mut result__ = ::std::ptr::null_mut();
3468 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3469 }
3470 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
3471 where
3472 T: ::windows::core::ComInterface,
3473 {
3474 let mut result__ = ::std::ptr::null_mut();
3475 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3476 }
3477 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
3478 where
3479 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
3480 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
3481 T: ::windows::core::ComInterface,
3482 {
3483 let mut result__ = ::std::ptr::null_mut();
3484 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3485 }
3486 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
3487 (::windows::core::Interface::vtable(self).base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
3488 }
3489 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
3490 where
3491 T: ::windows::core::ComInterface,
3492 {
3493 let mut result__ = ::std::ptr::null_mut();
3494 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3495 }
3496 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
3497 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
3498 }
3499 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
3500 where
3501 T: ::windows::core::ComInterface,
3502 {
3503 let mut result__ = ::std::ptr::null_mut();
3504 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3505 }
3506 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3507 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3508 }
3509 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3510 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3511 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3512 where
3513 P0: ::windows::core::IntoParam<ID3D12Resource>,
3514 {
3515 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3516 }
3517 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3518 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3519 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3520 where
3521 P0: ::windows::core::IntoParam<ID3D12Resource>,
3522 P1: ::windows::core::IntoParam<ID3D12Resource>,
3523 {
3524 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3525 }
3526 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3527 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3528 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3529 where
3530 P0: ::windows::core::IntoParam<ID3D12Resource>,
3531 {
3532 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3533 }
3534 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3535 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3536 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3537 where
3538 P0: ::windows::core::IntoParam<ID3D12Resource>,
3539 {
3540 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3541 }
3542 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3543 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
3544 }
3545 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
3546 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
3547 }
3548 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
3549 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
3550 }
3551 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3552 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3553 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
3554 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
3555 (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
3556 result__
3557 }
3558 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
3559 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
3560 (::windows::core::Interface::vtable(self).base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
3561 result__
3562 }
3563 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3564 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3565 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3566 where
3567 T: ::windows::core::ComInterface,
3568 {
3569 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3570 }
3571 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3572 where
3573 T: ::windows::core::ComInterface,
3574 {
3575 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3576 }
3577 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3578 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3579 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3580 where
3581 P0: ::windows::core::IntoParam<ID3D12Heap>,
3582 T: ::windows::core::ComInterface,
3583 {
3584 (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3585 }
3586 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3587 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3588 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3589 where
3590 T: ::windows::core::ComInterface,
3591 {
3592 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3593 }
3594 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
3595 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
3596 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
3597 where
3598 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
3599 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3600 {
3601 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
3602 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
3603 }
3604 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3605 #[cfg(feature = "Win32_Foundation")]
3606 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3607 where
3608 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
3609 T: ::windows::core::ComInterface,
3610 {
3611 (::windows::core::Interface::vtable(self).base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3612 }
3613 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3614 #[cfg(feature = "Win32_Foundation")]
3615 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
3616 where
3617 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3618 {
3619 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
3620 (::windows::core::Interface::vtable(self).base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
3621 }
3622 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
3623 (::windows::core::Interface::vtable(self).base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
3624 }
3625 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
3626 (::windows::core::Interface::vtable(self).base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
3627 }
3628 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
3629 where
3630 T: ::windows::core::ComInterface,
3631 {
3632 let mut result__ = ::std::ptr::null_mut();
3633 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3634 }
3635 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
3636 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
3637 }
3638 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3639 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3640 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
3641 (::windows::core::Interface::vtable(self).base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
3642 }
3643 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3644 where
3645 T: ::windows::core::ComInterface,
3646 {
3647 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3648 }
3649 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3650 #[cfg(feature = "Win32_Foundation")]
3651 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
3652 where
3653 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
3654 {
3655 (::windows::core::Interface::vtable(self).base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
3656 }
3657 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3658 where
3659 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
3660 T: ::windows::core::ComInterface,
3661 {
3662 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3663 }
3664 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
3665 where
3666 P0: ::windows::core::IntoParam<ID3D12Resource>,
3667 {
3668 (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
3669 }
3670 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3671 #[cfg(feature = "Win32_Foundation")]
3672 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
3673 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
3674 (::windows::core::Interface::vtable(self).base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
3675 result__
3676 }
3677 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
3678 where
3679 T: ::windows::core::ComInterface,
3680 {
3681 let mut result__ = ::std::ptr::null_mut();
3682 (::windows::core::Interface::vtable(self).base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3683 }
3684 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3685 #[cfg(feature = "Win32_Foundation")]
3686 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
3687 where
3688 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
3689 {
3690 (::windows::core::Interface::vtable(self).base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
3691 }
3692 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
3693 (::windows::core::Interface::vtable(self).base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
3694 }
3695 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
3696 where
3697 T: ::windows::core::ComInterface,
3698 {
3699 let mut result__ = ::std::ptr::null_mut();
3700 (::windows::core::Interface::vtable(self).base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3701 }
3702 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
3703 where
3704 T: ::windows::core::ComInterface,
3705 {
3706 let mut result__ = ::std::ptr::null_mut();
3707 (::windows::core::Interface::vtable(self).OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3708 }
3709 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3710 #[cfg(feature = "Win32_Foundation")]
3711 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
3712 where
3713 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
3714 T: ::windows::core::ComInterface,
3715 {
3716 let mut result__ = ::std::ptr::null_mut();
3717 (::windows::core::Interface::vtable(self).OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3718 }
3719 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
3720 where
3721 P0: ::windows::core::IntoParam<ID3D12Fence>,
3722 {
3723 (::windows::core::Interface::vtable(self).EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
3724 }
3725}
3726::windows::imp::interface_hierarchy!(ID3D12Device3, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2);
3727impl ::core::cmp::PartialEq for ID3D12Device3 {
3728 fn eq(&self, other: &Self) -> bool {
3729 self.0 == other.0
3730 }
3731}
3732impl ::core::cmp::Eq for ID3D12Device3 {}
3733impl ::core::fmt::Debug for ID3D12Device3 {
3734 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3735 f.debug_tuple("ID3D12Device3").field(&self.0).finish()
3736 }
3737}
3738unsafe impl ::core::marker::Send for ID3D12Device3 {}
3739unsafe impl ::core::marker::Sync for ID3D12Device3 {}
3740unsafe impl ::windows::core::Interface for ID3D12Device3 {
3741 type Vtable = ID3D12Device3_Vtbl;
3742}
3743impl ::core::clone::Clone for ID3D12Device3 {
3744 fn clone(&self) -> Self {
3745 Self(self.0.clone())
3746 }
3747}
3748unsafe impl ::windows::core::ComInterface for ID3D12Device3 {
3749 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x81dadc15_2bad_4392_93c5_101345c4aa98);
3750}
3751#[repr(C)]
3752#[doc(hidden)]
3753pub struct ID3D12Device3_Vtbl {
3754 pub base__: ID3D12Device2_Vtbl,
3755 pub OpenExistingHeapFromAddress: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, paddress: *const ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvheap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
3756 #[cfg(feature = "Win32_Foundation")]
3757 pub OpenExistingHeapFromFileMapping: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, hfilemapping: super::super::Foundation::HANDLE, riid: *const ::windows::core::GUID, ppvheap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
3758 #[cfg(not(feature = "Win32_Foundation"))]
3759 OpenExistingHeapFromFileMapping: usize,
3760 pub EnqueueMakeResident: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: D3D12_RESIDENCY_FLAGS, numobjects: u32, ppobjects: *const *mut ::core::ffi::c_void, pfencetosignal: *mut ::core::ffi::c_void, fencevaluetosignal: u64) -> ::windows::core::HRESULT,
3761}
3762#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
3763#[repr(transparent)]
3764pub struct ID3D12Device4(::windows::core::IUnknown);
3765impl ID3D12Device4 {
3766 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
3767 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
3768 }
3769 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
3770 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
3771 }
3772 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
3773 where
3774 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
3775 {
3776 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
3777 }
3778 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
3779 where
3780 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3781 {
3782 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
3783 }
3784 pub unsafe fn GetNodeCount(&self) -> u32 {
3785 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
3786 }
3787 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
3788 where
3789 T: ::windows::core::ComInterface,
3790 {
3791 let mut result__ = ::std::ptr::null_mut();
3792 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3793 }
3794 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
3795 where
3796 T: ::windows::core::ComInterface,
3797 {
3798 let mut result__ = ::std::ptr::null_mut();
3799 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3800 }
3801 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
3802 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
3803 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
3804 where
3805 T: ::windows::core::ComInterface,
3806 {
3807 let mut result__ = ::std::ptr::null_mut();
3808 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3809 }
3810 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
3811 where
3812 T: ::windows::core::ComInterface,
3813 {
3814 let mut result__ = ::std::ptr::null_mut();
3815 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3816 }
3817 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
3818 where
3819 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
3820 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
3821 T: ::windows::core::ComInterface,
3822 {
3823 let mut result__ = ::std::ptr::null_mut();
3824 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3825 }
3826 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
3827 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
3828 }
3829 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
3830 where
3831 T: ::windows::core::ComInterface,
3832 {
3833 let mut result__ = ::std::ptr::null_mut();
3834 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3835 }
3836 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
3837 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
3838 }
3839 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
3840 where
3841 T: ::windows::core::ComInterface,
3842 {
3843 let mut result__ = ::std::ptr::null_mut();
3844 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3845 }
3846 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3847 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3848 }
3849 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3850 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3851 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3852 where
3853 P0: ::windows::core::IntoParam<ID3D12Resource>,
3854 {
3855 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3856 }
3857 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3858 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3859 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3860 where
3861 P0: ::windows::core::IntoParam<ID3D12Resource>,
3862 P1: ::windows::core::IntoParam<ID3D12Resource>,
3863 {
3864 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3865 }
3866 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3867 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3868 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3869 where
3870 P0: ::windows::core::IntoParam<ID3D12Resource>,
3871 {
3872 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3873 }
3874 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3875 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3876 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
3877 where
3878 P0: ::windows::core::IntoParam<ID3D12Resource>,
3879 {
3880 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
3881 }
3882 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
3883 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
3884 }
3885 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
3886 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
3887 }
3888 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
3889 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
3890 }
3891 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3892 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3893 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
3894 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
3895 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
3896 result__
3897 }
3898 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
3899 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
3900 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
3901 result__
3902 }
3903 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3904 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3905 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3906 where
3907 T: ::windows::core::ComInterface,
3908 {
3909 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3910 }
3911 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3912 where
3913 T: ::windows::core::ComInterface,
3914 {
3915 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3916 }
3917 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3918 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3919 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3920 where
3921 P0: ::windows::core::IntoParam<ID3D12Heap>,
3922 T: ::windows::core::ComInterface,
3923 {
3924 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3925 }
3926 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3927 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3928 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3929 where
3930 T: ::windows::core::ComInterface,
3931 {
3932 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3933 }
3934 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
3935 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
3936 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
3937 where
3938 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
3939 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3940 {
3941 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
3942 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
3943 }
3944 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3945 #[cfg(feature = "Win32_Foundation")]
3946 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3947 where
3948 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
3949 T: ::windows::core::ComInterface,
3950 {
3951 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3952 }
3953 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3954 #[cfg(feature = "Win32_Foundation")]
3955 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
3956 where
3957 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
3958 {
3959 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
3960 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
3961 }
3962 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
3963 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
3964 }
3965 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
3966 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
3967 }
3968 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
3969 where
3970 T: ::windows::core::ComInterface,
3971 {
3972 let mut result__ = ::std::ptr::null_mut();
3973 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
3974 }
3975 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
3976 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
3977 }
3978 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
3979 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
3980 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
3981 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
3982 }
3983 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3984 where
3985 T: ::windows::core::ComInterface,
3986 {
3987 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
3988 }
3989 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
3990 #[cfg(feature = "Win32_Foundation")]
3991 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
3992 where
3993 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
3994 {
3995 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
3996 }
3997 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
3998 where
3999 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
4000 T: ::windows::core::ComInterface,
4001 {
4002 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4003 }
4004 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
4005 where
4006 P0: ::windows::core::IntoParam<ID3D12Resource>,
4007 {
4008 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
4009 }
4010 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4011 #[cfg(feature = "Win32_Foundation")]
4012 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
4013 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
4014 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
4015 result__
4016 }
4017 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::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__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<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 SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
4027 where
4028 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4029 {
4030 (::windows::core::Interface::vtable(self).base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
4031 }
4032 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
4033 (::windows::core::Interface::vtable(self).base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
4034 }
4035 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
4036 where
4037 T: ::windows::core::ComInterface,
4038 {
4039 let mut result__ = ::std::ptr::null_mut();
4040 (::windows::core::Interface::vtable(self).base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4041 }
4042 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
4043 where
4044 T: ::windows::core::ComInterface,
4045 {
4046 let mut result__ = ::std::ptr::null_mut();
4047 (::windows::core::Interface::vtable(self).base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4048 }
4049 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4050 #[cfg(feature = "Win32_Foundation")]
4051 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
4052 where
4053 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4054 T: ::windows::core::ComInterface,
4055 {
4056 let mut result__ = ::std::ptr::null_mut();
4057 (::windows::core::Interface::vtable(self).base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4058 }
4059 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
4060 where
4061 P0: ::windows::core::IntoParam<ID3D12Fence>,
4062 {
4063 (::windows::core::Interface::vtable(self).base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
4064 }
4065 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
4066 where
4067 T: ::windows::core::ComInterface,
4068 {
4069 let mut result__ = ::std::ptr::null_mut();
4070 (::windows::core::Interface::vtable(self).CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4071 }
4072 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
4073 where
4074 T: ::windows::core::ComInterface,
4075 {
4076 let mut result__ = ::std::ptr::null_mut();
4077 (::windows::core::Interface::vtable(self).CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4078 }
4079 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4080 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4081 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4082 where
4083 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4084 T: ::windows::core::ComInterface,
4085 {
4086 (::windows::core::Interface::vtable(self).CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4087 }
4088 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4089 where
4090 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4091 T: ::windows::core::ComInterface,
4092 {
4093 (::windows::core::Interface::vtable(self).CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4094 }
4095 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4096 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4097 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4098 where
4099 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4100 T: ::windows::core::ComInterface,
4101 {
4102 (::windows::core::Interface::vtable(self).CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4103 }
4104 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4105 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4106 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
4107 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
4108 (::windows::core::Interface::vtable(self).GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
4109 result__
4110 }
4111}
4112::windows::imp::interface_hierarchy!(ID3D12Device4, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3);
4113impl ::core::cmp::PartialEq for ID3D12Device4 {
4114 fn eq(&self, other: &Self) -> bool {
4115 self.0 == other.0
4116 }
4117}
4118impl ::core::cmp::Eq for ID3D12Device4 {}
4119impl ::core::fmt::Debug for ID3D12Device4 {
4120 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4121 f.debug_tuple("ID3D12Device4").field(&self.0).finish()
4122 }
4123}
4124unsafe impl ::core::marker::Send for ID3D12Device4 {}
4125unsafe impl ::core::marker::Sync for ID3D12Device4 {}
4126unsafe impl ::windows::core::Interface for ID3D12Device4 {
4127 type Vtable = ID3D12Device4_Vtbl;
4128}
4129impl ::core::clone::Clone for ID3D12Device4 {
4130 fn clone(&self) -> Self {
4131 Self(self.0.clone())
4132 }
4133}
4134unsafe impl ::windows::core::ComInterface for ID3D12Device4 {
4135 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe865df17_a9ee_46f9_a463_3098315aa2e5);
4136}
4137#[repr(C)]
4138#[doc(hidden)]
4139pub struct ID3D12Device4_Vtbl {
4140 pub base__: ID3D12Device3_Vtbl,
4141 pub CreateCommandList1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS, riid: *const ::windows::core::GUID, ppcommandlist: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4142 pub CreateProtectedResourceSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC, riid: *const ::windows::core::GUID, ppsession: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4143 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4144 pub CreateCommittedResource1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, pprotectedsession: *mut ::core::ffi::c_void, riidresource: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4145 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4146 CreateCommittedResource1: usize,
4147 pub CreateHeap1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvheap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4148 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4149 pub CreateReservedResource1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, pprotectedsession: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4150 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4151 CreateReservedResource1: usize,
4152 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4153 pub GetResourceAllocationInfo1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_RESOURCE_ALLOCATION_INFO, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1),
4154 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4155 GetResourceAllocationInfo1: usize,
4156}
4157#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
4158#[repr(transparent)]
4159pub struct ID3D12Device5(::windows::core::IUnknown);
4160impl ID3D12Device5 {
4161 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
4162 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
4163 }
4164 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
4165 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
4166 }
4167 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
4168 where
4169 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
4170 {
4171 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
4172 }
4173 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
4174 where
4175 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
4176 {
4177 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
4178 }
4179 pub unsafe fn GetNodeCount(&self) -> u32 {
4180 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
4181 }
4182 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
4183 where
4184 T: ::windows::core::ComInterface,
4185 {
4186 let mut result__ = ::std::ptr::null_mut();
4187 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4188 }
4189 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
4190 where
4191 T: ::windows::core::ComInterface,
4192 {
4193 let mut result__ = ::std::ptr::null_mut();
4194 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4195 }
4196 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
4197 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4198 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
4199 where
4200 T: ::windows::core::ComInterface,
4201 {
4202 let mut result__ = ::std::ptr::null_mut();
4203 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4204 }
4205 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
4206 where
4207 T: ::windows::core::ComInterface,
4208 {
4209 let mut result__ = ::std::ptr::null_mut();
4210 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4211 }
4212 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
4213 where
4214 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
4215 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
4216 T: ::windows::core::ComInterface,
4217 {
4218 let mut result__ = ::std::ptr::null_mut();
4219 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4220 }
4221 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
4222 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
4223 }
4224 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
4225 where
4226 T: ::windows::core::ComInterface,
4227 {
4228 let mut result__ = ::std::ptr::null_mut();
4229 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4230 }
4231 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
4232 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
4233 }
4234 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
4235 where
4236 T: ::windows::core::ComInterface,
4237 {
4238 let mut result__ = ::std::ptr::null_mut();
4239 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4240 }
4241 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
4242 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4243 }
4244 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4245 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4246 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4247 where
4248 P0: ::windows::core::IntoParam<ID3D12Resource>,
4249 {
4250 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4251 }
4252 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4253 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4254 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4255 where
4256 P0: ::windows::core::IntoParam<ID3D12Resource>,
4257 P1: ::windows::core::IntoParam<ID3D12Resource>,
4258 {
4259 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4260 }
4261 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4262 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4263 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4264 where
4265 P0: ::windows::core::IntoParam<ID3D12Resource>,
4266 {
4267 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4268 }
4269 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4270 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4271 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4272 where
4273 P0: ::windows::core::IntoParam<ID3D12Resource>,
4274 {
4275 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4276 }
4277 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
4278 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
4279 }
4280 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
4281 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
4282 }
4283 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
4284 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
4285 }
4286 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4287 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4288 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
4289 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
4290 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
4291 result__
4292 }
4293 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
4294 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
4295 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
4296 result__
4297 }
4298 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4299 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4300 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4301 where
4302 T: ::windows::core::ComInterface,
4303 {
4304 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4305 }
4306 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4307 where
4308 T: ::windows::core::ComInterface,
4309 {
4310 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4311 }
4312 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4313 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4314 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4315 where
4316 P0: ::windows::core::IntoParam<ID3D12Heap>,
4317 T: ::windows::core::ComInterface,
4318 {
4319 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4320 }
4321 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4322 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4323 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4324 where
4325 T: ::windows::core::ComInterface,
4326 {
4327 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4328 }
4329 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
4330 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
4331 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
4332 where
4333 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
4334 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
4335 {
4336 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
4337 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
4338 }
4339 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4340 #[cfg(feature = "Win32_Foundation")]
4341 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4342 where
4343 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4344 T: ::windows::core::ComInterface,
4345 {
4346 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4347 }
4348 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4349 #[cfg(feature = "Win32_Foundation")]
4350 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
4351 where
4352 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
4353 {
4354 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
4355 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
4356 }
4357 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
4358 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
4359 }
4360 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
4361 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
4362 }
4363 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
4364 where
4365 T: ::windows::core::ComInterface,
4366 {
4367 let mut result__ = ::std::ptr::null_mut();
4368 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4369 }
4370 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
4371 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
4372 }
4373 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4374 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4375 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
4376 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
4377 }
4378 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4379 where
4380 T: ::windows::core::ComInterface,
4381 {
4382 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4383 }
4384 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4385 #[cfg(feature = "Win32_Foundation")]
4386 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
4387 where
4388 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
4389 {
4390 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
4391 }
4392 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4393 where
4394 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
4395 T: ::windows::core::ComInterface,
4396 {
4397 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4398 }
4399 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
4400 where
4401 P0: ::windows::core::IntoParam<ID3D12Resource>,
4402 {
4403 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
4404 }
4405 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4406 #[cfg(feature = "Win32_Foundation")]
4407 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
4408 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
4409 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
4410 result__
4411 }
4412 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
4413 where
4414 T: ::windows::core::ComInterface,
4415 {
4416 let mut result__ = ::std::ptr::null_mut();
4417 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4418 }
4419 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4420 #[cfg(feature = "Win32_Foundation")]
4421 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
4422 where
4423 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4424 {
4425 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
4426 }
4427 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
4428 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
4429 }
4430 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
4431 where
4432 T: ::windows::core::ComInterface,
4433 {
4434 let mut result__ = ::std::ptr::null_mut();
4435 (::windows::core::Interface::vtable(self).base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4436 }
4437 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
4438 where
4439 T: ::windows::core::ComInterface,
4440 {
4441 let mut result__ = ::std::ptr::null_mut();
4442 (::windows::core::Interface::vtable(self).base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4443 }
4444 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4445 #[cfg(feature = "Win32_Foundation")]
4446 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
4447 where
4448 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4449 T: ::windows::core::ComInterface,
4450 {
4451 let mut result__ = ::std::ptr::null_mut();
4452 (::windows::core::Interface::vtable(self).base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4453 }
4454 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
4455 where
4456 P0: ::windows::core::IntoParam<ID3D12Fence>,
4457 {
4458 (::windows::core::Interface::vtable(self).base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
4459 }
4460 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
4461 where
4462 T: ::windows::core::ComInterface,
4463 {
4464 let mut result__ = ::std::ptr::null_mut();
4465 (::windows::core::Interface::vtable(self).base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4466 }
4467 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
4468 where
4469 T: ::windows::core::ComInterface,
4470 {
4471 let mut result__ = ::std::ptr::null_mut();
4472 (::windows::core::Interface::vtable(self).base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4473 }
4474 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4475 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4476 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4477 where
4478 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4479 T: ::windows::core::ComInterface,
4480 {
4481 (::windows::core::Interface::vtable(self).base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4482 }
4483 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4484 where
4485 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4486 T: ::windows::core::ComInterface,
4487 {
4488 (::windows::core::Interface::vtable(self).base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4489 }
4490 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4491 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4492 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4493 where
4494 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4495 T: ::windows::core::ComInterface,
4496 {
4497 (::windows::core::Interface::vtable(self).base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4498 }
4499 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4500 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4501 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
4502 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
4503 (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
4504 result__
4505 }
4506 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
4507 where
4508 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
4509 T: ::windows::core::ComInterface,
4510 {
4511 let mut result__ = ::std::ptr::null_mut();
4512 (::windows::core::Interface::vtable(self).CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4513 }
4514 pub unsafe fn RemoveDevice(&self) {
4515 (::windows::core::Interface::vtable(self).RemoveDevice)(::windows::core::Interface::as_raw(self))
4516 }
4517 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
4518 (::windows::core::Interface::vtable(self).EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
4519 }
4520 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
4521 (::windows::core::Interface::vtable(self).EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
4522 }
4523 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
4524 where
4525 T: ::windows::core::ComInterface,
4526 {
4527 let mut result__ = ::std::ptr::null_mut();
4528 (::windows::core::Interface::vtable(self).CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4529 }
4530 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
4531 where
4532 T: ::windows::core::ComInterface,
4533 {
4534 let mut result__ = ::std::ptr::null_mut();
4535 (::windows::core::Interface::vtable(self).CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4536 }
4537 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4538 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4539 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
4540 (::windows::core::Interface::vtable(self).GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
4541 }
4542 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
4543 (::windows::core::Interface::vtable(self).CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
4544 }
4545}
4546::windows::imp::interface_hierarchy!(ID3D12Device5, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4);
4547impl ::core::cmp::PartialEq for ID3D12Device5 {
4548 fn eq(&self, other: &Self) -> bool {
4549 self.0 == other.0
4550 }
4551}
4552impl ::core::cmp::Eq for ID3D12Device5 {}
4553impl ::core::fmt::Debug for ID3D12Device5 {
4554 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4555 f.debug_tuple("ID3D12Device5").field(&self.0).finish()
4556 }
4557}
4558unsafe impl ::core::marker::Send for ID3D12Device5 {}
4559unsafe impl ::core::marker::Sync for ID3D12Device5 {}
4560unsafe impl ::windows::core::Interface for ID3D12Device5 {
4561 type Vtable = ID3D12Device5_Vtbl;
4562}
4563impl ::core::clone::Clone for ID3D12Device5 {
4564 fn clone(&self) -> Self {
4565 Self(self.0.clone())
4566 }
4567}
4568unsafe impl ::windows::core::ComInterface for ID3D12Device5 {
4569 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8b4f173b_2fea_4b80_8f58_4307191ab95d);
4570}
4571#[repr(C)]
4572#[doc(hidden)]
4573pub struct ID3D12Device5_Vtbl {
4574 pub base__: ID3D12Device4_Vtbl,
4575 pub CreateLifetimeTracker: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, powner: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvtracker: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4576 pub RemoveDevice: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
4577 pub EnumerateMetaCommands: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pnummetacommands: *mut u32, pdescs: *mut D3D12_META_COMMAND_DESC) -> ::windows::core::HRESULT,
4578 pub EnumerateMetaCommandParameters: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: *mut u32, pparametercount: *mut u32, pparameterdescs: *mut D3D12_META_COMMAND_PARAMETER_DESC) -> ::windows::core::HRESULT,
4579 pub CreateMetaCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: *const ::core::ffi::c_void, creationparametersdatasizeinbytes: usize, riid: *const ::windows::core::GUID, ppmetacommand: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4580 pub CreateStateObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_STATE_OBJECT_DESC, riid: *const ::windows::core::GUID, ppstateobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
4581 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4582 pub GetRaytracingAccelerationStructurePrebuildInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO),
4583 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
4584 GetRaytracingAccelerationStructurePrebuildInfo: usize,
4585 pub CheckDriverMatchingIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS,
4586}
4587#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
4588#[repr(transparent)]
4589pub struct ID3D12Device6(::windows::core::IUnknown);
4590impl ID3D12Device6 {
4591 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
4592 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
4593 }
4594 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
4595 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
4596 }
4597 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
4598 where
4599 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
4600 {
4601 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
4602 }
4603 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
4604 where
4605 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
4606 {
4607 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
4608 }
4609 pub unsafe fn GetNodeCount(&self) -> u32 {
4610 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
4611 }
4612 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
4613 where
4614 T: ::windows::core::ComInterface,
4615 {
4616 let mut result__ = ::std::ptr::null_mut();
4617 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4618 }
4619 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
4620 where
4621 T: ::windows::core::ComInterface,
4622 {
4623 let mut result__ = ::std::ptr::null_mut();
4624 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4625 }
4626 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
4627 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
4628 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
4629 where
4630 T: ::windows::core::ComInterface,
4631 {
4632 let mut result__ = ::std::ptr::null_mut();
4633 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4634 }
4635 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
4636 where
4637 T: ::windows::core::ComInterface,
4638 {
4639 let mut result__ = ::std::ptr::null_mut();
4640 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4641 }
4642 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
4643 where
4644 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
4645 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
4646 T: ::windows::core::ComInterface,
4647 {
4648 let mut result__ = ::std::ptr::null_mut();
4649 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4650 }
4651 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
4652 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
4653 }
4654 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
4655 where
4656 T: ::windows::core::ComInterface,
4657 {
4658 let mut result__ = ::std::ptr::null_mut();
4659 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4660 }
4661 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
4662 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
4663 }
4664 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
4665 where
4666 T: ::windows::core::ComInterface,
4667 {
4668 let mut result__ = ::std::ptr::null_mut();
4669 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4670 }
4671 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
4672 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4673 }
4674 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4675 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4676 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4677 where
4678 P0: ::windows::core::IntoParam<ID3D12Resource>,
4679 {
4680 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4681 }
4682 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4683 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4684 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4685 where
4686 P0: ::windows::core::IntoParam<ID3D12Resource>,
4687 P1: ::windows::core::IntoParam<ID3D12Resource>,
4688 {
4689 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4690 }
4691 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4692 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4693 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4694 where
4695 P0: ::windows::core::IntoParam<ID3D12Resource>,
4696 {
4697 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4698 }
4699 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4700 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4701 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
4702 where
4703 P0: ::windows::core::IntoParam<ID3D12Resource>,
4704 {
4705 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
4706 }
4707 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
4708 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
4709 }
4710 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
4711 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
4712 }
4713 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
4714 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
4715 }
4716 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4717 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4718 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
4719 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
4720 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
4721 result__
4722 }
4723 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
4724 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
4725 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
4726 result__
4727 }
4728 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4729 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4730 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4731 where
4732 T: ::windows::core::ComInterface,
4733 {
4734 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4735 }
4736 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4737 where
4738 T: ::windows::core::ComInterface,
4739 {
4740 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4741 }
4742 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4743 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4744 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4745 where
4746 P0: ::windows::core::IntoParam<ID3D12Heap>,
4747 T: ::windows::core::ComInterface,
4748 {
4749 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4750 }
4751 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4752 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4753 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4754 where
4755 T: ::windows::core::ComInterface,
4756 {
4757 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4758 }
4759 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
4760 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
4761 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
4762 where
4763 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
4764 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
4765 {
4766 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
4767 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
4768 }
4769 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4770 #[cfg(feature = "Win32_Foundation")]
4771 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4772 where
4773 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4774 T: ::windows::core::ComInterface,
4775 {
4776 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4777 }
4778 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4779 #[cfg(feature = "Win32_Foundation")]
4780 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
4781 where
4782 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
4783 {
4784 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
4785 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
4786 }
4787 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
4788 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
4789 }
4790 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
4791 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
4792 }
4793 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
4794 where
4795 T: ::windows::core::ComInterface,
4796 {
4797 let mut result__ = ::std::ptr::null_mut();
4798 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4799 }
4800 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
4801 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
4802 }
4803 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4804 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4805 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
4806 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
4807 }
4808 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4809 where
4810 T: ::windows::core::ComInterface,
4811 {
4812 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4813 }
4814 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4815 #[cfg(feature = "Win32_Foundation")]
4816 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
4817 where
4818 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
4819 {
4820 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
4821 }
4822 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4823 where
4824 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
4825 T: ::windows::core::ComInterface,
4826 {
4827 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4828 }
4829 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
4830 where
4831 P0: ::windows::core::IntoParam<ID3D12Resource>,
4832 {
4833 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
4834 }
4835 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4836 #[cfg(feature = "Win32_Foundation")]
4837 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
4838 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
4839 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
4840 result__
4841 }
4842 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
4843 where
4844 T: ::windows::core::ComInterface,
4845 {
4846 let mut result__ = ::std::ptr::null_mut();
4847 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4848 }
4849 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4850 #[cfg(feature = "Win32_Foundation")]
4851 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
4852 where
4853 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4854 {
4855 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
4856 }
4857 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
4858 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
4859 }
4860 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
4861 where
4862 T: ::windows::core::ComInterface,
4863 {
4864 let mut result__ = ::std::ptr::null_mut();
4865 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4866 }
4867 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
4868 where
4869 T: ::windows::core::ComInterface,
4870 {
4871 let mut result__ = ::std::ptr::null_mut();
4872 (::windows::core::Interface::vtable(self).base__.base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4873 }
4874 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4875 #[cfg(feature = "Win32_Foundation")]
4876 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
4877 where
4878 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4879 T: ::windows::core::ComInterface,
4880 {
4881 let mut result__ = ::std::ptr::null_mut();
4882 (::windows::core::Interface::vtable(self).base__.base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4883 }
4884 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
4885 where
4886 P0: ::windows::core::IntoParam<ID3D12Fence>,
4887 {
4888 (::windows::core::Interface::vtable(self).base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
4889 }
4890 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
4891 where
4892 T: ::windows::core::ComInterface,
4893 {
4894 let mut result__ = ::std::ptr::null_mut();
4895 (::windows::core::Interface::vtable(self).base__.base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4896 }
4897 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
4898 where
4899 T: ::windows::core::ComInterface,
4900 {
4901 let mut result__ = ::std::ptr::null_mut();
4902 (::windows::core::Interface::vtable(self).base__.base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4903 }
4904 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4905 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4906 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4907 where
4908 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4909 T: ::windows::core::ComInterface,
4910 {
4911 (::windows::core::Interface::vtable(self).base__.base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4912 }
4913 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4914 where
4915 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4916 T: ::windows::core::ComInterface,
4917 {
4918 (::windows::core::Interface::vtable(self).base__.base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4919 }
4920 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4921 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4922 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
4923 where
4924 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
4925 T: ::windows::core::ComInterface,
4926 {
4927 (::windows::core::Interface::vtable(self).base__.base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
4928 }
4929 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4930 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4931 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
4932 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
4933 (::windows::core::Interface::vtable(self).base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
4934 result__
4935 }
4936 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
4937 where
4938 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
4939 T: ::windows::core::ComInterface,
4940 {
4941 let mut result__ = ::std::ptr::null_mut();
4942 (::windows::core::Interface::vtable(self).base__.CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4943 }
4944 pub unsafe fn RemoveDevice(&self) {
4945 (::windows::core::Interface::vtable(self).base__.RemoveDevice)(::windows::core::Interface::as_raw(self))
4946 }
4947 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
4948 (::windows::core::Interface::vtable(self).base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
4949 }
4950 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
4951 (::windows::core::Interface::vtable(self).base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
4952 }
4953 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
4954 where
4955 T: ::windows::core::ComInterface,
4956 {
4957 let mut result__ = ::std::ptr::null_mut();
4958 (::windows::core::Interface::vtable(self).base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4959 }
4960 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
4961 where
4962 T: ::windows::core::ComInterface,
4963 {
4964 let mut result__ = ::std::ptr::null_mut();
4965 (::windows::core::Interface::vtable(self).base__.CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
4966 }
4967 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
4968 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
4969 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
4970 (::windows::core::Interface::vtable(self).base__.GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
4971 }
4972 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
4973 (::windows::core::Interface::vtable(self).base__.CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
4974 }
4975 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
4976 #[cfg(feature = "Win32_Foundation")]
4977 pub unsafe fn SetBackgroundProcessingMode<P0>(&self, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: P0, pbfurthermeasurementsdesired: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()>
4978 where
4979 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
4980 {
4981 (::windows::core::Interface::vtable(self).SetBackgroundProcessingMode)(::windows::core::Interface::as_raw(self), mode, measurementsaction, heventtosignaluponcompletion.into_param().abi(), ::core::mem::transmute(pbfurthermeasurementsdesired.unwrap_or(::std::ptr::null_mut()))).ok()
4982 }
4983}
4984::windows::imp::interface_hierarchy!(ID3D12Device6, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4, ID3D12Device5);
4985impl ::core::cmp::PartialEq for ID3D12Device6 {
4986 fn eq(&self, other: &Self) -> bool {
4987 self.0 == other.0
4988 }
4989}
4990impl ::core::cmp::Eq for ID3D12Device6 {}
4991impl ::core::fmt::Debug for ID3D12Device6 {
4992 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
4993 f.debug_tuple("ID3D12Device6").field(&self.0).finish()
4994 }
4995}
4996unsafe impl ::core::marker::Send for ID3D12Device6 {}
4997unsafe impl ::core::marker::Sync for ID3D12Device6 {}
4998unsafe impl ::windows::core::Interface for ID3D12Device6 {
4999 type Vtable = ID3D12Device6_Vtbl;
5000}
5001impl ::core::clone::Clone for ID3D12Device6 {
5002 fn clone(&self) -> Self {
5003 Self(self.0.clone())
5004 }
5005}
5006unsafe impl ::windows::core::ComInterface for ID3D12Device6 {
5007 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc70b221b_40e4_4a17_89af_025a0727a6dc);
5008}
5009#[repr(C)]
5010#[doc(hidden)]
5011pub struct ID3D12Device6_Vtbl {
5012 pub base__: ID3D12Device5_Vtbl,
5013 #[cfg(feature = "Win32_Foundation")]
5014 pub SetBackgroundProcessingMode: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: super::super::Foundation::HANDLE, pbfurthermeasurementsdesired: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
5015 #[cfg(not(feature = "Win32_Foundation"))]
5016 SetBackgroundProcessingMode: usize,
5017}
5018#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
5019#[repr(transparent)]
5020pub struct ID3D12Device7(::windows::core::IUnknown);
5021impl ID3D12Device7 {
5022 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
5023 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
5024 }
5025 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
5026 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
5027 }
5028 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
5029 where
5030 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
5031 {
5032 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
5033 }
5034 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
5035 where
5036 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5037 {
5038 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
5039 }
5040 pub unsafe fn GetNodeCount(&self) -> u32 {
5041 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
5042 }
5043 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
5044 where
5045 T: ::windows::core::ComInterface,
5046 {
5047 let mut result__ = ::std::ptr::null_mut();
5048 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5049 }
5050 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
5051 where
5052 T: ::windows::core::ComInterface,
5053 {
5054 let mut result__ = ::std::ptr::null_mut();
5055 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5056 }
5057 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
5058 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
5059 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
5060 where
5061 T: ::windows::core::ComInterface,
5062 {
5063 let mut result__ = ::std::ptr::null_mut();
5064 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5065 }
5066 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
5067 where
5068 T: ::windows::core::ComInterface,
5069 {
5070 let mut result__ = ::std::ptr::null_mut();
5071 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5072 }
5073 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
5074 where
5075 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
5076 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
5077 T: ::windows::core::ComInterface,
5078 {
5079 let mut result__ = ::std::ptr::null_mut();
5080 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5081 }
5082 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
5083 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
5084 }
5085 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
5086 where
5087 T: ::windows::core::ComInterface,
5088 {
5089 let mut result__ = ::std::ptr::null_mut();
5090 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5091 }
5092 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
5093 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
5094 }
5095 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
5096 where
5097 T: ::windows::core::ComInterface,
5098 {
5099 let mut result__ = ::std::ptr::null_mut();
5100 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5101 }
5102 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
5103 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5104 }
5105 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5106 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5107 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5108 where
5109 P0: ::windows::core::IntoParam<ID3D12Resource>,
5110 {
5111 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5112 }
5113 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5114 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5115 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5116 where
5117 P0: ::windows::core::IntoParam<ID3D12Resource>,
5118 P1: ::windows::core::IntoParam<ID3D12Resource>,
5119 {
5120 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5121 }
5122 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5123 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5124 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5125 where
5126 P0: ::windows::core::IntoParam<ID3D12Resource>,
5127 {
5128 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5129 }
5130 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5131 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5132 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5133 where
5134 P0: ::windows::core::IntoParam<ID3D12Resource>,
5135 {
5136 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5137 }
5138 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
5139 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
5140 }
5141 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
5142 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
5143 }
5144 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
5145 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
5146 }
5147 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5148 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5149 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
5150 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
5151 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
5152 result__
5153 }
5154 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
5155 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
5156 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
5157 result__
5158 }
5159 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5160 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5161 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5162 where
5163 T: ::windows::core::ComInterface,
5164 {
5165 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5166 }
5167 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5168 where
5169 T: ::windows::core::ComInterface,
5170 {
5171 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5172 }
5173 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5174 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5175 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5176 where
5177 P0: ::windows::core::IntoParam<ID3D12Heap>,
5178 T: ::windows::core::ComInterface,
5179 {
5180 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5181 }
5182 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5183 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5184 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5185 where
5186 T: ::windows::core::ComInterface,
5187 {
5188 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5189 }
5190 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
5191 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5192 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
5193 where
5194 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
5195 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5196 {
5197 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
5198 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
5199 }
5200 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5201 #[cfg(feature = "Win32_Foundation")]
5202 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5203 where
5204 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5205 T: ::windows::core::ComInterface,
5206 {
5207 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5208 }
5209 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5210 #[cfg(feature = "Win32_Foundation")]
5211 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
5212 where
5213 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5214 {
5215 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
5216 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
5217 }
5218 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
5219 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
5220 }
5221 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
5222 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
5223 }
5224 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
5225 where
5226 T: ::windows::core::ComInterface,
5227 {
5228 let mut result__ = ::std::ptr::null_mut();
5229 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5230 }
5231 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
5232 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
5233 }
5234 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5235 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5236 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
5237 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
5238 }
5239 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5240 where
5241 T: ::windows::core::ComInterface,
5242 {
5243 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5244 }
5245 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5246 #[cfg(feature = "Win32_Foundation")]
5247 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
5248 where
5249 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
5250 {
5251 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
5252 }
5253 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5254 where
5255 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
5256 T: ::windows::core::ComInterface,
5257 {
5258 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5259 }
5260 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
5261 where
5262 P0: ::windows::core::IntoParam<ID3D12Resource>,
5263 {
5264 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
5265 }
5266 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5267 #[cfg(feature = "Win32_Foundation")]
5268 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
5269 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
5270 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
5271 result__
5272 }
5273 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
5274 where
5275 T: ::windows::core::ComInterface,
5276 {
5277 let mut result__ = ::std::ptr::null_mut();
5278 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5279 }
5280 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5281 #[cfg(feature = "Win32_Foundation")]
5282 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
5283 where
5284 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5285 {
5286 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
5287 }
5288 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
5289 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
5290 }
5291 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
5292 where
5293 T: ::windows::core::ComInterface,
5294 {
5295 let mut result__ = ::std::ptr::null_mut();
5296 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5297 }
5298 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
5299 where
5300 T: ::windows::core::ComInterface,
5301 {
5302 let mut result__ = ::std::ptr::null_mut();
5303 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5304 }
5305 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5306 #[cfg(feature = "Win32_Foundation")]
5307 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
5308 where
5309 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5310 T: ::windows::core::ComInterface,
5311 {
5312 let mut result__ = ::std::ptr::null_mut();
5313 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5314 }
5315 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
5316 where
5317 P0: ::windows::core::IntoParam<ID3D12Fence>,
5318 {
5319 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
5320 }
5321 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
5322 where
5323 T: ::windows::core::ComInterface,
5324 {
5325 let mut result__ = ::std::ptr::null_mut();
5326 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5327 }
5328 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
5329 where
5330 T: ::windows::core::ComInterface,
5331 {
5332 let mut result__ = ::std::ptr::null_mut();
5333 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5334 }
5335 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5336 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5337 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5338 where
5339 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5340 T: ::windows::core::ComInterface,
5341 {
5342 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5343 }
5344 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5345 where
5346 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5347 T: ::windows::core::ComInterface,
5348 {
5349 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5350 }
5351 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5352 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5353 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5354 where
5355 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5356 T: ::windows::core::ComInterface,
5357 {
5358 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5359 }
5360 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5361 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5362 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
5363 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
5364 (::windows::core::Interface::vtable(self).base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
5365 result__
5366 }
5367 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
5368 where
5369 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
5370 T: ::windows::core::ComInterface,
5371 {
5372 let mut result__ = ::std::ptr::null_mut();
5373 (::windows::core::Interface::vtable(self).base__.base__.CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5374 }
5375 pub unsafe fn RemoveDevice(&self) {
5376 (::windows::core::Interface::vtable(self).base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self))
5377 }
5378 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
5379 (::windows::core::Interface::vtable(self).base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
5380 }
5381 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
5382 (::windows::core::Interface::vtable(self).base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
5383 }
5384 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
5385 where
5386 T: ::windows::core::ComInterface,
5387 {
5388 let mut result__ = ::std::ptr::null_mut();
5389 (::windows::core::Interface::vtable(self).base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5390 }
5391 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
5392 where
5393 T: ::windows::core::ComInterface,
5394 {
5395 let mut result__ = ::std::ptr::null_mut();
5396 (::windows::core::Interface::vtable(self).base__.base__.CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5397 }
5398 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5399 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5400 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
5401 (::windows::core::Interface::vtable(self).base__.base__.GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
5402 }
5403 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
5404 (::windows::core::Interface::vtable(self).base__.base__.CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
5405 }
5406 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5407 #[cfg(feature = "Win32_Foundation")]
5408 pub unsafe fn SetBackgroundProcessingMode<P0>(&self, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: P0, pbfurthermeasurementsdesired: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()>
5409 where
5410 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5411 {
5412 (::windows::core::Interface::vtable(self).base__.SetBackgroundProcessingMode)(::windows::core::Interface::as_raw(self), mode, measurementsaction, heventtosignaluponcompletion.into_param().abi(), ::core::mem::transmute(pbfurthermeasurementsdesired.unwrap_or(::std::ptr::null_mut()))).ok()
5413 }
5414 pub unsafe fn AddToStateObject<P0, T>(&self, paddition: *const D3D12_STATE_OBJECT_DESC, pstateobjecttogrowfrom: P0) -> ::windows::core::Result<T>
5415 where
5416 P0: ::windows::core::IntoParam<ID3D12StateObject>,
5417 T: ::windows::core::ComInterface,
5418 {
5419 let mut result__ = ::std::ptr::null_mut();
5420 (::windows::core::Interface::vtable(self).AddToStateObject)(::windows::core::Interface::as_raw(self), paddition, pstateobjecttogrowfrom.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5421 }
5422 pub unsafe fn CreateProtectedResourceSession1<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC1) -> ::windows::core::Result<T>
5423 where
5424 T: ::windows::core::ComInterface,
5425 {
5426 let mut result__ = ::std::ptr::null_mut();
5427 (::windows::core::Interface::vtable(self).CreateProtectedResourceSession1)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5428 }
5429}
5430::windows::imp::interface_hierarchy!(ID3D12Device7, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4, ID3D12Device5, ID3D12Device6);
5431impl ::core::cmp::PartialEq for ID3D12Device7 {
5432 fn eq(&self, other: &Self) -> bool {
5433 self.0 == other.0
5434 }
5435}
5436impl ::core::cmp::Eq for ID3D12Device7 {}
5437impl ::core::fmt::Debug for ID3D12Device7 {
5438 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5439 f.debug_tuple("ID3D12Device7").field(&self.0).finish()
5440 }
5441}
5442unsafe impl ::core::marker::Send for ID3D12Device7 {}
5443unsafe impl ::core::marker::Sync for ID3D12Device7 {}
5444unsafe impl ::windows::core::Interface for ID3D12Device7 {
5445 type Vtable = ID3D12Device7_Vtbl;
5446}
5447impl ::core::clone::Clone for ID3D12Device7 {
5448 fn clone(&self) -> Self {
5449 Self(self.0.clone())
5450 }
5451}
5452unsafe impl ::windows::core::ComInterface for ID3D12Device7 {
5453 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5c014b53_68a1_4b9b_8bd1_dd6046b9358b);
5454}
5455#[repr(C)]
5456#[doc(hidden)]
5457pub struct ID3D12Device7_Vtbl {
5458 pub base__: ID3D12Device6_Vtbl,
5459 pub AddToStateObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, paddition: *const D3D12_STATE_OBJECT_DESC, pstateobjecttogrowfrom: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppnewstateobject: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
5460 pub CreateProtectedResourceSession1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC1, riid: *const ::windows::core::GUID, ppsession: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
5461}
5462#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
5463#[repr(transparent)]
5464pub struct ID3D12Device8(::windows::core::IUnknown);
5465impl ID3D12Device8 {
5466 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
5467 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
5468 }
5469 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
5470 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
5471 }
5472 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
5473 where
5474 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
5475 {
5476 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
5477 }
5478 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
5479 where
5480 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5481 {
5482 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
5483 }
5484 pub unsafe fn GetNodeCount(&self) -> u32 {
5485 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
5486 }
5487 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
5488 where
5489 T: ::windows::core::ComInterface,
5490 {
5491 let mut result__ = ::std::ptr::null_mut();
5492 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5493 }
5494 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
5495 where
5496 T: ::windows::core::ComInterface,
5497 {
5498 let mut result__ = ::std::ptr::null_mut();
5499 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5500 }
5501 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
5502 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
5503 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
5504 where
5505 T: ::windows::core::ComInterface,
5506 {
5507 let mut result__ = ::std::ptr::null_mut();
5508 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5509 }
5510 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
5511 where
5512 T: ::windows::core::ComInterface,
5513 {
5514 let mut result__ = ::std::ptr::null_mut();
5515 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5516 }
5517 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
5518 where
5519 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
5520 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
5521 T: ::windows::core::ComInterface,
5522 {
5523 let mut result__ = ::std::ptr::null_mut();
5524 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5525 }
5526 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
5527 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
5528 }
5529 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
5530 where
5531 T: ::windows::core::ComInterface,
5532 {
5533 let mut result__ = ::std::ptr::null_mut();
5534 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5535 }
5536 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
5537 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
5538 }
5539 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
5540 where
5541 T: ::windows::core::ComInterface,
5542 {
5543 let mut result__ = ::std::ptr::null_mut();
5544 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5545 }
5546 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
5547 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5548 }
5549 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5550 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5551 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5552 where
5553 P0: ::windows::core::IntoParam<ID3D12Resource>,
5554 {
5555 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5556 }
5557 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5558 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5559 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5560 where
5561 P0: ::windows::core::IntoParam<ID3D12Resource>,
5562 P1: ::windows::core::IntoParam<ID3D12Resource>,
5563 {
5564 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5565 }
5566 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5567 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5568 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5569 where
5570 P0: ::windows::core::IntoParam<ID3D12Resource>,
5571 {
5572 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5573 }
5574 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5575 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5576 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5577 where
5578 P0: ::windows::core::IntoParam<ID3D12Resource>,
5579 {
5580 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
5581 }
5582 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
5583 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
5584 }
5585 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
5586 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
5587 }
5588 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
5589 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
5590 }
5591 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5592 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5593 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
5594 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
5595 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
5596 result__
5597 }
5598 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
5599 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
5600 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
5601 result__
5602 }
5603 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5604 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5605 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5606 where
5607 T: ::windows::core::ComInterface,
5608 {
5609 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5610 }
5611 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5612 where
5613 T: ::windows::core::ComInterface,
5614 {
5615 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5616 }
5617 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5618 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5619 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5620 where
5621 P0: ::windows::core::IntoParam<ID3D12Heap>,
5622 T: ::windows::core::ComInterface,
5623 {
5624 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5625 }
5626 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5627 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5628 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5629 where
5630 T: ::windows::core::ComInterface,
5631 {
5632 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5633 }
5634 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
5635 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
5636 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
5637 where
5638 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
5639 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5640 {
5641 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
5642 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
5643 }
5644 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5645 #[cfg(feature = "Win32_Foundation")]
5646 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5647 where
5648 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5649 T: ::windows::core::ComInterface,
5650 {
5651 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5652 }
5653 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5654 #[cfg(feature = "Win32_Foundation")]
5655 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
5656 where
5657 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5658 {
5659 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
5660 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
5661 }
5662 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
5663 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
5664 }
5665 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
5666 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
5667 }
5668 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
5669 where
5670 T: ::windows::core::ComInterface,
5671 {
5672 let mut result__ = ::std::ptr::null_mut();
5673 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5674 }
5675 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
5676 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
5677 }
5678 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5679 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5680 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
5681 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
5682 }
5683 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5684 where
5685 T: ::windows::core::ComInterface,
5686 {
5687 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5688 }
5689 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5690 #[cfg(feature = "Win32_Foundation")]
5691 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
5692 where
5693 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
5694 {
5695 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
5696 }
5697 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5698 where
5699 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
5700 T: ::windows::core::ComInterface,
5701 {
5702 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5703 }
5704 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
5705 where
5706 P0: ::windows::core::IntoParam<ID3D12Resource>,
5707 {
5708 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
5709 }
5710 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5711 #[cfg(feature = "Win32_Foundation")]
5712 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
5713 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
5714 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
5715 result__
5716 }
5717 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
5718 where
5719 T: ::windows::core::ComInterface,
5720 {
5721 let mut result__ = ::std::ptr::null_mut();
5722 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5723 }
5724 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5725 #[cfg(feature = "Win32_Foundation")]
5726 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
5727 where
5728 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5729 {
5730 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
5731 }
5732 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
5733 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
5734 }
5735 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
5736 where
5737 T: ::windows::core::ComInterface,
5738 {
5739 let mut result__ = ::std::ptr::null_mut();
5740 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5741 }
5742 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
5743 where
5744 T: ::windows::core::ComInterface,
5745 {
5746 let mut result__ = ::std::ptr::null_mut();
5747 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5748 }
5749 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5750 #[cfg(feature = "Win32_Foundation")]
5751 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
5752 where
5753 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5754 T: ::windows::core::ComInterface,
5755 {
5756 let mut result__ = ::std::ptr::null_mut();
5757 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5758 }
5759 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
5760 where
5761 P0: ::windows::core::IntoParam<ID3D12Fence>,
5762 {
5763 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
5764 }
5765 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
5766 where
5767 T: ::windows::core::ComInterface,
5768 {
5769 let mut result__ = ::std::ptr::null_mut();
5770 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5771 }
5772 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
5773 where
5774 T: ::windows::core::ComInterface,
5775 {
5776 let mut result__ = ::std::ptr::null_mut();
5777 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5778 }
5779 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5780 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5781 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5782 where
5783 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5784 T: ::windows::core::ComInterface,
5785 {
5786 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5787 }
5788 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5789 where
5790 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5791 T: ::windows::core::ComInterface,
5792 {
5793 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5794 }
5795 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5796 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5797 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5798 where
5799 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5800 T: ::windows::core::ComInterface,
5801 {
5802 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5803 }
5804 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5805 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5806 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
5807 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
5808 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
5809 result__
5810 }
5811 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
5812 where
5813 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
5814 T: ::windows::core::ComInterface,
5815 {
5816 let mut result__ = ::std::ptr::null_mut();
5817 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5818 }
5819 pub unsafe fn RemoveDevice(&self) {
5820 (::windows::core::Interface::vtable(self).base__.base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self))
5821 }
5822 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
5823 (::windows::core::Interface::vtable(self).base__.base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
5824 }
5825 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
5826 (::windows::core::Interface::vtable(self).base__.base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
5827 }
5828 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
5829 where
5830 T: ::windows::core::ComInterface,
5831 {
5832 let mut result__ = ::std::ptr::null_mut();
5833 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5834 }
5835 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
5836 where
5837 T: ::windows::core::ComInterface,
5838 {
5839 let mut result__ = ::std::ptr::null_mut();
5840 (::windows::core::Interface::vtable(self).base__.base__.base__.CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5841 }
5842 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5843 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5844 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
5845 (::windows::core::Interface::vtable(self).base__.base__.base__.GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
5846 }
5847 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
5848 (::windows::core::Interface::vtable(self).base__.base__.base__.CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
5849 }
5850 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
5851 #[cfg(feature = "Win32_Foundation")]
5852 pub unsafe fn SetBackgroundProcessingMode<P0>(&self, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: P0, pbfurthermeasurementsdesired: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()>
5853 where
5854 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
5855 {
5856 (::windows::core::Interface::vtable(self).base__.base__.SetBackgroundProcessingMode)(::windows::core::Interface::as_raw(self), mode, measurementsaction, heventtosignaluponcompletion.into_param().abi(), ::core::mem::transmute(pbfurthermeasurementsdesired.unwrap_or(::std::ptr::null_mut()))).ok()
5857 }
5858 pub unsafe fn AddToStateObject<P0, T>(&self, paddition: *const D3D12_STATE_OBJECT_DESC, pstateobjecttogrowfrom: P0) -> ::windows::core::Result<T>
5859 where
5860 P0: ::windows::core::IntoParam<ID3D12StateObject>,
5861 T: ::windows::core::ComInterface,
5862 {
5863 let mut result__ = ::std::ptr::null_mut();
5864 (::windows::core::Interface::vtable(self).base__.AddToStateObject)(::windows::core::Interface::as_raw(self), paddition, pstateobjecttogrowfrom.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5865 }
5866 pub unsafe fn CreateProtectedResourceSession1<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC1) -> ::windows::core::Result<T>
5867 where
5868 T: ::windows::core::ComInterface,
5869 {
5870 let mut result__ = ::std::ptr::null_mut();
5871 (::windows::core::Interface::vtable(self).base__.CreateProtectedResourceSession1)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5872 }
5873 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5874 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5875 pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
5876 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
5877 (::windows::core::Interface::vtable(self).GetResourceAllocationInfo2)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
5878 result__
5879 }
5880 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5881 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5882 pub unsafe fn CreateCommittedResource2<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5883 where
5884 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
5885 T: ::windows::core::ComInterface,
5886 {
5887 (::windows::core::Interface::vtable(self).CreateCommittedResource2)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5888 }
5889 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5890 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5891 pub unsafe fn CreatePlacedResource1<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
5892 where
5893 P0: ::windows::core::IntoParam<ID3D12Heap>,
5894 T: ::windows::core::ComInterface,
5895 {
5896 (::windows::core::Interface::vtable(self).CreatePlacedResource1)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
5897 }
5898 pub unsafe fn CreateSamplerFeedbackUnorderedAccessView<P0, P1>(&self, ptargetedresource: P0, pfeedbackresource: P1, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
5899 where
5900 P0: ::windows::core::IntoParam<ID3D12Resource>,
5901 P1: ::windows::core::IntoParam<ID3D12Resource>,
5902 {
5903 (::windows::core::Interface::vtable(self).CreateSamplerFeedbackUnorderedAccessView)(::windows::core::Interface::as_raw(self), ptargetedresource.into_param().abi(), pfeedbackresource.into_param().abi(), ::core::mem::transmute(destdescriptor))
5904 }
5905 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
5906 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5907 pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: *const D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
5908 (::windows::core::Interface::vtable(self).GetCopyableFootprints1)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
5909 }
5910}
5911::windows::imp::interface_hierarchy!(ID3D12Device8, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4, ID3D12Device5, ID3D12Device6, ID3D12Device7);
5912impl ::core::cmp::PartialEq for ID3D12Device8 {
5913 fn eq(&self, other: &Self) -> bool {
5914 self.0 == other.0
5915 }
5916}
5917impl ::core::cmp::Eq for ID3D12Device8 {}
5918impl ::core::fmt::Debug for ID3D12Device8 {
5919 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
5920 f.debug_tuple("ID3D12Device8").field(&self.0).finish()
5921 }
5922}
5923unsafe impl ::core::marker::Send for ID3D12Device8 {}
5924unsafe impl ::core::marker::Sync for ID3D12Device8 {}
5925unsafe impl ::windows::core::Interface for ID3D12Device8 {
5926 type Vtable = ID3D12Device8_Vtbl;
5927}
5928impl ::core::clone::Clone for ID3D12Device8 {
5929 fn clone(&self) -> Self {
5930 Self(self.0.clone())
5931 }
5932}
5933unsafe impl ::windows::core::ComInterface for ID3D12Device8 {
5934 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9218e6bb_f944_4f7e_a75c_b1b2c7b701f3);
5935}
5936#[repr(C)]
5937#[doc(hidden)]
5938pub struct ID3D12Device8_Vtbl {
5939 pub base__: ID3D12Device7_Vtbl,
5940 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5941 pub GetResourceAllocationInfo2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_RESOURCE_ALLOCATION_INFO, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: *mut D3D12_RESOURCE_ALLOCATION_INFO1),
5942 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
5943 GetResourceAllocationInfo2: usize,
5944 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5945 pub CreateCommittedResource2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, pprotectedsession: *mut ::core::ffi::c_void, riidresource: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
5946 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
5947 CreateCommittedResource2: usize,
5948 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5949 pub CreatePlacedResource1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheap: *mut ::core::ffi::c_void, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
5950 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
5951 CreatePlacedResource1: usize,
5952 pub CreateSamplerFeedbackUnorderedAccessView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ptargetedresource: *mut ::core::ffi::c_void, pfeedbackresource: *mut ::core::ffi::c_void, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE),
5953 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
5954 pub GetCopyableFootprints1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presourcedesc: *const D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: *mut u64),
5955 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
5956 GetCopyableFootprints1: usize,
5957}
5958#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
5959#[repr(transparent)]
5960pub struct ID3D12Device9(::windows::core::IUnknown);
5961impl ID3D12Device9 {
5962 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
5963 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
5964 }
5965 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
5966 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
5967 }
5968 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
5969 where
5970 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
5971 {
5972 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
5973 }
5974 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
5975 where
5976 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
5977 {
5978 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
5979 }
5980 pub unsafe fn GetNodeCount(&self) -> u32 {
5981 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetNodeCount)(::windows::core::Interface::as_raw(self))
5982 }
5983 pub unsafe fn CreateCommandQueue<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC) -> ::windows::core::Result<T>
5984 where
5985 T: ::windows::core::ComInterface,
5986 {
5987 let mut result__ = ::std::ptr::null_mut();
5988 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandQueue)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5989 }
5990 pub unsafe fn CreateCommandAllocator<T>(&self, r#type: D3D12_COMMAND_LIST_TYPE) -> ::windows::core::Result<T>
5991 where
5992 T: ::windows::core::ComInterface,
5993 {
5994 let mut result__ = ::std::ptr::null_mut();
5995 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandAllocator)(::windows::core::Interface::as_raw(self), r#type, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
5996 }
5997 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
5998 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
5999 pub unsafe fn CreateGraphicsPipelineState<T>(&self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
6000 where
6001 T: ::windows::core::ComInterface,
6002 {
6003 let mut result__ = ::std::ptr::null_mut();
6004 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateGraphicsPipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6005 }
6006 pub unsafe fn CreateComputePipelineState<T>(&self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
6007 where
6008 T: ::windows::core::ComInterface,
6009 {
6010 let mut result__ = ::std::ptr::null_mut();
6011 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateComputePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6012 }
6013 pub unsafe fn CreateCommandList<P0, P1, T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1) -> ::windows::core::Result<T>
6014 where
6015 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
6016 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
6017 T: ::windows::core::ComInterface,
6018 {
6019 let mut result__ = ::std::ptr::null_mut();
6020 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandList)(::windows::core::Interface::as_raw(self), nodemask, r#type, pcommandallocator.into_param().abi(), pinitialstate.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6021 }
6022 pub unsafe fn CheckFeatureSupport(&self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut ::core::ffi::c_void, featuresupportdatasize: u32) -> ::windows::core::Result<()> {
6023 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CheckFeatureSupport)(::windows::core::Interface::as_raw(self), feature, pfeaturesupportdata, featuresupportdatasize).ok()
6024 }
6025 pub unsafe fn CreateDescriptorHeap<T>(&self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC) -> ::windows::core::Result<T>
6026 where
6027 T: ::windows::core::ComInterface,
6028 {
6029 let mut result__ = ::std::ptr::null_mut();
6030 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateDescriptorHeap)(::windows::core::Interface::as_raw(self), pdescriptorheapdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6031 }
6032 pub unsafe fn GetDescriptorHandleIncrementSize(&self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE) -> u32 {
6033 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDescriptorHandleIncrementSize)(::windows::core::Interface::as_raw(self), descriptorheaptype)
6034 }
6035 pub unsafe fn CreateRootSignature<T>(&self, nodemask: u32, pblobwithrootsignature: &[u8]) -> ::windows::core::Result<T>
6036 where
6037 T: ::windows::core::ComInterface,
6038 {
6039 let mut result__ = ::std::ptr::null_mut();
6040 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRootSignature)(::windows::core::Interface::as_raw(self), nodemask, ::core::mem::transmute(pblobwithrootsignature.as_ptr()), pblobwithrootsignature.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6041 }
6042 pub unsafe fn CreateConstantBufferView(&self, pdesc: ::core::option::Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
6043 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateConstantBufferView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
6044 }
6045 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6046 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6047 pub unsafe fn CreateShaderResourceView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
6048 where
6049 P0: ::windows::core::IntoParam<ID3D12Resource>,
6050 {
6051 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateShaderResourceView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
6052 }
6053 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6054 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6055 pub unsafe fn CreateUnorderedAccessView<P0, P1>(&self, presource: P0, pcounterresource: P1, pdesc: ::core::option::Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
6056 where
6057 P0: ::windows::core::IntoParam<ID3D12Resource>,
6058 P1: ::windows::core::IntoParam<ID3D12Resource>,
6059 {
6060 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateUnorderedAccessView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), pcounterresource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
6061 }
6062 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6063 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6064 pub unsafe fn CreateRenderTargetView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
6065 where
6066 P0: ::windows::core::IntoParam<ID3D12Resource>,
6067 {
6068 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateRenderTargetView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
6069 }
6070 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6071 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6072 pub unsafe fn CreateDepthStencilView<P0>(&self, presource: P0, pdesc: ::core::option::Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
6073 where
6074 P0: ::windows::core::IntoParam<ID3D12Resource>,
6075 {
6076 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateDepthStencilView)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pdesc.unwrap_or(::std::ptr::null())), ::core::mem::transmute(destdescriptor))
6077 }
6078 pub unsafe fn CreateSampler(&self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE) {
6079 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSampler)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(destdescriptor))
6080 }
6081 pub unsafe fn CopyDescriptors(&self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: ::core::option::Option<*const u32>, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: ::core::option::Option<*const u32>, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
6082 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptors)(::windows::core::Interface::as_raw(self), numdestdescriptorranges, pdestdescriptorrangestarts, ::core::mem::transmute(pdestdescriptorrangesizes.unwrap_or(::std::ptr::null())), numsrcdescriptorranges, psrcdescriptorrangestarts, ::core::mem::transmute(psrcdescriptorrangesizes.unwrap_or(::std::ptr::null())), descriptorheapstype)
6083 }
6084 pub unsafe fn CopyDescriptorsSimple(&self, numdescriptors: u32, destdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE) {
6085 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyDescriptorsSimple)(::windows::core::Interface::as_raw(self), numdescriptors, ::core::mem::transmute(destdescriptorrangestart), ::core::mem::transmute(srcdescriptorrangestart), descriptorheapstype)
6086 }
6087 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6088 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6089 pub unsafe fn GetResourceAllocationInfo(&self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC]) -> D3D12_RESOURCE_ALLOCATION_INFO {
6090 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
6091 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceAllocationInfo)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, presourcedescs.len() as _, ::core::mem::transmute(presourcedescs.as_ptr()));
6092 result__
6093 }
6094 pub unsafe fn GetCustomHeapProperties(&self, nodemask: u32, heaptype: D3D12_HEAP_TYPE) -> D3D12_HEAP_PROPERTIES {
6095 let mut result__: D3D12_HEAP_PROPERTIES = ::core::mem::zeroed();
6096 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCustomHeapProperties)(::windows::core::Interface::as_raw(self), &mut result__, nodemask, heaptype);
6097 result__
6098 }
6099 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6100 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6101 pub unsafe fn CreateCommittedResource<T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6102 where
6103 T: ::windows::core::ComInterface,
6104 {
6105 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommittedResource)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6106 }
6107 pub unsafe fn CreateHeap<T>(&self, pdesc: *const D3D12_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6108 where
6109 T: ::windows::core::ComInterface,
6110 {
6111 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6112 }
6113 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6114 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6115 pub unsafe fn CreatePlacedResource<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6116 where
6117 P0: ::windows::core::IntoParam<ID3D12Heap>,
6118 T: ::windows::core::ComInterface,
6119 {
6120 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreatePlacedResource)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6121 }
6122 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6123 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6124 pub unsafe fn CreateReservedResource<T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6125 where
6126 T: ::windows::core::ComInterface,
6127 {
6128 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateReservedResource)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6129 }
6130 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
6131 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
6132 pub unsafe fn CreateSharedHandle<P0, P1>(&self, pobject: P0, pattributes: ::core::option::Option<*const super::super::Security::SECURITY_ATTRIBUTES>, access: u32, name: P1) -> ::windows::core::Result<super::super::Foundation::HANDLE>
6133 where
6134 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
6135 P1: ::windows::core::IntoParam<::windows::core::PCWSTR>,
6136 {
6137 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
6138 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateSharedHandle)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), ::core::mem::transmute(pattributes.unwrap_or(::std::ptr::null())), access, name.into_param().abi(), &mut result__).from_abi(result__)
6139 }
6140 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6141 #[cfg(feature = "Win32_Foundation")]
6142 pub unsafe fn OpenSharedHandle<P0, T>(&self, nthandle: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6143 where
6144 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
6145 T: ::windows::core::ComInterface,
6146 {
6147 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandle)(::windows::core::Interface::as_raw(self), nthandle.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6148 }
6149 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6150 #[cfg(feature = "Win32_Foundation")]
6151 pub unsafe fn OpenSharedHandleByName<P0>(&self, name: P0, access: u32) -> ::windows::core::Result<super::super::Foundation::HANDLE>
6152 where
6153 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
6154 {
6155 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
6156 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.OpenSharedHandleByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), access, &mut result__).from_abi(result__)
6157 }
6158 pub unsafe fn MakeResident(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
6159 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.MakeResident)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
6160 }
6161 pub unsafe fn Evict(&self, ppobjects: &[::core::option::Option<ID3D12Pageable>]) -> ::windows::core::Result<()> {
6162 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.Evict)(::windows::core::Interface::as_raw(self), ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr())).ok()
6163 }
6164 pub unsafe fn CreateFence<T>(&self, initialvalue: u64, flags: D3D12_FENCE_FLAGS) -> ::windows::core::Result<T>
6165 where
6166 T: ::windows::core::ComInterface,
6167 {
6168 let mut result__ = ::std::ptr::null_mut();
6169 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateFence)(::windows::core::Interface::as_raw(self), initialvalue, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6170 }
6171 pub unsafe fn GetDeviceRemovedReason(&self) -> ::windows::core::Result<()> {
6172 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDeviceRemovedReason)(::windows::core::Interface::as_raw(self)).ok()
6173 }
6174 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6175 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6176 pub unsafe fn GetCopyableFootprints(&self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
6177 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetCopyableFootprints)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
6178 }
6179 pub unsafe fn CreateQueryHeap<T>(&self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6180 where
6181 T: ::windows::core::ComInterface,
6182 {
6183 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateQueryHeap)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6184 }
6185 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6186 #[cfg(feature = "Win32_Foundation")]
6187 pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> ::windows::core::Result<()>
6188 where
6189 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
6190 {
6191 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetStablePowerState)(::windows::core::Interface::as_raw(self), enable.into_param().abi()).ok()
6192 }
6193 pub unsafe fn CreateCommandSignature<P0, T>(&self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6194 where
6195 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
6196 T: ::windows::core::ComInterface,
6197 {
6198 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CreateCommandSignature)(::windows::core::Interface::as_raw(self), pdesc, prootsignature.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6199 }
6200 pub unsafe fn GetResourceTiling<P0>(&self, ptiledresource: P0, pnumtilesforentireresource: ::core::option::Option<*mut u32>, ppackedmipdesc: ::core::option::Option<*mut D3D12_PACKED_MIP_INFO>, pstandardtileshapefornonpackedmips: ::core::option::Option<*mut D3D12_TILE_SHAPE>, pnumsubresourcetilings: ::core::option::Option<*mut u32>, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING)
6201 where
6202 P0: ::windows::core::IntoParam<ID3D12Resource>,
6203 {
6204 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetResourceTiling)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ::core::mem::transmute(pnumtilesforentireresource.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ppackedmipdesc.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pstandardtileshapefornonpackedmips.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumsubresourcetilings.unwrap_or(::std::ptr::null_mut())), firstsubresourcetilingtoget, psubresourcetilingsfornonpackedmips)
6205 }
6206 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6207 #[cfg(feature = "Win32_Foundation")]
6208 pub unsafe fn GetAdapterLuid(&self) -> super::super::Foundation::LUID {
6209 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
6210 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetAdapterLuid)(::windows::core::Interface::as_raw(self), &mut result__);
6211 result__
6212 }
6213 pub unsafe fn CreatePipelineLibrary<T>(&self, plibraryblob: &[u8]) -> ::windows::core::Result<T>
6214 where
6215 T: ::windows::core::ComInterface,
6216 {
6217 let mut result__ = ::std::ptr::null_mut();
6218 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CreatePipelineLibrary)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(plibraryblob.as_ptr()), plibraryblob.len() as _, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6219 }
6220 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6221 #[cfg(feature = "Win32_Foundation")]
6222 pub unsafe fn SetEventOnMultipleFenceCompletion<P0>(&self, ppfences: *const ::core::option::Option<ID3D12Fence>, pfencevalues: *const u64, numfences: u32, flags: D3D12_MULTIPLE_FENCE_WAIT_FLAGS, hevent: P0) -> ::windows::core::Result<()>
6223 where
6224 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
6225 {
6226 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetEventOnMultipleFenceCompletion)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(ppfences), pfencevalues, numfences, flags, hevent.into_param().abi()).ok()
6227 }
6228 pub unsafe fn SetResidencyPriority(&self, numobjects: u32, ppobjects: *const ::core::option::Option<ID3D12Pageable>, ppriorities: *const D3D12_RESIDENCY_PRIORITY) -> ::windows::core::Result<()> {
6229 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetResidencyPriority)(::windows::core::Interface::as_raw(self), numobjects, ::core::mem::transmute(ppobjects), ppriorities).ok()
6230 }
6231 pub unsafe fn CreatePipelineState<T>(&self, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
6232 where
6233 T: ::windows::core::ComInterface,
6234 {
6235 let mut result__ = ::std::ptr::null_mut();
6236 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CreatePipelineState)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6237 }
6238 pub unsafe fn OpenExistingHeapFromAddress<T>(&self, paddress: *const ::core::ffi::c_void) -> ::windows::core::Result<T>
6239 where
6240 T: ::windows::core::ComInterface,
6241 {
6242 let mut result__ = ::std::ptr::null_mut();
6243 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OpenExistingHeapFromAddress)(::windows::core::Interface::as_raw(self), paddress, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6244 }
6245 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6246 #[cfg(feature = "Win32_Foundation")]
6247 pub unsafe fn OpenExistingHeapFromFileMapping<P0, T>(&self, hfilemapping: P0) -> ::windows::core::Result<T>
6248 where
6249 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
6250 T: ::windows::core::ComInterface,
6251 {
6252 let mut result__ = ::std::ptr::null_mut();
6253 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OpenExistingHeapFromFileMapping)(::windows::core::Interface::as_raw(self), hfilemapping.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6254 }
6255 pub unsafe fn EnqueueMakeResident<P0>(&self, flags: D3D12_RESIDENCY_FLAGS, ppobjects: &[::core::option::Option<ID3D12Pageable>], pfencetosignal: P0, fencevaluetosignal: u64) -> ::windows::core::Result<()>
6256 where
6257 P0: ::windows::core::IntoParam<ID3D12Fence>,
6258 {
6259 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EnqueueMakeResident)(::windows::core::Interface::as_raw(self), flags, ppobjects.len() as _, ::core::mem::transmute(ppobjects.as_ptr()), pfencetosignal.into_param().abi(), fencevaluetosignal).ok()
6260 }
6261 pub unsafe fn CreateCommandList1<T>(&self, nodemask: u32, r#type: D3D12_COMMAND_LIST_TYPE, flags: D3D12_COMMAND_LIST_FLAGS) -> ::windows::core::Result<T>
6262 where
6263 T: ::windows::core::ComInterface,
6264 {
6265 let mut result__ = ::std::ptr::null_mut();
6266 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommandList1)(::windows::core::Interface::as_raw(self), nodemask, r#type, flags, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6267 }
6268 pub unsafe fn CreateProtectedResourceSession<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC) -> ::windows::core::Result<T>
6269 where
6270 T: ::windows::core::ComInterface,
6271 {
6272 let mut result__ = ::std::ptr::null_mut();
6273 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateProtectedResourceSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6274 }
6275 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6276 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6277 pub unsafe fn CreateCommittedResource1<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6278 where
6279 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
6280 T: ::windows::core::ComInterface,
6281 {
6282 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateCommittedResource1)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6283 }
6284 pub unsafe fn CreateHeap1<P0, T>(&self, pdesc: *const D3D12_HEAP_DESC, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6285 where
6286 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
6287 T: ::windows::core::ComInterface,
6288 {
6289 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateHeap1)(::windows::core::Interface::as_raw(self), pdesc, pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6290 }
6291 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6292 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6293 pub unsafe fn CreateReservedResource1<P0, T>(&self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6294 where
6295 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
6296 T: ::windows::core::ComInterface,
6297 {
6298 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CreateReservedResource1)(::windows::core::Interface::as_raw(self), pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6299 }
6300 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6301 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6302 pub unsafe fn GetResourceAllocationInfo1(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
6303 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
6304 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetResourceAllocationInfo1)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
6305 result__
6306 }
6307 pub unsafe fn CreateLifetimeTracker<P0, T>(&self, powner: P0) -> ::windows::core::Result<T>
6308 where
6309 P0: ::windows::core::IntoParam<ID3D12LifetimeOwner>,
6310 T: ::windows::core::ComInterface,
6311 {
6312 let mut result__ = ::std::ptr::null_mut();
6313 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateLifetimeTracker)(::windows::core::Interface::as_raw(self), powner.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6314 }
6315 pub unsafe fn RemoveDevice(&self) {
6316 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RemoveDevice)(::windows::core::Interface::as_raw(self))
6317 }
6318 pub unsafe fn EnumerateMetaCommands(&self, pnummetacommands: *mut u32, pdescs: ::core::option::Option<*mut D3D12_META_COMMAND_DESC>) -> ::windows::core::Result<()> {
6319 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnumerateMetaCommands)(::windows::core::Interface::as_raw(self), pnummetacommands, ::core::mem::transmute(pdescs.unwrap_or(::std::ptr::null_mut()))).ok()
6320 }
6321 pub unsafe fn EnumerateMetaCommandParameters(&self, commandid: *const ::windows::core::GUID, stage: D3D12_META_COMMAND_PARAMETER_STAGE, ptotalstructuresizeinbytes: ::core::option::Option<*mut u32>, pparametercount: *mut u32, pparameterdescs: ::core::option::Option<*mut D3D12_META_COMMAND_PARAMETER_DESC>) -> ::windows::core::Result<()> {
6322 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EnumerateMetaCommandParameters)(::windows::core::Interface::as_raw(self), commandid, stage, ::core::mem::transmute(ptotalstructuresizeinbytes.unwrap_or(::std::ptr::null_mut())), pparametercount, ::core::mem::transmute(pparameterdescs.unwrap_or(::std::ptr::null_mut()))).ok()
6323 }
6324 pub unsafe fn CreateMetaCommand<T>(&self, commandid: *const ::windows::core::GUID, nodemask: u32, pcreationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, creationparametersdatasizeinbytes: usize) -> ::windows::core::Result<T>
6325 where
6326 T: ::windows::core::ComInterface,
6327 {
6328 let mut result__ = ::std::ptr::null_mut();
6329 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateMetaCommand)(::windows::core::Interface::as_raw(self), commandid, nodemask, ::core::mem::transmute(pcreationparametersdata.unwrap_or(::std::ptr::null())), creationparametersdatasizeinbytes, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6330 }
6331 pub unsafe fn CreateStateObject<T>(&self, pdesc: *const D3D12_STATE_OBJECT_DESC) -> ::windows::core::Result<T>
6332 where
6333 T: ::windows::core::ComInterface,
6334 {
6335 let mut result__ = ::std::ptr::null_mut();
6336 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CreateStateObject)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6337 }
6338 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6339 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6340 pub unsafe fn GetRaytracingAccelerationStructurePrebuildInfo(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS, pinfo: *mut D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO) {
6341 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetRaytracingAccelerationStructurePrebuildInfo)(::windows::core::Interface::as_raw(self), pdesc, pinfo)
6342 }
6343 pub unsafe fn CheckDriverMatchingIdentifier(&self, serializeddatatype: D3D12_SERIALIZED_DATA_TYPE, pidentifiertocheck: *const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER) -> D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
6344 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CheckDriverMatchingIdentifier)(::windows::core::Interface::as_raw(self), serializeddatatype, pidentifiertocheck)
6345 }
6346 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6347 #[cfg(feature = "Win32_Foundation")]
6348 pub unsafe fn SetBackgroundProcessingMode<P0>(&self, mode: D3D12_BACKGROUND_PROCESSING_MODE, measurementsaction: D3D12_MEASUREMENTS_ACTION, heventtosignaluponcompletion: P0, pbfurthermeasurementsdesired: ::core::option::Option<*mut super::super::Foundation::BOOL>) -> ::windows::core::Result<()>
6349 where
6350 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
6351 {
6352 (::windows::core::Interface::vtable(self).base__.base__.base__.SetBackgroundProcessingMode)(::windows::core::Interface::as_raw(self), mode, measurementsaction, heventtosignaluponcompletion.into_param().abi(), ::core::mem::transmute(pbfurthermeasurementsdesired.unwrap_or(::std::ptr::null_mut()))).ok()
6353 }
6354 pub unsafe fn AddToStateObject<P0, T>(&self, paddition: *const D3D12_STATE_OBJECT_DESC, pstateobjecttogrowfrom: P0) -> ::windows::core::Result<T>
6355 where
6356 P0: ::windows::core::IntoParam<ID3D12StateObject>,
6357 T: ::windows::core::ComInterface,
6358 {
6359 let mut result__ = ::std::ptr::null_mut();
6360 (::windows::core::Interface::vtable(self).base__.base__.AddToStateObject)(::windows::core::Interface::as_raw(self), paddition, pstateobjecttogrowfrom.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6361 }
6362 pub unsafe fn CreateProtectedResourceSession1<T>(&self, pdesc: *const D3D12_PROTECTED_RESOURCE_SESSION_DESC1) -> ::windows::core::Result<T>
6363 where
6364 T: ::windows::core::ComInterface,
6365 {
6366 let mut result__ = ::std::ptr::null_mut();
6367 (::windows::core::Interface::vtable(self).base__.base__.CreateProtectedResourceSession1)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6368 }
6369 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6370 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6371 pub unsafe fn GetResourceAllocationInfo2(&self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC1, presourceallocationinfo1: ::core::option::Option<*mut D3D12_RESOURCE_ALLOCATION_INFO1>) -> D3D12_RESOURCE_ALLOCATION_INFO {
6372 let mut result__: D3D12_RESOURCE_ALLOCATION_INFO = ::core::mem::zeroed();
6373 (::windows::core::Interface::vtable(self).base__.GetResourceAllocationInfo2)(::windows::core::Interface::as_raw(self), &mut result__, visiblemask, numresourcedescs, presourcedescs, ::core::mem::transmute(presourceallocationinfo1.unwrap_or(::std::ptr::null_mut())));
6374 result__
6375 }
6376 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6377 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6378 pub unsafe fn CreateCommittedResource2<P0, T>(&self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC1, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, pprotectedsession: P0, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6379 where
6380 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
6381 T: ::windows::core::ComInterface,
6382 {
6383 (::windows::core::Interface::vtable(self).base__.CreateCommittedResource2)(::windows::core::Interface::as_raw(self), pheapproperties, heapflags, pdesc, initialresourcestate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), pprotectedsession.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6384 }
6385 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6386 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6387 pub unsafe fn CreatePlacedResource1<P0, T>(&self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC1, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: ::core::option::Option<*const D3D12_CLEAR_VALUE>, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6388 where
6389 P0: ::windows::core::IntoParam<ID3D12Heap>,
6390 T: ::windows::core::ComInterface,
6391 {
6392 (::windows::core::Interface::vtable(self).base__.CreatePlacedResource1)(::windows::core::Interface::as_raw(self), pheap.into_param().abi(), heapoffset, pdesc, initialstate, ::core::mem::transmute(poptimizedclearvalue.unwrap_or(::std::ptr::null())), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6393 }
6394 pub unsafe fn CreateSamplerFeedbackUnorderedAccessView<P0, P1>(&self, ptargetedresource: P0, pfeedbackresource: P1, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE)
6395 where
6396 P0: ::windows::core::IntoParam<ID3D12Resource>,
6397 P1: ::windows::core::IntoParam<ID3D12Resource>,
6398 {
6399 (::windows::core::Interface::vtable(self).base__.CreateSamplerFeedbackUnorderedAccessView)(::windows::core::Interface::as_raw(self), ptargetedresource.into_param().abi(), pfeedbackresource.into_param().abi(), ::core::mem::transmute(destdescriptor))
6400 }
6401 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
6402 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
6403 pub unsafe fn GetCopyableFootprints1(&self, presourcedesc: *const D3D12_RESOURCE_DESC1, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: ::core::option::Option<*mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT>, pnumrows: ::core::option::Option<*mut u32>, prowsizeinbytes: ::core::option::Option<*mut u64>, ptotalbytes: ::core::option::Option<*mut u64>) {
6404 (::windows::core::Interface::vtable(self).base__.GetCopyableFootprints1)(::windows::core::Interface::as_raw(self), presourcedesc, firstsubresource, numsubresources, baseoffset, ::core::mem::transmute(playouts.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pnumrows.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(prowsizeinbytes.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(ptotalbytes.unwrap_or(::std::ptr::null_mut())))
6405 }
6406 pub unsafe fn CreateShaderCacheSession<T>(&self, pdesc: *const D3D12_SHADER_CACHE_SESSION_DESC, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6407 where
6408 T: ::windows::core::ComInterface,
6409 {
6410 (::windows::core::Interface::vtable(self).CreateShaderCacheSession)(::windows::core::Interface::as_raw(self), pdesc, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6411 }
6412 pub unsafe fn ShaderCacheControl(&self, kinds: D3D12_SHADER_CACHE_KIND_FLAGS, control: D3D12_SHADER_CACHE_CONTROL_FLAGS) -> ::windows::core::Result<()> {
6413 (::windows::core::Interface::vtable(self).ShaderCacheControl)(::windows::core::Interface::as_raw(self), kinds, control).ok()
6414 }
6415 pub unsafe fn CreateCommandQueue1<T>(&self, pdesc: *const D3D12_COMMAND_QUEUE_DESC, creatorid: *const ::windows::core::GUID) -> ::windows::core::Result<T>
6416 where
6417 T: ::windows::core::ComInterface,
6418 {
6419 let mut result__ = ::std::ptr::null_mut();
6420 (::windows::core::Interface::vtable(self).CreateCommandQueue1)(::windows::core::Interface::as_raw(self), pdesc, creatorid, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6421 }
6422}
6423::windows::imp::interface_hierarchy!(ID3D12Device9, ::windows::core::IUnknown, ID3D12Object, ID3D12Device, ID3D12Device1, ID3D12Device2, ID3D12Device3, ID3D12Device4, ID3D12Device5, ID3D12Device6, ID3D12Device7, ID3D12Device8);
6424impl ::core::cmp::PartialEq for ID3D12Device9 {
6425 fn eq(&self, other: &Self) -> bool {
6426 self.0 == other.0
6427 }
6428}
6429impl ::core::cmp::Eq for ID3D12Device9 {}
6430impl ::core::fmt::Debug for ID3D12Device9 {
6431 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6432 f.debug_tuple("ID3D12Device9").field(&self.0).finish()
6433 }
6434}
6435unsafe impl ::core::marker::Send for ID3D12Device9 {}
6436unsafe impl ::core::marker::Sync for ID3D12Device9 {}
6437unsafe impl ::windows::core::Interface for ID3D12Device9 {
6438 type Vtable = ID3D12Device9_Vtbl;
6439}
6440impl ::core::clone::Clone for ID3D12Device9 {
6441 fn clone(&self) -> Self {
6442 Self(self.0.clone())
6443 }
6444}
6445unsafe impl ::windows::core::ComInterface for ID3D12Device9 {
6446 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4c80e962_f032_4f60_bc9e_ebc2cfa1d83c);
6447}
6448#[repr(C)]
6449#[doc(hidden)]
6450pub struct ID3D12Device9_Vtbl {
6451 pub base__: ID3D12Device8_Vtbl,
6452 pub CreateShaderCacheSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_SHADER_CACHE_SESSION_DESC, riid: *const ::windows::core::GUID, ppvsession: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6453 pub ShaderCacheControl: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, kinds: D3D12_SHADER_CACHE_KIND_FLAGS, control: D3D12_SHADER_CACHE_CONTROL_FLAGS) -> ::windows::core::HRESULT,
6454 pub CreateCommandQueue1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_COMMAND_QUEUE_DESC, creatorid: *const ::windows::core::GUID, riid: *const ::windows::core::GUID, ppcommandqueue: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6455}
6456#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6457#[repr(transparent)]
6458pub struct ID3D12DeviceChild(::windows::core::IUnknown);
6459impl ID3D12DeviceChild {
6460 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
6461 (::windows::core::Interface::vtable(self).base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
6462 }
6463 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
6464 (::windows::core::Interface::vtable(self).base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
6465 }
6466 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
6467 where
6468 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
6469 {
6470 (::windows::core::Interface::vtable(self).base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
6471 }
6472 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
6473 where
6474 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
6475 {
6476 (::windows::core::Interface::vtable(self).base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
6477 }
6478 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6479 where
6480 T: ::windows::core::ComInterface,
6481 {
6482 (::windows::core::Interface::vtable(self).GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6483 }
6484}
6485::windows::imp::interface_hierarchy!(ID3D12DeviceChild, ::windows::core::IUnknown, ID3D12Object);
6486impl ::core::cmp::PartialEq for ID3D12DeviceChild {
6487 fn eq(&self, other: &Self) -> bool {
6488 self.0 == other.0
6489 }
6490}
6491impl ::core::cmp::Eq for ID3D12DeviceChild {}
6492impl ::core::fmt::Debug for ID3D12DeviceChild {
6493 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6494 f.debug_tuple("ID3D12DeviceChild").field(&self.0).finish()
6495 }
6496}
6497unsafe impl ::core::marker::Send for ID3D12DeviceChild {}
6498unsafe impl ::core::marker::Sync for ID3D12DeviceChild {}
6499unsafe impl ::windows::core::Interface for ID3D12DeviceChild {
6500 type Vtable = ID3D12DeviceChild_Vtbl;
6501}
6502impl ::core::clone::Clone for ID3D12DeviceChild {
6503 fn clone(&self) -> Self {
6504 Self(self.0.clone())
6505 }
6506}
6507unsafe impl ::windows::core::ComInterface for ID3D12DeviceChild {
6508 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x905db94b_a00c_4140_9df5_2b64ca9ea357);
6509}
6510#[repr(C)]
6511#[doc(hidden)]
6512pub struct ID3D12DeviceChild_Vtbl {
6513 pub base__: ID3D12Object_Vtbl,
6514 pub GetDevice: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppvdevice: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6515}
6516#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6517#[repr(transparent)]
6518pub struct ID3D12DeviceConfiguration(::windows::core::IUnknown);
6519impl ID3D12DeviceConfiguration {
6520 pub unsafe fn GetDesc(&self) -> D3D12_DEVICE_CONFIGURATION_DESC {
6521 let mut result__: D3D12_DEVICE_CONFIGURATION_DESC = ::core::mem::zeroed();
6522 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
6523 result__
6524 }
6525 pub unsafe fn GetEnabledExperimentalFeatures(&self, pguids: &mut [::windows::core::GUID]) -> ::windows::core::Result<()> {
6526 (::windows::core::Interface::vtable(self).GetEnabledExperimentalFeatures)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pguids.as_ptr()), pguids.len() as _).ok()
6527 }
6528 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
6529 #[cfg(feature = "Win32_Graphics_Direct3D")]
6530 pub unsafe fn SerializeVersionedRootSignature(&self, pdesc: *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC, ppresult: *mut ::core::option::Option<super::Direct3D::ID3DBlob>, pperror: ::core::option::Option<*mut ::core::option::Option<super::Direct3D::ID3DBlob>>) -> ::windows::core::Result<()> {
6531 (::windows::core::Interface::vtable(self).SerializeVersionedRootSignature)(::windows::core::Interface::as_raw(self), pdesc, ::core::mem::transmute(ppresult), ::core::mem::transmute(pperror.unwrap_or(::std::ptr::null_mut()))).ok()
6532 }
6533 pub unsafe fn CreateVersionedRootSignatureDeserializer<T>(&self, pblob: *const ::core::ffi::c_void, size: usize) -> ::windows::core::Result<T>
6534 where
6535 T: ::windows::core::ComInterface,
6536 {
6537 let mut result__ = ::std::ptr::null_mut();
6538 (::windows::core::Interface::vtable(self).CreateVersionedRootSignatureDeserializer)(::windows::core::Interface::as_raw(self), pblob, size, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6539 }
6540}
6541::windows::imp::interface_hierarchy!(ID3D12DeviceConfiguration, ::windows::core::IUnknown);
6542impl ::core::cmp::PartialEq for ID3D12DeviceConfiguration {
6543 fn eq(&self, other: &Self) -> bool {
6544 self.0 == other.0
6545 }
6546}
6547impl ::core::cmp::Eq for ID3D12DeviceConfiguration {}
6548impl ::core::fmt::Debug for ID3D12DeviceConfiguration {
6549 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6550 f.debug_tuple("ID3D12DeviceConfiguration").field(&self.0).finish()
6551 }
6552}
6553unsafe impl ::core::marker::Send for ID3D12DeviceConfiguration {}
6554unsafe impl ::core::marker::Sync for ID3D12DeviceConfiguration {}
6555unsafe impl ::windows::core::Interface for ID3D12DeviceConfiguration {
6556 type Vtable = ID3D12DeviceConfiguration_Vtbl;
6557}
6558impl ::core::clone::Clone for ID3D12DeviceConfiguration {
6559 fn clone(&self) -> Self {
6560 Self(self.0.clone())
6561 }
6562}
6563unsafe impl ::windows::core::ComInterface for ID3D12DeviceConfiguration {
6564 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x78dbf87b_f766_422b_a61c_c8c446bdb9ad);
6565}
6566#[repr(C)]
6567#[doc(hidden)]
6568pub struct ID3D12DeviceConfiguration_Vtbl {
6569 pub base__: ::windows::core::IUnknown_Vtbl,
6570 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_DEVICE_CONFIGURATION_DESC),
6571 pub GetEnabledExperimentalFeatures: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pguids: *mut ::windows::core::GUID, numguids: u32) -> ::windows::core::HRESULT,
6572 #[cfg(feature = "Win32_Graphics_Direct3D")]
6573 pub SerializeVersionedRootSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC, ppresult: *mut *mut ::core::ffi::c_void, pperror: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6574 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
6575 SerializeVersionedRootSignature: usize,
6576 pub CreateVersionedRootSignatureDeserializer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pblob: *const ::core::ffi::c_void, size: usize, riid: *const ::windows::core::GUID, ppvdeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6577}
6578#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6579#[repr(transparent)]
6580pub struct ID3D12DeviceFactory(::windows::core::IUnknown);
6581impl ID3D12DeviceFactory {
6582 pub unsafe fn InitializeFromGlobalState(&self) -> ::windows::core::Result<()> {
6583 (::windows::core::Interface::vtable(self).InitializeFromGlobalState)(::windows::core::Interface::as_raw(self)).ok()
6584 }
6585 pub unsafe fn ApplyToGlobalState(&self) -> ::windows::core::Result<()> {
6586 (::windows::core::Interface::vtable(self).ApplyToGlobalState)(::windows::core::Interface::as_raw(self)).ok()
6587 }
6588 pub unsafe fn SetFlags(&self, flags: D3D12_DEVICE_FACTORY_FLAGS) -> ::windows::core::Result<()> {
6589 (::windows::core::Interface::vtable(self).SetFlags)(::windows::core::Interface::as_raw(self), flags).ok()
6590 }
6591 pub unsafe fn GetFlags(&self) -> D3D12_DEVICE_FACTORY_FLAGS {
6592 (::windows::core::Interface::vtable(self).GetFlags)(::windows::core::Interface::as_raw(self))
6593 }
6594 pub unsafe fn GetConfigurationInterface<T>(&self, clsid: *const ::windows::core::GUID) -> ::windows::core::Result<T>
6595 where
6596 T: ::windows::core::ComInterface,
6597 {
6598 let mut result__ = ::std::ptr::null_mut();
6599 (::windows::core::Interface::vtable(self).GetConfigurationInterface)(::windows::core::Interface::as_raw(self), clsid, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
6600 }
6601 pub unsafe fn EnableExperimentalFeatures(&self, numfeatures: u32, piids: *const ::windows::core::GUID, pconfigurationstructs: ::core::option::Option<*const ::core::ffi::c_void>, pconfigurationstructsizes: ::core::option::Option<*const u32>) -> ::windows::core::Result<()> {
6602 (::windows::core::Interface::vtable(self).EnableExperimentalFeatures)(::windows::core::Interface::as_raw(self), numfeatures, piids, ::core::mem::transmute(pconfigurationstructs.unwrap_or(::std::ptr::null())), ::core::mem::transmute(pconfigurationstructsizes.unwrap_or(::std::ptr::null()))).ok()
6603 }
6604 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
6605 #[cfg(feature = "Win32_Graphics_Direct3D")]
6606 pub unsafe fn CreateDevice<P0, T>(&self, adapter: P0, featurelevel: super::Direct3D::D3D_FEATURE_LEVEL, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6607 where
6608 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
6609 T: ::windows::core::ComInterface,
6610 {
6611 (::windows::core::Interface::vtable(self).CreateDevice)(::windows::core::Interface::as_raw(self), adapter.into_param().abi(), featurelevel, &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6612 }
6613}
6614::windows::imp::interface_hierarchy!(ID3D12DeviceFactory, ::windows::core::IUnknown);
6615impl ::core::cmp::PartialEq for ID3D12DeviceFactory {
6616 fn eq(&self, other: &Self) -> bool {
6617 self.0 == other.0
6618 }
6619}
6620impl ::core::cmp::Eq for ID3D12DeviceFactory {}
6621impl ::core::fmt::Debug for ID3D12DeviceFactory {
6622 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6623 f.debug_tuple("ID3D12DeviceFactory").field(&self.0).finish()
6624 }
6625}
6626unsafe impl ::core::marker::Send for ID3D12DeviceFactory {}
6627unsafe impl ::core::marker::Sync for ID3D12DeviceFactory {}
6628unsafe impl ::windows::core::Interface for ID3D12DeviceFactory {
6629 type Vtable = ID3D12DeviceFactory_Vtbl;
6630}
6631impl ::core::clone::Clone for ID3D12DeviceFactory {
6632 fn clone(&self) -> Self {
6633 Self(self.0.clone())
6634 }
6635}
6636unsafe impl ::windows::core::ComInterface for ID3D12DeviceFactory {
6637 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x61f307d3_d34e_4e7c_8374_3ba4de23cccb);
6638}
6639#[repr(C)]
6640#[doc(hidden)]
6641pub struct ID3D12DeviceFactory_Vtbl {
6642 pub base__: ::windows::core::IUnknown_Vtbl,
6643 pub InitializeFromGlobalState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6644 pub ApplyToGlobalState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6645 pub SetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, flags: D3D12_DEVICE_FACTORY_FLAGS) -> ::windows::core::HRESULT,
6646 pub GetFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_DEVICE_FACTORY_FLAGS,
6647 pub GetConfigurationInterface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, clsid: *const ::windows::core::GUID, iid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6648 pub EnableExperimentalFeatures: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numfeatures: u32, piids: *const ::windows::core::GUID, pconfigurationstructs: *const ::core::ffi::c_void, pconfigurationstructsizes: *const u32) -> ::windows::core::HRESULT,
6649 #[cfg(feature = "Win32_Graphics_Direct3D")]
6650 pub CreateDevice: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, adapter: *mut ::core::ffi::c_void, featurelevel: super::Direct3D::D3D_FEATURE_LEVEL, riid: *const ::windows::core::GUID, ppvdevice: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
6651 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
6652 CreateDevice: usize,
6653}
6654#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6655#[repr(transparent)]
6656pub struct ID3D12DeviceRemovedExtendedData(::windows::core::IUnknown);
6657impl ID3D12DeviceRemovedExtendedData {
6658 pub unsafe fn GetAutoBreadcrumbsOutput(&self) -> ::windows::core::Result<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT> {
6659 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT>();
6660 (::windows::core::Interface::vtable(self).GetAutoBreadcrumbsOutput)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6661 }
6662 pub unsafe fn GetPageFaultAllocationOutput(&self) -> ::windows::core::Result<D3D12_DRED_PAGE_FAULT_OUTPUT> {
6663 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_PAGE_FAULT_OUTPUT>();
6664 (::windows::core::Interface::vtable(self).GetPageFaultAllocationOutput)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6665 }
6666}
6667::windows::imp::interface_hierarchy!(ID3D12DeviceRemovedExtendedData, ::windows::core::IUnknown);
6668impl ::core::cmp::PartialEq for ID3D12DeviceRemovedExtendedData {
6669 fn eq(&self, other: &Self) -> bool {
6670 self.0 == other.0
6671 }
6672}
6673impl ::core::cmp::Eq for ID3D12DeviceRemovedExtendedData {}
6674impl ::core::fmt::Debug for ID3D12DeviceRemovedExtendedData {
6675 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6676 f.debug_tuple("ID3D12DeviceRemovedExtendedData").field(&self.0).finish()
6677 }
6678}
6679unsafe impl ::core::marker::Send for ID3D12DeviceRemovedExtendedData {}
6680unsafe impl ::core::marker::Sync for ID3D12DeviceRemovedExtendedData {}
6681unsafe impl ::windows::core::Interface for ID3D12DeviceRemovedExtendedData {
6682 type Vtable = ID3D12DeviceRemovedExtendedData_Vtbl;
6683}
6684impl ::core::clone::Clone for ID3D12DeviceRemovedExtendedData {
6685 fn clone(&self) -> Self {
6686 Self(self.0.clone())
6687 }
6688}
6689unsafe impl ::windows::core::ComInterface for ID3D12DeviceRemovedExtendedData {
6690 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x98931d33_5ae8_4791_aa3c_1a73a2934e71);
6691}
6692#[repr(C)]
6693#[doc(hidden)]
6694pub struct ID3D12DeviceRemovedExtendedData_Vtbl {
6695 pub base__: ::windows::core::IUnknown_Vtbl,
6696 pub GetAutoBreadcrumbsOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, poutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT) -> ::windows::core::HRESULT,
6697 pub GetPageFaultAllocationOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, poutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT) -> ::windows::core::HRESULT,
6698}
6699#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6700#[repr(transparent)]
6701pub struct ID3D12DeviceRemovedExtendedData1(::windows::core::IUnknown);
6702impl ID3D12DeviceRemovedExtendedData1 {
6703 pub unsafe fn GetAutoBreadcrumbsOutput(&self) -> ::windows::core::Result<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT> {
6704 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT>();
6705 (::windows::core::Interface::vtable(self).base__.GetAutoBreadcrumbsOutput)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6706 }
6707 pub unsafe fn GetPageFaultAllocationOutput(&self) -> ::windows::core::Result<D3D12_DRED_PAGE_FAULT_OUTPUT> {
6708 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_PAGE_FAULT_OUTPUT>();
6709 (::windows::core::Interface::vtable(self).base__.GetPageFaultAllocationOutput)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6710 }
6711 pub unsafe fn GetAutoBreadcrumbsOutput1(&self) -> ::windows::core::Result<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1> {
6712 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1>();
6713 (::windows::core::Interface::vtable(self).GetAutoBreadcrumbsOutput1)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6714 }
6715 pub unsafe fn GetPageFaultAllocationOutput1(&self) -> ::windows::core::Result<D3D12_DRED_PAGE_FAULT_OUTPUT1> {
6716 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_PAGE_FAULT_OUTPUT1>();
6717 (::windows::core::Interface::vtable(self).GetPageFaultAllocationOutput1)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6718 }
6719}
6720::windows::imp::interface_hierarchy!(ID3D12DeviceRemovedExtendedData1, ::windows::core::IUnknown, ID3D12DeviceRemovedExtendedData);
6721impl ::core::cmp::PartialEq for ID3D12DeviceRemovedExtendedData1 {
6722 fn eq(&self, other: &Self) -> bool {
6723 self.0 == other.0
6724 }
6725}
6726impl ::core::cmp::Eq for ID3D12DeviceRemovedExtendedData1 {}
6727impl ::core::fmt::Debug for ID3D12DeviceRemovedExtendedData1 {
6728 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6729 f.debug_tuple("ID3D12DeviceRemovedExtendedData1").field(&self.0).finish()
6730 }
6731}
6732unsafe impl ::core::marker::Send for ID3D12DeviceRemovedExtendedData1 {}
6733unsafe impl ::core::marker::Sync for ID3D12DeviceRemovedExtendedData1 {}
6734unsafe impl ::windows::core::Interface for ID3D12DeviceRemovedExtendedData1 {
6735 type Vtable = ID3D12DeviceRemovedExtendedData1_Vtbl;
6736}
6737impl ::core::clone::Clone for ID3D12DeviceRemovedExtendedData1 {
6738 fn clone(&self) -> Self {
6739 Self(self.0.clone())
6740 }
6741}
6742unsafe impl ::windows::core::ComInterface for ID3D12DeviceRemovedExtendedData1 {
6743 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9727a022_cf1d_4dda_9eba_effa653fc506);
6744}
6745#[repr(C)]
6746#[doc(hidden)]
6747pub struct ID3D12DeviceRemovedExtendedData1_Vtbl {
6748 pub base__: ID3D12DeviceRemovedExtendedData_Vtbl,
6749 pub GetAutoBreadcrumbsOutput1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, poutput: *mut D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1) -> ::windows::core::HRESULT,
6750 pub GetPageFaultAllocationOutput1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, poutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT1) -> ::windows::core::HRESULT,
6751}
6752#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6753#[repr(transparent)]
6754pub struct ID3D12DeviceRemovedExtendedData2(::windows::core::IUnknown);
6755impl ID3D12DeviceRemovedExtendedData2 {
6756 pub unsafe fn GetAutoBreadcrumbsOutput(&self) -> ::windows::core::Result<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT> {
6757 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT>();
6758 (::windows::core::Interface::vtable(self).base__.base__.GetAutoBreadcrumbsOutput)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6759 }
6760 pub unsafe fn GetPageFaultAllocationOutput(&self) -> ::windows::core::Result<D3D12_DRED_PAGE_FAULT_OUTPUT> {
6761 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_PAGE_FAULT_OUTPUT>();
6762 (::windows::core::Interface::vtable(self).base__.base__.GetPageFaultAllocationOutput)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6763 }
6764 pub unsafe fn GetAutoBreadcrumbsOutput1(&self) -> ::windows::core::Result<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1> {
6765 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1>();
6766 (::windows::core::Interface::vtable(self).base__.GetAutoBreadcrumbsOutput1)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6767 }
6768 pub unsafe fn GetPageFaultAllocationOutput1(&self) -> ::windows::core::Result<D3D12_DRED_PAGE_FAULT_OUTPUT1> {
6769 let mut result__ = ::windows::core::zeroed::<D3D12_DRED_PAGE_FAULT_OUTPUT1>();
6770 (::windows::core::Interface::vtable(self).base__.GetPageFaultAllocationOutput1)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
6771 }
6772 pub unsafe fn GetPageFaultAllocationOutput2(&self, poutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT2) -> ::windows::core::Result<()> {
6773 (::windows::core::Interface::vtable(self).GetPageFaultAllocationOutput2)(::windows::core::Interface::as_raw(self), poutput).ok()
6774 }
6775 pub unsafe fn GetDeviceState(&self) -> D3D12_DRED_DEVICE_STATE {
6776 (::windows::core::Interface::vtable(self).GetDeviceState)(::windows::core::Interface::as_raw(self))
6777 }
6778}
6779::windows::imp::interface_hierarchy!(ID3D12DeviceRemovedExtendedData2, ::windows::core::IUnknown, ID3D12DeviceRemovedExtendedData, ID3D12DeviceRemovedExtendedData1);
6780impl ::core::cmp::PartialEq for ID3D12DeviceRemovedExtendedData2 {
6781 fn eq(&self, other: &Self) -> bool {
6782 self.0 == other.0
6783 }
6784}
6785impl ::core::cmp::Eq for ID3D12DeviceRemovedExtendedData2 {}
6786impl ::core::fmt::Debug for ID3D12DeviceRemovedExtendedData2 {
6787 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6788 f.debug_tuple("ID3D12DeviceRemovedExtendedData2").field(&self.0).finish()
6789 }
6790}
6791unsafe impl ::core::marker::Send for ID3D12DeviceRemovedExtendedData2 {}
6792unsafe impl ::core::marker::Sync for ID3D12DeviceRemovedExtendedData2 {}
6793unsafe impl ::windows::core::Interface for ID3D12DeviceRemovedExtendedData2 {
6794 type Vtable = ID3D12DeviceRemovedExtendedData2_Vtbl;
6795}
6796impl ::core::clone::Clone for ID3D12DeviceRemovedExtendedData2 {
6797 fn clone(&self) -> Self {
6798 Self(self.0.clone())
6799 }
6800}
6801unsafe impl ::windows::core::ComInterface for ID3D12DeviceRemovedExtendedData2 {
6802 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x67fc5816_e4ca_4915_bf18_42541272da54);
6803}
6804#[repr(C)]
6805#[doc(hidden)]
6806pub struct ID3D12DeviceRemovedExtendedData2_Vtbl {
6807 pub base__: ID3D12DeviceRemovedExtendedData1_Vtbl,
6808 pub GetPageFaultAllocationOutput2: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, poutput: *mut D3D12_DRED_PAGE_FAULT_OUTPUT2) -> ::windows::core::HRESULT,
6809 pub GetDeviceState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_DRED_DEVICE_STATE,
6810}
6811#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6812#[repr(transparent)]
6813pub struct ID3D12DeviceRemovedExtendedDataSettings(::windows::core::IUnknown);
6814impl ID3D12DeviceRemovedExtendedDataSettings {
6815 pub unsafe fn SetAutoBreadcrumbsEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6816 (::windows::core::Interface::vtable(self).SetAutoBreadcrumbsEnablement)(::windows::core::Interface::as_raw(self), enablement)
6817 }
6818 pub unsafe fn SetPageFaultEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6819 (::windows::core::Interface::vtable(self).SetPageFaultEnablement)(::windows::core::Interface::as_raw(self), enablement)
6820 }
6821 pub unsafe fn SetWatsonDumpEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6822 (::windows::core::Interface::vtable(self).SetWatsonDumpEnablement)(::windows::core::Interface::as_raw(self), enablement)
6823 }
6824}
6825::windows::imp::interface_hierarchy!(ID3D12DeviceRemovedExtendedDataSettings, ::windows::core::IUnknown);
6826impl ::core::cmp::PartialEq for ID3D12DeviceRemovedExtendedDataSettings {
6827 fn eq(&self, other: &Self) -> bool {
6828 self.0 == other.0
6829 }
6830}
6831impl ::core::cmp::Eq for ID3D12DeviceRemovedExtendedDataSettings {}
6832impl ::core::fmt::Debug for ID3D12DeviceRemovedExtendedDataSettings {
6833 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6834 f.debug_tuple("ID3D12DeviceRemovedExtendedDataSettings").field(&self.0).finish()
6835 }
6836}
6837unsafe impl ::core::marker::Send for ID3D12DeviceRemovedExtendedDataSettings {}
6838unsafe impl ::core::marker::Sync for ID3D12DeviceRemovedExtendedDataSettings {}
6839unsafe impl ::windows::core::Interface for ID3D12DeviceRemovedExtendedDataSettings {
6840 type Vtable = ID3D12DeviceRemovedExtendedDataSettings_Vtbl;
6841}
6842impl ::core::clone::Clone for ID3D12DeviceRemovedExtendedDataSettings {
6843 fn clone(&self) -> Self {
6844 Self(self.0.clone())
6845 }
6846}
6847unsafe impl ::windows::core::ComInterface for ID3D12DeviceRemovedExtendedDataSettings {
6848 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x82bc481c_6b9b_4030_aedb_7ee3d1df1e63);
6849}
6850#[repr(C)]
6851#[doc(hidden)]
6852pub struct ID3D12DeviceRemovedExtendedDataSettings_Vtbl {
6853 pub base__: ::windows::core::IUnknown_Vtbl,
6854 pub SetAutoBreadcrumbsEnablement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enablement: D3D12_DRED_ENABLEMENT),
6855 pub SetPageFaultEnablement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enablement: D3D12_DRED_ENABLEMENT),
6856 pub SetWatsonDumpEnablement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enablement: D3D12_DRED_ENABLEMENT),
6857}
6858#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6859#[repr(transparent)]
6860pub struct ID3D12DeviceRemovedExtendedDataSettings1(::windows::core::IUnknown);
6861impl ID3D12DeviceRemovedExtendedDataSettings1 {
6862 pub unsafe fn SetAutoBreadcrumbsEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6863 (::windows::core::Interface::vtable(self).base__.SetAutoBreadcrumbsEnablement)(::windows::core::Interface::as_raw(self), enablement)
6864 }
6865 pub unsafe fn SetPageFaultEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6866 (::windows::core::Interface::vtable(self).base__.SetPageFaultEnablement)(::windows::core::Interface::as_raw(self), enablement)
6867 }
6868 pub unsafe fn SetWatsonDumpEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6869 (::windows::core::Interface::vtable(self).base__.SetWatsonDumpEnablement)(::windows::core::Interface::as_raw(self), enablement)
6870 }
6871 pub unsafe fn SetBreadcrumbContextEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6872 (::windows::core::Interface::vtable(self).SetBreadcrumbContextEnablement)(::windows::core::Interface::as_raw(self), enablement)
6873 }
6874}
6875::windows::imp::interface_hierarchy!(ID3D12DeviceRemovedExtendedDataSettings1, ::windows::core::IUnknown, ID3D12DeviceRemovedExtendedDataSettings);
6876impl ::core::cmp::PartialEq for ID3D12DeviceRemovedExtendedDataSettings1 {
6877 fn eq(&self, other: &Self) -> bool {
6878 self.0 == other.0
6879 }
6880}
6881impl ::core::cmp::Eq for ID3D12DeviceRemovedExtendedDataSettings1 {}
6882impl ::core::fmt::Debug for ID3D12DeviceRemovedExtendedDataSettings1 {
6883 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6884 f.debug_tuple("ID3D12DeviceRemovedExtendedDataSettings1").field(&self.0).finish()
6885 }
6886}
6887unsafe impl ::core::marker::Send for ID3D12DeviceRemovedExtendedDataSettings1 {}
6888unsafe impl ::core::marker::Sync for ID3D12DeviceRemovedExtendedDataSettings1 {}
6889unsafe impl ::windows::core::Interface for ID3D12DeviceRemovedExtendedDataSettings1 {
6890 type Vtable = ID3D12DeviceRemovedExtendedDataSettings1_Vtbl;
6891}
6892impl ::core::clone::Clone for ID3D12DeviceRemovedExtendedDataSettings1 {
6893 fn clone(&self) -> Self {
6894 Self(self.0.clone())
6895 }
6896}
6897unsafe impl ::windows::core::ComInterface for ID3D12DeviceRemovedExtendedDataSettings1 {
6898 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdbd5ae51_3317_4f0a_adf9_1d7cedcaae0b);
6899}
6900#[repr(C)]
6901#[doc(hidden)]
6902pub struct ID3D12DeviceRemovedExtendedDataSettings1_Vtbl {
6903 pub base__: ID3D12DeviceRemovedExtendedDataSettings_Vtbl,
6904 pub SetBreadcrumbContextEnablement: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, enablement: D3D12_DRED_ENABLEMENT),
6905}
6906#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6907#[repr(transparent)]
6908pub struct ID3D12DeviceRemovedExtendedDataSettings2(::windows::core::IUnknown);
6909impl ID3D12DeviceRemovedExtendedDataSettings2 {
6910 pub unsafe fn SetAutoBreadcrumbsEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6911 (::windows::core::Interface::vtable(self).base__.base__.SetAutoBreadcrumbsEnablement)(::windows::core::Interface::as_raw(self), enablement)
6912 }
6913 pub unsafe fn SetPageFaultEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6914 (::windows::core::Interface::vtable(self).base__.base__.SetPageFaultEnablement)(::windows::core::Interface::as_raw(self), enablement)
6915 }
6916 pub unsafe fn SetWatsonDumpEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6917 (::windows::core::Interface::vtable(self).base__.base__.SetWatsonDumpEnablement)(::windows::core::Interface::as_raw(self), enablement)
6918 }
6919 pub unsafe fn SetBreadcrumbContextEnablement(&self, enablement: D3D12_DRED_ENABLEMENT) {
6920 (::windows::core::Interface::vtable(self).base__.SetBreadcrumbContextEnablement)(::windows::core::Interface::as_raw(self), enablement)
6921 }
6922 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6923 #[cfg(feature = "Win32_Foundation")]
6924 pub unsafe fn UseMarkersOnlyAutoBreadcrumbs<P0>(&self, markersonly: P0)
6925 where
6926 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
6927 {
6928 (::windows::core::Interface::vtable(self).UseMarkersOnlyAutoBreadcrumbs)(::windows::core::Interface::as_raw(self), markersonly.into_param().abi())
6929 }
6930}
6931::windows::imp::interface_hierarchy!(ID3D12DeviceRemovedExtendedDataSettings2, ::windows::core::IUnknown, ID3D12DeviceRemovedExtendedDataSettings, ID3D12DeviceRemovedExtendedDataSettings1);
6932impl ::core::cmp::PartialEq for ID3D12DeviceRemovedExtendedDataSettings2 {
6933 fn eq(&self, other: &Self) -> bool {
6934 self.0 == other.0
6935 }
6936}
6937impl ::core::cmp::Eq for ID3D12DeviceRemovedExtendedDataSettings2 {}
6938impl ::core::fmt::Debug for ID3D12DeviceRemovedExtendedDataSettings2 {
6939 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
6940 f.debug_tuple("ID3D12DeviceRemovedExtendedDataSettings2").field(&self.0).finish()
6941 }
6942}
6943unsafe impl ::core::marker::Send for ID3D12DeviceRemovedExtendedDataSettings2 {}
6944unsafe impl ::core::marker::Sync for ID3D12DeviceRemovedExtendedDataSettings2 {}
6945unsafe impl ::windows::core::Interface for ID3D12DeviceRemovedExtendedDataSettings2 {
6946 type Vtable = ID3D12DeviceRemovedExtendedDataSettings2_Vtbl;
6947}
6948impl ::core::clone::Clone for ID3D12DeviceRemovedExtendedDataSettings2 {
6949 fn clone(&self) -> Self {
6950 Self(self.0.clone())
6951 }
6952}
6953unsafe impl ::windows::core::ComInterface for ID3D12DeviceRemovedExtendedDataSettings2 {
6954 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x61552388_01ab_4008_a436_83db189566ea);
6955}
6956#[repr(C)]
6957#[doc(hidden)]
6958pub struct ID3D12DeviceRemovedExtendedDataSettings2_Vtbl {
6959 pub base__: ID3D12DeviceRemovedExtendedDataSettings1_Vtbl,
6960 #[cfg(feature = "Win32_Foundation")]
6961 pub UseMarkersOnlyAutoBreadcrumbs: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, markersonly: super::super::Foundation::BOOL),
6962 #[cfg(not(feature = "Win32_Foundation"))]
6963 UseMarkersOnlyAutoBreadcrumbs: usize,
6964}
6965#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
6966#[repr(transparent)]
6967pub struct ID3D12Fence(::windows::core::IUnknown);
6968impl ID3D12Fence {
6969 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
6970 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
6971 }
6972 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
6973 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
6974 }
6975 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
6976 where
6977 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
6978 {
6979 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
6980 }
6981 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
6982 where
6983 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
6984 {
6985 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
6986 }
6987 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
6988 where
6989 T: ::windows::core::ComInterface,
6990 {
6991 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
6992 }
6993 pub unsafe fn GetCompletedValue(&self) -> u64 {
6994 (::windows::core::Interface::vtable(self).GetCompletedValue)(::windows::core::Interface::as_raw(self))
6995 }
6996 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
6997 #[cfg(feature = "Win32_Foundation")]
6998 pub unsafe fn SetEventOnCompletion<P0>(&self, value: u64, hevent: P0) -> ::windows::core::Result<()>
6999 where
7000 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
7001 {
7002 (::windows::core::Interface::vtable(self).SetEventOnCompletion)(::windows::core::Interface::as_raw(self), value, hevent.into_param().abi()).ok()
7003 }
7004 pub unsafe fn Signal(&self, value: u64) -> ::windows::core::Result<()> {
7005 (::windows::core::Interface::vtable(self).Signal)(::windows::core::Interface::as_raw(self), value).ok()
7006 }
7007}
7008::windows::imp::interface_hierarchy!(ID3D12Fence, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
7009impl ::core::cmp::PartialEq for ID3D12Fence {
7010 fn eq(&self, other: &Self) -> bool {
7011 self.0 == other.0
7012 }
7013}
7014impl ::core::cmp::Eq for ID3D12Fence {}
7015impl ::core::fmt::Debug for ID3D12Fence {
7016 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7017 f.debug_tuple("ID3D12Fence").field(&self.0).finish()
7018 }
7019}
7020unsafe impl ::core::marker::Send for ID3D12Fence {}
7021unsafe impl ::core::marker::Sync for ID3D12Fence {}
7022unsafe impl ::windows::core::Interface for ID3D12Fence {
7023 type Vtable = ID3D12Fence_Vtbl;
7024}
7025impl ::core::clone::Clone for ID3D12Fence {
7026 fn clone(&self) -> Self {
7027 Self(self.0.clone())
7028 }
7029}
7030unsafe impl ::windows::core::ComInterface for ID3D12Fence {
7031 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0a753dcf_c4d8_4b91_adf6_be5a60d95a76);
7032}
7033#[repr(C)]
7034#[doc(hidden)]
7035pub struct ID3D12Fence_Vtbl {
7036 pub base__: ID3D12Pageable_Vtbl,
7037 pub GetCompletedValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
7038 #[cfg(feature = "Win32_Foundation")]
7039 pub SetEventOnCompletion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: u64, hevent: super::super::Foundation::HANDLE) -> ::windows::core::HRESULT,
7040 #[cfg(not(feature = "Win32_Foundation"))]
7041 SetEventOnCompletion: usize,
7042 pub Signal: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, value: u64) -> ::windows::core::HRESULT,
7043}
7044#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
7045#[repr(transparent)]
7046pub struct ID3D12Fence1(::windows::core::IUnknown);
7047impl ID3D12Fence1 {
7048 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7049 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
7050 }
7051 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7052 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
7053 }
7054 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
7055 where
7056 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
7057 {
7058 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
7059 }
7060 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
7061 where
7062 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
7063 {
7064 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
7065 }
7066 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
7067 where
7068 T: ::windows::core::ComInterface,
7069 {
7070 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
7071 }
7072 pub unsafe fn GetCompletedValue(&self) -> u64 {
7073 (::windows::core::Interface::vtable(self).base__.GetCompletedValue)(::windows::core::Interface::as_raw(self))
7074 }
7075 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7076 #[cfg(feature = "Win32_Foundation")]
7077 pub unsafe fn SetEventOnCompletion<P0>(&self, value: u64, hevent: P0) -> ::windows::core::Result<()>
7078 where
7079 P0: ::windows::core::IntoParam<super::super::Foundation::HANDLE>,
7080 {
7081 (::windows::core::Interface::vtable(self).base__.SetEventOnCompletion)(::windows::core::Interface::as_raw(self), value, hevent.into_param().abi()).ok()
7082 }
7083 pub unsafe fn Signal(&self, value: u64) -> ::windows::core::Result<()> {
7084 (::windows::core::Interface::vtable(self).base__.Signal)(::windows::core::Interface::as_raw(self), value).ok()
7085 }
7086 pub unsafe fn GetCreationFlags(&self) -> D3D12_FENCE_FLAGS {
7087 (::windows::core::Interface::vtable(self).GetCreationFlags)(::windows::core::Interface::as_raw(self))
7088 }
7089}
7090::windows::imp::interface_hierarchy!(ID3D12Fence1, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable, ID3D12Fence);
7091impl ::core::cmp::PartialEq for ID3D12Fence1 {
7092 fn eq(&self, other: &Self) -> bool {
7093 self.0 == other.0
7094 }
7095}
7096impl ::core::cmp::Eq for ID3D12Fence1 {}
7097impl ::core::fmt::Debug for ID3D12Fence1 {
7098 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7099 f.debug_tuple("ID3D12Fence1").field(&self.0).finish()
7100 }
7101}
7102unsafe impl ::core::marker::Send for ID3D12Fence1 {}
7103unsafe impl ::core::marker::Sync for ID3D12Fence1 {}
7104unsafe impl ::windows::core::Interface for ID3D12Fence1 {
7105 type Vtable = ID3D12Fence1_Vtbl;
7106}
7107impl ::core::clone::Clone for ID3D12Fence1 {
7108 fn clone(&self) -> Self {
7109 Self(self.0.clone())
7110 }
7111}
7112unsafe impl ::windows::core::ComInterface for ID3D12Fence1 {
7113 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x433685fe_e22b_4ca0_a8db_b5b4f4dd0e4a);
7114}
7115#[repr(C)]
7116#[doc(hidden)]
7117pub struct ID3D12Fence1_Vtbl {
7118 pub base__: ID3D12Fence_Vtbl,
7119 pub GetCreationFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_FENCE_FLAGS,
7120}
7121#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
7122#[repr(transparent)]
7123pub struct ID3D12FunctionParameterReflection(::std::ptr::NonNull<::std::ffi::c_void>);
7124impl ID3D12FunctionParameterReflection {
7125 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
7126 #[cfg(feature = "Win32_Graphics_Direct3D")]
7127 pub unsafe fn GetDesc(&self, pdesc: *mut D3D12_PARAMETER_DESC) -> ::windows::core::Result<()> {
7128 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), pdesc).ok()
7129 }
7130}
7131impl ::core::cmp::PartialEq for ID3D12FunctionParameterReflection {
7132 fn eq(&self, other: &Self) -> bool {
7133 self.0 == other.0
7134 }
7135}
7136impl ::core::cmp::Eq for ID3D12FunctionParameterReflection {}
7137impl ::core::fmt::Debug for ID3D12FunctionParameterReflection {
7138 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7139 f.debug_tuple("ID3D12FunctionParameterReflection").field(&self.0).finish()
7140 }
7141}
7142unsafe impl ::core::marker::Send for ID3D12FunctionParameterReflection {}
7143unsafe impl ::core::marker::Sync for ID3D12FunctionParameterReflection {}
7144unsafe impl ::windows::core::Interface for ID3D12FunctionParameterReflection {
7145 type Vtable = ID3D12FunctionParameterReflection_Vtbl;
7146}
7147impl ::core::clone::Clone for ID3D12FunctionParameterReflection {
7148 fn clone(&self) -> Self {
7149 Self(self.0.clone())
7150 }
7151}
7152#[repr(C)]
7153#[doc(hidden)]
7154pub struct ID3D12FunctionParameterReflection_Vtbl {
7155 #[cfg(feature = "Win32_Graphics_Direct3D")]
7156 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_PARAMETER_DESC) -> ::windows::core::HRESULT,
7157 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
7158 GetDesc: usize,
7159}
7160#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
7161#[repr(transparent)]
7162pub struct ID3D12FunctionReflection(::std::ptr::NonNull<::std::ffi::c_void>);
7163impl ID3D12FunctionReflection {
7164 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`*"]
7165 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
7166 pub unsafe fn GetDesc(&self, pdesc: *mut D3D12_FUNCTION_DESC) -> ::windows::core::Result<()> {
7167 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), pdesc).ok()
7168 }
7169 pub unsafe fn GetConstantBufferByIndex(&self, bufferindex: u32) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer> {
7170 (::windows::core::Interface::vtable(self).GetConstantBufferByIndex)(::windows::core::Interface::as_raw(self), bufferindex)
7171 }
7172 pub unsafe fn GetConstantBufferByName<P0>(&self, name: P0) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>
7173 where
7174 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
7175 {
7176 (::windows::core::Interface::vtable(self).GetConstantBufferByName)(::windows::core::Interface::as_raw(self), name.into_param().abi())
7177 }
7178 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
7179 #[cfg(feature = "Win32_Graphics_Direct3D")]
7180 pub unsafe fn GetResourceBindingDesc(&self, resourceindex: u32, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::Result<()> {
7181 (::windows::core::Interface::vtable(self).GetResourceBindingDesc)(::windows::core::Interface::as_raw(self), resourceindex, pdesc).ok()
7182 }
7183 pub unsafe fn GetVariableByName<P0>(&self, name: P0) -> ::core::option::Option<ID3D12ShaderReflectionVariable>
7184 where
7185 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
7186 {
7187 (::windows::core::Interface::vtable(self).GetVariableByName)(::windows::core::Interface::as_raw(self), name.into_param().abi())
7188 }
7189 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
7190 #[cfg(feature = "Win32_Graphics_Direct3D")]
7191 pub unsafe fn GetResourceBindingDescByName<P0>(&self, name: P0, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::Result<()>
7192 where
7193 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
7194 {
7195 (::windows::core::Interface::vtable(self).GetResourceBindingDescByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), pdesc).ok()
7196 }
7197 pub unsafe fn GetFunctionParameter(&self, parameterindex: i32) -> ::core::option::Option<ID3D12FunctionParameterReflection> {
7198 (::windows::core::Interface::vtable(self).GetFunctionParameter)(::windows::core::Interface::as_raw(self), parameterindex)
7199 }
7200}
7201impl ::core::cmp::PartialEq for ID3D12FunctionReflection {
7202 fn eq(&self, other: &Self) -> bool {
7203 self.0 == other.0
7204 }
7205}
7206impl ::core::cmp::Eq for ID3D12FunctionReflection {}
7207impl ::core::fmt::Debug for ID3D12FunctionReflection {
7208 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7209 f.debug_tuple("ID3D12FunctionReflection").field(&self.0).finish()
7210 }
7211}
7212unsafe impl ::core::marker::Send for ID3D12FunctionReflection {}
7213unsafe impl ::core::marker::Sync for ID3D12FunctionReflection {}
7214unsafe impl ::windows::core::Interface for ID3D12FunctionReflection {
7215 type Vtable = ID3D12FunctionReflection_Vtbl;
7216}
7217impl ::core::clone::Clone for ID3D12FunctionReflection {
7218 fn clone(&self) -> Self {
7219 Self(self.0.clone())
7220 }
7221}
7222#[repr(C)]
7223#[doc(hidden)]
7224pub struct ID3D12FunctionReflection_Vtbl {
7225 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
7226 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_FUNCTION_DESC) -> ::windows::core::HRESULT,
7227 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D")))]
7228 GetDesc: usize,
7229 pub GetConstantBufferByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bufferindex: u32) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>,
7230 pub GetConstantBufferByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>,
7231 #[cfg(feature = "Win32_Graphics_Direct3D")]
7232 pub GetResourceBindingDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, resourceindex: u32, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::HRESULT,
7233 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
7234 GetResourceBindingDesc: usize,
7235 pub GetVariableByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::core::option::Option<ID3D12ShaderReflectionVariable>,
7236 #[cfg(feature = "Win32_Graphics_Direct3D")]
7237 pub GetResourceBindingDescByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::HRESULT,
7238 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
7239 GetResourceBindingDescByName: usize,
7240 pub GetFunctionParameter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parameterindex: i32) -> ::core::option::Option<ID3D12FunctionParameterReflection>,
7241}
7242#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
7243#[repr(transparent)]
7244pub struct ID3D12GraphicsCommandList(::windows::core::IUnknown);
7245impl ID3D12GraphicsCommandList {
7246 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7247 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
7248 }
7249 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7250 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
7251 }
7252 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
7253 where
7254 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
7255 {
7256 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
7257 }
7258 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
7259 where
7260 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
7261 {
7262 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
7263 }
7264 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
7265 where
7266 T: ::windows::core::ComInterface,
7267 {
7268 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
7269 }
7270 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
7271 (::windows::core::Interface::vtable(self).base__.GetType)(::windows::core::Interface::as_raw(self))
7272 }
7273 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
7274 (::windows::core::Interface::vtable(self).Close)(::windows::core::Interface::as_raw(self)).ok()
7275 }
7276 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
7277 where
7278 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
7279 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
7280 {
7281 (::windows::core::Interface::vtable(self).Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
7282 }
7283 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
7284 where
7285 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
7286 {
7287 (::windows::core::Interface::vtable(self).ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
7288 }
7289 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
7290 (::windows::core::Interface::vtable(self).DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
7291 }
7292 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
7293 (::windows::core::Interface::vtable(self).DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
7294 }
7295 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
7296 (::windows::core::Interface::vtable(self).Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
7297 }
7298 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
7299 where
7300 P0: ::windows::core::IntoParam<ID3D12Resource>,
7301 P1: ::windows::core::IntoParam<ID3D12Resource>,
7302 {
7303 (::windows::core::Interface::vtable(self).CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
7304 }
7305 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
7306 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7307 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
7308 (::windows::core::Interface::vtable(self).CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
7309 }
7310 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
7311 where
7312 P0: ::windows::core::IntoParam<ID3D12Resource>,
7313 P1: ::windows::core::IntoParam<ID3D12Resource>,
7314 {
7315 (::windows::core::Interface::vtable(self).CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
7316 }
7317 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7318 #[cfg(feature = "Win32_Foundation")]
7319 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
7320 where
7321 P0: ::windows::core::IntoParam<ID3D12Resource>,
7322 P1: ::windows::core::IntoParam<ID3D12Resource>,
7323 {
7324 (::windows::core::Interface::vtable(self).CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
7325 }
7326 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
7327 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7328 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
7329 where
7330 P0: ::windows::core::IntoParam<ID3D12Resource>,
7331 P1: ::windows::core::IntoParam<ID3D12Resource>,
7332 {
7333 (::windows::core::Interface::vtable(self).ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
7334 }
7335 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
7336 #[cfg(feature = "Win32_Graphics_Direct3D")]
7337 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
7338 (::windows::core::Interface::vtable(self).IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
7339 }
7340 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
7341 (::windows::core::Interface::vtable(self).RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
7342 }
7343 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7344 #[cfg(feature = "Win32_Foundation")]
7345 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
7346 (::windows::core::Interface::vtable(self).RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7347 }
7348 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
7349 (::windows::core::Interface::vtable(self).OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7350 }
7351 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
7352 (::windows::core::Interface::vtable(self).OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
7353 }
7354 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
7355 where
7356 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
7357 {
7358 (::windows::core::Interface::vtable(self).SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
7359 }
7360 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
7361 (::windows::core::Interface::vtable(self).ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
7362 }
7363 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
7364 where
7365 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
7366 {
7367 (::windows::core::Interface::vtable(self).ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
7368 }
7369 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
7370 (::windows::core::Interface::vtable(self).SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
7371 }
7372 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
7373 where
7374 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
7375 {
7376 (::windows::core::Interface::vtable(self).SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
7377 }
7378 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
7379 where
7380 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
7381 {
7382 (::windows::core::Interface::vtable(self).SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
7383 }
7384 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
7385 (::windows::core::Interface::vtable(self).SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
7386 }
7387 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
7388 (::windows::core::Interface::vtable(self).SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
7389 }
7390 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
7391 (::windows::core::Interface::vtable(self).SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
7392 }
7393 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
7394 (::windows::core::Interface::vtable(self).SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
7395 }
7396 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
7397 (::windows::core::Interface::vtable(self).SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
7398 }
7399 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
7400 (::windows::core::Interface::vtable(self).SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
7401 }
7402 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
7403 (::windows::core::Interface::vtable(self).SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7404 }
7405 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
7406 (::windows::core::Interface::vtable(self).SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7407 }
7408 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
7409 (::windows::core::Interface::vtable(self).SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7410 }
7411 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
7412 (::windows::core::Interface::vtable(self).SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7413 }
7414 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
7415 (::windows::core::Interface::vtable(self).SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7416 }
7417 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
7418 (::windows::core::Interface::vtable(self).SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7419 }
7420 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
7421 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7422 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
7423 (::windows::core::Interface::vtable(self).IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
7424 }
7425 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
7426 (::windows::core::Interface::vtable(self).IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7427 }
7428 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
7429 (::windows::core::Interface::vtable(self).SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7430 }
7431 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7432 #[cfg(feature = "Win32_Foundation")]
7433 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
7434 where
7435 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
7436 {
7437 (::windows::core::Interface::vtable(self).OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
7438 }
7439 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7440 #[cfg(feature = "Win32_Foundation")]
7441 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
7442 (::windows::core::Interface::vtable(self).ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7443 }
7444 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7445 #[cfg(feature = "Win32_Foundation")]
7446 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
7447 (::windows::core::Interface::vtable(self).ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7448 }
7449 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7450 #[cfg(feature = "Win32_Foundation")]
7451 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
7452 where
7453 P0: ::windows::core::IntoParam<ID3D12Resource>,
7454 {
7455 (::windows::core::Interface::vtable(self).ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7456 }
7457 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7458 #[cfg(feature = "Win32_Foundation")]
7459 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
7460 where
7461 P0: ::windows::core::IntoParam<ID3D12Resource>,
7462 {
7463 (::windows::core::Interface::vtable(self).ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7464 }
7465 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7466 #[cfg(feature = "Win32_Foundation")]
7467 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
7468 where
7469 P0: ::windows::core::IntoParam<ID3D12Resource>,
7470 {
7471 (::windows::core::Interface::vtable(self).DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
7472 }
7473 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
7474 where
7475 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
7476 {
7477 (::windows::core::Interface::vtable(self).BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
7478 }
7479 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
7480 where
7481 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
7482 {
7483 (::windows::core::Interface::vtable(self).EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
7484 }
7485 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
7486 where
7487 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
7488 P1: ::windows::core::IntoParam<ID3D12Resource>,
7489 {
7490 (::windows::core::Interface::vtable(self).ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
7491 }
7492 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
7493 where
7494 P0: ::windows::core::IntoParam<ID3D12Resource>,
7495 {
7496 (::windows::core::Interface::vtable(self).SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
7497 }
7498 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
7499 (::windows::core::Interface::vtable(self).SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
7500 }
7501 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
7502 (::windows::core::Interface::vtable(self).BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
7503 }
7504 pub unsafe fn EndEvent(&self) {
7505 (::windows::core::Interface::vtable(self).EndEvent)(::windows::core::Interface::as_raw(self))
7506 }
7507 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
7508 where
7509 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
7510 P1: ::windows::core::IntoParam<ID3D12Resource>,
7511 P2: ::windows::core::IntoParam<ID3D12Resource>,
7512 {
7513 (::windows::core::Interface::vtable(self).ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
7514 }
7515}
7516::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList);
7517impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList {
7518 fn eq(&self, other: &Self) -> bool {
7519 self.0 == other.0
7520 }
7521}
7522impl ::core::cmp::Eq for ID3D12GraphicsCommandList {}
7523impl ::core::fmt::Debug for ID3D12GraphicsCommandList {
7524 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7525 f.debug_tuple("ID3D12GraphicsCommandList").field(&self.0).finish()
7526 }
7527}
7528unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList {}
7529unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList {}
7530unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList {
7531 type Vtable = ID3D12GraphicsCommandList_Vtbl;
7532}
7533impl ::core::clone::Clone for ID3D12GraphicsCommandList {
7534 fn clone(&self) -> Self {
7535 Self(self.0.clone())
7536 }
7537}
7538unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList {
7539 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5b160d0f_ac1b_4185_8ba8_b3ae42a5a455);
7540}
7541#[repr(C)]
7542#[doc(hidden)]
7543pub struct ID3D12GraphicsCommandList_Vtbl {
7544 pub base__: ID3D12CommandList_Vtbl,
7545 pub Close: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
7546 pub Reset: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pallocator: *mut ::core::ffi::c_void, pinitialstate: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
7547 pub ClearState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppipelinestate: *mut ::core::ffi::c_void),
7548 pub DrawInstanced: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32),
7549 pub DrawIndexedInstanced: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32),
7550 pub Dispatch: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32),
7551 pub CopyBufferRegion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstbuffer: *mut ::core::ffi::c_void, dstoffset: u64, psrcbuffer: *mut ::core::ffi::c_void, srcoffset: u64, numbytes: u64),
7552 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7553 pub CopyTextureRegion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: *const D3D12_BOX),
7554 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
7555 CopyTextureRegion: usize,
7556 pub CopyResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstresource: *mut ::core::ffi::c_void, psrcresource: *mut ::core::ffi::c_void),
7557 #[cfg(feature = "Win32_Foundation")]
7558 pub CopyTiles: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ptiledresource: *mut ::core::ffi::c_void, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: *mut ::core::ffi::c_void, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS),
7559 #[cfg(not(feature = "Win32_Foundation"))]
7560 CopyTiles: usize,
7561 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7562 pub ResolveSubresource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstresource: *mut ::core::ffi::c_void, dstsubresource: u32, psrcresource: *mut ::core::ffi::c_void, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT),
7563 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
7564 ResolveSubresource: usize,
7565 #[cfg(feature = "Win32_Graphics_Direct3D")]
7566 pub IASetPrimitiveTopology: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY),
7567 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
7568 IASetPrimitiveTopology: usize,
7569 pub RSSetViewports: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numviewports: u32, pviewports: *const D3D12_VIEWPORT),
7570 #[cfg(feature = "Win32_Foundation")]
7571 pub RSSetScissorRects: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrects: u32, prects: *const super::super::Foundation::RECT),
7572 #[cfg(not(feature = "Win32_Foundation"))]
7573 RSSetScissorRects: usize,
7574 pub OMSetBlendFactor: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, blendfactor: *const f32),
7575 pub OMSetStencilRef: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stencilref: u32),
7576 pub SetPipelineState: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppipelinestate: *mut ::core::ffi::c_void),
7577 pub ResourceBarrier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numbarriers: u32, pbarriers: *const D3D12_RESOURCE_BARRIER),
7578 pub ExecuteBundle: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcommandlist: *mut ::core::ffi::c_void),
7579 pub SetDescriptorHeaps: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numdescriptorheaps: u32, ppdescriptorheaps: *const *mut ::core::ffi::c_void),
7580 pub SetComputeRootSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prootsignature: *mut ::core::ffi::c_void),
7581 pub SetGraphicsRootSignature: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, prootsignature: *mut ::core::ffi::c_void),
7582 pub SetComputeRootDescriptorTable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE),
7583 pub SetGraphicsRootDescriptorTable: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE),
7584 pub SetComputeRoot32BitConstant: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32),
7585 pub SetGraphicsRoot32BitConstant: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32),
7586 pub SetComputeRoot32BitConstants: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32),
7587 pub SetGraphicsRoot32BitConstants: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32),
7588 pub SetComputeRootConstantBufferView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, bufferlocation: u64),
7589 pub SetGraphicsRootConstantBufferView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, bufferlocation: u64),
7590 pub SetComputeRootShaderResourceView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, bufferlocation: u64),
7591 pub SetGraphicsRootShaderResourceView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, bufferlocation: u64),
7592 pub SetComputeRootUnorderedAccessView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, bufferlocation: u64),
7593 pub SetGraphicsRootUnorderedAccessView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rootparameterindex: u32, bufferlocation: u64),
7594 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7595 pub IASetIndexBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pview: *const D3D12_INDEX_BUFFER_VIEW),
7596 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
7597 IASetIndexBuffer: usize,
7598 pub IASetVertexBuffers: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startslot: u32, numviews: u32, pviews: *const D3D12_VERTEX_BUFFER_VIEW),
7599 pub SOSetTargets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, startslot: u32, numviews: u32, pviews: *const D3D12_STREAM_OUTPUT_BUFFER_VIEW),
7600 #[cfg(feature = "Win32_Foundation")]
7601 pub OMSetRenderTargets: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrendertargetdescriptors: u32, prendertargetdescriptors: *const D3D12_CPU_DESCRIPTOR_HANDLE, rtssinglehandletodescriptorrange: super::super::Foundation::BOOL, pdepthstencildescriptor: *const D3D12_CPU_DESCRIPTOR_HANDLE),
7602 #[cfg(not(feature = "Win32_Foundation"))]
7603 OMSetRenderTargets: usize,
7604 #[cfg(feature = "Win32_Foundation")]
7605 pub ClearDepthStencilView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, numrects: u32, prects: *const super::super::Foundation::RECT),
7606 #[cfg(not(feature = "Win32_Foundation"))]
7607 ClearDepthStencilView: usize,
7608 #[cfg(feature = "Win32_Foundation")]
7609 pub ClearRenderTargetView: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, numrects: u32, prects: *const super::super::Foundation::RECT),
7610 #[cfg(not(feature = "Win32_Foundation"))]
7611 ClearRenderTargetView: usize,
7612 #[cfg(feature = "Win32_Foundation")]
7613 pub ClearUnorderedAccessViewUint: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: *mut ::core::ffi::c_void, values: *const u32, numrects: u32, prects: *const super::super::Foundation::RECT),
7614 #[cfg(not(feature = "Win32_Foundation"))]
7615 ClearUnorderedAccessViewUint: usize,
7616 #[cfg(feature = "Win32_Foundation")]
7617 pub ClearUnorderedAccessViewFloat: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: *mut ::core::ffi::c_void, values: *const f32, numrects: u32, prects: *const super::super::Foundation::RECT),
7618 #[cfg(not(feature = "Win32_Foundation"))]
7619 ClearUnorderedAccessViewFloat: usize,
7620 #[cfg(feature = "Win32_Foundation")]
7621 pub DiscardResource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, pregion: *const D3D12_DISCARD_REGION),
7622 #[cfg(not(feature = "Win32_Foundation"))]
7623 DiscardResource: usize,
7624 pub BeginQuery: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pqueryheap: *mut ::core::ffi::c_void, r#type: D3D12_QUERY_TYPE, index: u32),
7625 pub EndQuery: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pqueryheap: *mut ::core::ffi::c_void, r#type: D3D12_QUERY_TYPE, index: u32),
7626 pub ResolveQueryData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pqueryheap: *mut ::core::ffi::c_void, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: *mut ::core::ffi::c_void, aligneddestinationbufferoffset: u64),
7627 pub SetPredication: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbuffer: *mut ::core::ffi::c_void, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP),
7628 pub SetMarker: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32),
7629 pub BeginEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, metadata: u32, pdata: *const ::core::ffi::c_void, size: u32),
7630 pub EndEvent: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
7631 pub ExecuteIndirect: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pcommandsignature: *mut ::core::ffi::c_void, maxcommandcount: u32, pargumentbuffer: *mut ::core::ffi::c_void, argumentbufferoffset: u64, pcountbuffer: *mut ::core::ffi::c_void, countbufferoffset: u64),
7632}
7633#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
7634#[repr(transparent)]
7635pub struct ID3D12GraphicsCommandList1(::windows::core::IUnknown);
7636impl ID3D12GraphicsCommandList1 {
7637 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7638 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
7639 }
7640 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7641 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
7642 }
7643 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
7644 where
7645 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
7646 {
7647 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
7648 }
7649 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
7650 where
7651 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
7652 {
7653 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
7654 }
7655 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
7656 where
7657 T: ::windows::core::ComInterface,
7658 {
7659 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
7660 }
7661 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
7662 (::windows::core::Interface::vtable(self).base__.base__.GetType)(::windows::core::Interface::as_raw(self))
7663 }
7664 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
7665 (::windows::core::Interface::vtable(self).base__.Close)(::windows::core::Interface::as_raw(self)).ok()
7666 }
7667 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
7668 where
7669 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
7670 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
7671 {
7672 (::windows::core::Interface::vtable(self).base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
7673 }
7674 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
7675 where
7676 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
7677 {
7678 (::windows::core::Interface::vtable(self).base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
7679 }
7680 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
7681 (::windows::core::Interface::vtable(self).base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
7682 }
7683 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
7684 (::windows::core::Interface::vtable(self).base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
7685 }
7686 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
7687 (::windows::core::Interface::vtable(self).base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
7688 }
7689 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
7690 where
7691 P0: ::windows::core::IntoParam<ID3D12Resource>,
7692 P1: ::windows::core::IntoParam<ID3D12Resource>,
7693 {
7694 (::windows::core::Interface::vtable(self).base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
7695 }
7696 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
7697 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7698 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
7699 (::windows::core::Interface::vtable(self).base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
7700 }
7701 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
7702 where
7703 P0: ::windows::core::IntoParam<ID3D12Resource>,
7704 P1: ::windows::core::IntoParam<ID3D12Resource>,
7705 {
7706 (::windows::core::Interface::vtable(self).base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
7707 }
7708 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7709 #[cfg(feature = "Win32_Foundation")]
7710 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
7711 where
7712 P0: ::windows::core::IntoParam<ID3D12Resource>,
7713 P1: ::windows::core::IntoParam<ID3D12Resource>,
7714 {
7715 (::windows::core::Interface::vtable(self).base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
7716 }
7717 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
7718 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7719 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
7720 where
7721 P0: ::windows::core::IntoParam<ID3D12Resource>,
7722 P1: ::windows::core::IntoParam<ID3D12Resource>,
7723 {
7724 (::windows::core::Interface::vtable(self).base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
7725 }
7726 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
7727 #[cfg(feature = "Win32_Graphics_Direct3D")]
7728 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
7729 (::windows::core::Interface::vtable(self).base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
7730 }
7731 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
7732 (::windows::core::Interface::vtable(self).base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
7733 }
7734 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7735 #[cfg(feature = "Win32_Foundation")]
7736 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
7737 (::windows::core::Interface::vtable(self).base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7738 }
7739 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
7740 (::windows::core::Interface::vtable(self).base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7741 }
7742 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
7743 (::windows::core::Interface::vtable(self).base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
7744 }
7745 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
7746 where
7747 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
7748 {
7749 (::windows::core::Interface::vtable(self).base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
7750 }
7751 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
7752 (::windows::core::Interface::vtable(self).base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
7753 }
7754 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
7755 where
7756 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
7757 {
7758 (::windows::core::Interface::vtable(self).base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
7759 }
7760 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
7761 (::windows::core::Interface::vtable(self).base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
7762 }
7763 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
7764 where
7765 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
7766 {
7767 (::windows::core::Interface::vtable(self).base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
7768 }
7769 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
7770 where
7771 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
7772 {
7773 (::windows::core::Interface::vtable(self).base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
7774 }
7775 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
7776 (::windows::core::Interface::vtable(self).base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
7777 }
7778 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
7779 (::windows::core::Interface::vtable(self).base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
7780 }
7781 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
7782 (::windows::core::Interface::vtable(self).base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
7783 }
7784 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
7785 (::windows::core::Interface::vtable(self).base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
7786 }
7787 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
7788 (::windows::core::Interface::vtable(self).base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
7789 }
7790 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
7791 (::windows::core::Interface::vtable(self).base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
7792 }
7793 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
7794 (::windows::core::Interface::vtable(self).base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7795 }
7796 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
7797 (::windows::core::Interface::vtable(self).base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7798 }
7799 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
7800 (::windows::core::Interface::vtable(self).base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7801 }
7802 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
7803 (::windows::core::Interface::vtable(self).base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7804 }
7805 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
7806 (::windows::core::Interface::vtable(self).base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7807 }
7808 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
7809 (::windows::core::Interface::vtable(self).base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
7810 }
7811 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
7812 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
7813 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
7814 (::windows::core::Interface::vtable(self).base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
7815 }
7816 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
7817 (::windows::core::Interface::vtable(self).base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7818 }
7819 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
7820 (::windows::core::Interface::vtable(self).base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7821 }
7822 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7823 #[cfg(feature = "Win32_Foundation")]
7824 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
7825 where
7826 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
7827 {
7828 (::windows::core::Interface::vtable(self).base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
7829 }
7830 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7831 #[cfg(feature = "Win32_Foundation")]
7832 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
7833 (::windows::core::Interface::vtable(self).base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7834 }
7835 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7836 #[cfg(feature = "Win32_Foundation")]
7837 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
7838 (::windows::core::Interface::vtable(self).base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
7839 }
7840 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7841 #[cfg(feature = "Win32_Foundation")]
7842 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
7843 where
7844 P0: ::windows::core::IntoParam<ID3D12Resource>,
7845 {
7846 (::windows::core::Interface::vtable(self).base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7847 }
7848 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7849 #[cfg(feature = "Win32_Foundation")]
7850 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
7851 where
7852 P0: ::windows::core::IntoParam<ID3D12Resource>,
7853 {
7854 (::windows::core::Interface::vtable(self).base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
7855 }
7856 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
7857 #[cfg(feature = "Win32_Foundation")]
7858 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
7859 where
7860 P0: ::windows::core::IntoParam<ID3D12Resource>,
7861 {
7862 (::windows::core::Interface::vtable(self).base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
7863 }
7864 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
7865 where
7866 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
7867 {
7868 (::windows::core::Interface::vtable(self).base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
7869 }
7870 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
7871 where
7872 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
7873 {
7874 (::windows::core::Interface::vtable(self).base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
7875 }
7876 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
7877 where
7878 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
7879 P1: ::windows::core::IntoParam<ID3D12Resource>,
7880 {
7881 (::windows::core::Interface::vtable(self).base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
7882 }
7883 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
7884 where
7885 P0: ::windows::core::IntoParam<ID3D12Resource>,
7886 {
7887 (::windows::core::Interface::vtable(self).base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
7888 }
7889 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
7890 (::windows::core::Interface::vtable(self).base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
7891 }
7892 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
7893 (::windows::core::Interface::vtable(self).base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
7894 }
7895 pub unsafe fn EndEvent(&self) {
7896 (::windows::core::Interface::vtable(self).base__.EndEvent)(::windows::core::Interface::as_raw(self))
7897 }
7898 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
7899 where
7900 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
7901 P1: ::windows::core::IntoParam<ID3D12Resource>,
7902 P2: ::windows::core::IntoParam<ID3D12Resource>,
7903 {
7904 (::windows::core::Interface::vtable(self).base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
7905 }
7906 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
7907 where
7908 P0: ::windows::core::IntoParam<ID3D12Resource>,
7909 P1: ::windows::core::IntoParam<ID3D12Resource>,
7910 {
7911 (::windows::core::Interface::vtable(self).AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
7912 }
7913 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
7914 where
7915 P0: ::windows::core::IntoParam<ID3D12Resource>,
7916 P1: ::windows::core::IntoParam<ID3D12Resource>,
7917 {
7918 (::windows::core::Interface::vtable(self).AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
7919 }
7920 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
7921 (::windows::core::Interface::vtable(self).OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
7922 }
7923 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
7924 (::windows::core::Interface::vtable(self).SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
7925 }
7926 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
7927 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7928 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
7929 where
7930 P0: ::windows::core::IntoParam<ID3D12Resource>,
7931 P1: ::windows::core::IntoParam<ID3D12Resource>,
7932 {
7933 (::windows::core::Interface::vtable(self).ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
7934 }
7935 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
7936 (::windows::core::Interface::vtable(self).SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
7937 }
7938}
7939::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList1, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList);
7940impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList1 {
7941 fn eq(&self, other: &Self) -> bool {
7942 self.0 == other.0
7943 }
7944}
7945impl ::core::cmp::Eq for ID3D12GraphicsCommandList1 {}
7946impl ::core::fmt::Debug for ID3D12GraphicsCommandList1 {
7947 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
7948 f.debug_tuple("ID3D12GraphicsCommandList1").field(&self.0).finish()
7949 }
7950}
7951unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList1 {}
7952unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList1 {}
7953unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList1 {
7954 type Vtable = ID3D12GraphicsCommandList1_Vtbl;
7955}
7956impl ::core::clone::Clone for ID3D12GraphicsCommandList1 {
7957 fn clone(&self) -> Self {
7958 Self(self.0.clone())
7959 }
7960}
7961unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList1 {
7962 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x553103fb_1fe7_4557_bb38_946d7d0e7ca7);
7963}
7964#[repr(C)]
7965#[doc(hidden)]
7966pub struct ID3D12GraphicsCommandList1_Vtbl {
7967 pub base__: ID3D12GraphicsCommandList_Vtbl,
7968 pub AtomicCopyBufferUINT: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstbuffer: *mut ::core::ffi::c_void, dstoffset: u64, psrcbuffer: *mut ::core::ffi::c_void, srcoffset: u64, dependencies: u32, ppdependentresources: *const *mut ::core::ffi::c_void, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64),
7969 pub AtomicCopyBufferUINT64: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstbuffer: *mut ::core::ffi::c_void, dstoffset: u64, psrcbuffer: *mut ::core::ffi::c_void, srcoffset: u64, dependencies: u32, ppdependentresources: *const *mut ::core::ffi::c_void, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64),
7970 pub OMSetDepthBounds: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, min: f32, max: f32),
7971 pub SetSamplePositions: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION),
7972 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
7973 pub ResolveSubresourceRegion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstresource: *mut ::core::ffi::c_void, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: *mut ::core::ffi::c_void, srcsubresource: u32, psrcrect: *const super::super::Foundation::RECT, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE),
7974 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
7975 ResolveSubresourceRegion: usize,
7976 pub SetViewInstanceMask: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, mask: u32),
7977}
7978#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
7979#[repr(transparent)]
7980pub struct ID3D12GraphicsCommandList2(::windows::core::IUnknown);
7981impl ID3D12GraphicsCommandList2 {
7982 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7983 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
7984 }
7985 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
7986 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
7987 }
7988 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
7989 where
7990 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
7991 {
7992 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
7993 }
7994 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
7995 where
7996 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
7997 {
7998 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
7999 }
8000 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
8001 where
8002 T: ::windows::core::ComInterface,
8003 {
8004 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
8005 }
8006 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
8007 (::windows::core::Interface::vtable(self).base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
8008 }
8009 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
8010 (::windows::core::Interface::vtable(self).base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
8011 }
8012 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
8013 where
8014 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
8015 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
8016 {
8017 (::windows::core::Interface::vtable(self).base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
8018 }
8019 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
8020 where
8021 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
8022 {
8023 (::windows::core::Interface::vtable(self).base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
8024 }
8025 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
8026 (::windows::core::Interface::vtable(self).base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
8027 }
8028 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
8029 (::windows::core::Interface::vtable(self).base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
8030 }
8031 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
8032 (::windows::core::Interface::vtable(self).base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
8033 }
8034 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
8035 where
8036 P0: ::windows::core::IntoParam<ID3D12Resource>,
8037 P1: ::windows::core::IntoParam<ID3D12Resource>,
8038 {
8039 (::windows::core::Interface::vtable(self).base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
8040 }
8041 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8042 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8043 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
8044 (::windows::core::Interface::vtable(self).base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
8045 }
8046 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
8047 where
8048 P0: ::windows::core::IntoParam<ID3D12Resource>,
8049 P1: ::windows::core::IntoParam<ID3D12Resource>,
8050 {
8051 (::windows::core::Interface::vtable(self).base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
8052 }
8053 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8054 #[cfg(feature = "Win32_Foundation")]
8055 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
8056 where
8057 P0: ::windows::core::IntoParam<ID3D12Resource>,
8058 P1: ::windows::core::IntoParam<ID3D12Resource>,
8059 {
8060 (::windows::core::Interface::vtable(self).base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
8061 }
8062 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8063 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8064 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
8065 where
8066 P0: ::windows::core::IntoParam<ID3D12Resource>,
8067 P1: ::windows::core::IntoParam<ID3D12Resource>,
8068 {
8069 (::windows::core::Interface::vtable(self).base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
8070 }
8071 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
8072 #[cfg(feature = "Win32_Graphics_Direct3D")]
8073 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
8074 (::windows::core::Interface::vtable(self).base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
8075 }
8076 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
8077 (::windows::core::Interface::vtable(self).base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
8078 }
8079 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8080 #[cfg(feature = "Win32_Foundation")]
8081 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
8082 (::windows::core::Interface::vtable(self).base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8083 }
8084 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
8085 (::windows::core::Interface::vtable(self).base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8086 }
8087 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
8088 (::windows::core::Interface::vtable(self).base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
8089 }
8090 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
8091 where
8092 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
8093 {
8094 (::windows::core::Interface::vtable(self).base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
8095 }
8096 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
8097 (::windows::core::Interface::vtable(self).base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
8098 }
8099 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
8100 where
8101 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
8102 {
8103 (::windows::core::Interface::vtable(self).base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
8104 }
8105 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
8106 (::windows::core::Interface::vtable(self).base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
8107 }
8108 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
8109 where
8110 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
8111 {
8112 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
8113 }
8114 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
8115 where
8116 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
8117 {
8118 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
8119 }
8120 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
8121 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
8122 }
8123 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
8124 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
8125 }
8126 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
8127 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
8128 }
8129 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
8130 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
8131 }
8132 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
8133 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
8134 }
8135 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
8136 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
8137 }
8138 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
8139 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8140 }
8141 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
8142 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8143 }
8144 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
8145 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8146 }
8147 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
8148 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8149 }
8150 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
8151 (::windows::core::Interface::vtable(self).base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8152 }
8153 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
8154 (::windows::core::Interface::vtable(self).base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8155 }
8156 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8157 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8158 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
8159 (::windows::core::Interface::vtable(self).base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
8160 }
8161 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
8162 (::windows::core::Interface::vtable(self).base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8163 }
8164 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
8165 (::windows::core::Interface::vtable(self).base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8166 }
8167 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8168 #[cfg(feature = "Win32_Foundation")]
8169 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
8170 where
8171 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
8172 {
8173 (::windows::core::Interface::vtable(self).base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
8174 }
8175 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8176 #[cfg(feature = "Win32_Foundation")]
8177 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
8178 (::windows::core::Interface::vtable(self).base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8179 }
8180 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8181 #[cfg(feature = "Win32_Foundation")]
8182 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
8183 (::windows::core::Interface::vtable(self).base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8184 }
8185 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8186 #[cfg(feature = "Win32_Foundation")]
8187 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
8188 where
8189 P0: ::windows::core::IntoParam<ID3D12Resource>,
8190 {
8191 (::windows::core::Interface::vtable(self).base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8192 }
8193 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8194 #[cfg(feature = "Win32_Foundation")]
8195 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
8196 where
8197 P0: ::windows::core::IntoParam<ID3D12Resource>,
8198 {
8199 (::windows::core::Interface::vtable(self).base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8200 }
8201 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8202 #[cfg(feature = "Win32_Foundation")]
8203 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
8204 where
8205 P0: ::windows::core::IntoParam<ID3D12Resource>,
8206 {
8207 (::windows::core::Interface::vtable(self).base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
8208 }
8209 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
8210 where
8211 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8212 {
8213 (::windows::core::Interface::vtable(self).base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
8214 }
8215 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
8216 where
8217 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8218 {
8219 (::windows::core::Interface::vtable(self).base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
8220 }
8221 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
8222 where
8223 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8224 P1: ::windows::core::IntoParam<ID3D12Resource>,
8225 {
8226 (::windows::core::Interface::vtable(self).base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
8227 }
8228 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
8229 where
8230 P0: ::windows::core::IntoParam<ID3D12Resource>,
8231 {
8232 (::windows::core::Interface::vtable(self).base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
8233 }
8234 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
8235 (::windows::core::Interface::vtable(self).base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
8236 }
8237 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
8238 (::windows::core::Interface::vtable(self).base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
8239 }
8240 pub unsafe fn EndEvent(&self) {
8241 (::windows::core::Interface::vtable(self).base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
8242 }
8243 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
8244 where
8245 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
8246 P1: ::windows::core::IntoParam<ID3D12Resource>,
8247 P2: ::windows::core::IntoParam<ID3D12Resource>,
8248 {
8249 (::windows::core::Interface::vtable(self).base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
8250 }
8251 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
8252 where
8253 P0: ::windows::core::IntoParam<ID3D12Resource>,
8254 P1: ::windows::core::IntoParam<ID3D12Resource>,
8255 {
8256 (::windows::core::Interface::vtable(self).base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
8257 }
8258 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
8259 where
8260 P0: ::windows::core::IntoParam<ID3D12Resource>,
8261 P1: ::windows::core::IntoParam<ID3D12Resource>,
8262 {
8263 (::windows::core::Interface::vtable(self).base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
8264 }
8265 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
8266 (::windows::core::Interface::vtable(self).base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
8267 }
8268 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
8269 (::windows::core::Interface::vtable(self).base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
8270 }
8271 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
8272 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
8273 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
8274 where
8275 P0: ::windows::core::IntoParam<ID3D12Resource>,
8276 P1: ::windows::core::IntoParam<ID3D12Resource>,
8277 {
8278 (::windows::core::Interface::vtable(self).base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
8279 }
8280 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
8281 (::windows::core::Interface::vtable(self).base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
8282 }
8283 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
8284 (::windows::core::Interface::vtable(self).WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
8285 }
8286}
8287::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList2, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1);
8288impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList2 {
8289 fn eq(&self, other: &Self) -> bool {
8290 self.0 == other.0
8291 }
8292}
8293impl ::core::cmp::Eq for ID3D12GraphicsCommandList2 {}
8294impl ::core::fmt::Debug for ID3D12GraphicsCommandList2 {
8295 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
8296 f.debug_tuple("ID3D12GraphicsCommandList2").field(&self.0).finish()
8297 }
8298}
8299unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList2 {}
8300unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList2 {}
8301unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList2 {
8302 type Vtable = ID3D12GraphicsCommandList2_Vtbl;
8303}
8304impl ::core::clone::Clone for ID3D12GraphicsCommandList2 {
8305 fn clone(&self) -> Self {
8306 Self(self.0.clone())
8307 }
8308}
8309unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList2 {
8310 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x38c3e585_ff17_412c_9150_4fc6f9d72a28);
8311}
8312#[repr(C)]
8313#[doc(hidden)]
8314pub struct ID3D12GraphicsCommandList2_Vtbl {
8315 pub base__: ID3D12GraphicsCommandList1_Vtbl,
8316 pub WriteBufferImmediate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: *const D3D12_WRITEBUFFERIMMEDIATE_MODE),
8317}
8318#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
8319#[repr(transparent)]
8320pub struct ID3D12GraphicsCommandList3(::windows::core::IUnknown);
8321impl ID3D12GraphicsCommandList3 {
8322 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
8323 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
8324 }
8325 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
8326 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
8327 }
8328 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
8329 where
8330 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
8331 {
8332 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
8333 }
8334 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
8335 where
8336 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
8337 {
8338 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
8339 }
8340 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
8341 where
8342 T: ::windows::core::ComInterface,
8343 {
8344 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
8345 }
8346 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
8347 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
8348 }
8349 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
8350 (::windows::core::Interface::vtable(self).base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
8351 }
8352 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
8353 where
8354 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
8355 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
8356 {
8357 (::windows::core::Interface::vtable(self).base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
8358 }
8359 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
8360 where
8361 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
8362 {
8363 (::windows::core::Interface::vtable(self).base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
8364 }
8365 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
8366 (::windows::core::Interface::vtable(self).base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
8367 }
8368 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
8369 (::windows::core::Interface::vtable(self).base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
8370 }
8371 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
8372 (::windows::core::Interface::vtable(self).base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
8373 }
8374 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
8375 where
8376 P0: ::windows::core::IntoParam<ID3D12Resource>,
8377 P1: ::windows::core::IntoParam<ID3D12Resource>,
8378 {
8379 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
8380 }
8381 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8382 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8383 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
8384 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
8385 }
8386 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
8387 where
8388 P0: ::windows::core::IntoParam<ID3D12Resource>,
8389 P1: ::windows::core::IntoParam<ID3D12Resource>,
8390 {
8391 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
8392 }
8393 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8394 #[cfg(feature = "Win32_Foundation")]
8395 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
8396 where
8397 P0: ::windows::core::IntoParam<ID3D12Resource>,
8398 P1: ::windows::core::IntoParam<ID3D12Resource>,
8399 {
8400 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
8401 }
8402 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8403 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8404 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
8405 where
8406 P0: ::windows::core::IntoParam<ID3D12Resource>,
8407 P1: ::windows::core::IntoParam<ID3D12Resource>,
8408 {
8409 (::windows::core::Interface::vtable(self).base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
8410 }
8411 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
8412 #[cfg(feature = "Win32_Graphics_Direct3D")]
8413 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
8414 (::windows::core::Interface::vtable(self).base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
8415 }
8416 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
8417 (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
8418 }
8419 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8420 #[cfg(feature = "Win32_Foundation")]
8421 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
8422 (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8423 }
8424 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
8425 (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8426 }
8427 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
8428 (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
8429 }
8430 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
8431 where
8432 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
8433 {
8434 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
8435 }
8436 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
8437 (::windows::core::Interface::vtable(self).base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
8438 }
8439 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
8440 where
8441 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
8442 {
8443 (::windows::core::Interface::vtable(self).base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
8444 }
8445 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
8446 (::windows::core::Interface::vtable(self).base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
8447 }
8448 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
8449 where
8450 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
8451 {
8452 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
8453 }
8454 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
8455 where
8456 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
8457 {
8458 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
8459 }
8460 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
8461 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
8462 }
8463 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
8464 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
8465 }
8466 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
8467 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
8468 }
8469 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
8470 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
8471 }
8472 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
8473 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
8474 }
8475 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
8476 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
8477 }
8478 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
8479 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8480 }
8481 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
8482 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8483 }
8484 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
8485 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8486 }
8487 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
8488 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8489 }
8490 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
8491 (::windows::core::Interface::vtable(self).base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8492 }
8493 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
8494 (::windows::core::Interface::vtable(self).base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8495 }
8496 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8497 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8498 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
8499 (::windows::core::Interface::vtable(self).base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
8500 }
8501 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
8502 (::windows::core::Interface::vtable(self).base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8503 }
8504 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
8505 (::windows::core::Interface::vtable(self).base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8506 }
8507 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8508 #[cfg(feature = "Win32_Foundation")]
8509 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
8510 where
8511 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
8512 {
8513 (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
8514 }
8515 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8516 #[cfg(feature = "Win32_Foundation")]
8517 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
8518 (::windows::core::Interface::vtable(self).base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8519 }
8520 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8521 #[cfg(feature = "Win32_Foundation")]
8522 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
8523 (::windows::core::Interface::vtable(self).base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8524 }
8525 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8526 #[cfg(feature = "Win32_Foundation")]
8527 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
8528 where
8529 P0: ::windows::core::IntoParam<ID3D12Resource>,
8530 {
8531 (::windows::core::Interface::vtable(self).base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8532 }
8533 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8534 #[cfg(feature = "Win32_Foundation")]
8535 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
8536 where
8537 P0: ::windows::core::IntoParam<ID3D12Resource>,
8538 {
8539 (::windows::core::Interface::vtable(self).base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8540 }
8541 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8542 #[cfg(feature = "Win32_Foundation")]
8543 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
8544 where
8545 P0: ::windows::core::IntoParam<ID3D12Resource>,
8546 {
8547 (::windows::core::Interface::vtable(self).base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
8548 }
8549 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
8550 where
8551 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8552 {
8553 (::windows::core::Interface::vtable(self).base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
8554 }
8555 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
8556 where
8557 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8558 {
8559 (::windows::core::Interface::vtable(self).base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
8560 }
8561 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
8562 where
8563 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8564 P1: ::windows::core::IntoParam<ID3D12Resource>,
8565 {
8566 (::windows::core::Interface::vtable(self).base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
8567 }
8568 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
8569 where
8570 P0: ::windows::core::IntoParam<ID3D12Resource>,
8571 {
8572 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
8573 }
8574 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
8575 (::windows::core::Interface::vtable(self).base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
8576 }
8577 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
8578 (::windows::core::Interface::vtable(self).base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
8579 }
8580 pub unsafe fn EndEvent(&self) {
8581 (::windows::core::Interface::vtable(self).base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
8582 }
8583 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
8584 where
8585 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
8586 P1: ::windows::core::IntoParam<ID3D12Resource>,
8587 P2: ::windows::core::IntoParam<ID3D12Resource>,
8588 {
8589 (::windows::core::Interface::vtable(self).base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
8590 }
8591 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
8592 where
8593 P0: ::windows::core::IntoParam<ID3D12Resource>,
8594 P1: ::windows::core::IntoParam<ID3D12Resource>,
8595 {
8596 (::windows::core::Interface::vtable(self).base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
8597 }
8598 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
8599 where
8600 P0: ::windows::core::IntoParam<ID3D12Resource>,
8601 P1: ::windows::core::IntoParam<ID3D12Resource>,
8602 {
8603 (::windows::core::Interface::vtable(self).base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
8604 }
8605 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
8606 (::windows::core::Interface::vtable(self).base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
8607 }
8608 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
8609 (::windows::core::Interface::vtable(self).base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
8610 }
8611 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
8612 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
8613 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
8614 where
8615 P0: ::windows::core::IntoParam<ID3D12Resource>,
8616 P1: ::windows::core::IntoParam<ID3D12Resource>,
8617 {
8618 (::windows::core::Interface::vtable(self).base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
8619 }
8620 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
8621 (::windows::core::Interface::vtable(self).base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
8622 }
8623 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
8624 (::windows::core::Interface::vtable(self).base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
8625 }
8626 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
8627 where
8628 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
8629 {
8630 (::windows::core::Interface::vtable(self).SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
8631 }
8632}
8633::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList3, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2);
8634impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList3 {
8635 fn eq(&self, other: &Self) -> bool {
8636 self.0 == other.0
8637 }
8638}
8639impl ::core::cmp::Eq for ID3D12GraphicsCommandList3 {}
8640impl ::core::fmt::Debug for ID3D12GraphicsCommandList3 {
8641 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
8642 f.debug_tuple("ID3D12GraphicsCommandList3").field(&self.0).finish()
8643 }
8644}
8645unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList3 {}
8646unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList3 {}
8647unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList3 {
8648 type Vtable = ID3D12GraphicsCommandList3_Vtbl;
8649}
8650impl ::core::clone::Clone for ID3D12GraphicsCommandList3 {
8651 fn clone(&self) -> Self {
8652 Self(self.0.clone())
8653 }
8654}
8655unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList3 {
8656 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6fda83a7_b84c_4e38_9ac8_c7bd22016b3d);
8657}
8658#[repr(C)]
8659#[doc(hidden)]
8660pub struct ID3D12GraphicsCommandList3_Vtbl {
8661 pub base__: ID3D12GraphicsCommandList2_Vtbl,
8662 pub SetProtectedResourceSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pprotectedresourcesession: *mut ::core::ffi::c_void),
8663}
8664#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
8665#[repr(transparent)]
8666pub struct ID3D12GraphicsCommandList4(::windows::core::IUnknown);
8667impl ID3D12GraphicsCommandList4 {
8668 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
8669 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
8670 }
8671 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
8672 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
8673 }
8674 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
8675 where
8676 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
8677 {
8678 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
8679 }
8680 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
8681 where
8682 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
8683 {
8684 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
8685 }
8686 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
8687 where
8688 T: ::windows::core::ComInterface,
8689 {
8690 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
8691 }
8692 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
8693 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
8694 }
8695 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
8696 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
8697 }
8698 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
8699 where
8700 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
8701 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
8702 {
8703 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
8704 }
8705 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
8706 where
8707 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
8708 {
8709 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
8710 }
8711 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
8712 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
8713 }
8714 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
8715 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
8716 }
8717 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
8718 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
8719 }
8720 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
8721 where
8722 P0: ::windows::core::IntoParam<ID3D12Resource>,
8723 P1: ::windows::core::IntoParam<ID3D12Resource>,
8724 {
8725 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
8726 }
8727 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8728 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8729 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
8730 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
8731 }
8732 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
8733 where
8734 P0: ::windows::core::IntoParam<ID3D12Resource>,
8735 P1: ::windows::core::IntoParam<ID3D12Resource>,
8736 {
8737 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
8738 }
8739 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8740 #[cfg(feature = "Win32_Foundation")]
8741 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
8742 where
8743 P0: ::windows::core::IntoParam<ID3D12Resource>,
8744 P1: ::windows::core::IntoParam<ID3D12Resource>,
8745 {
8746 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
8747 }
8748 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8749 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8750 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
8751 where
8752 P0: ::windows::core::IntoParam<ID3D12Resource>,
8753 P1: ::windows::core::IntoParam<ID3D12Resource>,
8754 {
8755 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
8756 }
8757 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
8758 #[cfg(feature = "Win32_Graphics_Direct3D")]
8759 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
8760 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
8761 }
8762 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
8763 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
8764 }
8765 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8766 #[cfg(feature = "Win32_Foundation")]
8767 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
8768 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8769 }
8770 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
8771 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8772 }
8773 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
8774 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
8775 }
8776 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
8777 where
8778 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
8779 {
8780 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
8781 }
8782 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
8783 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
8784 }
8785 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
8786 where
8787 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
8788 {
8789 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
8790 }
8791 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
8792 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
8793 }
8794 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
8795 where
8796 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
8797 {
8798 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
8799 }
8800 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
8801 where
8802 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
8803 {
8804 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
8805 }
8806 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
8807 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
8808 }
8809 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
8810 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
8811 }
8812 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
8813 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
8814 }
8815 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
8816 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
8817 }
8818 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
8819 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
8820 }
8821 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
8822 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
8823 }
8824 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
8825 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8826 }
8827 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
8828 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8829 }
8830 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
8831 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8832 }
8833 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
8834 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8835 }
8836 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
8837 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8838 }
8839 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
8840 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
8841 }
8842 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8843 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
8844 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
8845 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
8846 }
8847 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
8848 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8849 }
8850 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
8851 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8852 }
8853 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8854 #[cfg(feature = "Win32_Foundation")]
8855 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
8856 where
8857 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
8858 {
8859 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
8860 }
8861 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8862 #[cfg(feature = "Win32_Foundation")]
8863 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
8864 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8865 }
8866 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8867 #[cfg(feature = "Win32_Foundation")]
8868 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
8869 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
8870 }
8871 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8872 #[cfg(feature = "Win32_Foundation")]
8873 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
8874 where
8875 P0: ::windows::core::IntoParam<ID3D12Resource>,
8876 {
8877 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8878 }
8879 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8880 #[cfg(feature = "Win32_Foundation")]
8881 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
8882 where
8883 P0: ::windows::core::IntoParam<ID3D12Resource>,
8884 {
8885 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
8886 }
8887 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
8888 #[cfg(feature = "Win32_Foundation")]
8889 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
8890 where
8891 P0: ::windows::core::IntoParam<ID3D12Resource>,
8892 {
8893 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
8894 }
8895 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
8896 where
8897 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8898 {
8899 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
8900 }
8901 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
8902 where
8903 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8904 {
8905 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
8906 }
8907 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
8908 where
8909 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
8910 P1: ::windows::core::IntoParam<ID3D12Resource>,
8911 {
8912 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
8913 }
8914 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
8915 where
8916 P0: ::windows::core::IntoParam<ID3D12Resource>,
8917 {
8918 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
8919 }
8920 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
8921 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
8922 }
8923 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
8924 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
8925 }
8926 pub unsafe fn EndEvent(&self) {
8927 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
8928 }
8929 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
8930 where
8931 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
8932 P1: ::windows::core::IntoParam<ID3D12Resource>,
8933 P2: ::windows::core::IntoParam<ID3D12Resource>,
8934 {
8935 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
8936 }
8937 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
8938 where
8939 P0: ::windows::core::IntoParam<ID3D12Resource>,
8940 P1: ::windows::core::IntoParam<ID3D12Resource>,
8941 {
8942 (::windows::core::Interface::vtable(self).base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
8943 }
8944 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
8945 where
8946 P0: ::windows::core::IntoParam<ID3D12Resource>,
8947 P1: ::windows::core::IntoParam<ID3D12Resource>,
8948 {
8949 (::windows::core::Interface::vtable(self).base__.base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
8950 }
8951 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
8952 (::windows::core::Interface::vtable(self).base__.base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
8953 }
8954 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
8955 (::windows::core::Interface::vtable(self).base__.base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
8956 }
8957 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
8958 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
8959 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
8960 where
8961 P0: ::windows::core::IntoParam<ID3D12Resource>,
8962 P1: ::windows::core::IntoParam<ID3D12Resource>,
8963 {
8964 (::windows::core::Interface::vtable(self).base__.base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
8965 }
8966 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
8967 (::windows::core::Interface::vtable(self).base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
8968 }
8969 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
8970 (::windows::core::Interface::vtable(self).base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
8971 }
8972 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
8973 where
8974 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
8975 {
8976 (::windows::core::Interface::vtable(self).base__.SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
8977 }
8978 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
8979 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
8980 pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<*const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) {
8981 (::windows::core::Interface::vtable(self).BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil.unwrap_or(::std::ptr::null())), flags)
8982 }
8983 pub unsafe fn EndRenderPass(&self) {
8984 (::windows::core::Interface::vtable(self).EndRenderPass)(::windows::core::Interface::as_raw(self))
8985 }
8986 pub unsafe fn InitializeMetaCommand<P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, initializationparametersdatasizeinbytes: usize)
8987 where
8988 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
8989 {
8990 (::windows::core::Interface::vtable(self).InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pinitializationparametersdata.unwrap_or(::std::ptr::null())), initializationparametersdatasizeinbytes)
8991 }
8992 pub unsafe fn ExecuteMetaCommand<P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, executionparametersdatasizeinbytes: usize)
8993 where
8994 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
8995 {
8996 (::windows::core::Interface::vtable(self).ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pexecutionparametersdata.unwrap_or(::std::ptr::null())), executionparametersdatasizeinbytes)
8997 }
8998 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
8999 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9000 pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) {
9001 (::windows::core::Interface::vtable(self).BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), pdesc, ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9002 }
9003 pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) {
9004 (::windows::core::Interface::vtable(self).EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), pdesc, psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr()))
9005 }
9006 pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) {
9007 (::windows::core::Interface::vtable(self).CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode)
9008 }
9009 pub unsafe fn SetPipelineState1<P0>(&self, pstateobject: P0)
9010 where
9011 P0: ::windows::core::IntoParam<ID3D12StateObject>,
9012 {
9013 (::windows::core::Interface::vtable(self).SetPipelineState1)(::windows::core::Interface::as_raw(self), pstateobject.into_param().abi())
9014 }
9015 pub unsafe fn DispatchRays(&self, pdesc: *const D3D12_DISPATCH_RAYS_DESC) {
9016 (::windows::core::Interface::vtable(self).DispatchRays)(::windows::core::Interface::as_raw(self), pdesc)
9017 }
9018}
9019::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList4, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2, ID3D12GraphicsCommandList3);
9020impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList4 {
9021 fn eq(&self, other: &Self) -> bool {
9022 self.0 == other.0
9023 }
9024}
9025impl ::core::cmp::Eq for ID3D12GraphicsCommandList4 {}
9026impl ::core::fmt::Debug for ID3D12GraphicsCommandList4 {
9027 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9028 f.debug_tuple("ID3D12GraphicsCommandList4").field(&self.0).finish()
9029 }
9030}
9031unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList4 {}
9032unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList4 {}
9033unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList4 {
9034 type Vtable = ID3D12GraphicsCommandList4_Vtbl;
9035}
9036impl ::core::clone::Clone for ID3D12GraphicsCommandList4 {
9037 fn clone(&self) -> Self {
9038 Self(self.0.clone())
9039 }
9040}
9041unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList4 {
9042 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8754318e_d3a9_4541_98cf_645b50dc4874);
9043}
9044#[repr(C)]
9045#[doc(hidden)]
9046pub struct ID3D12GraphicsCommandList4_Vtbl {
9047 pub base__: ID3D12GraphicsCommandList3_Vtbl,
9048 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
9049 pub BeginRenderPass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numrendertargets: u32, prendertargets: *const D3D12_RENDER_PASS_RENDER_TARGET_DESC, pdepthstencil: *const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC, flags: D3D12_RENDER_PASS_FLAGS),
9050 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
9051 BeginRenderPass: usize,
9052 pub EndRenderPass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
9053 pub InitializeMetaCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmetacommand: *mut ::core::ffi::c_void, pinitializationparametersdata: *const ::core::ffi::c_void, initializationparametersdatasizeinbytes: usize),
9054 pub ExecuteMetaCommand: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pmetacommand: *mut ::core::ffi::c_void, pexecutionparametersdata: *const ::core::ffi::c_void, executionparametersdatasizeinbytes: usize),
9055 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9056 pub BuildRaytracingAccelerationStructure: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, numpostbuildinfodescs: u32, ppostbuildinfodescs: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC),
9057 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
9058 BuildRaytracingAccelerationStructure: usize,
9059 pub EmitRaytracingAccelerationStructurePostbuildInfo: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, numsourceaccelerationstructures: u32, psourceaccelerationstructuredata: *const u64),
9060 pub CopyRaytracingAccelerationStructure: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE),
9061 pub SetPipelineState1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pstateobject: *mut ::core::ffi::c_void),
9062 pub DispatchRays: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *const D3D12_DISPATCH_RAYS_DESC),
9063}
9064#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
9065#[repr(transparent)]
9066pub struct ID3D12GraphicsCommandList5(::windows::core::IUnknown);
9067impl ID3D12GraphicsCommandList5 {
9068 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
9069 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
9070 }
9071 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
9072 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
9073 }
9074 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
9075 where
9076 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
9077 {
9078 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
9079 }
9080 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
9081 where
9082 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
9083 {
9084 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
9085 }
9086 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
9087 where
9088 T: ::windows::core::ComInterface,
9089 {
9090 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
9091 }
9092 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
9093 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
9094 }
9095 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
9096 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
9097 }
9098 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
9099 where
9100 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
9101 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
9102 {
9103 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
9104 }
9105 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
9106 where
9107 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
9108 {
9109 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
9110 }
9111 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
9112 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
9113 }
9114 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
9115 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
9116 }
9117 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
9118 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
9119 }
9120 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
9121 where
9122 P0: ::windows::core::IntoParam<ID3D12Resource>,
9123 P1: ::windows::core::IntoParam<ID3D12Resource>,
9124 {
9125 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
9126 }
9127 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9128 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9129 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
9130 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
9131 }
9132 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
9133 where
9134 P0: ::windows::core::IntoParam<ID3D12Resource>,
9135 P1: ::windows::core::IntoParam<ID3D12Resource>,
9136 {
9137 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
9138 }
9139 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9140 #[cfg(feature = "Win32_Foundation")]
9141 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
9142 where
9143 P0: ::windows::core::IntoParam<ID3D12Resource>,
9144 P1: ::windows::core::IntoParam<ID3D12Resource>,
9145 {
9146 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
9147 }
9148 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9149 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9150 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
9151 where
9152 P0: ::windows::core::IntoParam<ID3D12Resource>,
9153 P1: ::windows::core::IntoParam<ID3D12Resource>,
9154 {
9155 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
9156 }
9157 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
9158 #[cfg(feature = "Win32_Graphics_Direct3D")]
9159 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
9160 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
9161 }
9162 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
9163 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
9164 }
9165 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9166 #[cfg(feature = "Win32_Foundation")]
9167 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
9168 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9169 }
9170 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
9171 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9172 }
9173 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
9174 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
9175 }
9176 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
9177 where
9178 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
9179 {
9180 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
9181 }
9182 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
9183 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
9184 }
9185 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
9186 where
9187 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
9188 {
9189 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
9190 }
9191 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
9192 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
9193 }
9194 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
9195 where
9196 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
9197 {
9198 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
9199 }
9200 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
9201 where
9202 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
9203 {
9204 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
9205 }
9206 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
9207 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
9208 }
9209 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
9210 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
9211 }
9212 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
9213 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
9214 }
9215 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
9216 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
9217 }
9218 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
9219 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
9220 }
9221 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
9222 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
9223 }
9224 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
9225 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9226 }
9227 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
9228 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9229 }
9230 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
9231 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9232 }
9233 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
9234 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9235 }
9236 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
9237 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9238 }
9239 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
9240 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9241 }
9242 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9243 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9244 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
9245 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
9246 }
9247 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
9248 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9249 }
9250 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
9251 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9252 }
9253 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9254 #[cfg(feature = "Win32_Foundation")]
9255 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
9256 where
9257 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
9258 {
9259 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
9260 }
9261 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9262 #[cfg(feature = "Win32_Foundation")]
9263 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
9264 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9265 }
9266 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9267 #[cfg(feature = "Win32_Foundation")]
9268 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
9269 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9270 }
9271 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9272 #[cfg(feature = "Win32_Foundation")]
9273 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
9274 where
9275 P0: ::windows::core::IntoParam<ID3D12Resource>,
9276 {
9277 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9278 }
9279 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9280 #[cfg(feature = "Win32_Foundation")]
9281 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
9282 where
9283 P0: ::windows::core::IntoParam<ID3D12Resource>,
9284 {
9285 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9286 }
9287 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9288 #[cfg(feature = "Win32_Foundation")]
9289 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
9290 where
9291 P0: ::windows::core::IntoParam<ID3D12Resource>,
9292 {
9293 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
9294 }
9295 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
9296 where
9297 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
9298 {
9299 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
9300 }
9301 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
9302 where
9303 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
9304 {
9305 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
9306 }
9307 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
9308 where
9309 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
9310 P1: ::windows::core::IntoParam<ID3D12Resource>,
9311 {
9312 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
9313 }
9314 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
9315 where
9316 P0: ::windows::core::IntoParam<ID3D12Resource>,
9317 {
9318 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
9319 }
9320 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
9321 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
9322 }
9323 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
9324 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
9325 }
9326 pub unsafe fn EndEvent(&self) {
9327 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
9328 }
9329 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
9330 where
9331 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
9332 P1: ::windows::core::IntoParam<ID3D12Resource>,
9333 P2: ::windows::core::IntoParam<ID3D12Resource>,
9334 {
9335 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
9336 }
9337 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
9338 where
9339 P0: ::windows::core::IntoParam<ID3D12Resource>,
9340 P1: ::windows::core::IntoParam<ID3D12Resource>,
9341 {
9342 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
9343 }
9344 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
9345 where
9346 P0: ::windows::core::IntoParam<ID3D12Resource>,
9347 P1: ::windows::core::IntoParam<ID3D12Resource>,
9348 {
9349 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
9350 }
9351 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
9352 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
9353 }
9354 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
9355 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
9356 }
9357 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
9358 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
9359 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
9360 where
9361 P0: ::windows::core::IntoParam<ID3D12Resource>,
9362 P1: ::windows::core::IntoParam<ID3D12Resource>,
9363 {
9364 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
9365 }
9366 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
9367 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
9368 }
9369 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
9370 (::windows::core::Interface::vtable(self).base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
9371 }
9372 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
9373 where
9374 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
9375 {
9376 (::windows::core::Interface::vtable(self).base__.base__.SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
9377 }
9378 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
9379 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
9380 pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<*const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) {
9381 (::windows::core::Interface::vtable(self).base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil.unwrap_or(::std::ptr::null())), flags)
9382 }
9383 pub unsafe fn EndRenderPass(&self) {
9384 (::windows::core::Interface::vtable(self).base__.EndRenderPass)(::windows::core::Interface::as_raw(self))
9385 }
9386 pub unsafe fn InitializeMetaCommand<P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, initializationparametersdatasizeinbytes: usize)
9387 where
9388 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
9389 {
9390 (::windows::core::Interface::vtable(self).base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pinitializationparametersdata.unwrap_or(::std::ptr::null())), initializationparametersdatasizeinbytes)
9391 }
9392 pub unsafe fn ExecuteMetaCommand<P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, executionparametersdatasizeinbytes: usize)
9393 where
9394 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
9395 {
9396 (::windows::core::Interface::vtable(self).base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pexecutionparametersdata.unwrap_or(::std::ptr::null())), executionparametersdatasizeinbytes)
9397 }
9398 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9399 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9400 pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) {
9401 (::windows::core::Interface::vtable(self).base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), pdesc, ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9402 }
9403 pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) {
9404 (::windows::core::Interface::vtable(self).base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), pdesc, psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr()))
9405 }
9406 pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) {
9407 (::windows::core::Interface::vtable(self).base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode)
9408 }
9409 pub unsafe fn SetPipelineState1<P0>(&self, pstateobject: P0)
9410 where
9411 P0: ::windows::core::IntoParam<ID3D12StateObject>,
9412 {
9413 (::windows::core::Interface::vtable(self).base__.SetPipelineState1)(::windows::core::Interface::as_raw(self), pstateobject.into_param().abi())
9414 }
9415 pub unsafe fn DispatchRays(&self, pdesc: *const D3D12_DISPATCH_RAYS_DESC) {
9416 (::windows::core::Interface::vtable(self).base__.DispatchRays)(::windows::core::Interface::as_raw(self), pdesc)
9417 }
9418 pub unsafe fn RSSetShadingRate(&self, baseshadingrate: D3D12_SHADING_RATE, combiners: ::core::option::Option<*const D3D12_SHADING_RATE_COMBINER>) {
9419 (::windows::core::Interface::vtable(self).RSSetShadingRate)(::windows::core::Interface::as_raw(self), baseshadingrate, ::core::mem::transmute(combiners.unwrap_or(::std::ptr::null())))
9420 }
9421 pub unsafe fn RSSetShadingRateImage<P0>(&self, shadingrateimage: P0)
9422 where
9423 P0: ::windows::core::IntoParam<ID3D12Resource>,
9424 {
9425 (::windows::core::Interface::vtable(self).RSSetShadingRateImage)(::windows::core::Interface::as_raw(self), shadingrateimage.into_param().abi())
9426 }
9427}
9428::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList5, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2, ID3D12GraphicsCommandList3, ID3D12GraphicsCommandList4);
9429impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList5 {
9430 fn eq(&self, other: &Self) -> bool {
9431 self.0 == other.0
9432 }
9433}
9434impl ::core::cmp::Eq for ID3D12GraphicsCommandList5 {}
9435impl ::core::fmt::Debug for ID3D12GraphicsCommandList5 {
9436 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9437 f.debug_tuple("ID3D12GraphicsCommandList5").field(&self.0).finish()
9438 }
9439}
9440unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList5 {}
9441unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList5 {}
9442unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList5 {
9443 type Vtable = ID3D12GraphicsCommandList5_Vtbl;
9444}
9445impl ::core::clone::Clone for ID3D12GraphicsCommandList5 {
9446 fn clone(&self) -> Self {
9447 Self(self.0.clone())
9448 }
9449}
9450unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList5 {
9451 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x55050859_4024_474c_87f5_6472eaee44ea);
9452}
9453#[repr(C)]
9454#[doc(hidden)]
9455pub struct ID3D12GraphicsCommandList5_Vtbl {
9456 pub base__: ID3D12GraphicsCommandList4_Vtbl,
9457 pub RSSetShadingRate: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, baseshadingrate: D3D12_SHADING_RATE, combiners: *const D3D12_SHADING_RATE_COMBINER),
9458 pub RSSetShadingRateImage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, shadingrateimage: *mut ::core::ffi::c_void),
9459}
9460#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
9461#[repr(transparent)]
9462pub struct ID3D12GraphicsCommandList6(::windows::core::IUnknown);
9463impl ID3D12GraphicsCommandList6 {
9464 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
9465 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
9466 }
9467 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
9468 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
9469 }
9470 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
9471 where
9472 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
9473 {
9474 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
9475 }
9476 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
9477 where
9478 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
9479 {
9480 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
9481 }
9482 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
9483 where
9484 T: ::windows::core::ComInterface,
9485 {
9486 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
9487 }
9488 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
9489 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
9490 }
9491 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
9492 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
9493 }
9494 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
9495 where
9496 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
9497 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
9498 {
9499 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
9500 }
9501 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
9502 where
9503 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
9504 {
9505 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
9506 }
9507 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
9508 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
9509 }
9510 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
9511 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
9512 }
9513 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
9514 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
9515 }
9516 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
9517 where
9518 P0: ::windows::core::IntoParam<ID3D12Resource>,
9519 P1: ::windows::core::IntoParam<ID3D12Resource>,
9520 {
9521 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
9522 }
9523 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9524 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9525 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
9526 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
9527 }
9528 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
9529 where
9530 P0: ::windows::core::IntoParam<ID3D12Resource>,
9531 P1: ::windows::core::IntoParam<ID3D12Resource>,
9532 {
9533 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
9534 }
9535 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9536 #[cfg(feature = "Win32_Foundation")]
9537 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
9538 where
9539 P0: ::windows::core::IntoParam<ID3D12Resource>,
9540 P1: ::windows::core::IntoParam<ID3D12Resource>,
9541 {
9542 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
9543 }
9544 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9545 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9546 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
9547 where
9548 P0: ::windows::core::IntoParam<ID3D12Resource>,
9549 P1: ::windows::core::IntoParam<ID3D12Resource>,
9550 {
9551 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
9552 }
9553 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
9554 #[cfg(feature = "Win32_Graphics_Direct3D")]
9555 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
9556 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
9557 }
9558 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
9559 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
9560 }
9561 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9562 #[cfg(feature = "Win32_Foundation")]
9563 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
9564 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9565 }
9566 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
9567 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9568 }
9569 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
9570 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
9571 }
9572 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
9573 where
9574 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
9575 {
9576 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
9577 }
9578 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
9579 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
9580 }
9581 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
9582 where
9583 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
9584 {
9585 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
9586 }
9587 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
9588 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
9589 }
9590 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
9591 where
9592 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
9593 {
9594 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
9595 }
9596 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
9597 where
9598 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
9599 {
9600 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
9601 }
9602 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
9603 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
9604 }
9605 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
9606 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
9607 }
9608 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
9609 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
9610 }
9611 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
9612 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
9613 }
9614 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
9615 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
9616 }
9617 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
9618 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
9619 }
9620 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
9621 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9622 }
9623 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
9624 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9625 }
9626 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
9627 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9628 }
9629 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
9630 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9631 }
9632 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
9633 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9634 }
9635 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
9636 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
9637 }
9638 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9639 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9640 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
9641 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
9642 }
9643 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
9644 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9645 }
9646 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
9647 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9648 }
9649 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9650 #[cfg(feature = "Win32_Foundation")]
9651 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
9652 where
9653 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
9654 {
9655 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
9656 }
9657 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9658 #[cfg(feature = "Win32_Foundation")]
9659 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
9660 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9661 }
9662 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9663 #[cfg(feature = "Win32_Foundation")]
9664 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
9665 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9666 }
9667 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9668 #[cfg(feature = "Win32_Foundation")]
9669 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
9670 where
9671 P0: ::windows::core::IntoParam<ID3D12Resource>,
9672 {
9673 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9674 }
9675 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9676 #[cfg(feature = "Win32_Foundation")]
9677 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
9678 where
9679 P0: ::windows::core::IntoParam<ID3D12Resource>,
9680 {
9681 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9682 }
9683 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9684 #[cfg(feature = "Win32_Foundation")]
9685 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
9686 where
9687 P0: ::windows::core::IntoParam<ID3D12Resource>,
9688 {
9689 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
9690 }
9691 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
9692 where
9693 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
9694 {
9695 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
9696 }
9697 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
9698 where
9699 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
9700 {
9701 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
9702 }
9703 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
9704 where
9705 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
9706 P1: ::windows::core::IntoParam<ID3D12Resource>,
9707 {
9708 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
9709 }
9710 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
9711 where
9712 P0: ::windows::core::IntoParam<ID3D12Resource>,
9713 {
9714 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
9715 }
9716 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
9717 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
9718 }
9719 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
9720 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
9721 }
9722 pub unsafe fn EndEvent(&self) {
9723 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
9724 }
9725 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
9726 where
9727 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
9728 P1: ::windows::core::IntoParam<ID3D12Resource>,
9729 P2: ::windows::core::IntoParam<ID3D12Resource>,
9730 {
9731 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
9732 }
9733 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
9734 where
9735 P0: ::windows::core::IntoParam<ID3D12Resource>,
9736 P1: ::windows::core::IntoParam<ID3D12Resource>,
9737 {
9738 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
9739 }
9740 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
9741 where
9742 P0: ::windows::core::IntoParam<ID3D12Resource>,
9743 P1: ::windows::core::IntoParam<ID3D12Resource>,
9744 {
9745 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
9746 }
9747 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
9748 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
9749 }
9750 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
9751 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
9752 }
9753 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
9754 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
9755 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
9756 where
9757 P0: ::windows::core::IntoParam<ID3D12Resource>,
9758 P1: ::windows::core::IntoParam<ID3D12Resource>,
9759 {
9760 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
9761 }
9762 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
9763 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
9764 }
9765 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
9766 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
9767 }
9768 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
9769 where
9770 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
9771 {
9772 (::windows::core::Interface::vtable(self).base__.base__.base__.SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
9773 }
9774 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
9775 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
9776 pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<*const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) {
9777 (::windows::core::Interface::vtable(self).base__.base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil.unwrap_or(::std::ptr::null())), flags)
9778 }
9779 pub unsafe fn EndRenderPass(&self) {
9780 (::windows::core::Interface::vtable(self).base__.base__.EndRenderPass)(::windows::core::Interface::as_raw(self))
9781 }
9782 pub unsafe fn InitializeMetaCommand<P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, initializationparametersdatasizeinbytes: usize)
9783 where
9784 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
9785 {
9786 (::windows::core::Interface::vtable(self).base__.base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pinitializationparametersdata.unwrap_or(::std::ptr::null())), initializationparametersdatasizeinbytes)
9787 }
9788 pub unsafe fn ExecuteMetaCommand<P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, executionparametersdatasizeinbytes: usize)
9789 where
9790 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
9791 {
9792 (::windows::core::Interface::vtable(self).base__.base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pexecutionparametersdata.unwrap_or(::std::ptr::null())), executionparametersdatasizeinbytes)
9793 }
9794 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9795 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9796 pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) {
9797 (::windows::core::Interface::vtable(self).base__.base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), pdesc, ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9798 }
9799 pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) {
9800 (::windows::core::Interface::vtable(self).base__.base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), pdesc, psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr()))
9801 }
9802 pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) {
9803 (::windows::core::Interface::vtable(self).base__.base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode)
9804 }
9805 pub unsafe fn SetPipelineState1<P0>(&self, pstateobject: P0)
9806 where
9807 P0: ::windows::core::IntoParam<ID3D12StateObject>,
9808 {
9809 (::windows::core::Interface::vtable(self).base__.base__.SetPipelineState1)(::windows::core::Interface::as_raw(self), pstateobject.into_param().abi())
9810 }
9811 pub unsafe fn DispatchRays(&self, pdesc: *const D3D12_DISPATCH_RAYS_DESC) {
9812 (::windows::core::Interface::vtable(self).base__.base__.DispatchRays)(::windows::core::Interface::as_raw(self), pdesc)
9813 }
9814 pub unsafe fn RSSetShadingRate(&self, baseshadingrate: D3D12_SHADING_RATE, combiners: ::core::option::Option<*const D3D12_SHADING_RATE_COMBINER>) {
9815 (::windows::core::Interface::vtable(self).base__.RSSetShadingRate)(::windows::core::Interface::as_raw(self), baseshadingrate, ::core::mem::transmute(combiners.unwrap_or(::std::ptr::null())))
9816 }
9817 pub unsafe fn RSSetShadingRateImage<P0>(&self, shadingrateimage: P0)
9818 where
9819 P0: ::windows::core::IntoParam<ID3D12Resource>,
9820 {
9821 (::windows::core::Interface::vtable(self).base__.RSSetShadingRateImage)(::windows::core::Interface::as_raw(self), shadingrateimage.into_param().abi())
9822 }
9823 pub unsafe fn DispatchMesh(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
9824 (::windows::core::Interface::vtable(self).DispatchMesh)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
9825 }
9826}
9827::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList6, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2, ID3D12GraphicsCommandList3, ID3D12GraphicsCommandList4, ID3D12GraphicsCommandList5);
9828impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList6 {
9829 fn eq(&self, other: &Self) -> bool {
9830 self.0 == other.0
9831 }
9832}
9833impl ::core::cmp::Eq for ID3D12GraphicsCommandList6 {}
9834impl ::core::fmt::Debug for ID3D12GraphicsCommandList6 {
9835 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
9836 f.debug_tuple("ID3D12GraphicsCommandList6").field(&self.0).finish()
9837 }
9838}
9839unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList6 {}
9840unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList6 {}
9841unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList6 {
9842 type Vtable = ID3D12GraphicsCommandList6_Vtbl;
9843}
9844impl ::core::clone::Clone for ID3D12GraphicsCommandList6 {
9845 fn clone(&self) -> Self {
9846 Self(self.0.clone())
9847 }
9848}
9849unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList6 {
9850 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc3827890_e548_4cfa_96cf_5689a9370f80);
9851}
9852#[repr(C)]
9853#[doc(hidden)]
9854pub struct ID3D12GraphicsCommandList6_Vtbl {
9855 pub base__: ID3D12GraphicsCommandList5_Vtbl,
9856 pub DispatchMesh: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32),
9857}
9858#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
9859#[repr(transparent)]
9860pub struct ID3D12GraphicsCommandList7(::windows::core::IUnknown);
9861impl ID3D12GraphicsCommandList7 {
9862 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
9863 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
9864 }
9865 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
9866 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
9867 }
9868 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
9869 where
9870 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
9871 {
9872 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
9873 }
9874 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
9875 where
9876 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
9877 {
9878 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
9879 }
9880 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
9881 where
9882 T: ::windows::core::ComInterface,
9883 {
9884 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
9885 }
9886 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
9887 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
9888 }
9889 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
9890 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
9891 }
9892 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
9893 where
9894 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
9895 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
9896 {
9897 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
9898 }
9899 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
9900 where
9901 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
9902 {
9903 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
9904 }
9905 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
9906 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
9907 }
9908 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
9909 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
9910 }
9911 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
9912 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
9913 }
9914 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
9915 where
9916 P0: ::windows::core::IntoParam<ID3D12Resource>,
9917 P1: ::windows::core::IntoParam<ID3D12Resource>,
9918 {
9919 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
9920 }
9921 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9922 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9923 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
9924 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
9925 }
9926 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
9927 where
9928 P0: ::windows::core::IntoParam<ID3D12Resource>,
9929 P1: ::windows::core::IntoParam<ID3D12Resource>,
9930 {
9931 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
9932 }
9933 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9934 #[cfg(feature = "Win32_Foundation")]
9935 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
9936 where
9937 P0: ::windows::core::IntoParam<ID3D12Resource>,
9938 P1: ::windows::core::IntoParam<ID3D12Resource>,
9939 {
9940 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
9941 }
9942 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
9943 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
9944 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
9945 where
9946 P0: ::windows::core::IntoParam<ID3D12Resource>,
9947 P1: ::windows::core::IntoParam<ID3D12Resource>,
9948 {
9949 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
9950 }
9951 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
9952 #[cfg(feature = "Win32_Graphics_Direct3D")]
9953 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
9954 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
9955 }
9956 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
9957 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
9958 }
9959 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
9960 #[cfg(feature = "Win32_Foundation")]
9961 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
9962 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
9963 }
9964 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
9965 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
9966 }
9967 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
9968 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
9969 }
9970 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
9971 where
9972 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
9973 {
9974 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
9975 }
9976 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
9977 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
9978 }
9979 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
9980 where
9981 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
9982 {
9983 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
9984 }
9985 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
9986 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
9987 }
9988 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
9989 where
9990 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
9991 {
9992 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
9993 }
9994 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
9995 where
9996 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
9997 {
9998 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
9999 }
10000 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
10001 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
10002 }
10003 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
10004 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
10005 }
10006 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
10007 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
10008 }
10009 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
10010 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
10011 }
10012 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
10013 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
10014 }
10015 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
10016 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
10017 }
10018 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
10019 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10020 }
10021 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
10022 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10023 }
10024 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
10025 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10026 }
10027 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
10028 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10029 }
10030 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
10031 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10032 }
10033 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
10034 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10035 }
10036 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10037 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10038 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
10039 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
10040 }
10041 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
10042 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10043 }
10044 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
10045 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10046 }
10047 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10048 #[cfg(feature = "Win32_Foundation")]
10049 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
10050 where
10051 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
10052 {
10053 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
10054 }
10055 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10056 #[cfg(feature = "Win32_Foundation")]
10057 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
10058 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10059 }
10060 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10061 #[cfg(feature = "Win32_Foundation")]
10062 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
10063 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10064 }
10065 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10066 #[cfg(feature = "Win32_Foundation")]
10067 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
10068 where
10069 P0: ::windows::core::IntoParam<ID3D12Resource>,
10070 {
10071 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10072 }
10073 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10074 #[cfg(feature = "Win32_Foundation")]
10075 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
10076 where
10077 P0: ::windows::core::IntoParam<ID3D12Resource>,
10078 {
10079 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10080 }
10081 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10082 #[cfg(feature = "Win32_Foundation")]
10083 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
10084 where
10085 P0: ::windows::core::IntoParam<ID3D12Resource>,
10086 {
10087 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
10088 }
10089 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
10090 where
10091 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10092 {
10093 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
10094 }
10095 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
10096 where
10097 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10098 {
10099 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
10100 }
10101 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
10102 where
10103 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10104 P1: ::windows::core::IntoParam<ID3D12Resource>,
10105 {
10106 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
10107 }
10108 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
10109 where
10110 P0: ::windows::core::IntoParam<ID3D12Resource>,
10111 {
10112 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
10113 }
10114 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
10115 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
10116 }
10117 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
10118 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
10119 }
10120 pub unsafe fn EndEvent(&self) {
10121 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
10122 }
10123 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
10124 where
10125 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
10126 P1: ::windows::core::IntoParam<ID3D12Resource>,
10127 P2: ::windows::core::IntoParam<ID3D12Resource>,
10128 {
10129 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
10130 }
10131 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
10132 where
10133 P0: ::windows::core::IntoParam<ID3D12Resource>,
10134 P1: ::windows::core::IntoParam<ID3D12Resource>,
10135 {
10136 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
10137 }
10138 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
10139 where
10140 P0: ::windows::core::IntoParam<ID3D12Resource>,
10141 P1: ::windows::core::IntoParam<ID3D12Resource>,
10142 {
10143 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
10144 }
10145 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
10146 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
10147 }
10148 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
10149 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
10150 }
10151 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
10152 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
10153 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
10154 where
10155 P0: ::windows::core::IntoParam<ID3D12Resource>,
10156 P1: ::windows::core::IntoParam<ID3D12Resource>,
10157 {
10158 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
10159 }
10160 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
10161 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
10162 }
10163 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
10164 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
10165 }
10166 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
10167 where
10168 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
10169 {
10170 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
10171 }
10172 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
10173 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
10174 pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<*const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) {
10175 (::windows::core::Interface::vtable(self).base__.base__.base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil.unwrap_or(::std::ptr::null())), flags)
10176 }
10177 pub unsafe fn EndRenderPass(&self) {
10178 (::windows::core::Interface::vtable(self).base__.base__.base__.EndRenderPass)(::windows::core::Interface::as_raw(self))
10179 }
10180 pub unsafe fn InitializeMetaCommand<P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, initializationparametersdatasizeinbytes: usize)
10181 where
10182 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
10183 {
10184 (::windows::core::Interface::vtable(self).base__.base__.base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pinitializationparametersdata.unwrap_or(::std::ptr::null())), initializationparametersdatasizeinbytes)
10185 }
10186 pub unsafe fn ExecuteMetaCommand<P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, executionparametersdatasizeinbytes: usize)
10187 where
10188 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
10189 {
10190 (::windows::core::Interface::vtable(self).base__.base__.base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pexecutionparametersdata.unwrap_or(::std::ptr::null())), executionparametersdatasizeinbytes)
10191 }
10192 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10193 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10194 pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) {
10195 (::windows::core::Interface::vtable(self).base__.base__.base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), pdesc, ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10196 }
10197 pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) {
10198 (::windows::core::Interface::vtable(self).base__.base__.base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), pdesc, psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr()))
10199 }
10200 pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) {
10201 (::windows::core::Interface::vtable(self).base__.base__.base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode)
10202 }
10203 pub unsafe fn SetPipelineState1<P0>(&self, pstateobject: P0)
10204 where
10205 P0: ::windows::core::IntoParam<ID3D12StateObject>,
10206 {
10207 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPipelineState1)(::windows::core::Interface::as_raw(self), pstateobject.into_param().abi())
10208 }
10209 pub unsafe fn DispatchRays(&self, pdesc: *const D3D12_DISPATCH_RAYS_DESC) {
10210 (::windows::core::Interface::vtable(self).base__.base__.base__.DispatchRays)(::windows::core::Interface::as_raw(self), pdesc)
10211 }
10212 pub unsafe fn RSSetShadingRate(&self, baseshadingrate: D3D12_SHADING_RATE, combiners: ::core::option::Option<*const D3D12_SHADING_RATE_COMBINER>) {
10213 (::windows::core::Interface::vtable(self).base__.base__.RSSetShadingRate)(::windows::core::Interface::as_raw(self), baseshadingrate, ::core::mem::transmute(combiners.unwrap_or(::std::ptr::null())))
10214 }
10215 pub unsafe fn RSSetShadingRateImage<P0>(&self, shadingrateimage: P0)
10216 where
10217 P0: ::windows::core::IntoParam<ID3D12Resource>,
10218 {
10219 (::windows::core::Interface::vtable(self).base__.base__.RSSetShadingRateImage)(::windows::core::Interface::as_raw(self), shadingrateimage.into_param().abi())
10220 }
10221 pub unsafe fn DispatchMesh(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
10222 (::windows::core::Interface::vtable(self).base__.DispatchMesh)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
10223 }
10224 pub unsafe fn Barrier(&self, pbarriergroups: &[D3D12_BARRIER_GROUP]) {
10225 (::windows::core::Interface::vtable(self).Barrier)(::windows::core::Interface::as_raw(self), pbarriergroups.len() as _, ::core::mem::transmute(pbarriergroups.as_ptr()))
10226 }
10227}
10228::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList7, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2, ID3D12GraphicsCommandList3, ID3D12GraphicsCommandList4, ID3D12GraphicsCommandList5, ID3D12GraphicsCommandList6);
10229impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList7 {
10230 fn eq(&self, other: &Self) -> bool {
10231 self.0 == other.0
10232 }
10233}
10234impl ::core::cmp::Eq for ID3D12GraphicsCommandList7 {}
10235impl ::core::fmt::Debug for ID3D12GraphicsCommandList7 {
10236 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10237 f.debug_tuple("ID3D12GraphicsCommandList7").field(&self.0).finish()
10238 }
10239}
10240unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList7 {}
10241unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList7 {}
10242unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList7 {
10243 type Vtable = ID3D12GraphicsCommandList7_Vtbl;
10244}
10245impl ::core::clone::Clone for ID3D12GraphicsCommandList7 {
10246 fn clone(&self) -> Self {
10247 Self(self.0.clone())
10248 }
10249}
10250unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList7 {
10251 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdd171223_8b61_4769_90e3_160ccde4e2c1);
10252}
10253#[repr(C)]
10254#[doc(hidden)]
10255pub struct ID3D12GraphicsCommandList7_Vtbl {
10256 pub base__: ID3D12GraphicsCommandList6_Vtbl,
10257 pub Barrier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, numbarriergroups: u32, pbarriergroups: *const D3D12_BARRIER_GROUP),
10258}
10259#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
10260#[repr(transparent)]
10261pub struct ID3D12GraphicsCommandList8(::windows::core::IUnknown);
10262impl ID3D12GraphicsCommandList8 {
10263 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
10264 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
10265 }
10266 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
10267 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
10268 }
10269 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
10270 where
10271 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
10272 {
10273 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
10274 }
10275 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
10276 where
10277 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
10278 {
10279 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
10280 }
10281 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
10282 where
10283 T: ::windows::core::ComInterface,
10284 {
10285 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
10286 }
10287 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
10288 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
10289 }
10290 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
10291 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
10292 }
10293 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
10294 where
10295 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
10296 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
10297 {
10298 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
10299 }
10300 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
10301 where
10302 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
10303 {
10304 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
10305 }
10306 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
10307 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
10308 }
10309 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
10310 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
10311 }
10312 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
10313 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
10314 }
10315 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
10316 where
10317 P0: ::windows::core::IntoParam<ID3D12Resource>,
10318 P1: ::windows::core::IntoParam<ID3D12Resource>,
10319 {
10320 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
10321 }
10322 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10323 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10324 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
10325 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
10326 }
10327 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
10328 where
10329 P0: ::windows::core::IntoParam<ID3D12Resource>,
10330 P1: ::windows::core::IntoParam<ID3D12Resource>,
10331 {
10332 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
10333 }
10334 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10335 #[cfg(feature = "Win32_Foundation")]
10336 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
10337 where
10338 P0: ::windows::core::IntoParam<ID3D12Resource>,
10339 P1: ::windows::core::IntoParam<ID3D12Resource>,
10340 {
10341 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
10342 }
10343 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10344 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10345 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
10346 where
10347 P0: ::windows::core::IntoParam<ID3D12Resource>,
10348 P1: ::windows::core::IntoParam<ID3D12Resource>,
10349 {
10350 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
10351 }
10352 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
10353 #[cfg(feature = "Win32_Graphics_Direct3D")]
10354 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
10355 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
10356 }
10357 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
10358 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
10359 }
10360 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10361 #[cfg(feature = "Win32_Foundation")]
10362 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
10363 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10364 }
10365 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
10366 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10367 }
10368 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
10369 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
10370 }
10371 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
10372 where
10373 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
10374 {
10375 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
10376 }
10377 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
10378 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
10379 }
10380 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
10381 where
10382 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
10383 {
10384 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
10385 }
10386 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
10387 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
10388 }
10389 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
10390 where
10391 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
10392 {
10393 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
10394 }
10395 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
10396 where
10397 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
10398 {
10399 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
10400 }
10401 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
10402 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
10403 }
10404 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
10405 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
10406 }
10407 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
10408 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
10409 }
10410 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
10411 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
10412 }
10413 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
10414 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
10415 }
10416 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
10417 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
10418 }
10419 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
10420 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10421 }
10422 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
10423 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10424 }
10425 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
10426 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10427 }
10428 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
10429 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10430 }
10431 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
10432 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10433 }
10434 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
10435 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10436 }
10437 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10438 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10439 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
10440 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
10441 }
10442 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
10443 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10444 }
10445 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
10446 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10447 }
10448 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10449 #[cfg(feature = "Win32_Foundation")]
10450 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
10451 where
10452 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
10453 {
10454 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
10455 }
10456 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10457 #[cfg(feature = "Win32_Foundation")]
10458 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
10459 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10460 }
10461 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10462 #[cfg(feature = "Win32_Foundation")]
10463 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
10464 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10465 }
10466 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10467 #[cfg(feature = "Win32_Foundation")]
10468 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
10469 where
10470 P0: ::windows::core::IntoParam<ID3D12Resource>,
10471 {
10472 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10473 }
10474 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10475 #[cfg(feature = "Win32_Foundation")]
10476 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
10477 where
10478 P0: ::windows::core::IntoParam<ID3D12Resource>,
10479 {
10480 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10481 }
10482 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10483 #[cfg(feature = "Win32_Foundation")]
10484 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
10485 where
10486 P0: ::windows::core::IntoParam<ID3D12Resource>,
10487 {
10488 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
10489 }
10490 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
10491 where
10492 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10493 {
10494 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
10495 }
10496 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
10497 where
10498 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10499 {
10500 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
10501 }
10502 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
10503 where
10504 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10505 P1: ::windows::core::IntoParam<ID3D12Resource>,
10506 {
10507 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
10508 }
10509 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
10510 where
10511 P0: ::windows::core::IntoParam<ID3D12Resource>,
10512 {
10513 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
10514 }
10515 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
10516 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
10517 }
10518 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
10519 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
10520 }
10521 pub unsafe fn EndEvent(&self) {
10522 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
10523 }
10524 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
10525 where
10526 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
10527 P1: ::windows::core::IntoParam<ID3D12Resource>,
10528 P2: ::windows::core::IntoParam<ID3D12Resource>,
10529 {
10530 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
10531 }
10532 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
10533 where
10534 P0: ::windows::core::IntoParam<ID3D12Resource>,
10535 P1: ::windows::core::IntoParam<ID3D12Resource>,
10536 {
10537 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
10538 }
10539 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
10540 where
10541 P0: ::windows::core::IntoParam<ID3D12Resource>,
10542 P1: ::windows::core::IntoParam<ID3D12Resource>,
10543 {
10544 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
10545 }
10546 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
10547 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
10548 }
10549 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
10550 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
10551 }
10552 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
10553 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
10554 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
10555 where
10556 P0: ::windows::core::IntoParam<ID3D12Resource>,
10557 P1: ::windows::core::IntoParam<ID3D12Resource>,
10558 {
10559 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
10560 }
10561 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
10562 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
10563 }
10564 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
10565 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
10566 }
10567 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
10568 where
10569 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
10570 {
10571 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
10572 }
10573 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
10574 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
10575 pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<*const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) {
10576 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil.unwrap_or(::std::ptr::null())), flags)
10577 }
10578 pub unsafe fn EndRenderPass(&self) {
10579 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EndRenderPass)(::windows::core::Interface::as_raw(self))
10580 }
10581 pub unsafe fn InitializeMetaCommand<P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, initializationparametersdatasizeinbytes: usize)
10582 where
10583 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
10584 {
10585 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pinitializationparametersdata.unwrap_or(::std::ptr::null())), initializationparametersdatasizeinbytes)
10586 }
10587 pub unsafe fn ExecuteMetaCommand<P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, executionparametersdatasizeinbytes: usize)
10588 where
10589 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
10590 {
10591 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pexecutionparametersdata.unwrap_or(::std::ptr::null())), executionparametersdatasizeinbytes)
10592 }
10593 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10594 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10595 pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) {
10596 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), pdesc, ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10597 }
10598 pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) {
10599 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), pdesc, psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr()))
10600 }
10601 pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) {
10602 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode)
10603 }
10604 pub unsafe fn SetPipelineState1<P0>(&self, pstateobject: P0)
10605 where
10606 P0: ::windows::core::IntoParam<ID3D12StateObject>,
10607 {
10608 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPipelineState1)(::windows::core::Interface::as_raw(self), pstateobject.into_param().abi())
10609 }
10610 pub unsafe fn DispatchRays(&self, pdesc: *const D3D12_DISPATCH_RAYS_DESC) {
10611 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.DispatchRays)(::windows::core::Interface::as_raw(self), pdesc)
10612 }
10613 pub unsafe fn RSSetShadingRate(&self, baseshadingrate: D3D12_SHADING_RATE, combiners: ::core::option::Option<*const D3D12_SHADING_RATE_COMBINER>) {
10614 (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetShadingRate)(::windows::core::Interface::as_raw(self), baseshadingrate, ::core::mem::transmute(combiners.unwrap_or(::std::ptr::null())))
10615 }
10616 pub unsafe fn RSSetShadingRateImage<P0>(&self, shadingrateimage: P0)
10617 where
10618 P0: ::windows::core::IntoParam<ID3D12Resource>,
10619 {
10620 (::windows::core::Interface::vtable(self).base__.base__.base__.RSSetShadingRateImage)(::windows::core::Interface::as_raw(self), shadingrateimage.into_param().abi())
10621 }
10622 pub unsafe fn DispatchMesh(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
10623 (::windows::core::Interface::vtable(self).base__.base__.DispatchMesh)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
10624 }
10625 pub unsafe fn Barrier(&self, pbarriergroups: &[D3D12_BARRIER_GROUP]) {
10626 (::windows::core::Interface::vtable(self).base__.Barrier)(::windows::core::Interface::as_raw(self), pbarriergroups.len() as _, ::core::mem::transmute(pbarriergroups.as_ptr()))
10627 }
10628 pub unsafe fn OMSetFrontAndBackStencilRef(&self, frontstencilref: u32, backstencilref: u32) {
10629 (::windows::core::Interface::vtable(self).OMSetFrontAndBackStencilRef)(::windows::core::Interface::as_raw(self), frontstencilref, backstencilref)
10630 }
10631}
10632::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList8, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2, ID3D12GraphicsCommandList3, ID3D12GraphicsCommandList4, ID3D12GraphicsCommandList5, ID3D12GraphicsCommandList6, ID3D12GraphicsCommandList7);
10633impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList8 {
10634 fn eq(&self, other: &Self) -> bool {
10635 self.0 == other.0
10636 }
10637}
10638impl ::core::cmp::Eq for ID3D12GraphicsCommandList8 {}
10639impl ::core::fmt::Debug for ID3D12GraphicsCommandList8 {
10640 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
10641 f.debug_tuple("ID3D12GraphicsCommandList8").field(&self.0).finish()
10642 }
10643}
10644unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList8 {}
10645unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList8 {}
10646unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList8 {
10647 type Vtable = ID3D12GraphicsCommandList8_Vtbl;
10648}
10649impl ::core::clone::Clone for ID3D12GraphicsCommandList8 {
10650 fn clone(&self) -> Self {
10651 Self(self.0.clone())
10652 }
10653}
10654unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList8 {
10655 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xee936ef9_599d_4d28_938e_23c4ad05ce51);
10656}
10657#[repr(C)]
10658#[doc(hidden)]
10659pub struct ID3D12GraphicsCommandList8_Vtbl {
10660 pub base__: ID3D12GraphicsCommandList7_Vtbl,
10661 pub OMSetFrontAndBackStencilRef: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, frontstencilref: u32, backstencilref: u32),
10662}
10663#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
10664#[repr(transparent)]
10665pub struct ID3D12GraphicsCommandList9(::windows::core::IUnknown);
10666impl ID3D12GraphicsCommandList9 {
10667 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
10668 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
10669 }
10670 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
10671 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
10672 }
10673 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
10674 where
10675 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
10676 {
10677 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
10678 }
10679 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
10680 where
10681 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
10682 {
10683 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
10684 }
10685 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
10686 where
10687 T: ::windows::core::ComInterface,
10688 {
10689 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
10690 }
10691 pub unsafe fn GetType(&self) -> D3D12_COMMAND_LIST_TYPE {
10692 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.base__.GetType)(::windows::core::Interface::as_raw(self))
10693 }
10694 pub unsafe fn Close(&self) -> ::windows::core::Result<()> {
10695 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.Close)(::windows::core::Interface::as_raw(self)).ok()
10696 }
10697 pub unsafe fn Reset<P0, P1>(&self, pallocator: P0, pinitialstate: P1) -> ::windows::core::Result<()>
10698 where
10699 P0: ::windows::core::IntoParam<ID3D12CommandAllocator>,
10700 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
10701 {
10702 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.Reset)(::windows::core::Interface::as_raw(self), pallocator.into_param().abi(), pinitialstate.into_param().abi()).ok()
10703 }
10704 pub unsafe fn ClearState<P0>(&self, ppipelinestate: P0)
10705 where
10706 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
10707 {
10708 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ClearState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
10709 }
10710 pub unsafe fn DrawInstanced(&self, vertexcountperinstance: u32, instancecount: u32, startvertexlocation: u32, startinstancelocation: u32) {
10711 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.DrawInstanced)(::windows::core::Interface::as_raw(self), vertexcountperinstance, instancecount, startvertexlocation, startinstancelocation)
10712 }
10713 pub unsafe fn DrawIndexedInstanced(&self, indexcountperinstance: u32, instancecount: u32, startindexlocation: u32, basevertexlocation: i32, startinstancelocation: u32) {
10714 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.DrawIndexedInstanced)(::windows::core::Interface::as_raw(self), indexcountperinstance, instancecount, startindexlocation, basevertexlocation, startinstancelocation)
10715 }
10716 pub unsafe fn Dispatch(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
10717 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.Dispatch)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
10718 }
10719 pub unsafe fn CopyBufferRegion<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, numbytes: u64)
10720 where
10721 P0: ::windows::core::IntoParam<ID3D12Resource>,
10722 P1: ::windows::core::IntoParam<ID3D12Resource>,
10723 {
10724 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyBufferRegion)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, numbytes)
10725 }
10726 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10727 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10728 pub unsafe fn CopyTextureRegion(&self, pdst: *const D3D12_TEXTURE_COPY_LOCATION, dstx: u32, dsty: u32, dstz: u32, psrc: *const D3D12_TEXTURE_COPY_LOCATION, psrcbox: ::core::option::Option<*const D3D12_BOX>) {
10729 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyTextureRegion)(::windows::core::Interface::as_raw(self), pdst, dstx, dsty, dstz, psrc, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null())))
10730 }
10731 pub unsafe fn CopyResource<P0, P1>(&self, pdstresource: P0, psrcresource: P1)
10732 where
10733 P0: ::windows::core::IntoParam<ID3D12Resource>,
10734 P1: ::windows::core::IntoParam<ID3D12Resource>,
10735 {
10736 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyResource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), psrcresource.into_param().abi())
10737 }
10738 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10739 #[cfg(feature = "Win32_Foundation")]
10740 pub unsafe fn CopyTiles<P0, P1>(&self, ptiledresource: P0, ptileregionstartcoordinate: *const D3D12_TILED_RESOURCE_COORDINATE, ptileregionsize: *const D3D12_TILE_REGION_SIZE, pbuffer: P1, bufferstartoffsetinbytes: u64, flags: D3D12_TILE_COPY_FLAGS)
10741 where
10742 P0: ::windows::core::IntoParam<ID3D12Resource>,
10743 P1: ::windows::core::IntoParam<ID3D12Resource>,
10744 {
10745 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.CopyTiles)(::windows::core::Interface::as_raw(self), ptiledresource.into_param().abi(), ptileregionstartcoordinate, ptileregionsize, pbuffer.into_param().abi(), bufferstartoffsetinbytes, flags)
10746 }
10747 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10748 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10749 pub unsafe fn ResolveSubresource<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, psrcresource: P1, srcsubresource: u32, format: super::Dxgi::Common::DXGI_FORMAT)
10750 where
10751 P0: ::windows::core::IntoParam<ID3D12Resource>,
10752 P1: ::windows::core::IntoParam<ID3D12Resource>,
10753 {
10754 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ResolveSubresource)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, psrcresource.into_param().abi(), srcsubresource, format)
10755 }
10756 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
10757 #[cfg(feature = "Win32_Graphics_Direct3D")]
10758 pub unsafe fn IASetPrimitiveTopology(&self, primitivetopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY) {
10759 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.IASetPrimitiveTopology)(::windows::core::Interface::as_raw(self), primitivetopology)
10760 }
10761 pub unsafe fn RSSetViewports(&self, pviewports: &[D3D12_VIEWPORT]) {
10762 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.RSSetViewports)(::windows::core::Interface::as_raw(self), pviewports.len() as _, ::core::mem::transmute(pviewports.as_ptr()))
10763 }
10764 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10765 #[cfg(feature = "Win32_Foundation")]
10766 pub unsafe fn RSSetScissorRects(&self, prects: &[super::super::Foundation::RECT]) {
10767 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.RSSetScissorRects)(::windows::core::Interface::as_raw(self), prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10768 }
10769 pub unsafe fn OMSetBlendFactor(&self, blendfactor: ::core::option::Option<&[f32; 4]>) {
10770 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.OMSetBlendFactor)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(blendfactor.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10771 }
10772 pub unsafe fn OMSetStencilRef(&self, stencilref: u32) {
10773 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.OMSetStencilRef)(::windows::core::Interface::as_raw(self), stencilref)
10774 }
10775 pub unsafe fn SetPipelineState<P0>(&self, ppipelinestate: P0)
10776 where
10777 P0: ::windows::core::IntoParam<ID3D12PipelineState>,
10778 {
10779 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPipelineState)(::windows::core::Interface::as_raw(self), ppipelinestate.into_param().abi())
10780 }
10781 pub unsafe fn ResourceBarrier(&self, pbarriers: &[D3D12_RESOURCE_BARRIER]) {
10782 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ResourceBarrier)(::windows::core::Interface::as_raw(self), pbarriers.len() as _, ::core::mem::transmute(pbarriers.as_ptr()))
10783 }
10784 pub unsafe fn ExecuteBundle<P0>(&self, pcommandlist: P0)
10785 where
10786 P0: ::windows::core::IntoParam<ID3D12GraphicsCommandList>,
10787 {
10788 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ExecuteBundle)(::windows::core::Interface::as_raw(self), pcommandlist.into_param().abi())
10789 }
10790 pub unsafe fn SetDescriptorHeaps(&self, ppdescriptorheaps: &[::core::option::Option<ID3D12DescriptorHeap>]) {
10791 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetDescriptorHeaps)(::windows::core::Interface::as_raw(self), ppdescriptorheaps.len() as _, ::core::mem::transmute(ppdescriptorheaps.as_ptr()))
10792 }
10793 pub unsafe fn SetComputeRootSignature<P0>(&self, prootsignature: P0)
10794 where
10795 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
10796 {
10797 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
10798 }
10799 pub unsafe fn SetGraphicsRootSignature<P0>(&self, prootsignature: P0)
10800 where
10801 P0: ::windows::core::IntoParam<ID3D12RootSignature>,
10802 {
10803 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootSignature)(::windows::core::Interface::as_raw(self), prootsignature.into_param().abi())
10804 }
10805 pub unsafe fn SetComputeRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
10806 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
10807 }
10808 pub unsafe fn SetGraphicsRootDescriptorTable(&self, rootparameterindex: u32, basedescriptor: D3D12_GPU_DESCRIPTOR_HANDLE) {
10809 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootDescriptorTable)(::windows::core::Interface::as_raw(self), rootparameterindex, ::core::mem::transmute(basedescriptor))
10810 }
10811 pub unsafe fn SetComputeRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
10812 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
10813 }
10814 pub unsafe fn SetGraphicsRoot32BitConstant(&self, rootparameterindex: u32, srcdata: u32, destoffsetin32bitvalues: u32) {
10815 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstant)(::windows::core::Interface::as_raw(self), rootparameterindex, srcdata, destoffsetin32bitvalues)
10816 }
10817 pub unsafe fn SetComputeRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
10818 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
10819 }
10820 pub unsafe fn SetGraphicsRoot32BitConstants(&self, rootparameterindex: u32, num32bitvaluestoset: u32, psrcdata: *const ::core::ffi::c_void, destoffsetin32bitvalues: u32) {
10821 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRoot32BitConstants)(::windows::core::Interface::as_raw(self), rootparameterindex, num32bitvaluestoset, psrcdata, destoffsetin32bitvalues)
10822 }
10823 pub unsafe fn SetComputeRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
10824 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10825 }
10826 pub unsafe fn SetGraphicsRootConstantBufferView(&self, rootparameterindex: u32, bufferlocation: u64) {
10827 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootConstantBufferView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10828 }
10829 pub unsafe fn SetComputeRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
10830 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10831 }
10832 pub unsafe fn SetGraphicsRootShaderResourceView(&self, rootparameterindex: u32, bufferlocation: u64) {
10833 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootShaderResourceView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10834 }
10835 pub unsafe fn SetComputeRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
10836 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetComputeRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10837 }
10838 pub unsafe fn SetGraphicsRootUnorderedAccessView(&self, rootparameterindex: u32, bufferlocation: u64) {
10839 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetGraphicsRootUnorderedAccessView)(::windows::core::Interface::as_raw(self), rootparameterindex, bufferlocation)
10840 }
10841 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10842 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10843 pub unsafe fn IASetIndexBuffer(&self, pview: ::core::option::Option<*const D3D12_INDEX_BUFFER_VIEW>) {
10844 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.IASetIndexBuffer)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pview.unwrap_or(::std::ptr::null())))
10845 }
10846 pub unsafe fn IASetVertexBuffers(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_VERTEX_BUFFER_VIEW]>) {
10847 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.IASetVertexBuffers)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10848 }
10849 pub unsafe fn SOSetTargets(&self, startslot: u32, pviews: ::core::option::Option<&[D3D12_STREAM_OUTPUT_BUFFER_VIEW]>) {
10850 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SOSetTargets)(::windows::core::Interface::as_raw(self), startslot, pviews.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(pviews.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10851 }
10852 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10853 #[cfg(feature = "Win32_Foundation")]
10854 pub unsafe fn OMSetRenderTargets<P0>(&self, numrendertargetdescriptors: u32, prendertargetdescriptors: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>, rtssinglehandletodescriptorrange: P0, pdepthstencildescriptor: ::core::option::Option<*const D3D12_CPU_DESCRIPTOR_HANDLE>)
10855 where
10856 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
10857 {
10858 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.OMSetRenderTargets)(::windows::core::Interface::as_raw(self), numrendertargetdescriptors, ::core::mem::transmute(prendertargetdescriptors.unwrap_or(::std::ptr::null())), rtssinglehandletodescriptorrange.into_param().abi(), ::core::mem::transmute(pdepthstencildescriptor.unwrap_or(::std::ptr::null())))
10859 }
10860 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10861 #[cfg(feature = "Win32_Foundation")]
10862 pub unsafe fn ClearDepthStencilView(&self, depthstencilview: D3D12_CPU_DESCRIPTOR_HANDLE, clearflags: D3D12_CLEAR_FLAGS, depth: f32, stencil: u8, prects: &[super::super::Foundation::RECT]) {
10863 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ClearDepthStencilView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(depthstencilview), clearflags, depth, stencil, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10864 }
10865 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10866 #[cfg(feature = "Win32_Foundation")]
10867 pub unsafe fn ClearRenderTargetView(&self, rendertargetview: D3D12_CPU_DESCRIPTOR_HANDLE, colorrgba: *const f32, prects: ::core::option::Option<&[super::super::Foundation::RECT]>) {
10868 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ClearRenderTargetView)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(rendertargetview), colorrgba, prects.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prects.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
10869 }
10870 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10871 #[cfg(feature = "Win32_Foundation")]
10872 pub unsafe fn ClearUnorderedAccessViewUint<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const u32, prects: &[super::super::Foundation::RECT])
10873 where
10874 P0: ::windows::core::IntoParam<ID3D12Resource>,
10875 {
10876 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewUint)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10877 }
10878 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10879 #[cfg(feature = "Win32_Foundation")]
10880 pub unsafe fn ClearUnorderedAccessViewFloat<P0>(&self, viewgpuhandleincurrentheap: D3D12_GPU_DESCRIPTOR_HANDLE, viewcpuhandle: D3D12_CPU_DESCRIPTOR_HANDLE, presource: P0, values: *const f32, prects: &[super::super::Foundation::RECT])
10881 where
10882 P0: ::windows::core::IntoParam<ID3D12Resource>,
10883 {
10884 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ClearUnorderedAccessViewFloat)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(viewgpuhandleincurrentheap), ::core::mem::transmute(viewcpuhandle), presource.into_param().abi(), values, prects.len() as _, ::core::mem::transmute(prects.as_ptr()))
10885 }
10886 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
10887 #[cfg(feature = "Win32_Foundation")]
10888 pub unsafe fn DiscardResource<P0>(&self, presource: P0, pregion: ::core::option::Option<*const D3D12_DISCARD_REGION>)
10889 where
10890 P0: ::windows::core::IntoParam<ID3D12Resource>,
10891 {
10892 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.DiscardResource)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), ::core::mem::transmute(pregion.unwrap_or(::std::ptr::null())))
10893 }
10894 pub unsafe fn BeginQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
10895 where
10896 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10897 {
10898 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.BeginQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
10899 }
10900 pub unsafe fn EndQuery<P0>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, index: u32)
10901 where
10902 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10903 {
10904 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.EndQuery)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, index)
10905 }
10906 pub unsafe fn ResolveQueryData<P0, P1>(&self, pqueryheap: P0, r#type: D3D12_QUERY_TYPE, startindex: u32, numqueries: u32, pdestinationbuffer: P1, aligneddestinationbufferoffset: u64)
10907 where
10908 P0: ::windows::core::IntoParam<ID3D12QueryHeap>,
10909 P1: ::windows::core::IntoParam<ID3D12Resource>,
10910 {
10911 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ResolveQueryData)(::windows::core::Interface::as_raw(self), pqueryheap.into_param().abi(), r#type, startindex, numqueries, pdestinationbuffer.into_param().abi(), aligneddestinationbufferoffset)
10912 }
10913 pub unsafe fn SetPredication<P0>(&self, pbuffer: P0, alignedbufferoffset: u64, operation: D3D12_PREDICATION_OP)
10914 where
10915 P0: ::windows::core::IntoParam<ID3D12Resource>,
10916 {
10917 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetPredication)(::windows::core::Interface::as_raw(self), pbuffer.into_param().abi(), alignedbufferoffset, operation)
10918 }
10919 pub unsafe fn SetMarker(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
10920 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.SetMarker)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
10921 }
10922 pub unsafe fn BeginEvent(&self, metadata: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>, size: u32) {
10923 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.BeginEvent)(::windows::core::Interface::as_raw(self), metadata, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null())), size)
10924 }
10925 pub unsafe fn EndEvent(&self) {
10926 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.EndEvent)(::windows::core::Interface::as_raw(self))
10927 }
10928 pub unsafe fn ExecuteIndirect<P0, P1, P2>(&self, pcommandsignature: P0, maxcommandcount: u32, pargumentbuffer: P1, argumentbufferoffset: u64, pcountbuffer: P2, countbufferoffset: u64)
10929 where
10930 P0: ::windows::core::IntoParam<ID3D12CommandSignature>,
10931 P1: ::windows::core::IntoParam<ID3D12Resource>,
10932 P2: ::windows::core::IntoParam<ID3D12Resource>,
10933 {
10934 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.base__.ExecuteIndirect)(::windows::core::Interface::as_raw(self), pcommandsignature.into_param().abi(), maxcommandcount, pargumentbuffer.into_param().abi(), argumentbufferoffset, pcountbuffer.into_param().abi(), countbufferoffset)
10935 }
10936 pub unsafe fn AtomicCopyBufferUINT<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
10937 where
10938 P0: ::windows::core::IntoParam<ID3D12Resource>,
10939 P1: ::windows::core::IntoParam<ID3D12Resource>,
10940 {
10941 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.AtomicCopyBufferUINT)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
10942 }
10943 pub unsafe fn AtomicCopyBufferUINT64<P0, P1>(&self, pdstbuffer: P0, dstoffset: u64, psrcbuffer: P1, srcoffset: u64, dependencies: u32, ppdependentresources: *const ::core::option::Option<ID3D12Resource>, pdependentsubresourceranges: *const D3D12_SUBRESOURCE_RANGE_UINT64)
10944 where
10945 P0: ::windows::core::IntoParam<ID3D12Resource>,
10946 P1: ::windows::core::IntoParam<ID3D12Resource>,
10947 {
10948 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.AtomicCopyBufferUINT64)(::windows::core::Interface::as_raw(self), pdstbuffer.into_param().abi(), dstoffset, psrcbuffer.into_param().abi(), srcoffset, dependencies, ::core::mem::transmute(ppdependentresources), pdependentsubresourceranges)
10949 }
10950 pub unsafe fn OMSetDepthBounds(&self, min: f32, max: f32) {
10951 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.OMSetDepthBounds)(::windows::core::Interface::as_raw(self), min, max)
10952 }
10953 pub unsafe fn SetSamplePositions(&self, numsamplesperpixel: u32, numpixels: u32, psamplepositions: *const D3D12_SAMPLE_POSITION) {
10954 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetSamplePositions)(::windows::core::Interface::as_raw(self), numsamplesperpixel, numpixels, psamplepositions)
10955 }
10956 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
10957 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
10958 pub unsafe fn ResolveSubresourceRegion<P0, P1>(&self, pdstresource: P0, dstsubresource: u32, dstx: u32, dsty: u32, psrcresource: P1, srcsubresource: u32, psrcrect: ::core::option::Option<*const super::super::Foundation::RECT>, format: super::Dxgi::Common::DXGI_FORMAT, resolvemode: D3D12_RESOLVE_MODE)
10959 where
10960 P0: ::windows::core::IntoParam<ID3D12Resource>,
10961 P1: ::windows::core::IntoParam<ID3D12Resource>,
10962 {
10963 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.ResolveSubresourceRegion)(::windows::core::Interface::as_raw(self), pdstresource.into_param().abi(), dstsubresource, dstx, dsty, psrcresource.into_param().abi(), srcsubresource, ::core::mem::transmute(psrcrect.unwrap_or(::std::ptr::null())), format, resolvemode)
10964 }
10965 pub unsafe fn SetViewInstanceMask(&self, mask: u32) {
10966 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.base__.SetViewInstanceMask)(::windows::core::Interface::as_raw(self), mask)
10967 }
10968 pub unsafe fn WriteBufferImmediate(&self, count: u32, pparams: *const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER, pmodes: ::core::option::Option<*const D3D12_WRITEBUFFERIMMEDIATE_MODE>) {
10969 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.base__.WriteBufferImmediate)(::windows::core::Interface::as_raw(self), count, pparams, ::core::mem::transmute(pmodes.unwrap_or(::std::ptr::null())))
10970 }
10971 pub unsafe fn SetProtectedResourceSession<P0>(&self, pprotectedresourcesession: P0)
10972 where
10973 P0: ::windows::core::IntoParam<ID3D12ProtectedResourceSession>,
10974 {
10975 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.base__.SetProtectedResourceSession)(::windows::core::Interface::as_raw(self), pprotectedresourcesession.into_param().abi())
10976 }
10977 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
10978 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
10979 pub unsafe fn BeginRenderPass(&self, prendertargets: ::core::option::Option<&[D3D12_RENDER_PASS_RENDER_TARGET_DESC]>, pdepthstencil: ::core::option::Option<*const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC>, flags: D3D12_RENDER_PASS_FLAGS) {
10980 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.BeginRenderPass)(::windows::core::Interface::as_raw(self), prendertargets.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(prendertargets.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())), ::core::mem::transmute(pdepthstencil.unwrap_or(::std::ptr::null())), flags)
10981 }
10982 pub unsafe fn EndRenderPass(&self) {
10983 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EndRenderPass)(::windows::core::Interface::as_raw(self))
10984 }
10985 pub unsafe fn InitializeMetaCommand<P0>(&self, pmetacommand: P0, pinitializationparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, initializationparametersdatasizeinbytes: usize)
10986 where
10987 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
10988 {
10989 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.InitializeMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pinitializationparametersdata.unwrap_or(::std::ptr::null())), initializationparametersdatasizeinbytes)
10990 }
10991 pub unsafe fn ExecuteMetaCommand<P0>(&self, pmetacommand: P0, pexecutionparametersdata: ::core::option::Option<*const ::core::ffi::c_void>, executionparametersdatasizeinbytes: usize)
10992 where
10993 P0: ::windows::core::IntoParam<ID3D12MetaCommand>,
10994 {
10995 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.ExecuteMetaCommand)(::windows::core::Interface::as_raw(self), pmetacommand.into_param().abi(), ::core::mem::transmute(pexecutionparametersdata.unwrap_or(::std::ptr::null())), executionparametersdatasizeinbytes)
10996 }
10997 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
10998 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
10999 pub unsafe fn BuildRaytracingAccelerationStructure(&self, pdesc: *const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC, ppostbuildinfodescs: ::core::option::Option<&[D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC]>) {
11000 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.BuildRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), pdesc, ppostbuildinfodescs.as_deref().map_or(0, |slice| slice.len() as _), ::core::mem::transmute(ppostbuildinfodescs.as_deref().map_or(::core::ptr::null(), |slice| slice.as_ptr())))
11001 }
11002 pub unsafe fn EmitRaytracingAccelerationStructurePostbuildInfo(&self, pdesc: *const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC, psourceaccelerationstructuredata: &[u64]) {
11003 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.EmitRaytracingAccelerationStructurePostbuildInfo)(::windows::core::Interface::as_raw(self), pdesc, psourceaccelerationstructuredata.len() as _, ::core::mem::transmute(psourceaccelerationstructuredata.as_ptr()))
11004 }
11005 pub unsafe fn CopyRaytracingAccelerationStructure(&self, destaccelerationstructuredata: u64, sourceaccelerationstructuredata: u64, mode: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE) {
11006 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.CopyRaytracingAccelerationStructure)(::windows::core::Interface::as_raw(self), destaccelerationstructuredata, sourceaccelerationstructuredata, mode)
11007 }
11008 pub unsafe fn SetPipelineState1<P0>(&self, pstateobject: P0)
11009 where
11010 P0: ::windows::core::IntoParam<ID3D12StateObject>,
11011 {
11012 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPipelineState1)(::windows::core::Interface::as_raw(self), pstateobject.into_param().abi())
11013 }
11014 pub unsafe fn DispatchRays(&self, pdesc: *const D3D12_DISPATCH_RAYS_DESC) {
11015 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.DispatchRays)(::windows::core::Interface::as_raw(self), pdesc)
11016 }
11017 pub unsafe fn RSSetShadingRate(&self, baseshadingrate: D3D12_SHADING_RATE, combiners: ::core::option::Option<*const D3D12_SHADING_RATE_COMBINER>) {
11018 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetShadingRate)(::windows::core::Interface::as_raw(self), baseshadingrate, ::core::mem::transmute(combiners.unwrap_or(::std::ptr::null())))
11019 }
11020 pub unsafe fn RSSetShadingRateImage<P0>(&self, shadingrateimage: P0)
11021 where
11022 P0: ::windows::core::IntoParam<ID3D12Resource>,
11023 {
11024 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.RSSetShadingRateImage)(::windows::core::Interface::as_raw(self), shadingrateimage.into_param().abi())
11025 }
11026 pub unsafe fn DispatchMesh(&self, threadgroupcountx: u32, threadgroupcounty: u32, threadgroupcountz: u32) {
11027 (::windows::core::Interface::vtable(self).base__.base__.base__.DispatchMesh)(::windows::core::Interface::as_raw(self), threadgroupcountx, threadgroupcounty, threadgroupcountz)
11028 }
11029 pub unsafe fn Barrier(&self, pbarriergroups: &[D3D12_BARRIER_GROUP]) {
11030 (::windows::core::Interface::vtable(self).base__.base__.Barrier)(::windows::core::Interface::as_raw(self), pbarriergroups.len() as _, ::core::mem::transmute(pbarriergroups.as_ptr()))
11031 }
11032 pub unsafe fn OMSetFrontAndBackStencilRef(&self, frontstencilref: u32, backstencilref: u32) {
11033 (::windows::core::Interface::vtable(self).base__.OMSetFrontAndBackStencilRef)(::windows::core::Interface::as_raw(self), frontstencilref, backstencilref)
11034 }
11035 pub unsafe fn RSSetDepthBias(&self, depthbias: f32, depthbiasclamp: f32, slopescaleddepthbias: f32) {
11036 (::windows::core::Interface::vtable(self).RSSetDepthBias)(::windows::core::Interface::as_raw(self), depthbias, depthbiasclamp, slopescaleddepthbias)
11037 }
11038 pub unsafe fn IASetIndexBufferStripCutValue(&self, ibstripcutvalue: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE) {
11039 (::windows::core::Interface::vtable(self).IASetIndexBufferStripCutValue)(::windows::core::Interface::as_raw(self), ibstripcutvalue)
11040 }
11041}
11042::windows::imp::interface_hierarchy!(ID3D12GraphicsCommandList9, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12CommandList, ID3D12GraphicsCommandList, ID3D12GraphicsCommandList1, ID3D12GraphicsCommandList2, ID3D12GraphicsCommandList3, ID3D12GraphicsCommandList4, ID3D12GraphicsCommandList5, ID3D12GraphicsCommandList6, ID3D12GraphicsCommandList7, ID3D12GraphicsCommandList8);
11043impl ::core::cmp::PartialEq for ID3D12GraphicsCommandList9 {
11044 fn eq(&self, other: &Self) -> bool {
11045 self.0 == other.0
11046 }
11047}
11048impl ::core::cmp::Eq for ID3D12GraphicsCommandList9 {}
11049impl ::core::fmt::Debug for ID3D12GraphicsCommandList9 {
11050 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11051 f.debug_tuple("ID3D12GraphicsCommandList9").field(&self.0).finish()
11052 }
11053}
11054unsafe impl ::core::marker::Send for ID3D12GraphicsCommandList9 {}
11055unsafe impl ::core::marker::Sync for ID3D12GraphicsCommandList9 {}
11056unsafe impl ::windows::core::Interface for ID3D12GraphicsCommandList9 {
11057 type Vtable = ID3D12GraphicsCommandList9_Vtbl;
11058}
11059impl ::core::clone::Clone for ID3D12GraphicsCommandList9 {
11060 fn clone(&self) -> Self {
11061 Self(self.0.clone())
11062 }
11063}
11064unsafe impl ::windows::core::ComInterface for ID3D12GraphicsCommandList9 {
11065 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x34ed2808_ffe6_4c2b_b11a_cabd2b0c59e1);
11066}
11067#[repr(C)]
11068#[doc(hidden)]
11069pub struct ID3D12GraphicsCommandList9_Vtbl {
11070 pub base__: ID3D12GraphicsCommandList8_Vtbl,
11071 pub RSSetDepthBias: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, depthbias: f32, depthbiasclamp: f32, slopescaleddepthbias: f32),
11072 pub IASetIndexBufferStripCutValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ibstripcutvalue: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE),
11073}
11074#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11075#[repr(transparent)]
11076pub struct ID3D12Heap(::windows::core::IUnknown);
11077impl ID3D12Heap {
11078 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11079 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11080 }
11081 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11082 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11083 }
11084 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11085 where
11086 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11087 {
11088 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11089 }
11090 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11091 where
11092 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11093 {
11094 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11095 }
11096 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11097 where
11098 T: ::windows::core::ComInterface,
11099 {
11100 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11101 }
11102 pub unsafe fn GetDesc(&self) -> D3D12_HEAP_DESC {
11103 let mut result__: D3D12_HEAP_DESC = ::core::mem::zeroed();
11104 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
11105 result__
11106 }
11107}
11108::windows::imp::interface_hierarchy!(ID3D12Heap, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
11109impl ::core::cmp::PartialEq for ID3D12Heap {
11110 fn eq(&self, other: &Self) -> bool {
11111 self.0 == other.0
11112 }
11113}
11114impl ::core::cmp::Eq for ID3D12Heap {}
11115impl ::core::fmt::Debug for ID3D12Heap {
11116 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11117 f.debug_tuple("ID3D12Heap").field(&self.0).finish()
11118 }
11119}
11120unsafe impl ::core::marker::Send for ID3D12Heap {}
11121unsafe impl ::core::marker::Sync for ID3D12Heap {}
11122unsafe impl ::windows::core::Interface for ID3D12Heap {
11123 type Vtable = ID3D12Heap_Vtbl;
11124}
11125impl ::core::clone::Clone for ID3D12Heap {
11126 fn clone(&self) -> Self {
11127 Self(self.0.clone())
11128 }
11129}
11130unsafe impl ::windows::core::ComInterface for ID3D12Heap {
11131 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6b3b2502_6e51_45b3_90ee_9884265e8df3);
11132}
11133#[repr(C)]
11134#[doc(hidden)]
11135pub struct ID3D12Heap_Vtbl {
11136 pub base__: ID3D12Pageable_Vtbl,
11137 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_HEAP_DESC),
11138}
11139#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11140#[repr(transparent)]
11141pub struct ID3D12Heap1(::windows::core::IUnknown);
11142impl ID3D12Heap1 {
11143 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11144 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11145 }
11146 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11147 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11148 }
11149 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11150 where
11151 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11152 {
11153 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11154 }
11155 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11156 where
11157 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11158 {
11159 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11160 }
11161 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11162 where
11163 T: ::windows::core::ComInterface,
11164 {
11165 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11166 }
11167 pub unsafe fn GetDesc(&self) -> D3D12_HEAP_DESC {
11168 let mut result__: D3D12_HEAP_DESC = ::core::mem::zeroed();
11169 (::windows::core::Interface::vtable(self).base__.GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
11170 result__
11171 }
11172 pub unsafe fn GetProtectedResourceSession<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11173 where
11174 T: ::windows::core::ComInterface,
11175 {
11176 (::windows::core::Interface::vtable(self).GetProtectedResourceSession)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11177 }
11178}
11179::windows::imp::interface_hierarchy!(ID3D12Heap1, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable, ID3D12Heap);
11180impl ::core::cmp::PartialEq for ID3D12Heap1 {
11181 fn eq(&self, other: &Self) -> bool {
11182 self.0 == other.0
11183 }
11184}
11185impl ::core::cmp::Eq for ID3D12Heap1 {}
11186impl ::core::fmt::Debug for ID3D12Heap1 {
11187 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11188 f.debug_tuple("ID3D12Heap1").field(&self.0).finish()
11189 }
11190}
11191unsafe impl ::core::marker::Send for ID3D12Heap1 {}
11192unsafe impl ::core::marker::Sync for ID3D12Heap1 {}
11193unsafe impl ::windows::core::Interface for ID3D12Heap1 {
11194 type Vtable = ID3D12Heap1_Vtbl;
11195}
11196impl ::core::clone::Clone for ID3D12Heap1 {
11197 fn clone(&self) -> Self {
11198 Self(self.0.clone())
11199 }
11200}
11201unsafe impl ::windows::core::ComInterface for ID3D12Heap1 {
11202 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x572f7389_2168_49e3_9693_d6df5871bf6d);
11203}
11204#[repr(C)]
11205#[doc(hidden)]
11206pub struct ID3D12Heap1_Vtbl {
11207 pub base__: ID3D12Heap_Vtbl,
11208 pub GetProtectedResourceSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppprotectedsession: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11209}
11210#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11211#[repr(transparent)]
11212pub struct ID3D12InfoQueue(::windows::core::IUnknown);
11213impl ID3D12InfoQueue {
11214 pub unsafe fn SetMessageCountLimit(&self, messagecountlimit: u64) -> ::windows::core::Result<()> {
11215 (::windows::core::Interface::vtable(self).SetMessageCountLimit)(::windows::core::Interface::as_raw(self), messagecountlimit).ok()
11216 }
11217 pub unsafe fn ClearStoredMessages(&self) {
11218 (::windows::core::Interface::vtable(self).ClearStoredMessages)(::windows::core::Interface::as_raw(self))
11219 }
11220 pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: ::core::option::Option<*mut D3D12_MESSAGE>, pmessagebytelength: *mut usize) -> ::windows::core::Result<()> {
11221 (::windows::core::Interface::vtable(self).GetMessage)(::windows::core::Interface::as_raw(self), messageindex, ::core::mem::transmute(pmessage.unwrap_or(::std::ptr::null_mut())), pmessagebytelength).ok()
11222 }
11223 pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self) -> u64 {
11224 (::windows::core::Interface::vtable(self).GetNumMessagesAllowedByStorageFilter)(::windows::core::Interface::as_raw(self))
11225 }
11226 pub unsafe fn GetNumMessagesDeniedByStorageFilter(&self) -> u64 {
11227 (::windows::core::Interface::vtable(self).GetNumMessagesDeniedByStorageFilter)(::windows::core::Interface::as_raw(self))
11228 }
11229 pub unsafe fn GetNumStoredMessages(&self) -> u64 {
11230 (::windows::core::Interface::vtable(self).GetNumStoredMessages)(::windows::core::Interface::as_raw(self))
11231 }
11232 pub unsafe fn GetNumStoredMessagesAllowedByRetrievalFilter(&self) -> u64 {
11233 (::windows::core::Interface::vtable(self).GetNumStoredMessagesAllowedByRetrievalFilter)(::windows::core::Interface::as_raw(self))
11234 }
11235 pub unsafe fn GetNumMessagesDiscardedByMessageCountLimit(&self) -> u64 {
11236 (::windows::core::Interface::vtable(self).GetNumMessagesDiscardedByMessageCountLimit)(::windows::core::Interface::as_raw(self))
11237 }
11238 pub unsafe fn GetMessageCountLimit(&self) -> u64 {
11239 (::windows::core::Interface::vtable(self).GetMessageCountLimit)(::windows::core::Interface::as_raw(self))
11240 }
11241 pub unsafe fn AddStorageFilterEntries(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11242 (::windows::core::Interface::vtable(self).AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), pfilter).ok()
11243 }
11244 pub unsafe fn GetStorageFilter(&self, pfilter: ::core::option::Option<*mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: *mut usize) -> ::windows::core::Result<()> {
11245 (::windows::core::Interface::vtable(self).GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter.unwrap_or(::std::ptr::null_mut())), pfilterbytelength).ok()
11246 }
11247 pub unsafe fn ClearStorageFilter(&self) {
11248 (::windows::core::Interface::vtable(self).ClearStorageFilter)(::windows::core::Interface::as_raw(self))
11249 }
11250 pub unsafe fn PushEmptyStorageFilter(&self) -> ::windows::core::Result<()> {
11251 (::windows::core::Interface::vtable(self).PushEmptyStorageFilter)(::windows::core::Interface::as_raw(self)).ok()
11252 }
11253 pub unsafe fn PushCopyOfStorageFilter(&self) -> ::windows::core::Result<()> {
11254 (::windows::core::Interface::vtable(self).PushCopyOfStorageFilter)(::windows::core::Interface::as_raw(self)).ok()
11255 }
11256 pub unsafe fn PushStorageFilter(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11257 (::windows::core::Interface::vtable(self).PushStorageFilter)(::windows::core::Interface::as_raw(self), pfilter).ok()
11258 }
11259 pub unsafe fn PopStorageFilter(&self) {
11260 (::windows::core::Interface::vtable(self).PopStorageFilter)(::windows::core::Interface::as_raw(self))
11261 }
11262 pub unsafe fn GetStorageFilterStackSize(&self) -> u32 {
11263 (::windows::core::Interface::vtable(self).GetStorageFilterStackSize)(::windows::core::Interface::as_raw(self))
11264 }
11265 pub unsafe fn AddRetrievalFilterEntries(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11266 (::windows::core::Interface::vtable(self).AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), pfilter).ok()
11267 }
11268 pub unsafe fn GetRetrievalFilter(&self, pfilter: ::core::option::Option<*mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: *mut usize) -> ::windows::core::Result<()> {
11269 (::windows::core::Interface::vtable(self).GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter.unwrap_or(::std::ptr::null_mut())), pfilterbytelength).ok()
11270 }
11271 pub unsafe fn ClearRetrievalFilter(&self) {
11272 (::windows::core::Interface::vtable(self).ClearRetrievalFilter)(::windows::core::Interface::as_raw(self))
11273 }
11274 pub unsafe fn PushEmptyRetrievalFilter(&self) -> ::windows::core::Result<()> {
11275 (::windows::core::Interface::vtable(self).PushEmptyRetrievalFilter)(::windows::core::Interface::as_raw(self)).ok()
11276 }
11277 pub unsafe fn PushCopyOfRetrievalFilter(&self) -> ::windows::core::Result<()> {
11278 (::windows::core::Interface::vtable(self).PushCopyOfRetrievalFilter)(::windows::core::Interface::as_raw(self)).ok()
11279 }
11280 pub unsafe fn PushRetrievalFilter(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11281 (::windows::core::Interface::vtable(self).PushRetrievalFilter)(::windows::core::Interface::as_raw(self), pfilter).ok()
11282 }
11283 pub unsafe fn PopRetrievalFilter(&self) {
11284 (::windows::core::Interface::vtable(self).PopRetrievalFilter)(::windows::core::Interface::as_raw(self))
11285 }
11286 pub unsafe fn GetRetrievalFilterStackSize(&self) -> u32 {
11287 (::windows::core::Interface::vtable(self).GetRetrievalFilterStackSize)(::windows::core::Interface::as_raw(self))
11288 }
11289 pub unsafe fn AddMessage<P0>(&self, category: D3D12_MESSAGE_CATEGORY, severity: D3D12_MESSAGE_SEVERITY, id: D3D12_MESSAGE_ID, pdescription: P0) -> ::windows::core::Result<()>
11290 where
11291 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
11292 {
11293 (::windows::core::Interface::vtable(self).AddMessage)(::windows::core::Interface::as_raw(self), category, severity, id, pdescription.into_param().abi()).ok()
11294 }
11295 pub unsafe fn AddApplicationMessage<P0>(&self, severity: D3D12_MESSAGE_SEVERITY, pdescription: P0) -> ::windows::core::Result<()>
11296 where
11297 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
11298 {
11299 (::windows::core::Interface::vtable(self).AddApplicationMessage)(::windows::core::Interface::as_raw(self), severity, pdescription.into_param().abi()).ok()
11300 }
11301 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11302 #[cfg(feature = "Win32_Foundation")]
11303 pub unsafe fn SetBreakOnCategory<P0>(&self, category: D3D12_MESSAGE_CATEGORY, benable: P0) -> ::windows::core::Result<()>
11304 where
11305 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11306 {
11307 (::windows::core::Interface::vtable(self).SetBreakOnCategory)(::windows::core::Interface::as_raw(self), category, benable.into_param().abi()).ok()
11308 }
11309 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11310 #[cfg(feature = "Win32_Foundation")]
11311 pub unsafe fn SetBreakOnSeverity<P0>(&self, severity: D3D12_MESSAGE_SEVERITY, benable: P0) -> ::windows::core::Result<()>
11312 where
11313 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11314 {
11315 (::windows::core::Interface::vtable(self).SetBreakOnSeverity)(::windows::core::Interface::as_raw(self), severity, benable.into_param().abi()).ok()
11316 }
11317 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11318 #[cfg(feature = "Win32_Foundation")]
11319 pub unsafe fn SetBreakOnID<P0>(&self, id: D3D12_MESSAGE_ID, benable: P0) -> ::windows::core::Result<()>
11320 where
11321 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11322 {
11323 (::windows::core::Interface::vtable(self).SetBreakOnID)(::windows::core::Interface::as_raw(self), id, benable.into_param().abi()).ok()
11324 }
11325 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11326 #[cfg(feature = "Win32_Foundation")]
11327 pub unsafe fn GetBreakOnCategory(&self, category: D3D12_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL {
11328 (::windows::core::Interface::vtable(self).GetBreakOnCategory)(::windows::core::Interface::as_raw(self), category)
11329 }
11330 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11331 #[cfg(feature = "Win32_Foundation")]
11332 pub unsafe fn GetBreakOnSeverity(&self, severity: D3D12_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL {
11333 (::windows::core::Interface::vtable(self).GetBreakOnSeverity)(::windows::core::Interface::as_raw(self), severity)
11334 }
11335 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11336 #[cfg(feature = "Win32_Foundation")]
11337 pub unsafe fn GetBreakOnID(&self, id: D3D12_MESSAGE_ID) -> super::super::Foundation::BOOL {
11338 (::windows::core::Interface::vtable(self).GetBreakOnID)(::windows::core::Interface::as_raw(self), id)
11339 }
11340 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11341 #[cfg(feature = "Win32_Foundation")]
11342 pub unsafe fn SetMuteDebugOutput<P0>(&self, bmute: P0)
11343 where
11344 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11345 {
11346 (::windows::core::Interface::vtable(self).SetMuteDebugOutput)(::windows::core::Interface::as_raw(self), bmute.into_param().abi())
11347 }
11348 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11349 #[cfg(feature = "Win32_Foundation")]
11350 pub unsafe fn GetMuteDebugOutput(&self) -> super::super::Foundation::BOOL {
11351 (::windows::core::Interface::vtable(self).GetMuteDebugOutput)(::windows::core::Interface::as_raw(self))
11352 }
11353}
11354::windows::imp::interface_hierarchy!(ID3D12InfoQueue, ::windows::core::IUnknown);
11355impl ::core::cmp::PartialEq for ID3D12InfoQueue {
11356 fn eq(&self, other: &Self) -> bool {
11357 self.0 == other.0
11358 }
11359}
11360impl ::core::cmp::Eq for ID3D12InfoQueue {}
11361impl ::core::fmt::Debug for ID3D12InfoQueue {
11362 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11363 f.debug_tuple("ID3D12InfoQueue").field(&self.0).finish()
11364 }
11365}
11366unsafe impl ::core::marker::Send for ID3D12InfoQueue {}
11367unsafe impl ::core::marker::Sync for ID3D12InfoQueue {}
11368unsafe impl ::windows::core::Interface for ID3D12InfoQueue {
11369 type Vtable = ID3D12InfoQueue_Vtbl;
11370}
11371impl ::core::clone::Clone for ID3D12InfoQueue {
11372 fn clone(&self) -> Self {
11373 Self(self.0.clone())
11374 }
11375}
11376unsafe impl ::windows::core::ComInterface for ID3D12InfoQueue {
11377 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0742a90b_c387_483f_b946_30a7e4e61458);
11378}
11379#[repr(C)]
11380#[doc(hidden)]
11381pub struct ID3D12InfoQueue_Vtbl {
11382 pub base__: ::windows::core::IUnknown_Vtbl,
11383 pub SetMessageCountLimit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, messagecountlimit: u64) -> ::windows::core::HRESULT,
11384 pub ClearStoredMessages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
11385 pub GetMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, messageindex: u64, pmessage: *mut D3D12_MESSAGE, pmessagebytelength: *mut usize) -> ::windows::core::HRESULT,
11386 pub GetNumMessagesAllowedByStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
11387 pub GetNumMessagesDeniedByStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
11388 pub GetNumStoredMessages: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
11389 pub GetNumStoredMessagesAllowedByRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
11390 pub GetNumMessagesDiscardedByMessageCountLimit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
11391 pub GetMessageCountLimit: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
11392 pub AddStorageFilterEntries: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::HRESULT,
11393 pub GetStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfilter: *mut D3D12_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::core::HRESULT,
11394 pub ClearStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
11395 pub PushEmptyStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11396 pub PushCopyOfStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11397 pub PushStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::HRESULT,
11398 pub PopStorageFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
11399 pub GetStorageFilterStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
11400 pub AddRetrievalFilterEntries: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::HRESULT,
11401 pub GetRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfilter: *mut D3D12_INFO_QUEUE_FILTER, pfilterbytelength: *mut usize) -> ::windows::core::HRESULT,
11402 pub ClearRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
11403 pub PushEmptyRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11404 pub PushCopyOfRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11405 pub PushRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::HRESULT,
11406 pub PopRetrievalFilter: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
11407 pub GetRetrievalFilterStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
11408 pub AddMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, category: D3D12_MESSAGE_CATEGORY, severity: D3D12_MESSAGE_SEVERITY, id: D3D12_MESSAGE_ID, pdescription: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
11409 pub AddApplicationMessage: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, severity: D3D12_MESSAGE_SEVERITY, pdescription: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
11410 #[cfg(feature = "Win32_Foundation")]
11411 pub SetBreakOnCategory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, category: D3D12_MESSAGE_CATEGORY, benable: super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
11412 #[cfg(not(feature = "Win32_Foundation"))]
11413 SetBreakOnCategory: usize,
11414 #[cfg(feature = "Win32_Foundation")]
11415 pub SetBreakOnSeverity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, severity: D3D12_MESSAGE_SEVERITY, benable: super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
11416 #[cfg(not(feature = "Win32_Foundation"))]
11417 SetBreakOnSeverity: usize,
11418 #[cfg(feature = "Win32_Foundation")]
11419 pub SetBreakOnID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: D3D12_MESSAGE_ID, benable: super::super::Foundation::BOOL) -> ::windows::core::HRESULT,
11420 #[cfg(not(feature = "Win32_Foundation"))]
11421 SetBreakOnID: usize,
11422 #[cfg(feature = "Win32_Foundation")]
11423 pub GetBreakOnCategory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, category: D3D12_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL,
11424 #[cfg(not(feature = "Win32_Foundation"))]
11425 GetBreakOnCategory: usize,
11426 #[cfg(feature = "Win32_Foundation")]
11427 pub GetBreakOnSeverity: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, severity: D3D12_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL,
11428 #[cfg(not(feature = "Win32_Foundation"))]
11429 GetBreakOnSeverity: usize,
11430 #[cfg(feature = "Win32_Foundation")]
11431 pub GetBreakOnID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, id: D3D12_MESSAGE_ID) -> super::super::Foundation::BOOL,
11432 #[cfg(not(feature = "Win32_Foundation"))]
11433 GetBreakOnID: usize,
11434 #[cfg(feature = "Win32_Foundation")]
11435 pub SetMuteDebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, bmute: super::super::Foundation::BOOL),
11436 #[cfg(not(feature = "Win32_Foundation"))]
11437 SetMuteDebugOutput: usize,
11438 #[cfg(feature = "Win32_Foundation")]
11439 pub GetMuteDebugOutput: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
11440 #[cfg(not(feature = "Win32_Foundation"))]
11441 GetMuteDebugOutput: usize,
11442}
11443#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11444#[repr(transparent)]
11445pub struct ID3D12InfoQueue1(::windows::core::IUnknown);
11446impl ID3D12InfoQueue1 {
11447 pub unsafe fn SetMessageCountLimit(&self, messagecountlimit: u64) -> ::windows::core::Result<()> {
11448 (::windows::core::Interface::vtable(self).base__.SetMessageCountLimit)(::windows::core::Interface::as_raw(self), messagecountlimit).ok()
11449 }
11450 pub unsafe fn ClearStoredMessages(&self) {
11451 (::windows::core::Interface::vtable(self).base__.ClearStoredMessages)(::windows::core::Interface::as_raw(self))
11452 }
11453 pub unsafe fn GetMessage(&self, messageindex: u64, pmessage: ::core::option::Option<*mut D3D12_MESSAGE>, pmessagebytelength: *mut usize) -> ::windows::core::Result<()> {
11454 (::windows::core::Interface::vtable(self).base__.GetMessage)(::windows::core::Interface::as_raw(self), messageindex, ::core::mem::transmute(pmessage.unwrap_or(::std::ptr::null_mut())), pmessagebytelength).ok()
11455 }
11456 pub unsafe fn GetNumMessagesAllowedByStorageFilter(&self) -> u64 {
11457 (::windows::core::Interface::vtable(self).base__.GetNumMessagesAllowedByStorageFilter)(::windows::core::Interface::as_raw(self))
11458 }
11459 pub unsafe fn GetNumMessagesDeniedByStorageFilter(&self) -> u64 {
11460 (::windows::core::Interface::vtable(self).base__.GetNumMessagesDeniedByStorageFilter)(::windows::core::Interface::as_raw(self))
11461 }
11462 pub unsafe fn GetNumStoredMessages(&self) -> u64 {
11463 (::windows::core::Interface::vtable(self).base__.GetNumStoredMessages)(::windows::core::Interface::as_raw(self))
11464 }
11465 pub unsafe fn GetNumStoredMessagesAllowedByRetrievalFilter(&self) -> u64 {
11466 (::windows::core::Interface::vtable(self).base__.GetNumStoredMessagesAllowedByRetrievalFilter)(::windows::core::Interface::as_raw(self))
11467 }
11468 pub unsafe fn GetNumMessagesDiscardedByMessageCountLimit(&self) -> u64 {
11469 (::windows::core::Interface::vtable(self).base__.GetNumMessagesDiscardedByMessageCountLimit)(::windows::core::Interface::as_raw(self))
11470 }
11471 pub unsafe fn GetMessageCountLimit(&self) -> u64 {
11472 (::windows::core::Interface::vtable(self).base__.GetMessageCountLimit)(::windows::core::Interface::as_raw(self))
11473 }
11474 pub unsafe fn AddStorageFilterEntries(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11475 (::windows::core::Interface::vtable(self).base__.AddStorageFilterEntries)(::windows::core::Interface::as_raw(self), pfilter).ok()
11476 }
11477 pub unsafe fn GetStorageFilter(&self, pfilter: ::core::option::Option<*mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: *mut usize) -> ::windows::core::Result<()> {
11478 (::windows::core::Interface::vtable(self).base__.GetStorageFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter.unwrap_or(::std::ptr::null_mut())), pfilterbytelength).ok()
11479 }
11480 pub unsafe fn ClearStorageFilter(&self) {
11481 (::windows::core::Interface::vtable(self).base__.ClearStorageFilter)(::windows::core::Interface::as_raw(self))
11482 }
11483 pub unsafe fn PushEmptyStorageFilter(&self) -> ::windows::core::Result<()> {
11484 (::windows::core::Interface::vtable(self).base__.PushEmptyStorageFilter)(::windows::core::Interface::as_raw(self)).ok()
11485 }
11486 pub unsafe fn PushCopyOfStorageFilter(&self) -> ::windows::core::Result<()> {
11487 (::windows::core::Interface::vtable(self).base__.PushCopyOfStorageFilter)(::windows::core::Interface::as_raw(self)).ok()
11488 }
11489 pub unsafe fn PushStorageFilter(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11490 (::windows::core::Interface::vtable(self).base__.PushStorageFilter)(::windows::core::Interface::as_raw(self), pfilter).ok()
11491 }
11492 pub unsafe fn PopStorageFilter(&self) {
11493 (::windows::core::Interface::vtable(self).base__.PopStorageFilter)(::windows::core::Interface::as_raw(self))
11494 }
11495 pub unsafe fn GetStorageFilterStackSize(&self) -> u32 {
11496 (::windows::core::Interface::vtable(self).base__.GetStorageFilterStackSize)(::windows::core::Interface::as_raw(self))
11497 }
11498 pub unsafe fn AddRetrievalFilterEntries(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11499 (::windows::core::Interface::vtable(self).base__.AddRetrievalFilterEntries)(::windows::core::Interface::as_raw(self), pfilter).ok()
11500 }
11501 pub unsafe fn GetRetrievalFilter(&self, pfilter: ::core::option::Option<*mut D3D12_INFO_QUEUE_FILTER>, pfilterbytelength: *mut usize) -> ::windows::core::Result<()> {
11502 (::windows::core::Interface::vtable(self).base__.GetRetrievalFilter)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pfilter.unwrap_or(::std::ptr::null_mut())), pfilterbytelength).ok()
11503 }
11504 pub unsafe fn ClearRetrievalFilter(&self) {
11505 (::windows::core::Interface::vtable(self).base__.ClearRetrievalFilter)(::windows::core::Interface::as_raw(self))
11506 }
11507 pub unsafe fn PushEmptyRetrievalFilter(&self) -> ::windows::core::Result<()> {
11508 (::windows::core::Interface::vtable(self).base__.PushEmptyRetrievalFilter)(::windows::core::Interface::as_raw(self)).ok()
11509 }
11510 pub unsafe fn PushCopyOfRetrievalFilter(&self) -> ::windows::core::Result<()> {
11511 (::windows::core::Interface::vtable(self).base__.PushCopyOfRetrievalFilter)(::windows::core::Interface::as_raw(self)).ok()
11512 }
11513 pub unsafe fn PushRetrievalFilter(&self, pfilter: *const D3D12_INFO_QUEUE_FILTER) -> ::windows::core::Result<()> {
11514 (::windows::core::Interface::vtable(self).base__.PushRetrievalFilter)(::windows::core::Interface::as_raw(self), pfilter).ok()
11515 }
11516 pub unsafe fn PopRetrievalFilter(&self) {
11517 (::windows::core::Interface::vtable(self).base__.PopRetrievalFilter)(::windows::core::Interface::as_raw(self))
11518 }
11519 pub unsafe fn GetRetrievalFilterStackSize(&self) -> u32 {
11520 (::windows::core::Interface::vtable(self).base__.GetRetrievalFilterStackSize)(::windows::core::Interface::as_raw(self))
11521 }
11522 pub unsafe fn AddMessage<P0>(&self, category: D3D12_MESSAGE_CATEGORY, severity: D3D12_MESSAGE_SEVERITY, id: D3D12_MESSAGE_ID, pdescription: P0) -> ::windows::core::Result<()>
11523 where
11524 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
11525 {
11526 (::windows::core::Interface::vtable(self).base__.AddMessage)(::windows::core::Interface::as_raw(self), category, severity, id, pdescription.into_param().abi()).ok()
11527 }
11528 pub unsafe fn AddApplicationMessage<P0>(&self, severity: D3D12_MESSAGE_SEVERITY, pdescription: P0) -> ::windows::core::Result<()>
11529 where
11530 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
11531 {
11532 (::windows::core::Interface::vtable(self).base__.AddApplicationMessage)(::windows::core::Interface::as_raw(self), severity, pdescription.into_param().abi()).ok()
11533 }
11534 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11535 #[cfg(feature = "Win32_Foundation")]
11536 pub unsafe fn SetBreakOnCategory<P0>(&self, category: D3D12_MESSAGE_CATEGORY, benable: P0) -> ::windows::core::Result<()>
11537 where
11538 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11539 {
11540 (::windows::core::Interface::vtable(self).base__.SetBreakOnCategory)(::windows::core::Interface::as_raw(self), category, benable.into_param().abi()).ok()
11541 }
11542 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11543 #[cfg(feature = "Win32_Foundation")]
11544 pub unsafe fn SetBreakOnSeverity<P0>(&self, severity: D3D12_MESSAGE_SEVERITY, benable: P0) -> ::windows::core::Result<()>
11545 where
11546 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11547 {
11548 (::windows::core::Interface::vtable(self).base__.SetBreakOnSeverity)(::windows::core::Interface::as_raw(self), severity, benable.into_param().abi()).ok()
11549 }
11550 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11551 #[cfg(feature = "Win32_Foundation")]
11552 pub unsafe fn SetBreakOnID<P0>(&self, id: D3D12_MESSAGE_ID, benable: P0) -> ::windows::core::Result<()>
11553 where
11554 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11555 {
11556 (::windows::core::Interface::vtable(self).base__.SetBreakOnID)(::windows::core::Interface::as_raw(self), id, benable.into_param().abi()).ok()
11557 }
11558 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11559 #[cfg(feature = "Win32_Foundation")]
11560 pub unsafe fn GetBreakOnCategory(&self, category: D3D12_MESSAGE_CATEGORY) -> super::super::Foundation::BOOL {
11561 (::windows::core::Interface::vtable(self).base__.GetBreakOnCategory)(::windows::core::Interface::as_raw(self), category)
11562 }
11563 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11564 #[cfg(feature = "Win32_Foundation")]
11565 pub unsafe fn GetBreakOnSeverity(&self, severity: D3D12_MESSAGE_SEVERITY) -> super::super::Foundation::BOOL {
11566 (::windows::core::Interface::vtable(self).base__.GetBreakOnSeverity)(::windows::core::Interface::as_raw(self), severity)
11567 }
11568 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11569 #[cfg(feature = "Win32_Foundation")]
11570 pub unsafe fn GetBreakOnID(&self, id: D3D12_MESSAGE_ID) -> super::super::Foundation::BOOL {
11571 (::windows::core::Interface::vtable(self).base__.GetBreakOnID)(::windows::core::Interface::as_raw(self), id)
11572 }
11573 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11574 #[cfg(feature = "Win32_Foundation")]
11575 pub unsafe fn SetMuteDebugOutput<P0>(&self, bmute: P0)
11576 where
11577 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
11578 {
11579 (::windows::core::Interface::vtable(self).base__.SetMuteDebugOutput)(::windows::core::Interface::as_raw(self), bmute.into_param().abi())
11580 }
11581 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
11582 #[cfg(feature = "Win32_Foundation")]
11583 pub unsafe fn GetMuteDebugOutput(&self) -> super::super::Foundation::BOOL {
11584 (::windows::core::Interface::vtable(self).base__.GetMuteDebugOutput)(::windows::core::Interface::as_raw(self))
11585 }
11586 pub unsafe fn RegisterMessageCallback(&self, callbackfunc: D3D12MessageFunc, callbackfilterflags: D3D12_MESSAGE_CALLBACK_FLAGS, pcontext: *const ::core::ffi::c_void, pcallbackcookie: *mut u32) -> ::windows::core::Result<()> {
11587 (::windows::core::Interface::vtable(self).RegisterMessageCallback)(::windows::core::Interface::as_raw(self), callbackfunc, callbackfilterflags, pcontext, pcallbackcookie).ok()
11588 }
11589 pub unsafe fn UnregisterMessageCallback(&self, callbackcookie: u32) -> ::windows::core::Result<()> {
11590 (::windows::core::Interface::vtable(self).UnregisterMessageCallback)(::windows::core::Interface::as_raw(self), callbackcookie).ok()
11591 }
11592}
11593::windows::imp::interface_hierarchy!(ID3D12InfoQueue1, ::windows::core::IUnknown, ID3D12InfoQueue);
11594impl ::core::cmp::PartialEq for ID3D12InfoQueue1 {
11595 fn eq(&self, other: &Self) -> bool {
11596 self.0 == other.0
11597 }
11598}
11599impl ::core::cmp::Eq for ID3D12InfoQueue1 {}
11600impl ::core::fmt::Debug for ID3D12InfoQueue1 {
11601 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11602 f.debug_tuple("ID3D12InfoQueue1").field(&self.0).finish()
11603 }
11604}
11605unsafe impl ::core::marker::Send for ID3D12InfoQueue1 {}
11606unsafe impl ::core::marker::Sync for ID3D12InfoQueue1 {}
11607unsafe impl ::windows::core::Interface for ID3D12InfoQueue1 {
11608 type Vtable = ID3D12InfoQueue1_Vtbl;
11609}
11610impl ::core::clone::Clone for ID3D12InfoQueue1 {
11611 fn clone(&self) -> Self {
11612 Self(self.0.clone())
11613 }
11614}
11615unsafe impl ::windows::core::ComInterface for ID3D12InfoQueue1 {
11616 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x2852dd88_b484_4c0c_b6b1_67168500e600);
11617}
11618#[repr(C)]
11619#[doc(hidden)]
11620pub struct ID3D12InfoQueue1_Vtbl {
11621 pub base__: ID3D12InfoQueue_Vtbl,
11622 pub RegisterMessageCallback: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbackfunc: D3D12MessageFunc, callbackfilterflags: D3D12_MESSAGE_CALLBACK_FLAGS, pcontext: *const ::core::ffi::c_void, pcallbackcookie: *mut u32) -> ::windows::core::HRESULT,
11623 pub UnregisterMessageCallback: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, callbackcookie: u32) -> ::windows::core::HRESULT,
11624}
11625#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11626#[repr(transparent)]
11627pub struct ID3D12LibraryReflection(::windows::core::IUnknown);
11628impl ID3D12LibraryReflection {
11629 pub unsafe fn GetDesc(&self) -> ::windows::core::Result<D3D12_LIBRARY_DESC> {
11630 let mut result__ = ::windows::core::zeroed::<D3D12_LIBRARY_DESC>();
11631 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
11632 }
11633 pub unsafe fn GetFunctionByIndex(&self, functionindex: i32) -> ::core::option::Option<ID3D12FunctionReflection> {
11634 (::windows::core::Interface::vtable(self).GetFunctionByIndex)(::windows::core::Interface::as_raw(self), functionindex)
11635 }
11636}
11637::windows::imp::interface_hierarchy!(ID3D12LibraryReflection, ::windows::core::IUnknown);
11638impl ::core::cmp::PartialEq for ID3D12LibraryReflection {
11639 fn eq(&self, other: &Self) -> bool {
11640 self.0 == other.0
11641 }
11642}
11643impl ::core::cmp::Eq for ID3D12LibraryReflection {}
11644impl ::core::fmt::Debug for ID3D12LibraryReflection {
11645 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11646 f.debug_tuple("ID3D12LibraryReflection").field(&self.0).finish()
11647 }
11648}
11649unsafe impl ::core::marker::Send for ID3D12LibraryReflection {}
11650unsafe impl ::core::marker::Sync for ID3D12LibraryReflection {}
11651unsafe impl ::windows::core::Interface for ID3D12LibraryReflection {
11652 type Vtable = ID3D12LibraryReflection_Vtbl;
11653}
11654impl ::core::clone::Clone for ID3D12LibraryReflection {
11655 fn clone(&self) -> Self {
11656 Self(self.0.clone())
11657 }
11658}
11659unsafe impl ::windows::core::ComInterface for ID3D12LibraryReflection {
11660 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8e349d19_54db_4a56_9dc9_119d87bdb804);
11661}
11662#[repr(C)]
11663#[doc(hidden)]
11664pub struct ID3D12LibraryReflection_Vtbl {
11665 pub base__: ::windows::core::IUnknown_Vtbl,
11666 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_LIBRARY_DESC) -> ::windows::core::HRESULT,
11667 pub GetFunctionByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, functionindex: i32) -> ::core::option::Option<ID3D12FunctionReflection>,
11668}
11669#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11670#[repr(transparent)]
11671pub struct ID3D12LifetimeOwner(::windows::core::IUnknown);
11672impl ID3D12LifetimeOwner {
11673 pub unsafe fn LifetimeStateUpdated(&self, newstate: D3D12_LIFETIME_STATE) {
11674 (::windows::core::Interface::vtable(self).LifetimeStateUpdated)(::windows::core::Interface::as_raw(self), newstate)
11675 }
11676}
11677::windows::imp::interface_hierarchy!(ID3D12LifetimeOwner, ::windows::core::IUnknown);
11678impl ::core::cmp::PartialEq for ID3D12LifetimeOwner {
11679 fn eq(&self, other: &Self) -> bool {
11680 self.0 == other.0
11681 }
11682}
11683impl ::core::cmp::Eq for ID3D12LifetimeOwner {}
11684impl ::core::fmt::Debug for ID3D12LifetimeOwner {
11685 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11686 f.debug_tuple("ID3D12LifetimeOwner").field(&self.0).finish()
11687 }
11688}
11689unsafe impl ::core::marker::Send for ID3D12LifetimeOwner {}
11690unsafe impl ::core::marker::Sync for ID3D12LifetimeOwner {}
11691unsafe impl ::windows::core::Interface for ID3D12LifetimeOwner {
11692 type Vtable = ID3D12LifetimeOwner_Vtbl;
11693}
11694impl ::core::clone::Clone for ID3D12LifetimeOwner {
11695 fn clone(&self) -> Self {
11696 Self(self.0.clone())
11697 }
11698}
11699unsafe impl ::windows::core::ComInterface for ID3D12LifetimeOwner {
11700 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe667af9f_cd56_4f46_83ce_032e595d70a8);
11701}
11702#[repr(C)]
11703#[doc(hidden)]
11704pub struct ID3D12LifetimeOwner_Vtbl {
11705 pub base__: ::windows::core::IUnknown_Vtbl,
11706 pub LifetimeStateUpdated: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, newstate: D3D12_LIFETIME_STATE),
11707}
11708#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11709#[repr(transparent)]
11710pub struct ID3D12LifetimeTracker(::windows::core::IUnknown);
11711impl ID3D12LifetimeTracker {
11712 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11713 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11714 }
11715 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11716 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11717 }
11718 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11719 where
11720 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11721 {
11722 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11723 }
11724 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11725 where
11726 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11727 {
11728 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11729 }
11730 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11731 where
11732 T: ::windows::core::ComInterface,
11733 {
11734 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11735 }
11736 pub unsafe fn DestroyOwnedObject<P0>(&self, pobject: P0) -> ::windows::core::Result<()>
11737 where
11738 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
11739 {
11740 (::windows::core::Interface::vtable(self).DestroyOwnedObject)(::windows::core::Interface::as_raw(self), pobject.into_param().abi()).ok()
11741 }
11742}
11743::windows::imp::interface_hierarchy!(ID3D12LifetimeTracker, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
11744impl ::core::cmp::PartialEq for ID3D12LifetimeTracker {
11745 fn eq(&self, other: &Self) -> bool {
11746 self.0 == other.0
11747 }
11748}
11749impl ::core::cmp::Eq for ID3D12LifetimeTracker {}
11750impl ::core::fmt::Debug for ID3D12LifetimeTracker {
11751 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11752 f.debug_tuple("ID3D12LifetimeTracker").field(&self.0).finish()
11753 }
11754}
11755unsafe impl ::core::marker::Send for ID3D12LifetimeTracker {}
11756unsafe impl ::core::marker::Sync for ID3D12LifetimeTracker {}
11757unsafe impl ::windows::core::Interface for ID3D12LifetimeTracker {
11758 type Vtable = ID3D12LifetimeTracker_Vtbl;
11759}
11760impl ::core::clone::Clone for ID3D12LifetimeTracker {
11761 fn clone(&self) -> Self {
11762 Self(self.0.clone())
11763 }
11764}
11765unsafe impl ::windows::core::ComInterface for ID3D12LifetimeTracker {
11766 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x3fd03d36_4eb1_424a_a582_494ecb8ba813);
11767}
11768#[repr(C)]
11769#[doc(hidden)]
11770pub struct ID3D12LifetimeTracker_Vtbl {
11771 pub base__: ID3D12DeviceChild_Vtbl,
11772 pub DestroyOwnedObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pobject: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11773}
11774#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11775#[repr(transparent)]
11776pub struct ID3D12MetaCommand(::windows::core::IUnknown);
11777impl ID3D12MetaCommand {
11778 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11779 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11780 }
11781 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11782 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11783 }
11784 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11785 where
11786 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11787 {
11788 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11789 }
11790 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11791 where
11792 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11793 {
11794 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11795 }
11796 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11797 where
11798 T: ::windows::core::ComInterface,
11799 {
11800 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11801 }
11802 pub unsafe fn GetRequiredParameterResourceSize(&self, stage: D3D12_META_COMMAND_PARAMETER_STAGE, parameterindex: u32) -> u64 {
11803 (::windows::core::Interface::vtable(self).GetRequiredParameterResourceSize)(::windows::core::Interface::as_raw(self), stage, parameterindex)
11804 }
11805}
11806::windows::imp::interface_hierarchy!(ID3D12MetaCommand, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
11807impl ::core::cmp::PartialEq for ID3D12MetaCommand {
11808 fn eq(&self, other: &Self) -> bool {
11809 self.0 == other.0
11810 }
11811}
11812impl ::core::cmp::Eq for ID3D12MetaCommand {}
11813impl ::core::fmt::Debug for ID3D12MetaCommand {
11814 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11815 f.debug_tuple("ID3D12MetaCommand").field(&self.0).finish()
11816 }
11817}
11818unsafe impl ::core::marker::Send for ID3D12MetaCommand {}
11819unsafe impl ::core::marker::Sync for ID3D12MetaCommand {}
11820unsafe impl ::windows::core::Interface for ID3D12MetaCommand {
11821 type Vtable = ID3D12MetaCommand_Vtbl;
11822}
11823impl ::core::clone::Clone for ID3D12MetaCommand {
11824 fn clone(&self) -> Self {
11825 Self(self.0.clone())
11826 }
11827}
11828unsafe impl ::windows::core::ComInterface for ID3D12MetaCommand {
11829 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xdbb84c27_36ce_4fc9_b801_f048c46ac570);
11830}
11831#[repr(C)]
11832#[doc(hidden)]
11833pub struct ID3D12MetaCommand_Vtbl {
11834 pub base__: ID3D12Pageable_Vtbl,
11835 pub GetRequiredParameterResourceSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, stage: D3D12_META_COMMAND_PARAMETER_STAGE, parameterindex: u32) -> u64,
11836}
11837#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11838#[repr(transparent)]
11839pub struct ID3D12Object(::windows::core::IUnknown);
11840impl ID3D12Object {
11841 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11842 (::windows::core::Interface::vtable(self).GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11843 }
11844 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11845 (::windows::core::Interface::vtable(self).SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11846 }
11847 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11848 where
11849 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11850 {
11851 (::windows::core::Interface::vtable(self).SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11852 }
11853 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11854 where
11855 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11856 {
11857 (::windows::core::Interface::vtable(self).SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11858 }
11859}
11860::windows::imp::interface_hierarchy!(ID3D12Object, ::windows::core::IUnknown);
11861impl ::core::cmp::PartialEq for ID3D12Object {
11862 fn eq(&self, other: &Self) -> bool {
11863 self.0 == other.0
11864 }
11865}
11866impl ::core::cmp::Eq for ID3D12Object {}
11867impl ::core::fmt::Debug for ID3D12Object {
11868 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11869 f.debug_tuple("ID3D12Object").field(&self.0).finish()
11870 }
11871}
11872unsafe impl ::core::marker::Send for ID3D12Object {}
11873unsafe impl ::core::marker::Sync for ID3D12Object {}
11874unsafe impl ::windows::core::Interface for ID3D12Object {
11875 type Vtable = ID3D12Object_Vtbl;
11876}
11877impl ::core::clone::Clone for ID3D12Object {
11878 fn clone(&self) -> Self {
11879 Self(self.0.clone())
11880 }
11881}
11882unsafe impl ::windows::core::ComInterface for ID3D12Object {
11883 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc4fec28f_7966_4e95_9f94_f431cb56c3b8);
11884}
11885#[repr(C)]
11886#[doc(hidden)]
11887pub struct ID3D12Object_Vtbl {
11888 pub base__: ::windows::core::IUnknown_Vtbl,
11889 pub GetPrivateData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11890 pub SetPrivateData: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, datasize: u32, pdata: *const ::core::ffi::c_void) -> ::windows::core::HRESULT,
11891 pub SetPrivateDataInterface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID, pdata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
11892 pub SetName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCWSTR) -> ::windows::core::HRESULT,
11893}
11894#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11895#[repr(transparent)]
11896pub struct ID3D12Pageable(::windows::core::IUnknown);
11897impl ID3D12Pageable {
11898 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11899 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11900 }
11901 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11902 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11903 }
11904 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11905 where
11906 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11907 {
11908 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11909 }
11910 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11911 where
11912 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11913 {
11914 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11915 }
11916 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11917 where
11918 T: ::windows::core::ComInterface,
11919 {
11920 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11921 }
11922}
11923::windows::imp::interface_hierarchy!(ID3D12Pageable, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
11924impl ::core::cmp::PartialEq for ID3D12Pageable {
11925 fn eq(&self, other: &Self) -> bool {
11926 self.0 == other.0
11927 }
11928}
11929impl ::core::cmp::Eq for ID3D12Pageable {}
11930impl ::core::fmt::Debug for ID3D12Pageable {
11931 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
11932 f.debug_tuple("ID3D12Pageable").field(&self.0).finish()
11933 }
11934}
11935unsafe impl ::core::marker::Send for ID3D12Pageable {}
11936unsafe impl ::core::marker::Sync for ID3D12Pageable {}
11937unsafe impl ::windows::core::Interface for ID3D12Pageable {
11938 type Vtable = ID3D12Pageable_Vtbl;
11939}
11940impl ::core::clone::Clone for ID3D12Pageable {
11941 fn clone(&self) -> Self {
11942 Self(self.0.clone())
11943 }
11944}
11945unsafe impl ::windows::core::ComInterface for ID3D12Pageable {
11946 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x63ee58fb_1268_4835_86da_f008ce62f0d6);
11947}
11948#[repr(C)]
11949#[doc(hidden)]
11950pub struct ID3D12Pageable_Vtbl {
11951 pub base__: ID3D12DeviceChild_Vtbl,
11952}
11953#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
11954#[repr(transparent)]
11955pub struct ID3D12PipelineLibrary(::windows::core::IUnknown);
11956impl ID3D12PipelineLibrary {
11957 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11958 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
11959 }
11960 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
11961 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
11962 }
11963 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
11964 where
11965 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
11966 {
11967 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
11968 }
11969 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
11970 where
11971 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11972 {
11973 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
11974 }
11975 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
11976 where
11977 T: ::windows::core::ComInterface,
11978 {
11979 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
11980 }
11981 pub unsafe fn StorePipeline<P0, P1>(&self, pname: P0, ppipeline: P1) -> ::windows::core::Result<()>
11982 where
11983 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11984 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
11985 {
11986 (::windows::core::Interface::vtable(self).StorePipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), ppipeline.into_param().abi()).ok()
11987 }
11988 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
11989 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
11990 pub unsafe fn LoadGraphicsPipeline<P0, T>(&self, pname: P0, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
11991 where
11992 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
11993 T: ::windows::core::ComInterface,
11994 {
11995 let mut result__ = ::std::ptr::null_mut();
11996 (::windows::core::Interface::vtable(self).LoadGraphicsPipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
11997 }
11998 pub unsafe fn LoadComputePipeline<P0, T>(&self, pname: P0, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
11999 where
12000 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12001 T: ::windows::core::ComInterface,
12002 {
12003 let mut result__ = ::std::ptr::null_mut();
12004 (::windows::core::Interface::vtable(self).LoadComputePipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
12005 }
12006 pub unsafe fn GetSerializedSize(&self) -> usize {
12007 (::windows::core::Interface::vtable(self).GetSerializedSize)(::windows::core::Interface::as_raw(self))
12008 }
12009 pub unsafe fn Serialize(&self, pdata: &mut [u8]) -> ::windows::core::Result<()> {
12010 (::windows::core::Interface::vtable(self).Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok()
12011 }
12012}
12013::windows::imp::interface_hierarchy!(ID3D12PipelineLibrary, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
12014impl ::core::cmp::PartialEq for ID3D12PipelineLibrary {
12015 fn eq(&self, other: &Self) -> bool {
12016 self.0 == other.0
12017 }
12018}
12019impl ::core::cmp::Eq for ID3D12PipelineLibrary {}
12020impl ::core::fmt::Debug for ID3D12PipelineLibrary {
12021 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12022 f.debug_tuple("ID3D12PipelineLibrary").field(&self.0).finish()
12023 }
12024}
12025unsafe impl ::core::marker::Send for ID3D12PipelineLibrary {}
12026unsafe impl ::core::marker::Sync for ID3D12PipelineLibrary {}
12027unsafe impl ::windows::core::Interface for ID3D12PipelineLibrary {
12028 type Vtable = ID3D12PipelineLibrary_Vtbl;
12029}
12030impl ::core::clone::Clone for ID3D12PipelineLibrary {
12031 fn clone(&self) -> Self {
12032 Self(self.0.clone())
12033 }
12034}
12035unsafe impl ::windows::core::ComInterface for ID3D12PipelineLibrary {
12036 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc64226a8_9201_46af_b4cc_53fb9ff7414f);
12037}
12038#[repr(C)]
12039#[doc(hidden)]
12040pub struct ID3D12PipelineLibrary_Vtbl {
12041 pub base__: ID3D12DeviceChild_Vtbl,
12042 pub StorePipeline: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pname: ::windows::core::PCWSTR, ppipeline: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12043 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
12044 pub LoadGraphicsPipeline: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pname: ::windows::core::PCWSTR, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC, riid: *const ::windows::core::GUID, pppipelinestate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12045 #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common")))]
12046 LoadGraphicsPipeline: usize,
12047 pub LoadComputePipeline: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pname: ::windows::core::PCWSTR, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC, riid: *const ::windows::core::GUID, pppipelinestate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12048 pub GetSerializedSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> usize,
12049 pub Serialize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdata: *mut ::core::ffi::c_void, datasizeinbytes: usize) -> ::windows::core::HRESULT,
12050}
12051#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12052#[repr(transparent)]
12053pub struct ID3D12PipelineLibrary1(::windows::core::IUnknown);
12054impl ID3D12PipelineLibrary1 {
12055 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12056 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12057 }
12058 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12059 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12060 }
12061 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12062 where
12063 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12064 {
12065 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12066 }
12067 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12068 where
12069 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12070 {
12071 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12072 }
12073 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12074 where
12075 T: ::windows::core::ComInterface,
12076 {
12077 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12078 }
12079 pub unsafe fn StorePipeline<P0, P1>(&self, pname: P0, ppipeline: P1) -> ::windows::core::Result<()>
12080 where
12081 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12082 P1: ::windows::core::IntoParam<ID3D12PipelineState>,
12083 {
12084 (::windows::core::Interface::vtable(self).base__.StorePipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), ppipeline.into_param().abi()).ok()
12085 }
12086 #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
12087 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
12088 pub unsafe fn LoadGraphicsPipeline<P0, T>(&self, pname: P0, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
12089 where
12090 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12091 T: ::windows::core::ComInterface,
12092 {
12093 let mut result__ = ::std::ptr::null_mut();
12094 (::windows::core::Interface::vtable(self).base__.LoadGraphicsPipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
12095 }
12096 pub unsafe fn LoadComputePipeline<P0, T>(&self, pname: P0, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC) -> ::windows::core::Result<T>
12097 where
12098 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12099 T: ::windows::core::ComInterface,
12100 {
12101 let mut result__ = ::std::ptr::null_mut();
12102 (::windows::core::Interface::vtable(self).base__.LoadComputePipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
12103 }
12104 pub unsafe fn GetSerializedSize(&self) -> usize {
12105 (::windows::core::Interface::vtable(self).base__.GetSerializedSize)(::windows::core::Interface::as_raw(self))
12106 }
12107 pub unsafe fn Serialize(&self, pdata: &mut [u8]) -> ::windows::core::Result<()> {
12108 (::windows::core::Interface::vtable(self).base__.Serialize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pdata.as_ptr()), pdata.len() as _).ok()
12109 }
12110 pub unsafe fn LoadPipeline<P0, T>(&self, pname: P0, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC) -> ::windows::core::Result<T>
12111 where
12112 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12113 T: ::windows::core::ComInterface,
12114 {
12115 let mut result__ = ::std::ptr::null_mut();
12116 (::windows::core::Interface::vtable(self).LoadPipeline)(::windows::core::Interface::as_raw(self), pname.into_param().abi(), pdesc, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
12117 }
12118}
12119::windows::imp::interface_hierarchy!(ID3D12PipelineLibrary1, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12PipelineLibrary);
12120impl ::core::cmp::PartialEq for ID3D12PipelineLibrary1 {
12121 fn eq(&self, other: &Self) -> bool {
12122 self.0 == other.0
12123 }
12124}
12125impl ::core::cmp::Eq for ID3D12PipelineLibrary1 {}
12126impl ::core::fmt::Debug for ID3D12PipelineLibrary1 {
12127 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12128 f.debug_tuple("ID3D12PipelineLibrary1").field(&self.0).finish()
12129 }
12130}
12131unsafe impl ::core::marker::Send for ID3D12PipelineLibrary1 {}
12132unsafe impl ::core::marker::Sync for ID3D12PipelineLibrary1 {}
12133unsafe impl ::windows::core::Interface for ID3D12PipelineLibrary1 {
12134 type Vtable = ID3D12PipelineLibrary1_Vtbl;
12135}
12136impl ::core::clone::Clone for ID3D12PipelineLibrary1 {
12137 fn clone(&self) -> Self {
12138 Self(self.0.clone())
12139 }
12140}
12141unsafe impl ::windows::core::ComInterface for ID3D12PipelineLibrary1 {
12142 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x80eabf42_2568_4e5e_bd82_c37f86961dc3);
12143}
12144#[repr(C)]
12145#[doc(hidden)]
12146pub struct ID3D12PipelineLibrary1_Vtbl {
12147 pub base__: ID3D12PipelineLibrary_Vtbl,
12148 pub LoadPipeline: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pname: ::windows::core::PCWSTR, pdesc: *const D3D12_PIPELINE_STATE_STREAM_DESC, riid: *const ::windows::core::GUID, pppipelinestate: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12149}
12150#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12151#[repr(transparent)]
12152pub struct ID3D12PipelineState(::windows::core::IUnknown);
12153impl ID3D12PipelineState {
12154 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12155 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12156 }
12157 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12158 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12159 }
12160 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12161 where
12162 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12163 {
12164 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12165 }
12166 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12167 where
12168 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12169 {
12170 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12171 }
12172 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12173 where
12174 T: ::windows::core::ComInterface,
12175 {
12176 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12177 }
12178 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
12179 #[cfg(feature = "Win32_Graphics_Direct3D")]
12180 pub unsafe fn GetCachedBlob(&self) -> ::windows::core::Result<super::Direct3D::ID3DBlob> {
12181 let mut result__ = ::windows::core::zeroed::<super::Direct3D::ID3DBlob>();
12182 (::windows::core::Interface::vtable(self).GetCachedBlob)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
12183 }
12184}
12185::windows::imp::interface_hierarchy!(ID3D12PipelineState, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
12186impl ::core::cmp::PartialEq for ID3D12PipelineState {
12187 fn eq(&self, other: &Self) -> bool {
12188 self.0 == other.0
12189 }
12190}
12191impl ::core::cmp::Eq for ID3D12PipelineState {}
12192impl ::core::fmt::Debug for ID3D12PipelineState {
12193 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12194 f.debug_tuple("ID3D12PipelineState").field(&self.0).finish()
12195 }
12196}
12197unsafe impl ::core::marker::Send for ID3D12PipelineState {}
12198unsafe impl ::core::marker::Sync for ID3D12PipelineState {}
12199unsafe impl ::windows::core::Interface for ID3D12PipelineState {
12200 type Vtable = ID3D12PipelineState_Vtbl;
12201}
12202impl ::core::clone::Clone for ID3D12PipelineState {
12203 fn clone(&self) -> Self {
12204 Self(self.0.clone())
12205 }
12206}
12207unsafe impl ::windows::core::ComInterface for ID3D12PipelineState {
12208 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x765a30f3_f624_4c6f_a828_ace948622445);
12209}
12210#[repr(C)]
12211#[doc(hidden)]
12212pub struct ID3D12PipelineState_Vtbl {
12213 pub base__: ID3D12Pageable_Vtbl,
12214 #[cfg(feature = "Win32_Graphics_Direct3D")]
12215 pub GetCachedBlob: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ppblob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12216 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
12217 GetCachedBlob: usize,
12218}
12219#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12220#[repr(transparent)]
12221pub struct ID3D12ProtectedResourceSession(::windows::core::IUnknown);
12222impl ID3D12ProtectedResourceSession {
12223 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12224 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12225 }
12226 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12227 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12228 }
12229 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12230 where
12231 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12232 {
12233 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12234 }
12235 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12236 where
12237 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12238 {
12239 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12240 }
12241 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12242 where
12243 T: ::windows::core::ComInterface,
12244 {
12245 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12246 }
12247 pub unsafe fn GetStatusFence<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12248 where
12249 T: ::windows::core::ComInterface,
12250 {
12251 (::windows::core::Interface::vtable(self).base__.GetStatusFence)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12252 }
12253 pub unsafe fn GetSessionStatus(&self) -> D3D12_PROTECTED_SESSION_STATUS {
12254 (::windows::core::Interface::vtable(self).base__.GetSessionStatus)(::windows::core::Interface::as_raw(self))
12255 }
12256 pub unsafe fn GetDesc(&self) -> D3D12_PROTECTED_RESOURCE_SESSION_DESC {
12257 let mut result__: D3D12_PROTECTED_RESOURCE_SESSION_DESC = ::core::mem::zeroed();
12258 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
12259 result__
12260 }
12261}
12262::windows::imp::interface_hierarchy!(ID3D12ProtectedResourceSession, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12ProtectedSession);
12263impl ::core::cmp::PartialEq for ID3D12ProtectedResourceSession {
12264 fn eq(&self, other: &Self) -> bool {
12265 self.0 == other.0
12266 }
12267}
12268impl ::core::cmp::Eq for ID3D12ProtectedResourceSession {}
12269impl ::core::fmt::Debug for ID3D12ProtectedResourceSession {
12270 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12271 f.debug_tuple("ID3D12ProtectedResourceSession").field(&self.0).finish()
12272 }
12273}
12274unsafe impl ::core::marker::Send for ID3D12ProtectedResourceSession {}
12275unsafe impl ::core::marker::Sync for ID3D12ProtectedResourceSession {}
12276unsafe impl ::windows::core::Interface for ID3D12ProtectedResourceSession {
12277 type Vtable = ID3D12ProtectedResourceSession_Vtbl;
12278}
12279impl ::core::clone::Clone for ID3D12ProtectedResourceSession {
12280 fn clone(&self) -> Self {
12281 Self(self.0.clone())
12282 }
12283}
12284unsafe impl ::windows::core::ComInterface for ID3D12ProtectedResourceSession {
12285 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x6cd696f4_f289_40cc_8091_5a6c0a099c3d);
12286}
12287#[repr(C)]
12288#[doc(hidden)]
12289pub struct ID3D12ProtectedResourceSession_Vtbl {
12290 pub base__: ID3D12ProtectedSession_Vtbl,
12291 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC),
12292}
12293#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12294#[repr(transparent)]
12295pub struct ID3D12ProtectedResourceSession1(::windows::core::IUnknown);
12296impl ID3D12ProtectedResourceSession1 {
12297 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12298 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12299 }
12300 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12301 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12302 }
12303 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12304 where
12305 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12306 {
12307 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12308 }
12309 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12310 where
12311 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12312 {
12313 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12314 }
12315 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12316 where
12317 T: ::windows::core::ComInterface,
12318 {
12319 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12320 }
12321 pub unsafe fn GetStatusFence<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12322 where
12323 T: ::windows::core::ComInterface,
12324 {
12325 (::windows::core::Interface::vtable(self).base__.base__.GetStatusFence)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12326 }
12327 pub unsafe fn GetSessionStatus(&self) -> D3D12_PROTECTED_SESSION_STATUS {
12328 (::windows::core::Interface::vtable(self).base__.base__.GetSessionStatus)(::windows::core::Interface::as_raw(self))
12329 }
12330 pub unsafe fn GetDesc(&self) -> D3D12_PROTECTED_RESOURCE_SESSION_DESC {
12331 let mut result__: D3D12_PROTECTED_RESOURCE_SESSION_DESC = ::core::mem::zeroed();
12332 (::windows::core::Interface::vtable(self).base__.GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
12333 result__
12334 }
12335 pub unsafe fn GetDesc1(&self) -> D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
12336 let mut result__: D3D12_PROTECTED_RESOURCE_SESSION_DESC1 = ::core::mem::zeroed();
12337 (::windows::core::Interface::vtable(self).GetDesc1)(::windows::core::Interface::as_raw(self), &mut result__);
12338 result__
12339 }
12340}
12341::windows::imp::interface_hierarchy!(ID3D12ProtectedResourceSession1, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12ProtectedSession, ID3D12ProtectedResourceSession);
12342impl ::core::cmp::PartialEq for ID3D12ProtectedResourceSession1 {
12343 fn eq(&self, other: &Self) -> bool {
12344 self.0 == other.0
12345 }
12346}
12347impl ::core::cmp::Eq for ID3D12ProtectedResourceSession1 {}
12348impl ::core::fmt::Debug for ID3D12ProtectedResourceSession1 {
12349 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12350 f.debug_tuple("ID3D12ProtectedResourceSession1").field(&self.0).finish()
12351 }
12352}
12353unsafe impl ::core::marker::Send for ID3D12ProtectedResourceSession1 {}
12354unsafe impl ::core::marker::Sync for ID3D12ProtectedResourceSession1 {}
12355unsafe impl ::windows::core::Interface for ID3D12ProtectedResourceSession1 {
12356 type Vtable = ID3D12ProtectedResourceSession1_Vtbl;
12357}
12358impl ::core::clone::Clone for ID3D12ProtectedResourceSession1 {
12359 fn clone(&self) -> Self {
12360 Self(self.0.clone())
12361 }
12362}
12363unsafe impl ::windows::core::ComInterface for ID3D12ProtectedResourceSession1 {
12364 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd6f12dd6_76fb_406e_8961_4296eefc0409);
12365}
12366#[repr(C)]
12367#[doc(hidden)]
12368pub struct ID3D12ProtectedResourceSession1_Vtbl {
12369 pub base__: ID3D12ProtectedResourceSession_Vtbl,
12370 pub GetDesc1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_PROTECTED_RESOURCE_SESSION_DESC1),
12371}
12372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12373#[repr(transparent)]
12374pub struct ID3D12ProtectedSession(::windows::core::IUnknown);
12375impl ID3D12ProtectedSession {
12376 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12377 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12378 }
12379 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12380 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12381 }
12382 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12383 where
12384 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12385 {
12386 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12387 }
12388 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12389 where
12390 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12391 {
12392 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12393 }
12394 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12395 where
12396 T: ::windows::core::ComInterface,
12397 {
12398 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12399 }
12400 pub unsafe fn GetStatusFence<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12401 where
12402 T: ::windows::core::ComInterface,
12403 {
12404 (::windows::core::Interface::vtable(self).GetStatusFence)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12405 }
12406 pub unsafe fn GetSessionStatus(&self) -> D3D12_PROTECTED_SESSION_STATUS {
12407 (::windows::core::Interface::vtable(self).GetSessionStatus)(::windows::core::Interface::as_raw(self))
12408 }
12409}
12410::windows::imp::interface_hierarchy!(ID3D12ProtectedSession, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
12411impl ::core::cmp::PartialEq for ID3D12ProtectedSession {
12412 fn eq(&self, other: &Self) -> bool {
12413 self.0 == other.0
12414 }
12415}
12416impl ::core::cmp::Eq for ID3D12ProtectedSession {}
12417impl ::core::fmt::Debug for ID3D12ProtectedSession {
12418 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12419 f.debug_tuple("ID3D12ProtectedSession").field(&self.0).finish()
12420 }
12421}
12422unsafe impl ::core::marker::Send for ID3D12ProtectedSession {}
12423unsafe impl ::core::marker::Sync for ID3D12ProtectedSession {}
12424unsafe impl ::windows::core::Interface for ID3D12ProtectedSession {
12425 type Vtable = ID3D12ProtectedSession_Vtbl;
12426}
12427impl ::core::clone::Clone for ID3D12ProtectedSession {
12428 fn clone(&self) -> Self {
12429 Self(self.0.clone())
12430 }
12431}
12432unsafe impl ::windows::core::ComInterface for ID3D12ProtectedSession {
12433 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xa1533d18_0ac1_4084_85b9_89a96116806b);
12434}
12435#[repr(C)]
12436#[doc(hidden)]
12437pub struct ID3D12ProtectedSession_Vtbl {
12438 pub base__: ID3D12DeviceChild_Vtbl,
12439 pub GetStatusFence: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppfence: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12440 pub GetSessionStatus: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> D3D12_PROTECTED_SESSION_STATUS,
12441}
12442#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12443#[repr(transparent)]
12444pub struct ID3D12QueryHeap(::windows::core::IUnknown);
12445impl ID3D12QueryHeap {
12446 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12447 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12448 }
12449 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12450 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12451 }
12452 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12453 where
12454 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12455 {
12456 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12457 }
12458 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12459 where
12460 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12461 {
12462 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12463 }
12464 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12465 where
12466 T: ::windows::core::ComInterface,
12467 {
12468 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12469 }
12470}
12471::windows::imp::interface_hierarchy!(ID3D12QueryHeap, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
12472impl ::core::cmp::PartialEq for ID3D12QueryHeap {
12473 fn eq(&self, other: &Self) -> bool {
12474 self.0 == other.0
12475 }
12476}
12477impl ::core::cmp::Eq for ID3D12QueryHeap {}
12478impl ::core::fmt::Debug for ID3D12QueryHeap {
12479 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12480 f.debug_tuple("ID3D12QueryHeap").field(&self.0).finish()
12481 }
12482}
12483unsafe impl ::core::marker::Send for ID3D12QueryHeap {}
12484unsafe impl ::core::marker::Sync for ID3D12QueryHeap {}
12485unsafe impl ::windows::core::Interface for ID3D12QueryHeap {
12486 type Vtable = ID3D12QueryHeap_Vtbl;
12487}
12488impl ::core::clone::Clone for ID3D12QueryHeap {
12489 fn clone(&self) -> Self {
12490 Self(self.0.clone())
12491 }
12492}
12493unsafe impl ::windows::core::ComInterface for ID3D12QueryHeap {
12494 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0d9658ae_ed45_469e_a61d_970ec583cab4);
12495}
12496#[repr(C)]
12497#[doc(hidden)]
12498pub struct ID3D12QueryHeap_Vtbl {
12499 pub base__: ID3D12Pageable_Vtbl,
12500}
12501#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12502#[repr(transparent)]
12503pub struct ID3D12Resource(::windows::core::IUnknown);
12504impl ID3D12Resource {
12505 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12506 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12507 }
12508 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12509 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12510 }
12511 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12512 where
12513 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12514 {
12515 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12516 }
12517 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12518 where
12519 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12520 {
12521 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12522 }
12523 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12524 where
12525 T: ::windows::core::ComInterface,
12526 {
12527 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12528 }
12529 pub unsafe fn Map(&self, subresource: u32, preadrange: ::core::option::Option<*const D3D12_RANGE>, ppdata: ::core::option::Option<*mut *mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12530 (::windows::core::Interface::vtable(self).Map)(::windows::core::Interface::as_raw(self), subresource, ::core::mem::transmute(preadrange.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppdata.unwrap_or(::std::ptr::null_mut()))).ok()
12531 }
12532 pub unsafe fn Unmap(&self, subresource: u32, pwrittenrange: ::core::option::Option<*const D3D12_RANGE>) {
12533 (::windows::core::Interface::vtable(self).Unmap)(::windows::core::Interface::as_raw(self), subresource, ::core::mem::transmute(pwrittenrange.unwrap_or(::std::ptr::null())))
12534 }
12535 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
12536 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
12537 pub unsafe fn GetDesc(&self) -> D3D12_RESOURCE_DESC {
12538 let mut result__: D3D12_RESOURCE_DESC = ::core::mem::zeroed();
12539 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
12540 result__
12541 }
12542 pub unsafe fn GetGPUVirtualAddress(&self) -> u64 {
12543 (::windows::core::Interface::vtable(self).GetGPUVirtualAddress)(::windows::core::Interface::as_raw(self))
12544 }
12545 pub unsafe fn WriteToSubresource(&self, dstsubresource: u32, pdstbox: ::core::option::Option<*const D3D12_BOX>, psrcdata: *const ::core::ffi::c_void, srcrowpitch: u32, srcdepthpitch: u32) -> ::windows::core::Result<()> {
12546 (::windows::core::Interface::vtable(self).WriteToSubresource)(::windows::core::Interface::as_raw(self), dstsubresource, ::core::mem::transmute(pdstbox.unwrap_or(::std::ptr::null())), psrcdata, srcrowpitch, srcdepthpitch).ok()
12547 }
12548 pub unsafe fn ReadFromSubresource(&self, pdstdata: *mut ::core::ffi::c_void, dstrowpitch: u32, dstdepthpitch: u32, srcsubresource: u32, psrcbox: ::core::option::Option<*const D3D12_BOX>) -> ::windows::core::Result<()> {
12549 (::windows::core::Interface::vtable(self).ReadFromSubresource)(::windows::core::Interface::as_raw(self), pdstdata, dstrowpitch, dstdepthpitch, srcsubresource, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null()))).ok()
12550 }
12551 pub unsafe fn GetHeapProperties(&self, pheapproperties: ::core::option::Option<*mut D3D12_HEAP_PROPERTIES>, pheapflags: ::core::option::Option<*mut D3D12_HEAP_FLAGS>) -> ::windows::core::Result<()> {
12552 (::windows::core::Interface::vtable(self).GetHeapProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pheapproperties.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pheapflags.unwrap_or(::std::ptr::null_mut()))).ok()
12553 }
12554}
12555::windows::imp::interface_hierarchy!(ID3D12Resource, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
12556impl ::core::cmp::PartialEq for ID3D12Resource {
12557 fn eq(&self, other: &Self) -> bool {
12558 self.0 == other.0
12559 }
12560}
12561impl ::core::cmp::Eq for ID3D12Resource {}
12562impl ::core::fmt::Debug for ID3D12Resource {
12563 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12564 f.debug_tuple("ID3D12Resource").field(&self.0).finish()
12565 }
12566}
12567unsafe impl ::core::marker::Send for ID3D12Resource {}
12568unsafe impl ::core::marker::Sync for ID3D12Resource {}
12569unsafe impl ::windows::core::Interface for ID3D12Resource {
12570 type Vtable = ID3D12Resource_Vtbl;
12571}
12572impl ::core::clone::Clone for ID3D12Resource {
12573 fn clone(&self) -> Self {
12574 Self(self.0.clone())
12575 }
12576}
12577unsafe impl ::windows::core::ComInterface for ID3D12Resource {
12578 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x696442be_a72e_4059_bc79_5b5c98040fad);
12579}
12580#[repr(C)]
12581#[doc(hidden)]
12582pub struct ID3D12Resource_Vtbl {
12583 pub base__: ID3D12Pageable_Vtbl,
12584 pub Map: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, subresource: u32, preadrange: *const D3D12_RANGE, ppdata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12585 pub Unmap: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, subresource: u32, pwrittenrange: *const D3D12_RANGE),
12586 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
12587 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_RESOURCE_DESC),
12588 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
12589 GetDesc: usize,
12590 pub GetGPUVirtualAddress: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
12591 pub WriteToSubresource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, dstsubresource: u32, pdstbox: *const D3D12_BOX, psrcdata: *const ::core::ffi::c_void, srcrowpitch: u32, srcdepthpitch: u32) -> ::windows::core::HRESULT,
12592 pub ReadFromSubresource: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdstdata: *mut ::core::ffi::c_void, dstrowpitch: u32, dstdepthpitch: u32, srcsubresource: u32, psrcbox: *const D3D12_BOX) -> ::windows::core::HRESULT,
12593 pub GetHeapProperties: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pheapproperties: *mut D3D12_HEAP_PROPERTIES, pheapflags: *mut D3D12_HEAP_FLAGS) -> ::windows::core::HRESULT,
12594}
12595#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12596#[repr(transparent)]
12597pub struct ID3D12Resource1(::windows::core::IUnknown);
12598impl ID3D12Resource1 {
12599 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12600 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12601 }
12602 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12603 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12604 }
12605 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12606 where
12607 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12608 {
12609 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12610 }
12611 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12612 where
12613 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12614 {
12615 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12616 }
12617 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12618 where
12619 T: ::windows::core::ComInterface,
12620 {
12621 (::windows::core::Interface::vtable(self).base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12622 }
12623 pub unsafe fn Map(&self, subresource: u32, preadrange: ::core::option::Option<*const D3D12_RANGE>, ppdata: ::core::option::Option<*mut *mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12624 (::windows::core::Interface::vtable(self).base__.Map)(::windows::core::Interface::as_raw(self), subresource, ::core::mem::transmute(preadrange.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppdata.unwrap_or(::std::ptr::null_mut()))).ok()
12625 }
12626 pub unsafe fn Unmap(&self, subresource: u32, pwrittenrange: ::core::option::Option<*const D3D12_RANGE>) {
12627 (::windows::core::Interface::vtable(self).base__.Unmap)(::windows::core::Interface::as_raw(self), subresource, ::core::mem::transmute(pwrittenrange.unwrap_or(::std::ptr::null())))
12628 }
12629 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
12630 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
12631 pub unsafe fn GetDesc(&self) -> D3D12_RESOURCE_DESC {
12632 let mut result__: D3D12_RESOURCE_DESC = ::core::mem::zeroed();
12633 (::windows::core::Interface::vtable(self).base__.GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
12634 result__
12635 }
12636 pub unsafe fn GetGPUVirtualAddress(&self) -> u64 {
12637 (::windows::core::Interface::vtable(self).base__.GetGPUVirtualAddress)(::windows::core::Interface::as_raw(self))
12638 }
12639 pub unsafe fn WriteToSubresource(&self, dstsubresource: u32, pdstbox: ::core::option::Option<*const D3D12_BOX>, psrcdata: *const ::core::ffi::c_void, srcrowpitch: u32, srcdepthpitch: u32) -> ::windows::core::Result<()> {
12640 (::windows::core::Interface::vtable(self).base__.WriteToSubresource)(::windows::core::Interface::as_raw(self), dstsubresource, ::core::mem::transmute(pdstbox.unwrap_or(::std::ptr::null())), psrcdata, srcrowpitch, srcdepthpitch).ok()
12641 }
12642 pub unsafe fn ReadFromSubresource(&self, pdstdata: *mut ::core::ffi::c_void, dstrowpitch: u32, dstdepthpitch: u32, srcsubresource: u32, psrcbox: ::core::option::Option<*const D3D12_BOX>) -> ::windows::core::Result<()> {
12643 (::windows::core::Interface::vtable(self).base__.ReadFromSubresource)(::windows::core::Interface::as_raw(self), pdstdata, dstrowpitch, dstdepthpitch, srcsubresource, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null()))).ok()
12644 }
12645 pub unsafe fn GetHeapProperties(&self, pheapproperties: ::core::option::Option<*mut D3D12_HEAP_PROPERTIES>, pheapflags: ::core::option::Option<*mut D3D12_HEAP_FLAGS>) -> ::windows::core::Result<()> {
12646 (::windows::core::Interface::vtable(self).base__.GetHeapProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pheapproperties.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pheapflags.unwrap_or(::std::ptr::null_mut()))).ok()
12647 }
12648 pub unsafe fn GetProtectedResourceSession<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12649 where
12650 T: ::windows::core::ComInterface,
12651 {
12652 (::windows::core::Interface::vtable(self).GetProtectedResourceSession)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12653 }
12654}
12655::windows::imp::interface_hierarchy!(ID3D12Resource1, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable, ID3D12Resource);
12656impl ::core::cmp::PartialEq for ID3D12Resource1 {
12657 fn eq(&self, other: &Self) -> bool {
12658 self.0 == other.0
12659 }
12660}
12661impl ::core::cmp::Eq for ID3D12Resource1 {}
12662impl ::core::fmt::Debug for ID3D12Resource1 {
12663 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12664 f.debug_tuple("ID3D12Resource1").field(&self.0).finish()
12665 }
12666}
12667unsafe impl ::core::marker::Send for ID3D12Resource1 {}
12668unsafe impl ::core::marker::Sync for ID3D12Resource1 {}
12669unsafe impl ::windows::core::Interface for ID3D12Resource1 {
12670 type Vtable = ID3D12Resource1_Vtbl;
12671}
12672impl ::core::clone::Clone for ID3D12Resource1 {
12673 fn clone(&self) -> Self {
12674 Self(self.0.clone())
12675 }
12676}
12677unsafe impl ::windows::core::ComInterface for ID3D12Resource1 {
12678 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x9d5e227a_4430_4161_88b3_3eca6bb16e19);
12679}
12680#[repr(C)]
12681#[doc(hidden)]
12682pub struct ID3D12Resource1_Vtbl {
12683 pub base__: ID3D12Resource_Vtbl,
12684 pub GetProtectedResourceSession: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppprotectedsession: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12685}
12686#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12687#[repr(transparent)]
12688pub struct ID3D12Resource2(::windows::core::IUnknown);
12689impl ID3D12Resource2 {
12690 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12691 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12692 }
12693 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12694 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12695 }
12696 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12697 where
12698 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12699 {
12700 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12701 }
12702 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12703 where
12704 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12705 {
12706 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12707 }
12708 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12709 where
12710 T: ::windows::core::ComInterface,
12711 {
12712 (::windows::core::Interface::vtable(self).base__.base__.base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12713 }
12714 pub unsafe fn Map(&self, subresource: u32, preadrange: ::core::option::Option<*const D3D12_RANGE>, ppdata: ::core::option::Option<*mut *mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12715 (::windows::core::Interface::vtable(self).base__.base__.Map)(::windows::core::Interface::as_raw(self), subresource, ::core::mem::transmute(preadrange.unwrap_or(::std::ptr::null())), ::core::mem::transmute(ppdata.unwrap_or(::std::ptr::null_mut()))).ok()
12716 }
12717 pub unsafe fn Unmap(&self, subresource: u32, pwrittenrange: ::core::option::Option<*const D3D12_RANGE>) {
12718 (::windows::core::Interface::vtable(self).base__.base__.Unmap)(::windows::core::Interface::as_raw(self), subresource, ::core::mem::transmute(pwrittenrange.unwrap_or(::std::ptr::null())))
12719 }
12720 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
12721 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
12722 pub unsafe fn GetDesc(&self) -> D3D12_RESOURCE_DESC {
12723 let mut result__: D3D12_RESOURCE_DESC = ::core::mem::zeroed();
12724 (::windows::core::Interface::vtable(self).base__.base__.GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
12725 result__
12726 }
12727 pub unsafe fn GetGPUVirtualAddress(&self) -> u64 {
12728 (::windows::core::Interface::vtable(self).base__.base__.GetGPUVirtualAddress)(::windows::core::Interface::as_raw(self))
12729 }
12730 pub unsafe fn WriteToSubresource(&self, dstsubresource: u32, pdstbox: ::core::option::Option<*const D3D12_BOX>, psrcdata: *const ::core::ffi::c_void, srcrowpitch: u32, srcdepthpitch: u32) -> ::windows::core::Result<()> {
12731 (::windows::core::Interface::vtable(self).base__.base__.WriteToSubresource)(::windows::core::Interface::as_raw(self), dstsubresource, ::core::mem::transmute(pdstbox.unwrap_or(::std::ptr::null())), psrcdata, srcrowpitch, srcdepthpitch).ok()
12732 }
12733 pub unsafe fn ReadFromSubresource(&self, pdstdata: *mut ::core::ffi::c_void, dstrowpitch: u32, dstdepthpitch: u32, srcsubresource: u32, psrcbox: ::core::option::Option<*const D3D12_BOX>) -> ::windows::core::Result<()> {
12734 (::windows::core::Interface::vtable(self).base__.base__.ReadFromSubresource)(::windows::core::Interface::as_raw(self), pdstdata, dstrowpitch, dstdepthpitch, srcsubresource, ::core::mem::transmute(psrcbox.unwrap_or(::std::ptr::null()))).ok()
12735 }
12736 pub unsafe fn GetHeapProperties(&self, pheapproperties: ::core::option::Option<*mut D3D12_HEAP_PROPERTIES>, pheapflags: ::core::option::Option<*mut D3D12_HEAP_FLAGS>) -> ::windows::core::Result<()> {
12737 (::windows::core::Interface::vtable(self).base__.base__.GetHeapProperties)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(pheapproperties.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(pheapflags.unwrap_or(::std::ptr::null_mut()))).ok()
12738 }
12739 pub unsafe fn GetProtectedResourceSession<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12740 where
12741 T: ::windows::core::ComInterface,
12742 {
12743 (::windows::core::Interface::vtable(self).base__.GetProtectedResourceSession)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12744 }
12745 #[doc = "*Required features: `\"Win32_Graphics_Dxgi_Common\"`*"]
12746 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
12747 pub unsafe fn GetDesc1(&self) -> D3D12_RESOURCE_DESC1 {
12748 let mut result__: D3D12_RESOURCE_DESC1 = ::core::mem::zeroed();
12749 (::windows::core::Interface::vtable(self).GetDesc1)(::windows::core::Interface::as_raw(self), &mut result__);
12750 result__
12751 }
12752}
12753::windows::imp::interface_hierarchy!(ID3D12Resource2, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable, ID3D12Resource, ID3D12Resource1);
12754impl ::core::cmp::PartialEq for ID3D12Resource2 {
12755 fn eq(&self, other: &Self) -> bool {
12756 self.0 == other.0
12757 }
12758}
12759impl ::core::cmp::Eq for ID3D12Resource2 {}
12760impl ::core::fmt::Debug for ID3D12Resource2 {
12761 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12762 f.debug_tuple("ID3D12Resource2").field(&self.0).finish()
12763 }
12764}
12765unsafe impl ::core::marker::Send for ID3D12Resource2 {}
12766unsafe impl ::core::marker::Sync for ID3D12Resource2 {}
12767unsafe impl ::windows::core::Interface for ID3D12Resource2 {
12768 type Vtable = ID3D12Resource2_Vtbl;
12769}
12770impl ::core::clone::Clone for ID3D12Resource2 {
12771 fn clone(&self) -> Self {
12772 Self(self.0.clone())
12773 }
12774}
12775unsafe impl ::windows::core::ComInterface for ID3D12Resource2 {
12776 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbe36ec3b_ea85_4aeb_a45a_e9d76404a495);
12777}
12778#[repr(C)]
12779#[doc(hidden)]
12780pub struct ID3D12Resource2_Vtbl {
12781 pub base__: ID3D12Resource1_Vtbl,
12782 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
12783 pub GetDesc1: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_RESOURCE_DESC1),
12784 #[cfg(not(feature = "Win32_Graphics_Dxgi_Common"))]
12785 GetDesc1: usize,
12786}
12787#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12788#[repr(transparent)]
12789pub struct ID3D12RootSignature(::windows::core::IUnknown);
12790impl ID3D12RootSignature {
12791 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12792 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12793 }
12794 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12795 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12796 }
12797 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12798 where
12799 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12800 {
12801 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12802 }
12803 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12804 where
12805 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
12806 {
12807 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
12808 }
12809 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
12810 where
12811 T: ::windows::core::ComInterface,
12812 {
12813 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
12814 }
12815}
12816::windows::imp::interface_hierarchy!(ID3D12RootSignature, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
12817impl ::core::cmp::PartialEq for ID3D12RootSignature {
12818 fn eq(&self, other: &Self) -> bool {
12819 self.0 == other.0
12820 }
12821}
12822impl ::core::cmp::Eq for ID3D12RootSignature {}
12823impl ::core::fmt::Debug for ID3D12RootSignature {
12824 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12825 f.debug_tuple("ID3D12RootSignature").field(&self.0).finish()
12826 }
12827}
12828unsafe impl ::core::marker::Send for ID3D12RootSignature {}
12829unsafe impl ::core::marker::Sync for ID3D12RootSignature {}
12830unsafe impl ::windows::core::Interface for ID3D12RootSignature {
12831 type Vtable = ID3D12RootSignature_Vtbl;
12832}
12833impl ::core::clone::Clone for ID3D12RootSignature {
12834 fn clone(&self) -> Self {
12835 Self(self.0.clone())
12836 }
12837}
12838unsafe impl ::windows::core::ComInterface for ID3D12RootSignature {
12839 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc54a6b66_72df_4ee8_8be5_a946a1429214);
12840}
12841#[repr(C)]
12842#[doc(hidden)]
12843pub struct ID3D12RootSignature_Vtbl {
12844 pub base__: ID3D12DeviceChild_Vtbl,
12845}
12846#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12847#[repr(transparent)]
12848pub struct ID3D12RootSignatureDeserializer(::windows::core::IUnknown);
12849impl ID3D12RootSignatureDeserializer {
12850 pub unsafe fn GetRootSignatureDesc(&self) -> *mut D3D12_ROOT_SIGNATURE_DESC {
12851 (::windows::core::Interface::vtable(self).GetRootSignatureDesc)(::windows::core::Interface::as_raw(self))
12852 }
12853}
12854::windows::imp::interface_hierarchy!(ID3D12RootSignatureDeserializer, ::windows::core::IUnknown);
12855impl ::core::cmp::PartialEq for ID3D12RootSignatureDeserializer {
12856 fn eq(&self, other: &Self) -> bool {
12857 self.0 == other.0
12858 }
12859}
12860impl ::core::cmp::Eq for ID3D12RootSignatureDeserializer {}
12861impl ::core::fmt::Debug for ID3D12RootSignatureDeserializer {
12862 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12863 f.debug_tuple("ID3D12RootSignatureDeserializer").field(&self.0).finish()
12864 }
12865}
12866unsafe impl ::core::marker::Send for ID3D12RootSignatureDeserializer {}
12867unsafe impl ::core::marker::Sync for ID3D12RootSignatureDeserializer {}
12868unsafe impl ::windows::core::Interface for ID3D12RootSignatureDeserializer {
12869 type Vtable = ID3D12RootSignatureDeserializer_Vtbl;
12870}
12871impl ::core::clone::Clone for ID3D12RootSignatureDeserializer {
12872 fn clone(&self) -> Self {
12873 Self(self.0.clone())
12874 }
12875}
12876unsafe impl ::windows::core::ComInterface for ID3D12RootSignatureDeserializer {
12877 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x34ab647b_3cc8_46ac_841b_c0965645c046);
12878}
12879#[repr(C)]
12880#[doc(hidden)]
12881pub struct ID3D12RootSignatureDeserializer_Vtbl {
12882 pub base__: ::windows::core::IUnknown_Vtbl,
12883 pub GetRootSignatureDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> *mut D3D12_ROOT_SIGNATURE_DESC,
12884}
12885#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12886#[repr(transparent)]
12887pub struct ID3D12SDKConfiguration(::windows::core::IUnknown);
12888impl ID3D12SDKConfiguration {
12889 pub unsafe fn SetSDKVersion<P0>(&self, sdkversion: u32, sdkpath: P0) -> ::windows::core::Result<()>
12890 where
12891 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
12892 {
12893 (::windows::core::Interface::vtable(self).SetSDKVersion)(::windows::core::Interface::as_raw(self), sdkversion, sdkpath.into_param().abi()).ok()
12894 }
12895}
12896::windows::imp::interface_hierarchy!(ID3D12SDKConfiguration, ::windows::core::IUnknown);
12897impl ::core::cmp::PartialEq for ID3D12SDKConfiguration {
12898 fn eq(&self, other: &Self) -> bool {
12899 self.0 == other.0
12900 }
12901}
12902impl ::core::cmp::Eq for ID3D12SDKConfiguration {}
12903impl ::core::fmt::Debug for ID3D12SDKConfiguration {
12904 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12905 f.debug_tuple("ID3D12SDKConfiguration").field(&self.0).finish()
12906 }
12907}
12908unsafe impl ::core::marker::Send for ID3D12SDKConfiguration {}
12909unsafe impl ::core::marker::Sync for ID3D12SDKConfiguration {}
12910unsafe impl ::windows::core::Interface for ID3D12SDKConfiguration {
12911 type Vtable = ID3D12SDKConfiguration_Vtbl;
12912}
12913impl ::core::clone::Clone for ID3D12SDKConfiguration {
12914 fn clone(&self) -> Self {
12915 Self(self.0.clone())
12916 }
12917}
12918unsafe impl ::windows::core::ComInterface for ID3D12SDKConfiguration {
12919 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe9eb5314_33aa_42b2_a718_d77f58b1f1c7);
12920}
12921#[repr(C)]
12922#[doc(hidden)]
12923pub struct ID3D12SDKConfiguration_Vtbl {
12924 pub base__: ::windows::core::IUnknown_Vtbl,
12925 pub SetSDKVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sdkversion: u32, sdkpath: ::windows::core::PCSTR) -> ::windows::core::HRESULT,
12926}
12927#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12928#[repr(transparent)]
12929pub struct ID3D12SDKConfiguration1(::windows::core::IUnknown);
12930impl ID3D12SDKConfiguration1 {
12931 pub unsafe fn SetSDKVersion<P0>(&self, sdkversion: u32, sdkpath: P0) -> ::windows::core::Result<()>
12932 where
12933 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
12934 {
12935 (::windows::core::Interface::vtable(self).base__.SetSDKVersion)(::windows::core::Interface::as_raw(self), sdkversion, sdkpath.into_param().abi()).ok()
12936 }
12937 pub unsafe fn CreateDeviceFactory<P0, T>(&self, sdkversion: u32, sdkpath: P0) -> ::windows::core::Result<T>
12938 where
12939 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
12940 T: ::windows::core::ComInterface,
12941 {
12942 let mut result__ = ::std::ptr::null_mut();
12943 (::windows::core::Interface::vtable(self).CreateDeviceFactory)(::windows::core::Interface::as_raw(self), sdkversion, sdkpath.into_param().abi(), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
12944 }
12945 pub unsafe fn FreeUnusedSDKs(&self) {
12946 (::windows::core::Interface::vtable(self).FreeUnusedSDKs)(::windows::core::Interface::as_raw(self))
12947 }
12948}
12949::windows::imp::interface_hierarchy!(ID3D12SDKConfiguration1, ::windows::core::IUnknown, ID3D12SDKConfiguration);
12950impl ::core::cmp::PartialEq for ID3D12SDKConfiguration1 {
12951 fn eq(&self, other: &Self) -> bool {
12952 self.0 == other.0
12953 }
12954}
12955impl ::core::cmp::Eq for ID3D12SDKConfiguration1 {}
12956impl ::core::fmt::Debug for ID3D12SDKConfiguration1 {
12957 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
12958 f.debug_tuple("ID3D12SDKConfiguration1").field(&self.0).finish()
12959 }
12960}
12961unsafe impl ::core::marker::Send for ID3D12SDKConfiguration1 {}
12962unsafe impl ::core::marker::Sync for ID3D12SDKConfiguration1 {}
12963unsafe impl ::windows::core::Interface for ID3D12SDKConfiguration1 {
12964 type Vtable = ID3D12SDKConfiguration1_Vtbl;
12965}
12966impl ::core::clone::Clone for ID3D12SDKConfiguration1 {
12967 fn clone(&self) -> Self {
12968 Self(self.0.clone())
12969 }
12970}
12971unsafe impl ::windows::core::ComInterface for ID3D12SDKConfiguration1 {
12972 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x8aaf9303_ad25_48b9_9a57_d9c37e009d9f);
12973}
12974#[repr(C)]
12975#[doc(hidden)]
12976pub struct ID3D12SDKConfiguration1_Vtbl {
12977 pub base__: ID3D12SDKConfiguration_Vtbl,
12978 pub CreateDeviceFactory: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, sdkversion: u32, sdkpath: ::windows::core::PCSTR, riid: *const ::windows::core::GUID, ppvfactory: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
12979 pub FreeUnusedSDKs: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
12980}
12981#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
12982#[repr(transparent)]
12983pub struct ID3D12ShaderCacheSession(::windows::core::IUnknown);
12984impl ID3D12ShaderCacheSession {
12985 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12986 (::windows::core::Interface::vtable(self).base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
12987 }
12988 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
12989 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
12990 }
12991 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
12992 where
12993 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
12994 {
12995 (::windows::core::Interface::vtable(self).base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
12996 }
12997 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
12998 where
12999 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
13000 {
13001 (::windows::core::Interface::vtable(self).base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
13002 }
13003 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
13004 where
13005 T: ::windows::core::ComInterface,
13006 {
13007 (::windows::core::Interface::vtable(self).base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
13008 }
13009 pub unsafe fn FindValue(&self, pkey: *const ::core::ffi::c_void, keysize: u32, pvalue: *mut ::core::ffi::c_void, pvaluesize: *mut u32) -> ::windows::core::Result<()> {
13010 (::windows::core::Interface::vtable(self).FindValue)(::windows::core::Interface::as_raw(self), pkey, keysize, pvalue, pvaluesize).ok()
13011 }
13012 pub unsafe fn StoreValue(&self, pkey: *const ::core::ffi::c_void, keysize: u32, pvalue: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::Result<()> {
13013 (::windows::core::Interface::vtable(self).StoreValue)(::windows::core::Interface::as_raw(self), pkey, keysize, pvalue, valuesize).ok()
13014 }
13015 pub unsafe fn SetDeleteOnDestroy(&self) {
13016 (::windows::core::Interface::vtable(self).SetDeleteOnDestroy)(::windows::core::Interface::as_raw(self))
13017 }
13018 pub unsafe fn GetDesc(&self) -> D3D12_SHADER_CACHE_SESSION_DESC {
13019 let mut result__: D3D12_SHADER_CACHE_SESSION_DESC = ::core::mem::zeroed();
13020 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), &mut result__);
13021 result__
13022 }
13023}
13024::windows::imp::interface_hierarchy!(ID3D12ShaderCacheSession, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild);
13025impl ::core::cmp::PartialEq for ID3D12ShaderCacheSession {
13026 fn eq(&self, other: &Self) -> bool {
13027 self.0 == other.0
13028 }
13029}
13030impl ::core::cmp::Eq for ID3D12ShaderCacheSession {}
13031impl ::core::fmt::Debug for ID3D12ShaderCacheSession {
13032 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13033 f.debug_tuple("ID3D12ShaderCacheSession").field(&self.0).finish()
13034 }
13035}
13036unsafe impl ::core::marker::Send for ID3D12ShaderCacheSession {}
13037unsafe impl ::core::marker::Sync for ID3D12ShaderCacheSession {}
13038unsafe impl ::windows::core::Interface for ID3D12ShaderCacheSession {
13039 type Vtable = ID3D12ShaderCacheSession_Vtbl;
13040}
13041impl ::core::clone::Clone for ID3D12ShaderCacheSession {
13042 fn clone(&self) -> Self {
13043 Self(self.0.clone())
13044 }
13045}
13046unsafe impl ::windows::core::ComInterface for ID3D12ShaderCacheSession {
13047 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x28e2495d_0f64_4ae4_a6ec_129255dc49a8);
13048}
13049#[repr(C)]
13050#[doc(hidden)]
13051pub struct ID3D12ShaderCacheSession_Vtbl {
13052 pub base__: ID3D12DeviceChild_Vtbl,
13053 pub FindValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pkey: *const ::core::ffi::c_void, keysize: u32, pvalue: *mut ::core::ffi::c_void, pvaluesize: *mut u32) -> ::windows::core::HRESULT,
13054 pub StoreValue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pkey: *const ::core::ffi::c_void, keysize: u32, pvalue: *const ::core::ffi::c_void, valuesize: u32) -> ::windows::core::HRESULT,
13055 pub SetDeleteOnDestroy: unsafe extern "system" fn(this: *mut ::core::ffi::c_void),
13056 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut D3D12_SHADER_CACHE_SESSION_DESC),
13057}
13058#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13059#[repr(transparent)]
13060pub struct ID3D12ShaderReflection(::windows::core::IUnknown);
13061impl ID3D12ShaderReflection {
13062 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13063 #[cfg(feature = "Win32_Graphics_Direct3D")]
13064 pub unsafe fn GetDesc(&self, pdesc: *mut D3D12_SHADER_DESC) -> ::windows::core::Result<()> {
13065 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), pdesc).ok()
13066 }
13067 pub unsafe fn GetConstantBufferByIndex(&self, index: u32) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer> {
13068 (::windows::core::Interface::vtable(self).GetConstantBufferByIndex)(::windows::core::Interface::as_raw(self), index)
13069 }
13070 pub unsafe fn GetConstantBufferByName<P0>(&self, name: P0) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>
13071 where
13072 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
13073 {
13074 (::windows::core::Interface::vtable(self).GetConstantBufferByName)(::windows::core::Interface::as_raw(self), name.into_param().abi())
13075 }
13076 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13077 #[cfg(feature = "Win32_Graphics_Direct3D")]
13078 pub unsafe fn GetResourceBindingDesc(&self, resourceindex: u32, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::Result<()> {
13079 (::windows::core::Interface::vtable(self).GetResourceBindingDesc)(::windows::core::Interface::as_raw(self), resourceindex, pdesc).ok()
13080 }
13081 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13082 #[cfg(feature = "Win32_Graphics_Direct3D")]
13083 pub unsafe fn GetInputParameterDesc(&self, parameterindex: u32, pdesc: *mut D3D12_SIGNATURE_PARAMETER_DESC) -> ::windows::core::Result<()> {
13084 (::windows::core::Interface::vtable(self).GetInputParameterDesc)(::windows::core::Interface::as_raw(self), parameterindex, pdesc).ok()
13085 }
13086 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13087 #[cfg(feature = "Win32_Graphics_Direct3D")]
13088 pub unsafe fn GetOutputParameterDesc(&self, parameterindex: u32, pdesc: *mut D3D12_SIGNATURE_PARAMETER_DESC) -> ::windows::core::Result<()> {
13089 (::windows::core::Interface::vtable(self).GetOutputParameterDesc)(::windows::core::Interface::as_raw(self), parameterindex, pdesc).ok()
13090 }
13091 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13092 #[cfg(feature = "Win32_Graphics_Direct3D")]
13093 pub unsafe fn GetPatchConstantParameterDesc(&self, parameterindex: u32, pdesc: *mut D3D12_SIGNATURE_PARAMETER_DESC) -> ::windows::core::Result<()> {
13094 (::windows::core::Interface::vtable(self).GetPatchConstantParameterDesc)(::windows::core::Interface::as_raw(self), parameterindex, pdesc).ok()
13095 }
13096 pub unsafe fn GetVariableByName<P0>(&self, name: P0) -> ::core::option::Option<ID3D12ShaderReflectionVariable>
13097 where
13098 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
13099 {
13100 (::windows::core::Interface::vtable(self).GetVariableByName)(::windows::core::Interface::as_raw(self), name.into_param().abi())
13101 }
13102 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13103 #[cfg(feature = "Win32_Graphics_Direct3D")]
13104 pub unsafe fn GetResourceBindingDescByName<P0>(&self, name: P0, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::Result<()>
13105 where
13106 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
13107 {
13108 (::windows::core::Interface::vtable(self).GetResourceBindingDescByName)(::windows::core::Interface::as_raw(self), name.into_param().abi(), pdesc).ok()
13109 }
13110 pub unsafe fn GetMovInstructionCount(&self) -> u32 {
13111 (::windows::core::Interface::vtable(self).GetMovInstructionCount)(::windows::core::Interface::as_raw(self))
13112 }
13113 pub unsafe fn GetMovcInstructionCount(&self) -> u32 {
13114 (::windows::core::Interface::vtable(self).GetMovcInstructionCount)(::windows::core::Interface::as_raw(self))
13115 }
13116 pub unsafe fn GetConversionInstructionCount(&self) -> u32 {
13117 (::windows::core::Interface::vtable(self).GetConversionInstructionCount)(::windows::core::Interface::as_raw(self))
13118 }
13119 pub unsafe fn GetBitwiseInstructionCount(&self) -> u32 {
13120 (::windows::core::Interface::vtable(self).GetBitwiseInstructionCount)(::windows::core::Interface::as_raw(self))
13121 }
13122 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13123 #[cfg(feature = "Win32_Graphics_Direct3D")]
13124 pub unsafe fn GetGSInputPrimitive(&self) -> super::Direct3D::D3D_PRIMITIVE {
13125 (::windows::core::Interface::vtable(self).GetGSInputPrimitive)(::windows::core::Interface::as_raw(self))
13126 }
13127 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
13128 #[cfg(feature = "Win32_Foundation")]
13129 pub unsafe fn IsSampleFrequencyShader(&self) -> super::super::Foundation::BOOL {
13130 (::windows::core::Interface::vtable(self).IsSampleFrequencyShader)(::windows::core::Interface::as_raw(self))
13131 }
13132 pub unsafe fn GetNumInterfaceSlots(&self) -> u32 {
13133 (::windows::core::Interface::vtable(self).GetNumInterfaceSlots)(::windows::core::Interface::as_raw(self))
13134 }
13135 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13136 #[cfg(feature = "Win32_Graphics_Direct3D")]
13137 pub unsafe fn GetMinFeatureLevel(&self) -> ::windows::core::Result<super::Direct3D::D3D_FEATURE_LEVEL> {
13138 let mut result__ = ::windows::core::zeroed::<super::Direct3D::D3D_FEATURE_LEVEL>();
13139 (::windows::core::Interface::vtable(self).GetMinFeatureLevel)(::windows::core::Interface::as_raw(self), &mut result__).from_abi(result__)
13140 }
13141 pub unsafe fn GetThreadGroupSize(&self, psizex: ::core::option::Option<*mut u32>, psizey: ::core::option::Option<*mut u32>, psizez: ::core::option::Option<*mut u32>) -> u32 {
13142 (::windows::core::Interface::vtable(self).GetThreadGroupSize)(::windows::core::Interface::as_raw(self), ::core::mem::transmute(psizex.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(psizey.unwrap_or(::std::ptr::null_mut())), ::core::mem::transmute(psizez.unwrap_or(::std::ptr::null_mut())))
13143 }
13144 pub unsafe fn GetRequiresFlags(&self) -> u64 {
13145 (::windows::core::Interface::vtable(self).GetRequiresFlags)(::windows::core::Interface::as_raw(self))
13146 }
13147}
13148::windows::imp::interface_hierarchy!(ID3D12ShaderReflection, ::windows::core::IUnknown);
13149impl ::core::cmp::PartialEq for ID3D12ShaderReflection {
13150 fn eq(&self, other: &Self) -> bool {
13151 self.0 == other.0
13152 }
13153}
13154impl ::core::cmp::Eq for ID3D12ShaderReflection {}
13155impl ::core::fmt::Debug for ID3D12ShaderReflection {
13156 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13157 f.debug_tuple("ID3D12ShaderReflection").field(&self.0).finish()
13158 }
13159}
13160unsafe impl ::core::marker::Send for ID3D12ShaderReflection {}
13161unsafe impl ::core::marker::Sync for ID3D12ShaderReflection {}
13162unsafe impl ::windows::core::Interface for ID3D12ShaderReflection {
13163 type Vtable = ID3D12ShaderReflection_Vtbl;
13164}
13165impl ::core::clone::Clone for ID3D12ShaderReflection {
13166 fn clone(&self) -> Self {
13167 Self(self.0.clone())
13168 }
13169}
13170unsafe impl ::windows::core::ComInterface for ID3D12ShaderReflection {
13171 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x5a58797d_a72c_478d_8ba2_efc6b0efe88e);
13172}
13173#[repr(C)]
13174#[doc(hidden)]
13175pub struct ID3D12ShaderReflection_Vtbl {
13176 pub base__: ::windows::core::IUnknown_Vtbl,
13177 #[cfg(feature = "Win32_Graphics_Direct3D")]
13178 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_SHADER_DESC) -> ::windows::core::HRESULT,
13179 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13180 GetDesc: usize,
13181 pub GetConstantBufferByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>,
13182 pub GetConstantBufferByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>,
13183 #[cfg(feature = "Win32_Graphics_Direct3D")]
13184 pub GetResourceBindingDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, resourceindex: u32, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::HRESULT,
13185 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13186 GetResourceBindingDesc: usize,
13187 #[cfg(feature = "Win32_Graphics_Direct3D")]
13188 pub GetInputParameterDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parameterindex: u32, pdesc: *mut D3D12_SIGNATURE_PARAMETER_DESC) -> ::windows::core::HRESULT,
13189 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13190 GetInputParameterDesc: usize,
13191 #[cfg(feature = "Win32_Graphics_Direct3D")]
13192 pub GetOutputParameterDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parameterindex: u32, pdesc: *mut D3D12_SIGNATURE_PARAMETER_DESC) -> ::windows::core::HRESULT,
13193 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13194 GetOutputParameterDesc: usize,
13195 #[cfg(feature = "Win32_Graphics_Direct3D")]
13196 pub GetPatchConstantParameterDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, parameterindex: u32, pdesc: *mut D3D12_SIGNATURE_PARAMETER_DESC) -> ::windows::core::HRESULT,
13197 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13198 GetPatchConstantParameterDesc: usize,
13199 pub GetVariableByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::core::option::Option<ID3D12ShaderReflectionVariable>,
13200 #[cfg(feature = "Win32_Graphics_Direct3D")]
13201 pub GetResourceBindingDescByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR, pdesc: *mut D3D12_SHADER_INPUT_BIND_DESC) -> ::windows::core::HRESULT,
13202 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13203 GetResourceBindingDescByName: usize,
13204 pub GetMovInstructionCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
13205 pub GetMovcInstructionCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
13206 pub GetConversionInstructionCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
13207 pub GetBitwiseInstructionCount: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
13208 #[cfg(feature = "Win32_Graphics_Direct3D")]
13209 pub GetGSInputPrimitive: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::Direct3D::D3D_PRIMITIVE,
13210 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13211 GetGSInputPrimitive: usize,
13212 #[cfg(feature = "Win32_Foundation")]
13213 pub IsSampleFrequencyShader: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
13214 #[cfg(not(feature = "Win32_Foundation"))]
13215 IsSampleFrequencyShader: usize,
13216 pub GetNumInterfaceSlots: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
13217 #[cfg(feature = "Win32_Graphics_Direct3D")]
13218 pub GetMinFeatureLevel: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, plevel: *mut super::Direct3D::D3D_FEATURE_LEVEL) -> ::windows::core::HRESULT,
13219 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13220 GetMinFeatureLevel: usize,
13221 pub GetThreadGroupSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, psizex: *mut u32, psizey: *mut u32, psizez: *mut u32) -> u32,
13222 pub GetRequiresFlags: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
13223}
13224#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13225#[repr(transparent)]
13226pub struct ID3D12ShaderReflectionConstantBuffer(::std::ptr::NonNull<::std::ffi::c_void>);
13227impl ID3D12ShaderReflectionConstantBuffer {
13228 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13229 #[cfg(feature = "Win32_Graphics_Direct3D")]
13230 pub unsafe fn GetDesc(&self, pdesc: *mut D3D12_SHADER_BUFFER_DESC) -> ::windows::core::Result<()> {
13231 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), pdesc).ok()
13232 }
13233 pub unsafe fn GetVariableByIndex(&self, index: u32) -> ::core::option::Option<ID3D12ShaderReflectionVariable> {
13234 (::windows::core::Interface::vtable(self).GetVariableByIndex)(::windows::core::Interface::as_raw(self), index)
13235 }
13236 pub unsafe fn GetVariableByName<P0>(&self, name: P0) -> ::core::option::Option<ID3D12ShaderReflectionVariable>
13237 where
13238 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
13239 {
13240 (::windows::core::Interface::vtable(self).GetVariableByName)(::windows::core::Interface::as_raw(self), name.into_param().abi())
13241 }
13242}
13243impl ::core::cmp::PartialEq for ID3D12ShaderReflectionConstantBuffer {
13244 fn eq(&self, other: &Self) -> bool {
13245 self.0 == other.0
13246 }
13247}
13248impl ::core::cmp::Eq for ID3D12ShaderReflectionConstantBuffer {}
13249impl ::core::fmt::Debug for ID3D12ShaderReflectionConstantBuffer {
13250 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13251 f.debug_tuple("ID3D12ShaderReflectionConstantBuffer").field(&self.0).finish()
13252 }
13253}
13254unsafe impl ::core::marker::Send for ID3D12ShaderReflectionConstantBuffer {}
13255unsafe impl ::core::marker::Sync for ID3D12ShaderReflectionConstantBuffer {}
13256unsafe impl ::windows::core::Interface for ID3D12ShaderReflectionConstantBuffer {
13257 type Vtable = ID3D12ShaderReflectionConstantBuffer_Vtbl;
13258}
13259impl ::core::clone::Clone for ID3D12ShaderReflectionConstantBuffer {
13260 fn clone(&self) -> Self {
13261 Self(self.0.clone())
13262 }
13263}
13264#[repr(C)]
13265#[doc(hidden)]
13266pub struct ID3D12ShaderReflectionConstantBuffer_Vtbl {
13267 #[cfg(feature = "Win32_Graphics_Direct3D")]
13268 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_SHADER_BUFFER_DESC) -> ::windows::core::HRESULT,
13269 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13270 GetDesc: usize,
13271 pub GetVariableByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::core::option::Option<ID3D12ShaderReflectionVariable>,
13272 pub GetVariableByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::core::option::Option<ID3D12ShaderReflectionVariable>,
13273}
13274#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13275#[repr(transparent)]
13276pub struct ID3D12ShaderReflectionType(::std::ptr::NonNull<::std::ffi::c_void>);
13277impl ID3D12ShaderReflectionType {
13278 #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"]
13279 #[cfg(feature = "Win32_Graphics_Direct3D")]
13280 pub unsafe fn GetDesc(&self, pdesc: *mut D3D12_SHADER_TYPE_DESC) -> ::windows::core::Result<()> {
13281 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), pdesc).ok()
13282 }
13283 pub unsafe fn GetMemberTypeByIndex(&self, index: u32) -> ::core::option::Option<ID3D12ShaderReflectionType> {
13284 (::windows::core::Interface::vtable(self).GetMemberTypeByIndex)(::windows::core::Interface::as_raw(self), index)
13285 }
13286 pub unsafe fn GetMemberTypeByName<P0>(&self, name: P0) -> ::core::option::Option<ID3D12ShaderReflectionType>
13287 where
13288 P0: ::windows::core::IntoParam<::windows::core::PCSTR>,
13289 {
13290 (::windows::core::Interface::vtable(self).GetMemberTypeByName)(::windows::core::Interface::as_raw(self), name.into_param().abi())
13291 }
13292 pub unsafe fn GetMemberTypeName(&self, index: u32) -> ::windows::core::PSTR {
13293 (::windows::core::Interface::vtable(self).GetMemberTypeName)(::windows::core::Interface::as_raw(self), index)
13294 }
13295 pub unsafe fn IsEqual<P0>(&self, ptype: P0) -> ::windows::core::Result<()>
13296 where
13297 P0: ::windows::core::IntoParam<ID3D12ShaderReflectionType>,
13298 {
13299 (::windows::core::Interface::vtable(self).IsEqual)(::windows::core::Interface::as_raw(self), ptype.into_param().abi()).ok()
13300 }
13301 pub unsafe fn GetSubType(&self) -> ::core::option::Option<ID3D12ShaderReflectionType> {
13302 (::windows::core::Interface::vtable(self).GetSubType)(::windows::core::Interface::as_raw(self))
13303 }
13304 pub unsafe fn GetBaseClass(&self) -> ::core::option::Option<ID3D12ShaderReflectionType> {
13305 (::windows::core::Interface::vtable(self).GetBaseClass)(::windows::core::Interface::as_raw(self))
13306 }
13307 pub unsafe fn GetNumInterfaces(&self) -> u32 {
13308 (::windows::core::Interface::vtable(self).GetNumInterfaces)(::windows::core::Interface::as_raw(self))
13309 }
13310 pub unsafe fn GetInterfaceByIndex(&self, uindex: u32) -> ::core::option::Option<ID3D12ShaderReflectionType> {
13311 (::windows::core::Interface::vtable(self).GetInterfaceByIndex)(::windows::core::Interface::as_raw(self), uindex)
13312 }
13313 pub unsafe fn IsOfType<P0>(&self, ptype: P0) -> ::windows::core::Result<()>
13314 where
13315 P0: ::windows::core::IntoParam<ID3D12ShaderReflectionType>,
13316 {
13317 (::windows::core::Interface::vtable(self).IsOfType)(::windows::core::Interface::as_raw(self), ptype.into_param().abi()).ok()
13318 }
13319 pub unsafe fn ImplementsInterface<P0>(&self, pbase: P0) -> ::windows::core::Result<()>
13320 where
13321 P0: ::windows::core::IntoParam<ID3D12ShaderReflectionType>,
13322 {
13323 (::windows::core::Interface::vtable(self).ImplementsInterface)(::windows::core::Interface::as_raw(self), pbase.into_param().abi()).ok()
13324 }
13325}
13326impl ::core::cmp::PartialEq for ID3D12ShaderReflectionType {
13327 fn eq(&self, other: &Self) -> bool {
13328 self.0 == other.0
13329 }
13330}
13331impl ::core::cmp::Eq for ID3D12ShaderReflectionType {}
13332impl ::core::fmt::Debug for ID3D12ShaderReflectionType {
13333 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13334 f.debug_tuple("ID3D12ShaderReflectionType").field(&self.0).finish()
13335 }
13336}
13337unsafe impl ::core::marker::Send for ID3D12ShaderReflectionType {}
13338unsafe impl ::core::marker::Sync for ID3D12ShaderReflectionType {}
13339unsafe impl ::windows::core::Interface for ID3D12ShaderReflectionType {
13340 type Vtable = ID3D12ShaderReflectionType_Vtbl;
13341}
13342impl ::core::clone::Clone for ID3D12ShaderReflectionType {
13343 fn clone(&self) -> Self {
13344 Self(self.0.clone())
13345 }
13346}
13347#[repr(C)]
13348#[doc(hidden)]
13349pub struct ID3D12ShaderReflectionType_Vtbl {
13350 #[cfg(feature = "Win32_Graphics_Direct3D")]
13351 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_SHADER_TYPE_DESC) -> ::windows::core::HRESULT,
13352 #[cfg(not(feature = "Win32_Graphics_Direct3D"))]
13353 GetDesc: usize,
13354 pub GetMemberTypeByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::core::option::Option<ID3D12ShaderReflectionType>,
13355 pub GetMemberTypeByName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, name: ::windows::core::PCSTR) -> ::core::option::Option<ID3D12ShaderReflectionType>,
13356 pub GetMemberTypeName: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, index: u32) -> ::windows::core::PSTR,
13357 pub IsEqual: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ptype: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
13358 pub GetSubType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::core::option::Option<ID3D12ShaderReflectionType>,
13359 pub GetBaseClass: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::core::option::Option<ID3D12ShaderReflectionType>,
13360 pub GetNumInterfaces: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u32,
13361 pub GetInterfaceByIndex: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uindex: u32) -> ::core::option::Option<ID3D12ShaderReflectionType>,
13362 pub IsOfType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, ptype: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
13363 pub ImplementsInterface: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pbase: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
13364}
13365#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13366#[repr(transparent)]
13367pub struct ID3D12ShaderReflectionVariable(::std::ptr::NonNull<::std::ffi::c_void>);
13368impl ID3D12ShaderReflectionVariable {
13369 pub unsafe fn GetDesc(&self, pdesc: *mut D3D12_SHADER_VARIABLE_DESC) -> ::windows::core::Result<()> {
13370 (::windows::core::Interface::vtable(self).GetDesc)(::windows::core::Interface::as_raw(self), pdesc).ok()
13371 }
13372 pub unsafe fn GetType(&self) -> ::core::option::Option<ID3D12ShaderReflectionType> {
13373 (::windows::core::Interface::vtable(self).GetType)(::windows::core::Interface::as_raw(self))
13374 }
13375 pub unsafe fn GetBuffer(&self) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer> {
13376 (::windows::core::Interface::vtable(self).GetBuffer)(::windows::core::Interface::as_raw(self))
13377 }
13378 pub unsafe fn GetInterfaceSlot(&self, uarrayindex: u32) -> u32 {
13379 (::windows::core::Interface::vtable(self).GetInterfaceSlot)(::windows::core::Interface::as_raw(self), uarrayindex)
13380 }
13381}
13382impl ::core::cmp::PartialEq for ID3D12ShaderReflectionVariable {
13383 fn eq(&self, other: &Self) -> bool {
13384 self.0 == other.0
13385 }
13386}
13387impl ::core::cmp::Eq for ID3D12ShaderReflectionVariable {}
13388impl ::core::fmt::Debug for ID3D12ShaderReflectionVariable {
13389 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13390 f.debug_tuple("ID3D12ShaderReflectionVariable").field(&self.0).finish()
13391 }
13392}
13393unsafe impl ::core::marker::Send for ID3D12ShaderReflectionVariable {}
13394unsafe impl ::core::marker::Sync for ID3D12ShaderReflectionVariable {}
13395unsafe impl ::windows::core::Interface for ID3D12ShaderReflectionVariable {
13396 type Vtable = ID3D12ShaderReflectionVariable_Vtbl;
13397}
13398impl ::core::clone::Clone for ID3D12ShaderReflectionVariable {
13399 fn clone(&self) -> Self {
13400 Self(self.0.clone())
13401 }
13402}
13403#[repr(C)]
13404#[doc(hidden)]
13405pub struct ID3D12ShaderReflectionVariable_Vtbl {
13406 pub GetDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pdesc: *mut D3D12_SHADER_VARIABLE_DESC) -> ::windows::core::HRESULT,
13407 pub GetType: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::core::option::Option<ID3D12ShaderReflectionType>,
13408 pub GetBuffer: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::core::option::Option<ID3D12ShaderReflectionConstantBuffer>,
13409 pub GetInterfaceSlot: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, uarrayindex: u32) -> u32,
13410}
13411#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13412#[repr(transparent)]
13413pub struct ID3D12SharingContract(::windows::core::IUnknown);
13414impl ID3D12SharingContract {
13415 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
13416 #[cfg(feature = "Win32_Foundation")]
13417 pub unsafe fn Present<P0, P1>(&self, presource: P0, subresource: u32, window: P1)
13418 where
13419 P0: ::windows::core::IntoParam<ID3D12Resource>,
13420 P1: ::windows::core::IntoParam<super::super::Foundation::HWND>,
13421 {
13422 (::windows::core::Interface::vtable(self).Present)(::windows::core::Interface::as_raw(self), presource.into_param().abi(), subresource, window.into_param().abi())
13423 }
13424 pub unsafe fn SharedFenceSignal<P0>(&self, pfence: P0, fencevalue: u64)
13425 where
13426 P0: ::windows::core::IntoParam<ID3D12Fence>,
13427 {
13428 (::windows::core::Interface::vtable(self).SharedFenceSignal)(::windows::core::Interface::as_raw(self), pfence.into_param().abi(), fencevalue)
13429 }
13430 pub unsafe fn BeginCapturableWork(&self, guid: *const ::windows::core::GUID) {
13431 (::windows::core::Interface::vtable(self).BeginCapturableWork)(::windows::core::Interface::as_raw(self), guid)
13432 }
13433 pub unsafe fn EndCapturableWork(&self, guid: *const ::windows::core::GUID) {
13434 (::windows::core::Interface::vtable(self).EndCapturableWork)(::windows::core::Interface::as_raw(self), guid)
13435 }
13436}
13437::windows::imp::interface_hierarchy!(ID3D12SharingContract, ::windows::core::IUnknown);
13438impl ::core::cmp::PartialEq for ID3D12SharingContract {
13439 fn eq(&self, other: &Self) -> bool {
13440 self.0 == other.0
13441 }
13442}
13443impl ::core::cmp::Eq for ID3D12SharingContract {}
13444impl ::core::fmt::Debug for ID3D12SharingContract {
13445 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13446 f.debug_tuple("ID3D12SharingContract").field(&self.0).finish()
13447 }
13448}
13449unsafe impl ::core::marker::Send for ID3D12SharingContract {}
13450unsafe impl ::core::marker::Sync for ID3D12SharingContract {}
13451unsafe impl ::windows::core::Interface for ID3D12SharingContract {
13452 type Vtable = ID3D12SharingContract_Vtbl;
13453}
13454impl ::core::clone::Clone for ID3D12SharingContract {
13455 fn clone(&self) -> Self {
13456 Self(self.0.clone())
13457 }
13458}
13459unsafe impl ::windows::core::ComInterface for ID3D12SharingContract {
13460 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x0adf7d52_929c_4e61_addb_ffed30de66ef);
13461}
13462#[repr(C)]
13463#[doc(hidden)]
13464pub struct ID3D12SharingContract_Vtbl {
13465 pub base__: ::windows::core::IUnknown_Vtbl,
13466 #[cfg(feature = "Win32_Foundation")]
13467 pub Present: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, presource: *mut ::core::ffi::c_void, subresource: u32, window: super::super::Foundation::HWND),
13468 #[cfg(not(feature = "Win32_Foundation"))]
13469 Present: usize,
13470 pub SharedFenceSignal: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfence: *mut ::core::ffi::c_void, fencevalue: u64),
13471 pub BeginCapturableWork: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID),
13472 pub EndCapturableWork: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, guid: *const ::windows::core::GUID),
13473}
13474#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13475#[repr(transparent)]
13476pub struct ID3D12StateObject(::windows::core::IUnknown);
13477impl ID3D12StateObject {
13478 pub unsafe fn GetPrivateData(&self, guid: *const ::windows::core::GUID, pdatasize: *mut u32, pdata: ::core::option::Option<*mut ::core::ffi::c_void>) -> ::windows::core::Result<()> {
13479 (::windows::core::Interface::vtable(self).base__.base__.base__.GetPrivateData)(::windows::core::Interface::as_raw(self), guid, pdatasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null_mut()))).ok()
13480 }
13481 pub unsafe fn SetPrivateData(&self, guid: *const ::windows::core::GUID, datasize: u32, pdata: ::core::option::Option<*const ::core::ffi::c_void>) -> ::windows::core::Result<()> {
13482 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateData)(::windows::core::Interface::as_raw(self), guid, datasize, ::core::mem::transmute(pdata.unwrap_or(::std::ptr::null()))).ok()
13483 }
13484 pub unsafe fn SetPrivateDataInterface<P0>(&self, guid: *const ::windows::core::GUID, pdata: P0) -> ::windows::core::Result<()>
13485 where
13486 P0: ::windows::core::IntoParam<::windows::core::IUnknown>,
13487 {
13488 (::windows::core::Interface::vtable(self).base__.base__.base__.SetPrivateDataInterface)(::windows::core::Interface::as_raw(self), guid, pdata.into_param().abi()).ok()
13489 }
13490 pub unsafe fn SetName<P0>(&self, name: P0) -> ::windows::core::Result<()>
13491 where
13492 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
13493 {
13494 (::windows::core::Interface::vtable(self).base__.base__.base__.SetName)(::windows::core::Interface::as_raw(self), name.into_param().abi()).ok()
13495 }
13496 pub unsafe fn GetDevice<T>(&self, result__: *mut ::core::option::Option<T>) -> ::windows::core::Result<()>
13497 where
13498 T: ::windows::core::ComInterface,
13499 {
13500 (::windows::core::Interface::vtable(self).base__.base__.GetDevice)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, result__ as *mut _ as *mut _).ok()
13501 }
13502}
13503::windows::imp::interface_hierarchy!(ID3D12StateObject, ::windows::core::IUnknown, ID3D12Object, ID3D12DeviceChild, ID3D12Pageable);
13504impl ::core::cmp::PartialEq for ID3D12StateObject {
13505 fn eq(&self, other: &Self) -> bool {
13506 self.0 == other.0
13507 }
13508}
13509impl ::core::cmp::Eq for ID3D12StateObject {}
13510impl ::core::fmt::Debug for ID3D12StateObject {
13511 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13512 f.debug_tuple("ID3D12StateObject").field(&self.0).finish()
13513 }
13514}
13515unsafe impl ::core::marker::Send for ID3D12StateObject {}
13516unsafe impl ::core::marker::Sync for ID3D12StateObject {}
13517unsafe impl ::windows::core::Interface for ID3D12StateObject {
13518 type Vtable = ID3D12StateObject_Vtbl;
13519}
13520impl ::core::clone::Clone for ID3D12StateObject {
13521 fn clone(&self) -> Self {
13522 Self(self.0.clone())
13523 }
13524}
13525unsafe impl ::windows::core::ComInterface for ID3D12StateObject {
13526 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x47016943_fca8_4594_93ea_af258b55346d);
13527}
13528#[repr(C)]
13529#[doc(hidden)]
13530pub struct ID3D12StateObject_Vtbl {
13531 pub base__: ID3D12Pageable_Vtbl,
13532}
13533#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13534#[repr(transparent)]
13535pub struct ID3D12StateObjectProperties(::windows::core::IUnknown);
13536impl ID3D12StateObjectProperties {
13537 pub unsafe fn GetShaderIdentifier<P0>(&self, pexportname: P0) -> *mut ::core::ffi::c_void
13538 where
13539 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
13540 {
13541 (::windows::core::Interface::vtable(self).GetShaderIdentifier)(::windows::core::Interface::as_raw(self), pexportname.into_param().abi())
13542 }
13543 pub unsafe fn GetShaderStackSize<P0>(&self, pexportname: P0) -> u64
13544 where
13545 P0: ::windows::core::IntoParam<::windows::core::PCWSTR>,
13546 {
13547 (::windows::core::Interface::vtable(self).GetShaderStackSize)(::windows::core::Interface::as_raw(self), pexportname.into_param().abi())
13548 }
13549 pub unsafe fn GetPipelineStackSize(&self) -> u64 {
13550 (::windows::core::Interface::vtable(self).GetPipelineStackSize)(::windows::core::Interface::as_raw(self))
13551 }
13552 pub unsafe fn SetPipelineStackSize(&self, pipelinestacksizeinbytes: u64) {
13553 (::windows::core::Interface::vtable(self).SetPipelineStackSize)(::windows::core::Interface::as_raw(self), pipelinestacksizeinbytes)
13554 }
13555}
13556::windows::imp::interface_hierarchy!(ID3D12StateObjectProperties, ::windows::core::IUnknown);
13557impl ::core::cmp::PartialEq for ID3D12StateObjectProperties {
13558 fn eq(&self, other: &Self) -> bool {
13559 self.0 == other.0
13560 }
13561}
13562impl ::core::cmp::Eq for ID3D12StateObjectProperties {}
13563impl ::core::fmt::Debug for ID3D12StateObjectProperties {
13564 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13565 f.debug_tuple("ID3D12StateObjectProperties").field(&self.0).finish()
13566 }
13567}
13568unsafe impl ::core::marker::Send for ID3D12StateObjectProperties {}
13569unsafe impl ::core::marker::Sync for ID3D12StateObjectProperties {}
13570unsafe impl ::windows::core::Interface for ID3D12StateObjectProperties {
13571 type Vtable = ID3D12StateObjectProperties_Vtbl;
13572}
13573impl ::core::clone::Clone for ID3D12StateObjectProperties {
13574 fn clone(&self) -> Self {
13575 Self(self.0.clone())
13576 }
13577}
13578unsafe impl ::windows::core::ComInterface for ID3D12StateObjectProperties {
13579 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xde5fa827_9bf9_4f26_89ff_d7f56fde3860);
13580}
13581#[repr(C)]
13582#[doc(hidden)]
13583pub struct ID3D12StateObjectProperties_Vtbl {
13584 pub base__: ::windows::core::IUnknown_Vtbl,
13585 pub GetShaderIdentifier: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pexportname: ::windows::core::PCWSTR) -> *mut ::core::ffi::c_void,
13586 pub GetShaderStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pexportname: ::windows::core::PCWSTR) -> u64,
13587 pub GetPipelineStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> u64,
13588 pub SetPipelineStackSize: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pipelinestacksizeinbytes: u64),
13589}
13590#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13591#[repr(transparent)]
13592pub struct ID3D12SwapChainAssistant(::windows::core::IUnknown);
13593impl ID3D12SwapChainAssistant {
13594 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
13595 #[cfg(feature = "Win32_Foundation")]
13596 pub unsafe fn GetLUID(&self) -> super::super::Foundation::LUID {
13597 let mut result__: super::super::Foundation::LUID = ::core::mem::zeroed();
13598 (::windows::core::Interface::vtable(self).GetLUID)(::windows::core::Interface::as_raw(self), &mut result__);
13599 result__
13600 }
13601 pub unsafe fn GetSwapChainObject<T>(&self) -> ::windows::core::Result<T>
13602 where
13603 T: ::windows::core::ComInterface,
13604 {
13605 let mut result__ = ::std::ptr::null_mut();
13606 (::windows::core::Interface::vtable(self).GetSwapChainObject)(::windows::core::Interface::as_raw(self), &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
13607 }
13608 pub unsafe fn GetCurrentResourceAndCommandQueue<T>(&self, riidresource: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<T>
13609 where
13610 T: ::windows::core::ComInterface,
13611 {
13612 let mut result__ = ::std::ptr::null_mut();
13613 (::windows::core::Interface::vtable(self).GetCurrentResourceAndCommandQueue)(::windows::core::Interface::as_raw(self), riidresource, ppvresource, &<T as ::windows::core::ComInterface>::IID, &mut result__).from_abi(result__)
13614 }
13615 pub unsafe fn InsertImplicitSync(&self) -> ::windows::core::Result<()> {
13616 (::windows::core::Interface::vtable(self).InsertImplicitSync)(::windows::core::Interface::as_raw(self)).ok()
13617 }
13618}
13619::windows::imp::interface_hierarchy!(ID3D12SwapChainAssistant, ::windows::core::IUnknown);
13620impl ::core::cmp::PartialEq for ID3D12SwapChainAssistant {
13621 fn eq(&self, other: &Self) -> bool {
13622 self.0 == other.0
13623 }
13624}
13625impl ::core::cmp::Eq for ID3D12SwapChainAssistant {}
13626impl ::core::fmt::Debug for ID3D12SwapChainAssistant {
13627 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13628 f.debug_tuple("ID3D12SwapChainAssistant").field(&self.0).finish()
13629 }
13630}
13631unsafe impl ::core::marker::Send for ID3D12SwapChainAssistant {}
13632unsafe impl ::core::marker::Sync for ID3D12SwapChainAssistant {}
13633unsafe impl ::windows::core::Interface for ID3D12SwapChainAssistant {
13634 type Vtable = ID3D12SwapChainAssistant_Vtbl;
13635}
13636impl ::core::clone::Clone for ID3D12SwapChainAssistant {
13637 fn clone(&self) -> Self {
13638 Self(self.0.clone())
13639 }
13640}
13641unsafe impl ::windows::core::ComInterface for ID3D12SwapChainAssistant {
13642 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf1df64b6_57fd_49cd_8807_c0eb88b45c8f);
13643}
13644#[repr(C)]
13645#[doc(hidden)]
13646pub struct ID3D12SwapChainAssistant_Vtbl {
13647 pub base__: ::windows::core::IUnknown_Vtbl,
13648 #[cfg(feature = "Win32_Foundation")]
13649 pub GetLUID: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, result__: *mut super::super::Foundation::LUID),
13650 #[cfg(not(feature = "Win32_Foundation"))]
13651 GetLUID: usize,
13652 pub GetSwapChainObject: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppv: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
13653 pub GetCurrentResourceAndCommandQueue: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, riidresource: *const ::windows::core::GUID, ppvresource: *mut *mut ::core::ffi::c_void, riidqueue: *const ::windows::core::GUID, ppvqueue: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
13654 pub InsertImplicitSync: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT,
13655}
13656#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13657#[repr(transparent)]
13658pub struct ID3D12Tools(::windows::core::IUnknown);
13659impl ID3D12Tools {
13660 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
13661 #[cfg(feature = "Win32_Foundation")]
13662 pub unsafe fn EnableShaderInstrumentation<P0>(&self, benable: P0)
13663 where
13664 P0: ::windows::core::IntoParam<super::super::Foundation::BOOL>,
13665 {
13666 (::windows::core::Interface::vtable(self).EnableShaderInstrumentation)(::windows::core::Interface::as_raw(self), benable.into_param().abi())
13667 }
13668 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
13669 #[cfg(feature = "Win32_Foundation")]
13670 pub unsafe fn ShaderInstrumentationEnabled(&self) -> super::super::Foundation::BOOL {
13671 (::windows::core::Interface::vtable(self).ShaderInstrumentationEnabled)(::windows::core::Interface::as_raw(self))
13672 }
13673}
13674::windows::imp::interface_hierarchy!(ID3D12Tools, ::windows::core::IUnknown);
13675impl ::core::cmp::PartialEq for ID3D12Tools {
13676 fn eq(&self, other: &Self) -> bool {
13677 self.0 == other.0
13678 }
13679}
13680impl ::core::cmp::Eq for ID3D12Tools {}
13681impl ::core::fmt::Debug for ID3D12Tools {
13682 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13683 f.debug_tuple("ID3D12Tools").field(&self.0).finish()
13684 }
13685}
13686unsafe impl ::core::marker::Send for ID3D12Tools {}
13687unsafe impl ::core::marker::Sync for ID3D12Tools {}
13688unsafe impl ::windows::core::Interface for ID3D12Tools {
13689 type Vtable = ID3D12Tools_Vtbl;
13690}
13691impl ::core::clone::Clone for ID3D12Tools {
13692 fn clone(&self) -> Self {
13693 Self(self.0.clone())
13694 }
13695}
13696unsafe impl ::windows::core::ComInterface for ID3D12Tools {
13697 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7071e1f0_e84b_4b33_974f_12fa49de65c5);
13698}
13699#[repr(C)]
13700#[doc(hidden)]
13701pub struct ID3D12Tools_Vtbl {
13702 pub base__: ::windows::core::IUnknown_Vtbl,
13703 #[cfg(feature = "Win32_Foundation")]
13704 pub EnableShaderInstrumentation: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, benable: super::super::Foundation::BOOL),
13705 #[cfg(not(feature = "Win32_Foundation"))]
13706 EnableShaderInstrumentation: usize,
13707 #[cfg(feature = "Win32_Foundation")]
13708 pub ShaderInstrumentationEnabled: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> super::super::Foundation::BOOL,
13709 #[cfg(not(feature = "Win32_Foundation"))]
13710 ShaderInstrumentationEnabled: usize,
13711}
13712#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13713#[repr(transparent)]
13714pub struct ID3D12VersionedRootSignatureDeserializer(::windows::core::IUnknown);
13715impl ID3D12VersionedRootSignatureDeserializer {
13716 pub unsafe fn GetRootSignatureDescAtVersion(&self, converttoversion: D3D_ROOT_SIGNATURE_VERSION) -> ::windows::core::Result<*mut D3D12_VERSIONED_ROOT_SIGNATURE_DESC> {
13717 let mut result__ = ::windows::core::zeroed::<*mut D3D12_VERSIONED_ROOT_SIGNATURE_DESC>();
13718 (::windows::core::Interface::vtable(self).GetRootSignatureDescAtVersion)(::windows::core::Interface::as_raw(self), converttoversion, &mut result__).from_abi(result__)
13719 }
13720 pub unsafe fn GetUnconvertedRootSignatureDesc(&self) -> *mut D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
13721 (::windows::core::Interface::vtable(self).GetUnconvertedRootSignatureDesc)(::windows::core::Interface::as_raw(self))
13722 }
13723}
13724::windows::imp::interface_hierarchy!(ID3D12VersionedRootSignatureDeserializer, ::windows::core::IUnknown);
13725impl ::core::cmp::PartialEq for ID3D12VersionedRootSignatureDeserializer {
13726 fn eq(&self, other: &Self) -> bool {
13727 self.0 == other.0
13728 }
13729}
13730impl ::core::cmp::Eq for ID3D12VersionedRootSignatureDeserializer {}
13731impl ::core::fmt::Debug for ID3D12VersionedRootSignatureDeserializer {
13732 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13733 f.debug_tuple("ID3D12VersionedRootSignatureDeserializer").field(&self.0).finish()
13734 }
13735}
13736unsafe impl ::core::marker::Send for ID3D12VersionedRootSignatureDeserializer {}
13737unsafe impl ::core::marker::Sync for ID3D12VersionedRootSignatureDeserializer {}
13738unsafe impl ::windows::core::Interface for ID3D12VersionedRootSignatureDeserializer {
13739 type Vtable = ID3D12VersionedRootSignatureDeserializer_Vtbl;
13740}
13741impl ::core::clone::Clone for ID3D12VersionedRootSignatureDeserializer {
13742 fn clone(&self) -> Self {
13743 Self(self.0.clone())
13744 }
13745}
13746unsafe impl ::windows::core::ComInterface for ID3D12VersionedRootSignatureDeserializer {
13747 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7f91ce67_090c_4bb7_b78e_ed8ff2e31da0);
13748}
13749#[repr(C)]
13750#[doc(hidden)]
13751pub struct ID3D12VersionedRootSignatureDeserializer_Vtbl {
13752 pub base__: ::windows::core::IUnknown_Vtbl,
13753 pub GetRootSignatureDescAtVersion: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, converttoversion: D3D_ROOT_SIGNATURE_VERSION, ppdesc: *mut *mut D3D12_VERSIONED_ROOT_SIGNATURE_DESC) -> ::windows::core::HRESULT,
13754 pub GetUnconvertedRootSignatureDesc: unsafe extern "system" fn(this: *mut ::core::ffi::c_void) -> *mut D3D12_VERSIONED_ROOT_SIGNATURE_DESC,
13755}
13756#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13757#[repr(transparent)]
13758pub struct ID3D12VirtualizationGuestDevice(::windows::core::IUnknown);
13759impl ID3D12VirtualizationGuestDevice {
13760 #[doc = "*Required features: `\"Win32_Foundation\"`*"]
13761 #[cfg(feature = "Win32_Foundation")]
13762 pub unsafe fn ShareWithHost<P0>(&self, pobject: P0) -> ::windows::core::Result<super::super::Foundation::HANDLE>
13763 where
13764 P0: ::windows::core::IntoParam<ID3D12DeviceChild>,
13765 {
13766 let mut result__ = ::windows::core::zeroed::<super::super::Foundation::HANDLE>();
13767 (::windows::core::Interface::vtable(self).ShareWithHost)(::windows::core::Interface::as_raw(self), pobject.into_param().abi(), &mut result__).from_abi(result__)
13768 }
13769 pub unsafe fn CreateFenceFd<P0>(&self, pfence: P0, fencevalue: u64) -> ::windows::core::Result<i32>
13770 where
13771 P0: ::windows::core::IntoParam<ID3D12Fence>,
13772 {
13773 let mut result__ = ::windows::core::zeroed::<i32>();
13774 (::windows::core::Interface::vtable(self).CreateFenceFd)(::windows::core::Interface::as_raw(self), pfence.into_param().abi(), fencevalue, &mut result__).from_abi(result__)
13775 }
13776}
13777::windows::imp::interface_hierarchy!(ID3D12VirtualizationGuestDevice, ::windows::core::IUnknown);
13778impl ::core::cmp::PartialEq for ID3D12VirtualizationGuestDevice {
13779 fn eq(&self, other: &Self) -> bool {
13780 self.0 == other.0
13781 }
13782}
13783impl ::core::cmp::Eq for ID3D12VirtualizationGuestDevice {}
13784impl ::core::fmt::Debug for ID3D12VirtualizationGuestDevice {
13785 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
13786 f.debug_tuple("ID3D12VirtualizationGuestDevice").field(&self.0).finish()
13787 }
13788}
13789unsafe impl ::core::marker::Send for ID3D12VirtualizationGuestDevice {}
13790unsafe impl ::core::marker::Sync for ID3D12VirtualizationGuestDevice {}
13791unsafe impl ::windows::core::Interface for ID3D12VirtualizationGuestDevice {
13792 type Vtable = ID3D12VirtualizationGuestDevice_Vtbl;
13793}
13794impl ::core::clone::Clone for ID3D12VirtualizationGuestDevice {
13795 fn clone(&self) -> Self {
13796 Self(self.0.clone())
13797 }
13798}
13799unsafe impl ::windows::core::ComInterface for ID3D12VirtualizationGuestDevice {
13800 const IID: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xbc66d368_7373_4943_8757_fc87dc79e476);
13801}
13802#[repr(C)]
13803#[doc(hidden)]
13804pub struct ID3D12VirtualizationGuestDevice_Vtbl {
13805 pub base__: ::windows::core::IUnknown_Vtbl,
13806 #[cfg(feature = "Win32_Foundation")]
13807 pub ShareWithHost: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pobject: *mut ::core::ffi::c_void, phandle: *mut super::super::Foundation::HANDLE) -> ::windows::core::HRESULT,
13808 #[cfg(not(feature = "Win32_Foundation"))]
13809 ShareWithHost: usize,
13810 pub CreateFenceFd: unsafe extern "system" fn(this: *mut ::core::ffi::c_void, pfence: *mut ::core::ffi::c_void, fencevalue: u64, pfencefd: *mut i32) -> ::windows::core::HRESULT,
13811}
13812#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13813pub const CLSID_D3D12Debug: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xf2352aeb_dd84_49fe_b97b_a9dcfdcc1b4f);
13814#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13815pub const CLSID_D3D12DeviceFactory: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x114863bf_c386_4aee_b39d_8f0bbb062955);
13816#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13817pub const CLSID_D3D12DeviceRemovedExtendedData: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x4a75bbc4_9ff4_4ad8_9f18_abae84dc5ff2);
13818#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13819pub const CLSID_D3D12SDKConfiguration: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x7cda6aca_a03e_49c8_9458_0334d20e07ce);
13820#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13821pub const CLSID_D3D12Tools: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xe38216b1_3c8c_4833_aa09_0a06b65d96c8);
13822#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13823pub const D3D12ExperimentalShaderModels: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x76f5573e_f13a_40f5_b297_81ce9e18933f);
13824#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13825pub const D3D12TiledResourceTier4: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xc9c4725f_a81a_4f56_8c5b_c51039d694fb);
13826#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13827pub const D3D12_16BIT_INDEX_STRIP_CUT_VALUE: u32 = 65535u32;
13828#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13829pub const D3D12_32BIT_INDEX_STRIP_CUT_VALUE: u32 = 4294967295u32;
13830#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13831pub const D3D12_8BIT_INDEX_STRIP_CUT_VALUE: u32 = 255u32;
13832#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13833pub const D3D12_ANISOTROPIC_FILTERING_BIT: u32 = 64u32;
13834#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13835pub const D3D12_APPEND_ALIGNED_ELEMENT: u32 = 4294967295u32;
13836#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13837pub const D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT: u32 = 9u32;
13838#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13839pub const D3D12_CLIP_OR_CULL_DISTANCE_COUNT: u32 = 8u32;
13840#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13841pub const D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT: u32 = 2u32;
13842#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13843pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT: u32 = 14u32;
13844#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13845pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS: u32 = 4u32;
13846#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13847pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT: u32 = 32u32;
13848#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13849pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT: u32 = 15u32;
13850#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13851pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT: u32 = 16u32;
13852#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13853pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS: u32 = 4u32;
13854#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13855pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT: u32 = 15u32;
13856#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13857pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST: u32 = 1u32;
13858#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13859pub const D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS: u32 = 1u32;
13860#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13861pub const D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT: u32 = 64u32;
13862#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13863pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS: u32 = 4u32;
13864#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13865pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT: u32 = 1u32;
13866#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13867pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST: u32 = 1u32;
13868#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13869pub const D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS: u32 = 1u32;
13870#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13871pub const D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT: u32 = 32u32;
13872#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13873pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS: u32 = 1u32;
13874#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13875pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT: u32 = 128u32;
13876#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13877pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST: u32 = 1u32;
13878#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13879pub const D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS: u32 = 1u32;
13880#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13881pub const D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT: u32 = 128u32;
13882#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13883pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS: u32 = 1u32;
13884#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13885pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT: u32 = 16u32;
13886#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13887pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST: u32 = 1u32;
13888#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13889pub const D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS: u32 = 1u32;
13890#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13891pub const D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT: u32 = 16u32;
13892#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13893pub const D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT: u32 = 32u32;
13894#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13895pub const D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS: u32 = 4u32;
13896#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13897pub const D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
13898#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13899pub const D3D12_COMMONSHADER_TEMP_REGISTER_COUNT: u32 = 4096u32;
13900#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13901pub const D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST: u32 = 3u32;
13902#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13903pub const D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS: u32 = 3u32;
13904#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13905pub const D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX: u32 = 10u32;
13906#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13907pub const D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN: i32 = -10i32;
13908#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13909pub const D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE: i32 = -8i32;
13910#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13911pub const D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE: u32 = 7u32;
13912#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13913pub const D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT: u32 = 256u32;
13914#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13915pub const D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 256u32;
13916#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13917pub const D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP: u32 = 64u32;
13918#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13919pub const D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 240u32;
13920#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13921pub const D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP: u32 = 68u32;
13922#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13923pub const D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 224u32;
13924#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13925pub const D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP: u32 = 72u32;
13926#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13927pub const D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 208u32;
13928#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13929pub const D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP: u32 = 76u32;
13930#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13931pub const D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 192u32;
13932#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13933pub const D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP: u32 = 84u32;
13934#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13935pub const D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 176u32;
13936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13937pub const D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP: u32 = 92u32;
13938#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13939pub const D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 160u32;
13940#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13941pub const D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP: u32 = 100u32;
13942#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13943pub const D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 144u32;
13944#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13945pub const D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP: u32 = 112u32;
13946#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13947pub const D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 128u32;
13948#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13949pub const D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP: u32 = 128u32;
13950#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13951pub const D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 112u32;
13952#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13953pub const D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP: u32 = 144u32;
13954#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13955pub const D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 96u32;
13956#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13957pub const D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP: u32 = 168u32;
13958#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13959pub const D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 80u32;
13960#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13961pub const D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP: u32 = 204u32;
13962#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13963pub const D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 64u32;
13964#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13965pub const D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP: u32 = 256u32;
13966#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13967pub const D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 48u32;
13968#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13969pub const D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP: u32 = 340u32;
13970#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13971pub const D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 32u32;
13972#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13973pub const D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP: u32 = 512u32;
13974#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13975pub const D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD: u32 = 16u32;
13976#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13977pub const D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP: u32 = 768u32;
13978#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13979pub const D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION: u32 = 1u32;
13980#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13981pub const D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT: u32 = 256u32;
13982#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13983pub const D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP: u32 = 768u32;
13984#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13985pub const D3D12_CS_4_X_THREAD_GROUP_MAX_X: u32 = 768u32;
13986#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13987pub const D3D12_CS_4_X_THREAD_GROUP_MAX_Y: u32 = 768u32;
13988#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13989pub const D3D12_CS_4_X_UAV_REGISTER_COUNT: u32 = 1u32;
13990#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13991pub const D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION: u32 = 65535u32;
13992#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13993pub const D3D12_CS_TGSM_REGISTER_COUNT: u32 = 8192u32;
13994#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13995pub const D3D12_CS_TGSM_REGISTER_READS_PER_INST: u32 = 1u32;
13996#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13997pub const D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS: u32 = 1u32;
13998#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
13999pub const D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS: u32 = 1u32;
14000#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14001pub const D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS: u32 = 3u32;
14002#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14003pub const D3D12_CS_THREADGROUPID_REGISTER_COUNT: u32 = 1u32;
14004#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14005pub const D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS: u32 = 1u32;
14006#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14007pub const D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT: u32 = 1u32;
14008#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14009pub const D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS: u32 = 3u32;
14010#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14011pub const D3D12_CS_THREADIDINGROUP_REGISTER_COUNT: u32 = 1u32;
14012#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14013pub const D3D12_CS_THREADID_REGISTER_COMPONENTS: u32 = 3u32;
14014#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14015pub const D3D12_CS_THREADID_REGISTER_COUNT: u32 = 1u32;
14016#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14017pub const D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP: u32 = 1024u32;
14018#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14019pub const D3D12_CS_THREAD_GROUP_MAX_X: u32 = 1024u32;
14020#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14021pub const D3D12_CS_THREAD_GROUP_MAX_Y: u32 = 1024u32;
14022#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14023pub const D3D12_CS_THREAD_GROUP_MAX_Z: u32 = 64u32;
14024#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14025pub const D3D12_CS_THREAD_GROUP_MIN_X: u32 = 1u32;
14026#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14027pub const D3D12_CS_THREAD_GROUP_MIN_Y: u32 = 1u32;
14028#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14029pub const D3D12_CS_THREAD_GROUP_MIN_Z: u32 = 1u32;
14030#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14031pub const D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL: u32 = 16384u32;
14032#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14033pub const D3D12_DEFAULT_BLEND_FACTOR_ALPHA: f32 = 1f32;
14034#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14035pub const D3D12_DEFAULT_BLEND_FACTOR_BLUE: f32 = 1f32;
14036#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14037pub const D3D12_DEFAULT_BLEND_FACTOR_GREEN: f32 = 1f32;
14038#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14039pub const D3D12_DEFAULT_BLEND_FACTOR_RED: f32 = 1f32;
14040#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14041pub const D3D12_DEFAULT_BORDER_COLOR_COMPONENT: f32 = 0f32;
14042#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14043pub const D3D12_DEFAULT_DEPTH_BIAS: i32 = 0i32;
14044#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14045pub const D3D12_DEFAULT_DEPTH_BIAS_CLAMP: f32 = 0f32;
14046#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14047pub const D3D12_DEFAULT_MAX_ANISOTROPY: u32 = 16u32;
14048#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14049pub const D3D12_DEFAULT_MIP_LOD_BIAS: f32 = 0f32;
14050#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14051pub const D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 4194304u32;
14052#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14053pub const D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX: u32 = 0u32;
14054#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14055pub const D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 65536u32;
14056#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14057pub const D3D12_DEFAULT_SAMPLE_MASK: u32 = 4294967295u32;
14058#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14059pub const D3D12_DEFAULT_SCISSOR_ENDX: u32 = 0u32;
14060#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14061pub const D3D12_DEFAULT_SCISSOR_ENDY: u32 = 0u32;
14062#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14063pub const D3D12_DEFAULT_SCISSOR_STARTX: u32 = 0u32;
14064#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14065pub const D3D12_DEFAULT_SCISSOR_STARTY: u32 = 0u32;
14066#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14067pub const D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING: u32 = 5768u32;
14068#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14069pub const D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS: f32 = 0f32;
14070#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14071pub const D3D12_DEFAULT_STENCIL_READ_MASK: u32 = 255u32;
14072#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14073pub const D3D12_DEFAULT_STENCIL_REFERENCE: u32 = 0u32;
14074#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14075pub const D3D12_DEFAULT_STENCIL_WRITE_MASK: u32 = 255u32;
14076#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14077pub const D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX: u32 = 0u32;
14078#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14079pub const D3D12_DEFAULT_VIEWPORT_HEIGHT: u32 = 0u32;
14080#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14081pub const D3D12_DEFAULT_VIEWPORT_MAX_DEPTH: f32 = 0f32;
14082#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14083pub const D3D12_DEFAULT_VIEWPORT_MIN_DEPTH: f32 = 0f32;
14084#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14085pub const D3D12_DEFAULT_VIEWPORT_TOPLEFTX: u32 = 0u32;
14086#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14087pub const D3D12_DEFAULT_VIEWPORT_TOPLEFTY: u32 = 0u32;
14088#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14089pub const D3D12_DEFAULT_VIEWPORT_WIDTH: u32 = 0u32;
14090#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14091pub const D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND: u32 = 4294967295u32;
14092#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14093pub const D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END: u32 = 4294967287u32;
14094#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14095pub const D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START: u32 = 4294967280u32;
14096#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14097pub const D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: u32 = 3968u32;
14098#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14099pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS: u32 = 4u32;
14100#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14101pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14102#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14103pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT: u32 = 32u32;
14104#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14105pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST: u32 = 2u32;
14106#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14107pub const D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS: u32 = 1u32;
14108#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14109pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS: u32 = 3u32;
14110#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14111pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14112#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14113pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT: u32 = 1u32;
14114#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14115pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST: u32 = 2u32;
14116#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14117pub const D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS: u32 = 1u32;
14118#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14119pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: u32 = 4u32;
14120#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14121pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14122#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14123pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT: u32 = 32u32;
14124#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14125pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: u32 = 2u32;
14126#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14127pub const D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: u32 = 1u32;
14128#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14129pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: u32 = 1u32;
14130#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14131pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14132#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14133pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: u32 = 1u32;
14134#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14135pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: u32 = 2u32;
14136#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14137pub const D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: u32 = 1u32;
14138#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14139pub const D3D12_DS_OUTPUT_REGISTER_COMPONENTS: u32 = 4u32;
14140#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14141pub const D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14142#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14143pub const D3D12_DS_OUTPUT_REGISTER_COUNT: u32 = 32u32;
14144#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14145pub const D3D12_FILTER_REDUCTION_TYPE_MASK: u32 = 3u32;
14146#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14147pub const D3D12_FILTER_REDUCTION_TYPE_SHIFT: u32 = 7u32;
14148#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14149pub const D3D12_FILTER_TYPE_MASK: u32 = 3u32;
14150#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14151pub const D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP: f64 = 0.6f64;
14152#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14153pub const D3D12_FLOAT32_MAX: f32 = 340282350000000000000000000000000000000f32;
14154#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14155pub const D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP: f32 = 0.6f32;
14156#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14157pub const D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR: f32 = 2.4f32;
14158#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14159pub const D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR: f32 = 1f32;
14160#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14161pub const D3D12_FLOAT_TO_SRGB_OFFSET: f32 = 0.055f32;
14162#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14163pub const D3D12_FLOAT_TO_SRGB_SCALE_1: f32 = 12.92f32;
14164#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14165pub const D3D12_FLOAT_TO_SRGB_SCALE_2: f32 = 1.055f32;
14166#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14167pub const D3D12_FLOAT_TO_SRGB_THRESHOLD: f32 = 0.0031308f32;
14168#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14169pub const D3D12_FTOI_INSTRUCTION_MAX_INPUT: f32 = 2147483600f32;
14170#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14171pub const D3D12_FTOI_INSTRUCTION_MIN_INPUT: f32 = -2147483600f32;
14172#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14173pub const D3D12_FTOU_INSTRUCTION_MAX_INPUT: f32 = 4294967300f32;
14174#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14175pub const D3D12_FTOU_INSTRUCTION_MIN_INPUT: f32 = 0f32;
14176#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14177pub const D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST: u32 = 2u32;
14178#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14179pub const D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS: u32 = 1u32;
14180#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14181pub const D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS: u32 = 1u32;
14182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14183pub const D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14184#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14185pub const D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT: u32 = 1u32;
14186#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14187pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS: u32 = 1u32;
14188#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14189pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14190#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14191pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT: u32 = 1u32;
14192#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14193pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST: u32 = 2u32;
14194#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14195pub const D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS: u32 = 1u32;
14196#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14197pub const D3D12_GS_INPUT_REGISTER_COMPONENTS: u32 = 4u32;
14198#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14199pub const D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14200#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14201pub const D3D12_GS_INPUT_REGISTER_COUNT: u32 = 32u32;
14202#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14203pub const D3D12_GS_INPUT_REGISTER_READS_PER_INST: u32 = 2u32;
14204#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14205pub const D3D12_GS_INPUT_REGISTER_READ_PORTS: u32 = 1u32;
14206#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14207pub const D3D12_GS_INPUT_REGISTER_VERTICES: u32 = 32u32;
14208#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14209pub const D3D12_GS_MAX_INSTANCE_COUNT: u32 = 32u32;
14210#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14211pub const D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES: u32 = 1024u32;
14212#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14213pub const D3D12_GS_OUTPUT_ELEMENTS: u32 = 32u32;
14214#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14215pub const D3D12_GS_OUTPUT_REGISTER_COMPONENTS: u32 = 4u32;
14216#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14217pub const D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14218#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14219pub const D3D12_GS_OUTPUT_REGISTER_COUNT: u32 = 32u32;
14220#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14221pub const D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT: u32 = 32u32;
14222#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14223pub const D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT: u32 = 32u32;
14224#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14225pub const D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS: u32 = 4u32;
14226#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14227pub const D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14228#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14229pub const D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST: u32 = 2u32;
14230#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14231pub const D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS: u32 = 1u32;
14232#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14233pub const D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND: u32 = 4294967295u32;
14234#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14235pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS: u32 = 1u32;
14236#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14237pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14238#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14239pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT: u32 = 1u32;
14240#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14241pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST: u32 = 2u32;
14242#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14243pub const D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS: u32 = 1u32;
14244#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14245pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS: u32 = 1u32;
14246#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14247pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14248#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14249pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT: u32 = 1u32;
14250#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14251pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST: u32 = 2u32;
14252#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14253pub const D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS: u32 = 1u32;
14254#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14255pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS: u32 = 1u32;
14256#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14257pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14258#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14259pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT: u32 = 1u32;
14260#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14261pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST: u32 = 2u32;
14262#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14263pub const D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS: u32 = 1u32;
14264#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14265pub const D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND: u32 = 4294967295u32;
14266#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14267pub const D3D12_HS_MAXTESSFACTOR_LOWER_BOUND: f32 = 1f32;
14268#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14269pub const D3D12_HS_MAXTESSFACTOR_UPPER_BOUND: f32 = 64f32;
14270#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14271pub const D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS: u32 = 3968u32;
14272#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14273pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS: u32 = 1u32;
14274#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14275pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14276#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14277pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT: u32 = 1u32;
14278#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14279pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST: u32 = 2u32;
14280#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14281pub const D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS: u32 = 1u32;
14282#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14283pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS: u32 = 4u32;
14284#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14285pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14286#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14287pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT: u32 = 32u32;
14288#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14289pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST: u32 = 2u32;
14290#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14291pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS: u32 = 1u32;
14292#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14293pub const D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS: u32 = 128u32;
14294#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14295pub const D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES: u32 = 0u32;
14296#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14297pub const D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY: u32 = 0u32;
14298#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14299pub const D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES: u32 = 0u32;
14300#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14301pub const D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT: u32 = 1u32;
14302#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14303pub const D3D12_IA_INSTANCE_ID_BIT_COUNT: u32 = 32u32;
14304#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14305pub const D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT: u32 = 32u32;
14306#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14307pub const D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT: u32 = 32u32;
14308#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14309pub const D3D12_IA_PRIMITIVE_ID_BIT_COUNT: u32 = 32u32;
14310#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14311pub const D3D12_IA_VERTEX_ID_BIT_COUNT: u32 = 32u32;
14312#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14313pub const D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT: u32 = 32u32;
14314#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14315pub const D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS: u32 = 128u32;
14316#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14317pub const D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT: u32 = 32u32;
14318#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14319pub const D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT: u32 = 1024u32;
14320#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14321pub const D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT: u32 = 4294967295u32;
14322#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14323pub const D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER: u32 = 4294967295u32;
14324#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14325pub const D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL: u32 = 4294967295u32;
14326#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14327pub const D3D12_KEEP_UNORDERED_ACCESS_VIEWS: u32 = 4294967295u32;
14328#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14329pub const D3D12_LINEAR_GAMMA: f32 = 1f32;
14330#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14331pub const D3D12_MAG_FILTER_SHIFT: u32 = 2u32;
14332#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14333pub const D3D12_MAJOR_VERSION: u32 = 12u32;
14334#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14335pub const D3D12_MAX_BORDER_COLOR_COMPONENT: f32 = 1f32;
14336#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14337pub const D3D12_MAX_DEPTH: f32 = 1f32;
14338#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14339pub const D3D12_MAX_LIVE_STATIC_SAMPLERS: u32 = 2032u32;
14340#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14341pub const D3D12_MAX_MAXANISOTROPY: u32 = 16u32;
14342#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14343pub const D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT: u32 = 32u32;
14344#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14345pub const D3D12_MAX_POSITION_VALUE: f32 = 34028236000000000000000000000000000f32;
14346#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14347pub const D3D12_MAX_ROOT_COST: u32 = 64u32;
14348#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14349pub const D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1: u32 = 1000000u32;
14350#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14351pub const D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2: u32 = 1000000u32;
14352#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14353pub const D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE: u32 = 2048u32;
14354#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14355pub const D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP: u32 = 17u32;
14356#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14357pub const D3D12_MAX_VIEW_INSTANCE_COUNT: u32 = 4u32;
14358#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14359pub const D3D12_MINOR_VERSION: u32 = 0u32;
14360#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14361pub const D3D12_MIN_BORDER_COLOR_COMPONENT: f32 = 0f32;
14362#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14363pub const D3D12_MIN_DEPTH: f32 = 0f32;
14364#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14365pub const D3D12_MIN_FILTER_SHIFT: u32 = 4u32;
14366#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14367pub const D3D12_MIN_MAXANISOTROPY: u32 = 0u32;
14368#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14369pub const D3D12_MIP_FILTER_SHIFT: u32 = 0u32;
14370#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14371pub const D3D12_MIP_LOD_BIAS_MAX: f32 = 15.99f32;
14372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14373pub const D3D12_MIP_LOD_BIAS_MIN: f32 = -16f32;
14374#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14375pub const D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT: u32 = 8u32;
14376#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14377pub const D3D12_MIP_LOD_RANGE_BIT_COUNT: u32 = 8u32;
14378#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14379pub const D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH: f32 = 1.4f32;
14380#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14381pub const D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT: u32 = 0u32;
14382#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14383pub const D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END: u32 = 4294967295u32;
14384#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14385pub const D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START: u32 = 4294967288u32;
14386#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14387pub const D3D12_PACKED_TILE: u32 = 4294967295u32;
14388#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14389pub const D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT: u32 = 15u32;
14390#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14391pub const D3D12_PREVIEW_SDK_VERSION: u32 = 707u32;
14392#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14393pub const D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT: u32 = 16u32;
14394#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14395pub const D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED: ::windows::core::GUID = ::windows::core::GUID::from_u128(0x62b0084e_c70e_4daa_a109_30ff8d5a0482);
14396#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14397pub const D3D12_PS_CS_UAV_REGISTER_COMPONENTS: u32 = 1u32;
14398#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14399pub const D3D12_PS_CS_UAV_REGISTER_COUNT: u32 = 8u32;
14400#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14401pub const D3D12_PS_CS_UAV_REGISTER_READS_PER_INST: u32 = 1u32;
14402#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14403pub const D3D12_PS_CS_UAV_REGISTER_READ_PORTS: u32 = 1u32;
14404#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14405pub const D3D12_PS_FRONTFACING_DEFAULT_VALUE: u32 = 4294967295u32;
14406#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14407pub const D3D12_PS_FRONTFACING_FALSE_VALUE: u32 = 0u32;
14408#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14409pub const D3D12_PS_FRONTFACING_TRUE_VALUE: u32 = 4294967295u32;
14410#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14411pub const D3D12_PS_INPUT_REGISTER_COMPONENTS: u32 = 4u32;
14412#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14413pub const D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14414#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14415pub const D3D12_PS_INPUT_REGISTER_COUNT: u32 = 32u32;
14416#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14417pub const D3D12_PS_INPUT_REGISTER_READS_PER_INST: u32 = 2u32;
14418#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14419pub const D3D12_PS_INPUT_REGISTER_READ_PORTS: u32 = 1u32;
14420#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14421pub const D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT: f32 = 0f32;
14422#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14423pub const D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS: u32 = 1u32;
14424#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14425pub const D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14426#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14427pub const D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT: u32 = 1u32;
14428#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14429pub const D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS: u32 = 1u32;
14430#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14431pub const D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14432#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14433pub const D3D12_PS_OUTPUT_MASK_REGISTER_COUNT: u32 = 1u32;
14434#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14435pub const D3D12_PS_OUTPUT_REGISTER_COMPONENTS: u32 = 4u32;
14436#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14437pub const D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14438#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14439pub const D3D12_PS_OUTPUT_REGISTER_COUNT: u32 = 8u32;
14440#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14441pub const D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT: f32 = 0.5f32;
14442#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14443pub const D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT: u32 = 16u32;
14444#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14445pub const D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT: u32 = 8u32;
14446#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14447pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT: u32 = 256u32;
14448#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14449pub const D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT: u32 = 16u32;
14450#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14451pub const D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES: u32 = 32u32;
14452#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14453pub const D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH: u32 = 31u32;
14454#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14455pub const D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE: u32 = 16777216u32;
14456#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14457pub const D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE: u32 = 16777216u32;
14458#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14459pub const D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE: u32 = 536870912u32;
14460#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14461pub const D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS: u32 = 1073741824u32;
14462#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14463pub const D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE: u32 = 4096u32;
14464#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14465pub const D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT: u32 = 32u32;
14466#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14467pub const D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT: u32 = 64u32;
14468#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14469pub const D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT: u32 = 16u32;
14470#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14471pub const D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE: u32 = 4096u32;
14472#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14473pub const D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP: u32 = 27u32;
14474#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14475pub const D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT: u32 = 4096u32;
14476#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14477pub const D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE: u32 = 4096u32;
14478#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14479pub const D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: u32 = 32u32;
14480#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14481pub const D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP: u32 = 32u32;
14482#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14483pub const D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION: u32 = 16384u32;
14484#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14485pub const D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT: u32 = 1024u32;
14486#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14487pub const D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT: u32 = 4096u32;
14488#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14489pub const D3D12_REQ_MAXANISOTROPY: u32 = 16u32;
14490#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14491pub const D3D12_REQ_MIP_LEVELS: u32 = 15u32;
14492#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14493pub const D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES: u32 = 2048u32;
14494#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14495pub const D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE: u32 = 4096u32;
14496#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14497pub const D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH: u32 = 16384u32;
14498#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14499pub const D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM: u32 = 128u32;
14500#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14501pub const D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM: f32 = 0.25f32;
14502#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14503pub const D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM: u32 = 2048u32;
14504#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14505pub const D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP: u32 = 20u32;
14506#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14507pub const D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE: u32 = 4096u32;
14508#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14509pub const D3D12_REQ_SUBRESOURCES: u32 = 30720u32;
14510#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14511pub const D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION: u32 = 2048u32;
14512#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14513pub const D3D12_REQ_TEXTURE1D_U_DIMENSION: u32 = 16384u32;
14514#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14515pub const D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION: u32 = 2048u32;
14516#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14517pub const D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION: u32 = 16384u32;
14518#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14519pub const D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION: u32 = 2048u32;
14520#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14521pub const D3D12_REQ_TEXTURECUBE_DIMENSION: u32 = 16384u32;
14522#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14523pub const D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL: u32 = 0u32;
14524#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14525pub const D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES: u32 = 4294967295u32;
14526#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14527pub const D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT: u32 = 2u32;
14528#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14529pub const D3D12_SDK_VERSION: u32 = 608u32;
14530#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14531pub const D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES: u32 = 4096u32;
14532#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14533pub const D3D12_SHADER_COMPONENT_MAPPING_MASK: u32 = 7u32;
14534#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14535pub const D3D12_SHADER_COMPONENT_MAPPING_SHIFT: u32 = 3u32;
14536#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14537pub const D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES: u32 = 32u32;
14538#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14539pub const D3D12_SHADER_MAJOR_VERSION: u32 = 5u32;
14540#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14541pub const D3D12_SHADER_MAX_INSTANCES: u32 = 65535u32;
14542#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14543pub const D3D12_SHADER_MAX_INTERFACES: u32 = 253u32;
14544#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14545pub const D3D12_SHADER_MAX_INTERFACE_CALL_SITES: u32 = 4096u32;
14546#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14547pub const D3D12_SHADER_MAX_TYPES: u32 = 65535u32;
14548#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14549pub const D3D12_SHADER_MINOR_VERSION: u32 = 1u32;
14550#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14551pub const D3D12_SHADING_RATE_VALID_MASK: u32 = 3u32;
14552#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14553pub const D3D12_SHADING_RATE_X_AXIS_SHIFT: u32 = 2u32;
14554#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14555pub const D3D12_SHIFT_INSTRUCTION_PAD_VALUE: u32 = 0u32;
14556#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14557pub const D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT: u32 = 5u32;
14558#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14559pub const D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT: u32 = 8u32;
14560#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14561pub const D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 65536u32;
14562#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14563pub const D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT: u32 = 4096u32;
14564#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14565pub const D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES: u32 = 2048u32;
14566#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14567pub const D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES: u32 = 512u32;
14568#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14569pub const D3D12_SO_BUFFER_SLOT_COUNT: u32 = 4u32;
14570#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14571pub const D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP: u32 = 4294967295u32;
14572#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14573pub const D3D12_SO_NO_RASTERIZED_STREAM: u32 = 4294967295u32;
14574#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14575pub const D3D12_SO_OUTPUT_COMPONENT_COUNT: u32 = 128u32;
14576#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14577pub const D3D12_SO_STREAM_COUNT: u32 = 4u32;
14578#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14579pub const D3D12_SPEC_DATE_DAY: u32 = 14u32;
14580#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14581pub const D3D12_SPEC_DATE_MONTH: u32 = 11u32;
14582#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14583pub const D3D12_SPEC_DATE_YEAR: u32 = 2014u32;
14584#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14585pub const D3D12_SPEC_VERSION: f64 = 1.16f64;
14586#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14587pub const D3D12_SRGB_GAMMA: f32 = 2.2f32;
14588#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14589pub const D3D12_SRGB_TO_FLOAT_DENOMINATOR_1: f32 = 12.92f32;
14590#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14591pub const D3D12_SRGB_TO_FLOAT_DENOMINATOR_2: f32 = 1.055f32;
14592#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14593pub const D3D12_SRGB_TO_FLOAT_EXPONENT: f32 = 2.4f32;
14594#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14595pub const D3D12_SRGB_TO_FLOAT_OFFSET: f32 = 0.055f32;
14596#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14597pub const D3D12_SRGB_TO_FLOAT_THRESHOLD: f32 = 0.04045f32;
14598#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14599pub const D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP: f32 = 0.5f32;
14600#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14601pub const D3D12_STANDARD_COMPONENT_BIT_COUNT: u32 = 32u32;
14602#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14603pub const D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED: u32 = 64u32;
14604#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14605pub const D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE: u32 = 4u32;
14606#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14607pub const D3D12_STANDARD_PIXEL_COMPONENT_COUNT: u32 = 128u32;
14608#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14609pub const D3D12_STANDARD_PIXEL_ELEMENT_COUNT: u32 = 32u32;
14610#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14611pub const D3D12_STANDARD_VECTOR_SIZE: u32 = 4u32;
14612#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14613pub const D3D12_STANDARD_VERTEX_ELEMENT_COUNT: u32 = 32u32;
14614#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14615pub const D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT: u32 = 64u32;
14616#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14617pub const D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT: u32 = 8u32;
14618#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14619pub const D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT: u32 = 8u32;
14620#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14621pub const D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END: u32 = 4294967295u32;
14622#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14623pub const D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START: u32 = 4294967280u32;
14624#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14625pub const D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR: u32 = 64u32;
14626#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14627pub const D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR: u32 = 64u32;
14628#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14629pub const D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR: u32 = 63u32;
14630#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14631pub const D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR: u32 = 64u32;
14632#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14633pub const D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR: u32 = 2u32;
14634#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14635pub const D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR: u32 = 1u32;
14636#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14637pub const D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR: u32 = 1u32;
14638#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14639pub const D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT: u32 = 16u32;
14640#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14641pub const D3D12_TEXTURE_DATA_PITCH_ALIGNMENT: u32 = 256u32;
14642#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14643pub const D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT: u32 = 512u32;
14644#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14645pub const D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES: u32 = 65536u32;
14646#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14647pub const D3D12_TRACKED_WORKLOAD_MAX_INSTANCES: u32 = 32u32;
14648#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14649pub const D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT: u32 = 4096u32;
14650#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14651pub const D3D12_UAV_SLOT_COUNT: u32 = 64u32;
14652#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14653pub const D3D12_UNBOUND_MEMORY_ACCESS_RESULT: u32 = 0u32;
14654#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14655pub const D3D12_VIDEO_DECODE_MAX_ARGUMENTS: u32 = 10u32;
14656#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14657pub const D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS: u32 = 4u32;
14658#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14659pub const D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT: u32 = 256u32;
14660#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14661pub const D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT: u32 = 256u32;
14662#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14663pub const D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN: u32 = 4294967295u32;
14664#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14665pub const D3D12_VIDEO_PROCESS_MAX_FILTERS: u32 = 32u32;
14666#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14667pub const D3D12_VIDEO_PROCESS_STEREO_VIEWS: u32 = 2u32;
14668#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14669pub const D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX: u32 = 15u32;
14670#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14671pub const D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE: u32 = 16u32;
14672#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14673pub const D3D12_VIEWPORT_BOUNDS_MAX: u32 = 32767u32;
14674#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14675pub const D3D12_VIEWPORT_BOUNDS_MIN: i32 = -32768i32;
14676#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14677pub const D3D12_VS_INPUT_REGISTER_COMPONENTS: u32 = 4u32;
14678#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14679pub const D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14680#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14681pub const D3D12_VS_INPUT_REGISTER_COUNT: u32 = 32u32;
14682#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14683pub const D3D12_VS_INPUT_REGISTER_READS_PER_INST: u32 = 2u32;
14684#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14685pub const D3D12_VS_INPUT_REGISTER_READ_PORTS: u32 = 1u32;
14686#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14687pub const D3D12_VS_OUTPUT_REGISTER_COMPONENTS: u32 = 4u32;
14688#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14689pub const D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT: u32 = 32u32;
14690#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14691pub const D3D12_VS_OUTPUT_REGISTER_COUNT: u32 = 32u32;
14692#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14693pub const D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT: u32 = 10u32;
14694#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14695pub const D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP: u32 = 25u32;
14696#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14697pub const D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP: u32 = 25u32;
14698#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14699pub const D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS: u32 = 536870912u32;
14700#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14701pub const D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES: u32 = 1073741824u32;
14702#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14703pub const D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE: u32 = 268435456u32;
14704#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14705pub const D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED: u32 = 8388608u32;
14706#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14707pub const D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE: u32 = 4194304u32;
14708#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14709pub const D3D_SHADER_REQUIRES_BARYCENTRICS: u32 = 131072u32;
14710#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14711pub const D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS: u32 = 16777216u32;
14712#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14713pub const D3D_SHADER_REQUIRES_INNER_COVERAGE: u32 = 1024u32;
14714#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14715pub const D3D_SHADER_REQUIRES_INT64_OPS: u32 = 32768u32;
14716#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14717pub const D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS: u32 = 262144u32;
14718#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14719pub const D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1: u32 = 1048576u32;
14720#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14721pub const D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING: u32 = 33554432u32;
14722#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14723pub const D3D_SHADER_REQUIRES_ROVS: u32 = 4096u32;
14724#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14725pub const D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING: u32 = 67108864u32;
14726#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14727pub const D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK: u32 = 2097152u32;
14728#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14729pub const D3D_SHADER_REQUIRES_SHADING_RATE: u32 = 524288u32;
14730#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14731pub const D3D_SHADER_REQUIRES_STENCIL_REF: u32 = 512u32;
14732#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14733pub const D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS: u32 = 2048u32;
14734#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14735pub const D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER: u32 = 8192u32;
14736#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14737pub const D3D_SHADER_REQUIRES_VIEW_ID: u32 = 65536u32;
14738#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14739pub const D3D_SHADER_REQUIRES_WAVE_MMA: u32 = 134217728u32;
14740#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14741pub const D3D_SHADER_REQUIRES_WAVE_OPS: u32 = 16384u32;
14742#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14743pub const DXGI_DEBUG_D3D12: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xcf59a98c_a950_4326_91ef_9bbaa17bfd95);
14744#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14745pub const LUID_DEFINED: u32 = 1u32;
14746#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14747pub const WKPDID_D3DAutoDebugObjectNameW: ::windows::core::GUID = ::windows::core::GUID::from_u128(0xd4902e36_757a_4942_9594_b6769afa43cd);
14748#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14749#[repr(transparent)]
14750#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
14751pub struct D3D12_AUTO_BREADCRUMB_OP(pub i32);
14752#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14753pub const D3D12_AUTO_BREADCRUMB_OP_SETMARKER: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(0i32);
14754#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14755pub const D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(1i32);
14756#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14757pub const D3D12_AUTO_BREADCRUMB_OP_ENDEVENT: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(2i32);
14758#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14759pub const D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(3i32);
14760#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14761pub const D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(4i32);
14762#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14763pub const D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(5i32);
14764#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14765pub const D3D12_AUTO_BREADCRUMB_OP_DISPATCH: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(6i32);
14766#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14767pub const D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(7i32);
14768#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14769pub const D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(8i32);
14770#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14771pub const D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(9i32);
14772#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14773pub const D3D12_AUTO_BREADCRUMB_OP_COPYTILES: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(10i32);
14774#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14775pub const D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(11i32);
14776#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14777pub const D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(12i32);
14778#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14779pub const D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(13i32);
14780#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14781pub const D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(14i32);
14782#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14783pub const D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(15i32);
14784#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14785pub const D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(16i32);
14786#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14787pub const D3D12_AUTO_BREADCRUMB_OP_PRESENT: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(17i32);
14788#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14789pub const D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(18i32);
14790#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14791pub const D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(19i32);
14792#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14793pub const D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(20i32);
14794#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14795pub const D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(21i32);
14796#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14797pub const D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(22i32);
14798#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14799pub const D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(23i32);
14800#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14801pub const D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(24i32);
14802#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14803pub const D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(25i32);
14804#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14805pub const D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(26i32);
14806#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14807pub const D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(27i32);
14808#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14809pub const D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(28i32);
14810#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14811pub const D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(29i32);
14812#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14813pub const D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(30i32);
14814#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14815pub const D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(31i32);
14816#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14817pub const D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(32i32);
14818#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14819pub const D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(33i32);
14820#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14821pub const D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(34i32);
14822#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14823pub const D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(35i32);
14824#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14825pub const D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(36i32);
14826#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14827pub const D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(37i32);
14828#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14829pub const D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(38i32);
14830#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14831pub const D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(39i32);
14832#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14833pub const D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(40i32);
14834#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14835pub const D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(41i32);
14836#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14837pub const D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(42i32);
14838#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14839pub const D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(43i32);
14840#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14841pub const D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA: D3D12_AUTO_BREADCRUMB_OP = D3D12_AUTO_BREADCRUMB_OP(44i32);
14842impl ::core::marker::Copy for D3D12_AUTO_BREADCRUMB_OP {}
14843impl ::core::clone::Clone for D3D12_AUTO_BREADCRUMB_OP {
14844 fn clone(&self) -> Self {
14845 *self
14846 }
14847}
14848impl ::core::default::Default for D3D12_AUTO_BREADCRUMB_OP {
14849 fn default() -> Self {
14850 Self(0)
14851 }
14852}
14853impl ::windows::core::TypeKind for D3D12_AUTO_BREADCRUMB_OP {
14854 type TypeKind = ::windows::core::CopyType;
14855}
14856impl ::core::fmt::Debug for D3D12_AUTO_BREADCRUMB_OP {
14857 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
14858 f.debug_tuple("D3D12_AUTO_BREADCRUMB_OP").field(&self.0).finish()
14859 }
14860}
14861#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14862#[repr(transparent)]
14863#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
14864pub struct D3D12_AXIS_SHADING_RATE(pub i32);
14865#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14866pub const D3D12_AXIS_SHADING_RATE_1X: D3D12_AXIS_SHADING_RATE = D3D12_AXIS_SHADING_RATE(0i32);
14867#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14868pub const D3D12_AXIS_SHADING_RATE_2X: D3D12_AXIS_SHADING_RATE = D3D12_AXIS_SHADING_RATE(1i32);
14869#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14870pub const D3D12_AXIS_SHADING_RATE_4X: D3D12_AXIS_SHADING_RATE = D3D12_AXIS_SHADING_RATE(2i32);
14871impl ::core::marker::Copy for D3D12_AXIS_SHADING_RATE {}
14872impl ::core::clone::Clone for D3D12_AXIS_SHADING_RATE {
14873 fn clone(&self) -> Self {
14874 *self
14875 }
14876}
14877impl ::core::default::Default for D3D12_AXIS_SHADING_RATE {
14878 fn default() -> Self {
14879 Self(0)
14880 }
14881}
14882impl ::windows::core::TypeKind for D3D12_AXIS_SHADING_RATE {
14883 type TypeKind = ::windows::core::CopyType;
14884}
14885impl ::core::fmt::Debug for D3D12_AXIS_SHADING_RATE {
14886 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
14887 f.debug_tuple("D3D12_AXIS_SHADING_RATE").field(&self.0).finish()
14888 }
14889}
14890#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14891#[repr(transparent)]
14892#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
14893pub struct D3D12_BACKGROUND_PROCESSING_MODE(pub i32);
14894#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14895pub const D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED: D3D12_BACKGROUND_PROCESSING_MODE = D3D12_BACKGROUND_PROCESSING_MODE(0i32);
14896#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14897pub const D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS: D3D12_BACKGROUND_PROCESSING_MODE = D3D12_BACKGROUND_PROCESSING_MODE(1i32);
14898#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14899pub const D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK: D3D12_BACKGROUND_PROCESSING_MODE = D3D12_BACKGROUND_PROCESSING_MODE(2i32);
14900#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14901pub const D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM: D3D12_BACKGROUND_PROCESSING_MODE = D3D12_BACKGROUND_PROCESSING_MODE(3i32);
14902impl ::core::marker::Copy for D3D12_BACKGROUND_PROCESSING_MODE {}
14903impl ::core::clone::Clone for D3D12_BACKGROUND_PROCESSING_MODE {
14904 fn clone(&self) -> Self {
14905 *self
14906 }
14907}
14908impl ::core::default::Default for D3D12_BACKGROUND_PROCESSING_MODE {
14909 fn default() -> Self {
14910 Self(0)
14911 }
14912}
14913impl ::windows::core::TypeKind for D3D12_BACKGROUND_PROCESSING_MODE {
14914 type TypeKind = ::windows::core::CopyType;
14915}
14916impl ::core::fmt::Debug for D3D12_BACKGROUND_PROCESSING_MODE {
14917 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
14918 f.debug_tuple("D3D12_BACKGROUND_PROCESSING_MODE").field(&self.0).finish()
14919 }
14920}
14921#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14922#[repr(transparent)]
14923#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
14924pub struct D3D12_BARRIER_ACCESS(pub i32);
14925#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14926pub const D3D12_BARRIER_ACCESS_COMMON: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(0i32);
14927#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14928pub const D3D12_BARRIER_ACCESS_VERTEX_BUFFER: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(1i32);
14929#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14930pub const D3D12_BARRIER_ACCESS_CONSTANT_BUFFER: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(2i32);
14931#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14932pub const D3D12_BARRIER_ACCESS_INDEX_BUFFER: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(4i32);
14933#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14934pub const D3D12_BARRIER_ACCESS_RENDER_TARGET: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(8i32);
14935#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14936pub const D3D12_BARRIER_ACCESS_UNORDERED_ACCESS: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(16i32);
14937#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14938pub const D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(32i32);
14939#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14940pub const D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(64i32);
14941#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14942pub const D3D12_BARRIER_ACCESS_SHADER_RESOURCE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(128i32);
14943#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14944pub const D3D12_BARRIER_ACCESS_STREAM_OUTPUT: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(256i32);
14945#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14946pub const D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(512i32);
14947#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14948pub const D3D12_BARRIER_ACCESS_PREDICATION: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(512i32);
14949#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14950pub const D3D12_BARRIER_ACCESS_COPY_DEST: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(1024i32);
14951#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14952pub const D3D12_BARRIER_ACCESS_COPY_SOURCE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(2048i32);
14953#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14954pub const D3D12_BARRIER_ACCESS_RESOLVE_DEST: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(4096i32);
14955#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14956pub const D3D12_BARRIER_ACCESS_RESOLVE_SOURCE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(8192i32);
14957#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14958pub const D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(16384i32);
14959#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14960pub const D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(32768i32);
14961#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14962pub const D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(65536i32);
14963#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14964pub const D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(131072i32);
14965#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14966pub const D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(262144i32);
14967#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14968pub const D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(524288i32);
14969#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14970pub const D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(1048576i32);
14971#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14972pub const D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(2097152i32);
14973#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14974pub const D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(4194304i32);
14975#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
14976pub const D3D12_BARRIER_ACCESS_NO_ACCESS: D3D12_BARRIER_ACCESS = D3D12_BARRIER_ACCESS(-2147483648i32);
14977impl ::core::marker::Copy for D3D12_BARRIER_ACCESS {}
14978impl ::core::clone::Clone for D3D12_BARRIER_ACCESS {
14979 fn clone(&self) -> Self {
14980 *self
14981 }
14982}
14983impl ::core::default::Default for D3D12_BARRIER_ACCESS {
14984 fn default() -> Self {
14985 Self(0)
14986 }
14987}
14988impl ::windows::core::TypeKind for D3D12_BARRIER_ACCESS {
14989 type TypeKind = ::windows::core::CopyType;
14990}
14991impl ::core::fmt::Debug for D3D12_BARRIER_ACCESS {
14992 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
14993 f.debug_tuple("D3D12_BARRIER_ACCESS").field(&self.0).finish()
14994 }
14995}
14996impl D3D12_BARRIER_ACCESS {
14997 pub const fn contains(&self, other: Self) -> bool {
14998 self.0 & other.0 == other.0
14999 }
15000}
15001impl ::core::ops::BitOr for D3D12_BARRIER_ACCESS {
15002 type Output = Self;
15003 fn bitor(self, other: Self) -> Self {
15004 Self(self.0 | other.0)
15005 }
15006}
15007impl ::core::ops::BitAnd for D3D12_BARRIER_ACCESS {
15008 type Output = Self;
15009 fn bitand(self, other: Self) -> Self {
15010 Self(self.0 & other.0)
15011 }
15012}
15013impl ::core::ops::BitOrAssign for D3D12_BARRIER_ACCESS {
15014 fn bitor_assign(&mut self, other: Self) {
15015 self.0.bitor_assign(other.0)
15016 }
15017}
15018impl ::core::ops::BitAndAssign for D3D12_BARRIER_ACCESS {
15019 fn bitand_assign(&mut self, other: Self) {
15020 self.0.bitand_assign(other.0)
15021 }
15022}
15023impl ::core::ops::Not for D3D12_BARRIER_ACCESS {
15024 type Output = Self;
15025 fn not(self) -> Self {
15026 Self(self.0.not())
15027 }
15028}
15029#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15030#[repr(transparent)]
15031#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15032pub struct D3D12_BARRIER_LAYOUT(pub i32);
15033#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15034pub const D3D12_BARRIER_LAYOUT_UNDEFINED: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(-1i32);
15035#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15036pub const D3D12_BARRIER_LAYOUT_COMMON: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(0i32);
15037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15038pub const D3D12_BARRIER_LAYOUT_PRESENT: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(0i32);
15039#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15040pub const D3D12_BARRIER_LAYOUT_GENERIC_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(1i32);
15041#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15042pub const D3D12_BARRIER_LAYOUT_RENDER_TARGET: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(2i32);
15043#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15044pub const D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(3i32);
15045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15046pub const D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(4i32);
15047#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15048pub const D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(5i32);
15049#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15050pub const D3D12_BARRIER_LAYOUT_SHADER_RESOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(6i32);
15051#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15052pub const D3D12_BARRIER_LAYOUT_COPY_SOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(7i32);
15053#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15054pub const D3D12_BARRIER_LAYOUT_COPY_DEST: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(8i32);
15055#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15056pub const D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(9i32);
15057#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15058pub const D3D12_BARRIER_LAYOUT_RESOLVE_DEST: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(10i32);
15059#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15060pub const D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(11i32);
15061#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15062pub const D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(12i32);
15063#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15064pub const D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(13i32);
15065#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15066pub const D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(14i32);
15067#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15068pub const D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(15i32);
15069#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15070pub const D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(16i32);
15071#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15072pub const D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(17i32);
15073#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15074pub const D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(18i32);
15075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15076pub const D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(19i32);
15077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15078pub const D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(20i32);
15079#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15080pub const D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(21i32);
15081#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15082pub const D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(22i32);
15083#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15084pub const D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(23i32);
15085#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15086pub const D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(24i32);
15087#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15088pub const D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(25i32);
15089#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15090pub const D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(26i32);
15091#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15092pub const D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(27i32);
15093#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15094pub const D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(28i32);
15095#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15096pub const D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(29i32);
15097#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15098pub const D3D12_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON: D3D12_BARRIER_LAYOUT = D3D12_BARRIER_LAYOUT(30i32);
15099impl ::core::marker::Copy for D3D12_BARRIER_LAYOUT {}
15100impl ::core::clone::Clone for D3D12_BARRIER_LAYOUT {
15101 fn clone(&self) -> Self {
15102 *self
15103 }
15104}
15105impl ::core::default::Default for D3D12_BARRIER_LAYOUT {
15106 fn default() -> Self {
15107 Self(0)
15108 }
15109}
15110impl ::windows::core::TypeKind for D3D12_BARRIER_LAYOUT {
15111 type TypeKind = ::windows::core::CopyType;
15112}
15113impl ::core::fmt::Debug for D3D12_BARRIER_LAYOUT {
15114 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15115 f.debug_tuple("D3D12_BARRIER_LAYOUT").field(&self.0).finish()
15116 }
15117}
15118#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15119#[repr(transparent)]
15120#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15121pub struct D3D12_BARRIER_SYNC(pub i32);
15122#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15123pub const D3D12_BARRIER_SYNC_NONE: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(0i32);
15124#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15125pub const D3D12_BARRIER_SYNC_ALL: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(1i32);
15126#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15127pub const D3D12_BARRIER_SYNC_DRAW: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(2i32);
15128#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15129pub const D3D12_BARRIER_SYNC_INDEX_INPUT: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(4i32);
15130#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15131pub const D3D12_BARRIER_SYNC_VERTEX_SHADING: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(8i32);
15132#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15133pub const D3D12_BARRIER_SYNC_PIXEL_SHADING: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(16i32);
15134#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15135pub const D3D12_BARRIER_SYNC_DEPTH_STENCIL: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(32i32);
15136#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15137pub const D3D12_BARRIER_SYNC_RENDER_TARGET: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(64i32);
15138#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15139pub const D3D12_BARRIER_SYNC_COMPUTE_SHADING: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(128i32);
15140#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15141pub const D3D12_BARRIER_SYNC_RAYTRACING: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(256i32);
15142#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15143pub const D3D12_BARRIER_SYNC_COPY: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(512i32);
15144#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15145pub const D3D12_BARRIER_SYNC_RESOLVE: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(1024i32);
15146#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15147pub const D3D12_BARRIER_SYNC_EXECUTE_INDIRECT: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(2048i32);
15148#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15149pub const D3D12_BARRIER_SYNC_PREDICATION: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(2048i32);
15150#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15151pub const D3D12_BARRIER_SYNC_ALL_SHADING: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(4096i32);
15152#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15153pub const D3D12_BARRIER_SYNC_NON_PIXEL_SHADING: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(8192i32);
15154#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15155pub const D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(16384i32);
15156#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15157pub const D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(32768i32);
15158#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15159pub const D3D12_BARRIER_SYNC_VIDEO_DECODE: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(1048576i32);
15160#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15161pub const D3D12_BARRIER_SYNC_VIDEO_PROCESS: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(2097152i32);
15162#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15163pub const D3D12_BARRIER_SYNC_VIDEO_ENCODE: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(4194304i32);
15164#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15165pub const D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(8388608i32);
15166#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15167pub const D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(16777216i32);
15168#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15169pub const D3D12_BARRIER_SYNC_SPLIT: D3D12_BARRIER_SYNC = D3D12_BARRIER_SYNC(-2147483648i32);
15170impl ::core::marker::Copy for D3D12_BARRIER_SYNC {}
15171impl ::core::clone::Clone for D3D12_BARRIER_SYNC {
15172 fn clone(&self) -> Self {
15173 *self
15174 }
15175}
15176impl ::core::default::Default for D3D12_BARRIER_SYNC {
15177 fn default() -> Self {
15178 Self(0)
15179 }
15180}
15181impl ::windows::core::TypeKind for D3D12_BARRIER_SYNC {
15182 type TypeKind = ::windows::core::CopyType;
15183}
15184impl ::core::fmt::Debug for D3D12_BARRIER_SYNC {
15185 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15186 f.debug_tuple("D3D12_BARRIER_SYNC").field(&self.0).finish()
15187 }
15188}
15189impl D3D12_BARRIER_SYNC {
15190 pub const fn contains(&self, other: Self) -> bool {
15191 self.0 & other.0 == other.0
15192 }
15193}
15194impl ::core::ops::BitOr for D3D12_BARRIER_SYNC {
15195 type Output = Self;
15196 fn bitor(self, other: Self) -> Self {
15197 Self(self.0 | other.0)
15198 }
15199}
15200impl ::core::ops::BitAnd for D3D12_BARRIER_SYNC {
15201 type Output = Self;
15202 fn bitand(self, other: Self) -> Self {
15203 Self(self.0 & other.0)
15204 }
15205}
15206impl ::core::ops::BitOrAssign for D3D12_BARRIER_SYNC {
15207 fn bitor_assign(&mut self, other: Self) {
15208 self.0.bitor_assign(other.0)
15209 }
15210}
15211impl ::core::ops::BitAndAssign for D3D12_BARRIER_SYNC {
15212 fn bitand_assign(&mut self, other: Self) {
15213 self.0.bitand_assign(other.0)
15214 }
15215}
15216impl ::core::ops::Not for D3D12_BARRIER_SYNC {
15217 type Output = Self;
15218 fn not(self) -> Self {
15219 Self(self.0.not())
15220 }
15221}
15222#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15223#[repr(transparent)]
15224#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15225pub struct D3D12_BARRIER_TYPE(pub i32);
15226#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15227pub const D3D12_BARRIER_TYPE_GLOBAL: D3D12_BARRIER_TYPE = D3D12_BARRIER_TYPE(0i32);
15228#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15229pub const D3D12_BARRIER_TYPE_TEXTURE: D3D12_BARRIER_TYPE = D3D12_BARRIER_TYPE(1i32);
15230#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15231pub const D3D12_BARRIER_TYPE_BUFFER: D3D12_BARRIER_TYPE = D3D12_BARRIER_TYPE(2i32);
15232impl ::core::marker::Copy for D3D12_BARRIER_TYPE {}
15233impl ::core::clone::Clone for D3D12_BARRIER_TYPE {
15234 fn clone(&self) -> Self {
15235 *self
15236 }
15237}
15238impl ::core::default::Default for D3D12_BARRIER_TYPE {
15239 fn default() -> Self {
15240 Self(0)
15241 }
15242}
15243impl ::windows::core::TypeKind for D3D12_BARRIER_TYPE {
15244 type TypeKind = ::windows::core::CopyType;
15245}
15246impl ::core::fmt::Debug for D3D12_BARRIER_TYPE {
15247 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15248 f.debug_tuple("D3D12_BARRIER_TYPE").field(&self.0).finish()
15249 }
15250}
15251#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15252#[repr(transparent)]
15253#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15254pub struct D3D12_BLEND(pub i32);
15255#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15256pub const D3D12_BLEND_ZERO: D3D12_BLEND = D3D12_BLEND(1i32);
15257#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15258pub const D3D12_BLEND_ONE: D3D12_BLEND = D3D12_BLEND(2i32);
15259#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15260pub const D3D12_BLEND_SRC_COLOR: D3D12_BLEND = D3D12_BLEND(3i32);
15261#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15262pub const D3D12_BLEND_INV_SRC_COLOR: D3D12_BLEND = D3D12_BLEND(4i32);
15263#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15264pub const D3D12_BLEND_SRC_ALPHA: D3D12_BLEND = D3D12_BLEND(5i32);
15265#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15266pub const D3D12_BLEND_INV_SRC_ALPHA: D3D12_BLEND = D3D12_BLEND(6i32);
15267#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15268pub const D3D12_BLEND_DEST_ALPHA: D3D12_BLEND = D3D12_BLEND(7i32);
15269#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15270pub const D3D12_BLEND_INV_DEST_ALPHA: D3D12_BLEND = D3D12_BLEND(8i32);
15271#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15272pub const D3D12_BLEND_DEST_COLOR: D3D12_BLEND = D3D12_BLEND(9i32);
15273#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15274pub const D3D12_BLEND_INV_DEST_COLOR: D3D12_BLEND = D3D12_BLEND(10i32);
15275#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15276pub const D3D12_BLEND_SRC_ALPHA_SAT: D3D12_BLEND = D3D12_BLEND(11i32);
15277#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15278pub const D3D12_BLEND_BLEND_FACTOR: D3D12_BLEND = D3D12_BLEND(14i32);
15279#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15280pub const D3D12_BLEND_INV_BLEND_FACTOR: D3D12_BLEND = D3D12_BLEND(15i32);
15281#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15282pub const D3D12_BLEND_SRC1_COLOR: D3D12_BLEND = D3D12_BLEND(16i32);
15283#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15284pub const D3D12_BLEND_INV_SRC1_COLOR: D3D12_BLEND = D3D12_BLEND(17i32);
15285#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15286pub const D3D12_BLEND_SRC1_ALPHA: D3D12_BLEND = D3D12_BLEND(18i32);
15287#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15288pub const D3D12_BLEND_INV_SRC1_ALPHA: D3D12_BLEND = D3D12_BLEND(19i32);
15289#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15290pub const D3D12_BLEND_ALPHA_FACTOR: D3D12_BLEND = D3D12_BLEND(20i32);
15291#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15292pub const D3D12_BLEND_INV_ALPHA_FACTOR: D3D12_BLEND = D3D12_BLEND(21i32);
15293impl ::core::marker::Copy for D3D12_BLEND {}
15294impl ::core::clone::Clone for D3D12_BLEND {
15295 fn clone(&self) -> Self {
15296 *self
15297 }
15298}
15299impl ::core::default::Default for D3D12_BLEND {
15300 fn default() -> Self {
15301 Self(0)
15302 }
15303}
15304impl ::windows::core::TypeKind for D3D12_BLEND {
15305 type TypeKind = ::windows::core::CopyType;
15306}
15307impl ::core::fmt::Debug for D3D12_BLEND {
15308 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15309 f.debug_tuple("D3D12_BLEND").field(&self.0).finish()
15310 }
15311}
15312#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15313#[repr(transparent)]
15314#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15315pub struct D3D12_BLEND_OP(pub i32);
15316#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15317pub const D3D12_BLEND_OP_ADD: D3D12_BLEND_OP = D3D12_BLEND_OP(1i32);
15318#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15319pub const D3D12_BLEND_OP_SUBTRACT: D3D12_BLEND_OP = D3D12_BLEND_OP(2i32);
15320#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15321pub const D3D12_BLEND_OP_REV_SUBTRACT: D3D12_BLEND_OP = D3D12_BLEND_OP(3i32);
15322#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15323pub const D3D12_BLEND_OP_MIN: D3D12_BLEND_OP = D3D12_BLEND_OP(4i32);
15324#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15325pub const D3D12_BLEND_OP_MAX: D3D12_BLEND_OP = D3D12_BLEND_OP(5i32);
15326impl ::core::marker::Copy for D3D12_BLEND_OP {}
15327impl ::core::clone::Clone for D3D12_BLEND_OP {
15328 fn clone(&self) -> Self {
15329 *self
15330 }
15331}
15332impl ::core::default::Default for D3D12_BLEND_OP {
15333 fn default() -> Self {
15334 Self(0)
15335 }
15336}
15337impl ::windows::core::TypeKind for D3D12_BLEND_OP {
15338 type TypeKind = ::windows::core::CopyType;
15339}
15340impl ::core::fmt::Debug for D3D12_BLEND_OP {
15341 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15342 f.debug_tuple("D3D12_BLEND_OP").field(&self.0).finish()
15343 }
15344}
15345#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15346#[repr(transparent)]
15347#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15348pub struct D3D12_BUFFER_SRV_FLAGS(pub i32);
15349#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15350pub const D3D12_BUFFER_SRV_FLAG_NONE: D3D12_BUFFER_SRV_FLAGS = D3D12_BUFFER_SRV_FLAGS(0i32);
15351#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15352pub const D3D12_BUFFER_SRV_FLAG_RAW: D3D12_BUFFER_SRV_FLAGS = D3D12_BUFFER_SRV_FLAGS(1i32);
15353impl ::core::marker::Copy for D3D12_BUFFER_SRV_FLAGS {}
15354impl ::core::clone::Clone for D3D12_BUFFER_SRV_FLAGS {
15355 fn clone(&self) -> Self {
15356 *self
15357 }
15358}
15359impl ::core::default::Default for D3D12_BUFFER_SRV_FLAGS {
15360 fn default() -> Self {
15361 Self(0)
15362 }
15363}
15364impl ::windows::core::TypeKind for D3D12_BUFFER_SRV_FLAGS {
15365 type TypeKind = ::windows::core::CopyType;
15366}
15367impl ::core::fmt::Debug for D3D12_BUFFER_SRV_FLAGS {
15368 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15369 f.debug_tuple("D3D12_BUFFER_SRV_FLAGS").field(&self.0).finish()
15370 }
15371}
15372impl D3D12_BUFFER_SRV_FLAGS {
15373 pub const fn contains(&self, other: Self) -> bool {
15374 self.0 & other.0 == other.0
15375 }
15376}
15377impl ::core::ops::BitOr for D3D12_BUFFER_SRV_FLAGS {
15378 type Output = Self;
15379 fn bitor(self, other: Self) -> Self {
15380 Self(self.0 | other.0)
15381 }
15382}
15383impl ::core::ops::BitAnd for D3D12_BUFFER_SRV_FLAGS {
15384 type Output = Self;
15385 fn bitand(self, other: Self) -> Self {
15386 Self(self.0 & other.0)
15387 }
15388}
15389impl ::core::ops::BitOrAssign for D3D12_BUFFER_SRV_FLAGS {
15390 fn bitor_assign(&mut self, other: Self) {
15391 self.0.bitor_assign(other.0)
15392 }
15393}
15394impl ::core::ops::BitAndAssign for D3D12_BUFFER_SRV_FLAGS {
15395 fn bitand_assign(&mut self, other: Self) {
15396 self.0.bitand_assign(other.0)
15397 }
15398}
15399impl ::core::ops::Not for D3D12_BUFFER_SRV_FLAGS {
15400 type Output = Self;
15401 fn not(self) -> Self {
15402 Self(self.0.not())
15403 }
15404}
15405#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15406#[repr(transparent)]
15407#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15408pub struct D3D12_BUFFER_UAV_FLAGS(pub i32);
15409#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15410pub const D3D12_BUFFER_UAV_FLAG_NONE: D3D12_BUFFER_UAV_FLAGS = D3D12_BUFFER_UAV_FLAGS(0i32);
15411#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15412pub const D3D12_BUFFER_UAV_FLAG_RAW: D3D12_BUFFER_UAV_FLAGS = D3D12_BUFFER_UAV_FLAGS(1i32);
15413impl ::core::marker::Copy for D3D12_BUFFER_UAV_FLAGS {}
15414impl ::core::clone::Clone for D3D12_BUFFER_UAV_FLAGS {
15415 fn clone(&self) -> Self {
15416 *self
15417 }
15418}
15419impl ::core::default::Default for D3D12_BUFFER_UAV_FLAGS {
15420 fn default() -> Self {
15421 Self(0)
15422 }
15423}
15424impl ::windows::core::TypeKind for D3D12_BUFFER_UAV_FLAGS {
15425 type TypeKind = ::windows::core::CopyType;
15426}
15427impl ::core::fmt::Debug for D3D12_BUFFER_UAV_FLAGS {
15428 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15429 f.debug_tuple("D3D12_BUFFER_UAV_FLAGS").field(&self.0).finish()
15430 }
15431}
15432impl D3D12_BUFFER_UAV_FLAGS {
15433 pub const fn contains(&self, other: Self) -> bool {
15434 self.0 & other.0 == other.0
15435 }
15436}
15437impl ::core::ops::BitOr for D3D12_BUFFER_UAV_FLAGS {
15438 type Output = Self;
15439 fn bitor(self, other: Self) -> Self {
15440 Self(self.0 | other.0)
15441 }
15442}
15443impl ::core::ops::BitAnd for D3D12_BUFFER_UAV_FLAGS {
15444 type Output = Self;
15445 fn bitand(self, other: Self) -> Self {
15446 Self(self.0 & other.0)
15447 }
15448}
15449impl ::core::ops::BitOrAssign for D3D12_BUFFER_UAV_FLAGS {
15450 fn bitor_assign(&mut self, other: Self) {
15451 self.0.bitor_assign(other.0)
15452 }
15453}
15454impl ::core::ops::BitAndAssign for D3D12_BUFFER_UAV_FLAGS {
15455 fn bitand_assign(&mut self, other: Self) {
15456 self.0.bitand_assign(other.0)
15457 }
15458}
15459impl ::core::ops::Not for D3D12_BUFFER_UAV_FLAGS {
15460 type Output = Self;
15461 fn not(self) -> Self {
15462 Self(self.0.not())
15463 }
15464}
15465#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15466#[repr(transparent)]
15467#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15468pub struct D3D12_CLEAR_FLAGS(pub i32);
15469#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15470pub const D3D12_CLEAR_FLAG_DEPTH: D3D12_CLEAR_FLAGS = D3D12_CLEAR_FLAGS(1i32);
15471#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15472pub const D3D12_CLEAR_FLAG_STENCIL: D3D12_CLEAR_FLAGS = D3D12_CLEAR_FLAGS(2i32);
15473impl ::core::marker::Copy for D3D12_CLEAR_FLAGS {}
15474impl ::core::clone::Clone for D3D12_CLEAR_FLAGS {
15475 fn clone(&self) -> Self {
15476 *self
15477 }
15478}
15479impl ::core::default::Default for D3D12_CLEAR_FLAGS {
15480 fn default() -> Self {
15481 Self(0)
15482 }
15483}
15484impl ::windows::core::TypeKind for D3D12_CLEAR_FLAGS {
15485 type TypeKind = ::windows::core::CopyType;
15486}
15487impl ::core::fmt::Debug for D3D12_CLEAR_FLAGS {
15488 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15489 f.debug_tuple("D3D12_CLEAR_FLAGS").field(&self.0).finish()
15490 }
15491}
15492impl D3D12_CLEAR_FLAGS {
15493 pub const fn contains(&self, other: Self) -> bool {
15494 self.0 & other.0 == other.0
15495 }
15496}
15497impl ::core::ops::BitOr for D3D12_CLEAR_FLAGS {
15498 type Output = Self;
15499 fn bitor(self, other: Self) -> Self {
15500 Self(self.0 | other.0)
15501 }
15502}
15503impl ::core::ops::BitAnd for D3D12_CLEAR_FLAGS {
15504 type Output = Self;
15505 fn bitand(self, other: Self) -> Self {
15506 Self(self.0 & other.0)
15507 }
15508}
15509impl ::core::ops::BitOrAssign for D3D12_CLEAR_FLAGS {
15510 fn bitor_assign(&mut self, other: Self) {
15511 self.0.bitor_assign(other.0)
15512 }
15513}
15514impl ::core::ops::BitAndAssign for D3D12_CLEAR_FLAGS {
15515 fn bitand_assign(&mut self, other: Self) {
15516 self.0.bitand_assign(other.0)
15517 }
15518}
15519impl ::core::ops::Not for D3D12_CLEAR_FLAGS {
15520 type Output = Self;
15521 fn not(self) -> Self {
15522 Self(self.0.not())
15523 }
15524}
15525#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15526#[repr(transparent)]
15527#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15528pub struct D3D12_COLOR_WRITE_ENABLE(pub i32);
15529#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15530pub const D3D12_COLOR_WRITE_ENABLE_RED: D3D12_COLOR_WRITE_ENABLE = D3D12_COLOR_WRITE_ENABLE(1i32);
15531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15532pub const D3D12_COLOR_WRITE_ENABLE_GREEN: D3D12_COLOR_WRITE_ENABLE = D3D12_COLOR_WRITE_ENABLE(2i32);
15533#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15534pub const D3D12_COLOR_WRITE_ENABLE_BLUE: D3D12_COLOR_WRITE_ENABLE = D3D12_COLOR_WRITE_ENABLE(4i32);
15535#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15536pub const D3D12_COLOR_WRITE_ENABLE_ALPHA: D3D12_COLOR_WRITE_ENABLE = D3D12_COLOR_WRITE_ENABLE(8i32);
15537#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15538pub const D3D12_COLOR_WRITE_ENABLE_ALL: D3D12_COLOR_WRITE_ENABLE = D3D12_COLOR_WRITE_ENABLE(15i32);
15539impl ::core::marker::Copy for D3D12_COLOR_WRITE_ENABLE {}
15540impl ::core::clone::Clone for D3D12_COLOR_WRITE_ENABLE {
15541 fn clone(&self) -> Self {
15542 *self
15543 }
15544}
15545impl ::core::default::Default for D3D12_COLOR_WRITE_ENABLE {
15546 fn default() -> Self {
15547 Self(0)
15548 }
15549}
15550impl ::windows::core::TypeKind for D3D12_COLOR_WRITE_ENABLE {
15551 type TypeKind = ::windows::core::CopyType;
15552}
15553impl ::core::fmt::Debug for D3D12_COLOR_WRITE_ENABLE {
15554 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15555 f.debug_tuple("D3D12_COLOR_WRITE_ENABLE").field(&self.0).finish()
15556 }
15557}
15558#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15559#[repr(transparent)]
15560#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15561pub struct D3D12_COMMAND_LIST_FLAGS(pub i32);
15562#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15563pub const D3D12_COMMAND_LIST_FLAG_NONE: D3D12_COMMAND_LIST_FLAGS = D3D12_COMMAND_LIST_FLAGS(0i32);
15564impl ::core::marker::Copy for D3D12_COMMAND_LIST_FLAGS {}
15565impl ::core::clone::Clone for D3D12_COMMAND_LIST_FLAGS {
15566 fn clone(&self) -> Self {
15567 *self
15568 }
15569}
15570impl ::core::default::Default for D3D12_COMMAND_LIST_FLAGS {
15571 fn default() -> Self {
15572 Self(0)
15573 }
15574}
15575impl ::windows::core::TypeKind for D3D12_COMMAND_LIST_FLAGS {
15576 type TypeKind = ::windows::core::CopyType;
15577}
15578impl ::core::fmt::Debug for D3D12_COMMAND_LIST_FLAGS {
15579 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15580 f.debug_tuple("D3D12_COMMAND_LIST_FLAGS").field(&self.0).finish()
15581 }
15582}
15583impl D3D12_COMMAND_LIST_FLAGS {
15584 pub const fn contains(&self, other: Self) -> bool {
15585 self.0 & other.0 == other.0
15586 }
15587}
15588impl ::core::ops::BitOr for D3D12_COMMAND_LIST_FLAGS {
15589 type Output = Self;
15590 fn bitor(self, other: Self) -> Self {
15591 Self(self.0 | other.0)
15592 }
15593}
15594impl ::core::ops::BitAnd for D3D12_COMMAND_LIST_FLAGS {
15595 type Output = Self;
15596 fn bitand(self, other: Self) -> Self {
15597 Self(self.0 & other.0)
15598 }
15599}
15600impl ::core::ops::BitOrAssign for D3D12_COMMAND_LIST_FLAGS {
15601 fn bitor_assign(&mut self, other: Self) {
15602 self.0.bitor_assign(other.0)
15603 }
15604}
15605impl ::core::ops::BitAndAssign for D3D12_COMMAND_LIST_FLAGS {
15606 fn bitand_assign(&mut self, other: Self) {
15607 self.0.bitand_assign(other.0)
15608 }
15609}
15610impl ::core::ops::Not for D3D12_COMMAND_LIST_FLAGS {
15611 type Output = Self;
15612 fn not(self) -> Self {
15613 Self(self.0.not())
15614 }
15615}
15616#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15617#[repr(transparent)]
15618#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15619pub struct D3D12_COMMAND_LIST_SUPPORT_FLAGS(pub i32);
15620#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15621pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(0i32);
15622#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15623pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(1i32);
15624#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15625pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(2i32);
15626#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15627pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(4i32);
15628#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15629pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(8i32);
15630#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15631pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(16i32);
15632#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15633pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(32i32);
15634#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15635pub const D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE: D3D12_COMMAND_LIST_SUPPORT_FLAGS = D3D12_COMMAND_LIST_SUPPORT_FLAGS(64i32);
15636impl ::core::marker::Copy for D3D12_COMMAND_LIST_SUPPORT_FLAGS {}
15637impl ::core::clone::Clone for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15638 fn clone(&self) -> Self {
15639 *self
15640 }
15641}
15642impl ::core::default::Default for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15643 fn default() -> Self {
15644 Self(0)
15645 }
15646}
15647impl ::windows::core::TypeKind for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15648 type TypeKind = ::windows::core::CopyType;
15649}
15650impl ::core::fmt::Debug for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15651 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15652 f.debug_tuple("D3D12_COMMAND_LIST_SUPPORT_FLAGS").field(&self.0).finish()
15653 }
15654}
15655impl D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15656 pub const fn contains(&self, other: Self) -> bool {
15657 self.0 & other.0 == other.0
15658 }
15659}
15660impl ::core::ops::BitOr for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15661 type Output = Self;
15662 fn bitor(self, other: Self) -> Self {
15663 Self(self.0 | other.0)
15664 }
15665}
15666impl ::core::ops::BitAnd for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15667 type Output = Self;
15668 fn bitand(self, other: Self) -> Self {
15669 Self(self.0 & other.0)
15670 }
15671}
15672impl ::core::ops::BitOrAssign for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15673 fn bitor_assign(&mut self, other: Self) {
15674 self.0.bitor_assign(other.0)
15675 }
15676}
15677impl ::core::ops::BitAndAssign for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15678 fn bitand_assign(&mut self, other: Self) {
15679 self.0.bitand_assign(other.0)
15680 }
15681}
15682impl ::core::ops::Not for D3D12_COMMAND_LIST_SUPPORT_FLAGS {
15683 type Output = Self;
15684 fn not(self) -> Self {
15685 Self(self.0.not())
15686 }
15687}
15688#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15689#[repr(transparent)]
15690#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15691pub struct D3D12_COMMAND_LIST_TYPE(pub i32);
15692#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15693pub const D3D12_COMMAND_LIST_TYPE_DIRECT: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(0i32);
15694#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15695pub const D3D12_COMMAND_LIST_TYPE_BUNDLE: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(1i32);
15696#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15697pub const D3D12_COMMAND_LIST_TYPE_COMPUTE: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(2i32);
15698#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15699pub const D3D12_COMMAND_LIST_TYPE_COPY: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(3i32);
15700#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15701pub const D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(4i32);
15702#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15703pub const D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(5i32);
15704#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15705pub const D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(6i32);
15706#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15707pub const D3D12_COMMAND_LIST_TYPE_NONE: D3D12_COMMAND_LIST_TYPE = D3D12_COMMAND_LIST_TYPE(-1i32);
15708impl ::core::marker::Copy for D3D12_COMMAND_LIST_TYPE {}
15709impl ::core::clone::Clone for D3D12_COMMAND_LIST_TYPE {
15710 fn clone(&self) -> Self {
15711 *self
15712 }
15713}
15714impl ::core::default::Default for D3D12_COMMAND_LIST_TYPE {
15715 fn default() -> Self {
15716 Self(0)
15717 }
15718}
15719impl ::windows::core::TypeKind for D3D12_COMMAND_LIST_TYPE {
15720 type TypeKind = ::windows::core::CopyType;
15721}
15722impl ::core::fmt::Debug for D3D12_COMMAND_LIST_TYPE {
15723 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15724 f.debug_tuple("D3D12_COMMAND_LIST_TYPE").field(&self.0).finish()
15725 }
15726}
15727#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15728#[repr(transparent)]
15729#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15730pub struct D3D12_COMMAND_POOL_FLAGS(pub i32);
15731#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15732pub const D3D12_COMMAND_POOL_FLAG_NONE: D3D12_COMMAND_POOL_FLAGS = D3D12_COMMAND_POOL_FLAGS(0i32);
15733impl ::core::marker::Copy for D3D12_COMMAND_POOL_FLAGS {}
15734impl ::core::clone::Clone for D3D12_COMMAND_POOL_FLAGS {
15735 fn clone(&self) -> Self {
15736 *self
15737 }
15738}
15739impl ::core::default::Default for D3D12_COMMAND_POOL_FLAGS {
15740 fn default() -> Self {
15741 Self(0)
15742 }
15743}
15744impl ::windows::core::TypeKind for D3D12_COMMAND_POOL_FLAGS {
15745 type TypeKind = ::windows::core::CopyType;
15746}
15747impl ::core::fmt::Debug for D3D12_COMMAND_POOL_FLAGS {
15748 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15749 f.debug_tuple("D3D12_COMMAND_POOL_FLAGS").field(&self.0).finish()
15750 }
15751}
15752impl D3D12_COMMAND_POOL_FLAGS {
15753 pub const fn contains(&self, other: Self) -> bool {
15754 self.0 & other.0 == other.0
15755 }
15756}
15757impl ::core::ops::BitOr for D3D12_COMMAND_POOL_FLAGS {
15758 type Output = Self;
15759 fn bitor(self, other: Self) -> Self {
15760 Self(self.0 | other.0)
15761 }
15762}
15763impl ::core::ops::BitAnd for D3D12_COMMAND_POOL_FLAGS {
15764 type Output = Self;
15765 fn bitand(self, other: Self) -> Self {
15766 Self(self.0 & other.0)
15767 }
15768}
15769impl ::core::ops::BitOrAssign for D3D12_COMMAND_POOL_FLAGS {
15770 fn bitor_assign(&mut self, other: Self) {
15771 self.0.bitor_assign(other.0)
15772 }
15773}
15774impl ::core::ops::BitAndAssign for D3D12_COMMAND_POOL_FLAGS {
15775 fn bitand_assign(&mut self, other: Self) {
15776 self.0.bitand_assign(other.0)
15777 }
15778}
15779impl ::core::ops::Not for D3D12_COMMAND_POOL_FLAGS {
15780 type Output = Self;
15781 fn not(self) -> Self {
15782 Self(self.0.not())
15783 }
15784}
15785#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15786#[repr(transparent)]
15787#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15788pub struct D3D12_COMMAND_QUEUE_FLAGS(pub i32);
15789#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15790pub const D3D12_COMMAND_QUEUE_FLAG_NONE: D3D12_COMMAND_QUEUE_FLAGS = D3D12_COMMAND_QUEUE_FLAGS(0i32);
15791#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15792pub const D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT: D3D12_COMMAND_QUEUE_FLAGS = D3D12_COMMAND_QUEUE_FLAGS(1i32);
15793impl ::core::marker::Copy for D3D12_COMMAND_QUEUE_FLAGS {}
15794impl ::core::clone::Clone for D3D12_COMMAND_QUEUE_FLAGS {
15795 fn clone(&self) -> Self {
15796 *self
15797 }
15798}
15799impl ::core::default::Default for D3D12_COMMAND_QUEUE_FLAGS {
15800 fn default() -> Self {
15801 Self(0)
15802 }
15803}
15804impl ::windows::core::TypeKind for D3D12_COMMAND_QUEUE_FLAGS {
15805 type TypeKind = ::windows::core::CopyType;
15806}
15807impl ::core::fmt::Debug for D3D12_COMMAND_QUEUE_FLAGS {
15808 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15809 f.debug_tuple("D3D12_COMMAND_QUEUE_FLAGS").field(&self.0).finish()
15810 }
15811}
15812impl D3D12_COMMAND_QUEUE_FLAGS {
15813 pub const fn contains(&self, other: Self) -> bool {
15814 self.0 & other.0 == other.0
15815 }
15816}
15817impl ::core::ops::BitOr for D3D12_COMMAND_QUEUE_FLAGS {
15818 type Output = Self;
15819 fn bitor(self, other: Self) -> Self {
15820 Self(self.0 | other.0)
15821 }
15822}
15823impl ::core::ops::BitAnd for D3D12_COMMAND_QUEUE_FLAGS {
15824 type Output = Self;
15825 fn bitand(self, other: Self) -> Self {
15826 Self(self.0 & other.0)
15827 }
15828}
15829impl ::core::ops::BitOrAssign for D3D12_COMMAND_QUEUE_FLAGS {
15830 fn bitor_assign(&mut self, other: Self) {
15831 self.0.bitor_assign(other.0)
15832 }
15833}
15834impl ::core::ops::BitAndAssign for D3D12_COMMAND_QUEUE_FLAGS {
15835 fn bitand_assign(&mut self, other: Self) {
15836 self.0.bitand_assign(other.0)
15837 }
15838}
15839impl ::core::ops::Not for D3D12_COMMAND_QUEUE_FLAGS {
15840 type Output = Self;
15841 fn not(self) -> Self {
15842 Self(self.0.not())
15843 }
15844}
15845#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15846#[repr(transparent)]
15847#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15848pub struct D3D12_COMMAND_QUEUE_PRIORITY(pub i32);
15849#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15850pub const D3D12_COMMAND_QUEUE_PRIORITY_NORMAL: D3D12_COMMAND_QUEUE_PRIORITY = D3D12_COMMAND_QUEUE_PRIORITY(0i32);
15851#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15852pub const D3D12_COMMAND_QUEUE_PRIORITY_HIGH: D3D12_COMMAND_QUEUE_PRIORITY = D3D12_COMMAND_QUEUE_PRIORITY(100i32);
15853#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15854pub const D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME: D3D12_COMMAND_QUEUE_PRIORITY = D3D12_COMMAND_QUEUE_PRIORITY(10000i32);
15855impl ::core::marker::Copy for D3D12_COMMAND_QUEUE_PRIORITY {}
15856impl ::core::clone::Clone for D3D12_COMMAND_QUEUE_PRIORITY {
15857 fn clone(&self) -> Self {
15858 *self
15859 }
15860}
15861impl ::core::default::Default for D3D12_COMMAND_QUEUE_PRIORITY {
15862 fn default() -> Self {
15863 Self(0)
15864 }
15865}
15866impl ::windows::core::TypeKind for D3D12_COMMAND_QUEUE_PRIORITY {
15867 type TypeKind = ::windows::core::CopyType;
15868}
15869impl ::core::fmt::Debug for D3D12_COMMAND_QUEUE_PRIORITY {
15870 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15871 f.debug_tuple("D3D12_COMMAND_QUEUE_PRIORITY").field(&self.0).finish()
15872 }
15873}
15874#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15875#[repr(transparent)]
15876#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15877pub struct D3D12_COMMAND_RECORDER_FLAGS(pub i32);
15878#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15879pub const D3D12_COMMAND_RECORDER_FLAG_NONE: D3D12_COMMAND_RECORDER_FLAGS = D3D12_COMMAND_RECORDER_FLAGS(0i32);
15880impl ::core::marker::Copy for D3D12_COMMAND_RECORDER_FLAGS {}
15881impl ::core::clone::Clone for D3D12_COMMAND_RECORDER_FLAGS {
15882 fn clone(&self) -> Self {
15883 *self
15884 }
15885}
15886impl ::core::default::Default for D3D12_COMMAND_RECORDER_FLAGS {
15887 fn default() -> Self {
15888 Self(0)
15889 }
15890}
15891impl ::windows::core::TypeKind for D3D12_COMMAND_RECORDER_FLAGS {
15892 type TypeKind = ::windows::core::CopyType;
15893}
15894impl ::core::fmt::Debug for D3D12_COMMAND_RECORDER_FLAGS {
15895 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15896 f.debug_tuple("D3D12_COMMAND_RECORDER_FLAGS").field(&self.0).finish()
15897 }
15898}
15899impl D3D12_COMMAND_RECORDER_FLAGS {
15900 pub const fn contains(&self, other: Self) -> bool {
15901 self.0 & other.0 == other.0
15902 }
15903}
15904impl ::core::ops::BitOr for D3D12_COMMAND_RECORDER_FLAGS {
15905 type Output = Self;
15906 fn bitor(self, other: Self) -> Self {
15907 Self(self.0 | other.0)
15908 }
15909}
15910impl ::core::ops::BitAnd for D3D12_COMMAND_RECORDER_FLAGS {
15911 type Output = Self;
15912 fn bitand(self, other: Self) -> Self {
15913 Self(self.0 & other.0)
15914 }
15915}
15916impl ::core::ops::BitOrAssign for D3D12_COMMAND_RECORDER_FLAGS {
15917 fn bitor_assign(&mut self, other: Self) {
15918 self.0.bitor_assign(other.0)
15919 }
15920}
15921impl ::core::ops::BitAndAssign for D3D12_COMMAND_RECORDER_FLAGS {
15922 fn bitand_assign(&mut self, other: Self) {
15923 self.0.bitand_assign(other.0)
15924 }
15925}
15926impl ::core::ops::Not for D3D12_COMMAND_RECORDER_FLAGS {
15927 type Output = Self;
15928 fn not(self) -> Self {
15929 Self(self.0.not())
15930 }
15931}
15932#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15933#[repr(transparent)]
15934#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15935pub struct D3D12_COMPARISON_FUNC(pub i32);
15936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15937pub const D3D12_COMPARISON_FUNC_NONE: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(0i32);
15938#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15939pub const D3D12_COMPARISON_FUNC_NEVER: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(1i32);
15940#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15941pub const D3D12_COMPARISON_FUNC_LESS: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(2i32);
15942#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15943pub const D3D12_COMPARISON_FUNC_EQUAL: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(3i32);
15944#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15945pub const D3D12_COMPARISON_FUNC_LESS_EQUAL: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(4i32);
15946#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15947pub const D3D12_COMPARISON_FUNC_GREATER: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(5i32);
15948#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15949pub const D3D12_COMPARISON_FUNC_NOT_EQUAL: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(6i32);
15950#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15951pub const D3D12_COMPARISON_FUNC_GREATER_EQUAL: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(7i32);
15952#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15953pub const D3D12_COMPARISON_FUNC_ALWAYS: D3D12_COMPARISON_FUNC = D3D12_COMPARISON_FUNC(8i32);
15954impl ::core::marker::Copy for D3D12_COMPARISON_FUNC {}
15955impl ::core::clone::Clone for D3D12_COMPARISON_FUNC {
15956 fn clone(&self) -> Self {
15957 *self
15958 }
15959}
15960impl ::core::default::Default for D3D12_COMPARISON_FUNC {
15961 fn default() -> Self {
15962 Self(0)
15963 }
15964}
15965impl ::windows::core::TypeKind for D3D12_COMPARISON_FUNC {
15966 type TypeKind = ::windows::core::CopyType;
15967}
15968impl ::core::fmt::Debug for D3D12_COMPARISON_FUNC {
15969 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15970 f.debug_tuple("D3D12_COMPARISON_FUNC").field(&self.0).finish()
15971 }
15972}
15973#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15974#[repr(transparent)]
15975#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
15976pub struct D3D12_CONSERVATIVE_RASTERIZATION_MODE(pub i32);
15977#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15978pub const D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF: D3D12_CONSERVATIVE_RASTERIZATION_MODE = D3D12_CONSERVATIVE_RASTERIZATION_MODE(0i32);
15979#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
15980pub const D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON: D3D12_CONSERVATIVE_RASTERIZATION_MODE = D3D12_CONSERVATIVE_RASTERIZATION_MODE(1i32);
15981impl ::core::marker::Copy for D3D12_CONSERVATIVE_RASTERIZATION_MODE {}
15982impl ::core::clone::Clone for D3D12_CONSERVATIVE_RASTERIZATION_MODE {
15983 fn clone(&self) -> Self {
15984 *self
15985 }
15986}
15987impl ::core::default::Default for D3D12_CONSERVATIVE_RASTERIZATION_MODE {
15988 fn default() -> Self {
15989 Self(0)
15990 }
15991}
15992impl ::windows::core::TypeKind for D3D12_CONSERVATIVE_RASTERIZATION_MODE {
15993 type TypeKind = ::windows::core::CopyType;
15994}
15995impl ::core::fmt::Debug for D3D12_CONSERVATIVE_RASTERIZATION_MODE {
15996 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
15997 f.debug_tuple("D3D12_CONSERVATIVE_RASTERIZATION_MODE").field(&self.0).finish()
15998 }
15999}
16000#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16001#[repr(transparent)]
16002#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16003pub struct D3D12_CONSERVATIVE_RASTERIZATION_TIER(pub i32);
16004#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16005pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED: D3D12_CONSERVATIVE_RASTERIZATION_TIER = D3D12_CONSERVATIVE_RASTERIZATION_TIER(0i32);
16006#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16007pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_1: D3D12_CONSERVATIVE_RASTERIZATION_TIER = D3D12_CONSERVATIVE_RASTERIZATION_TIER(1i32);
16008#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16009pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_2: D3D12_CONSERVATIVE_RASTERIZATION_TIER = D3D12_CONSERVATIVE_RASTERIZATION_TIER(2i32);
16010#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16011pub const D3D12_CONSERVATIVE_RASTERIZATION_TIER_3: D3D12_CONSERVATIVE_RASTERIZATION_TIER = D3D12_CONSERVATIVE_RASTERIZATION_TIER(3i32);
16012impl ::core::marker::Copy for D3D12_CONSERVATIVE_RASTERIZATION_TIER {}
16013impl ::core::clone::Clone for D3D12_CONSERVATIVE_RASTERIZATION_TIER {
16014 fn clone(&self) -> Self {
16015 *self
16016 }
16017}
16018impl ::core::default::Default for D3D12_CONSERVATIVE_RASTERIZATION_TIER {
16019 fn default() -> Self {
16020 Self(0)
16021 }
16022}
16023impl ::windows::core::TypeKind for D3D12_CONSERVATIVE_RASTERIZATION_TIER {
16024 type TypeKind = ::windows::core::CopyType;
16025}
16026impl ::core::fmt::Debug for D3D12_CONSERVATIVE_RASTERIZATION_TIER {
16027 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16028 f.debug_tuple("D3D12_CONSERVATIVE_RASTERIZATION_TIER").field(&self.0).finish()
16029 }
16030}
16031#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16032#[repr(transparent)]
16033#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16034pub struct D3D12_CPU_PAGE_PROPERTY(pub i32);
16035#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16036pub const D3D12_CPU_PAGE_PROPERTY_UNKNOWN: D3D12_CPU_PAGE_PROPERTY = D3D12_CPU_PAGE_PROPERTY(0i32);
16037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16038pub const D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE: D3D12_CPU_PAGE_PROPERTY = D3D12_CPU_PAGE_PROPERTY(1i32);
16039#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16040pub const D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE: D3D12_CPU_PAGE_PROPERTY = D3D12_CPU_PAGE_PROPERTY(2i32);
16041#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16042pub const D3D12_CPU_PAGE_PROPERTY_WRITE_BACK: D3D12_CPU_PAGE_PROPERTY = D3D12_CPU_PAGE_PROPERTY(3i32);
16043impl ::core::marker::Copy for D3D12_CPU_PAGE_PROPERTY {}
16044impl ::core::clone::Clone for D3D12_CPU_PAGE_PROPERTY {
16045 fn clone(&self) -> Self {
16046 *self
16047 }
16048}
16049impl ::core::default::Default for D3D12_CPU_PAGE_PROPERTY {
16050 fn default() -> Self {
16051 Self(0)
16052 }
16053}
16054impl ::windows::core::TypeKind for D3D12_CPU_PAGE_PROPERTY {
16055 type TypeKind = ::windows::core::CopyType;
16056}
16057impl ::core::fmt::Debug for D3D12_CPU_PAGE_PROPERTY {
16058 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16059 f.debug_tuple("D3D12_CPU_PAGE_PROPERTY").field(&self.0).finish()
16060 }
16061}
16062#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16063#[repr(transparent)]
16064#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16065pub struct D3D12_CROSS_NODE_SHARING_TIER(pub i32);
16066#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16067pub const D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED: D3D12_CROSS_NODE_SHARING_TIER = D3D12_CROSS_NODE_SHARING_TIER(0i32);
16068#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16069pub const D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED: D3D12_CROSS_NODE_SHARING_TIER = D3D12_CROSS_NODE_SHARING_TIER(1i32);
16070#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16071pub const D3D12_CROSS_NODE_SHARING_TIER_1: D3D12_CROSS_NODE_SHARING_TIER = D3D12_CROSS_NODE_SHARING_TIER(2i32);
16072#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16073pub const D3D12_CROSS_NODE_SHARING_TIER_2: D3D12_CROSS_NODE_SHARING_TIER = D3D12_CROSS_NODE_SHARING_TIER(3i32);
16074#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16075pub const D3D12_CROSS_NODE_SHARING_TIER_3: D3D12_CROSS_NODE_SHARING_TIER = D3D12_CROSS_NODE_SHARING_TIER(4i32);
16076impl ::core::marker::Copy for D3D12_CROSS_NODE_SHARING_TIER {}
16077impl ::core::clone::Clone for D3D12_CROSS_NODE_SHARING_TIER {
16078 fn clone(&self) -> Self {
16079 *self
16080 }
16081}
16082impl ::core::default::Default for D3D12_CROSS_NODE_SHARING_TIER {
16083 fn default() -> Self {
16084 Self(0)
16085 }
16086}
16087impl ::windows::core::TypeKind for D3D12_CROSS_NODE_SHARING_TIER {
16088 type TypeKind = ::windows::core::CopyType;
16089}
16090impl ::core::fmt::Debug for D3D12_CROSS_NODE_SHARING_TIER {
16091 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16092 f.debug_tuple("D3D12_CROSS_NODE_SHARING_TIER").field(&self.0).finish()
16093 }
16094}
16095#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16096#[repr(transparent)]
16097#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16098pub struct D3D12_CULL_MODE(pub i32);
16099#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16100pub const D3D12_CULL_MODE_NONE: D3D12_CULL_MODE = D3D12_CULL_MODE(1i32);
16101#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16102pub const D3D12_CULL_MODE_FRONT: D3D12_CULL_MODE = D3D12_CULL_MODE(2i32);
16103#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16104pub const D3D12_CULL_MODE_BACK: D3D12_CULL_MODE = D3D12_CULL_MODE(3i32);
16105impl ::core::marker::Copy for D3D12_CULL_MODE {}
16106impl ::core::clone::Clone for D3D12_CULL_MODE {
16107 fn clone(&self) -> Self {
16108 *self
16109 }
16110}
16111impl ::core::default::Default for D3D12_CULL_MODE {
16112 fn default() -> Self {
16113 Self(0)
16114 }
16115}
16116impl ::windows::core::TypeKind for D3D12_CULL_MODE {
16117 type TypeKind = ::windows::core::CopyType;
16118}
16119impl ::core::fmt::Debug for D3D12_CULL_MODE {
16120 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16121 f.debug_tuple("D3D12_CULL_MODE").field(&self.0).finish()
16122 }
16123}
16124#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16125#[repr(transparent)]
16126#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16127pub struct D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE(pub i32);
16128#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16129pub const D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS: D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE = D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE(0i32);
16130impl ::core::marker::Copy for D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE {}
16131impl ::core::clone::Clone for D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE {
16132 fn clone(&self) -> Self {
16133 *self
16134 }
16135}
16136impl ::core::default::Default for D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE {
16137 fn default() -> Self {
16138 Self(0)
16139 }
16140}
16141impl ::windows::core::TypeKind for D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE {
16142 type TypeKind = ::windows::core::CopyType;
16143}
16144impl ::core::fmt::Debug for D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE {
16145 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16146 f.debug_tuple("D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE").field(&self.0).finish()
16147 }
16148}
16149#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16150#[repr(transparent)]
16151#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16152pub struct D3D12_DEBUG_DEVICE_PARAMETER_TYPE(pub i32);
16153#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16154pub const D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS: D3D12_DEBUG_DEVICE_PARAMETER_TYPE = D3D12_DEBUG_DEVICE_PARAMETER_TYPE(0i32);
16155#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16156pub const D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS: D3D12_DEBUG_DEVICE_PARAMETER_TYPE = D3D12_DEBUG_DEVICE_PARAMETER_TYPE(1i32);
16157#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16158pub const D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR: D3D12_DEBUG_DEVICE_PARAMETER_TYPE = D3D12_DEBUG_DEVICE_PARAMETER_TYPE(2i32);
16159impl ::core::marker::Copy for D3D12_DEBUG_DEVICE_PARAMETER_TYPE {}
16160impl ::core::clone::Clone for D3D12_DEBUG_DEVICE_PARAMETER_TYPE {
16161 fn clone(&self) -> Self {
16162 *self
16163 }
16164}
16165impl ::core::default::Default for D3D12_DEBUG_DEVICE_PARAMETER_TYPE {
16166 fn default() -> Self {
16167 Self(0)
16168 }
16169}
16170impl ::windows::core::TypeKind for D3D12_DEBUG_DEVICE_PARAMETER_TYPE {
16171 type TypeKind = ::windows::core::CopyType;
16172}
16173impl ::core::fmt::Debug for D3D12_DEBUG_DEVICE_PARAMETER_TYPE {
16174 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16175 f.debug_tuple("D3D12_DEBUG_DEVICE_PARAMETER_TYPE").field(&self.0).finish()
16176 }
16177}
16178#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16179#[repr(transparent)]
16180#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16181pub struct D3D12_DEBUG_FEATURE(pub i32);
16182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16183pub const D3D12_DEBUG_FEATURE_NONE: D3D12_DEBUG_FEATURE = D3D12_DEBUG_FEATURE(0i32);
16184#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16185pub const D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS: D3D12_DEBUG_FEATURE = D3D12_DEBUG_FEATURE(1i32);
16186#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16187pub const D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING: D3D12_DEBUG_FEATURE = D3D12_DEBUG_FEATURE(2i32);
16188#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16189pub const D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION: D3D12_DEBUG_FEATURE = D3D12_DEBUG_FEATURE(4i32);
16190#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16191pub const D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7: D3D12_DEBUG_FEATURE = D3D12_DEBUG_FEATURE(8i32);
16192impl ::core::marker::Copy for D3D12_DEBUG_FEATURE {}
16193impl ::core::clone::Clone for D3D12_DEBUG_FEATURE {
16194 fn clone(&self) -> Self {
16195 *self
16196 }
16197}
16198impl ::core::default::Default for D3D12_DEBUG_FEATURE {
16199 fn default() -> Self {
16200 Self(0)
16201 }
16202}
16203impl ::windows::core::TypeKind for D3D12_DEBUG_FEATURE {
16204 type TypeKind = ::windows::core::CopyType;
16205}
16206impl ::core::fmt::Debug for D3D12_DEBUG_FEATURE {
16207 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16208 f.debug_tuple("D3D12_DEBUG_FEATURE").field(&self.0).finish()
16209 }
16210}
16211impl D3D12_DEBUG_FEATURE {
16212 pub const fn contains(&self, other: Self) -> bool {
16213 self.0 & other.0 == other.0
16214 }
16215}
16216impl ::core::ops::BitOr for D3D12_DEBUG_FEATURE {
16217 type Output = Self;
16218 fn bitor(self, other: Self) -> Self {
16219 Self(self.0 | other.0)
16220 }
16221}
16222impl ::core::ops::BitAnd for D3D12_DEBUG_FEATURE {
16223 type Output = Self;
16224 fn bitand(self, other: Self) -> Self {
16225 Self(self.0 & other.0)
16226 }
16227}
16228impl ::core::ops::BitOrAssign for D3D12_DEBUG_FEATURE {
16229 fn bitor_assign(&mut self, other: Self) {
16230 self.0.bitor_assign(other.0)
16231 }
16232}
16233impl ::core::ops::BitAndAssign for D3D12_DEBUG_FEATURE {
16234 fn bitand_assign(&mut self, other: Self) {
16235 self.0.bitand_assign(other.0)
16236 }
16237}
16238impl ::core::ops::Not for D3D12_DEBUG_FEATURE {
16239 type Output = Self;
16240 fn not(self) -> Self {
16241 Self(self.0.not())
16242 }
16243}
16244#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16245#[repr(transparent)]
16246#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16247pub struct D3D12_DEPTH_WRITE_MASK(pub i32);
16248#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16249pub const D3D12_DEPTH_WRITE_MASK_ZERO: D3D12_DEPTH_WRITE_MASK = D3D12_DEPTH_WRITE_MASK(0i32);
16250#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16251pub const D3D12_DEPTH_WRITE_MASK_ALL: D3D12_DEPTH_WRITE_MASK = D3D12_DEPTH_WRITE_MASK(1i32);
16252impl ::core::marker::Copy for D3D12_DEPTH_WRITE_MASK {}
16253impl ::core::clone::Clone for D3D12_DEPTH_WRITE_MASK {
16254 fn clone(&self) -> Self {
16255 *self
16256 }
16257}
16258impl ::core::default::Default for D3D12_DEPTH_WRITE_MASK {
16259 fn default() -> Self {
16260 Self(0)
16261 }
16262}
16263impl ::windows::core::TypeKind for D3D12_DEPTH_WRITE_MASK {
16264 type TypeKind = ::windows::core::CopyType;
16265}
16266impl ::core::fmt::Debug for D3D12_DEPTH_WRITE_MASK {
16267 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16268 f.debug_tuple("D3D12_DEPTH_WRITE_MASK").field(&self.0).finish()
16269 }
16270}
16271#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16272#[repr(transparent)]
16273#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16274pub struct D3D12_DESCRIPTOR_HEAP_FLAGS(pub i32);
16275#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16276pub const D3D12_DESCRIPTOR_HEAP_FLAG_NONE: D3D12_DESCRIPTOR_HEAP_FLAGS = D3D12_DESCRIPTOR_HEAP_FLAGS(0i32);
16277#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16278pub const D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE: D3D12_DESCRIPTOR_HEAP_FLAGS = D3D12_DESCRIPTOR_HEAP_FLAGS(1i32);
16279impl ::core::marker::Copy for D3D12_DESCRIPTOR_HEAP_FLAGS {}
16280impl ::core::clone::Clone for D3D12_DESCRIPTOR_HEAP_FLAGS {
16281 fn clone(&self) -> Self {
16282 *self
16283 }
16284}
16285impl ::core::default::Default for D3D12_DESCRIPTOR_HEAP_FLAGS {
16286 fn default() -> Self {
16287 Self(0)
16288 }
16289}
16290impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_HEAP_FLAGS {
16291 type TypeKind = ::windows::core::CopyType;
16292}
16293impl ::core::fmt::Debug for D3D12_DESCRIPTOR_HEAP_FLAGS {
16294 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16295 f.debug_tuple("D3D12_DESCRIPTOR_HEAP_FLAGS").field(&self.0).finish()
16296 }
16297}
16298impl D3D12_DESCRIPTOR_HEAP_FLAGS {
16299 pub const fn contains(&self, other: Self) -> bool {
16300 self.0 & other.0 == other.0
16301 }
16302}
16303impl ::core::ops::BitOr for D3D12_DESCRIPTOR_HEAP_FLAGS {
16304 type Output = Self;
16305 fn bitor(self, other: Self) -> Self {
16306 Self(self.0 | other.0)
16307 }
16308}
16309impl ::core::ops::BitAnd for D3D12_DESCRIPTOR_HEAP_FLAGS {
16310 type Output = Self;
16311 fn bitand(self, other: Self) -> Self {
16312 Self(self.0 & other.0)
16313 }
16314}
16315impl ::core::ops::BitOrAssign for D3D12_DESCRIPTOR_HEAP_FLAGS {
16316 fn bitor_assign(&mut self, other: Self) {
16317 self.0.bitor_assign(other.0)
16318 }
16319}
16320impl ::core::ops::BitAndAssign for D3D12_DESCRIPTOR_HEAP_FLAGS {
16321 fn bitand_assign(&mut self, other: Self) {
16322 self.0.bitand_assign(other.0)
16323 }
16324}
16325impl ::core::ops::Not for D3D12_DESCRIPTOR_HEAP_FLAGS {
16326 type Output = Self;
16327 fn not(self) -> Self {
16328 Self(self.0.not())
16329 }
16330}
16331#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16332#[repr(transparent)]
16333#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16334pub struct D3D12_DESCRIPTOR_HEAP_TYPE(pub i32);
16335#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16336pub const D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV: D3D12_DESCRIPTOR_HEAP_TYPE = D3D12_DESCRIPTOR_HEAP_TYPE(0i32);
16337#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16338pub const D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER: D3D12_DESCRIPTOR_HEAP_TYPE = D3D12_DESCRIPTOR_HEAP_TYPE(1i32);
16339#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16340pub const D3D12_DESCRIPTOR_HEAP_TYPE_RTV: D3D12_DESCRIPTOR_HEAP_TYPE = D3D12_DESCRIPTOR_HEAP_TYPE(2i32);
16341#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16342pub const D3D12_DESCRIPTOR_HEAP_TYPE_DSV: D3D12_DESCRIPTOR_HEAP_TYPE = D3D12_DESCRIPTOR_HEAP_TYPE(3i32);
16343#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16344pub const D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES: D3D12_DESCRIPTOR_HEAP_TYPE = D3D12_DESCRIPTOR_HEAP_TYPE(4i32);
16345impl ::core::marker::Copy for D3D12_DESCRIPTOR_HEAP_TYPE {}
16346impl ::core::clone::Clone for D3D12_DESCRIPTOR_HEAP_TYPE {
16347 fn clone(&self) -> Self {
16348 *self
16349 }
16350}
16351impl ::core::default::Default for D3D12_DESCRIPTOR_HEAP_TYPE {
16352 fn default() -> Self {
16353 Self(0)
16354 }
16355}
16356impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_HEAP_TYPE {
16357 type TypeKind = ::windows::core::CopyType;
16358}
16359impl ::core::fmt::Debug for D3D12_DESCRIPTOR_HEAP_TYPE {
16360 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16361 f.debug_tuple("D3D12_DESCRIPTOR_HEAP_TYPE").field(&self.0).finish()
16362 }
16363}
16364#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16365#[repr(transparent)]
16366#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16367pub struct D3D12_DESCRIPTOR_RANGE_FLAGS(pub i32);
16368#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16369pub const D3D12_DESCRIPTOR_RANGE_FLAG_NONE: D3D12_DESCRIPTOR_RANGE_FLAGS = D3D12_DESCRIPTOR_RANGE_FLAGS(0i32);
16370#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16371pub const D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE: D3D12_DESCRIPTOR_RANGE_FLAGS = D3D12_DESCRIPTOR_RANGE_FLAGS(1i32);
16372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16373pub const D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE: D3D12_DESCRIPTOR_RANGE_FLAGS = D3D12_DESCRIPTOR_RANGE_FLAGS(2i32);
16374#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16375pub const D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE: D3D12_DESCRIPTOR_RANGE_FLAGS = D3D12_DESCRIPTOR_RANGE_FLAGS(4i32);
16376#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16377pub const D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC: D3D12_DESCRIPTOR_RANGE_FLAGS = D3D12_DESCRIPTOR_RANGE_FLAGS(8i32);
16378#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16379pub const D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS: D3D12_DESCRIPTOR_RANGE_FLAGS = D3D12_DESCRIPTOR_RANGE_FLAGS(65536i32);
16380impl ::core::marker::Copy for D3D12_DESCRIPTOR_RANGE_FLAGS {}
16381impl ::core::clone::Clone for D3D12_DESCRIPTOR_RANGE_FLAGS {
16382 fn clone(&self) -> Self {
16383 *self
16384 }
16385}
16386impl ::core::default::Default for D3D12_DESCRIPTOR_RANGE_FLAGS {
16387 fn default() -> Self {
16388 Self(0)
16389 }
16390}
16391impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_RANGE_FLAGS {
16392 type TypeKind = ::windows::core::CopyType;
16393}
16394impl ::core::fmt::Debug for D3D12_DESCRIPTOR_RANGE_FLAGS {
16395 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16396 f.debug_tuple("D3D12_DESCRIPTOR_RANGE_FLAGS").field(&self.0).finish()
16397 }
16398}
16399impl D3D12_DESCRIPTOR_RANGE_FLAGS {
16400 pub const fn contains(&self, other: Self) -> bool {
16401 self.0 & other.0 == other.0
16402 }
16403}
16404impl ::core::ops::BitOr for D3D12_DESCRIPTOR_RANGE_FLAGS {
16405 type Output = Self;
16406 fn bitor(self, other: Self) -> Self {
16407 Self(self.0 | other.0)
16408 }
16409}
16410impl ::core::ops::BitAnd for D3D12_DESCRIPTOR_RANGE_FLAGS {
16411 type Output = Self;
16412 fn bitand(self, other: Self) -> Self {
16413 Self(self.0 & other.0)
16414 }
16415}
16416impl ::core::ops::BitOrAssign for D3D12_DESCRIPTOR_RANGE_FLAGS {
16417 fn bitor_assign(&mut self, other: Self) {
16418 self.0.bitor_assign(other.0)
16419 }
16420}
16421impl ::core::ops::BitAndAssign for D3D12_DESCRIPTOR_RANGE_FLAGS {
16422 fn bitand_assign(&mut self, other: Self) {
16423 self.0.bitand_assign(other.0)
16424 }
16425}
16426impl ::core::ops::Not for D3D12_DESCRIPTOR_RANGE_FLAGS {
16427 type Output = Self;
16428 fn not(self) -> Self {
16429 Self(self.0.not())
16430 }
16431}
16432#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16433#[repr(transparent)]
16434#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16435pub struct D3D12_DESCRIPTOR_RANGE_TYPE(pub i32);
16436#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16437pub const D3D12_DESCRIPTOR_RANGE_TYPE_SRV: D3D12_DESCRIPTOR_RANGE_TYPE = D3D12_DESCRIPTOR_RANGE_TYPE(0i32);
16438#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16439pub const D3D12_DESCRIPTOR_RANGE_TYPE_UAV: D3D12_DESCRIPTOR_RANGE_TYPE = D3D12_DESCRIPTOR_RANGE_TYPE(1i32);
16440#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16441pub const D3D12_DESCRIPTOR_RANGE_TYPE_CBV: D3D12_DESCRIPTOR_RANGE_TYPE = D3D12_DESCRIPTOR_RANGE_TYPE(2i32);
16442#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16443pub const D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER: D3D12_DESCRIPTOR_RANGE_TYPE = D3D12_DESCRIPTOR_RANGE_TYPE(3i32);
16444impl ::core::marker::Copy for D3D12_DESCRIPTOR_RANGE_TYPE {}
16445impl ::core::clone::Clone for D3D12_DESCRIPTOR_RANGE_TYPE {
16446 fn clone(&self) -> Self {
16447 *self
16448 }
16449}
16450impl ::core::default::Default for D3D12_DESCRIPTOR_RANGE_TYPE {
16451 fn default() -> Self {
16452 Self(0)
16453 }
16454}
16455impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_RANGE_TYPE {
16456 type TypeKind = ::windows::core::CopyType;
16457}
16458impl ::core::fmt::Debug for D3D12_DESCRIPTOR_RANGE_TYPE {
16459 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16460 f.debug_tuple("D3D12_DESCRIPTOR_RANGE_TYPE").field(&self.0).finish()
16461 }
16462}
16463#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16464#[repr(transparent)]
16465#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16466pub struct D3D12_DEVICE_FACTORY_FLAGS(pub i32);
16467#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16468pub const D3D12_DEVICE_FACTORY_FLAG_NONE: D3D12_DEVICE_FACTORY_FLAGS = D3D12_DEVICE_FACTORY_FLAGS(0i32);
16469#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16470pub const D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE: D3D12_DEVICE_FACTORY_FLAGS = D3D12_DEVICE_FACTORY_FLAGS(1i32);
16471#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16472pub const D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE: D3D12_DEVICE_FACTORY_FLAGS = D3D12_DEVICE_FACTORY_FLAGS(2i32);
16473#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16474pub const D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON: D3D12_DEVICE_FACTORY_FLAGS = D3D12_DEVICE_FACTORY_FLAGS(4i32);
16475impl ::core::marker::Copy for D3D12_DEVICE_FACTORY_FLAGS {}
16476impl ::core::clone::Clone for D3D12_DEVICE_FACTORY_FLAGS {
16477 fn clone(&self) -> Self {
16478 *self
16479 }
16480}
16481impl ::core::default::Default for D3D12_DEVICE_FACTORY_FLAGS {
16482 fn default() -> Self {
16483 Self(0)
16484 }
16485}
16486impl ::windows::core::TypeKind for D3D12_DEVICE_FACTORY_FLAGS {
16487 type TypeKind = ::windows::core::CopyType;
16488}
16489impl ::core::fmt::Debug for D3D12_DEVICE_FACTORY_FLAGS {
16490 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16491 f.debug_tuple("D3D12_DEVICE_FACTORY_FLAGS").field(&self.0).finish()
16492 }
16493}
16494impl D3D12_DEVICE_FACTORY_FLAGS {
16495 pub const fn contains(&self, other: Self) -> bool {
16496 self.0 & other.0 == other.0
16497 }
16498}
16499impl ::core::ops::BitOr for D3D12_DEVICE_FACTORY_FLAGS {
16500 type Output = Self;
16501 fn bitor(self, other: Self) -> Self {
16502 Self(self.0 | other.0)
16503 }
16504}
16505impl ::core::ops::BitAnd for D3D12_DEVICE_FACTORY_FLAGS {
16506 type Output = Self;
16507 fn bitand(self, other: Self) -> Self {
16508 Self(self.0 & other.0)
16509 }
16510}
16511impl ::core::ops::BitOrAssign for D3D12_DEVICE_FACTORY_FLAGS {
16512 fn bitor_assign(&mut self, other: Self) {
16513 self.0.bitor_assign(other.0)
16514 }
16515}
16516impl ::core::ops::BitAndAssign for D3D12_DEVICE_FACTORY_FLAGS {
16517 fn bitand_assign(&mut self, other: Self) {
16518 self.0.bitand_assign(other.0)
16519 }
16520}
16521impl ::core::ops::Not for D3D12_DEVICE_FACTORY_FLAGS {
16522 type Output = Self;
16523 fn not(self) -> Self {
16524 Self(self.0.not())
16525 }
16526}
16527#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16528#[repr(transparent)]
16529#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16530pub struct D3D12_DEVICE_FLAGS(pub i32);
16531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16532pub const D3D12_DEVICE_FLAG_NONE: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(0i32);
16533#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16534pub const D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(1i32);
16535#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16536pub const D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(2i32);
16537#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16538pub const D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(4i32);
16539#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16540pub const D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(8i32);
16541#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16542pub const D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(16i32);
16543#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16544pub const D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(32i32);
16545#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16546pub const D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(64i32);
16547#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16548pub const D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(128i32);
16549#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16550pub const D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(256i32);
16551#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16552pub const D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(512i32);
16553#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16554pub const D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION: D3D12_DEVICE_FLAGS = D3D12_DEVICE_FLAGS(1024i32);
16555impl ::core::marker::Copy for D3D12_DEVICE_FLAGS {}
16556impl ::core::clone::Clone for D3D12_DEVICE_FLAGS {
16557 fn clone(&self) -> Self {
16558 *self
16559 }
16560}
16561impl ::core::default::Default for D3D12_DEVICE_FLAGS {
16562 fn default() -> Self {
16563 Self(0)
16564 }
16565}
16566impl ::windows::core::TypeKind for D3D12_DEVICE_FLAGS {
16567 type TypeKind = ::windows::core::CopyType;
16568}
16569impl ::core::fmt::Debug for D3D12_DEVICE_FLAGS {
16570 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16571 f.debug_tuple("D3D12_DEVICE_FLAGS").field(&self.0).finish()
16572 }
16573}
16574impl D3D12_DEVICE_FLAGS {
16575 pub const fn contains(&self, other: Self) -> bool {
16576 self.0 & other.0 == other.0
16577 }
16578}
16579impl ::core::ops::BitOr for D3D12_DEVICE_FLAGS {
16580 type Output = Self;
16581 fn bitor(self, other: Self) -> Self {
16582 Self(self.0 | other.0)
16583 }
16584}
16585impl ::core::ops::BitAnd for D3D12_DEVICE_FLAGS {
16586 type Output = Self;
16587 fn bitand(self, other: Self) -> Self {
16588 Self(self.0 & other.0)
16589 }
16590}
16591impl ::core::ops::BitOrAssign for D3D12_DEVICE_FLAGS {
16592 fn bitor_assign(&mut self, other: Self) {
16593 self.0.bitor_assign(other.0)
16594 }
16595}
16596impl ::core::ops::BitAndAssign for D3D12_DEVICE_FLAGS {
16597 fn bitand_assign(&mut self, other: Self) {
16598 self.0.bitand_assign(other.0)
16599 }
16600}
16601impl ::core::ops::Not for D3D12_DEVICE_FLAGS {
16602 type Output = Self;
16603 fn not(self) -> Self {
16604 Self(self.0.not())
16605 }
16606}
16607#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16608#[repr(transparent)]
16609#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16610pub struct D3D12_DRED_ALLOCATION_TYPE(pub i32);
16611#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16612pub const D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(19i32);
16613#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16614pub const D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(20i32);
16615#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16616pub const D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(21i32);
16617#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16618pub const D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(22i32);
16619#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16620pub const D3D12_DRED_ALLOCATION_TYPE_FENCE: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(23i32);
16621#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16622pub const D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(24i32);
16623#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16624pub const D3D12_DRED_ALLOCATION_TYPE_HEAP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(25i32);
16625#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16626pub const D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(27i32);
16627#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16628pub const D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(28i32);
16629#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16630pub const D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(29i32);
16631#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16632pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(30i32);
16633#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16634pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(32i32);
16635#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16636pub const D3D12_DRED_ALLOCATION_TYPE_RESOURCE: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(34i32);
16637#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16638pub const D3D12_DRED_ALLOCATION_TYPE_PASS: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(35i32);
16639#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16640pub const D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(36i32);
16641#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16642pub const D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(37i32);
16643#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16644pub const D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(38i32);
16645#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16646pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(39i32);
16647#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16648pub const D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(40i32);
16649#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16650pub const D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(41i32);
16651#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16652pub const D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(42i32);
16653#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16654pub const D3D12_DRED_ALLOCATION_TYPE_METACOMMAND: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(43i32);
16655#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16656pub const D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(44i32);
16657#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16658pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(45i32);
16659#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16660pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(46i32);
16661#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16662pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(47i32);
16663#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16664pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(48i32);
16665#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16666pub const D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(49i32);
16667#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16668pub const D3D12_DRED_ALLOCATION_TYPE_INVALID: D3D12_DRED_ALLOCATION_TYPE = D3D12_DRED_ALLOCATION_TYPE(-1i32);
16669impl ::core::marker::Copy for D3D12_DRED_ALLOCATION_TYPE {}
16670impl ::core::clone::Clone for D3D12_DRED_ALLOCATION_TYPE {
16671 fn clone(&self) -> Self {
16672 *self
16673 }
16674}
16675impl ::core::default::Default for D3D12_DRED_ALLOCATION_TYPE {
16676 fn default() -> Self {
16677 Self(0)
16678 }
16679}
16680impl ::windows::core::TypeKind for D3D12_DRED_ALLOCATION_TYPE {
16681 type TypeKind = ::windows::core::CopyType;
16682}
16683impl ::core::fmt::Debug for D3D12_DRED_ALLOCATION_TYPE {
16684 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16685 f.debug_tuple("D3D12_DRED_ALLOCATION_TYPE").field(&self.0).finish()
16686 }
16687}
16688#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16689#[repr(transparent)]
16690#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16691pub struct D3D12_DRED_DEVICE_STATE(pub i32);
16692#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16693pub const D3D12_DRED_DEVICE_STATE_UNKNOWN: D3D12_DRED_DEVICE_STATE = D3D12_DRED_DEVICE_STATE(0i32);
16694#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16695pub const D3D12_DRED_DEVICE_STATE_HUNG: D3D12_DRED_DEVICE_STATE = D3D12_DRED_DEVICE_STATE(3i32);
16696#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16697pub const D3D12_DRED_DEVICE_STATE_FAULT: D3D12_DRED_DEVICE_STATE = D3D12_DRED_DEVICE_STATE(6i32);
16698#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16699pub const D3D12_DRED_DEVICE_STATE_PAGEFAULT: D3D12_DRED_DEVICE_STATE = D3D12_DRED_DEVICE_STATE(7i32);
16700impl ::core::marker::Copy for D3D12_DRED_DEVICE_STATE {}
16701impl ::core::clone::Clone for D3D12_DRED_DEVICE_STATE {
16702 fn clone(&self) -> Self {
16703 *self
16704 }
16705}
16706impl ::core::default::Default for D3D12_DRED_DEVICE_STATE {
16707 fn default() -> Self {
16708 Self(0)
16709 }
16710}
16711impl ::windows::core::TypeKind for D3D12_DRED_DEVICE_STATE {
16712 type TypeKind = ::windows::core::CopyType;
16713}
16714impl ::core::fmt::Debug for D3D12_DRED_DEVICE_STATE {
16715 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16716 f.debug_tuple("D3D12_DRED_DEVICE_STATE").field(&self.0).finish()
16717 }
16718}
16719#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16720#[repr(transparent)]
16721#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16722pub struct D3D12_DRED_ENABLEMENT(pub i32);
16723#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16724pub const D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED: D3D12_DRED_ENABLEMENT = D3D12_DRED_ENABLEMENT(0i32);
16725#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16726pub const D3D12_DRED_ENABLEMENT_FORCED_OFF: D3D12_DRED_ENABLEMENT = D3D12_DRED_ENABLEMENT(1i32);
16727#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16728pub const D3D12_DRED_ENABLEMENT_FORCED_ON: D3D12_DRED_ENABLEMENT = D3D12_DRED_ENABLEMENT(2i32);
16729impl ::core::marker::Copy for D3D12_DRED_ENABLEMENT {}
16730impl ::core::clone::Clone for D3D12_DRED_ENABLEMENT {
16731 fn clone(&self) -> Self {
16732 *self
16733 }
16734}
16735impl ::core::default::Default for D3D12_DRED_ENABLEMENT {
16736 fn default() -> Self {
16737 Self(0)
16738 }
16739}
16740impl ::windows::core::TypeKind for D3D12_DRED_ENABLEMENT {
16741 type TypeKind = ::windows::core::CopyType;
16742}
16743impl ::core::fmt::Debug for D3D12_DRED_ENABLEMENT {
16744 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16745 f.debug_tuple("D3D12_DRED_ENABLEMENT").field(&self.0).finish()
16746 }
16747}
16748#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16749#[repr(transparent)]
16750#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16751pub struct D3D12_DRED_FLAGS(pub i32);
16752#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16753pub const D3D12_DRED_FLAG_NONE: D3D12_DRED_FLAGS = D3D12_DRED_FLAGS(0i32);
16754#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16755pub const D3D12_DRED_FLAG_FORCE_ENABLE: D3D12_DRED_FLAGS = D3D12_DRED_FLAGS(1i32);
16756#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16757pub const D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS: D3D12_DRED_FLAGS = D3D12_DRED_FLAGS(2i32);
16758impl ::core::marker::Copy for D3D12_DRED_FLAGS {}
16759impl ::core::clone::Clone for D3D12_DRED_FLAGS {
16760 fn clone(&self) -> Self {
16761 *self
16762 }
16763}
16764impl ::core::default::Default for D3D12_DRED_FLAGS {
16765 fn default() -> Self {
16766 Self(0)
16767 }
16768}
16769impl ::windows::core::TypeKind for D3D12_DRED_FLAGS {
16770 type TypeKind = ::windows::core::CopyType;
16771}
16772impl ::core::fmt::Debug for D3D12_DRED_FLAGS {
16773 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16774 f.debug_tuple("D3D12_DRED_FLAGS").field(&self.0).finish()
16775 }
16776}
16777impl D3D12_DRED_FLAGS {
16778 pub const fn contains(&self, other: Self) -> bool {
16779 self.0 & other.0 == other.0
16780 }
16781}
16782impl ::core::ops::BitOr for D3D12_DRED_FLAGS {
16783 type Output = Self;
16784 fn bitor(self, other: Self) -> Self {
16785 Self(self.0 | other.0)
16786 }
16787}
16788impl ::core::ops::BitAnd for D3D12_DRED_FLAGS {
16789 type Output = Self;
16790 fn bitand(self, other: Self) -> Self {
16791 Self(self.0 & other.0)
16792 }
16793}
16794impl ::core::ops::BitOrAssign for D3D12_DRED_FLAGS {
16795 fn bitor_assign(&mut self, other: Self) {
16796 self.0.bitor_assign(other.0)
16797 }
16798}
16799impl ::core::ops::BitAndAssign for D3D12_DRED_FLAGS {
16800 fn bitand_assign(&mut self, other: Self) {
16801 self.0.bitand_assign(other.0)
16802 }
16803}
16804impl ::core::ops::Not for D3D12_DRED_FLAGS {
16805 type Output = Self;
16806 fn not(self) -> Self {
16807 Self(self.0.not())
16808 }
16809}
16810#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16811#[repr(transparent)]
16812#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16813pub struct D3D12_DRED_PAGE_FAULT_FLAGS(pub i32);
16814#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16815pub const D3D12_DRED_PAGE_FAULT_FLAGS_NONE: D3D12_DRED_PAGE_FAULT_FLAGS = D3D12_DRED_PAGE_FAULT_FLAGS(0i32);
16816impl ::core::marker::Copy for D3D12_DRED_PAGE_FAULT_FLAGS {}
16817impl ::core::clone::Clone for D3D12_DRED_PAGE_FAULT_FLAGS {
16818 fn clone(&self) -> Self {
16819 *self
16820 }
16821}
16822impl ::core::default::Default for D3D12_DRED_PAGE_FAULT_FLAGS {
16823 fn default() -> Self {
16824 Self(0)
16825 }
16826}
16827impl ::windows::core::TypeKind for D3D12_DRED_PAGE_FAULT_FLAGS {
16828 type TypeKind = ::windows::core::CopyType;
16829}
16830impl ::core::fmt::Debug for D3D12_DRED_PAGE_FAULT_FLAGS {
16831 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16832 f.debug_tuple("D3D12_DRED_PAGE_FAULT_FLAGS").field(&self.0).finish()
16833 }
16834}
16835impl D3D12_DRED_PAGE_FAULT_FLAGS {
16836 pub const fn contains(&self, other: Self) -> bool {
16837 self.0 & other.0 == other.0
16838 }
16839}
16840impl ::core::ops::BitOr for D3D12_DRED_PAGE_FAULT_FLAGS {
16841 type Output = Self;
16842 fn bitor(self, other: Self) -> Self {
16843 Self(self.0 | other.0)
16844 }
16845}
16846impl ::core::ops::BitAnd for D3D12_DRED_PAGE_FAULT_FLAGS {
16847 type Output = Self;
16848 fn bitand(self, other: Self) -> Self {
16849 Self(self.0 & other.0)
16850 }
16851}
16852impl ::core::ops::BitOrAssign for D3D12_DRED_PAGE_FAULT_FLAGS {
16853 fn bitor_assign(&mut self, other: Self) {
16854 self.0.bitor_assign(other.0)
16855 }
16856}
16857impl ::core::ops::BitAndAssign for D3D12_DRED_PAGE_FAULT_FLAGS {
16858 fn bitand_assign(&mut self, other: Self) {
16859 self.0.bitand_assign(other.0)
16860 }
16861}
16862impl ::core::ops::Not for D3D12_DRED_PAGE_FAULT_FLAGS {
16863 type Output = Self;
16864 fn not(self) -> Self {
16865 Self(self.0.not())
16866 }
16867}
16868#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16869#[repr(transparent)]
16870#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16871pub struct D3D12_DRED_VERSION(pub i32);
16872#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16873pub const D3D12_DRED_VERSION_1_0: D3D12_DRED_VERSION = D3D12_DRED_VERSION(1i32);
16874#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16875pub const D3D12_DRED_VERSION_1_1: D3D12_DRED_VERSION = D3D12_DRED_VERSION(2i32);
16876#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16877pub const D3D12_DRED_VERSION_1_2: D3D12_DRED_VERSION = D3D12_DRED_VERSION(3i32);
16878#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16879pub const D3D12_DRED_VERSION_1_3: D3D12_DRED_VERSION = D3D12_DRED_VERSION(4i32);
16880impl ::core::marker::Copy for D3D12_DRED_VERSION {}
16881impl ::core::clone::Clone for D3D12_DRED_VERSION {
16882 fn clone(&self) -> Self {
16883 *self
16884 }
16885}
16886impl ::core::default::Default for D3D12_DRED_VERSION {
16887 fn default() -> Self {
16888 Self(0)
16889 }
16890}
16891impl ::windows::core::TypeKind for D3D12_DRED_VERSION {
16892 type TypeKind = ::windows::core::CopyType;
16893}
16894impl ::core::fmt::Debug for D3D12_DRED_VERSION {
16895 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16896 f.debug_tuple("D3D12_DRED_VERSION").field(&self.0).finish()
16897 }
16898}
16899#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16900#[repr(transparent)]
16901#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16902pub struct D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(pub i32);
16903#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16904pub const D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE: D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(0i32);
16905#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16906pub const D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE: D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(1i32);
16907#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16908pub const D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED: D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(2i32);
16909#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16910pub const D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION: D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(3i32);
16911#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16912pub const D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE: D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS = D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS(4i32);
16913impl ::core::marker::Copy for D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {}
16914impl ::core::clone::Clone for D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
16915 fn clone(&self) -> Self {
16916 *self
16917 }
16918}
16919impl ::core::default::Default for D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
16920 fn default() -> Self {
16921 Self(0)
16922 }
16923}
16924impl ::windows::core::TypeKind for D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
16925 type TypeKind = ::windows::core::CopyType;
16926}
16927impl ::core::fmt::Debug for D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS {
16928 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16929 f.debug_tuple("D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS").field(&self.0).finish()
16930 }
16931}
16932#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16933#[repr(transparent)]
16934#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16935pub struct D3D12_DSV_DIMENSION(pub i32);
16936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16937pub const D3D12_DSV_DIMENSION_UNKNOWN: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(0i32);
16938#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16939pub const D3D12_DSV_DIMENSION_TEXTURE1D: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(1i32);
16940#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16941pub const D3D12_DSV_DIMENSION_TEXTURE1DARRAY: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(2i32);
16942#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16943pub const D3D12_DSV_DIMENSION_TEXTURE2D: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(3i32);
16944#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16945pub const D3D12_DSV_DIMENSION_TEXTURE2DARRAY: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(4i32);
16946#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16947pub const D3D12_DSV_DIMENSION_TEXTURE2DMS: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(5i32);
16948#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16949pub const D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY: D3D12_DSV_DIMENSION = D3D12_DSV_DIMENSION(6i32);
16950impl ::core::marker::Copy for D3D12_DSV_DIMENSION {}
16951impl ::core::clone::Clone for D3D12_DSV_DIMENSION {
16952 fn clone(&self) -> Self {
16953 *self
16954 }
16955}
16956impl ::core::default::Default for D3D12_DSV_DIMENSION {
16957 fn default() -> Self {
16958 Self(0)
16959 }
16960}
16961impl ::windows::core::TypeKind for D3D12_DSV_DIMENSION {
16962 type TypeKind = ::windows::core::CopyType;
16963}
16964impl ::core::fmt::Debug for D3D12_DSV_DIMENSION {
16965 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16966 f.debug_tuple("D3D12_DSV_DIMENSION").field(&self.0).finish()
16967 }
16968}
16969#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16970#[repr(transparent)]
16971#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
16972pub struct D3D12_DSV_FLAGS(pub i32);
16973#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16974pub const D3D12_DSV_FLAG_NONE: D3D12_DSV_FLAGS = D3D12_DSV_FLAGS(0i32);
16975#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16976pub const D3D12_DSV_FLAG_READ_ONLY_DEPTH: D3D12_DSV_FLAGS = D3D12_DSV_FLAGS(1i32);
16977#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
16978pub const D3D12_DSV_FLAG_READ_ONLY_STENCIL: D3D12_DSV_FLAGS = D3D12_DSV_FLAGS(2i32);
16979impl ::core::marker::Copy for D3D12_DSV_FLAGS {}
16980impl ::core::clone::Clone for D3D12_DSV_FLAGS {
16981 fn clone(&self) -> Self {
16982 *self
16983 }
16984}
16985impl ::core::default::Default for D3D12_DSV_FLAGS {
16986 fn default() -> Self {
16987 Self(0)
16988 }
16989}
16990impl ::windows::core::TypeKind for D3D12_DSV_FLAGS {
16991 type TypeKind = ::windows::core::CopyType;
16992}
16993impl ::core::fmt::Debug for D3D12_DSV_FLAGS {
16994 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
16995 f.debug_tuple("D3D12_DSV_FLAGS").field(&self.0).finish()
16996 }
16997}
16998impl D3D12_DSV_FLAGS {
16999 pub const fn contains(&self, other: Self) -> bool {
17000 self.0 & other.0 == other.0
17001 }
17002}
17003impl ::core::ops::BitOr for D3D12_DSV_FLAGS {
17004 type Output = Self;
17005 fn bitor(self, other: Self) -> Self {
17006 Self(self.0 | other.0)
17007 }
17008}
17009impl ::core::ops::BitAnd for D3D12_DSV_FLAGS {
17010 type Output = Self;
17011 fn bitand(self, other: Self) -> Self {
17012 Self(self.0 & other.0)
17013 }
17014}
17015impl ::core::ops::BitOrAssign for D3D12_DSV_FLAGS {
17016 fn bitor_assign(&mut self, other: Self) {
17017 self.0.bitor_assign(other.0)
17018 }
17019}
17020impl ::core::ops::BitAndAssign for D3D12_DSV_FLAGS {
17021 fn bitand_assign(&mut self, other: Self) {
17022 self.0.bitand_assign(other.0)
17023 }
17024}
17025impl ::core::ops::Not for D3D12_DSV_FLAGS {
17026 type Output = Self;
17027 fn not(self) -> Self {
17028 Self(self.0.not())
17029 }
17030}
17031#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17032#[repr(transparent)]
17033#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17034pub struct D3D12_ELEMENTS_LAYOUT(pub i32);
17035#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17036pub const D3D12_ELEMENTS_LAYOUT_ARRAY: D3D12_ELEMENTS_LAYOUT = D3D12_ELEMENTS_LAYOUT(0i32);
17037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17038pub const D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS: D3D12_ELEMENTS_LAYOUT = D3D12_ELEMENTS_LAYOUT(1i32);
17039impl ::core::marker::Copy for D3D12_ELEMENTS_LAYOUT {}
17040impl ::core::clone::Clone for D3D12_ELEMENTS_LAYOUT {
17041 fn clone(&self) -> Self {
17042 *self
17043 }
17044}
17045impl ::core::default::Default for D3D12_ELEMENTS_LAYOUT {
17046 fn default() -> Self {
17047 Self(0)
17048 }
17049}
17050impl ::windows::core::TypeKind for D3D12_ELEMENTS_LAYOUT {
17051 type TypeKind = ::windows::core::CopyType;
17052}
17053impl ::core::fmt::Debug for D3D12_ELEMENTS_LAYOUT {
17054 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17055 f.debug_tuple("D3D12_ELEMENTS_LAYOUT").field(&self.0).finish()
17056 }
17057}
17058#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17059#[repr(transparent)]
17060#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17061pub struct D3D12_EXPORT_FLAGS(pub i32);
17062#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17063pub const D3D12_EXPORT_FLAG_NONE: D3D12_EXPORT_FLAGS = D3D12_EXPORT_FLAGS(0i32);
17064impl ::core::marker::Copy for D3D12_EXPORT_FLAGS {}
17065impl ::core::clone::Clone for D3D12_EXPORT_FLAGS {
17066 fn clone(&self) -> Self {
17067 *self
17068 }
17069}
17070impl ::core::default::Default for D3D12_EXPORT_FLAGS {
17071 fn default() -> Self {
17072 Self(0)
17073 }
17074}
17075impl ::windows::core::TypeKind for D3D12_EXPORT_FLAGS {
17076 type TypeKind = ::windows::core::CopyType;
17077}
17078impl ::core::fmt::Debug for D3D12_EXPORT_FLAGS {
17079 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17080 f.debug_tuple("D3D12_EXPORT_FLAGS").field(&self.0).finish()
17081 }
17082}
17083impl D3D12_EXPORT_FLAGS {
17084 pub const fn contains(&self, other: Self) -> bool {
17085 self.0 & other.0 == other.0
17086 }
17087}
17088impl ::core::ops::BitOr for D3D12_EXPORT_FLAGS {
17089 type Output = Self;
17090 fn bitor(self, other: Self) -> Self {
17091 Self(self.0 | other.0)
17092 }
17093}
17094impl ::core::ops::BitAnd for D3D12_EXPORT_FLAGS {
17095 type Output = Self;
17096 fn bitand(self, other: Self) -> Self {
17097 Self(self.0 & other.0)
17098 }
17099}
17100impl ::core::ops::BitOrAssign for D3D12_EXPORT_FLAGS {
17101 fn bitor_assign(&mut self, other: Self) {
17102 self.0.bitor_assign(other.0)
17103 }
17104}
17105impl ::core::ops::BitAndAssign for D3D12_EXPORT_FLAGS {
17106 fn bitand_assign(&mut self, other: Self) {
17107 self.0.bitand_assign(other.0)
17108 }
17109}
17110impl ::core::ops::Not for D3D12_EXPORT_FLAGS {
17111 type Output = Self;
17112 fn not(self) -> Self {
17113 Self(self.0.not())
17114 }
17115}
17116#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17117#[repr(transparent)]
17118#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17119pub struct D3D12_FEATURE(pub i32);
17120#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17121pub const D3D12_FEATURE_D3D12_OPTIONS: D3D12_FEATURE = D3D12_FEATURE(0i32);
17122#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17123pub const D3D12_FEATURE_ARCHITECTURE: D3D12_FEATURE = D3D12_FEATURE(1i32);
17124#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17125pub const D3D12_FEATURE_FEATURE_LEVELS: D3D12_FEATURE = D3D12_FEATURE(2i32);
17126#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17127pub const D3D12_FEATURE_FORMAT_SUPPORT: D3D12_FEATURE = D3D12_FEATURE(3i32);
17128#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17129pub const D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS: D3D12_FEATURE = D3D12_FEATURE(4i32);
17130#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17131pub const D3D12_FEATURE_FORMAT_INFO: D3D12_FEATURE = D3D12_FEATURE(5i32);
17132#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17133pub const D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT: D3D12_FEATURE = D3D12_FEATURE(6i32);
17134#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17135pub const D3D12_FEATURE_SHADER_MODEL: D3D12_FEATURE = D3D12_FEATURE(7i32);
17136#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17137pub const D3D12_FEATURE_D3D12_OPTIONS1: D3D12_FEATURE = D3D12_FEATURE(8i32);
17138#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17139pub const D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT: D3D12_FEATURE = D3D12_FEATURE(10i32);
17140#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17141pub const D3D12_FEATURE_ROOT_SIGNATURE: D3D12_FEATURE = D3D12_FEATURE(12i32);
17142#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17143pub const D3D12_FEATURE_ARCHITECTURE1: D3D12_FEATURE = D3D12_FEATURE(16i32);
17144#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17145pub const D3D12_FEATURE_D3D12_OPTIONS2: D3D12_FEATURE = D3D12_FEATURE(18i32);
17146#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17147pub const D3D12_FEATURE_SHADER_CACHE: D3D12_FEATURE = D3D12_FEATURE(19i32);
17148#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17149pub const D3D12_FEATURE_COMMAND_QUEUE_PRIORITY: D3D12_FEATURE = D3D12_FEATURE(20i32);
17150#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17151pub const D3D12_FEATURE_D3D12_OPTIONS3: D3D12_FEATURE = D3D12_FEATURE(21i32);
17152#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17153pub const D3D12_FEATURE_EXISTING_HEAPS: D3D12_FEATURE = D3D12_FEATURE(22i32);
17154#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17155pub const D3D12_FEATURE_D3D12_OPTIONS4: D3D12_FEATURE = D3D12_FEATURE(23i32);
17156#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17157pub const D3D12_FEATURE_SERIALIZATION: D3D12_FEATURE = D3D12_FEATURE(24i32);
17158#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17159pub const D3D12_FEATURE_CROSS_NODE: D3D12_FEATURE = D3D12_FEATURE(25i32);
17160#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17161pub const D3D12_FEATURE_D3D12_OPTIONS5: D3D12_FEATURE = D3D12_FEATURE(27i32);
17162#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17163pub const D3D12_FEATURE_DISPLAYABLE: D3D12_FEATURE = D3D12_FEATURE(28i32);
17164#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17165pub const D3D12_FEATURE_D3D12_OPTIONS6: D3D12_FEATURE = D3D12_FEATURE(30i32);
17166#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17167pub const D3D12_FEATURE_QUERY_META_COMMAND: D3D12_FEATURE = D3D12_FEATURE(31i32);
17168#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17169pub const D3D12_FEATURE_D3D12_OPTIONS7: D3D12_FEATURE = D3D12_FEATURE(32i32);
17170#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17171pub const D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT: D3D12_FEATURE = D3D12_FEATURE(33i32);
17172#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17173pub const D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES: D3D12_FEATURE = D3D12_FEATURE(34i32);
17174#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17175pub const D3D12_FEATURE_D3D12_OPTIONS8: D3D12_FEATURE = D3D12_FEATURE(36i32);
17176#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17177pub const D3D12_FEATURE_D3D12_OPTIONS9: D3D12_FEATURE = D3D12_FEATURE(37i32);
17178#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17179pub const D3D12_FEATURE_D3D12_OPTIONS10: D3D12_FEATURE = D3D12_FEATURE(39i32);
17180#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17181pub const D3D12_FEATURE_D3D12_OPTIONS11: D3D12_FEATURE = D3D12_FEATURE(40i32);
17182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17183pub const D3D12_FEATURE_D3D12_OPTIONS12: D3D12_FEATURE = D3D12_FEATURE(41i32);
17184#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17185pub const D3D12_FEATURE_D3D12_OPTIONS13: D3D12_FEATURE = D3D12_FEATURE(42i32);
17186#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17187pub const D3D12_FEATURE_D3D12_OPTIONS14: D3D12_FEATURE = D3D12_FEATURE(43i32);
17188#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17189pub const D3D12_FEATURE_D3D12_OPTIONS15: D3D12_FEATURE = D3D12_FEATURE(44i32);
17190#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17191pub const D3D12_FEATURE_D3D12_OPTIONS16: D3D12_FEATURE = D3D12_FEATURE(45i32);
17192impl ::core::marker::Copy for D3D12_FEATURE {}
17193impl ::core::clone::Clone for D3D12_FEATURE {
17194 fn clone(&self) -> Self {
17195 *self
17196 }
17197}
17198impl ::core::default::Default for D3D12_FEATURE {
17199 fn default() -> Self {
17200 Self(0)
17201 }
17202}
17203impl ::windows::core::TypeKind for D3D12_FEATURE {
17204 type TypeKind = ::windows::core::CopyType;
17205}
17206impl ::core::fmt::Debug for D3D12_FEATURE {
17207 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17208 f.debug_tuple("D3D12_FEATURE").field(&self.0).finish()
17209 }
17210}
17211#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17212#[repr(transparent)]
17213#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17214pub struct D3D12_FENCE_FLAGS(pub i32);
17215#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17216pub const D3D12_FENCE_FLAG_NONE: D3D12_FENCE_FLAGS = D3D12_FENCE_FLAGS(0i32);
17217#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17218pub const D3D12_FENCE_FLAG_SHARED: D3D12_FENCE_FLAGS = D3D12_FENCE_FLAGS(1i32);
17219#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17220pub const D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER: D3D12_FENCE_FLAGS = D3D12_FENCE_FLAGS(2i32);
17221#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17222pub const D3D12_FENCE_FLAG_NON_MONITORED: D3D12_FENCE_FLAGS = D3D12_FENCE_FLAGS(4i32);
17223impl ::core::marker::Copy for D3D12_FENCE_FLAGS {}
17224impl ::core::clone::Clone for D3D12_FENCE_FLAGS {
17225 fn clone(&self) -> Self {
17226 *self
17227 }
17228}
17229impl ::core::default::Default for D3D12_FENCE_FLAGS {
17230 fn default() -> Self {
17231 Self(0)
17232 }
17233}
17234impl ::windows::core::TypeKind for D3D12_FENCE_FLAGS {
17235 type TypeKind = ::windows::core::CopyType;
17236}
17237impl ::core::fmt::Debug for D3D12_FENCE_FLAGS {
17238 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17239 f.debug_tuple("D3D12_FENCE_FLAGS").field(&self.0).finish()
17240 }
17241}
17242impl D3D12_FENCE_FLAGS {
17243 pub const fn contains(&self, other: Self) -> bool {
17244 self.0 & other.0 == other.0
17245 }
17246}
17247impl ::core::ops::BitOr for D3D12_FENCE_FLAGS {
17248 type Output = Self;
17249 fn bitor(self, other: Self) -> Self {
17250 Self(self.0 | other.0)
17251 }
17252}
17253impl ::core::ops::BitAnd for D3D12_FENCE_FLAGS {
17254 type Output = Self;
17255 fn bitand(self, other: Self) -> Self {
17256 Self(self.0 & other.0)
17257 }
17258}
17259impl ::core::ops::BitOrAssign for D3D12_FENCE_FLAGS {
17260 fn bitor_assign(&mut self, other: Self) {
17261 self.0.bitor_assign(other.0)
17262 }
17263}
17264impl ::core::ops::BitAndAssign for D3D12_FENCE_FLAGS {
17265 fn bitand_assign(&mut self, other: Self) {
17266 self.0.bitand_assign(other.0)
17267 }
17268}
17269impl ::core::ops::Not for D3D12_FENCE_FLAGS {
17270 type Output = Self;
17271 fn not(self) -> Self {
17272 Self(self.0.not())
17273 }
17274}
17275#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17276#[repr(transparent)]
17277#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17278pub struct D3D12_FILL_MODE(pub i32);
17279#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17280pub const D3D12_FILL_MODE_WIREFRAME: D3D12_FILL_MODE = D3D12_FILL_MODE(2i32);
17281#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17282pub const D3D12_FILL_MODE_SOLID: D3D12_FILL_MODE = D3D12_FILL_MODE(3i32);
17283impl ::core::marker::Copy for D3D12_FILL_MODE {}
17284impl ::core::clone::Clone for D3D12_FILL_MODE {
17285 fn clone(&self) -> Self {
17286 *self
17287 }
17288}
17289impl ::core::default::Default for D3D12_FILL_MODE {
17290 fn default() -> Self {
17291 Self(0)
17292 }
17293}
17294impl ::windows::core::TypeKind for D3D12_FILL_MODE {
17295 type TypeKind = ::windows::core::CopyType;
17296}
17297impl ::core::fmt::Debug for D3D12_FILL_MODE {
17298 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17299 f.debug_tuple("D3D12_FILL_MODE").field(&self.0).finish()
17300 }
17301}
17302#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17303#[repr(transparent)]
17304#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17305pub struct D3D12_FILTER(pub i32);
17306#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17307pub const D3D12_FILTER_MIN_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(0i32);
17308#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17309pub const D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(1i32);
17310#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17311pub const D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(4i32);
17312#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17313pub const D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(5i32);
17314#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17315pub const D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(16i32);
17316#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17317pub const D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(17i32);
17318#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17319pub const D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(20i32);
17320#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17321pub const D3D12_FILTER_MIN_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(21i32);
17322#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17323pub const D3D12_FILTER_ANISOTROPIC: D3D12_FILTER = D3D12_FILTER(85i32);
17324#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17325pub const D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(128i32);
17326#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17327pub const D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(129i32);
17328#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17329pub const D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(132i32);
17330#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17331pub const D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(133i32);
17332#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17333pub const D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(144i32);
17334#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17335pub const D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(145i32);
17336#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17337pub const D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(148i32);
17338#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17339pub const D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(149i32);
17340#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17341pub const D3D12_FILTER_COMPARISON_ANISOTROPIC: D3D12_FILTER = D3D12_FILTER(213i32);
17342#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17343pub const D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(256i32);
17344#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17345pub const D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(257i32);
17346#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17347pub const D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(260i32);
17348#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17349pub const D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(261i32);
17350#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17351pub const D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(272i32);
17352#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17353pub const D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(273i32);
17354#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17355pub const D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(276i32);
17356#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17357pub const D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(277i32);
17358#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17359pub const D3D12_FILTER_MINIMUM_ANISOTROPIC: D3D12_FILTER = D3D12_FILTER(341i32);
17360#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17361pub const D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(384i32);
17362#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17363pub const D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(385i32);
17364#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17365pub const D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(388i32);
17366#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17367pub const D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(389i32);
17368#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17369pub const D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT: D3D12_FILTER = D3D12_FILTER(400i32);
17370#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17371pub const D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(401i32);
17372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17373pub const D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT: D3D12_FILTER = D3D12_FILTER(404i32);
17374#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17375pub const D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR: D3D12_FILTER = D3D12_FILTER(405i32);
17376#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17377pub const D3D12_FILTER_MAXIMUM_ANISOTROPIC: D3D12_FILTER = D3D12_FILTER(469i32);
17378impl ::core::marker::Copy for D3D12_FILTER {}
17379impl ::core::clone::Clone for D3D12_FILTER {
17380 fn clone(&self) -> Self {
17381 *self
17382 }
17383}
17384impl ::core::default::Default for D3D12_FILTER {
17385 fn default() -> Self {
17386 Self(0)
17387 }
17388}
17389impl ::windows::core::TypeKind for D3D12_FILTER {
17390 type TypeKind = ::windows::core::CopyType;
17391}
17392impl ::core::fmt::Debug for D3D12_FILTER {
17393 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17394 f.debug_tuple("D3D12_FILTER").field(&self.0).finish()
17395 }
17396}
17397#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17398#[repr(transparent)]
17399#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17400pub struct D3D12_FILTER_REDUCTION_TYPE(pub i32);
17401#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17402pub const D3D12_FILTER_REDUCTION_TYPE_STANDARD: D3D12_FILTER_REDUCTION_TYPE = D3D12_FILTER_REDUCTION_TYPE(0i32);
17403#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17404pub const D3D12_FILTER_REDUCTION_TYPE_COMPARISON: D3D12_FILTER_REDUCTION_TYPE = D3D12_FILTER_REDUCTION_TYPE(1i32);
17405#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17406pub const D3D12_FILTER_REDUCTION_TYPE_MINIMUM: D3D12_FILTER_REDUCTION_TYPE = D3D12_FILTER_REDUCTION_TYPE(2i32);
17407#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17408pub const D3D12_FILTER_REDUCTION_TYPE_MAXIMUM: D3D12_FILTER_REDUCTION_TYPE = D3D12_FILTER_REDUCTION_TYPE(3i32);
17409impl ::core::marker::Copy for D3D12_FILTER_REDUCTION_TYPE {}
17410impl ::core::clone::Clone for D3D12_FILTER_REDUCTION_TYPE {
17411 fn clone(&self) -> Self {
17412 *self
17413 }
17414}
17415impl ::core::default::Default for D3D12_FILTER_REDUCTION_TYPE {
17416 fn default() -> Self {
17417 Self(0)
17418 }
17419}
17420impl ::windows::core::TypeKind for D3D12_FILTER_REDUCTION_TYPE {
17421 type TypeKind = ::windows::core::CopyType;
17422}
17423impl ::core::fmt::Debug for D3D12_FILTER_REDUCTION_TYPE {
17424 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17425 f.debug_tuple("D3D12_FILTER_REDUCTION_TYPE").field(&self.0).finish()
17426 }
17427}
17428#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17429#[repr(transparent)]
17430#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17431pub struct D3D12_FILTER_TYPE(pub i32);
17432#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17433pub const D3D12_FILTER_TYPE_POINT: D3D12_FILTER_TYPE = D3D12_FILTER_TYPE(0i32);
17434#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17435pub const D3D12_FILTER_TYPE_LINEAR: D3D12_FILTER_TYPE = D3D12_FILTER_TYPE(1i32);
17436impl ::core::marker::Copy for D3D12_FILTER_TYPE {}
17437impl ::core::clone::Clone for D3D12_FILTER_TYPE {
17438 fn clone(&self) -> Self {
17439 *self
17440 }
17441}
17442impl ::core::default::Default for D3D12_FILTER_TYPE {
17443 fn default() -> Self {
17444 Self(0)
17445 }
17446}
17447impl ::windows::core::TypeKind for D3D12_FILTER_TYPE {
17448 type TypeKind = ::windows::core::CopyType;
17449}
17450impl ::core::fmt::Debug for D3D12_FILTER_TYPE {
17451 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17452 f.debug_tuple("D3D12_FILTER_TYPE").field(&self.0).finish()
17453 }
17454}
17455#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17456#[repr(transparent)]
17457#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17458pub struct D3D12_FORMAT_SUPPORT1(pub i32);
17459#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17460pub const D3D12_FORMAT_SUPPORT1_NONE: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(0i32);
17461#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17462pub const D3D12_FORMAT_SUPPORT1_BUFFER: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(1i32);
17463#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17464pub const D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(2i32);
17465#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17466pub const D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(4i32);
17467#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17468pub const D3D12_FORMAT_SUPPORT1_SO_BUFFER: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(8i32);
17469#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17470pub const D3D12_FORMAT_SUPPORT1_TEXTURE1D: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(16i32);
17471#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17472pub const D3D12_FORMAT_SUPPORT1_TEXTURE2D: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(32i32);
17473#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17474pub const D3D12_FORMAT_SUPPORT1_TEXTURE3D: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(64i32);
17475#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17476pub const D3D12_FORMAT_SUPPORT1_TEXTURECUBE: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(128i32);
17477#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17478pub const D3D12_FORMAT_SUPPORT1_SHADER_LOAD: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(256i32);
17479#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17480pub const D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(512i32);
17481#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17482pub const D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(1024i32);
17483#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17484pub const D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(2048i32);
17485#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17486pub const D3D12_FORMAT_SUPPORT1_MIP: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(4096i32);
17487#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17488pub const D3D12_FORMAT_SUPPORT1_RENDER_TARGET: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(16384i32);
17489#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17490pub const D3D12_FORMAT_SUPPORT1_BLENDABLE: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(32768i32);
17491#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17492pub const D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(65536i32);
17493#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17494pub const D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(262144i32);
17495#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17496pub const D3D12_FORMAT_SUPPORT1_DISPLAY: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(524288i32);
17497#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17498pub const D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(1048576i32);
17499#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17500pub const D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(2097152i32);
17501#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17502pub const D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(4194304i32);
17503#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17504pub const D3D12_FORMAT_SUPPORT1_SHADER_GATHER: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(8388608i32);
17505#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17506pub const D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(16777216i32);
17507#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17508pub const D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(33554432i32);
17509#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17510pub const D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(67108864i32);
17511#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17512pub const D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(134217728i32);
17513#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17514pub const D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(268435456i32);
17515#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17516pub const D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(536870912i32);
17517#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17518pub const D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER: D3D12_FORMAT_SUPPORT1 = D3D12_FORMAT_SUPPORT1(1073741824i32);
17519impl ::core::marker::Copy for D3D12_FORMAT_SUPPORT1 {}
17520impl ::core::clone::Clone for D3D12_FORMAT_SUPPORT1 {
17521 fn clone(&self) -> Self {
17522 *self
17523 }
17524}
17525impl ::core::default::Default for D3D12_FORMAT_SUPPORT1 {
17526 fn default() -> Self {
17527 Self(0)
17528 }
17529}
17530impl ::windows::core::TypeKind for D3D12_FORMAT_SUPPORT1 {
17531 type TypeKind = ::windows::core::CopyType;
17532}
17533impl ::core::fmt::Debug for D3D12_FORMAT_SUPPORT1 {
17534 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17535 f.debug_tuple("D3D12_FORMAT_SUPPORT1").field(&self.0).finish()
17536 }
17537}
17538impl D3D12_FORMAT_SUPPORT1 {
17539 pub const fn contains(&self, other: Self) -> bool {
17540 self.0 & other.0 == other.0
17541 }
17542}
17543impl ::core::ops::BitOr for D3D12_FORMAT_SUPPORT1 {
17544 type Output = Self;
17545 fn bitor(self, other: Self) -> Self {
17546 Self(self.0 | other.0)
17547 }
17548}
17549impl ::core::ops::BitAnd for D3D12_FORMAT_SUPPORT1 {
17550 type Output = Self;
17551 fn bitand(self, other: Self) -> Self {
17552 Self(self.0 & other.0)
17553 }
17554}
17555impl ::core::ops::BitOrAssign for D3D12_FORMAT_SUPPORT1 {
17556 fn bitor_assign(&mut self, other: Self) {
17557 self.0.bitor_assign(other.0)
17558 }
17559}
17560impl ::core::ops::BitAndAssign for D3D12_FORMAT_SUPPORT1 {
17561 fn bitand_assign(&mut self, other: Self) {
17562 self.0.bitand_assign(other.0)
17563 }
17564}
17565impl ::core::ops::Not for D3D12_FORMAT_SUPPORT1 {
17566 type Output = Self;
17567 fn not(self) -> Self {
17568 Self(self.0.not())
17569 }
17570}
17571#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17572#[repr(transparent)]
17573#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17574pub struct D3D12_FORMAT_SUPPORT2(pub i32);
17575#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17576pub const D3D12_FORMAT_SUPPORT2_NONE: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(0i32);
17577#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17578pub const D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(1i32);
17579#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17580pub const D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(2i32);
17581#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17582pub const D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(4i32);
17583#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17584pub const D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(8i32);
17585#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17586pub const D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(16i32);
17587#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17588pub const D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(32i32);
17589#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17590pub const D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(64i32);
17591#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17592pub const D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(128i32);
17593#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17594pub const D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(256i32);
17595#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17596pub const D3D12_FORMAT_SUPPORT2_TILED: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(512i32);
17597#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17598pub const D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(16384i32);
17599#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17600pub const D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK: D3D12_FORMAT_SUPPORT2 = D3D12_FORMAT_SUPPORT2(32768i32);
17601impl ::core::marker::Copy for D3D12_FORMAT_SUPPORT2 {}
17602impl ::core::clone::Clone for D3D12_FORMAT_SUPPORT2 {
17603 fn clone(&self) -> Self {
17604 *self
17605 }
17606}
17607impl ::core::default::Default for D3D12_FORMAT_SUPPORT2 {
17608 fn default() -> Self {
17609 Self(0)
17610 }
17611}
17612impl ::windows::core::TypeKind for D3D12_FORMAT_SUPPORT2 {
17613 type TypeKind = ::windows::core::CopyType;
17614}
17615impl ::core::fmt::Debug for D3D12_FORMAT_SUPPORT2 {
17616 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17617 f.debug_tuple("D3D12_FORMAT_SUPPORT2").field(&self.0).finish()
17618 }
17619}
17620impl D3D12_FORMAT_SUPPORT2 {
17621 pub const fn contains(&self, other: Self) -> bool {
17622 self.0 & other.0 == other.0
17623 }
17624}
17625impl ::core::ops::BitOr for D3D12_FORMAT_SUPPORT2 {
17626 type Output = Self;
17627 fn bitor(self, other: Self) -> Self {
17628 Self(self.0 | other.0)
17629 }
17630}
17631impl ::core::ops::BitAnd for D3D12_FORMAT_SUPPORT2 {
17632 type Output = Self;
17633 fn bitand(self, other: Self) -> Self {
17634 Self(self.0 & other.0)
17635 }
17636}
17637impl ::core::ops::BitOrAssign for D3D12_FORMAT_SUPPORT2 {
17638 fn bitor_assign(&mut self, other: Self) {
17639 self.0.bitor_assign(other.0)
17640 }
17641}
17642impl ::core::ops::BitAndAssign for D3D12_FORMAT_SUPPORT2 {
17643 fn bitand_assign(&mut self, other: Self) {
17644 self.0.bitand_assign(other.0)
17645 }
17646}
17647impl ::core::ops::Not for D3D12_FORMAT_SUPPORT2 {
17648 type Output = Self;
17649 fn not(self) -> Self {
17650 Self(self.0.not())
17651 }
17652}
17653#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17654#[repr(transparent)]
17655#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17656pub struct D3D12_GPU_BASED_VALIDATION_FLAGS(pub i32);
17657#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17658pub const D3D12_GPU_BASED_VALIDATION_FLAGS_NONE: D3D12_GPU_BASED_VALIDATION_FLAGS = D3D12_GPU_BASED_VALIDATION_FLAGS(0i32);
17659#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17660pub const D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING: D3D12_GPU_BASED_VALIDATION_FLAGS = D3D12_GPU_BASED_VALIDATION_FLAGS(1i32);
17661impl ::core::marker::Copy for D3D12_GPU_BASED_VALIDATION_FLAGS {}
17662impl ::core::clone::Clone for D3D12_GPU_BASED_VALIDATION_FLAGS {
17663 fn clone(&self) -> Self {
17664 *self
17665 }
17666}
17667impl ::core::default::Default for D3D12_GPU_BASED_VALIDATION_FLAGS {
17668 fn default() -> Self {
17669 Self(0)
17670 }
17671}
17672impl ::windows::core::TypeKind for D3D12_GPU_BASED_VALIDATION_FLAGS {
17673 type TypeKind = ::windows::core::CopyType;
17674}
17675impl ::core::fmt::Debug for D3D12_GPU_BASED_VALIDATION_FLAGS {
17676 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17677 f.debug_tuple("D3D12_GPU_BASED_VALIDATION_FLAGS").field(&self.0).finish()
17678 }
17679}
17680impl D3D12_GPU_BASED_VALIDATION_FLAGS {
17681 pub const fn contains(&self, other: Self) -> bool {
17682 self.0 & other.0 == other.0
17683 }
17684}
17685impl ::core::ops::BitOr for D3D12_GPU_BASED_VALIDATION_FLAGS {
17686 type Output = Self;
17687 fn bitor(self, other: Self) -> Self {
17688 Self(self.0 | other.0)
17689 }
17690}
17691impl ::core::ops::BitAnd for D3D12_GPU_BASED_VALIDATION_FLAGS {
17692 type Output = Self;
17693 fn bitand(self, other: Self) -> Self {
17694 Self(self.0 & other.0)
17695 }
17696}
17697impl ::core::ops::BitOrAssign for D3D12_GPU_BASED_VALIDATION_FLAGS {
17698 fn bitor_assign(&mut self, other: Self) {
17699 self.0.bitor_assign(other.0)
17700 }
17701}
17702impl ::core::ops::BitAndAssign for D3D12_GPU_BASED_VALIDATION_FLAGS {
17703 fn bitand_assign(&mut self, other: Self) {
17704 self.0.bitand_assign(other.0)
17705 }
17706}
17707impl ::core::ops::Not for D3D12_GPU_BASED_VALIDATION_FLAGS {
17708 type Output = Self;
17709 fn not(self) -> Self {
17710 Self(self.0.not())
17711 }
17712}
17713#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17714#[repr(transparent)]
17715#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17716pub struct D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(pub i32);
17717#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17718pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE: D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(0i32);
17719#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17720pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS: D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(1i32);
17721#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17722pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS: D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(2i32);
17723#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17724pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS: D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(4i32);
17725#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17726pub const D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK: D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS = D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS(7i32);
17727impl ::core::marker::Copy for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {}
17728impl ::core::clone::Clone for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17729 fn clone(&self) -> Self {
17730 *self
17731 }
17732}
17733impl ::core::default::Default for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17734 fn default() -> Self {
17735 Self(0)
17736 }
17737}
17738impl ::windows::core::TypeKind for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17739 type TypeKind = ::windows::core::CopyType;
17740}
17741impl ::core::fmt::Debug for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17742 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17743 f.debug_tuple("D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS").field(&self.0).finish()
17744 }
17745}
17746impl D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17747 pub const fn contains(&self, other: Self) -> bool {
17748 self.0 & other.0 == other.0
17749 }
17750}
17751impl ::core::ops::BitOr for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17752 type Output = Self;
17753 fn bitor(self, other: Self) -> Self {
17754 Self(self.0 | other.0)
17755 }
17756}
17757impl ::core::ops::BitAnd for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17758 type Output = Self;
17759 fn bitand(self, other: Self) -> Self {
17760 Self(self.0 & other.0)
17761 }
17762}
17763impl ::core::ops::BitOrAssign for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17764 fn bitor_assign(&mut self, other: Self) {
17765 self.0.bitor_assign(other.0)
17766 }
17767}
17768impl ::core::ops::BitAndAssign for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17769 fn bitand_assign(&mut self, other: Self) {
17770 self.0.bitand_assign(other.0)
17771 }
17772}
17773impl ::core::ops::Not for D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS {
17774 type Output = Self;
17775 fn not(self) -> Self {
17776 Self(self.0.not())
17777 }
17778}
17779#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17780#[repr(transparent)]
17781#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17782pub struct D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE(pub i32);
17783#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17784pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE(0i32);
17785#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17786pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE(1i32);
17787#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17788pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE(2i32);
17789#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17790pub const D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE(3i32);
17791#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17792pub const NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE = D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE(4i32);
17793impl ::core::marker::Copy for D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {}
17794impl ::core::clone::Clone for D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
17795 fn clone(&self) -> Self {
17796 *self
17797 }
17798}
17799impl ::core::default::Default for D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
17800 fn default() -> Self {
17801 Self(0)
17802 }
17803}
17804impl ::windows::core::TypeKind for D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
17805 type TypeKind = ::windows::core::CopyType;
17806}
17807impl ::core::fmt::Debug for D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
17808 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17809 f.debug_tuple("D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE").field(&self.0).finish()
17810 }
17811}
17812#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17813#[repr(transparent)]
17814#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17815pub struct D3D12_GRAPHICS_STATES(pub i32);
17816#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17817pub const D3D12_GRAPHICS_STATE_NONE: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(0i32);
17818#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17819pub const D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(1i32);
17820#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17821pub const D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(2i32);
17822#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17823pub const D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(4i32);
17824#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17825pub const D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(8i32);
17826#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17827pub const D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(16i32);
17828#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17829pub const D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(32i32);
17830#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17831pub const D3D12_GRAPHICS_STATE_RS_VIEWPORTS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(64i32);
17832#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17833pub const D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(128i32);
17834#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17835pub const D3D12_GRAPHICS_STATE_PREDICATION: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(256i32);
17836#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17837pub const D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(512i32);
17838#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17839pub const D3D12_GRAPHICS_STATE_OM_STENCIL_REF: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(1024i32);
17840#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17841pub const D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(2048i32);
17842#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17843pub const D3D12_GRAPHICS_STATE_PIPELINE_STATE: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(4096i32);
17844#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17845pub const D3D12_GRAPHICS_STATE_SO_TARGETS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(8192i32);
17846#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17847pub const D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(16384i32);
17848#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17849pub const D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(32768i32);
17850#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17851pub const D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK: D3D12_GRAPHICS_STATES = D3D12_GRAPHICS_STATES(65536i32);
17852impl ::core::marker::Copy for D3D12_GRAPHICS_STATES {}
17853impl ::core::clone::Clone for D3D12_GRAPHICS_STATES {
17854 fn clone(&self) -> Self {
17855 *self
17856 }
17857}
17858impl ::core::default::Default for D3D12_GRAPHICS_STATES {
17859 fn default() -> Self {
17860 Self(0)
17861 }
17862}
17863impl ::windows::core::TypeKind for D3D12_GRAPHICS_STATES {
17864 type TypeKind = ::windows::core::CopyType;
17865}
17866impl ::core::fmt::Debug for D3D12_GRAPHICS_STATES {
17867 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17868 f.debug_tuple("D3D12_GRAPHICS_STATES").field(&self.0).finish()
17869 }
17870}
17871impl D3D12_GRAPHICS_STATES {
17872 pub const fn contains(&self, other: Self) -> bool {
17873 self.0 & other.0 == other.0
17874 }
17875}
17876impl ::core::ops::BitOr for D3D12_GRAPHICS_STATES {
17877 type Output = Self;
17878 fn bitor(self, other: Self) -> Self {
17879 Self(self.0 | other.0)
17880 }
17881}
17882impl ::core::ops::BitAnd for D3D12_GRAPHICS_STATES {
17883 type Output = Self;
17884 fn bitand(self, other: Self) -> Self {
17885 Self(self.0 & other.0)
17886 }
17887}
17888impl ::core::ops::BitOrAssign for D3D12_GRAPHICS_STATES {
17889 fn bitor_assign(&mut self, other: Self) {
17890 self.0.bitor_assign(other.0)
17891 }
17892}
17893impl ::core::ops::BitAndAssign for D3D12_GRAPHICS_STATES {
17894 fn bitand_assign(&mut self, other: Self) {
17895 self.0.bitand_assign(other.0)
17896 }
17897}
17898impl ::core::ops::Not for D3D12_GRAPHICS_STATES {
17899 type Output = Self;
17900 fn not(self) -> Self {
17901 Self(self.0.not())
17902 }
17903}
17904#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17905#[repr(transparent)]
17906#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17907pub struct D3D12_HEAP_FLAGS(pub i32);
17908#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17909pub const D3D12_HEAP_FLAG_NONE: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(0i32);
17910#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17911pub const D3D12_HEAP_FLAG_SHARED: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(1i32);
17912#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17913pub const D3D12_HEAP_FLAG_DENY_BUFFERS: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(4i32);
17914#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17915pub const D3D12_HEAP_FLAG_ALLOW_DISPLAY: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(8i32);
17916#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17917pub const D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(32i32);
17918#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17919pub const D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(64i32);
17920#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17921pub const D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(128i32);
17922#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17923pub const D3D12_HEAP_FLAG_HARDWARE_PROTECTED: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(256i32);
17924#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17925pub const D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(512i32);
17926#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17927pub const D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(1024i32);
17928#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17929pub const D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(2048i32);
17930#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17931pub const D3D12_HEAP_FLAG_CREATE_NOT_ZEROED: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(4096i32);
17932#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17933pub const D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(0i32);
17934#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17935pub const D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(192i32);
17936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17937pub const D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(68i32);
17938#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17939pub const D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES: D3D12_HEAP_FLAGS = D3D12_HEAP_FLAGS(132i32);
17940impl ::core::marker::Copy for D3D12_HEAP_FLAGS {}
17941impl ::core::clone::Clone for D3D12_HEAP_FLAGS {
17942 fn clone(&self) -> Self {
17943 *self
17944 }
17945}
17946impl ::core::default::Default for D3D12_HEAP_FLAGS {
17947 fn default() -> Self {
17948 Self(0)
17949 }
17950}
17951impl ::windows::core::TypeKind for D3D12_HEAP_FLAGS {
17952 type TypeKind = ::windows::core::CopyType;
17953}
17954impl ::core::fmt::Debug for D3D12_HEAP_FLAGS {
17955 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
17956 f.debug_tuple("D3D12_HEAP_FLAGS").field(&self.0).finish()
17957 }
17958}
17959impl D3D12_HEAP_FLAGS {
17960 pub const fn contains(&self, other: Self) -> bool {
17961 self.0 & other.0 == other.0
17962 }
17963}
17964impl ::core::ops::BitOr for D3D12_HEAP_FLAGS {
17965 type Output = Self;
17966 fn bitor(self, other: Self) -> Self {
17967 Self(self.0 | other.0)
17968 }
17969}
17970impl ::core::ops::BitAnd for D3D12_HEAP_FLAGS {
17971 type Output = Self;
17972 fn bitand(self, other: Self) -> Self {
17973 Self(self.0 & other.0)
17974 }
17975}
17976impl ::core::ops::BitOrAssign for D3D12_HEAP_FLAGS {
17977 fn bitor_assign(&mut self, other: Self) {
17978 self.0.bitor_assign(other.0)
17979 }
17980}
17981impl ::core::ops::BitAndAssign for D3D12_HEAP_FLAGS {
17982 fn bitand_assign(&mut self, other: Self) {
17983 self.0.bitand_assign(other.0)
17984 }
17985}
17986impl ::core::ops::Not for D3D12_HEAP_FLAGS {
17987 type Output = Self;
17988 fn not(self) -> Self {
17989 Self(self.0.not())
17990 }
17991}
17992#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17993#[repr(transparent)]
17994#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
17995pub struct D3D12_HEAP_SERIALIZATION_TIER(pub i32);
17996#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17997pub const D3D12_HEAP_SERIALIZATION_TIER_0: D3D12_HEAP_SERIALIZATION_TIER = D3D12_HEAP_SERIALIZATION_TIER(0i32);
17998#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
17999pub const D3D12_HEAP_SERIALIZATION_TIER_10: D3D12_HEAP_SERIALIZATION_TIER = D3D12_HEAP_SERIALIZATION_TIER(10i32);
18000impl ::core::marker::Copy for D3D12_HEAP_SERIALIZATION_TIER {}
18001impl ::core::clone::Clone for D3D12_HEAP_SERIALIZATION_TIER {
18002 fn clone(&self) -> Self {
18003 *self
18004 }
18005}
18006impl ::core::default::Default for D3D12_HEAP_SERIALIZATION_TIER {
18007 fn default() -> Self {
18008 Self(0)
18009 }
18010}
18011impl ::windows::core::TypeKind for D3D12_HEAP_SERIALIZATION_TIER {
18012 type TypeKind = ::windows::core::CopyType;
18013}
18014impl ::core::fmt::Debug for D3D12_HEAP_SERIALIZATION_TIER {
18015 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18016 f.debug_tuple("D3D12_HEAP_SERIALIZATION_TIER").field(&self.0).finish()
18017 }
18018}
18019#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18020#[repr(transparent)]
18021#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18022pub struct D3D12_HEAP_TYPE(pub i32);
18023#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18024pub const D3D12_HEAP_TYPE_DEFAULT: D3D12_HEAP_TYPE = D3D12_HEAP_TYPE(1i32);
18025#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18026pub const D3D12_HEAP_TYPE_UPLOAD: D3D12_HEAP_TYPE = D3D12_HEAP_TYPE(2i32);
18027#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18028pub const D3D12_HEAP_TYPE_READBACK: D3D12_HEAP_TYPE = D3D12_HEAP_TYPE(3i32);
18029#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18030pub const D3D12_HEAP_TYPE_CUSTOM: D3D12_HEAP_TYPE = D3D12_HEAP_TYPE(4i32);
18031impl ::core::marker::Copy for D3D12_HEAP_TYPE {}
18032impl ::core::clone::Clone for D3D12_HEAP_TYPE {
18033 fn clone(&self) -> Self {
18034 *self
18035 }
18036}
18037impl ::core::default::Default for D3D12_HEAP_TYPE {
18038 fn default() -> Self {
18039 Self(0)
18040 }
18041}
18042impl ::windows::core::TypeKind for D3D12_HEAP_TYPE {
18043 type TypeKind = ::windows::core::CopyType;
18044}
18045impl ::core::fmt::Debug for D3D12_HEAP_TYPE {
18046 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18047 f.debug_tuple("D3D12_HEAP_TYPE").field(&self.0).finish()
18048 }
18049}
18050#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18051#[repr(transparent)]
18052#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18053pub struct D3D12_HIT_GROUP_TYPE(pub i32);
18054#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18055pub const D3D12_HIT_GROUP_TYPE_TRIANGLES: D3D12_HIT_GROUP_TYPE = D3D12_HIT_GROUP_TYPE(0i32);
18056#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18057pub const D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE: D3D12_HIT_GROUP_TYPE = D3D12_HIT_GROUP_TYPE(1i32);
18058impl ::core::marker::Copy for D3D12_HIT_GROUP_TYPE {}
18059impl ::core::clone::Clone for D3D12_HIT_GROUP_TYPE {
18060 fn clone(&self) -> Self {
18061 *self
18062 }
18063}
18064impl ::core::default::Default for D3D12_HIT_GROUP_TYPE {
18065 fn default() -> Self {
18066 Self(0)
18067 }
18068}
18069impl ::windows::core::TypeKind for D3D12_HIT_GROUP_TYPE {
18070 type TypeKind = ::windows::core::CopyType;
18071}
18072impl ::core::fmt::Debug for D3D12_HIT_GROUP_TYPE {
18073 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18074 f.debug_tuple("D3D12_HIT_GROUP_TYPE").field(&self.0).finish()
18075 }
18076}
18077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18078#[repr(transparent)]
18079#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18080pub struct D3D12_HIT_KIND(pub i32);
18081#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18082pub const D3D12_HIT_KIND_TRIANGLE_FRONT_FACE: D3D12_HIT_KIND = D3D12_HIT_KIND(254i32);
18083#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18084pub const D3D12_HIT_KIND_TRIANGLE_BACK_FACE: D3D12_HIT_KIND = D3D12_HIT_KIND(255i32);
18085impl ::core::marker::Copy for D3D12_HIT_KIND {}
18086impl ::core::clone::Clone for D3D12_HIT_KIND {
18087 fn clone(&self) -> Self {
18088 *self
18089 }
18090}
18091impl ::core::default::Default for D3D12_HIT_KIND {
18092 fn default() -> Self {
18093 Self(0)
18094 }
18095}
18096impl ::windows::core::TypeKind for D3D12_HIT_KIND {
18097 type TypeKind = ::windows::core::CopyType;
18098}
18099impl ::core::fmt::Debug for D3D12_HIT_KIND {
18100 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18101 f.debug_tuple("D3D12_HIT_KIND").field(&self.0).finish()
18102 }
18103}
18104#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18105#[repr(transparent)]
18106#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18107pub struct D3D12_INDEX_BUFFER_STRIP_CUT_VALUE(pub i32);
18108#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18109pub const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE(0i32);
18110#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18111pub const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE(1i32);
18112#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18113pub const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE = D3D12_INDEX_BUFFER_STRIP_CUT_VALUE(2i32);
18114impl ::core::marker::Copy for D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {}
18115impl ::core::clone::Clone for D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
18116 fn clone(&self) -> Self {
18117 *self
18118 }
18119}
18120impl ::core::default::Default for D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
18121 fn default() -> Self {
18122 Self(0)
18123 }
18124}
18125impl ::windows::core::TypeKind for D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
18126 type TypeKind = ::windows::core::CopyType;
18127}
18128impl ::core::fmt::Debug for D3D12_INDEX_BUFFER_STRIP_CUT_VALUE {
18129 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18130 f.debug_tuple("D3D12_INDEX_BUFFER_STRIP_CUT_VALUE").field(&self.0).finish()
18131 }
18132}
18133#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18134#[repr(transparent)]
18135#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18136pub struct D3D12_INDIRECT_ARGUMENT_TYPE(pub i32);
18137#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18138pub const D3D12_INDIRECT_ARGUMENT_TYPE_DRAW: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(0i32);
18139#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18140pub const D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(1i32);
18141#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18142pub const D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(2i32);
18143#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18144pub const D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(3i32);
18145#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18146pub const D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(4i32);
18147#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18148pub const D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(5i32);
18149#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18150pub const D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(6i32);
18151#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18152pub const D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(7i32);
18153#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18154pub const D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(8i32);
18155#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18156pub const D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(9i32);
18157#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18158pub const D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH: D3D12_INDIRECT_ARGUMENT_TYPE = D3D12_INDIRECT_ARGUMENT_TYPE(10i32);
18159impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_TYPE {}
18160impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_TYPE {
18161 fn clone(&self) -> Self {
18162 *self
18163 }
18164}
18165impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_TYPE {
18166 fn default() -> Self {
18167 Self(0)
18168 }
18169}
18170impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_TYPE {
18171 type TypeKind = ::windows::core::CopyType;
18172}
18173impl ::core::fmt::Debug for D3D12_INDIRECT_ARGUMENT_TYPE {
18174 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18175 f.debug_tuple("D3D12_INDIRECT_ARGUMENT_TYPE").field(&self.0).finish()
18176 }
18177}
18178#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18179#[repr(transparent)]
18180#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18181pub struct D3D12_INPUT_CLASSIFICATION(pub i32);
18182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18183pub const D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA: D3D12_INPUT_CLASSIFICATION = D3D12_INPUT_CLASSIFICATION(0i32);
18184#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18185pub const D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA: D3D12_INPUT_CLASSIFICATION = D3D12_INPUT_CLASSIFICATION(1i32);
18186impl ::core::marker::Copy for D3D12_INPUT_CLASSIFICATION {}
18187impl ::core::clone::Clone for D3D12_INPUT_CLASSIFICATION {
18188 fn clone(&self) -> Self {
18189 *self
18190 }
18191}
18192impl ::core::default::Default for D3D12_INPUT_CLASSIFICATION {
18193 fn default() -> Self {
18194 Self(0)
18195 }
18196}
18197impl ::windows::core::TypeKind for D3D12_INPUT_CLASSIFICATION {
18198 type TypeKind = ::windows::core::CopyType;
18199}
18200impl ::core::fmt::Debug for D3D12_INPUT_CLASSIFICATION {
18201 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18202 f.debug_tuple("D3D12_INPUT_CLASSIFICATION").field(&self.0).finish()
18203 }
18204}
18205#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18206#[repr(transparent)]
18207#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18208pub struct D3D12_LIFETIME_STATE(pub i32);
18209#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18210pub const D3D12_LIFETIME_STATE_IN_USE: D3D12_LIFETIME_STATE = D3D12_LIFETIME_STATE(0i32);
18211#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18212pub const D3D12_LIFETIME_STATE_NOT_IN_USE: D3D12_LIFETIME_STATE = D3D12_LIFETIME_STATE(1i32);
18213impl ::core::marker::Copy for D3D12_LIFETIME_STATE {}
18214impl ::core::clone::Clone for D3D12_LIFETIME_STATE {
18215 fn clone(&self) -> Self {
18216 *self
18217 }
18218}
18219impl ::core::default::Default for D3D12_LIFETIME_STATE {
18220 fn default() -> Self {
18221 Self(0)
18222 }
18223}
18224impl ::windows::core::TypeKind for D3D12_LIFETIME_STATE {
18225 type TypeKind = ::windows::core::CopyType;
18226}
18227impl ::core::fmt::Debug for D3D12_LIFETIME_STATE {
18228 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18229 f.debug_tuple("D3D12_LIFETIME_STATE").field(&self.0).finish()
18230 }
18231}
18232#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18233#[repr(transparent)]
18234#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18235pub struct D3D12_LOGIC_OP(pub i32);
18236#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18237pub const D3D12_LOGIC_OP_CLEAR: D3D12_LOGIC_OP = D3D12_LOGIC_OP(0i32);
18238#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18239pub const D3D12_LOGIC_OP_SET: D3D12_LOGIC_OP = D3D12_LOGIC_OP(1i32);
18240#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18241pub const D3D12_LOGIC_OP_COPY: D3D12_LOGIC_OP = D3D12_LOGIC_OP(2i32);
18242#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18243pub const D3D12_LOGIC_OP_COPY_INVERTED: D3D12_LOGIC_OP = D3D12_LOGIC_OP(3i32);
18244#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18245pub const D3D12_LOGIC_OP_NOOP: D3D12_LOGIC_OP = D3D12_LOGIC_OP(4i32);
18246#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18247pub const D3D12_LOGIC_OP_INVERT: D3D12_LOGIC_OP = D3D12_LOGIC_OP(5i32);
18248#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18249pub const D3D12_LOGIC_OP_AND: D3D12_LOGIC_OP = D3D12_LOGIC_OP(6i32);
18250#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18251pub const D3D12_LOGIC_OP_NAND: D3D12_LOGIC_OP = D3D12_LOGIC_OP(7i32);
18252#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18253pub const D3D12_LOGIC_OP_OR: D3D12_LOGIC_OP = D3D12_LOGIC_OP(8i32);
18254#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18255pub const D3D12_LOGIC_OP_NOR: D3D12_LOGIC_OP = D3D12_LOGIC_OP(9i32);
18256#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18257pub const D3D12_LOGIC_OP_XOR: D3D12_LOGIC_OP = D3D12_LOGIC_OP(10i32);
18258#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18259pub const D3D12_LOGIC_OP_EQUIV: D3D12_LOGIC_OP = D3D12_LOGIC_OP(11i32);
18260#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18261pub const D3D12_LOGIC_OP_AND_REVERSE: D3D12_LOGIC_OP = D3D12_LOGIC_OP(12i32);
18262#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18263pub const D3D12_LOGIC_OP_AND_INVERTED: D3D12_LOGIC_OP = D3D12_LOGIC_OP(13i32);
18264#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18265pub const D3D12_LOGIC_OP_OR_REVERSE: D3D12_LOGIC_OP = D3D12_LOGIC_OP(14i32);
18266#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18267pub const D3D12_LOGIC_OP_OR_INVERTED: D3D12_LOGIC_OP = D3D12_LOGIC_OP(15i32);
18268impl ::core::marker::Copy for D3D12_LOGIC_OP {}
18269impl ::core::clone::Clone for D3D12_LOGIC_OP {
18270 fn clone(&self) -> Self {
18271 *self
18272 }
18273}
18274impl ::core::default::Default for D3D12_LOGIC_OP {
18275 fn default() -> Self {
18276 Self(0)
18277 }
18278}
18279impl ::windows::core::TypeKind for D3D12_LOGIC_OP {
18280 type TypeKind = ::windows::core::CopyType;
18281}
18282impl ::core::fmt::Debug for D3D12_LOGIC_OP {
18283 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18284 f.debug_tuple("D3D12_LOGIC_OP").field(&self.0).finish()
18285 }
18286}
18287#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18288#[repr(transparent)]
18289#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18290pub struct D3D12_MEASUREMENTS_ACTION(pub i32);
18291#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18292pub const D3D12_MEASUREMENTS_ACTION_KEEP_ALL: D3D12_MEASUREMENTS_ACTION = D3D12_MEASUREMENTS_ACTION(0i32);
18293#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18294pub const D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS: D3D12_MEASUREMENTS_ACTION = D3D12_MEASUREMENTS_ACTION(1i32);
18295#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18296pub const D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY: D3D12_MEASUREMENTS_ACTION = D3D12_MEASUREMENTS_ACTION(2i32);
18297#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18298pub const D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS: D3D12_MEASUREMENTS_ACTION = D3D12_MEASUREMENTS_ACTION(3i32);
18299impl ::core::marker::Copy for D3D12_MEASUREMENTS_ACTION {}
18300impl ::core::clone::Clone for D3D12_MEASUREMENTS_ACTION {
18301 fn clone(&self) -> Self {
18302 *self
18303 }
18304}
18305impl ::core::default::Default for D3D12_MEASUREMENTS_ACTION {
18306 fn default() -> Self {
18307 Self(0)
18308 }
18309}
18310impl ::windows::core::TypeKind for D3D12_MEASUREMENTS_ACTION {
18311 type TypeKind = ::windows::core::CopyType;
18312}
18313impl ::core::fmt::Debug for D3D12_MEASUREMENTS_ACTION {
18314 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18315 f.debug_tuple("D3D12_MEASUREMENTS_ACTION").field(&self.0).finish()
18316 }
18317}
18318#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18319#[repr(transparent)]
18320#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18321pub struct D3D12_MEMORY_POOL(pub i32);
18322#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18323pub const D3D12_MEMORY_POOL_UNKNOWN: D3D12_MEMORY_POOL = D3D12_MEMORY_POOL(0i32);
18324#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18325pub const D3D12_MEMORY_POOL_L0: D3D12_MEMORY_POOL = D3D12_MEMORY_POOL(1i32);
18326#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18327pub const D3D12_MEMORY_POOL_L1: D3D12_MEMORY_POOL = D3D12_MEMORY_POOL(2i32);
18328impl ::core::marker::Copy for D3D12_MEMORY_POOL {}
18329impl ::core::clone::Clone for D3D12_MEMORY_POOL {
18330 fn clone(&self) -> Self {
18331 *self
18332 }
18333}
18334impl ::core::default::Default for D3D12_MEMORY_POOL {
18335 fn default() -> Self {
18336 Self(0)
18337 }
18338}
18339impl ::windows::core::TypeKind for D3D12_MEMORY_POOL {
18340 type TypeKind = ::windows::core::CopyType;
18341}
18342impl ::core::fmt::Debug for D3D12_MEMORY_POOL {
18343 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18344 f.debug_tuple("D3D12_MEMORY_POOL").field(&self.0).finish()
18345 }
18346}
18347#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18348#[repr(transparent)]
18349#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18350pub struct D3D12_MESH_SHADER_TIER(pub i32);
18351#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18352pub const D3D12_MESH_SHADER_TIER_NOT_SUPPORTED: D3D12_MESH_SHADER_TIER = D3D12_MESH_SHADER_TIER(0i32);
18353#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18354pub const D3D12_MESH_SHADER_TIER_1: D3D12_MESH_SHADER_TIER = D3D12_MESH_SHADER_TIER(10i32);
18355impl ::core::marker::Copy for D3D12_MESH_SHADER_TIER {}
18356impl ::core::clone::Clone for D3D12_MESH_SHADER_TIER {
18357 fn clone(&self) -> Self {
18358 *self
18359 }
18360}
18361impl ::core::default::Default for D3D12_MESH_SHADER_TIER {
18362 fn default() -> Self {
18363 Self(0)
18364 }
18365}
18366impl ::windows::core::TypeKind for D3D12_MESH_SHADER_TIER {
18367 type TypeKind = ::windows::core::CopyType;
18368}
18369impl ::core::fmt::Debug for D3D12_MESH_SHADER_TIER {
18370 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18371 f.debug_tuple("D3D12_MESH_SHADER_TIER").field(&self.0).finish()
18372 }
18373}
18374#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18375#[repr(transparent)]
18376#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18377pub struct D3D12_MESSAGE_CALLBACK_FLAGS(pub i32);
18378#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18379pub const D3D12_MESSAGE_CALLBACK_FLAG_NONE: D3D12_MESSAGE_CALLBACK_FLAGS = D3D12_MESSAGE_CALLBACK_FLAGS(0i32);
18380#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18381pub const D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS: D3D12_MESSAGE_CALLBACK_FLAGS = D3D12_MESSAGE_CALLBACK_FLAGS(1i32);
18382impl ::core::marker::Copy for D3D12_MESSAGE_CALLBACK_FLAGS {}
18383impl ::core::clone::Clone for D3D12_MESSAGE_CALLBACK_FLAGS {
18384 fn clone(&self) -> Self {
18385 *self
18386 }
18387}
18388impl ::core::default::Default for D3D12_MESSAGE_CALLBACK_FLAGS {
18389 fn default() -> Self {
18390 Self(0)
18391 }
18392}
18393impl ::windows::core::TypeKind for D3D12_MESSAGE_CALLBACK_FLAGS {
18394 type TypeKind = ::windows::core::CopyType;
18395}
18396impl ::core::fmt::Debug for D3D12_MESSAGE_CALLBACK_FLAGS {
18397 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18398 f.debug_tuple("D3D12_MESSAGE_CALLBACK_FLAGS").field(&self.0).finish()
18399 }
18400}
18401impl D3D12_MESSAGE_CALLBACK_FLAGS {
18402 pub const fn contains(&self, other: Self) -> bool {
18403 self.0 & other.0 == other.0
18404 }
18405}
18406impl ::core::ops::BitOr for D3D12_MESSAGE_CALLBACK_FLAGS {
18407 type Output = Self;
18408 fn bitor(self, other: Self) -> Self {
18409 Self(self.0 | other.0)
18410 }
18411}
18412impl ::core::ops::BitAnd for D3D12_MESSAGE_CALLBACK_FLAGS {
18413 type Output = Self;
18414 fn bitand(self, other: Self) -> Self {
18415 Self(self.0 & other.0)
18416 }
18417}
18418impl ::core::ops::BitOrAssign for D3D12_MESSAGE_CALLBACK_FLAGS {
18419 fn bitor_assign(&mut self, other: Self) {
18420 self.0.bitor_assign(other.0)
18421 }
18422}
18423impl ::core::ops::BitAndAssign for D3D12_MESSAGE_CALLBACK_FLAGS {
18424 fn bitand_assign(&mut self, other: Self) {
18425 self.0.bitand_assign(other.0)
18426 }
18427}
18428impl ::core::ops::Not for D3D12_MESSAGE_CALLBACK_FLAGS {
18429 type Output = Self;
18430 fn not(self) -> Self {
18431 Self(self.0.not())
18432 }
18433}
18434#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18435#[repr(transparent)]
18436#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18437pub struct D3D12_MESSAGE_CATEGORY(pub i32);
18438#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18439pub const D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(0i32);
18440#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18441pub const D3D12_MESSAGE_CATEGORY_MISCELLANEOUS: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(1i32);
18442#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18443pub const D3D12_MESSAGE_CATEGORY_INITIALIZATION: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(2i32);
18444#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18445pub const D3D12_MESSAGE_CATEGORY_CLEANUP: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(3i32);
18446#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18447pub const D3D12_MESSAGE_CATEGORY_COMPILATION: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(4i32);
18448#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18449pub const D3D12_MESSAGE_CATEGORY_STATE_CREATION: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(5i32);
18450#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18451pub const D3D12_MESSAGE_CATEGORY_STATE_SETTING: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(6i32);
18452#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18453pub const D3D12_MESSAGE_CATEGORY_STATE_GETTING: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(7i32);
18454#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18455pub const D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(8i32);
18456#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18457pub const D3D12_MESSAGE_CATEGORY_EXECUTION: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(9i32);
18458#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18459pub const D3D12_MESSAGE_CATEGORY_SHADER: D3D12_MESSAGE_CATEGORY = D3D12_MESSAGE_CATEGORY(10i32);
18460impl ::core::marker::Copy for D3D12_MESSAGE_CATEGORY {}
18461impl ::core::clone::Clone for D3D12_MESSAGE_CATEGORY {
18462 fn clone(&self) -> Self {
18463 *self
18464 }
18465}
18466impl ::core::default::Default for D3D12_MESSAGE_CATEGORY {
18467 fn default() -> Self {
18468 Self(0)
18469 }
18470}
18471impl ::windows::core::TypeKind for D3D12_MESSAGE_CATEGORY {
18472 type TypeKind = ::windows::core::CopyType;
18473}
18474impl ::core::fmt::Debug for D3D12_MESSAGE_CATEGORY {
18475 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
18476 f.debug_tuple("D3D12_MESSAGE_CATEGORY").field(&self.0).finish()
18477 }
18478}
18479#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18480#[repr(transparent)]
18481#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
18482pub struct D3D12_MESSAGE_ID(pub i32);
18483#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18484pub const D3D12_MESSAGE_ID_UNKNOWN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(0i32);
18485#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18486pub const D3D12_MESSAGE_ID_STRING_FROM_APPLICATION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1i32);
18487#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18488pub const D3D12_MESSAGE_ID_CORRUPTED_THIS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(2i32);
18489#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18490pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(3i32);
18491#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18492pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(4i32);
18493#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18494pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(5i32);
18495#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18496pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(6i32);
18497#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18498pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(7i32);
18499#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18500pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(8i32);
18501#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18502pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(9i32);
18503#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18504pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(10i32);
18505#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18506pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(11i32);
18507#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18508pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(12i32);
18509#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18510pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(13i32);
18511#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18512pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(14i32);
18513#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18514pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(15i32);
18515#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18516pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(16i32);
18517#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18518pub const D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(17i32);
18519#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18520pub const D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(18i32);
18521#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18522pub const D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(19i32);
18523#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18524pub const D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(20i32);
18525#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18526pub const D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(21i32);
18527#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18528pub const D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(24i32);
18529#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18530pub const D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(25i32);
18531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18532pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(26i32);
18533#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18534pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(27i32);
18535#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18536pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(28i32);
18537#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18538pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(29i32);
18539#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18540pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(30i32);
18541#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18542pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(31i32);
18543#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18544pub const D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(32i32);
18545#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18546pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(35i32);
18547#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18548pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(36i32);
18549#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18550pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(37i32);
18551#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18552pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(38i32);
18553#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18554pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(39i32);
18555#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18556pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(40i32);
18557#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18558pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(41i32);
18559#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18560pub const D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(42i32);
18561#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18562pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(45i32);
18563#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18564pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(46i32);
18565#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18566pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(47i32);
18567#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18568pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(48i32);
18569#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18570pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(49i32);
18571#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18572pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(52i32);
18573#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18574pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(53i32);
18575#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18576pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(54i32);
18577#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18578pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(55i32);
18579#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18580pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(56i32);
18581#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18582pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(57i32);
18583#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18584pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(58i32);
18585#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18586pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(59i32);
18587#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18588pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(60i32);
18589#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18590pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(61i32);
18591#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18592pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(62i32);
18593#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18594pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(63i32);
18595#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18596pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(64i32);
18597#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18598pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(65i32);
18599#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18600pub const D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(66i32);
18601#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18602pub const D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(67i32);
18603#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18604pub const D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(68i32);
18605#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18606pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(69i32);
18607#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18608pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(70i32);
18609#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18610pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(71i32);
18611#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18612pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(72i32);
18613#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18614pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(73i32);
18615#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18616pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(74i32);
18617#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18618pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(75i32);
18619#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18620pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(76i32);
18621#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18622pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(79i32);
18623#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18624pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(80i32);
18625#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18626pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(81i32);
18627#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18628pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(82i32);
18629#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18630pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(83i32);
18631#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18632pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(84i32);
18633#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18634pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(85i32);
18635#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18636pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(86i32);
18637#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18638pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(87i32);
18639#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18640pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(88i32);
18641#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18642pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(89i32);
18643#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18644pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(90i32);
18645#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18646pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(91i32);
18647#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18648pub const D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(92i32);
18649#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18650pub const D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(93i32);
18651#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18652pub const D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(94i32);
18653#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18654pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(95i32);
18655#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18656pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(96i32);
18657#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18658pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(97i32);
18659#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18660pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(98i32);
18661#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18662pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(100i32);
18663#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18664pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(101i32);
18665#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18666pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(102i32);
18667#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18668pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(103i32);
18669#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18670pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(104i32);
18671#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18672pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(105i32);
18673#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18674pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(106i32);
18675#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18676pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(107i32);
18677#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18678pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(108i32);
18679#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18680pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(109i32);
18681#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18682pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(111i32);
18683#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18684pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(112i32);
18685#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18686pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(113i32);
18687#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18688pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(114i32);
18689#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18690pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(115i32);
18691#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18692pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(116i32);
18693#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18694pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(117i32);
18695#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18696pub const D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(135i32);
18697#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18698pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(200i32);
18699#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18700pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(201i32);
18701#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18702pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(202i32);
18703#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18704pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(209i32);
18705#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18706pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(210i32);
18707#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18708pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(211i32);
18709#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18710pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(212i32);
18711#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18712pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(213i32);
18713#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18714pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(219i32);
18715#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18716pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(221i32);
18717#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18718pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(222i32);
18719#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18720pub const D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(232i32);
18721#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18722pub const D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(233i32);
18723#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18724pub const D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(234i32);
18725#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18726pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(239i32);
18727#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18728pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(240i32);
18729#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18730pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(245i32);
18731#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18732pub const D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(253i32);
18733#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18734pub const D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(255i32);
18735#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18736pub const D3D12_MESSAGE_ID_LIVE_DEVICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(274i32);
18737#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18738pub const D3D12_MESSAGE_ID_LIVE_SWAPCHAIN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(275i32);
18739#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18740pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(276i32);
18741#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18742pub const D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(277i32);
18743#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18744pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(278i32);
18745#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18746pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(280i32);
18747#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18748pub const D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(283i32);
18749#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18750pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(284i32);
18751#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18752pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(285i32);
18753#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18754pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(286i32);
18755#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18756pub const D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(287i32);
18757#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18758pub const D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(289i32);
18759#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18760pub const D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(290i32);
18761#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18762pub const D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(291i32);
18763#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18764pub const D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(292i32);
18765#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18766pub const D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(294i32);
18767#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18768pub const D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(295i32);
18769#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18770pub const D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(296i32);
18771#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18772pub const D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(297i32);
18773#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18774pub const D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(310i32);
18775#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18776pub const D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(318i32);
18777#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18778pub const D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(321i32);
18779#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18780pub const D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(322i32);
18781#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18782pub const D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(323i32);
18783#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18784pub const D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(331i32);
18785#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18786pub const D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(332i32);
18787#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18788pub const D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(333i32);
18789#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18790pub const D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(334i32);
18791#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18792pub const D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(335i32);
18793#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18794pub const D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(336i32);
18795#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18796pub const D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(337i32);
18797#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18798pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(340i32);
18799#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18800pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(341i32);
18801#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18802pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(342i32);
18803#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18804pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(343i32);
18805#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18806pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(344i32);
18807#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18808pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(345i32);
18809#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18810pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(346i32);
18811#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18812pub const D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(354i32);
18813#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18814pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(401i32);
18815#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18816pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(403i32);
18817#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18818pub const D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(410i32);
18819#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18820pub const D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(412i32);
18821#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18822pub const D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(414i32);
18823#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18824pub const D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(416i32);
18825#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18826pub const D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(418i32);
18827#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18828pub const D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(420i32);
18829#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18830pub const D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(422i32);
18831#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18832pub const D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(425i32);
18833#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18834pub const D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(426i32);
18835#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18836pub const D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(427i32);
18837#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18838pub const D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(428i32);
18839#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18840pub const D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(429i32);
18841#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18842pub const D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(430i32);
18843#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18844pub const D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(431i32);
18845#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18846pub const D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(447i32);
18847#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18848pub const D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(448i32);
18849#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18850pub const D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(493i32);
18851#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18852pub const D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(494i32);
18853#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18854pub const D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(506i32);
18855#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18856pub const D3D12_MESSAGE_ID_CREATEDEVICE_WARNING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(507i32);
18857#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18858pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(519i32);
18859#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18860pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(520i32);
18861#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18862pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(521i32);
18863#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18864pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(522i32);
18865#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18866pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(523i32);
18867#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18868pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(524i32);
18869#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18870pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(525i32);
18871#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18872pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(526i32);
18873#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18874pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(527i32);
18875#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18876pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(528i32);
18877#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18878pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(529i32);
18879#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18880pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(530i32);
18881#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18882pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(531i32);
18883#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18884pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(532i32);
18885#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18886pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(533i32);
18887#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18888pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(534i32);
18889#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18890pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(535i32);
18891#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18892pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(536i32);
18893#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18894pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(537i32);
18895#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18896pub const D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(538i32);
18897#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18898pub const D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(540i32);
18899#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18900pub const D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(541i32);
18901#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18902pub const D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(542i32);
18903#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18904pub const D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(543i32);
18905#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18906pub const D3D12_MESSAGE_ID_COMMAND_LIST_OPEN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(544i32);
18907#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18908pub const D3D12_MESSAGE_ID_INVALID_BUNDLE_API: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(546i32);
18909#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18910pub const D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(547i32);
18911#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18912pub const D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(549i32);
18913#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18914pub const D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(552i32);
18915#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18916pub const D3D12_MESSAGE_ID_COMMAND_LIST_SYNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(553i32);
18917#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18918pub const D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(554i32);
18919#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18920pub const D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(557i32);
18921#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18922pub const D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(558i32);
18923#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18924pub const D3D12_MESSAGE_ID_CREATE_PIPELINESTATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(559i32);
18925#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18926pub const D3D12_MESSAGE_ID_CREATE_COMMANDLIST12: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(560i32);
18927#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18928pub const D3D12_MESSAGE_ID_CREATE_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(562i32);
18929#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18930pub const D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(563i32);
18931#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18932pub const D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(564i32);
18933#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18934pub const D3D12_MESSAGE_ID_CREATE_LIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(565i32);
18935#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18936pub const D3D12_MESSAGE_ID_CREATE_HEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(566i32);
18937#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18938pub const D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(567i32);
18939#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18940pub const D3D12_MESSAGE_ID_CREATE_QUERYHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(568i32);
18941#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18942pub const D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(569i32);
18943#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18944pub const D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(570i32);
18945#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18946pub const D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(571i32);
18947#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18948pub const D3D12_MESSAGE_ID_LIVE_PIPELINESTATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(572i32);
18949#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18950pub const D3D12_MESSAGE_ID_LIVE_COMMANDLIST12: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(573i32);
18951#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18952pub const D3D12_MESSAGE_ID_LIVE_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(575i32);
18953#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18954pub const D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(576i32);
18955#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18956pub const D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(577i32);
18957#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18958pub const D3D12_MESSAGE_ID_LIVE_LIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(578i32);
18959#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18960pub const D3D12_MESSAGE_ID_LIVE_HEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(579i32);
18961#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18962pub const D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(580i32);
18963#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18964pub const D3D12_MESSAGE_ID_LIVE_QUERYHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(581i32);
18965#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18966pub const D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(582i32);
18967#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18968pub const D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(583i32);
18969#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18970pub const D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(584i32);
18971#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18972pub const D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(585i32);
18973#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18974pub const D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(586i32);
18975#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18976pub const D3D12_MESSAGE_ID_DESTROY_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(588i32);
18977#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18978pub const D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(589i32);
18979#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18980pub const D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(590i32);
18981#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18982pub const D3D12_MESSAGE_ID_DESTROY_LIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(591i32);
18983#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18984pub const D3D12_MESSAGE_ID_DESTROY_HEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(592i32);
18985#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18986pub const D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(593i32);
18987#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18988pub const D3D12_MESSAGE_ID_DESTROY_QUERYHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(594i32);
18989#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18990pub const D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(595i32);
18991#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18992pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(597i32);
18993#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18994pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(599i32);
18995#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18996pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(602i32);
18997#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
18998pub const D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(603i32);
18999#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19000pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(604i32);
19001#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19002pub const D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(607i32);
19003#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19004pub const D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(608i32);
19005#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19006pub const D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(609i32);
19007#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19008pub const D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(610i32);
19009#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19010pub const D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(611i32);
19011#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19012pub const D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(613i32);
19013#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19014pub const D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(614i32);
19015#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19016pub const D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(615i32);
19017#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19018pub const D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(616i32);
19019#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19020pub const D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(622i32);
19021#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19022pub const D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(623i32);
19023#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19024pub const D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(624i32);
19025#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19026pub const D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(625i32);
19027#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19028pub const D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(626i32);
19029#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19030pub const D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(627i32);
19031#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19032pub const D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(628i32);
19033#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19034pub const D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(629i32);
19035#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19036pub const D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(630i32);
19037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19038pub const D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(631i32);
19039#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19040pub const D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(632i32);
19041#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19042pub const D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(633i32);
19043#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19044pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(634i32);
19045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19046pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(635i32);
19047#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19048pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(636i32);
19049#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19050pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(637i32);
19051#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19052pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(638i32);
19053#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19054pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(639i32);
19055#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19056pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(640i32);
19057#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19058pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(641i32);
19059#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19060pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(642i32);
19061#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19062pub const D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(643i32);
19063#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19064pub const D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(644i32);
19065#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19066pub const D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(645i32);
19067#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19068pub const D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(646i32);
19069#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19070pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(647i32);
19071#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19072pub const D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(649i32);
19073#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19074pub const D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(650i32);
19075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19076pub const D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(652i32);
19077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19078pub const D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(653i32);
19079#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19080pub const D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(654i32);
19081#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19082pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(655i32);
19083#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19084pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(656i32);
19085#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19086pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(657i32);
19087#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19088pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(658i32);
19089#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19090pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(659i32);
19091#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19092pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(660i32);
19093#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19094pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(661i32);
19095#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19096pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(662i32);
19097#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19098pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(663i32);
19099#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19100pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(664i32);
19101#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19102pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(665i32);
19103#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19104pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(666i32);
19105#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19106pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(667i32);
19107#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19108pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(668i32);
19109#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19110pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(669i32);
19111#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19112pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(670i32);
19113#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19114pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(671i32);
19115#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19116pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(672i32);
19117#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19118pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(673i32);
19119#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19120pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(674i32);
19121#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19122pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(675i32);
19123#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19124pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(676i32);
19125#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19126pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(677i32);
19127#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19128pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(678i32);
19129#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19130pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(679i32);
19131#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19132pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(680i32);
19133#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19134pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(681i32);
19135#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19136pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(682i32);
19137#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19138pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(683i32);
19139#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19140pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(684i32);
19141#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19142pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(685i32);
19143#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19144pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(686i32);
19145#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19146pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(687i32);
19147#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19148pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(688i32);
19149#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19150pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(689i32);
19151#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19152pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(690i32);
19153#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19154pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(691i32);
19155#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19156pub const D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(692i32);
19157#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19158pub const D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(693i32);
19159#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19160pub const D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(694i32);
19161#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19162pub const D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(695i32);
19163#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19164pub const D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(696i32);
19165#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19166pub const D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(697i32);
19167#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19168pub const D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(698i32);
19169#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19170pub const D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(699i32);
19171#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19172pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(700i32);
19173#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19174pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(701i32);
19175#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19176pub const D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(702i32);
19177#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19178pub const D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(703i32);
19179#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19180pub const D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(705i32);
19181#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19182pub const D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(708i32);
19183#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19184pub const D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(709i32);
19185#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19186pub const D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(710i32);
19187#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19188pub const D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(711i32);
19189#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19190pub const D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(712i32);
19191#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19192pub const D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(713i32);
19193#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19194pub const D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(715i32);
19195#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19196pub const D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(717i32);
19197#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19198pub const D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(718i32);
19199#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19200pub const D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(719i32);
19201#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19202pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(720i32);
19203#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19204pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(721i32);
19205#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19206pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(722i32);
19207#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19208pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(723i32);
19209#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19210pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(724i32);
19211#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19212pub const D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(725i32);
19213#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19214pub const D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(726i32);
19215#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19216pub const D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(727i32);
19217#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19218pub const D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(728i32);
19219#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19220pub const D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(729i32);
19221#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19222pub const D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(731i32);
19223#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19224pub const D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(732i32);
19225#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19226pub const D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(733i32);
19227#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19228pub const D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(734i32);
19229#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19230pub const D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(735i32);
19231#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19232pub const D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(737i32);
19233#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19234pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(738i32);
19235#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19236pub const D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(739i32);
19237#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19238pub const D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(740i32);
19239#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19240pub const D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(739i32);
19241#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19242pub const D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(740i32);
19243#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19244pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(741i32);
19245#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19246pub const D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(742i32);
19247#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19248pub const D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(743i32);
19249#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19250pub const D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(744i32);
19251#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19252pub const D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(745i32);
19253#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19254pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(815i32);
19255#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19256pub const D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(816i32);
19257#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19258pub const D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(817i32);
19259#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19260pub const D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(818i32);
19261#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19262pub const D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(820i32);
19263#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19264pub const D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(821i32);
19265#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19266pub const D3D12_MESSAGE_ID_MAP_INVALIDHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(822i32);
19267#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19268pub const D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(823i32);
19269#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19270pub const D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(824i32);
19271#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19272pub const D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(825i32);
19273#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19274pub const D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(826i32);
19275#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19276pub const D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(827i32);
19277#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19278pub const D3D12_MESSAGE_ID_MAP_INVALIDRANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(828i32);
19279#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19280pub const D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(829i32);
19281#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19282pub const D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(832i32);
19283#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19284pub const D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(833i32);
19285#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19286pub const D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(834i32);
19287#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19288pub const D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(835i32);
19289#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19290pub const D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(836i32);
19291#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19292pub const D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(837i32);
19293#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19294pub const D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(838i32);
19295#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19296pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(839i32);
19297#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19298pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(840i32);
19299#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19300pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(841i32);
19301#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19302pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(842i32);
19303#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19304pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(843i32);
19305#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19306pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(844i32);
19307#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19308pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(845i32);
19309#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19310pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(846i32);
19311#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19312pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(847i32);
19313#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19314pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(848i32);
19315#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19316pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(849i32);
19317#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19318pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(850i32);
19319#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19320pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(851i32);
19321#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19322pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(852i32);
19323#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19324pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(853i32);
19325#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19326pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(854i32);
19327#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19328pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(855i32);
19329#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19330pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(856i32);
19331#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19332pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(857i32);
19333#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19334pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(858i32);
19335#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19336pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(859i32);
19337#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19338pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(860i32);
19339#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19340pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(861i32);
19341#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19342pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(862i32);
19343#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19344pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(863i32);
19345#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19346pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(864i32);
19347#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19348pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(865i32);
19349#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19350pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(866i32);
19351#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19352pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(867i32);
19353#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19354pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(868i32);
19355#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19356pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(869i32);
19357#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19358pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(870i32);
19359#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19360pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(871i32);
19361#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19362pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(872i32);
19363#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19364pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(873i32);
19365#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19366pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(874i32);
19367#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19368pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(875i32);
19369#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19370pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(876i32);
19371#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19372pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(877i32);
19373#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19374pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(878i32);
19375#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19376pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(879i32);
19377#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19378pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(880i32);
19379#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19380pub const D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(881i32);
19381#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19382pub const D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(882i32);
19383#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19384pub const D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(883i32);
19385#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19386pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(884i32);
19387#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19388pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(885i32);
19389#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19390pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(886i32);
19391#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19392pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(887i32);
19393#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19394pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(888i32);
19395#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19396pub const D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(889i32);
19397#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19398pub const D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(890i32);
19399#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19400pub const D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(891i32);
19401#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19402pub const D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(892i32);
19403#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19404pub const D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(893i32);
19405#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19406pub const D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(894i32);
19407#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19408pub const D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(895i32);
19409#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19410pub const D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(896i32);
19411#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19412pub const D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(897i32);
19413#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19414pub const D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(898i32);
19415#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19416pub const D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(899i32);
19417#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19418pub const D3D12_MESSAGE_ID_INVALID_NODE_INDEX: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(900i32);
19419#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19420pub const D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(901i32);
19421#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19422pub const D3D12_MESSAGE_ID_NODE_MASK_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(902i32);
19423#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19424pub const D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(903i32);
19425#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19426pub const D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(904i32);
19427#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19428pub const D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(905i32);
19429#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19430pub const D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(906i32);
19431#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19432pub const D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(907i32);
19433#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19434pub const D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(908i32);
19435#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19436pub const D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(909i32);
19437#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19438pub const D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(910i32);
19439#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19440pub const D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(911i32);
19441#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19442pub const D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(912i32);
19443#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19444pub const D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(913i32);
19445#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19446pub const D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(914i32);
19447#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19448pub const D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(915i32);
19449#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19450pub const D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(916i32);
19451#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19452pub const D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(917i32);
19453#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19454pub const D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(918i32);
19455#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19456pub const D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(919i32);
19457#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19458pub const D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(920i32);
19459#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19460pub const D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(921i32);
19461#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19462pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(922i32);
19463#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19464pub const D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(923i32);
19465#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19466pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(924i32);
19467#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19468pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(925i32);
19469#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19470pub const D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(926i32);
19471#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19472pub const D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(927i32);
19473#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19474pub const D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(929i32);
19475#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19476pub const D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(930i32);
19477#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19478pub const D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(931i32);
19479#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19480pub const D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(932i32);
19481#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19482pub const D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(933i32);
19483#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19484pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(934i32);
19485#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19486pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(935i32);
19487#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19488pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(936i32);
19489#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19490pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(937i32);
19491#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19492pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(938i32);
19493#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19494pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(939i32);
19495#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19496pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(940i32);
19497#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19498pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(941i32);
19499#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19500pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(942i32);
19501#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19502pub const D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(943i32);
19503#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19504pub const D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(944i32);
19505#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19506pub const D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(945i32);
19507#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19508pub const D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(946i32);
19509#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19510pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(947i32);
19511#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19512pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(948i32);
19513#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19514pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(949i32);
19515#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19516pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(950i32);
19517#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19518pub const D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(951i32);
19519#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19520pub const D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(952i32);
19521#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19522pub const D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(953i32);
19523#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19524pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(954i32);
19525#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19526pub const D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(955i32);
19527#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19528pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(956i32);
19529#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19530pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(957i32);
19531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19532pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(958i32);
19533#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19534pub const D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(959i32);
19535#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19536pub const D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(960i32);
19537#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19538pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(961i32);
19539#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19540pub const D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(962i32);
19541#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19542pub const D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(963i32);
19543#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19544pub const D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(964i32);
19545#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19546pub const D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(965i32);
19547#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19548pub const D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(966i32);
19549#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19550pub const D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(967i32);
19551#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19552pub const D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(968i32);
19553#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19554pub const D3D12_MESSAGE_ID_STOREPIPELINE_NONAME: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(969i32);
19555#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19556pub const D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(970i32);
19557#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19558pub const D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(971i32);
19559#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19560pub const D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(972i32);
19561#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19562pub const D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(973i32);
19563#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19564pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(974i32);
19565#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19566pub const D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(975i32);
19567#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19568pub const D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(976i32);
19569#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19570pub const D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(977i32);
19571#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19572pub const D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(978i32);
19573#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19574pub const D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(979i32);
19575#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19576pub const D3D12_MESSAGE_ID_CREATE_VIDEODECODER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(980i32);
19577#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19578pub const D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(981i32);
19579#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19580pub const D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(982i32);
19581#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19582pub const D3D12_MESSAGE_ID_LIVE_VIDEODECODER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(983i32);
19583#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19584pub const D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(984i32);
19585#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19586pub const D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(985i32);
19587#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19588pub const D3D12_MESSAGE_ID_DESTROY_VIDEODECODER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(986i32);
19589#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19590pub const D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(987i32);
19591#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19592pub const D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(988i32);
19593#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19594pub const D3D12_MESSAGE_ID_DEPRECATED_API: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(989i32);
19595#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19596pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(990i32);
19597#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19598pub const D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(991i32);
19599#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19600pub const D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(992i32);
19601#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19602pub const D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(993i32);
19603#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19604pub const D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(994i32);
19605#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19606pub const D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(995i32);
19607#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19608pub const D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(996i32);
19609#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19610pub const D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(997i32);
19611#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19612pub const D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(998i32);
19613#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19614pub const D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(999i32);
19615#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19616pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1000i32);
19617#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19618pub const D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1001i32);
19619#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19620pub const D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1002i32);
19621#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19622pub const D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1003i32);
19623#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19624pub const D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1004i32);
19625#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19626pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1005i32);
19627#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19628pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1006i32);
19629#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19630pub const D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1007i32);
19631#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19632pub const D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1008i32);
19633#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19634pub const D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1009i32);
19635#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19636pub const D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1013i32);
19637#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19638pub const D3D12_MESSAGE_ID_BEGIN_EVENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1014i32);
19639#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19640pub const D3D12_MESSAGE_ID_END_EVENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1015i32);
19641#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19642pub const D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1016i32);
19643#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19644pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1017i32);
19645#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19646pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1018i32);
19647#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19648pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1019i32);
19649#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19650pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1020i32);
19651#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19652pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1021i32);
19653#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19654pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1022i32);
19655#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19656pub const D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1023i32);
19657#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19658pub const D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1024i32);
19659#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19660pub const D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1025i32);
19661#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19662pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1026i32);
19663#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19664pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1027i32);
19665#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19666pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1028i32);
19667#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19668pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1029i32);
19669#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19670pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1030i32);
19671#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19672pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1031i32);
19673#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19674pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1032i32);
19675#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19676pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1033i32);
19677#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19678pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1034i32);
19679#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19680pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1035i32);
19681#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19682pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1036i32);
19683#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19684pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1037i32);
19685#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19686pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1038i32);
19687#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19688pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1039i32);
19689#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19690pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1040i32);
19691#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19692pub const D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1041i32);
19693#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19694pub const D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1042i32);
19695#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19696pub const D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1043i32);
19697#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19698pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1044i32);
19699#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19700pub const D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1045i32);
19701#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19702pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1046i32);
19703#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19704pub const D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1047i32);
19705#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19706pub const D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1048i32);
19707#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19708pub const D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1049i32);
19709#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19710pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1050i32);
19711#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19712pub const D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1051i32);
19713#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19714pub const D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1052i32);
19715#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19716pub const D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1053i32);
19717#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19718pub const D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1054i32);
19719#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19720pub const D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1055i32);
19721#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19722pub const D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1056i32);
19723#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19724pub const D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1057i32);
19725#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19726pub const D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1058i32);
19727#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19728pub const D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1059i32);
19729#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19730pub const D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1060i32);
19731#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19732pub const D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1061i32);
19733#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19734pub const D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1062i32);
19735#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19736pub const D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1063i32);
19737#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19738pub const D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1064i32);
19739#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19740pub const D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1065i32);
19741#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19742pub const D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1066i32);
19743#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19744pub const D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1067i32);
19745#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19746pub const D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1068i32);
19747#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19748pub const D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1069i32);
19749#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19750pub const D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1070i32);
19751#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19752pub const D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1071i32);
19753#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19754pub const D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1072i32);
19755#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19756pub const D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1073i32);
19757#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19758pub const D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1074i32);
19759#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19760pub const D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1075i32);
19761#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19762pub const D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1076i32);
19763#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19764pub const D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1077i32);
19765#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19766pub const D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1078i32);
19767#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19768pub const D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1079i32);
19769#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19770pub const D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1080i32);
19771#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19772pub const D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1081i32);
19773#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19774pub const D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1082i32);
19775#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19776pub const D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1083i32);
19777#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19778pub const D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1084i32);
19779#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19780pub const D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1085i32);
19781#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19782pub const D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1086i32);
19783#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19784pub const D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1087i32);
19785#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19786pub const D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1088i32);
19787#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19788pub const D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1089i32);
19789#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19790pub const D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1090i32);
19791#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19792pub const D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1091i32);
19793#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19794pub const D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1092i32);
19795#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19796pub const D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1093i32);
19797#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19798pub const D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1094i32);
19799#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19800pub const D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1095i32);
19801#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19802pub const D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1096i32);
19803#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19804pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1097i32);
19805#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19806pub const D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1098i32);
19807#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19808pub const D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1099i32);
19809#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19810pub const D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1100i32);
19811#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19812pub const D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1101i32);
19813#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19814pub const D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1102i32);
19815#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19816pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1103i32);
19817#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19818pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1104i32);
19819#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19820pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1105i32);
19821#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19822pub const D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1106i32);
19823#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19824pub const D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1107i32);
19825#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19826pub const D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1108i32);
19827#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19828pub const D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1109i32);
19829#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19830pub const D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1110i32);
19831#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19832pub const D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1111i32);
19833#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19834pub const D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1112i32);
19835#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19836pub const D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1113i32);
19837#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19838pub const D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1114i32);
19839#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19840pub const D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1115i32);
19841#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19842pub const D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1116i32);
19843#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19844pub const D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1117i32);
19845#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19846pub const D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1118i32);
19847#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19848pub const D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1119i32);
19849#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19850pub const D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1120i32);
19851#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19852pub const D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1121i32);
19853#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19854pub const D3D12_MESSAGE_ID_CREATE_COMMANDPOOL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1122i32);
19855#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19856pub const D3D12_MESSAGE_ID_LIVE_COMMANDPOOL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1123i32);
19857#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19858pub const D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1124i32);
19859#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19860pub const D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1125i32);
19861#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19862pub const D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1126i32);
19863#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19864pub const D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1127i32);
19865#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19866pub const D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1128i32);
19867#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19868pub const D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1129i32);
19869#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19870pub const D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1130i32);
19871#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19872pub const D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1131i32);
19873#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19874pub const D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1132i32);
19875#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19876pub const D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1133i32);
19877#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19878pub const D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1134i32);
19879#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19880pub const D3D12_MESSAGE_ID_COMMAND_POOL_SYNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1135i32);
19881#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19882pub const D3D12_MESSAGE_ID_EVICT_UNDERFLOW: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1136i32);
19883#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19884pub const D3D12_MESSAGE_ID_CREATE_META_COMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1137i32);
19885#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19886pub const D3D12_MESSAGE_ID_LIVE_META_COMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1138i32);
19887#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19888pub const D3D12_MESSAGE_ID_DESTROY_META_COMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1139i32);
19889#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19890pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1140i32);
19891#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19892pub const D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1141i32);
19893#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19894pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1142i32);
19895#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19896pub const D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1143i32);
19897#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19898pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1144i32);
19899#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19900pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1145i32);
19901#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19902pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1146i32);
19903#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19904pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1147i32);
19905#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19906pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1148i32);
19907#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19908pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1149i32);
19909#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19910pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1150i32);
19911#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19912pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1151i32);
19913#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19914pub const D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1152i32);
19915#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19916pub const D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1153i32);
19917#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19918pub const D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1154i32);
19919#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19920pub const D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1155i32);
19921#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19922pub const D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1156i32);
19923#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19924pub const D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1157i32);
19925#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19926pub const D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1158i32);
19927#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19928pub const D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1159i32);
19929#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19930pub const D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1160i32);
19931#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19932pub const D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1161i32);
19933#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19934pub const D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1162i32);
19935#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19936pub const D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1163i32);
19937#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19938pub const D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1164i32);
19939#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19940pub const D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1165i32);
19941#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19942pub const D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1166i32);
19943#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19944pub const D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1167i32);
19945#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19946pub const D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1168i32);
19947#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19948pub const D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1169i32);
19949#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19950pub const D3D12_MESSAGE_ID_RENDER_PASS_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1170i32);
19951#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19952pub const D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1171i32);
19953#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19954pub const D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1172i32);
19955#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19956pub const D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1173i32);
19957#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19958pub const D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1174i32);
19959#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19960pub const D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1175i32);
19961#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19962pub const D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1176i32);
19963#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19964pub const D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1177i32);
19965#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19966pub const D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1178i32);
19967#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19968pub const D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1179i32);
19969#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19970pub const D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1180i32);
19971#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19972pub const D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1181i32);
19973#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19974pub const D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1182i32);
19975#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19976pub const D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1183i32);
19977#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19978pub const D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1184i32);
19979#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19980pub const D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1185i32);
19981#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19982pub const D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1186i32);
19983#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19984pub const D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1187i32);
19985#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19986pub const D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1188i32);
19987#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19988pub const D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1189i32);
19989#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19990pub const D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1190i32);
19991#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19992pub const D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1191i32);
19993#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19994pub const D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1192i32);
19995#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19996pub const D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1193i32);
19997#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
19998pub const D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1194i32);
19999#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20000pub const D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1195i32);
20001#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20002pub const D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1196i32);
20003#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20004pub const D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1197i32);
20005#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20006pub const D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1198i32);
20007#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20008pub const D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1199i32);
20009#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20010pub const D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1200i32);
20011#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20012pub const D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1201i32);
20013#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20014pub const D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1202i32);
20015#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20016pub const D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1203i32);
20017#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20018pub const D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1204i32);
20019#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20020pub const D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1205i32);
20021#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20022pub const D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1206i32);
20023#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20024pub const D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1207i32);
20025#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20026pub const D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1208i32);
20027#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20028pub const D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1209i32);
20029#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20030pub const D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1210i32);
20031#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20032pub const D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1211i32);
20033#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20034pub const D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1212i32);
20035#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20036pub const D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1213i32);
20037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20038pub const D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1214i32);
20039#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20040pub const D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1215i32);
20041#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20042pub const D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1216i32);
20043#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20044pub const D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1217i32);
20045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20046pub const D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1218i32);
20047#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20048pub const D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1219i32);
20049#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20050pub const D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1220i32);
20051#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20052pub const D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1221i32);
20053#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20054pub const D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1222i32);
20055#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20056pub const D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1223i32);
20057#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20058pub const D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1224i32);
20059#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20060pub const D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1225i32);
20061#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20062pub const D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1226i32);
20063#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20064pub const D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1227i32);
20065#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20066pub const D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1228i32);
20067#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20068pub const D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1229i32);
20069#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20070pub const D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1230i32);
20071#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20072pub const D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1231i32);
20073#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20074pub const D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1232i32);
20075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20076pub const D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1233i32);
20077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20078pub const D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1234i32);
20079#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20080pub const D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1235i32);
20081#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20082pub const D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1236i32);
20083#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20084pub const D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1237i32);
20085#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20086pub const D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1238i32);
20087#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20088pub const D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1239i32);
20089#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20090pub const D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1240i32);
20091#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20092pub const D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1241i32);
20093#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20094pub const D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1242i32);
20095#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20096pub const D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1243i32);
20097#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20098pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1244i32);
20099#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20100pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1245i32);
20101#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20102pub const D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1246i32);
20103#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20104pub const D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1247i32);
20105#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20106pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1248i32);
20107#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20108pub const D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1249i32);
20109#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20110pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1250i32);
20111#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20112pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1251i32);
20113#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20114pub const D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1252i32);
20115#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20116pub const D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1253i32);
20117#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20118pub const D3D12_MESSAGE_ID_EMPTY_DISPATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1254i32);
20119#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20120pub const D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1255i32);
20121#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20122pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1256i32);
20123#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20124pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1257i32);
20125#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20126pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1258i32);
20127#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20128pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1259i32);
20129#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20130pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1260i32);
20131#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20132pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1261i32);
20133#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20134pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1262i32);
20135#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20136pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1263i32);
20137#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20138pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1264i32);
20139#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20140pub const D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1265i32);
20141#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20142pub const D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1266i32);
20143#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20144pub const D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1267i32);
20145#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20146pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1268i32);
20147#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20148pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1269i32);
20149#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20150pub const D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1270i32);
20151#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20152pub const D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1271i32);
20153#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20154pub const D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1272i32);
20155#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20156pub const D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1273i32);
20157#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20158pub const D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1274i32);
20159#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20160pub const D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1275i32);
20161#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20162pub const D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1276i32);
20163#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20164pub const D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1277i32);
20165#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20166pub const D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1278i32);
20167#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20168pub const D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1279i32);
20169#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20170pub const D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1280i32);
20171#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20172pub const D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1281i32);
20173#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20174pub const D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1282i32);
20175#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20176pub const D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1283i32);
20177#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20178pub const D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1284i32);
20179#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20180pub const D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1285i32);
20181#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20182pub const D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1286i32);
20183#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20184pub const D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1287i32);
20185#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20186pub const D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1288i32);
20187#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20188pub const D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1289i32);
20189#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20190pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1290i32);
20191#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20192pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1291i32);
20193#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20194pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1292i32);
20195#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20196pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1293i32);
20197#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20198pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1294i32);
20199#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20200pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1295i32);
20201#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20202pub const D3D12_MESSAGE_ID_OVERSIZED_DISPATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1296i32);
20203#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20204pub const D3D12_MESSAGE_ID_CREATE_VIDEOENCODER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1297i32);
20205#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20206pub const D3D12_MESSAGE_ID_LIVE_VIDEOENCODER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1298i32);
20207#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20208pub const D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1299i32);
20209#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20210pub const D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1300i32);
20211#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20212pub const D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1301i32);
20213#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20214pub const D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1302i32);
20215#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20216pub const D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1303i32);
20217#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20218pub const D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1304i32);
20219#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20220pub const D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1305i32);
20221#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20222pub const D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1306i32);
20223#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20224pub const D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1307i32);
20225#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20226pub const D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1308i32);
20227#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20228pub const D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1309i32);
20229#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20230pub const D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1310i32);
20231#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20232pub const D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1311i32);
20233#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20234pub const D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1312i32);
20235#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20236pub const D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1313i32);
20237#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20238pub const D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1314i32);
20239#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20240pub const D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1315i32);
20241#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20242pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1316i32);
20243#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20244pub const D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1317i32);
20245#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20246pub const D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1318i32);
20247#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20248pub const D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1319i32);
20249#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20250pub const D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1320i32);
20251#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20252pub const D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1321i32);
20253#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20254pub const D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1322i32);
20255#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20256pub const D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1323i32);
20257#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20258pub const D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1324i32);
20259#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20260pub const D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1325i32);
20261#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20262pub const D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1326i32);
20263#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20264pub const D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1327i32);
20265#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20266pub const D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1328i32);
20267#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20268pub const D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1329i32);
20269#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20270pub const D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1330i32);
20271#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20272pub const D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1331i32);
20273#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20274pub const D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1332i32);
20275#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20276pub const D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1333i32);
20277#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20278pub const D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1334i32);
20279#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20280pub const D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1335i32);
20281#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20282pub const D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1336i32);
20283#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20284pub const D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1337i32);
20285#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20286pub const D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1338i32);
20287#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20288pub const D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1339i32);
20289#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20290pub const D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1340i32);
20291#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20292pub const D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1341i32);
20293#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20294pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1342i32);
20295#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20296pub const D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1343i32);
20297#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20298pub const D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1346i32);
20299#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20300pub const D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1347i32);
20301#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20302pub const D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1348i32);
20303#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20304pub const D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1349i32);
20305#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20306pub const D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1350i32);
20307#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20308pub const D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1351i32);
20309#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20310pub const D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1352i32);
20311#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20312pub const D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1353i32);
20313#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20314pub const D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1354i32);
20315#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20316pub const D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1355i32);
20317#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20318pub const D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1356i32);
20319#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20320pub const D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1357i32);
20321#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20322pub const D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1358i32);
20323#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20324pub const D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1359i32);
20325#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20326pub const D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1360i32);
20327#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20328pub const D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1361i32);
20329#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20330pub const D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1362i32);
20331#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20332pub const D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1363i32);
20333#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20334pub const D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1364i32);
20335#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20336pub const D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1365i32);
20337#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20338pub const D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1366i32);
20339#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20340pub const D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1367i32);
20341#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20342pub const D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1368i32);
20343#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20344pub const D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1369i32);
20345#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20346pub const D3D12_MESSAGE_ID_INVALID_CAST_TARGET: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1371i32);
20347#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20348pub const D3D12_MESSAGE_ID_D3D12_MESSAGES_END: D3D12_MESSAGE_ID = D3D12_MESSAGE_ID(1372i32);
20349impl ::core::marker::Copy for D3D12_MESSAGE_ID {}
20350impl ::core::clone::Clone for D3D12_MESSAGE_ID {
20351 fn clone(&self) -> Self {
20352 *self
20353 }
20354}
20355impl ::core::default::Default for D3D12_MESSAGE_ID {
20356 fn default() -> Self {
20357 Self(0)
20358 }
20359}
20360impl ::windows::core::TypeKind for D3D12_MESSAGE_ID {
20361 type TypeKind = ::windows::core::CopyType;
20362}
20363impl ::core::fmt::Debug for D3D12_MESSAGE_ID {
20364 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20365 f.debug_tuple("D3D12_MESSAGE_ID").field(&self.0).finish()
20366 }
20367}
20368#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20369#[repr(transparent)]
20370#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20371pub struct D3D12_MESSAGE_SEVERITY(pub i32);
20372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20373pub const D3D12_MESSAGE_SEVERITY_CORRUPTION: D3D12_MESSAGE_SEVERITY = D3D12_MESSAGE_SEVERITY(0i32);
20374#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20375pub const D3D12_MESSAGE_SEVERITY_ERROR: D3D12_MESSAGE_SEVERITY = D3D12_MESSAGE_SEVERITY(1i32);
20376#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20377pub const D3D12_MESSAGE_SEVERITY_WARNING: D3D12_MESSAGE_SEVERITY = D3D12_MESSAGE_SEVERITY(2i32);
20378#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20379pub const D3D12_MESSAGE_SEVERITY_INFO: D3D12_MESSAGE_SEVERITY = D3D12_MESSAGE_SEVERITY(3i32);
20380#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20381pub const D3D12_MESSAGE_SEVERITY_MESSAGE: D3D12_MESSAGE_SEVERITY = D3D12_MESSAGE_SEVERITY(4i32);
20382impl ::core::marker::Copy for D3D12_MESSAGE_SEVERITY {}
20383impl ::core::clone::Clone for D3D12_MESSAGE_SEVERITY {
20384 fn clone(&self) -> Self {
20385 *self
20386 }
20387}
20388impl ::core::default::Default for D3D12_MESSAGE_SEVERITY {
20389 fn default() -> Self {
20390 Self(0)
20391 }
20392}
20393impl ::windows::core::TypeKind for D3D12_MESSAGE_SEVERITY {
20394 type TypeKind = ::windows::core::CopyType;
20395}
20396impl ::core::fmt::Debug for D3D12_MESSAGE_SEVERITY {
20397 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20398 f.debug_tuple("D3D12_MESSAGE_SEVERITY").field(&self.0).finish()
20399 }
20400}
20401#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20402#[repr(transparent)]
20403#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20404pub struct D3D12_META_COMMAND_PARAMETER_FLAGS(pub i32);
20405#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20406pub const D3D12_META_COMMAND_PARAMETER_FLAG_INPUT: D3D12_META_COMMAND_PARAMETER_FLAGS = D3D12_META_COMMAND_PARAMETER_FLAGS(1i32);
20407#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20408pub const D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT: D3D12_META_COMMAND_PARAMETER_FLAGS = D3D12_META_COMMAND_PARAMETER_FLAGS(2i32);
20409impl ::core::marker::Copy for D3D12_META_COMMAND_PARAMETER_FLAGS {}
20410impl ::core::clone::Clone for D3D12_META_COMMAND_PARAMETER_FLAGS {
20411 fn clone(&self) -> Self {
20412 *self
20413 }
20414}
20415impl ::core::default::Default for D3D12_META_COMMAND_PARAMETER_FLAGS {
20416 fn default() -> Self {
20417 Self(0)
20418 }
20419}
20420impl ::windows::core::TypeKind for D3D12_META_COMMAND_PARAMETER_FLAGS {
20421 type TypeKind = ::windows::core::CopyType;
20422}
20423impl ::core::fmt::Debug for D3D12_META_COMMAND_PARAMETER_FLAGS {
20424 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20425 f.debug_tuple("D3D12_META_COMMAND_PARAMETER_FLAGS").field(&self.0).finish()
20426 }
20427}
20428impl D3D12_META_COMMAND_PARAMETER_FLAGS {
20429 pub const fn contains(&self, other: Self) -> bool {
20430 self.0 & other.0 == other.0
20431 }
20432}
20433impl ::core::ops::BitOr for D3D12_META_COMMAND_PARAMETER_FLAGS {
20434 type Output = Self;
20435 fn bitor(self, other: Self) -> Self {
20436 Self(self.0 | other.0)
20437 }
20438}
20439impl ::core::ops::BitAnd for D3D12_META_COMMAND_PARAMETER_FLAGS {
20440 type Output = Self;
20441 fn bitand(self, other: Self) -> Self {
20442 Self(self.0 & other.0)
20443 }
20444}
20445impl ::core::ops::BitOrAssign for D3D12_META_COMMAND_PARAMETER_FLAGS {
20446 fn bitor_assign(&mut self, other: Self) {
20447 self.0.bitor_assign(other.0)
20448 }
20449}
20450impl ::core::ops::BitAndAssign for D3D12_META_COMMAND_PARAMETER_FLAGS {
20451 fn bitand_assign(&mut self, other: Self) {
20452 self.0.bitand_assign(other.0)
20453 }
20454}
20455impl ::core::ops::Not for D3D12_META_COMMAND_PARAMETER_FLAGS {
20456 type Output = Self;
20457 fn not(self) -> Self {
20458 Self(self.0.not())
20459 }
20460}
20461#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20462#[repr(transparent)]
20463#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20464pub struct D3D12_META_COMMAND_PARAMETER_STAGE(pub i32);
20465#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20466pub const D3D12_META_COMMAND_PARAMETER_STAGE_CREATION: D3D12_META_COMMAND_PARAMETER_STAGE = D3D12_META_COMMAND_PARAMETER_STAGE(0i32);
20467#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20468pub const D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION: D3D12_META_COMMAND_PARAMETER_STAGE = D3D12_META_COMMAND_PARAMETER_STAGE(1i32);
20469#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20470pub const D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION: D3D12_META_COMMAND_PARAMETER_STAGE = D3D12_META_COMMAND_PARAMETER_STAGE(2i32);
20471impl ::core::marker::Copy for D3D12_META_COMMAND_PARAMETER_STAGE {}
20472impl ::core::clone::Clone for D3D12_META_COMMAND_PARAMETER_STAGE {
20473 fn clone(&self) -> Self {
20474 *self
20475 }
20476}
20477impl ::core::default::Default for D3D12_META_COMMAND_PARAMETER_STAGE {
20478 fn default() -> Self {
20479 Self(0)
20480 }
20481}
20482impl ::windows::core::TypeKind for D3D12_META_COMMAND_PARAMETER_STAGE {
20483 type TypeKind = ::windows::core::CopyType;
20484}
20485impl ::core::fmt::Debug for D3D12_META_COMMAND_PARAMETER_STAGE {
20486 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20487 f.debug_tuple("D3D12_META_COMMAND_PARAMETER_STAGE").field(&self.0).finish()
20488 }
20489}
20490#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20491#[repr(transparent)]
20492#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20493pub struct D3D12_META_COMMAND_PARAMETER_TYPE(pub i32);
20494#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20495pub const D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT: D3D12_META_COMMAND_PARAMETER_TYPE = D3D12_META_COMMAND_PARAMETER_TYPE(0i32);
20496#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20497pub const D3D12_META_COMMAND_PARAMETER_TYPE_UINT64: D3D12_META_COMMAND_PARAMETER_TYPE = D3D12_META_COMMAND_PARAMETER_TYPE(1i32);
20498#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20499pub const D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS: D3D12_META_COMMAND_PARAMETER_TYPE = D3D12_META_COMMAND_PARAMETER_TYPE(2i32);
20500#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20501pub const D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV: D3D12_META_COMMAND_PARAMETER_TYPE = D3D12_META_COMMAND_PARAMETER_TYPE(3i32);
20502#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20503pub const D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV: D3D12_META_COMMAND_PARAMETER_TYPE = D3D12_META_COMMAND_PARAMETER_TYPE(4i32);
20504impl ::core::marker::Copy for D3D12_META_COMMAND_PARAMETER_TYPE {}
20505impl ::core::clone::Clone for D3D12_META_COMMAND_PARAMETER_TYPE {
20506 fn clone(&self) -> Self {
20507 *self
20508 }
20509}
20510impl ::core::default::Default for D3D12_META_COMMAND_PARAMETER_TYPE {
20511 fn default() -> Self {
20512 Self(0)
20513 }
20514}
20515impl ::windows::core::TypeKind for D3D12_META_COMMAND_PARAMETER_TYPE {
20516 type TypeKind = ::windows::core::CopyType;
20517}
20518impl ::core::fmt::Debug for D3D12_META_COMMAND_PARAMETER_TYPE {
20519 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20520 f.debug_tuple("D3D12_META_COMMAND_PARAMETER_TYPE").field(&self.0).finish()
20521 }
20522}
20523#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20524#[repr(transparent)]
20525#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20526pub struct D3D12_MULTIPLE_FENCE_WAIT_FLAGS(pub i32);
20527#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20528pub const D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE: D3D12_MULTIPLE_FENCE_WAIT_FLAGS = D3D12_MULTIPLE_FENCE_WAIT_FLAGS(0i32);
20529#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20530pub const D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY: D3D12_MULTIPLE_FENCE_WAIT_FLAGS = D3D12_MULTIPLE_FENCE_WAIT_FLAGS(1i32);
20531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20532pub const D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL: D3D12_MULTIPLE_FENCE_WAIT_FLAGS = D3D12_MULTIPLE_FENCE_WAIT_FLAGS(0i32);
20533impl ::core::marker::Copy for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {}
20534impl ::core::clone::Clone for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20535 fn clone(&self) -> Self {
20536 *self
20537 }
20538}
20539impl ::core::default::Default for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20540 fn default() -> Self {
20541 Self(0)
20542 }
20543}
20544impl ::windows::core::TypeKind for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20545 type TypeKind = ::windows::core::CopyType;
20546}
20547impl ::core::fmt::Debug for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20548 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20549 f.debug_tuple("D3D12_MULTIPLE_FENCE_WAIT_FLAGS").field(&self.0).finish()
20550 }
20551}
20552impl D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20553 pub const fn contains(&self, other: Self) -> bool {
20554 self.0 & other.0 == other.0
20555 }
20556}
20557impl ::core::ops::BitOr for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20558 type Output = Self;
20559 fn bitor(self, other: Self) -> Self {
20560 Self(self.0 | other.0)
20561 }
20562}
20563impl ::core::ops::BitAnd for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20564 type Output = Self;
20565 fn bitand(self, other: Self) -> Self {
20566 Self(self.0 & other.0)
20567 }
20568}
20569impl ::core::ops::BitOrAssign for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20570 fn bitor_assign(&mut self, other: Self) {
20571 self.0.bitor_assign(other.0)
20572 }
20573}
20574impl ::core::ops::BitAndAssign for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20575 fn bitand_assign(&mut self, other: Self) {
20576 self.0.bitand_assign(other.0)
20577 }
20578}
20579impl ::core::ops::Not for D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
20580 type Output = Self;
20581 fn not(self) -> Self {
20582 Self(self.0.not())
20583 }
20584}
20585#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20586#[repr(transparent)]
20587#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20588pub struct D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(pub i32);
20589#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20590pub const D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE: D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS = D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(0i32);
20591#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20592pub const D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE: D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS = D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS(1i32);
20593impl ::core::marker::Copy for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {}
20594impl ::core::clone::Clone for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20595 fn clone(&self) -> Self {
20596 *self
20597 }
20598}
20599impl ::core::default::Default for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20600 fn default() -> Self {
20601 Self(0)
20602 }
20603}
20604impl ::windows::core::TypeKind for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20605 type TypeKind = ::windows::core::CopyType;
20606}
20607impl ::core::fmt::Debug for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20608 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20609 f.debug_tuple("D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS").field(&self.0).finish()
20610 }
20611}
20612impl D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20613 pub const fn contains(&self, other: Self) -> bool {
20614 self.0 & other.0 == other.0
20615 }
20616}
20617impl ::core::ops::BitOr for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20618 type Output = Self;
20619 fn bitor(self, other: Self) -> Self {
20620 Self(self.0 | other.0)
20621 }
20622}
20623impl ::core::ops::BitAnd for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20624 type Output = Self;
20625 fn bitand(self, other: Self) -> Self {
20626 Self(self.0 & other.0)
20627 }
20628}
20629impl ::core::ops::BitOrAssign for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20630 fn bitor_assign(&mut self, other: Self) {
20631 self.0.bitor_assign(other.0)
20632 }
20633}
20634impl ::core::ops::BitAndAssign for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20635 fn bitand_assign(&mut self, other: Self) {
20636 self.0.bitand_assign(other.0)
20637 }
20638}
20639impl ::core::ops::Not for D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
20640 type Output = Self;
20641 fn not(self) -> Self {
20642 Self(self.0.not())
20643 }
20644}
20645#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20646#[repr(transparent)]
20647#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20648pub struct D3D12_PIPELINE_STATE_FLAGS(pub i32);
20649#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20650pub const D3D12_PIPELINE_STATE_FLAG_NONE: D3D12_PIPELINE_STATE_FLAGS = D3D12_PIPELINE_STATE_FLAGS(0i32);
20651#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20652pub const D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG: D3D12_PIPELINE_STATE_FLAGS = D3D12_PIPELINE_STATE_FLAGS(1i32);
20653#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20654pub const D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS: D3D12_PIPELINE_STATE_FLAGS = D3D12_PIPELINE_STATE_FLAGS(4i32);
20655#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20656pub const D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT: D3D12_PIPELINE_STATE_FLAGS = D3D12_PIPELINE_STATE_FLAGS(8i32);
20657impl ::core::marker::Copy for D3D12_PIPELINE_STATE_FLAGS {}
20658impl ::core::clone::Clone for D3D12_PIPELINE_STATE_FLAGS {
20659 fn clone(&self) -> Self {
20660 *self
20661 }
20662}
20663impl ::core::default::Default for D3D12_PIPELINE_STATE_FLAGS {
20664 fn default() -> Self {
20665 Self(0)
20666 }
20667}
20668impl ::windows::core::TypeKind for D3D12_PIPELINE_STATE_FLAGS {
20669 type TypeKind = ::windows::core::CopyType;
20670}
20671impl ::core::fmt::Debug for D3D12_PIPELINE_STATE_FLAGS {
20672 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20673 f.debug_tuple("D3D12_PIPELINE_STATE_FLAGS").field(&self.0).finish()
20674 }
20675}
20676impl D3D12_PIPELINE_STATE_FLAGS {
20677 pub const fn contains(&self, other: Self) -> bool {
20678 self.0 & other.0 == other.0
20679 }
20680}
20681impl ::core::ops::BitOr for D3D12_PIPELINE_STATE_FLAGS {
20682 type Output = Self;
20683 fn bitor(self, other: Self) -> Self {
20684 Self(self.0 | other.0)
20685 }
20686}
20687impl ::core::ops::BitAnd for D3D12_PIPELINE_STATE_FLAGS {
20688 type Output = Self;
20689 fn bitand(self, other: Self) -> Self {
20690 Self(self.0 & other.0)
20691 }
20692}
20693impl ::core::ops::BitOrAssign for D3D12_PIPELINE_STATE_FLAGS {
20694 fn bitor_assign(&mut self, other: Self) {
20695 self.0.bitor_assign(other.0)
20696 }
20697}
20698impl ::core::ops::BitAndAssign for D3D12_PIPELINE_STATE_FLAGS {
20699 fn bitand_assign(&mut self, other: Self) {
20700 self.0.bitand_assign(other.0)
20701 }
20702}
20703impl ::core::ops::Not for D3D12_PIPELINE_STATE_FLAGS {
20704 type Output = Self;
20705 fn not(self) -> Self {
20706 Self(self.0.not())
20707 }
20708}
20709#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20710#[repr(transparent)]
20711#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20712pub struct D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(pub i32);
20713#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20714pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(0i32);
20715#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20716pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(1i32);
20717#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20718pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(2i32);
20719#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20720pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(3i32);
20721#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20722pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(4i32);
20723#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20724pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(5i32);
20725#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20726pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(6i32);
20727#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20728pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(7i32);
20729#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20730pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(8i32);
20731#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20732pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(9i32);
20733#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20734pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(10i32);
20735#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20736pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(11i32);
20737#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20738pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(12i32);
20739#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20740pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(13i32);
20741#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20742pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(14i32);
20743#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20744pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(15i32);
20745#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20746pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(16i32);
20747#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20748pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(17i32);
20749#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20750pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(18i32);
20751#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20752pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(19i32);
20753#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20754pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(20i32);
20755#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20756pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(21i32);
20757#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20758pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(22i32);
20759#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20760pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(24i32);
20761#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20762pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(25i32);
20763#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20764pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(26i32);
20765#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20766pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(27i32);
20767#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20768pub const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID: D3D12_PIPELINE_STATE_SUBOBJECT_TYPE = D3D12_PIPELINE_STATE_SUBOBJECT_TYPE(28i32);
20769impl ::core::marker::Copy for D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {}
20770impl ::core::clone::Clone for D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {
20771 fn clone(&self) -> Self {
20772 *self
20773 }
20774}
20775impl ::core::default::Default for D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {
20776 fn default() -> Self {
20777 Self(0)
20778 }
20779}
20780impl ::windows::core::TypeKind for D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {
20781 type TypeKind = ::windows::core::CopyType;
20782}
20783impl ::core::fmt::Debug for D3D12_PIPELINE_STATE_SUBOBJECT_TYPE {
20784 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20785 f.debug_tuple("D3D12_PIPELINE_STATE_SUBOBJECT_TYPE").field(&self.0).finish()
20786 }
20787}
20788#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20789#[repr(transparent)]
20790#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20791pub struct D3D12_PREDICATION_OP(pub i32);
20792#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20793pub const D3D12_PREDICATION_OP_EQUAL_ZERO: D3D12_PREDICATION_OP = D3D12_PREDICATION_OP(0i32);
20794#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20795pub const D3D12_PREDICATION_OP_NOT_EQUAL_ZERO: D3D12_PREDICATION_OP = D3D12_PREDICATION_OP(1i32);
20796impl ::core::marker::Copy for D3D12_PREDICATION_OP {}
20797impl ::core::clone::Clone for D3D12_PREDICATION_OP {
20798 fn clone(&self) -> Self {
20799 *self
20800 }
20801}
20802impl ::core::default::Default for D3D12_PREDICATION_OP {
20803 fn default() -> Self {
20804 Self(0)
20805 }
20806}
20807impl ::windows::core::TypeKind for D3D12_PREDICATION_OP {
20808 type TypeKind = ::windows::core::CopyType;
20809}
20810impl ::core::fmt::Debug for D3D12_PREDICATION_OP {
20811 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20812 f.debug_tuple("D3D12_PREDICATION_OP").field(&self.0).finish()
20813 }
20814}
20815#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20816#[repr(transparent)]
20817#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20818pub struct D3D12_PRIMITIVE_TOPOLOGY_TYPE(pub i32);
20819#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20820pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED: D3D12_PRIMITIVE_TOPOLOGY_TYPE = D3D12_PRIMITIVE_TOPOLOGY_TYPE(0i32);
20821#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20822pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT: D3D12_PRIMITIVE_TOPOLOGY_TYPE = D3D12_PRIMITIVE_TOPOLOGY_TYPE(1i32);
20823#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20824pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE: D3D12_PRIMITIVE_TOPOLOGY_TYPE = D3D12_PRIMITIVE_TOPOLOGY_TYPE(2i32);
20825#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20826pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE: D3D12_PRIMITIVE_TOPOLOGY_TYPE = D3D12_PRIMITIVE_TOPOLOGY_TYPE(3i32);
20827#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20828pub const D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH: D3D12_PRIMITIVE_TOPOLOGY_TYPE = D3D12_PRIMITIVE_TOPOLOGY_TYPE(4i32);
20829impl ::core::marker::Copy for D3D12_PRIMITIVE_TOPOLOGY_TYPE {}
20830impl ::core::clone::Clone for D3D12_PRIMITIVE_TOPOLOGY_TYPE {
20831 fn clone(&self) -> Self {
20832 *self
20833 }
20834}
20835impl ::core::default::Default for D3D12_PRIMITIVE_TOPOLOGY_TYPE {
20836 fn default() -> Self {
20837 Self(0)
20838 }
20839}
20840impl ::windows::core::TypeKind for D3D12_PRIMITIVE_TOPOLOGY_TYPE {
20841 type TypeKind = ::windows::core::CopyType;
20842}
20843impl ::core::fmt::Debug for D3D12_PRIMITIVE_TOPOLOGY_TYPE {
20844 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20845 f.debug_tuple("D3D12_PRIMITIVE_TOPOLOGY_TYPE").field(&self.0).finish()
20846 }
20847}
20848#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20849#[repr(transparent)]
20850#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20851pub struct D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER(pub i32);
20852#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20853pub const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED: D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER(0i32);
20854#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20855pub const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1: D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER(1i32);
20856#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20857pub const D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2: D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER = D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER(2i32);
20858impl ::core::marker::Copy for D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {}
20859impl ::core::clone::Clone for D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
20860 fn clone(&self) -> Self {
20861 *self
20862 }
20863}
20864impl ::core::default::Default for D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
20865 fn default() -> Self {
20866 Self(0)
20867 }
20868}
20869impl ::windows::core::TypeKind for D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
20870 type TypeKind = ::windows::core::CopyType;
20871}
20872impl ::core::fmt::Debug for D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
20873 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20874 f.debug_tuple("D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER").field(&self.0).finish()
20875 }
20876}
20877#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20878#[repr(transparent)]
20879#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20880pub struct D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(pub i32);
20881#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20882pub const D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE: D3D12_PROTECTED_RESOURCE_SESSION_FLAGS = D3D12_PROTECTED_RESOURCE_SESSION_FLAGS(0i32);
20883impl ::core::marker::Copy for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {}
20884impl ::core::clone::Clone for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20885 fn clone(&self) -> Self {
20886 *self
20887 }
20888}
20889impl ::core::default::Default for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20890 fn default() -> Self {
20891 Self(0)
20892 }
20893}
20894impl ::windows::core::TypeKind for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20895 type TypeKind = ::windows::core::CopyType;
20896}
20897impl ::core::fmt::Debug for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20898 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20899 f.debug_tuple("D3D12_PROTECTED_RESOURCE_SESSION_FLAGS").field(&self.0).finish()
20900 }
20901}
20902impl D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20903 pub const fn contains(&self, other: Self) -> bool {
20904 self.0 & other.0 == other.0
20905 }
20906}
20907impl ::core::ops::BitOr for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20908 type Output = Self;
20909 fn bitor(self, other: Self) -> Self {
20910 Self(self.0 | other.0)
20911 }
20912}
20913impl ::core::ops::BitAnd for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20914 type Output = Self;
20915 fn bitand(self, other: Self) -> Self {
20916 Self(self.0 & other.0)
20917 }
20918}
20919impl ::core::ops::BitOrAssign for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20920 fn bitor_assign(&mut self, other: Self) {
20921 self.0.bitor_assign(other.0)
20922 }
20923}
20924impl ::core::ops::BitAndAssign for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20925 fn bitand_assign(&mut self, other: Self) {
20926 self.0.bitand_assign(other.0)
20927 }
20928}
20929impl ::core::ops::Not for D3D12_PROTECTED_RESOURCE_SESSION_FLAGS {
20930 type Output = Self;
20931 fn not(self) -> Self {
20932 Self(self.0.not())
20933 }
20934}
20935#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20936#[repr(transparent)]
20937#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20938pub struct D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(pub i32);
20939#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20940pub const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE: D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS = D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(0i32);
20941#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20942pub const D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED: D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS = D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS(1i32);
20943impl ::core::marker::Copy for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {}
20944impl ::core::clone::Clone for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20945 fn clone(&self) -> Self {
20946 *self
20947 }
20948}
20949impl ::core::default::Default for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20950 fn default() -> Self {
20951 Self(0)
20952 }
20953}
20954impl ::windows::core::TypeKind for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20955 type TypeKind = ::windows::core::CopyType;
20956}
20957impl ::core::fmt::Debug for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20958 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
20959 f.debug_tuple("D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS").field(&self.0).finish()
20960 }
20961}
20962impl D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20963 pub const fn contains(&self, other: Self) -> bool {
20964 self.0 & other.0 == other.0
20965 }
20966}
20967impl ::core::ops::BitOr for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20968 type Output = Self;
20969 fn bitor(self, other: Self) -> Self {
20970 Self(self.0 | other.0)
20971 }
20972}
20973impl ::core::ops::BitAnd for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20974 type Output = Self;
20975 fn bitand(self, other: Self) -> Self {
20976 Self(self.0 & other.0)
20977 }
20978}
20979impl ::core::ops::BitOrAssign for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20980 fn bitor_assign(&mut self, other: Self) {
20981 self.0.bitor_assign(other.0)
20982 }
20983}
20984impl ::core::ops::BitAndAssign for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20985 fn bitand_assign(&mut self, other: Self) {
20986 self.0.bitand_assign(other.0)
20987 }
20988}
20989impl ::core::ops::Not for D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS {
20990 type Output = Self;
20991 fn not(self) -> Self {
20992 Self(self.0.not())
20993 }
20994}
20995#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
20996#[repr(transparent)]
20997#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
20998pub struct D3D12_PROTECTED_SESSION_STATUS(pub i32);
20999#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21000pub const D3D12_PROTECTED_SESSION_STATUS_OK: D3D12_PROTECTED_SESSION_STATUS = D3D12_PROTECTED_SESSION_STATUS(0i32);
21001#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21002pub const D3D12_PROTECTED_SESSION_STATUS_INVALID: D3D12_PROTECTED_SESSION_STATUS = D3D12_PROTECTED_SESSION_STATUS(1i32);
21003impl ::core::marker::Copy for D3D12_PROTECTED_SESSION_STATUS {}
21004impl ::core::clone::Clone for D3D12_PROTECTED_SESSION_STATUS {
21005 fn clone(&self) -> Self {
21006 *self
21007 }
21008}
21009impl ::core::default::Default for D3D12_PROTECTED_SESSION_STATUS {
21010 fn default() -> Self {
21011 Self(0)
21012 }
21013}
21014impl ::windows::core::TypeKind for D3D12_PROTECTED_SESSION_STATUS {
21015 type TypeKind = ::windows::core::CopyType;
21016}
21017impl ::core::fmt::Debug for D3D12_PROTECTED_SESSION_STATUS {
21018 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21019 f.debug_tuple("D3D12_PROTECTED_SESSION_STATUS").field(&self.0).finish()
21020 }
21021}
21022#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21023#[repr(transparent)]
21024#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21025pub struct D3D12_QUERY_HEAP_TYPE(pub i32);
21026#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21027pub const D3D12_QUERY_HEAP_TYPE_OCCLUSION: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(0i32);
21028#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21029pub const D3D12_QUERY_HEAP_TYPE_TIMESTAMP: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(1i32);
21030#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21031pub const D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(2i32);
21032#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21033pub const D3D12_QUERY_HEAP_TYPE_SO_STATISTICS: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(3i32);
21034#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21035pub const D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(4i32);
21036#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21037pub const D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(5i32);
21038#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21039pub const D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1: D3D12_QUERY_HEAP_TYPE = D3D12_QUERY_HEAP_TYPE(7i32);
21040impl ::core::marker::Copy for D3D12_QUERY_HEAP_TYPE {}
21041impl ::core::clone::Clone for D3D12_QUERY_HEAP_TYPE {
21042 fn clone(&self) -> Self {
21043 *self
21044 }
21045}
21046impl ::core::default::Default for D3D12_QUERY_HEAP_TYPE {
21047 fn default() -> Self {
21048 Self(0)
21049 }
21050}
21051impl ::windows::core::TypeKind for D3D12_QUERY_HEAP_TYPE {
21052 type TypeKind = ::windows::core::CopyType;
21053}
21054impl ::core::fmt::Debug for D3D12_QUERY_HEAP_TYPE {
21055 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21056 f.debug_tuple("D3D12_QUERY_HEAP_TYPE").field(&self.0).finish()
21057 }
21058}
21059#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21060#[repr(transparent)]
21061#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21062pub struct D3D12_QUERY_TYPE(pub i32);
21063#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21064pub const D3D12_QUERY_TYPE_OCCLUSION: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(0i32);
21065#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21066pub const D3D12_QUERY_TYPE_BINARY_OCCLUSION: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(1i32);
21067#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21068pub const D3D12_QUERY_TYPE_TIMESTAMP: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(2i32);
21069#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21070pub const D3D12_QUERY_TYPE_PIPELINE_STATISTICS: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(3i32);
21071#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21072pub const D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(4i32);
21073#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21074pub const D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(5i32);
21075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21076pub const D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(6i32);
21077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21078pub const D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(7i32);
21079#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21080pub const D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(8i32);
21081#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21082pub const D3D12_QUERY_TYPE_PIPELINE_STATISTICS1: D3D12_QUERY_TYPE = D3D12_QUERY_TYPE(10i32);
21083impl ::core::marker::Copy for D3D12_QUERY_TYPE {}
21084impl ::core::clone::Clone for D3D12_QUERY_TYPE {
21085 fn clone(&self) -> Self {
21086 *self
21087 }
21088}
21089impl ::core::default::Default for D3D12_QUERY_TYPE {
21090 fn default() -> Self {
21091 Self(0)
21092 }
21093}
21094impl ::windows::core::TypeKind for D3D12_QUERY_TYPE {
21095 type TypeKind = ::windows::core::CopyType;
21096}
21097impl ::core::fmt::Debug for D3D12_QUERY_TYPE {
21098 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21099 f.debug_tuple("D3D12_QUERY_TYPE").field(&self.0).finish()
21100 }
21101}
21102#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21103#[repr(transparent)]
21104#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21105pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(pub i32);
21106#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21107pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(0i32);
21108#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21109pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(1i32);
21110#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21111pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(2i32);
21112#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21113pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(4i32);
21114#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21115pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(8i32);
21116#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21117pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(16i32);
21118#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21119pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS(32i32);
21120impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {}
21121impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21122 fn clone(&self) -> Self {
21123 *self
21124 }
21125}
21126impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21127 fn default() -> Self {
21128 Self(0)
21129 }
21130}
21131impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21132 type TypeKind = ::windows::core::CopyType;
21133}
21134impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21135 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21136 f.debug_tuple("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS").field(&self.0).finish()
21137 }
21138}
21139impl D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21140 pub const fn contains(&self, other: Self) -> bool {
21141 self.0 & other.0 == other.0
21142 }
21143}
21144impl ::core::ops::BitOr for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21145 type Output = Self;
21146 fn bitor(self, other: Self) -> Self {
21147 Self(self.0 | other.0)
21148 }
21149}
21150impl ::core::ops::BitAnd for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21151 type Output = Self;
21152 fn bitand(self, other: Self) -> Self {
21153 Self(self.0 & other.0)
21154 }
21155}
21156impl ::core::ops::BitOrAssign for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21157 fn bitor_assign(&mut self, other: Self) {
21158 self.0.bitor_assign(other.0)
21159 }
21160}
21161impl ::core::ops::BitAndAssign for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21162 fn bitand_assign(&mut self, other: Self) {
21163 self.0.bitand_assign(other.0)
21164 }
21165}
21166impl ::core::ops::Not for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS {
21167 type Output = Self;
21168 fn not(self) -> Self {
21169 Self(self.0.not())
21170 }
21171}
21172#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21173#[repr(transparent)]
21174#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21175pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE(pub i32);
21176#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21177pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE(0i32);
21178#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21179pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE(1i32);
21180#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21181pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE(2i32);
21182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21183pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE(3i32);
21184#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21185pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE(4i32);
21186impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {}
21187impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
21188 fn clone(&self) -> Self {
21189 *self
21190 }
21191}
21192impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
21193 fn default() -> Self {
21194 Self(0)
21195 }
21196}
21197impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
21198 type TypeKind = ::windows::core::CopyType;
21199}
21200impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE {
21201 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21202 f.debug_tuple("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE").field(&self.0).finish()
21203 }
21204}
21205#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21206#[repr(transparent)]
21207#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21208pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE(pub i32);
21209#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21210pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE(0i32);
21211#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21212pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE(1i32);
21213#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21214pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE(2i32);
21215#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21216pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE(3i32);
21217impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {}
21218impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {
21219 fn clone(&self) -> Self {
21220 *self
21221 }
21222}
21223impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {
21224 fn default() -> Self {
21225 Self(0)
21226 }
21227}
21228impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {
21229 type TypeKind = ::windows::core::CopyType;
21230}
21231impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE {
21232 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21233 f.debug_tuple("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE").field(&self.0).finish()
21234 }
21235}
21236#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21237#[repr(transparent)]
21238#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21239pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE(pub i32);
21240#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21241pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE(0i32);
21242#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21243pub const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE = D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE(1i32);
21244impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {}
21245impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {
21246 fn clone(&self) -> Self {
21247 *self
21248 }
21249}
21250impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {
21251 fn default() -> Self {
21252 Self(0)
21253 }
21254}
21255impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {
21256 type TypeKind = ::windows::core::CopyType;
21257}
21258impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE {
21259 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21260 f.debug_tuple("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE").field(&self.0).finish()
21261 }
21262}
21263#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21264#[repr(transparent)]
21265#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21266pub struct D3D12_RAYTRACING_GEOMETRY_FLAGS(pub i32);
21267#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21268pub const D3D12_RAYTRACING_GEOMETRY_FLAG_NONE: D3D12_RAYTRACING_GEOMETRY_FLAGS = D3D12_RAYTRACING_GEOMETRY_FLAGS(0i32);
21269#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21270pub const D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE: D3D12_RAYTRACING_GEOMETRY_FLAGS = D3D12_RAYTRACING_GEOMETRY_FLAGS(1i32);
21271#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21272pub const D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION: D3D12_RAYTRACING_GEOMETRY_FLAGS = D3D12_RAYTRACING_GEOMETRY_FLAGS(2i32);
21273impl ::core::marker::Copy for D3D12_RAYTRACING_GEOMETRY_FLAGS {}
21274impl ::core::clone::Clone for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21275 fn clone(&self) -> Self {
21276 *self
21277 }
21278}
21279impl ::core::default::Default for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21280 fn default() -> Self {
21281 Self(0)
21282 }
21283}
21284impl ::windows::core::TypeKind for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21285 type TypeKind = ::windows::core::CopyType;
21286}
21287impl ::core::fmt::Debug for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21288 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21289 f.debug_tuple("D3D12_RAYTRACING_GEOMETRY_FLAGS").field(&self.0).finish()
21290 }
21291}
21292impl D3D12_RAYTRACING_GEOMETRY_FLAGS {
21293 pub const fn contains(&self, other: Self) -> bool {
21294 self.0 & other.0 == other.0
21295 }
21296}
21297impl ::core::ops::BitOr for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21298 type Output = Self;
21299 fn bitor(self, other: Self) -> Self {
21300 Self(self.0 | other.0)
21301 }
21302}
21303impl ::core::ops::BitAnd for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21304 type Output = Self;
21305 fn bitand(self, other: Self) -> Self {
21306 Self(self.0 & other.0)
21307 }
21308}
21309impl ::core::ops::BitOrAssign for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21310 fn bitor_assign(&mut self, other: Self) {
21311 self.0.bitor_assign(other.0)
21312 }
21313}
21314impl ::core::ops::BitAndAssign for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21315 fn bitand_assign(&mut self, other: Self) {
21316 self.0.bitand_assign(other.0)
21317 }
21318}
21319impl ::core::ops::Not for D3D12_RAYTRACING_GEOMETRY_FLAGS {
21320 type Output = Self;
21321 fn not(self) -> Self {
21322 Self(self.0.not())
21323 }
21324}
21325#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21326#[repr(transparent)]
21327#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21328pub struct D3D12_RAYTRACING_GEOMETRY_TYPE(pub i32);
21329#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21330pub const D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES: D3D12_RAYTRACING_GEOMETRY_TYPE = D3D12_RAYTRACING_GEOMETRY_TYPE(0i32);
21331#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21332pub const D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS: D3D12_RAYTRACING_GEOMETRY_TYPE = D3D12_RAYTRACING_GEOMETRY_TYPE(1i32);
21333impl ::core::marker::Copy for D3D12_RAYTRACING_GEOMETRY_TYPE {}
21334impl ::core::clone::Clone for D3D12_RAYTRACING_GEOMETRY_TYPE {
21335 fn clone(&self) -> Self {
21336 *self
21337 }
21338}
21339impl ::core::default::Default for D3D12_RAYTRACING_GEOMETRY_TYPE {
21340 fn default() -> Self {
21341 Self(0)
21342 }
21343}
21344impl ::windows::core::TypeKind for D3D12_RAYTRACING_GEOMETRY_TYPE {
21345 type TypeKind = ::windows::core::CopyType;
21346}
21347impl ::core::fmt::Debug for D3D12_RAYTRACING_GEOMETRY_TYPE {
21348 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21349 f.debug_tuple("D3D12_RAYTRACING_GEOMETRY_TYPE").field(&self.0).finish()
21350 }
21351}
21352#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21353#[repr(transparent)]
21354#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21355pub struct D3D12_RAYTRACING_INSTANCE_FLAGS(pub i32);
21356#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21357pub const D3D12_RAYTRACING_INSTANCE_FLAG_NONE: D3D12_RAYTRACING_INSTANCE_FLAGS = D3D12_RAYTRACING_INSTANCE_FLAGS(0i32);
21358#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21359pub const D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE: D3D12_RAYTRACING_INSTANCE_FLAGS = D3D12_RAYTRACING_INSTANCE_FLAGS(1i32);
21360#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21361pub const D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE: D3D12_RAYTRACING_INSTANCE_FLAGS = D3D12_RAYTRACING_INSTANCE_FLAGS(2i32);
21362#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21363pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE: D3D12_RAYTRACING_INSTANCE_FLAGS = D3D12_RAYTRACING_INSTANCE_FLAGS(4i32);
21364#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21365pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE: D3D12_RAYTRACING_INSTANCE_FLAGS = D3D12_RAYTRACING_INSTANCE_FLAGS(8i32);
21366impl ::core::marker::Copy for D3D12_RAYTRACING_INSTANCE_FLAGS {}
21367impl ::core::clone::Clone for D3D12_RAYTRACING_INSTANCE_FLAGS {
21368 fn clone(&self) -> Self {
21369 *self
21370 }
21371}
21372impl ::core::default::Default for D3D12_RAYTRACING_INSTANCE_FLAGS {
21373 fn default() -> Self {
21374 Self(0)
21375 }
21376}
21377impl ::windows::core::TypeKind for D3D12_RAYTRACING_INSTANCE_FLAGS {
21378 type TypeKind = ::windows::core::CopyType;
21379}
21380impl ::core::fmt::Debug for D3D12_RAYTRACING_INSTANCE_FLAGS {
21381 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21382 f.debug_tuple("D3D12_RAYTRACING_INSTANCE_FLAGS").field(&self.0).finish()
21383 }
21384}
21385impl D3D12_RAYTRACING_INSTANCE_FLAGS {
21386 pub const fn contains(&self, other: Self) -> bool {
21387 self.0 & other.0 == other.0
21388 }
21389}
21390impl ::core::ops::BitOr for D3D12_RAYTRACING_INSTANCE_FLAGS {
21391 type Output = Self;
21392 fn bitor(self, other: Self) -> Self {
21393 Self(self.0 | other.0)
21394 }
21395}
21396impl ::core::ops::BitAnd for D3D12_RAYTRACING_INSTANCE_FLAGS {
21397 type Output = Self;
21398 fn bitand(self, other: Self) -> Self {
21399 Self(self.0 & other.0)
21400 }
21401}
21402impl ::core::ops::BitOrAssign for D3D12_RAYTRACING_INSTANCE_FLAGS {
21403 fn bitor_assign(&mut self, other: Self) {
21404 self.0.bitor_assign(other.0)
21405 }
21406}
21407impl ::core::ops::BitAndAssign for D3D12_RAYTRACING_INSTANCE_FLAGS {
21408 fn bitand_assign(&mut self, other: Self) {
21409 self.0.bitand_assign(other.0)
21410 }
21411}
21412impl ::core::ops::Not for D3D12_RAYTRACING_INSTANCE_FLAGS {
21413 type Output = Self;
21414 fn not(self) -> Self {
21415 Self(self.0.not())
21416 }
21417}
21418#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21419#[repr(transparent)]
21420#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21421pub struct D3D12_RAYTRACING_PIPELINE_FLAGS(pub i32);
21422#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21423pub const D3D12_RAYTRACING_PIPELINE_FLAG_NONE: D3D12_RAYTRACING_PIPELINE_FLAGS = D3D12_RAYTRACING_PIPELINE_FLAGS(0i32);
21424#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21425pub const D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES: D3D12_RAYTRACING_PIPELINE_FLAGS = D3D12_RAYTRACING_PIPELINE_FLAGS(256i32);
21426#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21427pub const D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES: D3D12_RAYTRACING_PIPELINE_FLAGS = D3D12_RAYTRACING_PIPELINE_FLAGS(512i32);
21428impl ::core::marker::Copy for D3D12_RAYTRACING_PIPELINE_FLAGS {}
21429impl ::core::clone::Clone for D3D12_RAYTRACING_PIPELINE_FLAGS {
21430 fn clone(&self) -> Self {
21431 *self
21432 }
21433}
21434impl ::core::default::Default for D3D12_RAYTRACING_PIPELINE_FLAGS {
21435 fn default() -> Self {
21436 Self(0)
21437 }
21438}
21439impl ::windows::core::TypeKind for D3D12_RAYTRACING_PIPELINE_FLAGS {
21440 type TypeKind = ::windows::core::CopyType;
21441}
21442impl ::core::fmt::Debug for D3D12_RAYTRACING_PIPELINE_FLAGS {
21443 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21444 f.debug_tuple("D3D12_RAYTRACING_PIPELINE_FLAGS").field(&self.0).finish()
21445 }
21446}
21447impl D3D12_RAYTRACING_PIPELINE_FLAGS {
21448 pub const fn contains(&self, other: Self) -> bool {
21449 self.0 & other.0 == other.0
21450 }
21451}
21452impl ::core::ops::BitOr for D3D12_RAYTRACING_PIPELINE_FLAGS {
21453 type Output = Self;
21454 fn bitor(self, other: Self) -> Self {
21455 Self(self.0 | other.0)
21456 }
21457}
21458impl ::core::ops::BitAnd for D3D12_RAYTRACING_PIPELINE_FLAGS {
21459 type Output = Self;
21460 fn bitand(self, other: Self) -> Self {
21461 Self(self.0 & other.0)
21462 }
21463}
21464impl ::core::ops::BitOrAssign for D3D12_RAYTRACING_PIPELINE_FLAGS {
21465 fn bitor_assign(&mut self, other: Self) {
21466 self.0.bitor_assign(other.0)
21467 }
21468}
21469impl ::core::ops::BitAndAssign for D3D12_RAYTRACING_PIPELINE_FLAGS {
21470 fn bitand_assign(&mut self, other: Self) {
21471 self.0.bitand_assign(other.0)
21472 }
21473}
21474impl ::core::ops::Not for D3D12_RAYTRACING_PIPELINE_FLAGS {
21475 type Output = Self;
21476 fn not(self) -> Self {
21477 Self(self.0.not())
21478 }
21479}
21480#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21481#[repr(transparent)]
21482#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21483pub struct D3D12_RAYTRACING_TIER(pub i32);
21484#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21485pub const D3D12_RAYTRACING_TIER_NOT_SUPPORTED: D3D12_RAYTRACING_TIER = D3D12_RAYTRACING_TIER(0i32);
21486#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21487pub const D3D12_RAYTRACING_TIER_1_0: D3D12_RAYTRACING_TIER = D3D12_RAYTRACING_TIER(10i32);
21488#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21489pub const D3D12_RAYTRACING_TIER_1_1: D3D12_RAYTRACING_TIER = D3D12_RAYTRACING_TIER(11i32);
21490impl ::core::marker::Copy for D3D12_RAYTRACING_TIER {}
21491impl ::core::clone::Clone for D3D12_RAYTRACING_TIER {
21492 fn clone(&self) -> Self {
21493 *self
21494 }
21495}
21496impl ::core::default::Default for D3D12_RAYTRACING_TIER {
21497 fn default() -> Self {
21498 Self(0)
21499 }
21500}
21501impl ::windows::core::TypeKind for D3D12_RAYTRACING_TIER {
21502 type TypeKind = ::windows::core::CopyType;
21503}
21504impl ::core::fmt::Debug for D3D12_RAYTRACING_TIER {
21505 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21506 f.debug_tuple("D3D12_RAYTRACING_TIER").field(&self.0).finish()
21507 }
21508}
21509#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21510#[repr(transparent)]
21511#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21512pub struct D3D12_RAY_FLAGS(pub i32);
21513#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21514pub const D3D12_RAY_FLAG_NONE: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(0i32);
21515#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21516pub const D3D12_RAY_FLAG_FORCE_OPAQUE: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(1i32);
21517#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21518pub const D3D12_RAY_FLAG_FORCE_NON_OPAQUE: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(2i32);
21519#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21520pub const D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(4i32);
21521#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21522pub const D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(8i32);
21523#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21524pub const D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(16i32);
21525#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21526pub const D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(32i32);
21527#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21528pub const D3D12_RAY_FLAG_CULL_OPAQUE: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(64i32);
21529#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21530pub const D3D12_RAY_FLAG_CULL_NON_OPAQUE: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(128i32);
21531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21532pub const D3D12_RAY_FLAG_SKIP_TRIANGLES: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(256i32);
21533#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21534pub const D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES: D3D12_RAY_FLAGS = D3D12_RAY_FLAGS(512i32);
21535impl ::core::marker::Copy for D3D12_RAY_FLAGS {}
21536impl ::core::clone::Clone for D3D12_RAY_FLAGS {
21537 fn clone(&self) -> Self {
21538 *self
21539 }
21540}
21541impl ::core::default::Default for D3D12_RAY_FLAGS {
21542 fn default() -> Self {
21543 Self(0)
21544 }
21545}
21546impl ::windows::core::TypeKind for D3D12_RAY_FLAGS {
21547 type TypeKind = ::windows::core::CopyType;
21548}
21549impl ::core::fmt::Debug for D3D12_RAY_FLAGS {
21550 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21551 f.debug_tuple("D3D12_RAY_FLAGS").field(&self.0).finish()
21552 }
21553}
21554impl D3D12_RAY_FLAGS {
21555 pub const fn contains(&self, other: Self) -> bool {
21556 self.0 & other.0 == other.0
21557 }
21558}
21559impl ::core::ops::BitOr for D3D12_RAY_FLAGS {
21560 type Output = Self;
21561 fn bitor(self, other: Self) -> Self {
21562 Self(self.0 | other.0)
21563 }
21564}
21565impl ::core::ops::BitAnd for D3D12_RAY_FLAGS {
21566 type Output = Self;
21567 fn bitand(self, other: Self) -> Self {
21568 Self(self.0 & other.0)
21569 }
21570}
21571impl ::core::ops::BitOrAssign for D3D12_RAY_FLAGS {
21572 fn bitor_assign(&mut self, other: Self) {
21573 self.0.bitor_assign(other.0)
21574 }
21575}
21576impl ::core::ops::BitAndAssign for D3D12_RAY_FLAGS {
21577 fn bitand_assign(&mut self, other: Self) {
21578 self.0.bitand_assign(other.0)
21579 }
21580}
21581impl ::core::ops::Not for D3D12_RAY_FLAGS {
21582 type Output = Self;
21583 fn not(self) -> Self {
21584 Self(self.0.not())
21585 }
21586}
21587#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21588#[repr(transparent)]
21589#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21590pub struct D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE(pub i32);
21591#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21592pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE(0i32);
21593#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21594pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE(1i32);
21595#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21596pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE(2i32);
21597#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21598pub const D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE = D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE(3i32);
21599impl ::core::marker::Copy for D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {}
21600impl ::core::clone::Clone for D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {
21601 fn clone(&self) -> Self {
21602 *self
21603 }
21604}
21605impl ::core::default::Default for D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {
21606 fn default() -> Self {
21607 Self(0)
21608 }
21609}
21610impl ::windows::core::TypeKind for D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {
21611 type TypeKind = ::windows::core::CopyType;
21612}
21613impl ::core::fmt::Debug for D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE {
21614 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21615 f.debug_tuple("D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE").field(&self.0).finish()
21616 }
21617}
21618#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21619#[repr(transparent)]
21620#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21621pub struct D3D12_RENDER_PASS_ENDING_ACCESS_TYPE(pub i32);
21622#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21623pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = D3D12_RENDER_PASS_ENDING_ACCESS_TYPE(0i32);
21624#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21625pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = D3D12_RENDER_PASS_ENDING_ACCESS_TYPE(1i32);
21626#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21627pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = D3D12_RENDER_PASS_ENDING_ACCESS_TYPE(2i32);
21628#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21629pub const D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE = D3D12_RENDER_PASS_ENDING_ACCESS_TYPE(3i32);
21630impl ::core::marker::Copy for D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {}
21631impl ::core::clone::Clone for D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {
21632 fn clone(&self) -> Self {
21633 *self
21634 }
21635}
21636impl ::core::default::Default for D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {
21637 fn default() -> Self {
21638 Self(0)
21639 }
21640}
21641impl ::windows::core::TypeKind for D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {
21642 type TypeKind = ::windows::core::CopyType;
21643}
21644impl ::core::fmt::Debug for D3D12_RENDER_PASS_ENDING_ACCESS_TYPE {
21645 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21646 f.debug_tuple("D3D12_RENDER_PASS_ENDING_ACCESS_TYPE").field(&self.0).finish()
21647 }
21648}
21649#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21650#[repr(transparent)]
21651#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21652pub struct D3D12_RENDER_PASS_FLAGS(pub i32);
21653#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21654pub const D3D12_RENDER_PASS_FLAG_NONE: D3D12_RENDER_PASS_FLAGS = D3D12_RENDER_PASS_FLAGS(0i32);
21655#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21656pub const D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES: D3D12_RENDER_PASS_FLAGS = D3D12_RENDER_PASS_FLAGS(1i32);
21657#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21658pub const D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS: D3D12_RENDER_PASS_FLAGS = D3D12_RENDER_PASS_FLAGS(2i32);
21659#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21660pub const D3D12_RENDER_PASS_FLAG_RESUMING_PASS: D3D12_RENDER_PASS_FLAGS = D3D12_RENDER_PASS_FLAGS(4i32);
21661impl ::core::marker::Copy for D3D12_RENDER_PASS_FLAGS {}
21662impl ::core::clone::Clone for D3D12_RENDER_PASS_FLAGS {
21663 fn clone(&self) -> Self {
21664 *self
21665 }
21666}
21667impl ::core::default::Default for D3D12_RENDER_PASS_FLAGS {
21668 fn default() -> Self {
21669 Self(0)
21670 }
21671}
21672impl ::windows::core::TypeKind for D3D12_RENDER_PASS_FLAGS {
21673 type TypeKind = ::windows::core::CopyType;
21674}
21675impl ::core::fmt::Debug for D3D12_RENDER_PASS_FLAGS {
21676 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21677 f.debug_tuple("D3D12_RENDER_PASS_FLAGS").field(&self.0).finish()
21678 }
21679}
21680impl D3D12_RENDER_PASS_FLAGS {
21681 pub const fn contains(&self, other: Self) -> bool {
21682 self.0 & other.0 == other.0
21683 }
21684}
21685impl ::core::ops::BitOr for D3D12_RENDER_PASS_FLAGS {
21686 type Output = Self;
21687 fn bitor(self, other: Self) -> Self {
21688 Self(self.0 | other.0)
21689 }
21690}
21691impl ::core::ops::BitAnd for D3D12_RENDER_PASS_FLAGS {
21692 type Output = Self;
21693 fn bitand(self, other: Self) -> Self {
21694 Self(self.0 & other.0)
21695 }
21696}
21697impl ::core::ops::BitOrAssign for D3D12_RENDER_PASS_FLAGS {
21698 fn bitor_assign(&mut self, other: Self) {
21699 self.0.bitor_assign(other.0)
21700 }
21701}
21702impl ::core::ops::BitAndAssign for D3D12_RENDER_PASS_FLAGS {
21703 fn bitand_assign(&mut self, other: Self) {
21704 self.0.bitand_assign(other.0)
21705 }
21706}
21707impl ::core::ops::Not for D3D12_RENDER_PASS_FLAGS {
21708 type Output = Self;
21709 fn not(self) -> Self {
21710 Self(self.0.not())
21711 }
21712}
21713#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21714#[repr(transparent)]
21715#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21716pub struct D3D12_RENDER_PASS_TIER(pub i32);
21717#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21718pub const D3D12_RENDER_PASS_TIER_0: D3D12_RENDER_PASS_TIER = D3D12_RENDER_PASS_TIER(0i32);
21719#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21720pub const D3D12_RENDER_PASS_TIER_1: D3D12_RENDER_PASS_TIER = D3D12_RENDER_PASS_TIER(1i32);
21721#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21722pub const D3D12_RENDER_PASS_TIER_2: D3D12_RENDER_PASS_TIER = D3D12_RENDER_PASS_TIER(2i32);
21723impl ::core::marker::Copy for D3D12_RENDER_PASS_TIER {}
21724impl ::core::clone::Clone for D3D12_RENDER_PASS_TIER {
21725 fn clone(&self) -> Self {
21726 *self
21727 }
21728}
21729impl ::core::default::Default for D3D12_RENDER_PASS_TIER {
21730 fn default() -> Self {
21731 Self(0)
21732 }
21733}
21734impl ::windows::core::TypeKind for D3D12_RENDER_PASS_TIER {
21735 type TypeKind = ::windows::core::CopyType;
21736}
21737impl ::core::fmt::Debug for D3D12_RENDER_PASS_TIER {
21738 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21739 f.debug_tuple("D3D12_RENDER_PASS_TIER").field(&self.0).finish()
21740 }
21741}
21742#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21743#[repr(transparent)]
21744#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21745pub struct D3D12_RESIDENCY_FLAGS(pub i32);
21746#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21747pub const D3D12_RESIDENCY_FLAG_NONE: D3D12_RESIDENCY_FLAGS = D3D12_RESIDENCY_FLAGS(0i32);
21748#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21749pub const D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET: D3D12_RESIDENCY_FLAGS = D3D12_RESIDENCY_FLAGS(1i32);
21750impl ::core::marker::Copy for D3D12_RESIDENCY_FLAGS {}
21751impl ::core::clone::Clone for D3D12_RESIDENCY_FLAGS {
21752 fn clone(&self) -> Self {
21753 *self
21754 }
21755}
21756impl ::core::default::Default for D3D12_RESIDENCY_FLAGS {
21757 fn default() -> Self {
21758 Self(0)
21759 }
21760}
21761impl ::windows::core::TypeKind for D3D12_RESIDENCY_FLAGS {
21762 type TypeKind = ::windows::core::CopyType;
21763}
21764impl ::core::fmt::Debug for D3D12_RESIDENCY_FLAGS {
21765 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21766 f.debug_tuple("D3D12_RESIDENCY_FLAGS").field(&self.0).finish()
21767 }
21768}
21769impl D3D12_RESIDENCY_FLAGS {
21770 pub const fn contains(&self, other: Self) -> bool {
21771 self.0 & other.0 == other.0
21772 }
21773}
21774impl ::core::ops::BitOr for D3D12_RESIDENCY_FLAGS {
21775 type Output = Self;
21776 fn bitor(self, other: Self) -> Self {
21777 Self(self.0 | other.0)
21778 }
21779}
21780impl ::core::ops::BitAnd for D3D12_RESIDENCY_FLAGS {
21781 type Output = Self;
21782 fn bitand(self, other: Self) -> Self {
21783 Self(self.0 & other.0)
21784 }
21785}
21786impl ::core::ops::BitOrAssign for D3D12_RESIDENCY_FLAGS {
21787 fn bitor_assign(&mut self, other: Self) {
21788 self.0.bitor_assign(other.0)
21789 }
21790}
21791impl ::core::ops::BitAndAssign for D3D12_RESIDENCY_FLAGS {
21792 fn bitand_assign(&mut self, other: Self) {
21793 self.0.bitand_assign(other.0)
21794 }
21795}
21796impl ::core::ops::Not for D3D12_RESIDENCY_FLAGS {
21797 type Output = Self;
21798 fn not(self) -> Self {
21799 Self(self.0.not())
21800 }
21801}
21802#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21803#[repr(transparent)]
21804#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21805pub struct D3D12_RESIDENCY_PRIORITY(pub i32);
21806#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21807pub const D3D12_RESIDENCY_PRIORITY_MINIMUM: D3D12_RESIDENCY_PRIORITY = D3D12_RESIDENCY_PRIORITY(671088640i32);
21808#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21809pub const D3D12_RESIDENCY_PRIORITY_LOW: D3D12_RESIDENCY_PRIORITY = D3D12_RESIDENCY_PRIORITY(1342177280i32);
21810#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21811pub const D3D12_RESIDENCY_PRIORITY_NORMAL: D3D12_RESIDENCY_PRIORITY = D3D12_RESIDENCY_PRIORITY(2013265920i32);
21812#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21813pub const D3D12_RESIDENCY_PRIORITY_HIGH: D3D12_RESIDENCY_PRIORITY = D3D12_RESIDENCY_PRIORITY(-1610547200i32);
21814#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21815pub const D3D12_RESIDENCY_PRIORITY_MAXIMUM: D3D12_RESIDENCY_PRIORITY = D3D12_RESIDENCY_PRIORITY(-939524096i32);
21816impl ::core::marker::Copy for D3D12_RESIDENCY_PRIORITY {}
21817impl ::core::clone::Clone for D3D12_RESIDENCY_PRIORITY {
21818 fn clone(&self) -> Self {
21819 *self
21820 }
21821}
21822impl ::core::default::Default for D3D12_RESIDENCY_PRIORITY {
21823 fn default() -> Self {
21824 Self(0)
21825 }
21826}
21827impl ::windows::core::TypeKind for D3D12_RESIDENCY_PRIORITY {
21828 type TypeKind = ::windows::core::CopyType;
21829}
21830impl ::core::fmt::Debug for D3D12_RESIDENCY_PRIORITY {
21831 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21832 f.debug_tuple("D3D12_RESIDENCY_PRIORITY").field(&self.0).finish()
21833 }
21834}
21835#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21836#[repr(transparent)]
21837#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21838pub struct D3D12_RESOLVE_MODE(pub i32);
21839#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21840pub const D3D12_RESOLVE_MODE_DECOMPRESS: D3D12_RESOLVE_MODE = D3D12_RESOLVE_MODE(0i32);
21841#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21842pub const D3D12_RESOLVE_MODE_MIN: D3D12_RESOLVE_MODE = D3D12_RESOLVE_MODE(1i32);
21843#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21844pub const D3D12_RESOLVE_MODE_MAX: D3D12_RESOLVE_MODE = D3D12_RESOLVE_MODE(2i32);
21845#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21846pub const D3D12_RESOLVE_MODE_AVERAGE: D3D12_RESOLVE_MODE = D3D12_RESOLVE_MODE(3i32);
21847#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21848pub const D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK: D3D12_RESOLVE_MODE = D3D12_RESOLVE_MODE(4i32);
21849#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21850pub const D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK: D3D12_RESOLVE_MODE = D3D12_RESOLVE_MODE(5i32);
21851impl ::core::marker::Copy for D3D12_RESOLVE_MODE {}
21852impl ::core::clone::Clone for D3D12_RESOLVE_MODE {
21853 fn clone(&self) -> Self {
21854 *self
21855 }
21856}
21857impl ::core::default::Default for D3D12_RESOLVE_MODE {
21858 fn default() -> Self {
21859 Self(0)
21860 }
21861}
21862impl ::windows::core::TypeKind for D3D12_RESOLVE_MODE {
21863 type TypeKind = ::windows::core::CopyType;
21864}
21865impl ::core::fmt::Debug for D3D12_RESOLVE_MODE {
21866 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21867 f.debug_tuple("D3D12_RESOLVE_MODE").field(&self.0).finish()
21868 }
21869}
21870#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21871#[repr(transparent)]
21872#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21873pub struct D3D12_RESOURCE_BARRIER_FLAGS(pub i32);
21874#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21875pub const D3D12_RESOURCE_BARRIER_FLAG_NONE: D3D12_RESOURCE_BARRIER_FLAGS = D3D12_RESOURCE_BARRIER_FLAGS(0i32);
21876#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21877pub const D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY: D3D12_RESOURCE_BARRIER_FLAGS = D3D12_RESOURCE_BARRIER_FLAGS(1i32);
21878#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21879pub const D3D12_RESOURCE_BARRIER_FLAG_END_ONLY: D3D12_RESOURCE_BARRIER_FLAGS = D3D12_RESOURCE_BARRIER_FLAGS(2i32);
21880impl ::core::marker::Copy for D3D12_RESOURCE_BARRIER_FLAGS {}
21881impl ::core::clone::Clone for D3D12_RESOURCE_BARRIER_FLAGS {
21882 fn clone(&self) -> Self {
21883 *self
21884 }
21885}
21886impl ::core::default::Default for D3D12_RESOURCE_BARRIER_FLAGS {
21887 fn default() -> Self {
21888 Self(0)
21889 }
21890}
21891impl ::windows::core::TypeKind for D3D12_RESOURCE_BARRIER_FLAGS {
21892 type TypeKind = ::windows::core::CopyType;
21893}
21894impl ::core::fmt::Debug for D3D12_RESOURCE_BARRIER_FLAGS {
21895 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21896 f.debug_tuple("D3D12_RESOURCE_BARRIER_FLAGS").field(&self.0).finish()
21897 }
21898}
21899impl D3D12_RESOURCE_BARRIER_FLAGS {
21900 pub const fn contains(&self, other: Self) -> bool {
21901 self.0 & other.0 == other.0
21902 }
21903}
21904impl ::core::ops::BitOr for D3D12_RESOURCE_BARRIER_FLAGS {
21905 type Output = Self;
21906 fn bitor(self, other: Self) -> Self {
21907 Self(self.0 | other.0)
21908 }
21909}
21910impl ::core::ops::BitAnd for D3D12_RESOURCE_BARRIER_FLAGS {
21911 type Output = Self;
21912 fn bitand(self, other: Self) -> Self {
21913 Self(self.0 & other.0)
21914 }
21915}
21916impl ::core::ops::BitOrAssign for D3D12_RESOURCE_BARRIER_FLAGS {
21917 fn bitor_assign(&mut self, other: Self) {
21918 self.0.bitor_assign(other.0)
21919 }
21920}
21921impl ::core::ops::BitAndAssign for D3D12_RESOURCE_BARRIER_FLAGS {
21922 fn bitand_assign(&mut self, other: Self) {
21923 self.0.bitand_assign(other.0)
21924 }
21925}
21926impl ::core::ops::Not for D3D12_RESOURCE_BARRIER_FLAGS {
21927 type Output = Self;
21928 fn not(self) -> Self {
21929 Self(self.0.not())
21930 }
21931}
21932#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21933#[repr(transparent)]
21934#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21935pub struct D3D12_RESOURCE_BARRIER_TYPE(pub i32);
21936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21937pub const D3D12_RESOURCE_BARRIER_TYPE_TRANSITION: D3D12_RESOURCE_BARRIER_TYPE = D3D12_RESOURCE_BARRIER_TYPE(0i32);
21938#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21939pub const D3D12_RESOURCE_BARRIER_TYPE_ALIASING: D3D12_RESOURCE_BARRIER_TYPE = D3D12_RESOURCE_BARRIER_TYPE(1i32);
21940#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21941pub const D3D12_RESOURCE_BARRIER_TYPE_UAV: D3D12_RESOURCE_BARRIER_TYPE = D3D12_RESOURCE_BARRIER_TYPE(2i32);
21942impl ::core::marker::Copy for D3D12_RESOURCE_BARRIER_TYPE {}
21943impl ::core::clone::Clone for D3D12_RESOURCE_BARRIER_TYPE {
21944 fn clone(&self) -> Self {
21945 *self
21946 }
21947}
21948impl ::core::default::Default for D3D12_RESOURCE_BARRIER_TYPE {
21949 fn default() -> Self {
21950 Self(0)
21951 }
21952}
21953impl ::windows::core::TypeKind for D3D12_RESOURCE_BARRIER_TYPE {
21954 type TypeKind = ::windows::core::CopyType;
21955}
21956impl ::core::fmt::Debug for D3D12_RESOURCE_BARRIER_TYPE {
21957 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21958 f.debug_tuple("D3D12_RESOURCE_BARRIER_TYPE").field(&self.0).finish()
21959 }
21960}
21961#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21962#[repr(transparent)]
21963#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21964pub struct D3D12_RESOURCE_BINDING_TIER(pub i32);
21965#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21966pub const D3D12_RESOURCE_BINDING_TIER_1: D3D12_RESOURCE_BINDING_TIER = D3D12_RESOURCE_BINDING_TIER(1i32);
21967#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21968pub const D3D12_RESOURCE_BINDING_TIER_2: D3D12_RESOURCE_BINDING_TIER = D3D12_RESOURCE_BINDING_TIER(2i32);
21969#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21970pub const D3D12_RESOURCE_BINDING_TIER_3: D3D12_RESOURCE_BINDING_TIER = D3D12_RESOURCE_BINDING_TIER(3i32);
21971impl ::core::marker::Copy for D3D12_RESOURCE_BINDING_TIER {}
21972impl ::core::clone::Clone for D3D12_RESOURCE_BINDING_TIER {
21973 fn clone(&self) -> Self {
21974 *self
21975 }
21976}
21977impl ::core::default::Default for D3D12_RESOURCE_BINDING_TIER {
21978 fn default() -> Self {
21979 Self(0)
21980 }
21981}
21982impl ::windows::core::TypeKind for D3D12_RESOURCE_BINDING_TIER {
21983 type TypeKind = ::windows::core::CopyType;
21984}
21985impl ::core::fmt::Debug for D3D12_RESOURCE_BINDING_TIER {
21986 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
21987 f.debug_tuple("D3D12_RESOURCE_BINDING_TIER").field(&self.0).finish()
21988 }
21989}
21990#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21991#[repr(transparent)]
21992#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
21993pub struct D3D12_RESOURCE_DIMENSION(pub i32);
21994#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21995pub const D3D12_RESOURCE_DIMENSION_UNKNOWN: D3D12_RESOURCE_DIMENSION = D3D12_RESOURCE_DIMENSION(0i32);
21996#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21997pub const D3D12_RESOURCE_DIMENSION_BUFFER: D3D12_RESOURCE_DIMENSION = D3D12_RESOURCE_DIMENSION(1i32);
21998#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
21999pub const D3D12_RESOURCE_DIMENSION_TEXTURE1D: D3D12_RESOURCE_DIMENSION = D3D12_RESOURCE_DIMENSION(2i32);
22000#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22001pub const D3D12_RESOURCE_DIMENSION_TEXTURE2D: D3D12_RESOURCE_DIMENSION = D3D12_RESOURCE_DIMENSION(3i32);
22002#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22003pub const D3D12_RESOURCE_DIMENSION_TEXTURE3D: D3D12_RESOURCE_DIMENSION = D3D12_RESOURCE_DIMENSION(4i32);
22004impl ::core::marker::Copy for D3D12_RESOURCE_DIMENSION {}
22005impl ::core::clone::Clone for D3D12_RESOURCE_DIMENSION {
22006 fn clone(&self) -> Self {
22007 *self
22008 }
22009}
22010impl ::core::default::Default for D3D12_RESOURCE_DIMENSION {
22011 fn default() -> Self {
22012 Self(0)
22013 }
22014}
22015impl ::windows::core::TypeKind for D3D12_RESOURCE_DIMENSION {
22016 type TypeKind = ::windows::core::CopyType;
22017}
22018impl ::core::fmt::Debug for D3D12_RESOURCE_DIMENSION {
22019 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22020 f.debug_tuple("D3D12_RESOURCE_DIMENSION").field(&self.0).finish()
22021 }
22022}
22023#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22024#[repr(transparent)]
22025#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22026pub struct D3D12_RESOURCE_FLAGS(pub i32);
22027#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22028pub const D3D12_RESOURCE_FLAG_NONE: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(0i32);
22029#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22030pub const D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(1i32);
22031#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22032pub const D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(2i32);
22033#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22034pub const D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(4i32);
22035#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22036pub const D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(8i32);
22037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22038pub const D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(16i32);
22039#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22040pub const D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(32i32);
22041#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22042pub const D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(64i32);
22043#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22044pub const D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(128i32);
22045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22046pub const D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE: D3D12_RESOURCE_FLAGS = D3D12_RESOURCE_FLAGS(256i32);
22047impl ::core::marker::Copy for D3D12_RESOURCE_FLAGS {}
22048impl ::core::clone::Clone for D3D12_RESOURCE_FLAGS {
22049 fn clone(&self) -> Self {
22050 *self
22051 }
22052}
22053impl ::core::default::Default for D3D12_RESOURCE_FLAGS {
22054 fn default() -> Self {
22055 Self(0)
22056 }
22057}
22058impl ::windows::core::TypeKind for D3D12_RESOURCE_FLAGS {
22059 type TypeKind = ::windows::core::CopyType;
22060}
22061impl ::core::fmt::Debug for D3D12_RESOURCE_FLAGS {
22062 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22063 f.debug_tuple("D3D12_RESOURCE_FLAGS").field(&self.0).finish()
22064 }
22065}
22066impl D3D12_RESOURCE_FLAGS {
22067 pub const fn contains(&self, other: Self) -> bool {
22068 self.0 & other.0 == other.0
22069 }
22070}
22071impl ::core::ops::BitOr for D3D12_RESOURCE_FLAGS {
22072 type Output = Self;
22073 fn bitor(self, other: Self) -> Self {
22074 Self(self.0 | other.0)
22075 }
22076}
22077impl ::core::ops::BitAnd for D3D12_RESOURCE_FLAGS {
22078 type Output = Self;
22079 fn bitand(self, other: Self) -> Self {
22080 Self(self.0 & other.0)
22081 }
22082}
22083impl ::core::ops::BitOrAssign for D3D12_RESOURCE_FLAGS {
22084 fn bitor_assign(&mut self, other: Self) {
22085 self.0.bitor_assign(other.0)
22086 }
22087}
22088impl ::core::ops::BitAndAssign for D3D12_RESOURCE_FLAGS {
22089 fn bitand_assign(&mut self, other: Self) {
22090 self.0.bitand_assign(other.0)
22091 }
22092}
22093impl ::core::ops::Not for D3D12_RESOURCE_FLAGS {
22094 type Output = Self;
22095 fn not(self) -> Self {
22096 Self(self.0.not())
22097 }
22098}
22099#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22100#[repr(transparent)]
22101#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22102pub struct D3D12_RESOURCE_HEAP_TIER(pub i32);
22103#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22104pub const D3D12_RESOURCE_HEAP_TIER_1: D3D12_RESOURCE_HEAP_TIER = D3D12_RESOURCE_HEAP_TIER(1i32);
22105#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22106pub const D3D12_RESOURCE_HEAP_TIER_2: D3D12_RESOURCE_HEAP_TIER = D3D12_RESOURCE_HEAP_TIER(2i32);
22107impl ::core::marker::Copy for D3D12_RESOURCE_HEAP_TIER {}
22108impl ::core::clone::Clone for D3D12_RESOURCE_HEAP_TIER {
22109 fn clone(&self) -> Self {
22110 *self
22111 }
22112}
22113impl ::core::default::Default for D3D12_RESOURCE_HEAP_TIER {
22114 fn default() -> Self {
22115 Self(0)
22116 }
22117}
22118impl ::windows::core::TypeKind for D3D12_RESOURCE_HEAP_TIER {
22119 type TypeKind = ::windows::core::CopyType;
22120}
22121impl ::core::fmt::Debug for D3D12_RESOURCE_HEAP_TIER {
22122 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22123 f.debug_tuple("D3D12_RESOURCE_HEAP_TIER").field(&self.0).finish()
22124 }
22125}
22126#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22127#[repr(transparent)]
22128#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22129pub struct D3D12_RESOURCE_STATES(pub i32);
22130#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22131pub const D3D12_RESOURCE_STATE_COMMON: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(0i32);
22132#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22133pub const D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(1i32);
22134#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22135pub const D3D12_RESOURCE_STATE_INDEX_BUFFER: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(2i32);
22136#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22137pub const D3D12_RESOURCE_STATE_RENDER_TARGET: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(4i32);
22138#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22139pub const D3D12_RESOURCE_STATE_UNORDERED_ACCESS: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(8i32);
22140#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22141pub const D3D12_RESOURCE_STATE_DEPTH_WRITE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(16i32);
22142#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22143pub const D3D12_RESOURCE_STATE_DEPTH_READ: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(32i32);
22144#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22145pub const D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(64i32);
22146#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22147pub const D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(128i32);
22148#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22149pub const D3D12_RESOURCE_STATE_STREAM_OUT: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(256i32);
22150#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22151pub const D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(512i32);
22152#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22153pub const D3D12_RESOURCE_STATE_COPY_DEST: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(1024i32);
22154#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22155pub const D3D12_RESOURCE_STATE_COPY_SOURCE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(2048i32);
22156#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22157pub const D3D12_RESOURCE_STATE_RESOLVE_DEST: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(4096i32);
22158#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22159pub const D3D12_RESOURCE_STATE_RESOLVE_SOURCE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(8192i32);
22160#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22161pub const D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(4194304i32);
22162#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22163pub const D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(16777216i32);
22164#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22165pub const D3D12_RESOURCE_STATE_GENERIC_READ: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(2755i32);
22166#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22167pub const D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(192i32);
22168#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22169pub const D3D12_RESOURCE_STATE_PRESENT: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(0i32);
22170#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22171pub const D3D12_RESOURCE_STATE_PREDICATION: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(512i32);
22172#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22173pub const D3D12_RESOURCE_STATE_VIDEO_DECODE_READ: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(65536i32);
22174#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22175pub const D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(131072i32);
22176#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22177pub const D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(262144i32);
22178#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22179pub const D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(524288i32);
22180#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22181pub const D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(2097152i32);
22182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22183pub const D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE: D3D12_RESOURCE_STATES = D3D12_RESOURCE_STATES(8388608i32);
22184impl ::core::marker::Copy for D3D12_RESOURCE_STATES {}
22185impl ::core::clone::Clone for D3D12_RESOURCE_STATES {
22186 fn clone(&self) -> Self {
22187 *self
22188 }
22189}
22190impl ::core::default::Default for D3D12_RESOURCE_STATES {
22191 fn default() -> Self {
22192 Self(0)
22193 }
22194}
22195impl ::windows::core::TypeKind for D3D12_RESOURCE_STATES {
22196 type TypeKind = ::windows::core::CopyType;
22197}
22198impl ::core::fmt::Debug for D3D12_RESOURCE_STATES {
22199 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22200 f.debug_tuple("D3D12_RESOURCE_STATES").field(&self.0).finish()
22201 }
22202}
22203impl D3D12_RESOURCE_STATES {
22204 pub const fn contains(&self, other: Self) -> bool {
22205 self.0 & other.0 == other.0
22206 }
22207}
22208impl ::core::ops::BitOr for D3D12_RESOURCE_STATES {
22209 type Output = Self;
22210 fn bitor(self, other: Self) -> Self {
22211 Self(self.0 | other.0)
22212 }
22213}
22214impl ::core::ops::BitAnd for D3D12_RESOURCE_STATES {
22215 type Output = Self;
22216 fn bitand(self, other: Self) -> Self {
22217 Self(self.0 & other.0)
22218 }
22219}
22220impl ::core::ops::BitOrAssign for D3D12_RESOURCE_STATES {
22221 fn bitor_assign(&mut self, other: Self) {
22222 self.0.bitor_assign(other.0)
22223 }
22224}
22225impl ::core::ops::BitAndAssign for D3D12_RESOURCE_STATES {
22226 fn bitand_assign(&mut self, other: Self) {
22227 self.0.bitand_assign(other.0)
22228 }
22229}
22230impl ::core::ops::Not for D3D12_RESOURCE_STATES {
22231 type Output = Self;
22232 fn not(self) -> Self {
22233 Self(self.0.not())
22234 }
22235}
22236#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22237#[repr(transparent)]
22238#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22239pub struct D3D12_RLDO_FLAGS(pub i32);
22240#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22241pub const D3D12_RLDO_NONE: D3D12_RLDO_FLAGS = D3D12_RLDO_FLAGS(0i32);
22242#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22243pub const D3D12_RLDO_SUMMARY: D3D12_RLDO_FLAGS = D3D12_RLDO_FLAGS(1i32);
22244#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22245pub const D3D12_RLDO_DETAIL: D3D12_RLDO_FLAGS = D3D12_RLDO_FLAGS(2i32);
22246#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22247pub const D3D12_RLDO_IGNORE_INTERNAL: D3D12_RLDO_FLAGS = D3D12_RLDO_FLAGS(4i32);
22248impl ::core::marker::Copy for D3D12_RLDO_FLAGS {}
22249impl ::core::clone::Clone for D3D12_RLDO_FLAGS {
22250 fn clone(&self) -> Self {
22251 *self
22252 }
22253}
22254impl ::core::default::Default for D3D12_RLDO_FLAGS {
22255 fn default() -> Self {
22256 Self(0)
22257 }
22258}
22259impl ::windows::core::TypeKind for D3D12_RLDO_FLAGS {
22260 type TypeKind = ::windows::core::CopyType;
22261}
22262impl ::core::fmt::Debug for D3D12_RLDO_FLAGS {
22263 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22264 f.debug_tuple("D3D12_RLDO_FLAGS").field(&self.0).finish()
22265 }
22266}
22267impl D3D12_RLDO_FLAGS {
22268 pub const fn contains(&self, other: Self) -> bool {
22269 self.0 & other.0 == other.0
22270 }
22271}
22272impl ::core::ops::BitOr for D3D12_RLDO_FLAGS {
22273 type Output = Self;
22274 fn bitor(self, other: Self) -> Self {
22275 Self(self.0 | other.0)
22276 }
22277}
22278impl ::core::ops::BitAnd for D3D12_RLDO_FLAGS {
22279 type Output = Self;
22280 fn bitand(self, other: Self) -> Self {
22281 Self(self.0 & other.0)
22282 }
22283}
22284impl ::core::ops::BitOrAssign for D3D12_RLDO_FLAGS {
22285 fn bitor_assign(&mut self, other: Self) {
22286 self.0.bitor_assign(other.0)
22287 }
22288}
22289impl ::core::ops::BitAndAssign for D3D12_RLDO_FLAGS {
22290 fn bitand_assign(&mut self, other: Self) {
22291 self.0.bitand_assign(other.0)
22292 }
22293}
22294impl ::core::ops::Not for D3D12_RLDO_FLAGS {
22295 type Output = Self;
22296 fn not(self) -> Self {
22297 Self(self.0.not())
22298 }
22299}
22300#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22301#[repr(transparent)]
22302#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22303pub struct D3D12_ROOT_DESCRIPTOR_FLAGS(pub i32);
22304#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22305pub const D3D12_ROOT_DESCRIPTOR_FLAG_NONE: D3D12_ROOT_DESCRIPTOR_FLAGS = D3D12_ROOT_DESCRIPTOR_FLAGS(0i32);
22306#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22307pub const D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE: D3D12_ROOT_DESCRIPTOR_FLAGS = D3D12_ROOT_DESCRIPTOR_FLAGS(2i32);
22308#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22309pub const D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE: D3D12_ROOT_DESCRIPTOR_FLAGS = D3D12_ROOT_DESCRIPTOR_FLAGS(4i32);
22310#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22311pub const D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC: D3D12_ROOT_DESCRIPTOR_FLAGS = D3D12_ROOT_DESCRIPTOR_FLAGS(8i32);
22312impl ::core::marker::Copy for D3D12_ROOT_DESCRIPTOR_FLAGS {}
22313impl ::core::clone::Clone for D3D12_ROOT_DESCRIPTOR_FLAGS {
22314 fn clone(&self) -> Self {
22315 *self
22316 }
22317}
22318impl ::core::default::Default for D3D12_ROOT_DESCRIPTOR_FLAGS {
22319 fn default() -> Self {
22320 Self(0)
22321 }
22322}
22323impl ::windows::core::TypeKind for D3D12_ROOT_DESCRIPTOR_FLAGS {
22324 type TypeKind = ::windows::core::CopyType;
22325}
22326impl ::core::fmt::Debug for D3D12_ROOT_DESCRIPTOR_FLAGS {
22327 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22328 f.debug_tuple("D3D12_ROOT_DESCRIPTOR_FLAGS").field(&self.0).finish()
22329 }
22330}
22331impl D3D12_ROOT_DESCRIPTOR_FLAGS {
22332 pub const fn contains(&self, other: Self) -> bool {
22333 self.0 & other.0 == other.0
22334 }
22335}
22336impl ::core::ops::BitOr for D3D12_ROOT_DESCRIPTOR_FLAGS {
22337 type Output = Self;
22338 fn bitor(self, other: Self) -> Self {
22339 Self(self.0 | other.0)
22340 }
22341}
22342impl ::core::ops::BitAnd for D3D12_ROOT_DESCRIPTOR_FLAGS {
22343 type Output = Self;
22344 fn bitand(self, other: Self) -> Self {
22345 Self(self.0 & other.0)
22346 }
22347}
22348impl ::core::ops::BitOrAssign for D3D12_ROOT_DESCRIPTOR_FLAGS {
22349 fn bitor_assign(&mut self, other: Self) {
22350 self.0.bitor_assign(other.0)
22351 }
22352}
22353impl ::core::ops::BitAndAssign for D3D12_ROOT_DESCRIPTOR_FLAGS {
22354 fn bitand_assign(&mut self, other: Self) {
22355 self.0.bitand_assign(other.0)
22356 }
22357}
22358impl ::core::ops::Not for D3D12_ROOT_DESCRIPTOR_FLAGS {
22359 type Output = Self;
22360 fn not(self) -> Self {
22361 Self(self.0.not())
22362 }
22363}
22364#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22365#[repr(transparent)]
22366#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22367pub struct D3D12_ROOT_PARAMETER_TYPE(pub i32);
22368#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22369pub const D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: D3D12_ROOT_PARAMETER_TYPE = D3D12_ROOT_PARAMETER_TYPE(0i32);
22370#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22371pub const D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: D3D12_ROOT_PARAMETER_TYPE = D3D12_ROOT_PARAMETER_TYPE(1i32);
22372#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22373pub const D3D12_ROOT_PARAMETER_TYPE_CBV: D3D12_ROOT_PARAMETER_TYPE = D3D12_ROOT_PARAMETER_TYPE(2i32);
22374#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22375pub const D3D12_ROOT_PARAMETER_TYPE_SRV: D3D12_ROOT_PARAMETER_TYPE = D3D12_ROOT_PARAMETER_TYPE(3i32);
22376#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22377pub const D3D12_ROOT_PARAMETER_TYPE_UAV: D3D12_ROOT_PARAMETER_TYPE = D3D12_ROOT_PARAMETER_TYPE(4i32);
22378impl ::core::marker::Copy for D3D12_ROOT_PARAMETER_TYPE {}
22379impl ::core::clone::Clone for D3D12_ROOT_PARAMETER_TYPE {
22380 fn clone(&self) -> Self {
22381 *self
22382 }
22383}
22384impl ::core::default::Default for D3D12_ROOT_PARAMETER_TYPE {
22385 fn default() -> Self {
22386 Self(0)
22387 }
22388}
22389impl ::windows::core::TypeKind for D3D12_ROOT_PARAMETER_TYPE {
22390 type TypeKind = ::windows::core::CopyType;
22391}
22392impl ::core::fmt::Debug for D3D12_ROOT_PARAMETER_TYPE {
22393 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22394 f.debug_tuple("D3D12_ROOT_PARAMETER_TYPE").field(&self.0).finish()
22395 }
22396}
22397#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22398#[repr(transparent)]
22399#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22400pub struct D3D12_ROOT_SIGNATURE_FLAGS(pub i32);
22401#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22402pub const D3D12_ROOT_SIGNATURE_FLAG_NONE: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(0i32);
22403#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22404pub const D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(1i32);
22405#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22406pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(2i32);
22407#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22408pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(4i32);
22409#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22410pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(8i32);
22411#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22412pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(16i32);
22413#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22414pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(32i32);
22415#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22416pub const D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(64i32);
22417#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22418pub const D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(128i32);
22419#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22420pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(256i32);
22421#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22422pub const D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(512i32);
22423#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22424pub const D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(1024i32);
22425#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22426pub const D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED: D3D12_ROOT_SIGNATURE_FLAGS = D3D12_ROOT_SIGNATURE_FLAGS(2048i32);
22427impl ::core::marker::Copy for D3D12_ROOT_SIGNATURE_FLAGS {}
22428impl ::core::clone::Clone for D3D12_ROOT_SIGNATURE_FLAGS {
22429 fn clone(&self) -> Self {
22430 *self
22431 }
22432}
22433impl ::core::default::Default for D3D12_ROOT_SIGNATURE_FLAGS {
22434 fn default() -> Self {
22435 Self(0)
22436 }
22437}
22438impl ::windows::core::TypeKind for D3D12_ROOT_SIGNATURE_FLAGS {
22439 type TypeKind = ::windows::core::CopyType;
22440}
22441impl ::core::fmt::Debug for D3D12_ROOT_SIGNATURE_FLAGS {
22442 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22443 f.debug_tuple("D3D12_ROOT_SIGNATURE_FLAGS").field(&self.0).finish()
22444 }
22445}
22446impl D3D12_ROOT_SIGNATURE_FLAGS {
22447 pub const fn contains(&self, other: Self) -> bool {
22448 self.0 & other.0 == other.0
22449 }
22450}
22451impl ::core::ops::BitOr for D3D12_ROOT_SIGNATURE_FLAGS {
22452 type Output = Self;
22453 fn bitor(self, other: Self) -> Self {
22454 Self(self.0 | other.0)
22455 }
22456}
22457impl ::core::ops::BitAnd for D3D12_ROOT_SIGNATURE_FLAGS {
22458 type Output = Self;
22459 fn bitand(self, other: Self) -> Self {
22460 Self(self.0 & other.0)
22461 }
22462}
22463impl ::core::ops::BitOrAssign for D3D12_ROOT_SIGNATURE_FLAGS {
22464 fn bitor_assign(&mut self, other: Self) {
22465 self.0.bitor_assign(other.0)
22466 }
22467}
22468impl ::core::ops::BitAndAssign for D3D12_ROOT_SIGNATURE_FLAGS {
22469 fn bitand_assign(&mut self, other: Self) {
22470 self.0.bitand_assign(other.0)
22471 }
22472}
22473impl ::core::ops::Not for D3D12_ROOT_SIGNATURE_FLAGS {
22474 type Output = Self;
22475 fn not(self) -> Self {
22476 Self(self.0.not())
22477 }
22478}
22479#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22480#[repr(transparent)]
22481#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22482pub struct D3D12_RTV_DIMENSION(pub i32);
22483#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22484pub const D3D12_RTV_DIMENSION_UNKNOWN: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(0i32);
22485#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22486pub const D3D12_RTV_DIMENSION_BUFFER: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(1i32);
22487#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22488pub const D3D12_RTV_DIMENSION_TEXTURE1D: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(2i32);
22489#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22490pub const D3D12_RTV_DIMENSION_TEXTURE1DARRAY: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(3i32);
22491#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22492pub const D3D12_RTV_DIMENSION_TEXTURE2D: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(4i32);
22493#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22494pub const D3D12_RTV_DIMENSION_TEXTURE2DARRAY: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(5i32);
22495#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22496pub const D3D12_RTV_DIMENSION_TEXTURE2DMS: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(6i32);
22497#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22498pub const D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(7i32);
22499#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22500pub const D3D12_RTV_DIMENSION_TEXTURE3D: D3D12_RTV_DIMENSION = D3D12_RTV_DIMENSION(8i32);
22501impl ::core::marker::Copy for D3D12_RTV_DIMENSION {}
22502impl ::core::clone::Clone for D3D12_RTV_DIMENSION {
22503 fn clone(&self) -> Self {
22504 *self
22505 }
22506}
22507impl ::core::default::Default for D3D12_RTV_DIMENSION {
22508 fn default() -> Self {
22509 Self(0)
22510 }
22511}
22512impl ::windows::core::TypeKind for D3D12_RTV_DIMENSION {
22513 type TypeKind = ::windows::core::CopyType;
22514}
22515impl ::core::fmt::Debug for D3D12_RTV_DIMENSION {
22516 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22517 f.debug_tuple("D3D12_RTV_DIMENSION").field(&self.0).finish()
22518 }
22519}
22520#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22521#[repr(transparent)]
22522#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22523pub struct D3D12_SAMPLER_FEEDBACK_TIER(pub i32);
22524#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22525pub const D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED: D3D12_SAMPLER_FEEDBACK_TIER = D3D12_SAMPLER_FEEDBACK_TIER(0i32);
22526#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22527pub const D3D12_SAMPLER_FEEDBACK_TIER_0_9: D3D12_SAMPLER_FEEDBACK_TIER = D3D12_SAMPLER_FEEDBACK_TIER(90i32);
22528#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22529pub const D3D12_SAMPLER_FEEDBACK_TIER_1_0: D3D12_SAMPLER_FEEDBACK_TIER = D3D12_SAMPLER_FEEDBACK_TIER(100i32);
22530impl ::core::marker::Copy for D3D12_SAMPLER_FEEDBACK_TIER {}
22531impl ::core::clone::Clone for D3D12_SAMPLER_FEEDBACK_TIER {
22532 fn clone(&self) -> Self {
22533 *self
22534 }
22535}
22536impl ::core::default::Default for D3D12_SAMPLER_FEEDBACK_TIER {
22537 fn default() -> Self {
22538 Self(0)
22539 }
22540}
22541impl ::windows::core::TypeKind for D3D12_SAMPLER_FEEDBACK_TIER {
22542 type TypeKind = ::windows::core::CopyType;
22543}
22544impl ::core::fmt::Debug for D3D12_SAMPLER_FEEDBACK_TIER {
22545 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22546 f.debug_tuple("D3D12_SAMPLER_FEEDBACK_TIER").field(&self.0).finish()
22547 }
22548}
22549#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22550#[repr(transparent)]
22551#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22552pub struct D3D12_SAMPLER_FLAGS(pub i32);
22553#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22554pub const D3D12_SAMPLER_FLAG_NONE: D3D12_SAMPLER_FLAGS = D3D12_SAMPLER_FLAGS(0i32);
22555#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22556pub const D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR: D3D12_SAMPLER_FLAGS = D3D12_SAMPLER_FLAGS(1i32);
22557impl ::core::marker::Copy for D3D12_SAMPLER_FLAGS {}
22558impl ::core::clone::Clone for D3D12_SAMPLER_FLAGS {
22559 fn clone(&self) -> Self {
22560 *self
22561 }
22562}
22563impl ::core::default::Default for D3D12_SAMPLER_FLAGS {
22564 fn default() -> Self {
22565 Self(0)
22566 }
22567}
22568impl ::windows::core::TypeKind for D3D12_SAMPLER_FLAGS {
22569 type TypeKind = ::windows::core::CopyType;
22570}
22571impl ::core::fmt::Debug for D3D12_SAMPLER_FLAGS {
22572 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22573 f.debug_tuple("D3D12_SAMPLER_FLAGS").field(&self.0).finish()
22574 }
22575}
22576impl D3D12_SAMPLER_FLAGS {
22577 pub const fn contains(&self, other: Self) -> bool {
22578 self.0 & other.0 == other.0
22579 }
22580}
22581impl ::core::ops::BitOr for D3D12_SAMPLER_FLAGS {
22582 type Output = Self;
22583 fn bitor(self, other: Self) -> Self {
22584 Self(self.0 | other.0)
22585 }
22586}
22587impl ::core::ops::BitAnd for D3D12_SAMPLER_FLAGS {
22588 type Output = Self;
22589 fn bitand(self, other: Self) -> Self {
22590 Self(self.0 & other.0)
22591 }
22592}
22593impl ::core::ops::BitOrAssign for D3D12_SAMPLER_FLAGS {
22594 fn bitor_assign(&mut self, other: Self) {
22595 self.0.bitor_assign(other.0)
22596 }
22597}
22598impl ::core::ops::BitAndAssign for D3D12_SAMPLER_FLAGS {
22599 fn bitand_assign(&mut self, other: Self) {
22600 self.0.bitand_assign(other.0)
22601 }
22602}
22603impl ::core::ops::Not for D3D12_SAMPLER_FLAGS {
22604 type Output = Self;
22605 fn not(self) -> Self {
22606 Self(self.0.not())
22607 }
22608}
22609#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22610#[repr(transparent)]
22611#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22612pub struct D3D12_SERIALIZED_DATA_TYPE(pub i32);
22613#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22614pub const D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE: D3D12_SERIALIZED_DATA_TYPE = D3D12_SERIALIZED_DATA_TYPE(0i32);
22615impl ::core::marker::Copy for D3D12_SERIALIZED_DATA_TYPE {}
22616impl ::core::clone::Clone for D3D12_SERIALIZED_DATA_TYPE {
22617 fn clone(&self) -> Self {
22618 *self
22619 }
22620}
22621impl ::core::default::Default for D3D12_SERIALIZED_DATA_TYPE {
22622 fn default() -> Self {
22623 Self(0)
22624 }
22625}
22626impl ::windows::core::TypeKind for D3D12_SERIALIZED_DATA_TYPE {
22627 type TypeKind = ::windows::core::CopyType;
22628}
22629impl ::core::fmt::Debug for D3D12_SERIALIZED_DATA_TYPE {
22630 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22631 f.debug_tuple("D3D12_SERIALIZED_DATA_TYPE").field(&self.0).finish()
22632 }
22633}
22634#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22635#[repr(transparent)]
22636#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22637pub struct D3D12_SHADER_CACHE_CONTROL_FLAGS(pub i32);
22638#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22639pub const D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE: D3D12_SHADER_CACHE_CONTROL_FLAGS = D3D12_SHADER_CACHE_CONTROL_FLAGS(1i32);
22640#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22641pub const D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE: D3D12_SHADER_CACHE_CONTROL_FLAGS = D3D12_SHADER_CACHE_CONTROL_FLAGS(2i32);
22642#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22643pub const D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR: D3D12_SHADER_CACHE_CONTROL_FLAGS = D3D12_SHADER_CACHE_CONTROL_FLAGS(4i32);
22644impl ::core::marker::Copy for D3D12_SHADER_CACHE_CONTROL_FLAGS {}
22645impl ::core::clone::Clone for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22646 fn clone(&self) -> Self {
22647 *self
22648 }
22649}
22650impl ::core::default::Default for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22651 fn default() -> Self {
22652 Self(0)
22653 }
22654}
22655impl ::windows::core::TypeKind for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22656 type TypeKind = ::windows::core::CopyType;
22657}
22658impl ::core::fmt::Debug for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22659 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22660 f.debug_tuple("D3D12_SHADER_CACHE_CONTROL_FLAGS").field(&self.0).finish()
22661 }
22662}
22663impl D3D12_SHADER_CACHE_CONTROL_FLAGS {
22664 pub const fn contains(&self, other: Self) -> bool {
22665 self.0 & other.0 == other.0
22666 }
22667}
22668impl ::core::ops::BitOr for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22669 type Output = Self;
22670 fn bitor(self, other: Self) -> Self {
22671 Self(self.0 | other.0)
22672 }
22673}
22674impl ::core::ops::BitAnd for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22675 type Output = Self;
22676 fn bitand(self, other: Self) -> Self {
22677 Self(self.0 & other.0)
22678 }
22679}
22680impl ::core::ops::BitOrAssign for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22681 fn bitor_assign(&mut self, other: Self) {
22682 self.0.bitor_assign(other.0)
22683 }
22684}
22685impl ::core::ops::BitAndAssign for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22686 fn bitand_assign(&mut self, other: Self) {
22687 self.0.bitand_assign(other.0)
22688 }
22689}
22690impl ::core::ops::Not for D3D12_SHADER_CACHE_CONTROL_FLAGS {
22691 type Output = Self;
22692 fn not(self) -> Self {
22693 Self(self.0.not())
22694 }
22695}
22696#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22697#[repr(transparent)]
22698#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22699pub struct D3D12_SHADER_CACHE_FLAGS(pub i32);
22700#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22701pub const D3D12_SHADER_CACHE_FLAG_NONE: D3D12_SHADER_CACHE_FLAGS = D3D12_SHADER_CACHE_FLAGS(0i32);
22702#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22703pub const D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED: D3D12_SHADER_CACHE_FLAGS = D3D12_SHADER_CACHE_FLAGS(1i32);
22704#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22705pub const D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR: D3D12_SHADER_CACHE_FLAGS = D3D12_SHADER_CACHE_FLAGS(2i32);
22706impl ::core::marker::Copy for D3D12_SHADER_CACHE_FLAGS {}
22707impl ::core::clone::Clone for D3D12_SHADER_CACHE_FLAGS {
22708 fn clone(&self) -> Self {
22709 *self
22710 }
22711}
22712impl ::core::default::Default for D3D12_SHADER_CACHE_FLAGS {
22713 fn default() -> Self {
22714 Self(0)
22715 }
22716}
22717impl ::windows::core::TypeKind for D3D12_SHADER_CACHE_FLAGS {
22718 type TypeKind = ::windows::core::CopyType;
22719}
22720impl ::core::fmt::Debug for D3D12_SHADER_CACHE_FLAGS {
22721 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22722 f.debug_tuple("D3D12_SHADER_CACHE_FLAGS").field(&self.0).finish()
22723 }
22724}
22725impl D3D12_SHADER_CACHE_FLAGS {
22726 pub const fn contains(&self, other: Self) -> bool {
22727 self.0 & other.0 == other.0
22728 }
22729}
22730impl ::core::ops::BitOr for D3D12_SHADER_CACHE_FLAGS {
22731 type Output = Self;
22732 fn bitor(self, other: Self) -> Self {
22733 Self(self.0 | other.0)
22734 }
22735}
22736impl ::core::ops::BitAnd for D3D12_SHADER_CACHE_FLAGS {
22737 type Output = Self;
22738 fn bitand(self, other: Self) -> Self {
22739 Self(self.0 & other.0)
22740 }
22741}
22742impl ::core::ops::BitOrAssign for D3D12_SHADER_CACHE_FLAGS {
22743 fn bitor_assign(&mut self, other: Self) {
22744 self.0.bitor_assign(other.0)
22745 }
22746}
22747impl ::core::ops::BitAndAssign for D3D12_SHADER_CACHE_FLAGS {
22748 fn bitand_assign(&mut self, other: Self) {
22749 self.0.bitand_assign(other.0)
22750 }
22751}
22752impl ::core::ops::Not for D3D12_SHADER_CACHE_FLAGS {
22753 type Output = Self;
22754 fn not(self) -> Self {
22755 Self(self.0.not())
22756 }
22757}
22758#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22759#[repr(transparent)]
22760#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22761pub struct D3D12_SHADER_CACHE_KIND_FLAGS(pub i32);
22762#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22763pub const D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER: D3D12_SHADER_CACHE_KIND_FLAGS = D3D12_SHADER_CACHE_KIND_FLAGS(1i32);
22764#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22765pub const D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS: D3D12_SHADER_CACHE_KIND_FLAGS = D3D12_SHADER_CACHE_KIND_FLAGS(2i32);
22766#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22767pub const D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED: D3D12_SHADER_CACHE_KIND_FLAGS = D3D12_SHADER_CACHE_KIND_FLAGS(4i32);
22768#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22769pub const D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED: D3D12_SHADER_CACHE_KIND_FLAGS = D3D12_SHADER_CACHE_KIND_FLAGS(8i32);
22770impl ::core::marker::Copy for D3D12_SHADER_CACHE_KIND_FLAGS {}
22771impl ::core::clone::Clone for D3D12_SHADER_CACHE_KIND_FLAGS {
22772 fn clone(&self) -> Self {
22773 *self
22774 }
22775}
22776impl ::core::default::Default for D3D12_SHADER_CACHE_KIND_FLAGS {
22777 fn default() -> Self {
22778 Self(0)
22779 }
22780}
22781impl ::windows::core::TypeKind for D3D12_SHADER_CACHE_KIND_FLAGS {
22782 type TypeKind = ::windows::core::CopyType;
22783}
22784impl ::core::fmt::Debug for D3D12_SHADER_CACHE_KIND_FLAGS {
22785 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22786 f.debug_tuple("D3D12_SHADER_CACHE_KIND_FLAGS").field(&self.0).finish()
22787 }
22788}
22789impl D3D12_SHADER_CACHE_KIND_FLAGS {
22790 pub const fn contains(&self, other: Self) -> bool {
22791 self.0 & other.0 == other.0
22792 }
22793}
22794impl ::core::ops::BitOr for D3D12_SHADER_CACHE_KIND_FLAGS {
22795 type Output = Self;
22796 fn bitor(self, other: Self) -> Self {
22797 Self(self.0 | other.0)
22798 }
22799}
22800impl ::core::ops::BitAnd for D3D12_SHADER_CACHE_KIND_FLAGS {
22801 type Output = Self;
22802 fn bitand(self, other: Self) -> Self {
22803 Self(self.0 & other.0)
22804 }
22805}
22806impl ::core::ops::BitOrAssign for D3D12_SHADER_CACHE_KIND_FLAGS {
22807 fn bitor_assign(&mut self, other: Self) {
22808 self.0.bitor_assign(other.0)
22809 }
22810}
22811impl ::core::ops::BitAndAssign for D3D12_SHADER_CACHE_KIND_FLAGS {
22812 fn bitand_assign(&mut self, other: Self) {
22813 self.0.bitand_assign(other.0)
22814 }
22815}
22816impl ::core::ops::Not for D3D12_SHADER_CACHE_KIND_FLAGS {
22817 type Output = Self;
22818 fn not(self) -> Self {
22819 Self(self.0.not())
22820 }
22821}
22822#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22823#[repr(transparent)]
22824#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22825pub struct D3D12_SHADER_CACHE_MODE(pub i32);
22826#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22827pub const D3D12_SHADER_CACHE_MODE_MEMORY: D3D12_SHADER_CACHE_MODE = D3D12_SHADER_CACHE_MODE(0i32);
22828#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22829pub const D3D12_SHADER_CACHE_MODE_DISK: D3D12_SHADER_CACHE_MODE = D3D12_SHADER_CACHE_MODE(1i32);
22830impl ::core::marker::Copy for D3D12_SHADER_CACHE_MODE {}
22831impl ::core::clone::Clone for D3D12_SHADER_CACHE_MODE {
22832 fn clone(&self) -> Self {
22833 *self
22834 }
22835}
22836impl ::core::default::Default for D3D12_SHADER_CACHE_MODE {
22837 fn default() -> Self {
22838 Self(0)
22839 }
22840}
22841impl ::windows::core::TypeKind for D3D12_SHADER_CACHE_MODE {
22842 type TypeKind = ::windows::core::CopyType;
22843}
22844impl ::core::fmt::Debug for D3D12_SHADER_CACHE_MODE {
22845 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22846 f.debug_tuple("D3D12_SHADER_CACHE_MODE").field(&self.0).finish()
22847 }
22848}
22849#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22850#[repr(transparent)]
22851#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22852pub struct D3D12_SHADER_CACHE_SUPPORT_FLAGS(pub i32);
22853#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22854pub const D3D12_SHADER_CACHE_SUPPORT_NONE: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(0i32);
22855#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22856pub const D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(1i32);
22857#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22858pub const D3D12_SHADER_CACHE_SUPPORT_LIBRARY: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(2i32);
22859#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22860pub const D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(4i32);
22861#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22862pub const D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(8i32);
22863#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22864pub const D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(16i32);
22865#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22866pub const D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(32i32);
22867#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22868pub const D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE: D3D12_SHADER_CACHE_SUPPORT_FLAGS = D3D12_SHADER_CACHE_SUPPORT_FLAGS(64i32);
22869impl ::core::marker::Copy for D3D12_SHADER_CACHE_SUPPORT_FLAGS {}
22870impl ::core::clone::Clone for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22871 fn clone(&self) -> Self {
22872 *self
22873 }
22874}
22875impl ::core::default::Default for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22876 fn default() -> Self {
22877 Self(0)
22878 }
22879}
22880impl ::windows::core::TypeKind for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22881 type TypeKind = ::windows::core::CopyType;
22882}
22883impl ::core::fmt::Debug for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22884 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22885 f.debug_tuple("D3D12_SHADER_CACHE_SUPPORT_FLAGS").field(&self.0).finish()
22886 }
22887}
22888impl D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22889 pub const fn contains(&self, other: Self) -> bool {
22890 self.0 & other.0 == other.0
22891 }
22892}
22893impl ::core::ops::BitOr for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22894 type Output = Self;
22895 fn bitor(self, other: Self) -> Self {
22896 Self(self.0 | other.0)
22897 }
22898}
22899impl ::core::ops::BitAnd for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22900 type Output = Self;
22901 fn bitand(self, other: Self) -> Self {
22902 Self(self.0 & other.0)
22903 }
22904}
22905impl ::core::ops::BitOrAssign for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22906 fn bitor_assign(&mut self, other: Self) {
22907 self.0.bitor_assign(other.0)
22908 }
22909}
22910impl ::core::ops::BitAndAssign for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22911 fn bitand_assign(&mut self, other: Self) {
22912 self.0.bitand_assign(other.0)
22913 }
22914}
22915impl ::core::ops::Not for D3D12_SHADER_CACHE_SUPPORT_FLAGS {
22916 type Output = Self;
22917 fn not(self) -> Self {
22918 Self(self.0.not())
22919 }
22920}
22921#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22922#[repr(transparent)]
22923#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22924pub struct D3D12_SHADER_COMPONENT_MAPPING(pub i32);
22925#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22926pub const D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0: D3D12_SHADER_COMPONENT_MAPPING = D3D12_SHADER_COMPONENT_MAPPING(0i32);
22927#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22928pub const D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1: D3D12_SHADER_COMPONENT_MAPPING = D3D12_SHADER_COMPONENT_MAPPING(1i32);
22929#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22930pub const D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2: D3D12_SHADER_COMPONENT_MAPPING = D3D12_SHADER_COMPONENT_MAPPING(2i32);
22931#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22932pub const D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3: D3D12_SHADER_COMPONENT_MAPPING = D3D12_SHADER_COMPONENT_MAPPING(3i32);
22933#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22934pub const D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0: D3D12_SHADER_COMPONENT_MAPPING = D3D12_SHADER_COMPONENT_MAPPING(4i32);
22935#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22936pub const D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1: D3D12_SHADER_COMPONENT_MAPPING = D3D12_SHADER_COMPONENT_MAPPING(5i32);
22937impl ::core::marker::Copy for D3D12_SHADER_COMPONENT_MAPPING {}
22938impl ::core::clone::Clone for D3D12_SHADER_COMPONENT_MAPPING {
22939 fn clone(&self) -> Self {
22940 *self
22941 }
22942}
22943impl ::core::default::Default for D3D12_SHADER_COMPONENT_MAPPING {
22944 fn default() -> Self {
22945 Self(0)
22946 }
22947}
22948impl ::windows::core::TypeKind for D3D12_SHADER_COMPONENT_MAPPING {
22949 type TypeKind = ::windows::core::CopyType;
22950}
22951impl ::core::fmt::Debug for D3D12_SHADER_COMPONENT_MAPPING {
22952 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22953 f.debug_tuple("D3D12_SHADER_COMPONENT_MAPPING").field(&self.0).finish()
22954 }
22955}
22956#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22957#[repr(transparent)]
22958#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
22959pub struct D3D12_SHADER_MIN_PRECISION_SUPPORT(pub i32);
22960#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22961pub const D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE: D3D12_SHADER_MIN_PRECISION_SUPPORT = D3D12_SHADER_MIN_PRECISION_SUPPORT(0i32);
22962#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22963pub const D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT: D3D12_SHADER_MIN_PRECISION_SUPPORT = D3D12_SHADER_MIN_PRECISION_SUPPORT(1i32);
22964#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
22965pub const D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT: D3D12_SHADER_MIN_PRECISION_SUPPORT = D3D12_SHADER_MIN_PRECISION_SUPPORT(2i32);
22966impl ::core::marker::Copy for D3D12_SHADER_MIN_PRECISION_SUPPORT {}
22967impl ::core::clone::Clone for D3D12_SHADER_MIN_PRECISION_SUPPORT {
22968 fn clone(&self) -> Self {
22969 *self
22970 }
22971}
22972impl ::core::default::Default for D3D12_SHADER_MIN_PRECISION_SUPPORT {
22973 fn default() -> Self {
22974 Self(0)
22975 }
22976}
22977impl ::windows::core::TypeKind for D3D12_SHADER_MIN_PRECISION_SUPPORT {
22978 type TypeKind = ::windows::core::CopyType;
22979}
22980impl ::core::fmt::Debug for D3D12_SHADER_MIN_PRECISION_SUPPORT {
22981 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
22982 f.debug_tuple("D3D12_SHADER_MIN_PRECISION_SUPPORT").field(&self.0).finish()
22983 }
22984}
22985impl D3D12_SHADER_MIN_PRECISION_SUPPORT {
22986 pub const fn contains(&self, other: Self) -> bool {
22987 self.0 & other.0 == other.0
22988 }
22989}
22990impl ::core::ops::BitOr for D3D12_SHADER_MIN_PRECISION_SUPPORT {
22991 type Output = Self;
22992 fn bitor(self, other: Self) -> Self {
22993 Self(self.0 | other.0)
22994 }
22995}
22996impl ::core::ops::BitAnd for D3D12_SHADER_MIN_PRECISION_SUPPORT {
22997 type Output = Self;
22998 fn bitand(self, other: Self) -> Self {
22999 Self(self.0 & other.0)
23000 }
23001}
23002impl ::core::ops::BitOrAssign for D3D12_SHADER_MIN_PRECISION_SUPPORT {
23003 fn bitor_assign(&mut self, other: Self) {
23004 self.0.bitor_assign(other.0)
23005 }
23006}
23007impl ::core::ops::BitAndAssign for D3D12_SHADER_MIN_PRECISION_SUPPORT {
23008 fn bitand_assign(&mut self, other: Self) {
23009 self.0.bitand_assign(other.0)
23010 }
23011}
23012impl ::core::ops::Not for D3D12_SHADER_MIN_PRECISION_SUPPORT {
23013 type Output = Self;
23014 fn not(self) -> Self {
23015 Self(self.0.not())
23016 }
23017}
23018#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23019#[repr(transparent)]
23020#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23021pub struct D3D12_SHADER_VERSION_TYPE(pub i32);
23022#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23023pub const D3D12_SHVER_PIXEL_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(0i32);
23024#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23025pub const D3D12_SHVER_VERTEX_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(1i32);
23026#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23027pub const D3D12_SHVER_GEOMETRY_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(2i32);
23028#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23029pub const D3D12_SHVER_HULL_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(3i32);
23030#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23031pub const D3D12_SHVER_DOMAIN_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(4i32);
23032#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23033pub const D3D12_SHVER_COMPUTE_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(5i32);
23034#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23035pub const D3D12_SHVER_LIBRARY: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(6i32);
23036#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23037pub const D3D12_SHVER_RAY_GENERATION_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(7i32);
23038#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23039pub const D3D12_SHVER_INTERSECTION_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(8i32);
23040#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23041pub const D3D12_SHVER_ANY_HIT_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(9i32);
23042#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23043pub const D3D12_SHVER_CLOSEST_HIT_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(10i32);
23044#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23045pub const D3D12_SHVER_MISS_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(11i32);
23046#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23047pub const D3D12_SHVER_CALLABLE_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(12i32);
23048#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23049pub const D3D12_SHVER_MESH_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(13i32);
23050#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23051pub const D3D12_SHVER_AMPLIFICATION_SHADER: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(14i32);
23052#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23053pub const D3D12_SHVER_RESERVED0: D3D12_SHADER_VERSION_TYPE = D3D12_SHADER_VERSION_TYPE(65520i32);
23054impl ::core::marker::Copy for D3D12_SHADER_VERSION_TYPE {}
23055impl ::core::clone::Clone for D3D12_SHADER_VERSION_TYPE {
23056 fn clone(&self) -> Self {
23057 *self
23058 }
23059}
23060impl ::core::default::Default for D3D12_SHADER_VERSION_TYPE {
23061 fn default() -> Self {
23062 Self(0)
23063 }
23064}
23065impl ::windows::core::TypeKind for D3D12_SHADER_VERSION_TYPE {
23066 type TypeKind = ::windows::core::CopyType;
23067}
23068impl ::core::fmt::Debug for D3D12_SHADER_VERSION_TYPE {
23069 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23070 f.debug_tuple("D3D12_SHADER_VERSION_TYPE").field(&self.0).finish()
23071 }
23072}
23073#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23074#[repr(transparent)]
23075#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23076pub struct D3D12_SHADER_VISIBILITY(pub i32);
23077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23078pub const D3D12_SHADER_VISIBILITY_ALL: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(0i32);
23079#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23080pub const D3D12_SHADER_VISIBILITY_VERTEX: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(1i32);
23081#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23082pub const D3D12_SHADER_VISIBILITY_HULL: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(2i32);
23083#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23084pub const D3D12_SHADER_VISIBILITY_DOMAIN: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(3i32);
23085#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23086pub const D3D12_SHADER_VISIBILITY_GEOMETRY: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(4i32);
23087#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23088pub const D3D12_SHADER_VISIBILITY_PIXEL: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(5i32);
23089#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23090pub const D3D12_SHADER_VISIBILITY_AMPLIFICATION: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(6i32);
23091#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23092pub const D3D12_SHADER_VISIBILITY_MESH: D3D12_SHADER_VISIBILITY = D3D12_SHADER_VISIBILITY(7i32);
23093impl ::core::marker::Copy for D3D12_SHADER_VISIBILITY {}
23094impl ::core::clone::Clone for D3D12_SHADER_VISIBILITY {
23095 fn clone(&self) -> Self {
23096 *self
23097 }
23098}
23099impl ::core::default::Default for D3D12_SHADER_VISIBILITY {
23100 fn default() -> Self {
23101 Self(0)
23102 }
23103}
23104impl ::windows::core::TypeKind for D3D12_SHADER_VISIBILITY {
23105 type TypeKind = ::windows::core::CopyType;
23106}
23107impl ::core::fmt::Debug for D3D12_SHADER_VISIBILITY {
23108 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23109 f.debug_tuple("D3D12_SHADER_VISIBILITY").field(&self.0).finish()
23110 }
23111}
23112#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23113#[repr(transparent)]
23114#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23115pub struct D3D12_SHADING_RATE(pub i32);
23116#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23117pub const D3D12_SHADING_RATE_1X1: D3D12_SHADING_RATE = D3D12_SHADING_RATE(0i32);
23118#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23119pub const D3D12_SHADING_RATE_1X2: D3D12_SHADING_RATE = D3D12_SHADING_RATE(1i32);
23120#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23121pub const D3D12_SHADING_RATE_2X1: D3D12_SHADING_RATE = D3D12_SHADING_RATE(4i32);
23122#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23123pub const D3D12_SHADING_RATE_2X2: D3D12_SHADING_RATE = D3D12_SHADING_RATE(5i32);
23124#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23125pub const D3D12_SHADING_RATE_2X4: D3D12_SHADING_RATE = D3D12_SHADING_RATE(6i32);
23126#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23127pub const D3D12_SHADING_RATE_4X2: D3D12_SHADING_RATE = D3D12_SHADING_RATE(9i32);
23128#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23129pub const D3D12_SHADING_RATE_4X4: D3D12_SHADING_RATE = D3D12_SHADING_RATE(10i32);
23130impl ::core::marker::Copy for D3D12_SHADING_RATE {}
23131impl ::core::clone::Clone for D3D12_SHADING_RATE {
23132 fn clone(&self) -> Self {
23133 *self
23134 }
23135}
23136impl ::core::default::Default for D3D12_SHADING_RATE {
23137 fn default() -> Self {
23138 Self(0)
23139 }
23140}
23141impl ::windows::core::TypeKind for D3D12_SHADING_RATE {
23142 type TypeKind = ::windows::core::CopyType;
23143}
23144impl ::core::fmt::Debug for D3D12_SHADING_RATE {
23145 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23146 f.debug_tuple("D3D12_SHADING_RATE").field(&self.0).finish()
23147 }
23148}
23149#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23150#[repr(transparent)]
23151#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23152pub struct D3D12_SHADING_RATE_COMBINER(pub i32);
23153#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23154pub const D3D12_SHADING_RATE_COMBINER_PASSTHROUGH: D3D12_SHADING_RATE_COMBINER = D3D12_SHADING_RATE_COMBINER(0i32);
23155#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23156pub const D3D12_SHADING_RATE_COMBINER_OVERRIDE: D3D12_SHADING_RATE_COMBINER = D3D12_SHADING_RATE_COMBINER(1i32);
23157#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23158pub const D3D12_SHADING_RATE_COMBINER_MIN: D3D12_SHADING_RATE_COMBINER = D3D12_SHADING_RATE_COMBINER(2i32);
23159#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23160pub const D3D12_SHADING_RATE_COMBINER_MAX: D3D12_SHADING_RATE_COMBINER = D3D12_SHADING_RATE_COMBINER(3i32);
23161#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23162pub const D3D12_SHADING_RATE_COMBINER_SUM: D3D12_SHADING_RATE_COMBINER = D3D12_SHADING_RATE_COMBINER(4i32);
23163impl ::core::marker::Copy for D3D12_SHADING_RATE_COMBINER {}
23164impl ::core::clone::Clone for D3D12_SHADING_RATE_COMBINER {
23165 fn clone(&self) -> Self {
23166 *self
23167 }
23168}
23169impl ::core::default::Default for D3D12_SHADING_RATE_COMBINER {
23170 fn default() -> Self {
23171 Self(0)
23172 }
23173}
23174impl ::windows::core::TypeKind for D3D12_SHADING_RATE_COMBINER {
23175 type TypeKind = ::windows::core::CopyType;
23176}
23177impl ::core::fmt::Debug for D3D12_SHADING_RATE_COMBINER {
23178 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23179 f.debug_tuple("D3D12_SHADING_RATE_COMBINER").field(&self.0).finish()
23180 }
23181}
23182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23183#[repr(transparent)]
23184#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23185pub struct D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER(pub i32);
23186#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23187pub const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0: D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER(0i32);
23188#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23189pub const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1: D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER(1i32);
23190#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23191pub const D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2: D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER = D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER(2i32);
23192impl ::core::marker::Copy for D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {}
23193impl ::core::clone::Clone for D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
23194 fn clone(&self) -> Self {
23195 *self
23196 }
23197}
23198impl ::core::default::Default for D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
23199 fn default() -> Self {
23200 Self(0)
23201 }
23202}
23203impl ::windows::core::TypeKind for D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
23204 type TypeKind = ::windows::core::CopyType;
23205}
23206impl ::core::fmt::Debug for D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
23207 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23208 f.debug_tuple("D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER").field(&self.0).finish()
23209 }
23210}
23211#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23212#[repr(transparent)]
23213#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23214pub struct D3D12_SRV_DIMENSION(pub i32);
23215#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23216pub const D3D12_SRV_DIMENSION_UNKNOWN: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(0i32);
23217#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23218pub const D3D12_SRV_DIMENSION_BUFFER: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(1i32);
23219#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23220pub const D3D12_SRV_DIMENSION_TEXTURE1D: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(2i32);
23221#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23222pub const D3D12_SRV_DIMENSION_TEXTURE1DARRAY: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(3i32);
23223#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23224pub const D3D12_SRV_DIMENSION_TEXTURE2D: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(4i32);
23225#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23226pub const D3D12_SRV_DIMENSION_TEXTURE2DARRAY: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(5i32);
23227#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23228pub const D3D12_SRV_DIMENSION_TEXTURE2DMS: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(6i32);
23229#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23230pub const D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(7i32);
23231#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23232pub const D3D12_SRV_DIMENSION_TEXTURE3D: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(8i32);
23233#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23234pub const D3D12_SRV_DIMENSION_TEXTURECUBE: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(9i32);
23235#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23236pub const D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(10i32);
23237#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23238pub const D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE: D3D12_SRV_DIMENSION = D3D12_SRV_DIMENSION(11i32);
23239impl ::core::marker::Copy for D3D12_SRV_DIMENSION {}
23240impl ::core::clone::Clone for D3D12_SRV_DIMENSION {
23241 fn clone(&self) -> Self {
23242 *self
23243 }
23244}
23245impl ::core::default::Default for D3D12_SRV_DIMENSION {
23246 fn default() -> Self {
23247 Self(0)
23248 }
23249}
23250impl ::windows::core::TypeKind for D3D12_SRV_DIMENSION {
23251 type TypeKind = ::windows::core::CopyType;
23252}
23253impl ::core::fmt::Debug for D3D12_SRV_DIMENSION {
23254 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23255 f.debug_tuple("D3D12_SRV_DIMENSION").field(&self.0).finish()
23256 }
23257}
23258#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23259#[repr(transparent)]
23260#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23261pub struct D3D12_STATE_OBJECT_FLAGS(pub i32);
23262#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23263pub const D3D12_STATE_OBJECT_FLAG_NONE: D3D12_STATE_OBJECT_FLAGS = D3D12_STATE_OBJECT_FLAGS(0i32);
23264#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23265pub const D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS: D3D12_STATE_OBJECT_FLAGS = D3D12_STATE_OBJECT_FLAGS(1i32);
23266#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23267pub const D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS: D3D12_STATE_OBJECT_FLAGS = D3D12_STATE_OBJECT_FLAGS(2i32);
23268#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23269pub const D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS: D3D12_STATE_OBJECT_FLAGS = D3D12_STATE_OBJECT_FLAGS(4i32);
23270impl ::core::marker::Copy for D3D12_STATE_OBJECT_FLAGS {}
23271impl ::core::clone::Clone for D3D12_STATE_OBJECT_FLAGS {
23272 fn clone(&self) -> Self {
23273 *self
23274 }
23275}
23276impl ::core::default::Default for D3D12_STATE_OBJECT_FLAGS {
23277 fn default() -> Self {
23278 Self(0)
23279 }
23280}
23281impl ::windows::core::TypeKind for D3D12_STATE_OBJECT_FLAGS {
23282 type TypeKind = ::windows::core::CopyType;
23283}
23284impl ::core::fmt::Debug for D3D12_STATE_OBJECT_FLAGS {
23285 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23286 f.debug_tuple("D3D12_STATE_OBJECT_FLAGS").field(&self.0).finish()
23287 }
23288}
23289impl D3D12_STATE_OBJECT_FLAGS {
23290 pub const fn contains(&self, other: Self) -> bool {
23291 self.0 & other.0 == other.0
23292 }
23293}
23294impl ::core::ops::BitOr for D3D12_STATE_OBJECT_FLAGS {
23295 type Output = Self;
23296 fn bitor(self, other: Self) -> Self {
23297 Self(self.0 | other.0)
23298 }
23299}
23300impl ::core::ops::BitAnd for D3D12_STATE_OBJECT_FLAGS {
23301 type Output = Self;
23302 fn bitand(self, other: Self) -> Self {
23303 Self(self.0 & other.0)
23304 }
23305}
23306impl ::core::ops::BitOrAssign for D3D12_STATE_OBJECT_FLAGS {
23307 fn bitor_assign(&mut self, other: Self) {
23308 self.0.bitor_assign(other.0)
23309 }
23310}
23311impl ::core::ops::BitAndAssign for D3D12_STATE_OBJECT_FLAGS {
23312 fn bitand_assign(&mut self, other: Self) {
23313 self.0.bitand_assign(other.0)
23314 }
23315}
23316impl ::core::ops::Not for D3D12_STATE_OBJECT_FLAGS {
23317 type Output = Self;
23318 fn not(self) -> Self {
23319 Self(self.0.not())
23320 }
23321}
23322#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23323#[repr(transparent)]
23324#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23325pub struct D3D12_STATE_OBJECT_TYPE(pub i32);
23326#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23327pub const D3D12_STATE_OBJECT_TYPE_COLLECTION: D3D12_STATE_OBJECT_TYPE = D3D12_STATE_OBJECT_TYPE(0i32);
23328#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23329pub const D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE: D3D12_STATE_OBJECT_TYPE = D3D12_STATE_OBJECT_TYPE(3i32);
23330impl ::core::marker::Copy for D3D12_STATE_OBJECT_TYPE {}
23331impl ::core::clone::Clone for D3D12_STATE_OBJECT_TYPE {
23332 fn clone(&self) -> Self {
23333 *self
23334 }
23335}
23336impl ::core::default::Default for D3D12_STATE_OBJECT_TYPE {
23337 fn default() -> Self {
23338 Self(0)
23339 }
23340}
23341impl ::windows::core::TypeKind for D3D12_STATE_OBJECT_TYPE {
23342 type TypeKind = ::windows::core::CopyType;
23343}
23344impl ::core::fmt::Debug for D3D12_STATE_OBJECT_TYPE {
23345 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23346 f.debug_tuple("D3D12_STATE_OBJECT_TYPE").field(&self.0).finish()
23347 }
23348}
23349#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23350#[repr(transparent)]
23351#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23352pub struct D3D12_STATE_SUBOBJECT_TYPE(pub i32);
23353#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23354pub const D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(0i32);
23355#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23356pub const D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(1i32);
23357#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23358pub const D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(2i32);
23359#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23360pub const D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(3i32);
23361#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23362pub const D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(5i32);
23363#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23364pub const D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(6i32);
23365#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23366pub const D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(7i32);
23367#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23368pub const D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(8i32);
23369#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23370pub const D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(9i32);
23371#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23372pub const D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(10i32);
23373#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23374pub const D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(11i32);
23375#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23376pub const D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(12i32);
23377#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23378pub const D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID: D3D12_STATE_SUBOBJECT_TYPE = D3D12_STATE_SUBOBJECT_TYPE(13i32);
23379impl ::core::marker::Copy for D3D12_STATE_SUBOBJECT_TYPE {}
23380impl ::core::clone::Clone for D3D12_STATE_SUBOBJECT_TYPE {
23381 fn clone(&self) -> Self {
23382 *self
23383 }
23384}
23385impl ::core::default::Default for D3D12_STATE_SUBOBJECT_TYPE {
23386 fn default() -> Self {
23387 Self(0)
23388 }
23389}
23390impl ::windows::core::TypeKind for D3D12_STATE_SUBOBJECT_TYPE {
23391 type TypeKind = ::windows::core::CopyType;
23392}
23393impl ::core::fmt::Debug for D3D12_STATE_SUBOBJECT_TYPE {
23394 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23395 f.debug_tuple("D3D12_STATE_SUBOBJECT_TYPE").field(&self.0).finish()
23396 }
23397}
23398#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23399#[repr(transparent)]
23400#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23401pub struct D3D12_STATIC_BORDER_COLOR(pub i32);
23402#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23403pub const D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK: D3D12_STATIC_BORDER_COLOR = D3D12_STATIC_BORDER_COLOR(0i32);
23404#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23405pub const D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK: D3D12_STATIC_BORDER_COLOR = D3D12_STATIC_BORDER_COLOR(1i32);
23406#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23407pub const D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE: D3D12_STATIC_BORDER_COLOR = D3D12_STATIC_BORDER_COLOR(2i32);
23408#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23409pub const D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT: D3D12_STATIC_BORDER_COLOR = D3D12_STATIC_BORDER_COLOR(3i32);
23410#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23411pub const D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT: D3D12_STATIC_BORDER_COLOR = D3D12_STATIC_BORDER_COLOR(4i32);
23412impl ::core::marker::Copy for D3D12_STATIC_BORDER_COLOR {}
23413impl ::core::clone::Clone for D3D12_STATIC_BORDER_COLOR {
23414 fn clone(&self) -> Self {
23415 *self
23416 }
23417}
23418impl ::core::default::Default for D3D12_STATIC_BORDER_COLOR {
23419 fn default() -> Self {
23420 Self(0)
23421 }
23422}
23423impl ::windows::core::TypeKind for D3D12_STATIC_BORDER_COLOR {
23424 type TypeKind = ::windows::core::CopyType;
23425}
23426impl ::core::fmt::Debug for D3D12_STATIC_BORDER_COLOR {
23427 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23428 f.debug_tuple("D3D12_STATIC_BORDER_COLOR").field(&self.0).finish()
23429 }
23430}
23431#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23432#[repr(transparent)]
23433#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23434pub struct D3D12_STENCIL_OP(pub i32);
23435#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23436pub const D3D12_STENCIL_OP_KEEP: D3D12_STENCIL_OP = D3D12_STENCIL_OP(1i32);
23437#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23438pub const D3D12_STENCIL_OP_ZERO: D3D12_STENCIL_OP = D3D12_STENCIL_OP(2i32);
23439#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23440pub const D3D12_STENCIL_OP_REPLACE: D3D12_STENCIL_OP = D3D12_STENCIL_OP(3i32);
23441#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23442pub const D3D12_STENCIL_OP_INCR_SAT: D3D12_STENCIL_OP = D3D12_STENCIL_OP(4i32);
23443#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23444pub const D3D12_STENCIL_OP_DECR_SAT: D3D12_STENCIL_OP = D3D12_STENCIL_OP(5i32);
23445#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23446pub const D3D12_STENCIL_OP_INVERT: D3D12_STENCIL_OP = D3D12_STENCIL_OP(6i32);
23447#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23448pub const D3D12_STENCIL_OP_INCR: D3D12_STENCIL_OP = D3D12_STENCIL_OP(7i32);
23449#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23450pub const D3D12_STENCIL_OP_DECR: D3D12_STENCIL_OP = D3D12_STENCIL_OP(8i32);
23451impl ::core::marker::Copy for D3D12_STENCIL_OP {}
23452impl ::core::clone::Clone for D3D12_STENCIL_OP {
23453 fn clone(&self) -> Self {
23454 *self
23455 }
23456}
23457impl ::core::default::Default for D3D12_STENCIL_OP {
23458 fn default() -> Self {
23459 Self(0)
23460 }
23461}
23462impl ::windows::core::TypeKind for D3D12_STENCIL_OP {
23463 type TypeKind = ::windows::core::CopyType;
23464}
23465impl ::core::fmt::Debug for D3D12_STENCIL_OP {
23466 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23467 f.debug_tuple("D3D12_STENCIL_OP").field(&self.0).finish()
23468 }
23469}
23470#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23471#[repr(transparent)]
23472#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23473pub struct D3D12_TEXTURE_ADDRESS_MODE(pub i32);
23474#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23475pub const D3D12_TEXTURE_ADDRESS_MODE_WRAP: D3D12_TEXTURE_ADDRESS_MODE = D3D12_TEXTURE_ADDRESS_MODE(1i32);
23476#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23477pub const D3D12_TEXTURE_ADDRESS_MODE_MIRROR: D3D12_TEXTURE_ADDRESS_MODE = D3D12_TEXTURE_ADDRESS_MODE(2i32);
23478#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23479pub const D3D12_TEXTURE_ADDRESS_MODE_CLAMP: D3D12_TEXTURE_ADDRESS_MODE = D3D12_TEXTURE_ADDRESS_MODE(3i32);
23480#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23481pub const D3D12_TEXTURE_ADDRESS_MODE_BORDER: D3D12_TEXTURE_ADDRESS_MODE = D3D12_TEXTURE_ADDRESS_MODE(4i32);
23482#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23483pub const D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE: D3D12_TEXTURE_ADDRESS_MODE = D3D12_TEXTURE_ADDRESS_MODE(5i32);
23484impl ::core::marker::Copy for D3D12_TEXTURE_ADDRESS_MODE {}
23485impl ::core::clone::Clone for D3D12_TEXTURE_ADDRESS_MODE {
23486 fn clone(&self) -> Self {
23487 *self
23488 }
23489}
23490impl ::core::default::Default for D3D12_TEXTURE_ADDRESS_MODE {
23491 fn default() -> Self {
23492 Self(0)
23493 }
23494}
23495impl ::windows::core::TypeKind for D3D12_TEXTURE_ADDRESS_MODE {
23496 type TypeKind = ::windows::core::CopyType;
23497}
23498impl ::core::fmt::Debug for D3D12_TEXTURE_ADDRESS_MODE {
23499 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23500 f.debug_tuple("D3D12_TEXTURE_ADDRESS_MODE").field(&self.0).finish()
23501 }
23502}
23503#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23504#[repr(transparent)]
23505#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23506pub struct D3D12_TEXTURE_BARRIER_FLAGS(pub i32);
23507#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23508pub const D3D12_TEXTURE_BARRIER_FLAG_NONE: D3D12_TEXTURE_BARRIER_FLAGS = D3D12_TEXTURE_BARRIER_FLAGS(0i32);
23509#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23510pub const D3D12_TEXTURE_BARRIER_FLAG_DISCARD: D3D12_TEXTURE_BARRIER_FLAGS = D3D12_TEXTURE_BARRIER_FLAGS(1i32);
23511impl ::core::marker::Copy for D3D12_TEXTURE_BARRIER_FLAGS {}
23512impl ::core::clone::Clone for D3D12_TEXTURE_BARRIER_FLAGS {
23513 fn clone(&self) -> Self {
23514 *self
23515 }
23516}
23517impl ::core::default::Default for D3D12_TEXTURE_BARRIER_FLAGS {
23518 fn default() -> Self {
23519 Self(0)
23520 }
23521}
23522impl ::windows::core::TypeKind for D3D12_TEXTURE_BARRIER_FLAGS {
23523 type TypeKind = ::windows::core::CopyType;
23524}
23525impl ::core::fmt::Debug for D3D12_TEXTURE_BARRIER_FLAGS {
23526 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23527 f.debug_tuple("D3D12_TEXTURE_BARRIER_FLAGS").field(&self.0).finish()
23528 }
23529}
23530impl D3D12_TEXTURE_BARRIER_FLAGS {
23531 pub const fn contains(&self, other: Self) -> bool {
23532 self.0 & other.0 == other.0
23533 }
23534}
23535impl ::core::ops::BitOr for D3D12_TEXTURE_BARRIER_FLAGS {
23536 type Output = Self;
23537 fn bitor(self, other: Self) -> Self {
23538 Self(self.0 | other.0)
23539 }
23540}
23541impl ::core::ops::BitAnd for D3D12_TEXTURE_BARRIER_FLAGS {
23542 type Output = Self;
23543 fn bitand(self, other: Self) -> Self {
23544 Self(self.0 & other.0)
23545 }
23546}
23547impl ::core::ops::BitOrAssign for D3D12_TEXTURE_BARRIER_FLAGS {
23548 fn bitor_assign(&mut self, other: Self) {
23549 self.0.bitor_assign(other.0)
23550 }
23551}
23552impl ::core::ops::BitAndAssign for D3D12_TEXTURE_BARRIER_FLAGS {
23553 fn bitand_assign(&mut self, other: Self) {
23554 self.0.bitand_assign(other.0)
23555 }
23556}
23557impl ::core::ops::Not for D3D12_TEXTURE_BARRIER_FLAGS {
23558 type Output = Self;
23559 fn not(self) -> Self {
23560 Self(self.0.not())
23561 }
23562}
23563#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23564#[repr(transparent)]
23565#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23566pub struct D3D12_TEXTURE_COPY_TYPE(pub i32);
23567#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23568pub const D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX: D3D12_TEXTURE_COPY_TYPE = D3D12_TEXTURE_COPY_TYPE(0i32);
23569#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23570pub const D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT: D3D12_TEXTURE_COPY_TYPE = D3D12_TEXTURE_COPY_TYPE(1i32);
23571impl ::core::marker::Copy for D3D12_TEXTURE_COPY_TYPE {}
23572impl ::core::clone::Clone for D3D12_TEXTURE_COPY_TYPE {
23573 fn clone(&self) -> Self {
23574 *self
23575 }
23576}
23577impl ::core::default::Default for D3D12_TEXTURE_COPY_TYPE {
23578 fn default() -> Self {
23579 Self(0)
23580 }
23581}
23582impl ::windows::core::TypeKind for D3D12_TEXTURE_COPY_TYPE {
23583 type TypeKind = ::windows::core::CopyType;
23584}
23585impl ::core::fmt::Debug for D3D12_TEXTURE_COPY_TYPE {
23586 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23587 f.debug_tuple("D3D12_TEXTURE_COPY_TYPE").field(&self.0).finish()
23588 }
23589}
23590#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23591#[repr(transparent)]
23592#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23593pub struct D3D12_TEXTURE_LAYOUT(pub i32);
23594#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23595pub const D3D12_TEXTURE_LAYOUT_UNKNOWN: D3D12_TEXTURE_LAYOUT = D3D12_TEXTURE_LAYOUT(0i32);
23596#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23597pub const D3D12_TEXTURE_LAYOUT_ROW_MAJOR: D3D12_TEXTURE_LAYOUT = D3D12_TEXTURE_LAYOUT(1i32);
23598#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23599pub const D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE: D3D12_TEXTURE_LAYOUT = D3D12_TEXTURE_LAYOUT(2i32);
23600#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23601pub const D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE: D3D12_TEXTURE_LAYOUT = D3D12_TEXTURE_LAYOUT(3i32);
23602impl ::core::marker::Copy for D3D12_TEXTURE_LAYOUT {}
23603impl ::core::clone::Clone for D3D12_TEXTURE_LAYOUT {
23604 fn clone(&self) -> Self {
23605 *self
23606 }
23607}
23608impl ::core::default::Default for D3D12_TEXTURE_LAYOUT {
23609 fn default() -> Self {
23610 Self(0)
23611 }
23612}
23613impl ::windows::core::TypeKind for D3D12_TEXTURE_LAYOUT {
23614 type TypeKind = ::windows::core::CopyType;
23615}
23616impl ::core::fmt::Debug for D3D12_TEXTURE_LAYOUT {
23617 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23618 f.debug_tuple("D3D12_TEXTURE_LAYOUT").field(&self.0).finish()
23619 }
23620}
23621#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23622#[repr(transparent)]
23623#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23624pub struct D3D12_TILED_RESOURCES_TIER(pub i32);
23625#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23626pub const D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED: D3D12_TILED_RESOURCES_TIER = D3D12_TILED_RESOURCES_TIER(0i32);
23627#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23628pub const D3D12_TILED_RESOURCES_TIER_1: D3D12_TILED_RESOURCES_TIER = D3D12_TILED_RESOURCES_TIER(1i32);
23629#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23630pub const D3D12_TILED_RESOURCES_TIER_2: D3D12_TILED_RESOURCES_TIER = D3D12_TILED_RESOURCES_TIER(2i32);
23631#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23632pub const D3D12_TILED_RESOURCES_TIER_3: D3D12_TILED_RESOURCES_TIER = D3D12_TILED_RESOURCES_TIER(3i32);
23633#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23634pub const D3D12_TILED_RESOURCES_TIER_4: D3D12_TILED_RESOURCES_TIER = D3D12_TILED_RESOURCES_TIER(4i32);
23635impl ::core::marker::Copy for D3D12_TILED_RESOURCES_TIER {}
23636impl ::core::clone::Clone for D3D12_TILED_RESOURCES_TIER {
23637 fn clone(&self) -> Self {
23638 *self
23639 }
23640}
23641impl ::core::default::Default for D3D12_TILED_RESOURCES_TIER {
23642 fn default() -> Self {
23643 Self(0)
23644 }
23645}
23646impl ::windows::core::TypeKind for D3D12_TILED_RESOURCES_TIER {
23647 type TypeKind = ::windows::core::CopyType;
23648}
23649impl ::core::fmt::Debug for D3D12_TILED_RESOURCES_TIER {
23650 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23651 f.debug_tuple("D3D12_TILED_RESOURCES_TIER").field(&self.0).finish()
23652 }
23653}
23654#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23655#[repr(transparent)]
23656#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23657pub struct D3D12_TILE_COPY_FLAGS(pub i32);
23658#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23659pub const D3D12_TILE_COPY_FLAG_NONE: D3D12_TILE_COPY_FLAGS = D3D12_TILE_COPY_FLAGS(0i32);
23660#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23661pub const D3D12_TILE_COPY_FLAG_NO_HAZARD: D3D12_TILE_COPY_FLAGS = D3D12_TILE_COPY_FLAGS(1i32);
23662#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23663pub const D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE: D3D12_TILE_COPY_FLAGS = D3D12_TILE_COPY_FLAGS(2i32);
23664#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23665pub const D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER: D3D12_TILE_COPY_FLAGS = D3D12_TILE_COPY_FLAGS(4i32);
23666impl ::core::marker::Copy for D3D12_TILE_COPY_FLAGS {}
23667impl ::core::clone::Clone for D3D12_TILE_COPY_FLAGS {
23668 fn clone(&self) -> Self {
23669 *self
23670 }
23671}
23672impl ::core::default::Default for D3D12_TILE_COPY_FLAGS {
23673 fn default() -> Self {
23674 Self(0)
23675 }
23676}
23677impl ::windows::core::TypeKind for D3D12_TILE_COPY_FLAGS {
23678 type TypeKind = ::windows::core::CopyType;
23679}
23680impl ::core::fmt::Debug for D3D12_TILE_COPY_FLAGS {
23681 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23682 f.debug_tuple("D3D12_TILE_COPY_FLAGS").field(&self.0).finish()
23683 }
23684}
23685impl D3D12_TILE_COPY_FLAGS {
23686 pub const fn contains(&self, other: Self) -> bool {
23687 self.0 & other.0 == other.0
23688 }
23689}
23690impl ::core::ops::BitOr for D3D12_TILE_COPY_FLAGS {
23691 type Output = Self;
23692 fn bitor(self, other: Self) -> Self {
23693 Self(self.0 | other.0)
23694 }
23695}
23696impl ::core::ops::BitAnd for D3D12_TILE_COPY_FLAGS {
23697 type Output = Self;
23698 fn bitand(self, other: Self) -> Self {
23699 Self(self.0 & other.0)
23700 }
23701}
23702impl ::core::ops::BitOrAssign for D3D12_TILE_COPY_FLAGS {
23703 fn bitor_assign(&mut self, other: Self) {
23704 self.0.bitor_assign(other.0)
23705 }
23706}
23707impl ::core::ops::BitAndAssign for D3D12_TILE_COPY_FLAGS {
23708 fn bitand_assign(&mut self, other: Self) {
23709 self.0.bitand_assign(other.0)
23710 }
23711}
23712impl ::core::ops::Not for D3D12_TILE_COPY_FLAGS {
23713 type Output = Self;
23714 fn not(self) -> Self {
23715 Self(self.0.not())
23716 }
23717}
23718#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23719#[repr(transparent)]
23720#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23721pub struct D3D12_TILE_MAPPING_FLAGS(pub i32);
23722#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23723pub const D3D12_TILE_MAPPING_FLAG_NONE: D3D12_TILE_MAPPING_FLAGS = D3D12_TILE_MAPPING_FLAGS(0i32);
23724#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23725pub const D3D12_TILE_MAPPING_FLAG_NO_HAZARD: D3D12_TILE_MAPPING_FLAGS = D3D12_TILE_MAPPING_FLAGS(1i32);
23726impl ::core::marker::Copy for D3D12_TILE_MAPPING_FLAGS {}
23727impl ::core::clone::Clone for D3D12_TILE_MAPPING_FLAGS {
23728 fn clone(&self) -> Self {
23729 *self
23730 }
23731}
23732impl ::core::default::Default for D3D12_TILE_MAPPING_FLAGS {
23733 fn default() -> Self {
23734 Self(0)
23735 }
23736}
23737impl ::windows::core::TypeKind for D3D12_TILE_MAPPING_FLAGS {
23738 type TypeKind = ::windows::core::CopyType;
23739}
23740impl ::core::fmt::Debug for D3D12_TILE_MAPPING_FLAGS {
23741 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23742 f.debug_tuple("D3D12_TILE_MAPPING_FLAGS").field(&self.0).finish()
23743 }
23744}
23745impl D3D12_TILE_MAPPING_FLAGS {
23746 pub const fn contains(&self, other: Self) -> bool {
23747 self.0 & other.0 == other.0
23748 }
23749}
23750impl ::core::ops::BitOr for D3D12_TILE_MAPPING_FLAGS {
23751 type Output = Self;
23752 fn bitor(self, other: Self) -> Self {
23753 Self(self.0 | other.0)
23754 }
23755}
23756impl ::core::ops::BitAnd for D3D12_TILE_MAPPING_FLAGS {
23757 type Output = Self;
23758 fn bitand(self, other: Self) -> Self {
23759 Self(self.0 & other.0)
23760 }
23761}
23762impl ::core::ops::BitOrAssign for D3D12_TILE_MAPPING_FLAGS {
23763 fn bitor_assign(&mut self, other: Self) {
23764 self.0.bitor_assign(other.0)
23765 }
23766}
23767impl ::core::ops::BitAndAssign for D3D12_TILE_MAPPING_FLAGS {
23768 fn bitand_assign(&mut self, other: Self) {
23769 self.0.bitand_assign(other.0)
23770 }
23771}
23772impl ::core::ops::Not for D3D12_TILE_MAPPING_FLAGS {
23773 type Output = Self;
23774 fn not(self) -> Self {
23775 Self(self.0.not())
23776 }
23777}
23778#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23779#[repr(transparent)]
23780#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23781pub struct D3D12_TILE_RANGE_FLAGS(pub i32);
23782#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23783pub const D3D12_TILE_RANGE_FLAG_NONE: D3D12_TILE_RANGE_FLAGS = D3D12_TILE_RANGE_FLAGS(0i32);
23784#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23785pub const D3D12_TILE_RANGE_FLAG_NULL: D3D12_TILE_RANGE_FLAGS = D3D12_TILE_RANGE_FLAGS(1i32);
23786#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23787pub const D3D12_TILE_RANGE_FLAG_SKIP: D3D12_TILE_RANGE_FLAGS = D3D12_TILE_RANGE_FLAGS(2i32);
23788#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23789pub const D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE: D3D12_TILE_RANGE_FLAGS = D3D12_TILE_RANGE_FLAGS(4i32);
23790impl ::core::marker::Copy for D3D12_TILE_RANGE_FLAGS {}
23791impl ::core::clone::Clone for D3D12_TILE_RANGE_FLAGS {
23792 fn clone(&self) -> Self {
23793 *self
23794 }
23795}
23796impl ::core::default::Default for D3D12_TILE_RANGE_FLAGS {
23797 fn default() -> Self {
23798 Self(0)
23799 }
23800}
23801impl ::windows::core::TypeKind for D3D12_TILE_RANGE_FLAGS {
23802 type TypeKind = ::windows::core::CopyType;
23803}
23804impl ::core::fmt::Debug for D3D12_TILE_RANGE_FLAGS {
23805 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23806 f.debug_tuple("D3D12_TILE_RANGE_FLAGS").field(&self.0).finish()
23807 }
23808}
23809#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23810#[repr(transparent)]
23811#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23812pub struct D3D12_TRI_STATE(pub i32);
23813#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23814pub const D3D12_TRI_STATE_UNKNOWN: D3D12_TRI_STATE = D3D12_TRI_STATE(-1i32);
23815#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23816pub const D3D12_TRI_STATE_FALSE: D3D12_TRI_STATE = D3D12_TRI_STATE(0i32);
23817#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23818pub const D3D12_TRI_STATE_TRUE: D3D12_TRI_STATE = D3D12_TRI_STATE(1i32);
23819impl ::core::marker::Copy for D3D12_TRI_STATE {}
23820impl ::core::clone::Clone for D3D12_TRI_STATE {
23821 fn clone(&self) -> Self {
23822 *self
23823 }
23824}
23825impl ::core::default::Default for D3D12_TRI_STATE {
23826 fn default() -> Self {
23827 Self(0)
23828 }
23829}
23830impl ::windows::core::TypeKind for D3D12_TRI_STATE {
23831 type TypeKind = ::windows::core::CopyType;
23832}
23833impl ::core::fmt::Debug for D3D12_TRI_STATE {
23834 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23835 f.debug_tuple("D3D12_TRI_STATE").field(&self.0).finish()
23836 }
23837}
23838#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23839#[repr(transparent)]
23840#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23841pub struct D3D12_UAV_DIMENSION(pub i32);
23842#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23843pub const D3D12_UAV_DIMENSION_UNKNOWN: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(0i32);
23844#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23845pub const D3D12_UAV_DIMENSION_BUFFER: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(1i32);
23846#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23847pub const D3D12_UAV_DIMENSION_TEXTURE1D: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(2i32);
23848#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23849pub const D3D12_UAV_DIMENSION_TEXTURE1DARRAY: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(3i32);
23850#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23851pub const D3D12_UAV_DIMENSION_TEXTURE2D: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(4i32);
23852#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23853pub const D3D12_UAV_DIMENSION_TEXTURE2DARRAY: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(5i32);
23854#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23855pub const D3D12_UAV_DIMENSION_TEXTURE2DMS: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(6i32);
23856#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23857pub const D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(7i32);
23858#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23859pub const D3D12_UAV_DIMENSION_TEXTURE3D: D3D12_UAV_DIMENSION = D3D12_UAV_DIMENSION(8i32);
23860impl ::core::marker::Copy for D3D12_UAV_DIMENSION {}
23861impl ::core::clone::Clone for D3D12_UAV_DIMENSION {
23862 fn clone(&self) -> Self {
23863 *self
23864 }
23865}
23866impl ::core::default::Default for D3D12_UAV_DIMENSION {
23867 fn default() -> Self {
23868 Self(0)
23869 }
23870}
23871impl ::windows::core::TypeKind for D3D12_UAV_DIMENSION {
23872 type TypeKind = ::windows::core::CopyType;
23873}
23874impl ::core::fmt::Debug for D3D12_UAV_DIMENSION {
23875 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23876 f.debug_tuple("D3D12_UAV_DIMENSION").field(&self.0).finish()
23877 }
23878}
23879#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23880#[repr(transparent)]
23881#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23882pub struct D3D12_VARIABLE_SHADING_RATE_TIER(pub i32);
23883#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23884pub const D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED: D3D12_VARIABLE_SHADING_RATE_TIER = D3D12_VARIABLE_SHADING_RATE_TIER(0i32);
23885#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23886pub const D3D12_VARIABLE_SHADING_RATE_TIER_1: D3D12_VARIABLE_SHADING_RATE_TIER = D3D12_VARIABLE_SHADING_RATE_TIER(1i32);
23887#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23888pub const D3D12_VARIABLE_SHADING_RATE_TIER_2: D3D12_VARIABLE_SHADING_RATE_TIER = D3D12_VARIABLE_SHADING_RATE_TIER(2i32);
23889impl ::core::marker::Copy for D3D12_VARIABLE_SHADING_RATE_TIER {}
23890impl ::core::clone::Clone for D3D12_VARIABLE_SHADING_RATE_TIER {
23891 fn clone(&self) -> Self {
23892 *self
23893 }
23894}
23895impl ::core::default::Default for D3D12_VARIABLE_SHADING_RATE_TIER {
23896 fn default() -> Self {
23897 Self(0)
23898 }
23899}
23900impl ::windows::core::TypeKind for D3D12_VARIABLE_SHADING_RATE_TIER {
23901 type TypeKind = ::windows::core::CopyType;
23902}
23903impl ::core::fmt::Debug for D3D12_VARIABLE_SHADING_RATE_TIER {
23904 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23905 f.debug_tuple("D3D12_VARIABLE_SHADING_RATE_TIER").field(&self.0).finish()
23906 }
23907}
23908#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23909#[repr(transparent)]
23910#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23911pub struct D3D12_VIEW_INSTANCING_FLAGS(pub i32);
23912#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23913pub const D3D12_VIEW_INSTANCING_FLAG_NONE: D3D12_VIEW_INSTANCING_FLAGS = D3D12_VIEW_INSTANCING_FLAGS(0i32);
23914#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23915pub const D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING: D3D12_VIEW_INSTANCING_FLAGS = D3D12_VIEW_INSTANCING_FLAGS(1i32);
23916impl ::core::marker::Copy for D3D12_VIEW_INSTANCING_FLAGS {}
23917impl ::core::clone::Clone for D3D12_VIEW_INSTANCING_FLAGS {
23918 fn clone(&self) -> Self {
23919 *self
23920 }
23921}
23922impl ::core::default::Default for D3D12_VIEW_INSTANCING_FLAGS {
23923 fn default() -> Self {
23924 Self(0)
23925 }
23926}
23927impl ::windows::core::TypeKind for D3D12_VIEW_INSTANCING_FLAGS {
23928 type TypeKind = ::windows::core::CopyType;
23929}
23930impl ::core::fmt::Debug for D3D12_VIEW_INSTANCING_FLAGS {
23931 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23932 f.debug_tuple("D3D12_VIEW_INSTANCING_FLAGS").field(&self.0).finish()
23933 }
23934}
23935impl D3D12_VIEW_INSTANCING_FLAGS {
23936 pub const fn contains(&self, other: Self) -> bool {
23937 self.0 & other.0 == other.0
23938 }
23939}
23940impl ::core::ops::BitOr for D3D12_VIEW_INSTANCING_FLAGS {
23941 type Output = Self;
23942 fn bitor(self, other: Self) -> Self {
23943 Self(self.0 | other.0)
23944 }
23945}
23946impl ::core::ops::BitAnd for D3D12_VIEW_INSTANCING_FLAGS {
23947 type Output = Self;
23948 fn bitand(self, other: Self) -> Self {
23949 Self(self.0 & other.0)
23950 }
23951}
23952impl ::core::ops::BitOrAssign for D3D12_VIEW_INSTANCING_FLAGS {
23953 fn bitor_assign(&mut self, other: Self) {
23954 self.0.bitor_assign(other.0)
23955 }
23956}
23957impl ::core::ops::BitAndAssign for D3D12_VIEW_INSTANCING_FLAGS {
23958 fn bitand_assign(&mut self, other: Self) {
23959 self.0.bitand_assign(other.0)
23960 }
23961}
23962impl ::core::ops::Not for D3D12_VIEW_INSTANCING_FLAGS {
23963 type Output = Self;
23964 fn not(self) -> Self {
23965 Self(self.0.not())
23966 }
23967}
23968#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23969#[repr(transparent)]
23970#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
23971pub struct D3D12_VIEW_INSTANCING_TIER(pub i32);
23972#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23973pub const D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED: D3D12_VIEW_INSTANCING_TIER = D3D12_VIEW_INSTANCING_TIER(0i32);
23974#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23975pub const D3D12_VIEW_INSTANCING_TIER_1: D3D12_VIEW_INSTANCING_TIER = D3D12_VIEW_INSTANCING_TIER(1i32);
23976#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23977pub const D3D12_VIEW_INSTANCING_TIER_2: D3D12_VIEW_INSTANCING_TIER = D3D12_VIEW_INSTANCING_TIER(2i32);
23978#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
23979pub const D3D12_VIEW_INSTANCING_TIER_3: D3D12_VIEW_INSTANCING_TIER = D3D12_VIEW_INSTANCING_TIER(3i32);
23980impl ::core::marker::Copy for D3D12_VIEW_INSTANCING_TIER {}
23981impl ::core::clone::Clone for D3D12_VIEW_INSTANCING_TIER {
23982 fn clone(&self) -> Self {
23983 *self
23984 }
23985}
23986impl ::core::default::Default for D3D12_VIEW_INSTANCING_TIER {
23987 fn default() -> Self {
23988 Self(0)
23989 }
23990}
23991impl ::windows::core::TypeKind for D3D12_VIEW_INSTANCING_TIER {
23992 type TypeKind = ::windows::core::CopyType;
23993}
23994impl ::core::fmt::Debug for D3D12_VIEW_INSTANCING_TIER {
23995 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
23996 f.debug_tuple("D3D12_VIEW_INSTANCING_TIER").field(&self.0).finish()
23997 }
23998}
23999#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24000#[repr(transparent)]
24001#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
24002pub struct D3D12_WAVE_MMA_TIER(pub i32);
24003#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24004pub const D3D12_WAVE_MMA_TIER_NOT_SUPPORTED: D3D12_WAVE_MMA_TIER = D3D12_WAVE_MMA_TIER(0i32);
24005#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24006pub const D3D12_WAVE_MMA_TIER_1_0: D3D12_WAVE_MMA_TIER = D3D12_WAVE_MMA_TIER(10i32);
24007impl ::core::marker::Copy for D3D12_WAVE_MMA_TIER {}
24008impl ::core::clone::Clone for D3D12_WAVE_MMA_TIER {
24009 fn clone(&self) -> Self {
24010 *self
24011 }
24012}
24013impl ::core::default::Default for D3D12_WAVE_MMA_TIER {
24014 fn default() -> Self {
24015 Self(0)
24016 }
24017}
24018impl ::windows::core::TypeKind for D3D12_WAVE_MMA_TIER {
24019 type TypeKind = ::windows::core::CopyType;
24020}
24021impl ::core::fmt::Debug for D3D12_WAVE_MMA_TIER {
24022 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24023 f.debug_tuple("D3D12_WAVE_MMA_TIER").field(&self.0).finish()
24024 }
24025}
24026#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24027#[repr(transparent)]
24028#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
24029pub struct D3D12_WRITEBUFFERIMMEDIATE_MODE(pub i32);
24030#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24031pub const D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT: D3D12_WRITEBUFFERIMMEDIATE_MODE = D3D12_WRITEBUFFERIMMEDIATE_MODE(0i32);
24032#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24033pub const D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN: D3D12_WRITEBUFFERIMMEDIATE_MODE = D3D12_WRITEBUFFERIMMEDIATE_MODE(1i32);
24034#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24035pub const D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT: D3D12_WRITEBUFFERIMMEDIATE_MODE = D3D12_WRITEBUFFERIMMEDIATE_MODE(2i32);
24036impl ::core::marker::Copy for D3D12_WRITEBUFFERIMMEDIATE_MODE {}
24037impl ::core::clone::Clone for D3D12_WRITEBUFFERIMMEDIATE_MODE {
24038 fn clone(&self) -> Self {
24039 *self
24040 }
24041}
24042impl ::core::default::Default for D3D12_WRITEBUFFERIMMEDIATE_MODE {
24043 fn default() -> Self {
24044 Self(0)
24045 }
24046}
24047impl ::windows::core::TypeKind for D3D12_WRITEBUFFERIMMEDIATE_MODE {
24048 type TypeKind = ::windows::core::CopyType;
24049}
24050impl ::core::fmt::Debug for D3D12_WRITEBUFFERIMMEDIATE_MODE {
24051 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24052 f.debug_tuple("D3D12_WRITEBUFFERIMMEDIATE_MODE").field(&self.0).finish()
24053 }
24054}
24055#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24056#[repr(transparent)]
24057#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
24058pub struct D3D_ROOT_SIGNATURE_VERSION(pub i32);
24059#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24060pub const D3D_ROOT_SIGNATURE_VERSION_1: D3D_ROOT_SIGNATURE_VERSION = D3D_ROOT_SIGNATURE_VERSION(1i32);
24061#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24062pub const D3D_ROOT_SIGNATURE_VERSION_1_0: D3D_ROOT_SIGNATURE_VERSION = D3D_ROOT_SIGNATURE_VERSION(1i32);
24063#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24064pub const D3D_ROOT_SIGNATURE_VERSION_1_1: D3D_ROOT_SIGNATURE_VERSION = D3D_ROOT_SIGNATURE_VERSION(2i32);
24065impl ::core::marker::Copy for D3D_ROOT_SIGNATURE_VERSION {}
24066impl ::core::clone::Clone for D3D_ROOT_SIGNATURE_VERSION {
24067 fn clone(&self) -> Self {
24068 *self
24069 }
24070}
24071impl ::core::default::Default for D3D_ROOT_SIGNATURE_VERSION {
24072 fn default() -> Self {
24073 Self(0)
24074 }
24075}
24076impl ::windows::core::TypeKind for D3D_ROOT_SIGNATURE_VERSION {
24077 type TypeKind = ::windows::core::CopyType;
24078}
24079impl ::core::fmt::Debug for D3D_ROOT_SIGNATURE_VERSION {
24080 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24081 f.debug_tuple("D3D_ROOT_SIGNATURE_VERSION").field(&self.0).finish()
24082 }
24083}
24084#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24085#[repr(transparent)]
24086#[derive(::core::cmp::PartialEq, ::core::cmp::Eq)]
24087pub struct D3D_SHADER_MODEL(pub i32);
24088#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24089pub const D3D_SHADER_MODEL_5_1: D3D_SHADER_MODEL = D3D_SHADER_MODEL(81i32);
24090#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24091pub const D3D_SHADER_MODEL_6_0: D3D_SHADER_MODEL = D3D_SHADER_MODEL(96i32);
24092#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24093pub const D3D_SHADER_MODEL_6_1: D3D_SHADER_MODEL = D3D_SHADER_MODEL(97i32);
24094#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24095pub const D3D_SHADER_MODEL_6_2: D3D_SHADER_MODEL = D3D_SHADER_MODEL(98i32);
24096#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24097pub const D3D_SHADER_MODEL_6_3: D3D_SHADER_MODEL = D3D_SHADER_MODEL(99i32);
24098#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24099pub const D3D_SHADER_MODEL_6_4: D3D_SHADER_MODEL = D3D_SHADER_MODEL(100i32);
24100#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24101pub const D3D_SHADER_MODEL_6_5: D3D_SHADER_MODEL = D3D_SHADER_MODEL(101i32);
24102#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24103pub const D3D_SHADER_MODEL_6_6: D3D_SHADER_MODEL = D3D_SHADER_MODEL(102i32);
24104#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24105pub const D3D_SHADER_MODEL_6_7: D3D_SHADER_MODEL = D3D_SHADER_MODEL(103i32);
24106#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24107pub const D3D_SHADER_MODEL_6_8: D3D_SHADER_MODEL = D3D_SHADER_MODEL(104i32);
24108#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24109pub const D3D_HIGHEST_SHADER_MODEL: D3D_SHADER_MODEL = D3D_SHADER_MODEL(104i32);
24110impl ::core::marker::Copy for D3D_SHADER_MODEL {}
24111impl ::core::clone::Clone for D3D_SHADER_MODEL {
24112 fn clone(&self) -> Self {
24113 *self
24114 }
24115}
24116impl ::core::default::Default for D3D_SHADER_MODEL {
24117 fn default() -> Self {
24118 Self(0)
24119 }
24120}
24121impl ::windows::core::TypeKind for D3D_SHADER_MODEL {
24122 type TypeKind = ::windows::core::CopyType;
24123}
24124impl ::core::fmt::Debug for D3D_SHADER_MODEL {
24125 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24126 f.debug_tuple("D3D_SHADER_MODEL").field(&self.0).finish()
24127 }
24128}
24129#[repr(C)]
24130#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24131pub struct D3D12_AUTO_BREADCRUMB_NODE {
24132 pub pCommandListDebugNameA: ::windows::core::PCSTR,
24133 pub pCommandListDebugNameW: ::windows::core::PCWSTR,
24134 pub pCommandQueueDebugNameA: ::windows::core::PCSTR,
24135 pub pCommandQueueDebugNameW: ::windows::core::PCWSTR,
24136 pub pCommandList: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12GraphicsCommandList>>,
24137 pub pCommandQueue: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12CommandQueue>>,
24138 pub BreadcrumbCount: u32,
24139 pub pLastBreadcrumbValue: *const u32,
24140 pub pCommandHistory: *const D3D12_AUTO_BREADCRUMB_OP,
24141 pub pNext: *const D3D12_AUTO_BREADCRUMB_NODE,
24142}
24143impl ::core::clone::Clone for D3D12_AUTO_BREADCRUMB_NODE {
24144 fn clone(&self) -> Self {
24145 unsafe { ::core::mem::transmute_copy(self) }
24146 }
24147}
24148impl ::core::fmt::Debug for D3D12_AUTO_BREADCRUMB_NODE {
24149 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24150 f.debug_struct("D3D12_AUTO_BREADCRUMB_NODE")
24151 .field("pCommandListDebugNameA", &self.pCommandListDebugNameA)
24152 .field("pCommandListDebugNameW", &self.pCommandListDebugNameW)
24153 .field("pCommandQueueDebugNameA", &self.pCommandQueueDebugNameA)
24154 .field("pCommandQueueDebugNameW", &self.pCommandQueueDebugNameW)
24155 .field("pCommandList", &self.pCommandList)
24156 .field("pCommandQueue", &self.pCommandQueue)
24157 .field("BreadcrumbCount", &self.BreadcrumbCount)
24158 .field("pLastBreadcrumbValue", &self.pLastBreadcrumbValue)
24159 .field("pCommandHistory", &self.pCommandHistory)
24160 .field("pNext", &self.pNext)
24161 .finish()
24162 }
24163}
24164impl ::windows::core::TypeKind for D3D12_AUTO_BREADCRUMB_NODE {
24165 type TypeKind = ::windows::core::CopyType;
24166}
24167impl ::core::cmp::PartialEq for D3D12_AUTO_BREADCRUMB_NODE {
24168 fn eq(&self, other: &Self) -> bool {
24169 self.pCommandListDebugNameA == other.pCommandListDebugNameA && self.pCommandListDebugNameW == other.pCommandListDebugNameW && self.pCommandQueueDebugNameA == other.pCommandQueueDebugNameA && self.pCommandQueueDebugNameW == other.pCommandQueueDebugNameW && self.pCommandList == other.pCommandList && self.pCommandQueue == other.pCommandQueue && self.BreadcrumbCount == other.BreadcrumbCount && self.pLastBreadcrumbValue == other.pLastBreadcrumbValue && self.pCommandHistory == other.pCommandHistory && self.pNext == other.pNext
24170 }
24171}
24172impl ::core::cmp::Eq for D3D12_AUTO_BREADCRUMB_NODE {}
24173impl ::core::default::Default for D3D12_AUTO_BREADCRUMB_NODE {
24174 fn default() -> Self {
24175 unsafe { ::core::mem::zeroed() }
24176 }
24177}
24178#[repr(C)]
24179#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24180pub struct D3D12_AUTO_BREADCRUMB_NODE1 {
24181 pub pCommandListDebugNameA: ::windows::core::PCSTR,
24182 pub pCommandListDebugNameW: ::windows::core::PCWSTR,
24183 pub pCommandQueueDebugNameA: ::windows::core::PCSTR,
24184 pub pCommandQueueDebugNameW: ::windows::core::PCWSTR,
24185 pub pCommandList: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12GraphicsCommandList>>,
24186 pub pCommandQueue: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12CommandQueue>>,
24187 pub BreadcrumbCount: u32,
24188 pub pLastBreadcrumbValue: *const u32,
24189 pub pCommandHistory: *const D3D12_AUTO_BREADCRUMB_OP,
24190 pub pNext: *const D3D12_AUTO_BREADCRUMB_NODE1,
24191 pub BreadcrumbContextsCount: u32,
24192 pub pBreadcrumbContexts: *mut D3D12_DRED_BREADCRUMB_CONTEXT,
24193}
24194impl ::core::clone::Clone for D3D12_AUTO_BREADCRUMB_NODE1 {
24195 fn clone(&self) -> Self {
24196 unsafe { ::core::mem::transmute_copy(self) }
24197 }
24198}
24199impl ::core::fmt::Debug for D3D12_AUTO_BREADCRUMB_NODE1 {
24200 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24201 f.debug_struct("D3D12_AUTO_BREADCRUMB_NODE1")
24202 .field("pCommandListDebugNameA", &self.pCommandListDebugNameA)
24203 .field("pCommandListDebugNameW", &self.pCommandListDebugNameW)
24204 .field("pCommandQueueDebugNameA", &self.pCommandQueueDebugNameA)
24205 .field("pCommandQueueDebugNameW", &self.pCommandQueueDebugNameW)
24206 .field("pCommandList", &self.pCommandList)
24207 .field("pCommandQueue", &self.pCommandQueue)
24208 .field("BreadcrumbCount", &self.BreadcrumbCount)
24209 .field("pLastBreadcrumbValue", &self.pLastBreadcrumbValue)
24210 .field("pCommandHistory", &self.pCommandHistory)
24211 .field("pNext", &self.pNext)
24212 .field("BreadcrumbContextsCount", &self.BreadcrumbContextsCount)
24213 .field("pBreadcrumbContexts", &self.pBreadcrumbContexts)
24214 .finish()
24215 }
24216}
24217impl ::windows::core::TypeKind for D3D12_AUTO_BREADCRUMB_NODE1 {
24218 type TypeKind = ::windows::core::CopyType;
24219}
24220impl ::core::cmp::PartialEq for D3D12_AUTO_BREADCRUMB_NODE1 {
24221 fn eq(&self, other: &Self) -> bool {
24222 self.pCommandListDebugNameA == other.pCommandListDebugNameA && self.pCommandListDebugNameW == other.pCommandListDebugNameW && self.pCommandQueueDebugNameA == other.pCommandQueueDebugNameA && self.pCommandQueueDebugNameW == other.pCommandQueueDebugNameW && self.pCommandList == other.pCommandList && self.pCommandQueue == other.pCommandQueue && self.BreadcrumbCount == other.BreadcrumbCount && self.pLastBreadcrumbValue == other.pLastBreadcrumbValue && self.pCommandHistory == other.pCommandHistory && self.pNext == other.pNext && self.BreadcrumbContextsCount == other.BreadcrumbContextsCount && self.pBreadcrumbContexts == other.pBreadcrumbContexts
24223 }
24224}
24225impl ::core::cmp::Eq for D3D12_AUTO_BREADCRUMB_NODE1 {}
24226impl ::core::default::Default for D3D12_AUTO_BREADCRUMB_NODE1 {
24227 fn default() -> Self {
24228 unsafe { ::core::mem::zeroed() }
24229 }
24230}
24231#[repr(C)]
24232#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24233pub struct D3D12_BARRIER_GROUP {
24234 pub Type: D3D12_BARRIER_TYPE,
24235 pub NumBarriers: u32,
24236 pub Anonymous: D3D12_BARRIER_GROUP_0,
24237}
24238impl ::core::marker::Copy for D3D12_BARRIER_GROUP {}
24239impl ::core::clone::Clone for D3D12_BARRIER_GROUP {
24240 fn clone(&self) -> Self {
24241 *self
24242 }
24243}
24244impl ::windows::core::TypeKind for D3D12_BARRIER_GROUP {
24245 type TypeKind = ::windows::core::CopyType;
24246}
24247impl ::core::default::Default for D3D12_BARRIER_GROUP {
24248 fn default() -> Self {
24249 unsafe { ::core::mem::zeroed() }
24250 }
24251}
24252#[repr(C)]
24253#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24254pub union D3D12_BARRIER_GROUP_0 {
24255 pub pGlobalBarriers: *const D3D12_GLOBAL_BARRIER,
24256 pub pTextureBarriers: *const D3D12_TEXTURE_BARRIER,
24257 pub pBufferBarriers: *const D3D12_BUFFER_BARRIER,
24258}
24259impl ::core::marker::Copy for D3D12_BARRIER_GROUP_0 {}
24260impl ::core::clone::Clone for D3D12_BARRIER_GROUP_0 {
24261 fn clone(&self) -> Self {
24262 *self
24263 }
24264}
24265impl ::windows::core::TypeKind for D3D12_BARRIER_GROUP_0 {
24266 type TypeKind = ::windows::core::CopyType;
24267}
24268impl ::core::default::Default for D3D12_BARRIER_GROUP_0 {
24269 fn default() -> Self {
24270 unsafe { ::core::mem::zeroed() }
24271 }
24272}
24273#[repr(C)]
24274#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24275pub struct D3D12_BARRIER_SUBRESOURCE_RANGE {
24276 pub IndexOrFirstMipLevel: u32,
24277 pub NumMipLevels: u32,
24278 pub FirstArraySlice: u32,
24279 pub NumArraySlices: u32,
24280 pub FirstPlane: u32,
24281 pub NumPlanes: u32,
24282}
24283impl ::core::marker::Copy for D3D12_BARRIER_SUBRESOURCE_RANGE {}
24284impl ::core::clone::Clone for D3D12_BARRIER_SUBRESOURCE_RANGE {
24285 fn clone(&self) -> Self {
24286 *self
24287 }
24288}
24289impl ::core::fmt::Debug for D3D12_BARRIER_SUBRESOURCE_RANGE {
24290 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24291 f.debug_struct("D3D12_BARRIER_SUBRESOURCE_RANGE").field("IndexOrFirstMipLevel", &self.IndexOrFirstMipLevel).field("NumMipLevels", &self.NumMipLevels).field("FirstArraySlice", &self.FirstArraySlice).field("NumArraySlices", &self.NumArraySlices).field("FirstPlane", &self.FirstPlane).field("NumPlanes", &self.NumPlanes).finish()
24292 }
24293}
24294impl ::windows::core::TypeKind for D3D12_BARRIER_SUBRESOURCE_RANGE {
24295 type TypeKind = ::windows::core::CopyType;
24296}
24297impl ::core::cmp::PartialEq for D3D12_BARRIER_SUBRESOURCE_RANGE {
24298 fn eq(&self, other: &Self) -> bool {
24299 self.IndexOrFirstMipLevel == other.IndexOrFirstMipLevel && self.NumMipLevels == other.NumMipLevels && self.FirstArraySlice == other.FirstArraySlice && self.NumArraySlices == other.NumArraySlices && self.FirstPlane == other.FirstPlane && self.NumPlanes == other.NumPlanes
24300 }
24301}
24302impl ::core::cmp::Eq for D3D12_BARRIER_SUBRESOURCE_RANGE {}
24303impl ::core::default::Default for D3D12_BARRIER_SUBRESOURCE_RANGE {
24304 fn default() -> Self {
24305 unsafe { ::core::mem::zeroed() }
24306 }
24307}
24308#[repr(C)]
24309#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
24310#[cfg(feature = "Win32_Foundation")]
24311pub struct D3D12_BLEND_DESC {
24312 pub AlphaToCoverageEnable: super::super::Foundation::BOOL,
24313 pub IndependentBlendEnable: super::super::Foundation::BOOL,
24314 pub RenderTarget: [D3D12_RENDER_TARGET_BLEND_DESC; 8],
24315}
24316#[cfg(feature = "Win32_Foundation")]
24317impl ::core::marker::Copy for D3D12_BLEND_DESC {}
24318#[cfg(feature = "Win32_Foundation")]
24319impl ::core::clone::Clone for D3D12_BLEND_DESC {
24320 fn clone(&self) -> Self {
24321 *self
24322 }
24323}
24324#[cfg(feature = "Win32_Foundation")]
24325impl ::core::fmt::Debug for D3D12_BLEND_DESC {
24326 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24327 f.debug_struct("D3D12_BLEND_DESC").field("AlphaToCoverageEnable", &self.AlphaToCoverageEnable).field("IndependentBlendEnable", &self.IndependentBlendEnable).field("RenderTarget", &self.RenderTarget).finish()
24328 }
24329}
24330#[cfg(feature = "Win32_Foundation")]
24331impl ::windows::core::TypeKind for D3D12_BLEND_DESC {
24332 type TypeKind = ::windows::core::CopyType;
24333}
24334#[cfg(feature = "Win32_Foundation")]
24335impl ::core::cmp::PartialEq for D3D12_BLEND_DESC {
24336 fn eq(&self, other: &Self) -> bool {
24337 self.AlphaToCoverageEnable == other.AlphaToCoverageEnable && self.IndependentBlendEnable == other.IndependentBlendEnable && self.RenderTarget == other.RenderTarget
24338 }
24339}
24340#[cfg(feature = "Win32_Foundation")]
24341impl ::core::cmp::Eq for D3D12_BLEND_DESC {}
24342#[cfg(feature = "Win32_Foundation")]
24343impl ::core::default::Default for D3D12_BLEND_DESC {
24344 fn default() -> Self {
24345 unsafe { ::core::mem::zeroed() }
24346 }
24347}
24348#[repr(C)]
24349#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24350pub struct D3D12_BOX {
24351 pub left: u32,
24352 pub top: u32,
24353 pub front: u32,
24354 pub right: u32,
24355 pub bottom: u32,
24356 pub back: u32,
24357}
24358impl ::core::marker::Copy for D3D12_BOX {}
24359impl ::core::clone::Clone for D3D12_BOX {
24360 fn clone(&self) -> Self {
24361 *self
24362 }
24363}
24364impl ::core::fmt::Debug for D3D12_BOX {
24365 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24366 f.debug_struct("D3D12_BOX").field("left", &self.left).field("top", &self.top).field("front", &self.front).field("right", &self.right).field("bottom", &self.bottom).field("back", &self.back).finish()
24367 }
24368}
24369impl ::windows::core::TypeKind for D3D12_BOX {
24370 type TypeKind = ::windows::core::CopyType;
24371}
24372impl ::core::cmp::PartialEq for D3D12_BOX {
24373 fn eq(&self, other: &Self) -> bool {
24374 self.left == other.left && self.top == other.top && self.front == other.front && self.right == other.right && self.bottom == other.bottom && self.back == other.back
24375 }
24376}
24377impl ::core::cmp::Eq for D3D12_BOX {}
24378impl ::core::default::Default for D3D12_BOX {
24379 fn default() -> Self {
24380 unsafe { ::core::mem::zeroed() }
24381 }
24382}
24383#[repr(C)]
24384#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24385pub struct D3D12_BUFFER_BARRIER {
24386 pub SyncBefore: D3D12_BARRIER_SYNC,
24387 pub SyncAfter: D3D12_BARRIER_SYNC,
24388 pub AccessBefore: D3D12_BARRIER_ACCESS,
24389 pub AccessAfter: D3D12_BARRIER_ACCESS,
24390 pub pResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
24391 pub Offset: u64,
24392 pub Size: u64,
24393}
24394impl ::core::clone::Clone for D3D12_BUFFER_BARRIER {
24395 fn clone(&self) -> Self {
24396 unsafe { ::core::mem::transmute_copy(self) }
24397 }
24398}
24399impl ::core::fmt::Debug for D3D12_BUFFER_BARRIER {
24400 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24401 f.debug_struct("D3D12_BUFFER_BARRIER").field("SyncBefore", &self.SyncBefore).field("SyncAfter", &self.SyncAfter).field("AccessBefore", &self.AccessBefore).field("AccessAfter", &self.AccessAfter).field("pResource", &self.pResource).field("Offset", &self.Offset).field("Size", &self.Size).finish()
24402 }
24403}
24404impl ::windows::core::TypeKind for D3D12_BUFFER_BARRIER {
24405 type TypeKind = ::windows::core::CopyType;
24406}
24407impl ::core::cmp::PartialEq for D3D12_BUFFER_BARRIER {
24408 fn eq(&self, other: &Self) -> bool {
24409 self.SyncBefore == other.SyncBefore && self.SyncAfter == other.SyncAfter && self.AccessBefore == other.AccessBefore && self.AccessAfter == other.AccessAfter && self.pResource == other.pResource && self.Offset == other.Offset && self.Size == other.Size
24410 }
24411}
24412impl ::core::cmp::Eq for D3D12_BUFFER_BARRIER {}
24413impl ::core::default::Default for D3D12_BUFFER_BARRIER {
24414 fn default() -> Self {
24415 unsafe { ::core::mem::zeroed() }
24416 }
24417}
24418#[repr(C)]
24419#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24420pub struct D3D12_BUFFER_RTV {
24421 pub FirstElement: u64,
24422 pub NumElements: u32,
24423}
24424impl ::core::marker::Copy for D3D12_BUFFER_RTV {}
24425impl ::core::clone::Clone for D3D12_BUFFER_RTV {
24426 fn clone(&self) -> Self {
24427 *self
24428 }
24429}
24430impl ::core::fmt::Debug for D3D12_BUFFER_RTV {
24431 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24432 f.debug_struct("D3D12_BUFFER_RTV").field("FirstElement", &self.FirstElement).field("NumElements", &self.NumElements).finish()
24433 }
24434}
24435impl ::windows::core::TypeKind for D3D12_BUFFER_RTV {
24436 type TypeKind = ::windows::core::CopyType;
24437}
24438impl ::core::cmp::PartialEq for D3D12_BUFFER_RTV {
24439 fn eq(&self, other: &Self) -> bool {
24440 self.FirstElement == other.FirstElement && self.NumElements == other.NumElements
24441 }
24442}
24443impl ::core::cmp::Eq for D3D12_BUFFER_RTV {}
24444impl ::core::default::Default for D3D12_BUFFER_RTV {
24445 fn default() -> Self {
24446 unsafe { ::core::mem::zeroed() }
24447 }
24448}
24449#[repr(C)]
24450#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24451pub struct D3D12_BUFFER_SRV {
24452 pub FirstElement: u64,
24453 pub NumElements: u32,
24454 pub StructureByteStride: u32,
24455 pub Flags: D3D12_BUFFER_SRV_FLAGS,
24456}
24457impl ::core::marker::Copy for D3D12_BUFFER_SRV {}
24458impl ::core::clone::Clone for D3D12_BUFFER_SRV {
24459 fn clone(&self) -> Self {
24460 *self
24461 }
24462}
24463impl ::core::fmt::Debug for D3D12_BUFFER_SRV {
24464 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24465 f.debug_struct("D3D12_BUFFER_SRV").field("FirstElement", &self.FirstElement).field("NumElements", &self.NumElements).field("StructureByteStride", &self.StructureByteStride).field("Flags", &self.Flags).finish()
24466 }
24467}
24468impl ::windows::core::TypeKind for D3D12_BUFFER_SRV {
24469 type TypeKind = ::windows::core::CopyType;
24470}
24471impl ::core::cmp::PartialEq for D3D12_BUFFER_SRV {
24472 fn eq(&self, other: &Self) -> bool {
24473 self.FirstElement == other.FirstElement && self.NumElements == other.NumElements && self.StructureByteStride == other.StructureByteStride && self.Flags == other.Flags
24474 }
24475}
24476impl ::core::cmp::Eq for D3D12_BUFFER_SRV {}
24477impl ::core::default::Default for D3D12_BUFFER_SRV {
24478 fn default() -> Self {
24479 unsafe { ::core::mem::zeroed() }
24480 }
24481}
24482#[repr(C)]
24483#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24484pub struct D3D12_BUFFER_UAV {
24485 pub FirstElement: u64,
24486 pub NumElements: u32,
24487 pub StructureByteStride: u32,
24488 pub CounterOffsetInBytes: u64,
24489 pub Flags: D3D12_BUFFER_UAV_FLAGS,
24490}
24491impl ::core::marker::Copy for D3D12_BUFFER_UAV {}
24492impl ::core::clone::Clone for D3D12_BUFFER_UAV {
24493 fn clone(&self) -> Self {
24494 *self
24495 }
24496}
24497impl ::core::fmt::Debug for D3D12_BUFFER_UAV {
24498 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24499 f.debug_struct("D3D12_BUFFER_UAV").field("FirstElement", &self.FirstElement).field("NumElements", &self.NumElements).field("StructureByteStride", &self.StructureByteStride).field("CounterOffsetInBytes", &self.CounterOffsetInBytes).field("Flags", &self.Flags).finish()
24500 }
24501}
24502impl ::windows::core::TypeKind for D3D12_BUFFER_UAV {
24503 type TypeKind = ::windows::core::CopyType;
24504}
24505impl ::core::cmp::PartialEq for D3D12_BUFFER_UAV {
24506 fn eq(&self, other: &Self) -> bool {
24507 self.FirstElement == other.FirstElement && self.NumElements == other.NumElements && self.StructureByteStride == other.StructureByteStride && self.CounterOffsetInBytes == other.CounterOffsetInBytes && self.Flags == other.Flags
24508 }
24509}
24510impl ::core::cmp::Eq for D3D12_BUFFER_UAV {}
24511impl ::core::default::Default for D3D12_BUFFER_UAV {
24512 fn default() -> Self {
24513 unsafe { ::core::mem::zeroed() }
24514 }
24515}
24516#[repr(C)]
24517#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
24518#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24519pub struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
24520 pub DestAccelerationStructureData: u64,
24521 pub Inputs: D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS,
24522 pub SourceAccelerationStructureData: u64,
24523 pub ScratchAccelerationStructureData: u64,
24524}
24525#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24526impl ::core::marker::Copy for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {}
24527#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24528impl ::core::clone::Clone for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
24529 fn clone(&self) -> Self {
24530 *self
24531 }
24532}
24533#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24534impl ::windows::core::TypeKind for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
24535 type TypeKind = ::windows::core::CopyType;
24536}
24537#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24538impl ::core::default::Default for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC {
24539 fn default() -> Self {
24540 unsafe { ::core::mem::zeroed() }
24541 }
24542}
24543#[repr(C)]
24544#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
24545#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24546pub struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
24547 pub Type: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE,
24548 pub Flags: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS,
24549 pub NumDescs: u32,
24550 pub DescsLayout: D3D12_ELEMENTS_LAYOUT,
24551 pub Anonymous: D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_0,
24552}
24553#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24554impl ::core::marker::Copy for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {}
24555#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24556impl ::core::clone::Clone for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
24557 fn clone(&self) -> Self {
24558 *self
24559 }
24560}
24561#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24562impl ::windows::core::TypeKind for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
24563 type TypeKind = ::windows::core::CopyType;
24564}
24565#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24566impl ::core::default::Default for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS {
24567 fn default() -> Self {
24568 unsafe { ::core::mem::zeroed() }
24569 }
24570}
24571#[repr(C)]
24572#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
24573#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24574pub union D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_0 {
24575 pub InstanceDescs: u64,
24576 pub pGeometryDescs: *const D3D12_RAYTRACING_GEOMETRY_DESC,
24577 pub ppGeometryDescs: *const *const D3D12_RAYTRACING_GEOMETRY_DESC,
24578}
24579#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24580impl ::core::marker::Copy for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_0 {}
24581#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24582impl ::core::clone::Clone for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_0 {
24583 fn clone(&self) -> Self {
24584 *self
24585 }
24586}
24587#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24588impl ::windows::core::TypeKind for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_0 {
24589 type TypeKind = ::windows::core::CopyType;
24590}
24591#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24592impl ::core::default::Default for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS_0 {
24593 fn default() -> Self {
24594 unsafe { ::core::mem::zeroed() }
24595 }
24596}
24597#[repr(C)]
24598#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24599pub struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
24600 pub Type: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE,
24601 pub NumDescs: u32,
24602}
24603impl ::core::marker::Copy for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {}
24604impl ::core::clone::Clone for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
24605 fn clone(&self) -> Self {
24606 *self
24607 }
24608}
24609impl ::core::fmt::Debug for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
24610 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24611 f.debug_struct("D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER").field("Type", &self.Type).field("NumDescs", &self.NumDescs).finish()
24612 }
24613}
24614impl ::windows::core::TypeKind for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
24615 type TypeKind = ::windows::core::CopyType;
24616}
24617impl ::core::cmp::PartialEq for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
24618 fn eq(&self, other: &Self) -> bool {
24619 self.Type == other.Type && self.NumDescs == other.NumDescs
24620 }
24621}
24622impl ::core::cmp::Eq for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {}
24623impl ::core::default::Default for D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER {
24624 fn default() -> Self {
24625 unsafe { ::core::mem::zeroed() }
24626 }
24627}
24628#[repr(C)]
24629#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24630pub struct D3D12_CACHED_PIPELINE_STATE {
24631 pub pCachedBlob: *const ::core::ffi::c_void,
24632 pub CachedBlobSizeInBytes: usize,
24633}
24634impl ::core::marker::Copy for D3D12_CACHED_PIPELINE_STATE {}
24635impl ::core::clone::Clone for D3D12_CACHED_PIPELINE_STATE {
24636 fn clone(&self) -> Self {
24637 *self
24638 }
24639}
24640impl ::core::fmt::Debug for D3D12_CACHED_PIPELINE_STATE {
24641 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24642 f.debug_struct("D3D12_CACHED_PIPELINE_STATE").field("pCachedBlob", &self.pCachedBlob).field("CachedBlobSizeInBytes", &self.CachedBlobSizeInBytes).finish()
24643 }
24644}
24645impl ::windows::core::TypeKind for D3D12_CACHED_PIPELINE_STATE {
24646 type TypeKind = ::windows::core::CopyType;
24647}
24648impl ::core::cmp::PartialEq for D3D12_CACHED_PIPELINE_STATE {
24649 fn eq(&self, other: &Self) -> bool {
24650 self.pCachedBlob == other.pCachedBlob && self.CachedBlobSizeInBytes == other.CachedBlobSizeInBytes
24651 }
24652}
24653impl ::core::cmp::Eq for D3D12_CACHED_PIPELINE_STATE {}
24654impl ::core::default::Default for D3D12_CACHED_PIPELINE_STATE {
24655 fn default() -> Self {
24656 unsafe { ::core::mem::zeroed() }
24657 }
24658}
24659#[repr(C)]
24660#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
24661#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24662pub struct D3D12_CLEAR_VALUE {
24663 pub Format: super::Dxgi::Common::DXGI_FORMAT,
24664 pub Anonymous: D3D12_CLEAR_VALUE_0,
24665}
24666#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24667impl ::core::marker::Copy for D3D12_CLEAR_VALUE {}
24668#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24669impl ::core::clone::Clone for D3D12_CLEAR_VALUE {
24670 fn clone(&self) -> Self {
24671 *self
24672 }
24673}
24674#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24675impl ::windows::core::TypeKind for D3D12_CLEAR_VALUE {
24676 type TypeKind = ::windows::core::CopyType;
24677}
24678#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24679impl ::core::default::Default for D3D12_CLEAR_VALUE {
24680 fn default() -> Self {
24681 unsafe { ::core::mem::zeroed() }
24682 }
24683}
24684#[repr(C)]
24685#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
24686#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24687pub union D3D12_CLEAR_VALUE_0 {
24688 pub Color: [f32; 4],
24689 pub DepthStencil: D3D12_DEPTH_STENCIL_VALUE,
24690}
24691#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24692impl ::core::marker::Copy for D3D12_CLEAR_VALUE_0 {}
24693#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24694impl ::core::clone::Clone for D3D12_CLEAR_VALUE_0 {
24695 fn clone(&self) -> Self {
24696 *self
24697 }
24698}
24699#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24700impl ::windows::core::TypeKind for D3D12_CLEAR_VALUE_0 {
24701 type TypeKind = ::windows::core::CopyType;
24702}
24703#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
24704impl ::core::default::Default for D3D12_CLEAR_VALUE_0 {
24705 fn default() -> Self {
24706 unsafe { ::core::mem::zeroed() }
24707 }
24708}
24709#[repr(C)]
24710#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24711pub struct D3D12_COMMAND_QUEUE_DESC {
24712 pub Type: D3D12_COMMAND_LIST_TYPE,
24713 pub Priority: i32,
24714 pub Flags: D3D12_COMMAND_QUEUE_FLAGS,
24715 pub NodeMask: u32,
24716}
24717impl ::core::marker::Copy for D3D12_COMMAND_QUEUE_DESC {}
24718impl ::core::clone::Clone for D3D12_COMMAND_QUEUE_DESC {
24719 fn clone(&self) -> Self {
24720 *self
24721 }
24722}
24723impl ::core::fmt::Debug for D3D12_COMMAND_QUEUE_DESC {
24724 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24725 f.debug_struct("D3D12_COMMAND_QUEUE_DESC").field("Type", &self.Type).field("Priority", &self.Priority).field("Flags", &self.Flags).field("NodeMask", &self.NodeMask).finish()
24726 }
24727}
24728impl ::windows::core::TypeKind for D3D12_COMMAND_QUEUE_DESC {
24729 type TypeKind = ::windows::core::CopyType;
24730}
24731impl ::core::cmp::PartialEq for D3D12_COMMAND_QUEUE_DESC {
24732 fn eq(&self, other: &Self) -> bool {
24733 self.Type == other.Type && self.Priority == other.Priority && self.Flags == other.Flags && self.NodeMask == other.NodeMask
24734 }
24735}
24736impl ::core::cmp::Eq for D3D12_COMMAND_QUEUE_DESC {}
24737impl ::core::default::Default for D3D12_COMMAND_QUEUE_DESC {
24738 fn default() -> Self {
24739 unsafe { ::core::mem::zeroed() }
24740 }
24741}
24742#[repr(C)]
24743#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24744pub struct D3D12_COMMAND_SIGNATURE_DESC {
24745 pub ByteStride: u32,
24746 pub NumArgumentDescs: u32,
24747 pub pArgumentDescs: *const D3D12_INDIRECT_ARGUMENT_DESC,
24748 pub NodeMask: u32,
24749}
24750impl ::core::marker::Copy for D3D12_COMMAND_SIGNATURE_DESC {}
24751impl ::core::clone::Clone for D3D12_COMMAND_SIGNATURE_DESC {
24752 fn clone(&self) -> Self {
24753 *self
24754 }
24755}
24756impl ::core::fmt::Debug for D3D12_COMMAND_SIGNATURE_DESC {
24757 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24758 f.debug_struct("D3D12_COMMAND_SIGNATURE_DESC").field("ByteStride", &self.ByteStride).field("NumArgumentDescs", &self.NumArgumentDescs).field("pArgumentDescs", &self.pArgumentDescs).field("NodeMask", &self.NodeMask).finish()
24759 }
24760}
24761impl ::windows::core::TypeKind for D3D12_COMMAND_SIGNATURE_DESC {
24762 type TypeKind = ::windows::core::CopyType;
24763}
24764impl ::core::cmp::PartialEq for D3D12_COMMAND_SIGNATURE_DESC {
24765 fn eq(&self, other: &Self) -> bool {
24766 self.ByteStride == other.ByteStride && self.NumArgumentDescs == other.NumArgumentDescs && self.pArgumentDescs == other.pArgumentDescs && self.NodeMask == other.NodeMask
24767 }
24768}
24769impl ::core::cmp::Eq for D3D12_COMMAND_SIGNATURE_DESC {}
24770impl ::core::default::Default for D3D12_COMMAND_SIGNATURE_DESC {
24771 fn default() -> Self {
24772 unsafe { ::core::mem::zeroed() }
24773 }
24774}
24775#[repr(C)]
24776#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24777pub struct D3D12_COMPUTE_PIPELINE_STATE_DESC {
24778 pub pRootSignature: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12RootSignature>>,
24779 pub CS: D3D12_SHADER_BYTECODE,
24780 pub NodeMask: u32,
24781 pub CachedPSO: D3D12_CACHED_PIPELINE_STATE,
24782 pub Flags: D3D12_PIPELINE_STATE_FLAGS,
24783}
24784impl ::core::clone::Clone for D3D12_COMPUTE_PIPELINE_STATE_DESC {
24785 fn clone(&self) -> Self {
24786 unsafe { ::core::mem::transmute_copy(self) }
24787 }
24788}
24789impl ::core::fmt::Debug for D3D12_COMPUTE_PIPELINE_STATE_DESC {
24790 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24791 f.debug_struct("D3D12_COMPUTE_PIPELINE_STATE_DESC").field("pRootSignature", &self.pRootSignature).field("CS", &self.CS).field("NodeMask", &self.NodeMask).field("CachedPSO", &self.CachedPSO).field("Flags", &self.Flags).finish()
24792 }
24793}
24794impl ::windows::core::TypeKind for D3D12_COMPUTE_PIPELINE_STATE_DESC {
24795 type TypeKind = ::windows::core::CopyType;
24796}
24797impl ::core::cmp::PartialEq for D3D12_COMPUTE_PIPELINE_STATE_DESC {
24798 fn eq(&self, other: &Self) -> bool {
24799 self.pRootSignature == other.pRootSignature && self.CS == other.CS && self.NodeMask == other.NodeMask && self.CachedPSO == other.CachedPSO && self.Flags == other.Flags
24800 }
24801}
24802impl ::core::cmp::Eq for D3D12_COMPUTE_PIPELINE_STATE_DESC {}
24803impl ::core::default::Default for D3D12_COMPUTE_PIPELINE_STATE_DESC {
24804 fn default() -> Self {
24805 unsafe { ::core::mem::zeroed() }
24806 }
24807}
24808#[repr(C)]
24809#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24810pub struct D3D12_CONSTANT_BUFFER_VIEW_DESC {
24811 pub BufferLocation: u64,
24812 pub SizeInBytes: u32,
24813}
24814impl ::core::marker::Copy for D3D12_CONSTANT_BUFFER_VIEW_DESC {}
24815impl ::core::clone::Clone for D3D12_CONSTANT_BUFFER_VIEW_DESC {
24816 fn clone(&self) -> Self {
24817 *self
24818 }
24819}
24820impl ::core::fmt::Debug for D3D12_CONSTANT_BUFFER_VIEW_DESC {
24821 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24822 f.debug_struct("D3D12_CONSTANT_BUFFER_VIEW_DESC").field("BufferLocation", &self.BufferLocation).field("SizeInBytes", &self.SizeInBytes).finish()
24823 }
24824}
24825impl ::windows::core::TypeKind for D3D12_CONSTANT_BUFFER_VIEW_DESC {
24826 type TypeKind = ::windows::core::CopyType;
24827}
24828impl ::core::cmp::PartialEq for D3D12_CONSTANT_BUFFER_VIEW_DESC {
24829 fn eq(&self, other: &Self) -> bool {
24830 self.BufferLocation == other.BufferLocation && self.SizeInBytes == other.SizeInBytes
24831 }
24832}
24833impl ::core::cmp::Eq for D3D12_CONSTANT_BUFFER_VIEW_DESC {}
24834impl ::core::default::Default for D3D12_CONSTANT_BUFFER_VIEW_DESC {
24835 fn default() -> Self {
24836 unsafe { ::core::mem::zeroed() }
24837 }
24838}
24839#[repr(C)]
24840#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24841pub struct D3D12_CPU_DESCRIPTOR_HANDLE {
24842 pub ptr: usize,
24843}
24844impl ::core::marker::Copy for D3D12_CPU_DESCRIPTOR_HANDLE {}
24845impl ::core::clone::Clone for D3D12_CPU_DESCRIPTOR_HANDLE {
24846 fn clone(&self) -> Self {
24847 *self
24848 }
24849}
24850impl ::core::fmt::Debug for D3D12_CPU_DESCRIPTOR_HANDLE {
24851 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24852 f.debug_struct("D3D12_CPU_DESCRIPTOR_HANDLE").field("ptr", &self.ptr).finish()
24853 }
24854}
24855impl ::windows::core::TypeKind for D3D12_CPU_DESCRIPTOR_HANDLE {
24856 type TypeKind = ::windows::core::CopyType;
24857}
24858impl ::core::cmp::PartialEq for D3D12_CPU_DESCRIPTOR_HANDLE {
24859 fn eq(&self, other: &Self) -> bool {
24860 self.ptr == other.ptr
24861 }
24862}
24863impl ::core::cmp::Eq for D3D12_CPU_DESCRIPTOR_HANDLE {}
24864impl ::core::default::Default for D3D12_CPU_DESCRIPTOR_HANDLE {
24865 fn default() -> Self {
24866 unsafe { ::core::mem::zeroed() }
24867 }
24868}
24869#[repr(C)]
24870#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24871pub struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
24872 pub ShaderPatchMode: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE,
24873}
24874impl ::core::marker::Copy for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {}
24875impl ::core::clone::Clone for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
24876 fn clone(&self) -> Self {
24877 *self
24878 }
24879}
24880impl ::core::fmt::Debug for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
24881 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24882 f.debug_struct("D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS").field("ShaderPatchMode", &self.ShaderPatchMode).finish()
24883 }
24884}
24885impl ::windows::core::TypeKind for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
24886 type TypeKind = ::windows::core::CopyType;
24887}
24888impl ::core::cmp::PartialEq for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
24889 fn eq(&self, other: &Self) -> bool {
24890 self.ShaderPatchMode == other.ShaderPatchMode
24891 }
24892}
24893impl ::core::cmp::Eq for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {}
24894impl ::core::default::Default for D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS {
24895 fn default() -> Self {
24896 unsafe { ::core::mem::zeroed() }
24897 }
24898}
24899#[repr(C)]
24900#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24901pub struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
24902 pub MaxMessagesPerCommandList: u32,
24903 pub DefaultShaderPatchMode: D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE,
24904 pub PipelineStateCreateFlags: D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS,
24905}
24906impl ::core::marker::Copy for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {}
24907impl ::core::clone::Clone for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
24908 fn clone(&self) -> Self {
24909 *self
24910 }
24911}
24912impl ::core::fmt::Debug for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
24913 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24914 f.debug_struct("D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS").field("MaxMessagesPerCommandList", &self.MaxMessagesPerCommandList).field("DefaultShaderPatchMode", &self.DefaultShaderPatchMode).field("PipelineStateCreateFlags", &self.PipelineStateCreateFlags).finish()
24915 }
24916}
24917impl ::windows::core::TypeKind for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
24918 type TypeKind = ::windows::core::CopyType;
24919}
24920impl ::core::cmp::PartialEq for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
24921 fn eq(&self, other: &Self) -> bool {
24922 self.MaxMessagesPerCommandList == other.MaxMessagesPerCommandList && self.DefaultShaderPatchMode == other.DefaultShaderPatchMode && self.PipelineStateCreateFlags == other.PipelineStateCreateFlags
24923 }
24924}
24925impl ::core::cmp::Eq for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {}
24926impl ::core::default::Default for D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS {
24927 fn default() -> Self {
24928 unsafe { ::core::mem::zeroed() }
24929 }
24930}
24931#[repr(C)]
24932#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24933pub struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
24934 pub SlowdownFactor: f32,
24935}
24936impl ::core::marker::Copy for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {}
24937impl ::core::clone::Clone for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
24938 fn clone(&self) -> Self {
24939 *self
24940 }
24941}
24942impl ::core::fmt::Debug for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
24943 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24944 f.debug_struct("D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR").field("SlowdownFactor", &self.SlowdownFactor).finish()
24945 }
24946}
24947impl ::windows::core::TypeKind for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
24948 type TypeKind = ::windows::core::CopyType;
24949}
24950impl ::core::cmp::PartialEq for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
24951 fn eq(&self, other: &Self) -> bool {
24952 self.SlowdownFactor == other.SlowdownFactor
24953 }
24954}
24955impl ::core::cmp::Eq for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {}
24956impl ::core::default::Default for D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR {
24957 fn default() -> Self {
24958 unsafe { ::core::mem::zeroed() }
24959 }
24960}
24961#[repr(C)]
24962#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24963pub struct D3D12_DEPTH_STENCILOP_DESC {
24964 pub StencilFailOp: D3D12_STENCIL_OP,
24965 pub StencilDepthFailOp: D3D12_STENCIL_OP,
24966 pub StencilPassOp: D3D12_STENCIL_OP,
24967 pub StencilFunc: D3D12_COMPARISON_FUNC,
24968}
24969impl ::core::marker::Copy for D3D12_DEPTH_STENCILOP_DESC {}
24970impl ::core::clone::Clone for D3D12_DEPTH_STENCILOP_DESC {
24971 fn clone(&self) -> Self {
24972 *self
24973 }
24974}
24975impl ::core::fmt::Debug for D3D12_DEPTH_STENCILOP_DESC {
24976 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
24977 f.debug_struct("D3D12_DEPTH_STENCILOP_DESC").field("StencilFailOp", &self.StencilFailOp).field("StencilDepthFailOp", &self.StencilDepthFailOp).field("StencilPassOp", &self.StencilPassOp).field("StencilFunc", &self.StencilFunc).finish()
24978 }
24979}
24980impl ::windows::core::TypeKind for D3D12_DEPTH_STENCILOP_DESC {
24981 type TypeKind = ::windows::core::CopyType;
24982}
24983impl ::core::cmp::PartialEq for D3D12_DEPTH_STENCILOP_DESC {
24984 fn eq(&self, other: &Self) -> bool {
24985 self.StencilFailOp == other.StencilFailOp && self.StencilDepthFailOp == other.StencilDepthFailOp && self.StencilPassOp == other.StencilPassOp && self.StencilFunc == other.StencilFunc
24986 }
24987}
24988impl ::core::cmp::Eq for D3D12_DEPTH_STENCILOP_DESC {}
24989impl ::core::default::Default for D3D12_DEPTH_STENCILOP_DESC {
24990 fn default() -> Self {
24991 unsafe { ::core::mem::zeroed() }
24992 }
24993}
24994#[repr(C)]
24995#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
24996pub struct D3D12_DEPTH_STENCILOP_DESC1 {
24997 pub StencilFailOp: D3D12_STENCIL_OP,
24998 pub StencilDepthFailOp: D3D12_STENCIL_OP,
24999 pub StencilPassOp: D3D12_STENCIL_OP,
25000 pub StencilFunc: D3D12_COMPARISON_FUNC,
25001 pub StencilReadMask: u8,
25002 pub StencilWriteMask: u8,
25003}
25004impl ::core::marker::Copy for D3D12_DEPTH_STENCILOP_DESC1 {}
25005impl ::core::clone::Clone for D3D12_DEPTH_STENCILOP_DESC1 {
25006 fn clone(&self) -> Self {
25007 *self
25008 }
25009}
25010impl ::core::fmt::Debug for D3D12_DEPTH_STENCILOP_DESC1 {
25011 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25012 f.debug_struct("D3D12_DEPTH_STENCILOP_DESC1").field("StencilFailOp", &self.StencilFailOp).field("StencilDepthFailOp", &self.StencilDepthFailOp).field("StencilPassOp", &self.StencilPassOp).field("StencilFunc", &self.StencilFunc).field("StencilReadMask", &self.StencilReadMask).field("StencilWriteMask", &self.StencilWriteMask).finish()
25013 }
25014}
25015impl ::windows::core::TypeKind for D3D12_DEPTH_STENCILOP_DESC1 {
25016 type TypeKind = ::windows::core::CopyType;
25017}
25018impl ::core::cmp::PartialEq for D3D12_DEPTH_STENCILOP_DESC1 {
25019 fn eq(&self, other: &Self) -> bool {
25020 self.StencilFailOp == other.StencilFailOp && self.StencilDepthFailOp == other.StencilDepthFailOp && self.StencilPassOp == other.StencilPassOp && self.StencilFunc == other.StencilFunc && self.StencilReadMask == other.StencilReadMask && self.StencilWriteMask == other.StencilWriteMask
25021 }
25022}
25023impl ::core::cmp::Eq for D3D12_DEPTH_STENCILOP_DESC1 {}
25024impl ::core::default::Default for D3D12_DEPTH_STENCILOP_DESC1 {
25025 fn default() -> Self {
25026 unsafe { ::core::mem::zeroed() }
25027 }
25028}
25029#[repr(C)]
25030#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
25031#[cfg(feature = "Win32_Foundation")]
25032pub struct D3D12_DEPTH_STENCIL_DESC {
25033 pub DepthEnable: super::super::Foundation::BOOL,
25034 pub DepthWriteMask: D3D12_DEPTH_WRITE_MASK,
25035 pub DepthFunc: D3D12_COMPARISON_FUNC,
25036 pub StencilEnable: super::super::Foundation::BOOL,
25037 pub StencilReadMask: u8,
25038 pub StencilWriteMask: u8,
25039 pub FrontFace: D3D12_DEPTH_STENCILOP_DESC,
25040 pub BackFace: D3D12_DEPTH_STENCILOP_DESC,
25041}
25042#[cfg(feature = "Win32_Foundation")]
25043impl ::core::marker::Copy for D3D12_DEPTH_STENCIL_DESC {}
25044#[cfg(feature = "Win32_Foundation")]
25045impl ::core::clone::Clone for D3D12_DEPTH_STENCIL_DESC {
25046 fn clone(&self) -> Self {
25047 *self
25048 }
25049}
25050#[cfg(feature = "Win32_Foundation")]
25051impl ::core::fmt::Debug for D3D12_DEPTH_STENCIL_DESC {
25052 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25053 f.debug_struct("D3D12_DEPTH_STENCIL_DESC").field("DepthEnable", &self.DepthEnable).field("DepthWriteMask", &self.DepthWriteMask).field("DepthFunc", &self.DepthFunc).field("StencilEnable", &self.StencilEnable).field("StencilReadMask", &self.StencilReadMask).field("StencilWriteMask", &self.StencilWriteMask).field("FrontFace", &self.FrontFace).field("BackFace", &self.BackFace).finish()
25054 }
25055}
25056#[cfg(feature = "Win32_Foundation")]
25057impl ::windows::core::TypeKind for D3D12_DEPTH_STENCIL_DESC {
25058 type TypeKind = ::windows::core::CopyType;
25059}
25060#[cfg(feature = "Win32_Foundation")]
25061impl ::core::cmp::PartialEq for D3D12_DEPTH_STENCIL_DESC {
25062 fn eq(&self, other: &Self) -> bool {
25063 self.DepthEnable == other.DepthEnable && self.DepthWriteMask == other.DepthWriteMask && self.DepthFunc == other.DepthFunc && self.StencilEnable == other.StencilEnable && self.StencilReadMask == other.StencilReadMask && self.StencilWriteMask == other.StencilWriteMask && self.FrontFace == other.FrontFace && self.BackFace == other.BackFace
25064 }
25065}
25066#[cfg(feature = "Win32_Foundation")]
25067impl ::core::cmp::Eq for D3D12_DEPTH_STENCIL_DESC {}
25068#[cfg(feature = "Win32_Foundation")]
25069impl ::core::default::Default for D3D12_DEPTH_STENCIL_DESC {
25070 fn default() -> Self {
25071 unsafe { ::core::mem::zeroed() }
25072 }
25073}
25074#[repr(C)]
25075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
25076#[cfg(feature = "Win32_Foundation")]
25077pub struct D3D12_DEPTH_STENCIL_DESC1 {
25078 pub DepthEnable: super::super::Foundation::BOOL,
25079 pub DepthWriteMask: D3D12_DEPTH_WRITE_MASK,
25080 pub DepthFunc: D3D12_COMPARISON_FUNC,
25081 pub StencilEnable: super::super::Foundation::BOOL,
25082 pub StencilReadMask: u8,
25083 pub StencilWriteMask: u8,
25084 pub FrontFace: D3D12_DEPTH_STENCILOP_DESC,
25085 pub BackFace: D3D12_DEPTH_STENCILOP_DESC,
25086 pub DepthBoundsTestEnable: super::super::Foundation::BOOL,
25087}
25088#[cfg(feature = "Win32_Foundation")]
25089impl ::core::marker::Copy for D3D12_DEPTH_STENCIL_DESC1 {}
25090#[cfg(feature = "Win32_Foundation")]
25091impl ::core::clone::Clone for D3D12_DEPTH_STENCIL_DESC1 {
25092 fn clone(&self) -> Self {
25093 *self
25094 }
25095}
25096#[cfg(feature = "Win32_Foundation")]
25097impl ::core::fmt::Debug for D3D12_DEPTH_STENCIL_DESC1 {
25098 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25099 f.debug_struct("D3D12_DEPTH_STENCIL_DESC1").field("DepthEnable", &self.DepthEnable).field("DepthWriteMask", &self.DepthWriteMask).field("DepthFunc", &self.DepthFunc).field("StencilEnable", &self.StencilEnable).field("StencilReadMask", &self.StencilReadMask).field("StencilWriteMask", &self.StencilWriteMask).field("FrontFace", &self.FrontFace).field("BackFace", &self.BackFace).field("DepthBoundsTestEnable", &self.DepthBoundsTestEnable).finish()
25100 }
25101}
25102#[cfg(feature = "Win32_Foundation")]
25103impl ::windows::core::TypeKind for D3D12_DEPTH_STENCIL_DESC1 {
25104 type TypeKind = ::windows::core::CopyType;
25105}
25106#[cfg(feature = "Win32_Foundation")]
25107impl ::core::cmp::PartialEq for D3D12_DEPTH_STENCIL_DESC1 {
25108 fn eq(&self, other: &Self) -> bool {
25109 self.DepthEnable == other.DepthEnable && self.DepthWriteMask == other.DepthWriteMask && self.DepthFunc == other.DepthFunc && self.StencilEnable == other.StencilEnable && self.StencilReadMask == other.StencilReadMask && self.StencilWriteMask == other.StencilWriteMask && self.FrontFace == other.FrontFace && self.BackFace == other.BackFace && self.DepthBoundsTestEnable == other.DepthBoundsTestEnable
25110 }
25111}
25112#[cfg(feature = "Win32_Foundation")]
25113impl ::core::cmp::Eq for D3D12_DEPTH_STENCIL_DESC1 {}
25114#[cfg(feature = "Win32_Foundation")]
25115impl ::core::default::Default for D3D12_DEPTH_STENCIL_DESC1 {
25116 fn default() -> Self {
25117 unsafe { ::core::mem::zeroed() }
25118 }
25119}
25120#[repr(C)]
25121#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
25122#[cfg(feature = "Win32_Foundation")]
25123pub struct D3D12_DEPTH_STENCIL_DESC2 {
25124 pub DepthEnable: super::super::Foundation::BOOL,
25125 pub DepthWriteMask: D3D12_DEPTH_WRITE_MASK,
25126 pub DepthFunc: D3D12_COMPARISON_FUNC,
25127 pub StencilEnable: super::super::Foundation::BOOL,
25128 pub FrontFace: D3D12_DEPTH_STENCILOP_DESC1,
25129 pub BackFace: D3D12_DEPTH_STENCILOP_DESC1,
25130 pub DepthBoundsTestEnable: super::super::Foundation::BOOL,
25131}
25132#[cfg(feature = "Win32_Foundation")]
25133impl ::core::marker::Copy for D3D12_DEPTH_STENCIL_DESC2 {}
25134#[cfg(feature = "Win32_Foundation")]
25135impl ::core::clone::Clone for D3D12_DEPTH_STENCIL_DESC2 {
25136 fn clone(&self) -> Self {
25137 *self
25138 }
25139}
25140#[cfg(feature = "Win32_Foundation")]
25141impl ::core::fmt::Debug for D3D12_DEPTH_STENCIL_DESC2 {
25142 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25143 f.debug_struct("D3D12_DEPTH_STENCIL_DESC2").field("DepthEnable", &self.DepthEnable).field("DepthWriteMask", &self.DepthWriteMask).field("DepthFunc", &self.DepthFunc).field("StencilEnable", &self.StencilEnable).field("FrontFace", &self.FrontFace).field("BackFace", &self.BackFace).field("DepthBoundsTestEnable", &self.DepthBoundsTestEnable).finish()
25144 }
25145}
25146#[cfg(feature = "Win32_Foundation")]
25147impl ::windows::core::TypeKind for D3D12_DEPTH_STENCIL_DESC2 {
25148 type TypeKind = ::windows::core::CopyType;
25149}
25150#[cfg(feature = "Win32_Foundation")]
25151impl ::core::cmp::PartialEq for D3D12_DEPTH_STENCIL_DESC2 {
25152 fn eq(&self, other: &Self) -> bool {
25153 self.DepthEnable == other.DepthEnable && self.DepthWriteMask == other.DepthWriteMask && self.DepthFunc == other.DepthFunc && self.StencilEnable == other.StencilEnable && self.FrontFace == other.FrontFace && self.BackFace == other.BackFace && self.DepthBoundsTestEnable == other.DepthBoundsTestEnable
25154 }
25155}
25156#[cfg(feature = "Win32_Foundation")]
25157impl ::core::cmp::Eq for D3D12_DEPTH_STENCIL_DESC2 {}
25158#[cfg(feature = "Win32_Foundation")]
25159impl ::core::default::Default for D3D12_DEPTH_STENCIL_DESC2 {
25160 fn default() -> Self {
25161 unsafe { ::core::mem::zeroed() }
25162 }
25163}
25164#[repr(C)]
25165#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25166pub struct D3D12_DEPTH_STENCIL_VALUE {
25167 pub Depth: f32,
25168 pub Stencil: u8,
25169}
25170impl ::core::marker::Copy for D3D12_DEPTH_STENCIL_VALUE {}
25171impl ::core::clone::Clone for D3D12_DEPTH_STENCIL_VALUE {
25172 fn clone(&self) -> Self {
25173 *self
25174 }
25175}
25176impl ::core::fmt::Debug for D3D12_DEPTH_STENCIL_VALUE {
25177 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25178 f.debug_struct("D3D12_DEPTH_STENCIL_VALUE").field("Depth", &self.Depth).field("Stencil", &self.Stencil).finish()
25179 }
25180}
25181impl ::windows::core::TypeKind for D3D12_DEPTH_STENCIL_VALUE {
25182 type TypeKind = ::windows::core::CopyType;
25183}
25184impl ::core::cmp::PartialEq for D3D12_DEPTH_STENCIL_VALUE {
25185 fn eq(&self, other: &Self) -> bool {
25186 self.Depth == other.Depth && self.Stencil == other.Stencil
25187 }
25188}
25189impl ::core::cmp::Eq for D3D12_DEPTH_STENCIL_VALUE {}
25190impl ::core::default::Default for D3D12_DEPTH_STENCIL_VALUE {
25191 fn default() -> Self {
25192 unsafe { ::core::mem::zeroed() }
25193 }
25194}
25195#[repr(C)]
25196#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
25197#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25198pub struct D3D12_DEPTH_STENCIL_VIEW_DESC {
25199 pub Format: super::Dxgi::Common::DXGI_FORMAT,
25200 pub ViewDimension: D3D12_DSV_DIMENSION,
25201 pub Flags: D3D12_DSV_FLAGS,
25202 pub Anonymous: D3D12_DEPTH_STENCIL_VIEW_DESC_0,
25203}
25204#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25205impl ::core::marker::Copy for D3D12_DEPTH_STENCIL_VIEW_DESC {}
25206#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25207impl ::core::clone::Clone for D3D12_DEPTH_STENCIL_VIEW_DESC {
25208 fn clone(&self) -> Self {
25209 *self
25210 }
25211}
25212#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25213impl ::windows::core::TypeKind for D3D12_DEPTH_STENCIL_VIEW_DESC {
25214 type TypeKind = ::windows::core::CopyType;
25215}
25216#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25217impl ::core::default::Default for D3D12_DEPTH_STENCIL_VIEW_DESC {
25218 fn default() -> Self {
25219 unsafe { ::core::mem::zeroed() }
25220 }
25221}
25222#[repr(C)]
25223#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
25224#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25225pub union D3D12_DEPTH_STENCIL_VIEW_DESC_0 {
25226 pub Texture1D: D3D12_TEX1D_DSV,
25227 pub Texture1DArray: D3D12_TEX1D_ARRAY_DSV,
25228 pub Texture2D: D3D12_TEX2D_DSV,
25229 pub Texture2DArray: D3D12_TEX2D_ARRAY_DSV,
25230 pub Texture2DMS: D3D12_TEX2DMS_DSV,
25231 pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_DSV,
25232}
25233#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25234impl ::core::marker::Copy for D3D12_DEPTH_STENCIL_VIEW_DESC_0 {}
25235#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25236impl ::core::clone::Clone for D3D12_DEPTH_STENCIL_VIEW_DESC_0 {
25237 fn clone(&self) -> Self {
25238 *self
25239 }
25240}
25241#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25242impl ::windows::core::TypeKind for D3D12_DEPTH_STENCIL_VIEW_DESC_0 {
25243 type TypeKind = ::windows::core::CopyType;
25244}
25245#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
25246impl ::core::default::Default for D3D12_DEPTH_STENCIL_VIEW_DESC_0 {
25247 fn default() -> Self {
25248 unsafe { ::core::mem::zeroed() }
25249 }
25250}
25251#[repr(C)]
25252#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25253pub struct D3D12_DESCRIPTOR_HEAP_DESC {
25254 pub Type: D3D12_DESCRIPTOR_HEAP_TYPE,
25255 pub NumDescriptors: u32,
25256 pub Flags: D3D12_DESCRIPTOR_HEAP_FLAGS,
25257 pub NodeMask: u32,
25258}
25259impl ::core::marker::Copy for D3D12_DESCRIPTOR_HEAP_DESC {}
25260impl ::core::clone::Clone for D3D12_DESCRIPTOR_HEAP_DESC {
25261 fn clone(&self) -> Self {
25262 *self
25263 }
25264}
25265impl ::core::fmt::Debug for D3D12_DESCRIPTOR_HEAP_DESC {
25266 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25267 f.debug_struct("D3D12_DESCRIPTOR_HEAP_DESC").field("Type", &self.Type).field("NumDescriptors", &self.NumDescriptors).field("Flags", &self.Flags).field("NodeMask", &self.NodeMask).finish()
25268 }
25269}
25270impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_HEAP_DESC {
25271 type TypeKind = ::windows::core::CopyType;
25272}
25273impl ::core::cmp::PartialEq for D3D12_DESCRIPTOR_HEAP_DESC {
25274 fn eq(&self, other: &Self) -> bool {
25275 self.Type == other.Type && self.NumDescriptors == other.NumDescriptors && self.Flags == other.Flags && self.NodeMask == other.NodeMask
25276 }
25277}
25278impl ::core::cmp::Eq for D3D12_DESCRIPTOR_HEAP_DESC {}
25279impl ::core::default::Default for D3D12_DESCRIPTOR_HEAP_DESC {
25280 fn default() -> Self {
25281 unsafe { ::core::mem::zeroed() }
25282 }
25283}
25284#[repr(C)]
25285#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25286pub struct D3D12_DESCRIPTOR_RANGE {
25287 pub RangeType: D3D12_DESCRIPTOR_RANGE_TYPE,
25288 pub NumDescriptors: u32,
25289 pub BaseShaderRegister: u32,
25290 pub RegisterSpace: u32,
25291 pub OffsetInDescriptorsFromTableStart: u32,
25292}
25293impl ::core::marker::Copy for D3D12_DESCRIPTOR_RANGE {}
25294impl ::core::clone::Clone for D3D12_DESCRIPTOR_RANGE {
25295 fn clone(&self) -> Self {
25296 *self
25297 }
25298}
25299impl ::core::fmt::Debug for D3D12_DESCRIPTOR_RANGE {
25300 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25301 f.debug_struct("D3D12_DESCRIPTOR_RANGE").field("RangeType", &self.RangeType).field("NumDescriptors", &self.NumDescriptors).field("BaseShaderRegister", &self.BaseShaderRegister).field("RegisterSpace", &self.RegisterSpace).field("OffsetInDescriptorsFromTableStart", &self.OffsetInDescriptorsFromTableStart).finish()
25302 }
25303}
25304impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_RANGE {
25305 type TypeKind = ::windows::core::CopyType;
25306}
25307impl ::core::cmp::PartialEq for D3D12_DESCRIPTOR_RANGE {
25308 fn eq(&self, other: &Self) -> bool {
25309 self.RangeType == other.RangeType && self.NumDescriptors == other.NumDescriptors && self.BaseShaderRegister == other.BaseShaderRegister && self.RegisterSpace == other.RegisterSpace && self.OffsetInDescriptorsFromTableStart == other.OffsetInDescriptorsFromTableStart
25310 }
25311}
25312impl ::core::cmp::Eq for D3D12_DESCRIPTOR_RANGE {}
25313impl ::core::default::Default for D3D12_DESCRIPTOR_RANGE {
25314 fn default() -> Self {
25315 unsafe { ::core::mem::zeroed() }
25316 }
25317}
25318#[repr(C)]
25319#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25320pub struct D3D12_DESCRIPTOR_RANGE1 {
25321 pub RangeType: D3D12_DESCRIPTOR_RANGE_TYPE,
25322 pub NumDescriptors: u32,
25323 pub BaseShaderRegister: u32,
25324 pub RegisterSpace: u32,
25325 pub Flags: D3D12_DESCRIPTOR_RANGE_FLAGS,
25326 pub OffsetInDescriptorsFromTableStart: u32,
25327}
25328impl ::core::marker::Copy for D3D12_DESCRIPTOR_RANGE1 {}
25329impl ::core::clone::Clone for D3D12_DESCRIPTOR_RANGE1 {
25330 fn clone(&self) -> Self {
25331 *self
25332 }
25333}
25334impl ::core::fmt::Debug for D3D12_DESCRIPTOR_RANGE1 {
25335 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25336 f.debug_struct("D3D12_DESCRIPTOR_RANGE1").field("RangeType", &self.RangeType).field("NumDescriptors", &self.NumDescriptors).field("BaseShaderRegister", &self.BaseShaderRegister).field("RegisterSpace", &self.RegisterSpace).field("Flags", &self.Flags).field("OffsetInDescriptorsFromTableStart", &self.OffsetInDescriptorsFromTableStart).finish()
25337 }
25338}
25339impl ::windows::core::TypeKind for D3D12_DESCRIPTOR_RANGE1 {
25340 type TypeKind = ::windows::core::CopyType;
25341}
25342impl ::core::cmp::PartialEq for D3D12_DESCRIPTOR_RANGE1 {
25343 fn eq(&self, other: &Self) -> bool {
25344 self.RangeType == other.RangeType && self.NumDescriptors == other.NumDescriptors && self.BaseShaderRegister == other.BaseShaderRegister && self.RegisterSpace == other.RegisterSpace && self.Flags == other.Flags && self.OffsetInDescriptorsFromTableStart == other.OffsetInDescriptorsFromTableStart
25345 }
25346}
25347impl ::core::cmp::Eq for D3D12_DESCRIPTOR_RANGE1 {}
25348impl ::core::default::Default for D3D12_DESCRIPTOR_RANGE1 {
25349 fn default() -> Self {
25350 unsafe { ::core::mem::zeroed() }
25351 }
25352}
25353#[repr(C)]
25354#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25355pub struct D3D12_DEVICE_CONFIGURATION_DESC {
25356 pub Flags: D3D12_DEVICE_FLAGS,
25357 pub GpuBasedValidationFlags: u32,
25358 pub SDKVersion: u32,
25359 pub NumEnabledExperimentalFeatures: u32,
25360}
25361impl ::core::marker::Copy for D3D12_DEVICE_CONFIGURATION_DESC {}
25362impl ::core::clone::Clone for D3D12_DEVICE_CONFIGURATION_DESC {
25363 fn clone(&self) -> Self {
25364 *self
25365 }
25366}
25367impl ::core::fmt::Debug for D3D12_DEVICE_CONFIGURATION_DESC {
25368 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25369 f.debug_struct("D3D12_DEVICE_CONFIGURATION_DESC").field("Flags", &self.Flags).field("GpuBasedValidationFlags", &self.GpuBasedValidationFlags).field("SDKVersion", &self.SDKVersion).field("NumEnabledExperimentalFeatures", &self.NumEnabledExperimentalFeatures).finish()
25370 }
25371}
25372impl ::windows::core::TypeKind for D3D12_DEVICE_CONFIGURATION_DESC {
25373 type TypeKind = ::windows::core::CopyType;
25374}
25375impl ::core::cmp::PartialEq for D3D12_DEVICE_CONFIGURATION_DESC {
25376 fn eq(&self, other: &Self) -> bool {
25377 self.Flags == other.Flags && self.GpuBasedValidationFlags == other.GpuBasedValidationFlags && self.SDKVersion == other.SDKVersion && self.NumEnabledExperimentalFeatures == other.NumEnabledExperimentalFeatures
25378 }
25379}
25380impl ::core::cmp::Eq for D3D12_DEVICE_CONFIGURATION_DESC {}
25381impl ::core::default::Default for D3D12_DEVICE_CONFIGURATION_DESC {
25382 fn default() -> Self {
25383 unsafe { ::core::mem::zeroed() }
25384 }
25385}
25386#[repr(C)]
25387#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25388pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA {
25389 pub Flags: D3D12_DRED_FLAGS,
25390 pub pHeadAutoBreadcrumbNode: *mut D3D12_AUTO_BREADCRUMB_NODE,
25391}
25392impl ::core::marker::Copy for D3D12_DEVICE_REMOVED_EXTENDED_DATA {}
25393impl ::core::clone::Clone for D3D12_DEVICE_REMOVED_EXTENDED_DATA {
25394 fn clone(&self) -> Self {
25395 *self
25396 }
25397}
25398impl ::core::fmt::Debug for D3D12_DEVICE_REMOVED_EXTENDED_DATA {
25399 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25400 f.debug_struct("D3D12_DEVICE_REMOVED_EXTENDED_DATA").field("Flags", &self.Flags).field("pHeadAutoBreadcrumbNode", &self.pHeadAutoBreadcrumbNode).finish()
25401 }
25402}
25403impl ::windows::core::TypeKind for D3D12_DEVICE_REMOVED_EXTENDED_DATA {
25404 type TypeKind = ::windows::core::CopyType;
25405}
25406impl ::core::cmp::PartialEq for D3D12_DEVICE_REMOVED_EXTENDED_DATA {
25407 fn eq(&self, other: &Self) -> bool {
25408 self.Flags == other.Flags && self.pHeadAutoBreadcrumbNode == other.pHeadAutoBreadcrumbNode
25409 }
25410}
25411impl ::core::cmp::Eq for D3D12_DEVICE_REMOVED_EXTENDED_DATA {}
25412impl ::core::default::Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA {
25413 fn default() -> Self {
25414 unsafe { ::core::mem::zeroed() }
25415 }
25416}
25417#[repr(C)]
25418#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25419pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
25420 pub DeviceRemovedReason: ::windows::core::HRESULT,
25421 pub AutoBreadcrumbsOutput: D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT,
25422 pub PageFaultOutput: D3D12_DRED_PAGE_FAULT_OUTPUT,
25423}
25424impl ::core::marker::Copy for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {}
25425impl ::core::clone::Clone for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
25426 fn clone(&self) -> Self {
25427 *self
25428 }
25429}
25430impl ::core::fmt::Debug for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
25431 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25432 f.debug_struct("D3D12_DEVICE_REMOVED_EXTENDED_DATA1").field("DeviceRemovedReason", &self.DeviceRemovedReason).field("AutoBreadcrumbsOutput", &self.AutoBreadcrumbsOutput).field("PageFaultOutput", &self.PageFaultOutput).finish()
25433 }
25434}
25435impl ::windows::core::TypeKind for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
25436 type TypeKind = ::windows::core::CopyType;
25437}
25438impl ::core::cmp::PartialEq for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
25439 fn eq(&self, other: &Self) -> bool {
25440 self.DeviceRemovedReason == other.DeviceRemovedReason && self.AutoBreadcrumbsOutput == other.AutoBreadcrumbsOutput && self.PageFaultOutput == other.PageFaultOutput
25441 }
25442}
25443impl ::core::cmp::Eq for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {}
25444impl ::core::default::Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA1 {
25445 fn default() -> Self {
25446 unsafe { ::core::mem::zeroed() }
25447 }
25448}
25449#[repr(C)]
25450#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25451pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
25452 pub DeviceRemovedReason: ::windows::core::HRESULT,
25453 pub AutoBreadcrumbsOutput: D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1,
25454 pub PageFaultOutput: D3D12_DRED_PAGE_FAULT_OUTPUT1,
25455}
25456impl ::core::marker::Copy for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {}
25457impl ::core::clone::Clone for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
25458 fn clone(&self) -> Self {
25459 *self
25460 }
25461}
25462impl ::core::fmt::Debug for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
25463 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25464 f.debug_struct("D3D12_DEVICE_REMOVED_EXTENDED_DATA2").field("DeviceRemovedReason", &self.DeviceRemovedReason).field("AutoBreadcrumbsOutput", &self.AutoBreadcrumbsOutput).field("PageFaultOutput", &self.PageFaultOutput).finish()
25465 }
25466}
25467impl ::windows::core::TypeKind for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
25468 type TypeKind = ::windows::core::CopyType;
25469}
25470impl ::core::cmp::PartialEq for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
25471 fn eq(&self, other: &Self) -> bool {
25472 self.DeviceRemovedReason == other.DeviceRemovedReason && self.AutoBreadcrumbsOutput == other.AutoBreadcrumbsOutput && self.PageFaultOutput == other.PageFaultOutput
25473 }
25474}
25475impl ::core::cmp::Eq for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {}
25476impl ::core::default::Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA2 {
25477 fn default() -> Self {
25478 unsafe { ::core::mem::zeroed() }
25479 }
25480}
25481#[repr(C)]
25482#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25483pub struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
25484 pub DeviceRemovedReason: ::windows::core::HRESULT,
25485 pub AutoBreadcrumbsOutput: D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1,
25486 pub PageFaultOutput: D3D12_DRED_PAGE_FAULT_OUTPUT2,
25487 pub DeviceState: D3D12_DRED_DEVICE_STATE,
25488}
25489impl ::core::marker::Copy for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {}
25490impl ::core::clone::Clone for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
25491 fn clone(&self) -> Self {
25492 *self
25493 }
25494}
25495impl ::core::fmt::Debug for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
25496 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25497 f.debug_struct("D3D12_DEVICE_REMOVED_EXTENDED_DATA3").field("DeviceRemovedReason", &self.DeviceRemovedReason).field("AutoBreadcrumbsOutput", &self.AutoBreadcrumbsOutput).field("PageFaultOutput", &self.PageFaultOutput).field("DeviceState", &self.DeviceState).finish()
25498 }
25499}
25500impl ::windows::core::TypeKind for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
25501 type TypeKind = ::windows::core::CopyType;
25502}
25503impl ::core::cmp::PartialEq for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
25504 fn eq(&self, other: &Self) -> bool {
25505 self.DeviceRemovedReason == other.DeviceRemovedReason && self.AutoBreadcrumbsOutput == other.AutoBreadcrumbsOutput && self.PageFaultOutput == other.PageFaultOutput && self.DeviceState == other.DeviceState
25506 }
25507}
25508impl ::core::cmp::Eq for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {}
25509impl ::core::default::Default for D3D12_DEVICE_REMOVED_EXTENDED_DATA3 {
25510 fn default() -> Self {
25511 unsafe { ::core::mem::zeroed() }
25512 }
25513}
25514#[repr(C)]
25515#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
25516#[cfg(feature = "Win32_Foundation")]
25517pub struct D3D12_DISCARD_REGION {
25518 pub NumRects: u32,
25519 pub pRects: *const super::super::Foundation::RECT,
25520 pub FirstSubresource: u32,
25521 pub NumSubresources: u32,
25522}
25523#[cfg(feature = "Win32_Foundation")]
25524impl ::core::marker::Copy for D3D12_DISCARD_REGION {}
25525#[cfg(feature = "Win32_Foundation")]
25526impl ::core::clone::Clone for D3D12_DISCARD_REGION {
25527 fn clone(&self) -> Self {
25528 *self
25529 }
25530}
25531#[cfg(feature = "Win32_Foundation")]
25532impl ::core::fmt::Debug for D3D12_DISCARD_REGION {
25533 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25534 f.debug_struct("D3D12_DISCARD_REGION").field("NumRects", &self.NumRects).field("pRects", &self.pRects).field("FirstSubresource", &self.FirstSubresource).field("NumSubresources", &self.NumSubresources).finish()
25535 }
25536}
25537#[cfg(feature = "Win32_Foundation")]
25538impl ::windows::core::TypeKind for D3D12_DISCARD_REGION {
25539 type TypeKind = ::windows::core::CopyType;
25540}
25541#[cfg(feature = "Win32_Foundation")]
25542impl ::core::cmp::PartialEq for D3D12_DISCARD_REGION {
25543 fn eq(&self, other: &Self) -> bool {
25544 self.NumRects == other.NumRects && self.pRects == other.pRects && self.FirstSubresource == other.FirstSubresource && self.NumSubresources == other.NumSubresources
25545 }
25546}
25547#[cfg(feature = "Win32_Foundation")]
25548impl ::core::cmp::Eq for D3D12_DISCARD_REGION {}
25549#[cfg(feature = "Win32_Foundation")]
25550impl ::core::default::Default for D3D12_DISCARD_REGION {
25551 fn default() -> Self {
25552 unsafe { ::core::mem::zeroed() }
25553 }
25554}
25555#[repr(C)]
25556#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25557pub struct D3D12_DISPATCH_ARGUMENTS {
25558 pub ThreadGroupCountX: u32,
25559 pub ThreadGroupCountY: u32,
25560 pub ThreadGroupCountZ: u32,
25561}
25562impl ::core::marker::Copy for D3D12_DISPATCH_ARGUMENTS {}
25563impl ::core::clone::Clone for D3D12_DISPATCH_ARGUMENTS {
25564 fn clone(&self) -> Self {
25565 *self
25566 }
25567}
25568impl ::core::fmt::Debug for D3D12_DISPATCH_ARGUMENTS {
25569 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25570 f.debug_struct("D3D12_DISPATCH_ARGUMENTS").field("ThreadGroupCountX", &self.ThreadGroupCountX).field("ThreadGroupCountY", &self.ThreadGroupCountY).field("ThreadGroupCountZ", &self.ThreadGroupCountZ).finish()
25571 }
25572}
25573impl ::windows::core::TypeKind for D3D12_DISPATCH_ARGUMENTS {
25574 type TypeKind = ::windows::core::CopyType;
25575}
25576impl ::core::cmp::PartialEq for D3D12_DISPATCH_ARGUMENTS {
25577 fn eq(&self, other: &Self) -> bool {
25578 self.ThreadGroupCountX == other.ThreadGroupCountX && self.ThreadGroupCountY == other.ThreadGroupCountY && self.ThreadGroupCountZ == other.ThreadGroupCountZ
25579 }
25580}
25581impl ::core::cmp::Eq for D3D12_DISPATCH_ARGUMENTS {}
25582impl ::core::default::Default for D3D12_DISPATCH_ARGUMENTS {
25583 fn default() -> Self {
25584 unsafe { ::core::mem::zeroed() }
25585 }
25586}
25587#[repr(C)]
25588#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25589pub struct D3D12_DISPATCH_MESH_ARGUMENTS {
25590 pub ThreadGroupCountX: u32,
25591 pub ThreadGroupCountY: u32,
25592 pub ThreadGroupCountZ: u32,
25593}
25594impl ::core::marker::Copy for D3D12_DISPATCH_MESH_ARGUMENTS {}
25595impl ::core::clone::Clone for D3D12_DISPATCH_MESH_ARGUMENTS {
25596 fn clone(&self) -> Self {
25597 *self
25598 }
25599}
25600impl ::core::fmt::Debug for D3D12_DISPATCH_MESH_ARGUMENTS {
25601 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25602 f.debug_struct("D3D12_DISPATCH_MESH_ARGUMENTS").field("ThreadGroupCountX", &self.ThreadGroupCountX).field("ThreadGroupCountY", &self.ThreadGroupCountY).field("ThreadGroupCountZ", &self.ThreadGroupCountZ).finish()
25603 }
25604}
25605impl ::windows::core::TypeKind for D3D12_DISPATCH_MESH_ARGUMENTS {
25606 type TypeKind = ::windows::core::CopyType;
25607}
25608impl ::core::cmp::PartialEq for D3D12_DISPATCH_MESH_ARGUMENTS {
25609 fn eq(&self, other: &Self) -> bool {
25610 self.ThreadGroupCountX == other.ThreadGroupCountX && self.ThreadGroupCountY == other.ThreadGroupCountY && self.ThreadGroupCountZ == other.ThreadGroupCountZ
25611 }
25612}
25613impl ::core::cmp::Eq for D3D12_DISPATCH_MESH_ARGUMENTS {}
25614impl ::core::default::Default for D3D12_DISPATCH_MESH_ARGUMENTS {
25615 fn default() -> Self {
25616 unsafe { ::core::mem::zeroed() }
25617 }
25618}
25619#[repr(C)]
25620#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25621pub struct D3D12_DISPATCH_RAYS_DESC {
25622 pub RayGenerationShaderRecord: D3D12_GPU_VIRTUAL_ADDRESS_RANGE,
25623 pub MissShaderTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
25624 pub HitGroupTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
25625 pub CallableShaderTable: D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE,
25626 pub Width: u32,
25627 pub Height: u32,
25628 pub Depth: u32,
25629}
25630impl ::core::marker::Copy for D3D12_DISPATCH_RAYS_DESC {}
25631impl ::core::clone::Clone for D3D12_DISPATCH_RAYS_DESC {
25632 fn clone(&self) -> Self {
25633 *self
25634 }
25635}
25636impl ::core::fmt::Debug for D3D12_DISPATCH_RAYS_DESC {
25637 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25638 f.debug_struct("D3D12_DISPATCH_RAYS_DESC").field("RayGenerationShaderRecord", &self.RayGenerationShaderRecord).field("MissShaderTable", &self.MissShaderTable).field("HitGroupTable", &self.HitGroupTable).field("CallableShaderTable", &self.CallableShaderTable).field("Width", &self.Width).field("Height", &self.Height).field("Depth", &self.Depth).finish()
25639 }
25640}
25641impl ::windows::core::TypeKind for D3D12_DISPATCH_RAYS_DESC {
25642 type TypeKind = ::windows::core::CopyType;
25643}
25644impl ::core::cmp::PartialEq for D3D12_DISPATCH_RAYS_DESC {
25645 fn eq(&self, other: &Self) -> bool {
25646 self.RayGenerationShaderRecord == other.RayGenerationShaderRecord && self.MissShaderTable == other.MissShaderTable && self.HitGroupTable == other.HitGroupTable && self.CallableShaderTable == other.CallableShaderTable && self.Width == other.Width && self.Height == other.Height && self.Depth == other.Depth
25647 }
25648}
25649impl ::core::cmp::Eq for D3D12_DISPATCH_RAYS_DESC {}
25650impl ::core::default::Default for D3D12_DISPATCH_RAYS_DESC {
25651 fn default() -> Self {
25652 unsafe { ::core::mem::zeroed() }
25653 }
25654}
25655#[repr(C)]
25656#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25657pub struct D3D12_DRAW_ARGUMENTS {
25658 pub VertexCountPerInstance: u32,
25659 pub InstanceCount: u32,
25660 pub StartVertexLocation: u32,
25661 pub StartInstanceLocation: u32,
25662}
25663impl ::core::marker::Copy for D3D12_DRAW_ARGUMENTS {}
25664impl ::core::clone::Clone for D3D12_DRAW_ARGUMENTS {
25665 fn clone(&self) -> Self {
25666 *self
25667 }
25668}
25669impl ::core::fmt::Debug for D3D12_DRAW_ARGUMENTS {
25670 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25671 f.debug_struct("D3D12_DRAW_ARGUMENTS").field("VertexCountPerInstance", &self.VertexCountPerInstance).field("InstanceCount", &self.InstanceCount).field("StartVertexLocation", &self.StartVertexLocation).field("StartInstanceLocation", &self.StartInstanceLocation).finish()
25672 }
25673}
25674impl ::windows::core::TypeKind for D3D12_DRAW_ARGUMENTS {
25675 type TypeKind = ::windows::core::CopyType;
25676}
25677impl ::core::cmp::PartialEq for D3D12_DRAW_ARGUMENTS {
25678 fn eq(&self, other: &Self) -> bool {
25679 self.VertexCountPerInstance == other.VertexCountPerInstance && self.InstanceCount == other.InstanceCount && self.StartVertexLocation == other.StartVertexLocation && self.StartInstanceLocation == other.StartInstanceLocation
25680 }
25681}
25682impl ::core::cmp::Eq for D3D12_DRAW_ARGUMENTS {}
25683impl ::core::default::Default for D3D12_DRAW_ARGUMENTS {
25684 fn default() -> Self {
25685 unsafe { ::core::mem::zeroed() }
25686 }
25687}
25688#[repr(C)]
25689#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25690pub struct D3D12_DRAW_INDEXED_ARGUMENTS {
25691 pub IndexCountPerInstance: u32,
25692 pub InstanceCount: u32,
25693 pub StartIndexLocation: u32,
25694 pub BaseVertexLocation: i32,
25695 pub StartInstanceLocation: u32,
25696}
25697impl ::core::marker::Copy for D3D12_DRAW_INDEXED_ARGUMENTS {}
25698impl ::core::clone::Clone for D3D12_DRAW_INDEXED_ARGUMENTS {
25699 fn clone(&self) -> Self {
25700 *self
25701 }
25702}
25703impl ::core::fmt::Debug for D3D12_DRAW_INDEXED_ARGUMENTS {
25704 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25705 f.debug_struct("D3D12_DRAW_INDEXED_ARGUMENTS").field("IndexCountPerInstance", &self.IndexCountPerInstance).field("InstanceCount", &self.InstanceCount).field("StartIndexLocation", &self.StartIndexLocation).field("BaseVertexLocation", &self.BaseVertexLocation).field("StartInstanceLocation", &self.StartInstanceLocation).finish()
25706 }
25707}
25708impl ::windows::core::TypeKind for D3D12_DRAW_INDEXED_ARGUMENTS {
25709 type TypeKind = ::windows::core::CopyType;
25710}
25711impl ::core::cmp::PartialEq for D3D12_DRAW_INDEXED_ARGUMENTS {
25712 fn eq(&self, other: &Self) -> bool {
25713 self.IndexCountPerInstance == other.IndexCountPerInstance && self.InstanceCount == other.InstanceCount && self.StartIndexLocation == other.StartIndexLocation && self.BaseVertexLocation == other.BaseVertexLocation && self.StartInstanceLocation == other.StartInstanceLocation
25714 }
25715}
25716impl ::core::cmp::Eq for D3D12_DRAW_INDEXED_ARGUMENTS {}
25717impl ::core::default::Default for D3D12_DRAW_INDEXED_ARGUMENTS {
25718 fn default() -> Self {
25719 unsafe { ::core::mem::zeroed() }
25720 }
25721}
25722#[repr(C)]
25723#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25724pub struct D3D12_DRED_ALLOCATION_NODE {
25725 pub ObjectNameA: ::windows::core::PCSTR,
25726 pub ObjectNameW: ::windows::core::PCWSTR,
25727 pub AllocationType: D3D12_DRED_ALLOCATION_TYPE,
25728 pub pNext: *const D3D12_DRED_ALLOCATION_NODE,
25729}
25730impl ::core::marker::Copy for D3D12_DRED_ALLOCATION_NODE {}
25731impl ::core::clone::Clone for D3D12_DRED_ALLOCATION_NODE {
25732 fn clone(&self) -> Self {
25733 *self
25734 }
25735}
25736impl ::core::fmt::Debug for D3D12_DRED_ALLOCATION_NODE {
25737 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25738 f.debug_struct("D3D12_DRED_ALLOCATION_NODE").field("ObjectNameA", &self.ObjectNameA).field("ObjectNameW", &self.ObjectNameW).field("AllocationType", &self.AllocationType).field("pNext", &self.pNext).finish()
25739 }
25740}
25741impl ::windows::core::TypeKind for D3D12_DRED_ALLOCATION_NODE {
25742 type TypeKind = ::windows::core::CopyType;
25743}
25744impl ::core::cmp::PartialEq for D3D12_DRED_ALLOCATION_NODE {
25745 fn eq(&self, other: &Self) -> bool {
25746 self.ObjectNameA == other.ObjectNameA && self.ObjectNameW == other.ObjectNameW && self.AllocationType == other.AllocationType && self.pNext == other.pNext
25747 }
25748}
25749impl ::core::cmp::Eq for D3D12_DRED_ALLOCATION_NODE {}
25750impl ::core::default::Default for D3D12_DRED_ALLOCATION_NODE {
25751 fn default() -> Self {
25752 unsafe { ::core::mem::zeroed() }
25753 }
25754}
25755#[repr(C)]
25756#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25757pub struct D3D12_DRED_ALLOCATION_NODE1 {
25758 pub ObjectNameA: ::windows::core::PCSTR,
25759 pub ObjectNameW: ::windows::core::PCWSTR,
25760 pub AllocationType: D3D12_DRED_ALLOCATION_TYPE,
25761 pub pNext: *const D3D12_DRED_ALLOCATION_NODE1,
25762 pub pObject: ::std::mem::ManuallyDrop<::core::option::Option<::windows::core::IUnknown>>,
25763}
25764impl ::core::clone::Clone for D3D12_DRED_ALLOCATION_NODE1 {
25765 fn clone(&self) -> Self {
25766 unsafe { ::core::mem::transmute_copy(self) }
25767 }
25768}
25769impl ::core::fmt::Debug for D3D12_DRED_ALLOCATION_NODE1 {
25770 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25771 f.debug_struct("D3D12_DRED_ALLOCATION_NODE1").field("ObjectNameA", &self.ObjectNameA).field("ObjectNameW", &self.ObjectNameW).field("AllocationType", &self.AllocationType).field("pNext", &self.pNext).field("pObject", &self.pObject).finish()
25772 }
25773}
25774impl ::windows::core::TypeKind for D3D12_DRED_ALLOCATION_NODE1 {
25775 type TypeKind = ::windows::core::CopyType;
25776}
25777impl ::core::cmp::PartialEq for D3D12_DRED_ALLOCATION_NODE1 {
25778 fn eq(&self, other: &Self) -> bool {
25779 self.ObjectNameA == other.ObjectNameA && self.ObjectNameW == other.ObjectNameW && self.AllocationType == other.AllocationType && self.pNext == other.pNext && self.pObject == other.pObject
25780 }
25781}
25782impl ::core::cmp::Eq for D3D12_DRED_ALLOCATION_NODE1 {}
25783impl ::core::default::Default for D3D12_DRED_ALLOCATION_NODE1 {
25784 fn default() -> Self {
25785 unsafe { ::core::mem::zeroed() }
25786 }
25787}
25788#[repr(C)]
25789#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25790pub struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
25791 pub pHeadAutoBreadcrumbNode: *const D3D12_AUTO_BREADCRUMB_NODE,
25792}
25793impl ::core::marker::Copy for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {}
25794impl ::core::clone::Clone for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
25795 fn clone(&self) -> Self {
25796 *self
25797 }
25798}
25799impl ::core::fmt::Debug for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
25800 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25801 f.debug_struct("D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT").field("pHeadAutoBreadcrumbNode", &self.pHeadAutoBreadcrumbNode).finish()
25802 }
25803}
25804impl ::windows::core::TypeKind for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
25805 type TypeKind = ::windows::core::CopyType;
25806}
25807impl ::core::cmp::PartialEq for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
25808 fn eq(&self, other: &Self) -> bool {
25809 self.pHeadAutoBreadcrumbNode == other.pHeadAutoBreadcrumbNode
25810 }
25811}
25812impl ::core::cmp::Eq for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {}
25813impl ::core::default::Default for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT {
25814 fn default() -> Self {
25815 unsafe { ::core::mem::zeroed() }
25816 }
25817}
25818#[repr(C)]
25819#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25820pub struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
25821 pub pHeadAutoBreadcrumbNode: *const D3D12_AUTO_BREADCRUMB_NODE1,
25822}
25823impl ::core::marker::Copy for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {}
25824impl ::core::clone::Clone for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
25825 fn clone(&self) -> Self {
25826 *self
25827 }
25828}
25829impl ::core::fmt::Debug for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
25830 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25831 f.debug_struct("D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1").field("pHeadAutoBreadcrumbNode", &self.pHeadAutoBreadcrumbNode).finish()
25832 }
25833}
25834impl ::windows::core::TypeKind for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
25835 type TypeKind = ::windows::core::CopyType;
25836}
25837impl ::core::cmp::PartialEq for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
25838 fn eq(&self, other: &Self) -> bool {
25839 self.pHeadAutoBreadcrumbNode == other.pHeadAutoBreadcrumbNode
25840 }
25841}
25842impl ::core::cmp::Eq for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {}
25843impl ::core::default::Default for D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 {
25844 fn default() -> Self {
25845 unsafe { ::core::mem::zeroed() }
25846 }
25847}
25848#[repr(C)]
25849#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25850pub struct D3D12_DRED_BREADCRUMB_CONTEXT {
25851 pub BreadcrumbIndex: u32,
25852 pub pContextString: ::windows::core::PCWSTR,
25853}
25854impl ::core::marker::Copy for D3D12_DRED_BREADCRUMB_CONTEXT {}
25855impl ::core::clone::Clone for D3D12_DRED_BREADCRUMB_CONTEXT {
25856 fn clone(&self) -> Self {
25857 *self
25858 }
25859}
25860impl ::core::fmt::Debug for D3D12_DRED_BREADCRUMB_CONTEXT {
25861 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25862 f.debug_struct("D3D12_DRED_BREADCRUMB_CONTEXT").field("BreadcrumbIndex", &self.BreadcrumbIndex).field("pContextString", &self.pContextString).finish()
25863 }
25864}
25865impl ::windows::core::TypeKind for D3D12_DRED_BREADCRUMB_CONTEXT {
25866 type TypeKind = ::windows::core::CopyType;
25867}
25868impl ::core::cmp::PartialEq for D3D12_DRED_BREADCRUMB_CONTEXT {
25869 fn eq(&self, other: &Self) -> bool {
25870 self.BreadcrumbIndex == other.BreadcrumbIndex && self.pContextString == other.pContextString
25871 }
25872}
25873impl ::core::cmp::Eq for D3D12_DRED_BREADCRUMB_CONTEXT {}
25874impl ::core::default::Default for D3D12_DRED_BREADCRUMB_CONTEXT {
25875 fn default() -> Self {
25876 unsafe { ::core::mem::zeroed() }
25877 }
25878}
25879#[repr(C)]
25880#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25881pub struct D3D12_DRED_PAGE_FAULT_OUTPUT {
25882 pub PageFaultVA: u64,
25883 pub pHeadExistingAllocationNode: *const D3D12_DRED_ALLOCATION_NODE,
25884 pub pHeadRecentFreedAllocationNode: *const D3D12_DRED_ALLOCATION_NODE,
25885}
25886impl ::core::marker::Copy for D3D12_DRED_PAGE_FAULT_OUTPUT {}
25887impl ::core::clone::Clone for D3D12_DRED_PAGE_FAULT_OUTPUT {
25888 fn clone(&self) -> Self {
25889 *self
25890 }
25891}
25892impl ::core::fmt::Debug for D3D12_DRED_PAGE_FAULT_OUTPUT {
25893 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25894 f.debug_struct("D3D12_DRED_PAGE_FAULT_OUTPUT").field("PageFaultVA", &self.PageFaultVA).field("pHeadExistingAllocationNode", &self.pHeadExistingAllocationNode).field("pHeadRecentFreedAllocationNode", &self.pHeadRecentFreedAllocationNode).finish()
25895 }
25896}
25897impl ::windows::core::TypeKind for D3D12_DRED_PAGE_FAULT_OUTPUT {
25898 type TypeKind = ::windows::core::CopyType;
25899}
25900impl ::core::cmp::PartialEq for D3D12_DRED_PAGE_FAULT_OUTPUT {
25901 fn eq(&self, other: &Self) -> bool {
25902 self.PageFaultVA == other.PageFaultVA && self.pHeadExistingAllocationNode == other.pHeadExistingAllocationNode && self.pHeadRecentFreedAllocationNode == other.pHeadRecentFreedAllocationNode
25903 }
25904}
25905impl ::core::cmp::Eq for D3D12_DRED_PAGE_FAULT_OUTPUT {}
25906impl ::core::default::Default for D3D12_DRED_PAGE_FAULT_OUTPUT {
25907 fn default() -> Self {
25908 unsafe { ::core::mem::zeroed() }
25909 }
25910}
25911#[repr(C)]
25912#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25913pub struct D3D12_DRED_PAGE_FAULT_OUTPUT1 {
25914 pub PageFaultVA: u64,
25915 pub pHeadExistingAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
25916 pub pHeadRecentFreedAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
25917}
25918impl ::core::marker::Copy for D3D12_DRED_PAGE_FAULT_OUTPUT1 {}
25919impl ::core::clone::Clone for D3D12_DRED_PAGE_FAULT_OUTPUT1 {
25920 fn clone(&self) -> Self {
25921 *self
25922 }
25923}
25924impl ::core::fmt::Debug for D3D12_DRED_PAGE_FAULT_OUTPUT1 {
25925 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25926 f.debug_struct("D3D12_DRED_PAGE_FAULT_OUTPUT1").field("PageFaultVA", &self.PageFaultVA).field("pHeadExistingAllocationNode", &self.pHeadExistingAllocationNode).field("pHeadRecentFreedAllocationNode", &self.pHeadRecentFreedAllocationNode).finish()
25927 }
25928}
25929impl ::windows::core::TypeKind for D3D12_DRED_PAGE_FAULT_OUTPUT1 {
25930 type TypeKind = ::windows::core::CopyType;
25931}
25932impl ::core::cmp::PartialEq for D3D12_DRED_PAGE_FAULT_OUTPUT1 {
25933 fn eq(&self, other: &Self) -> bool {
25934 self.PageFaultVA == other.PageFaultVA && self.pHeadExistingAllocationNode == other.pHeadExistingAllocationNode && self.pHeadRecentFreedAllocationNode == other.pHeadRecentFreedAllocationNode
25935 }
25936}
25937impl ::core::cmp::Eq for D3D12_DRED_PAGE_FAULT_OUTPUT1 {}
25938impl ::core::default::Default for D3D12_DRED_PAGE_FAULT_OUTPUT1 {
25939 fn default() -> Self {
25940 unsafe { ::core::mem::zeroed() }
25941 }
25942}
25943#[repr(C)]
25944#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25945pub struct D3D12_DRED_PAGE_FAULT_OUTPUT2 {
25946 pub PageFaultVA: u64,
25947 pub pHeadExistingAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
25948 pub pHeadRecentFreedAllocationNode: *const D3D12_DRED_ALLOCATION_NODE1,
25949 pub PageFaultFlags: D3D12_DRED_PAGE_FAULT_FLAGS,
25950}
25951impl ::core::marker::Copy for D3D12_DRED_PAGE_FAULT_OUTPUT2 {}
25952impl ::core::clone::Clone for D3D12_DRED_PAGE_FAULT_OUTPUT2 {
25953 fn clone(&self) -> Self {
25954 *self
25955 }
25956}
25957impl ::core::fmt::Debug for D3D12_DRED_PAGE_FAULT_OUTPUT2 {
25958 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25959 f.debug_struct("D3D12_DRED_PAGE_FAULT_OUTPUT2").field("PageFaultVA", &self.PageFaultVA).field("pHeadExistingAllocationNode", &self.pHeadExistingAllocationNode).field("pHeadRecentFreedAllocationNode", &self.pHeadRecentFreedAllocationNode).field("PageFaultFlags", &self.PageFaultFlags).finish()
25960 }
25961}
25962impl ::windows::core::TypeKind for D3D12_DRED_PAGE_FAULT_OUTPUT2 {
25963 type TypeKind = ::windows::core::CopyType;
25964}
25965impl ::core::cmp::PartialEq for D3D12_DRED_PAGE_FAULT_OUTPUT2 {
25966 fn eq(&self, other: &Self) -> bool {
25967 self.PageFaultVA == other.PageFaultVA && self.pHeadExistingAllocationNode == other.pHeadExistingAllocationNode && self.pHeadRecentFreedAllocationNode == other.pHeadRecentFreedAllocationNode && self.PageFaultFlags == other.PageFaultFlags
25968 }
25969}
25970impl ::core::cmp::Eq for D3D12_DRED_PAGE_FAULT_OUTPUT2 {}
25971impl ::core::default::Default for D3D12_DRED_PAGE_FAULT_OUTPUT2 {
25972 fn default() -> Self {
25973 unsafe { ::core::mem::zeroed() }
25974 }
25975}
25976#[repr(C)]
25977#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
25978pub struct D3D12_DXIL_LIBRARY_DESC {
25979 pub DXILLibrary: D3D12_SHADER_BYTECODE,
25980 pub NumExports: u32,
25981 pub pExports: *mut D3D12_EXPORT_DESC,
25982}
25983impl ::core::marker::Copy for D3D12_DXIL_LIBRARY_DESC {}
25984impl ::core::clone::Clone for D3D12_DXIL_LIBRARY_DESC {
25985 fn clone(&self) -> Self {
25986 *self
25987 }
25988}
25989impl ::core::fmt::Debug for D3D12_DXIL_LIBRARY_DESC {
25990 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
25991 f.debug_struct("D3D12_DXIL_LIBRARY_DESC").field("DXILLibrary", &self.DXILLibrary).field("NumExports", &self.NumExports).field("pExports", &self.pExports).finish()
25992 }
25993}
25994impl ::windows::core::TypeKind for D3D12_DXIL_LIBRARY_DESC {
25995 type TypeKind = ::windows::core::CopyType;
25996}
25997impl ::core::cmp::PartialEq for D3D12_DXIL_LIBRARY_DESC {
25998 fn eq(&self, other: &Self) -> bool {
25999 self.DXILLibrary == other.DXILLibrary && self.NumExports == other.NumExports && self.pExports == other.pExports
26000 }
26001}
26002impl ::core::cmp::Eq for D3D12_DXIL_LIBRARY_DESC {}
26003impl ::core::default::Default for D3D12_DXIL_LIBRARY_DESC {
26004 fn default() -> Self {
26005 unsafe { ::core::mem::zeroed() }
26006 }
26007}
26008#[repr(C)]
26009#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
26010pub struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
26011 pub SubobjectToAssociate: ::windows::core::PCWSTR,
26012 pub NumExports: u32,
26013 pub pExports: *const ::windows::core::PCWSTR,
26014}
26015impl ::core::marker::Copy for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {}
26016impl ::core::clone::Clone for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
26017 fn clone(&self) -> Self {
26018 *self
26019 }
26020}
26021impl ::core::fmt::Debug for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
26022 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26023 f.debug_struct("D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION").field("SubobjectToAssociate", &self.SubobjectToAssociate).field("NumExports", &self.NumExports).field("pExports", &self.pExports).finish()
26024 }
26025}
26026impl ::windows::core::TypeKind for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
26027 type TypeKind = ::windows::core::CopyType;
26028}
26029impl ::core::cmp::PartialEq for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
26030 fn eq(&self, other: &Self) -> bool {
26031 self.SubobjectToAssociate == other.SubobjectToAssociate && self.NumExports == other.NumExports && self.pExports == other.pExports
26032 }
26033}
26034impl ::core::cmp::Eq for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {}
26035impl ::core::default::Default for D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
26036 fn default() -> Self {
26037 unsafe { ::core::mem::zeroed() }
26038 }
26039}
26040#[repr(C)]
26041#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
26042pub struct D3D12_EXISTING_COLLECTION_DESC {
26043 pub pExistingCollection: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12StateObject>>,
26044 pub NumExports: u32,
26045 pub pExports: *mut D3D12_EXPORT_DESC,
26046}
26047impl ::core::clone::Clone for D3D12_EXISTING_COLLECTION_DESC {
26048 fn clone(&self) -> Self {
26049 unsafe { ::core::mem::transmute_copy(self) }
26050 }
26051}
26052impl ::core::fmt::Debug for D3D12_EXISTING_COLLECTION_DESC {
26053 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26054 f.debug_struct("D3D12_EXISTING_COLLECTION_DESC").field("pExistingCollection", &self.pExistingCollection).field("NumExports", &self.NumExports).field("pExports", &self.pExports).finish()
26055 }
26056}
26057impl ::windows::core::TypeKind for D3D12_EXISTING_COLLECTION_DESC {
26058 type TypeKind = ::windows::core::CopyType;
26059}
26060impl ::core::cmp::PartialEq for D3D12_EXISTING_COLLECTION_DESC {
26061 fn eq(&self, other: &Self) -> bool {
26062 self.pExistingCollection == other.pExistingCollection && self.NumExports == other.NumExports && self.pExports == other.pExports
26063 }
26064}
26065impl ::core::cmp::Eq for D3D12_EXISTING_COLLECTION_DESC {}
26066impl ::core::default::Default for D3D12_EXISTING_COLLECTION_DESC {
26067 fn default() -> Self {
26068 unsafe { ::core::mem::zeroed() }
26069 }
26070}
26071#[repr(C)]
26072#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
26073pub struct D3D12_EXPORT_DESC {
26074 pub Name: ::windows::core::PCWSTR,
26075 pub ExportToRename: ::windows::core::PCWSTR,
26076 pub Flags: D3D12_EXPORT_FLAGS,
26077}
26078impl ::core::marker::Copy for D3D12_EXPORT_DESC {}
26079impl ::core::clone::Clone for D3D12_EXPORT_DESC {
26080 fn clone(&self) -> Self {
26081 *self
26082 }
26083}
26084impl ::core::fmt::Debug for D3D12_EXPORT_DESC {
26085 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26086 f.debug_struct("D3D12_EXPORT_DESC").field("Name", &self.Name).field("ExportToRename", &self.ExportToRename).field("Flags", &self.Flags).finish()
26087 }
26088}
26089impl ::windows::core::TypeKind for D3D12_EXPORT_DESC {
26090 type TypeKind = ::windows::core::CopyType;
26091}
26092impl ::core::cmp::PartialEq for D3D12_EXPORT_DESC {
26093 fn eq(&self, other: &Self) -> bool {
26094 self.Name == other.Name && self.ExportToRename == other.ExportToRename && self.Flags == other.Flags
26095 }
26096}
26097impl ::core::cmp::Eq for D3D12_EXPORT_DESC {}
26098impl ::core::default::Default for D3D12_EXPORT_DESC {
26099 fn default() -> Self {
26100 unsafe { ::core::mem::zeroed() }
26101 }
26102}
26103#[repr(C)]
26104#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26105#[cfg(feature = "Win32_Foundation")]
26106pub struct D3D12_FEATURE_DATA_ARCHITECTURE {
26107 pub NodeIndex: u32,
26108 pub TileBasedRenderer: super::super::Foundation::BOOL,
26109 pub UMA: super::super::Foundation::BOOL,
26110 pub CacheCoherentUMA: super::super::Foundation::BOOL,
26111}
26112#[cfg(feature = "Win32_Foundation")]
26113impl ::core::marker::Copy for D3D12_FEATURE_DATA_ARCHITECTURE {}
26114#[cfg(feature = "Win32_Foundation")]
26115impl ::core::clone::Clone for D3D12_FEATURE_DATA_ARCHITECTURE {
26116 fn clone(&self) -> Self {
26117 *self
26118 }
26119}
26120#[cfg(feature = "Win32_Foundation")]
26121impl ::core::fmt::Debug for D3D12_FEATURE_DATA_ARCHITECTURE {
26122 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26123 f.debug_struct("D3D12_FEATURE_DATA_ARCHITECTURE").field("NodeIndex", &self.NodeIndex).field("TileBasedRenderer", &self.TileBasedRenderer).field("UMA", &self.UMA).field("CacheCoherentUMA", &self.CacheCoherentUMA).finish()
26124 }
26125}
26126#[cfg(feature = "Win32_Foundation")]
26127impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_ARCHITECTURE {
26128 type TypeKind = ::windows::core::CopyType;
26129}
26130#[cfg(feature = "Win32_Foundation")]
26131impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_ARCHITECTURE {
26132 fn eq(&self, other: &Self) -> bool {
26133 self.NodeIndex == other.NodeIndex && self.TileBasedRenderer == other.TileBasedRenderer && self.UMA == other.UMA && self.CacheCoherentUMA == other.CacheCoherentUMA
26134 }
26135}
26136#[cfg(feature = "Win32_Foundation")]
26137impl ::core::cmp::Eq for D3D12_FEATURE_DATA_ARCHITECTURE {}
26138#[cfg(feature = "Win32_Foundation")]
26139impl ::core::default::Default for D3D12_FEATURE_DATA_ARCHITECTURE {
26140 fn default() -> Self {
26141 unsafe { ::core::mem::zeroed() }
26142 }
26143}
26144#[repr(C)]
26145#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26146#[cfg(feature = "Win32_Foundation")]
26147pub struct D3D12_FEATURE_DATA_ARCHITECTURE1 {
26148 pub NodeIndex: u32,
26149 pub TileBasedRenderer: super::super::Foundation::BOOL,
26150 pub UMA: super::super::Foundation::BOOL,
26151 pub CacheCoherentUMA: super::super::Foundation::BOOL,
26152 pub IsolatedMMU: super::super::Foundation::BOOL,
26153}
26154#[cfg(feature = "Win32_Foundation")]
26155impl ::core::marker::Copy for D3D12_FEATURE_DATA_ARCHITECTURE1 {}
26156#[cfg(feature = "Win32_Foundation")]
26157impl ::core::clone::Clone for D3D12_FEATURE_DATA_ARCHITECTURE1 {
26158 fn clone(&self) -> Self {
26159 *self
26160 }
26161}
26162#[cfg(feature = "Win32_Foundation")]
26163impl ::core::fmt::Debug for D3D12_FEATURE_DATA_ARCHITECTURE1 {
26164 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26165 f.debug_struct("D3D12_FEATURE_DATA_ARCHITECTURE1").field("NodeIndex", &self.NodeIndex).field("TileBasedRenderer", &self.TileBasedRenderer).field("UMA", &self.UMA).field("CacheCoherentUMA", &self.CacheCoherentUMA).field("IsolatedMMU", &self.IsolatedMMU).finish()
26166 }
26167}
26168#[cfg(feature = "Win32_Foundation")]
26169impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_ARCHITECTURE1 {
26170 type TypeKind = ::windows::core::CopyType;
26171}
26172#[cfg(feature = "Win32_Foundation")]
26173impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_ARCHITECTURE1 {
26174 fn eq(&self, other: &Self) -> bool {
26175 self.NodeIndex == other.NodeIndex && self.TileBasedRenderer == other.TileBasedRenderer && self.UMA == other.UMA && self.CacheCoherentUMA == other.CacheCoherentUMA && self.IsolatedMMU == other.IsolatedMMU
26176 }
26177}
26178#[cfg(feature = "Win32_Foundation")]
26179impl ::core::cmp::Eq for D3D12_FEATURE_DATA_ARCHITECTURE1 {}
26180#[cfg(feature = "Win32_Foundation")]
26181impl ::core::default::Default for D3D12_FEATURE_DATA_ARCHITECTURE1 {
26182 fn default() -> Self {
26183 unsafe { ::core::mem::zeroed() }
26184 }
26185}
26186#[repr(C)]
26187#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26188#[cfg(feature = "Win32_Foundation")]
26189pub struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
26190 pub CommandListType: D3D12_COMMAND_LIST_TYPE,
26191 pub Priority: u32,
26192 pub PriorityForTypeIsSupported: super::super::Foundation::BOOL,
26193}
26194#[cfg(feature = "Win32_Foundation")]
26195impl ::core::marker::Copy for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {}
26196#[cfg(feature = "Win32_Foundation")]
26197impl ::core::clone::Clone for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
26198 fn clone(&self) -> Self {
26199 *self
26200 }
26201}
26202#[cfg(feature = "Win32_Foundation")]
26203impl ::core::fmt::Debug for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
26204 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26205 f.debug_struct("D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY").field("CommandListType", &self.CommandListType).field("Priority", &self.Priority).field("PriorityForTypeIsSupported", &self.PriorityForTypeIsSupported).finish()
26206 }
26207}
26208#[cfg(feature = "Win32_Foundation")]
26209impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
26210 type TypeKind = ::windows::core::CopyType;
26211}
26212#[cfg(feature = "Win32_Foundation")]
26213impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
26214 fn eq(&self, other: &Self) -> bool {
26215 self.CommandListType == other.CommandListType && self.Priority == other.Priority && self.PriorityForTypeIsSupported == other.PriorityForTypeIsSupported
26216 }
26217}
26218#[cfg(feature = "Win32_Foundation")]
26219impl ::core::cmp::Eq for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {}
26220#[cfg(feature = "Win32_Foundation")]
26221impl ::core::default::Default for D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
26222 fn default() -> Self {
26223 unsafe { ::core::mem::zeroed() }
26224 }
26225}
26226#[repr(C)]
26227#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26228#[cfg(feature = "Win32_Foundation")]
26229pub struct D3D12_FEATURE_DATA_CROSS_NODE {
26230 pub SharingTier: D3D12_CROSS_NODE_SHARING_TIER,
26231 pub AtomicShaderInstructions: super::super::Foundation::BOOL,
26232}
26233#[cfg(feature = "Win32_Foundation")]
26234impl ::core::marker::Copy for D3D12_FEATURE_DATA_CROSS_NODE {}
26235#[cfg(feature = "Win32_Foundation")]
26236impl ::core::clone::Clone for D3D12_FEATURE_DATA_CROSS_NODE {
26237 fn clone(&self) -> Self {
26238 *self
26239 }
26240}
26241#[cfg(feature = "Win32_Foundation")]
26242impl ::core::fmt::Debug for D3D12_FEATURE_DATA_CROSS_NODE {
26243 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26244 f.debug_struct("D3D12_FEATURE_DATA_CROSS_NODE").field("SharingTier", &self.SharingTier).field("AtomicShaderInstructions", &self.AtomicShaderInstructions).finish()
26245 }
26246}
26247#[cfg(feature = "Win32_Foundation")]
26248impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_CROSS_NODE {
26249 type TypeKind = ::windows::core::CopyType;
26250}
26251#[cfg(feature = "Win32_Foundation")]
26252impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_CROSS_NODE {
26253 fn eq(&self, other: &Self) -> bool {
26254 self.SharingTier == other.SharingTier && self.AtomicShaderInstructions == other.AtomicShaderInstructions
26255 }
26256}
26257#[cfg(feature = "Win32_Foundation")]
26258impl ::core::cmp::Eq for D3D12_FEATURE_DATA_CROSS_NODE {}
26259#[cfg(feature = "Win32_Foundation")]
26260impl ::core::default::Default for D3D12_FEATURE_DATA_CROSS_NODE {
26261 fn default() -> Self {
26262 unsafe { ::core::mem::zeroed() }
26263 }
26264}
26265#[repr(C)]
26266#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26267#[cfg(feature = "Win32_Foundation")]
26268pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS {
26269 pub DoublePrecisionFloatShaderOps: super::super::Foundation::BOOL,
26270 pub OutputMergerLogicOp: super::super::Foundation::BOOL,
26271 pub MinPrecisionSupport: D3D12_SHADER_MIN_PRECISION_SUPPORT,
26272 pub TiledResourcesTier: D3D12_TILED_RESOURCES_TIER,
26273 pub ResourceBindingTier: D3D12_RESOURCE_BINDING_TIER,
26274 pub PSSpecifiedStencilRefSupported: super::super::Foundation::BOOL,
26275 pub TypedUAVLoadAdditionalFormats: super::super::Foundation::BOOL,
26276 pub ROVsSupported: super::super::Foundation::BOOL,
26277 pub ConservativeRasterizationTier: D3D12_CONSERVATIVE_RASTERIZATION_TIER,
26278 pub MaxGPUVirtualAddressBitsPerResource: u32,
26279 pub StandardSwizzle64KBSupported: super::super::Foundation::BOOL,
26280 pub CrossNodeSharingTier: D3D12_CROSS_NODE_SHARING_TIER,
26281 pub CrossAdapterRowMajorTextureSupported: super::super::Foundation::BOOL,
26282 pub VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation: super::super::Foundation::BOOL,
26283 pub ResourceHeapTier: D3D12_RESOURCE_HEAP_TIER,
26284}
26285#[cfg(feature = "Win32_Foundation")]
26286impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS {}
26287#[cfg(feature = "Win32_Foundation")]
26288impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS {
26289 fn clone(&self) -> Self {
26290 *self
26291 }
26292}
26293#[cfg(feature = "Win32_Foundation")]
26294impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS {
26295 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26296 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS")
26297 .field("DoublePrecisionFloatShaderOps", &self.DoublePrecisionFloatShaderOps)
26298 .field("OutputMergerLogicOp", &self.OutputMergerLogicOp)
26299 .field("MinPrecisionSupport", &self.MinPrecisionSupport)
26300 .field("TiledResourcesTier", &self.TiledResourcesTier)
26301 .field("ResourceBindingTier", &self.ResourceBindingTier)
26302 .field("PSSpecifiedStencilRefSupported", &self.PSSpecifiedStencilRefSupported)
26303 .field("TypedUAVLoadAdditionalFormats", &self.TypedUAVLoadAdditionalFormats)
26304 .field("ROVsSupported", &self.ROVsSupported)
26305 .field("ConservativeRasterizationTier", &self.ConservativeRasterizationTier)
26306 .field("MaxGPUVirtualAddressBitsPerResource", &self.MaxGPUVirtualAddressBitsPerResource)
26307 .field("StandardSwizzle64KBSupported", &self.StandardSwizzle64KBSupported)
26308 .field("CrossNodeSharingTier", &self.CrossNodeSharingTier)
26309 .field("CrossAdapterRowMajorTextureSupported", &self.CrossAdapterRowMajorTextureSupported)
26310 .field("VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation", &self.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation)
26311 .field("ResourceHeapTier", &self.ResourceHeapTier)
26312 .finish()
26313 }
26314}
26315#[cfg(feature = "Win32_Foundation")]
26316impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS {
26317 type TypeKind = ::windows::core::CopyType;
26318}
26319#[cfg(feature = "Win32_Foundation")]
26320impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS {
26321 fn eq(&self, other: &Self) -> bool {
26322 self.DoublePrecisionFloatShaderOps == other.DoublePrecisionFloatShaderOps
26323 && self.OutputMergerLogicOp == other.OutputMergerLogicOp
26324 && self.MinPrecisionSupport == other.MinPrecisionSupport
26325 && self.TiledResourcesTier == other.TiledResourcesTier
26326 && self.ResourceBindingTier == other.ResourceBindingTier
26327 && self.PSSpecifiedStencilRefSupported == other.PSSpecifiedStencilRefSupported
26328 && self.TypedUAVLoadAdditionalFormats == other.TypedUAVLoadAdditionalFormats
26329 && self.ROVsSupported == other.ROVsSupported
26330 && self.ConservativeRasterizationTier == other.ConservativeRasterizationTier
26331 && self.MaxGPUVirtualAddressBitsPerResource == other.MaxGPUVirtualAddressBitsPerResource
26332 && self.StandardSwizzle64KBSupported == other.StandardSwizzle64KBSupported
26333 && self.CrossNodeSharingTier == other.CrossNodeSharingTier
26334 && self.CrossAdapterRowMajorTextureSupported == other.CrossAdapterRowMajorTextureSupported
26335 && self.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation == other.VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation
26336 && self.ResourceHeapTier == other.ResourceHeapTier
26337 }
26338}
26339#[cfg(feature = "Win32_Foundation")]
26340impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS {}
26341#[cfg(feature = "Win32_Foundation")]
26342impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS {
26343 fn default() -> Self {
26344 unsafe { ::core::mem::zeroed() }
26345 }
26346}
26347#[repr(C)]
26348#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26349#[cfg(feature = "Win32_Foundation")]
26350pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
26351 pub WaveOps: super::super::Foundation::BOOL,
26352 pub WaveLaneCountMin: u32,
26353 pub WaveLaneCountMax: u32,
26354 pub TotalLaneCount: u32,
26355 pub ExpandedComputeResourceStates: super::super::Foundation::BOOL,
26356 pub Int64ShaderOps: super::super::Foundation::BOOL,
26357}
26358#[cfg(feature = "Win32_Foundation")]
26359impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {}
26360#[cfg(feature = "Win32_Foundation")]
26361impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
26362 fn clone(&self) -> Self {
26363 *self
26364 }
26365}
26366#[cfg(feature = "Win32_Foundation")]
26367impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
26368 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26369 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS1").field("WaveOps", &self.WaveOps).field("WaveLaneCountMin", &self.WaveLaneCountMin).field("WaveLaneCountMax", &self.WaveLaneCountMax).field("TotalLaneCount", &self.TotalLaneCount).field("ExpandedComputeResourceStates", &self.ExpandedComputeResourceStates).field("Int64ShaderOps", &self.Int64ShaderOps).finish()
26370 }
26371}
26372#[cfg(feature = "Win32_Foundation")]
26373impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
26374 type TypeKind = ::windows::core::CopyType;
26375}
26376#[cfg(feature = "Win32_Foundation")]
26377impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
26378 fn eq(&self, other: &Self) -> bool {
26379 self.WaveOps == other.WaveOps && self.WaveLaneCountMin == other.WaveLaneCountMin && self.WaveLaneCountMax == other.WaveLaneCountMax && self.TotalLaneCount == other.TotalLaneCount && self.ExpandedComputeResourceStates == other.ExpandedComputeResourceStates && self.Int64ShaderOps == other.Int64ShaderOps
26380 }
26381}
26382#[cfg(feature = "Win32_Foundation")]
26383impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {}
26384#[cfg(feature = "Win32_Foundation")]
26385impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
26386 fn default() -> Self {
26387 unsafe { ::core::mem::zeroed() }
26388 }
26389}
26390#[repr(C)]
26391#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26392#[cfg(feature = "Win32_Foundation")]
26393pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
26394 pub VariableRateShadingSumCombinerSupported: super::super::Foundation::BOOL,
26395 pub MeshShaderPerPrimitiveShadingRateSupported: super::super::Foundation::BOOL,
26396}
26397#[cfg(feature = "Win32_Foundation")]
26398impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {}
26399#[cfg(feature = "Win32_Foundation")]
26400impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
26401 fn clone(&self) -> Self {
26402 *self
26403 }
26404}
26405#[cfg(feature = "Win32_Foundation")]
26406impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
26407 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26408 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS10").field("VariableRateShadingSumCombinerSupported", &self.VariableRateShadingSumCombinerSupported).field("MeshShaderPerPrimitiveShadingRateSupported", &self.MeshShaderPerPrimitiveShadingRateSupported).finish()
26409 }
26410}
26411#[cfg(feature = "Win32_Foundation")]
26412impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
26413 type TypeKind = ::windows::core::CopyType;
26414}
26415#[cfg(feature = "Win32_Foundation")]
26416impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
26417 fn eq(&self, other: &Self) -> bool {
26418 self.VariableRateShadingSumCombinerSupported == other.VariableRateShadingSumCombinerSupported && self.MeshShaderPerPrimitiveShadingRateSupported == other.MeshShaderPerPrimitiveShadingRateSupported
26419 }
26420}
26421#[cfg(feature = "Win32_Foundation")]
26422impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {}
26423#[cfg(feature = "Win32_Foundation")]
26424impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS10 {
26425 fn default() -> Self {
26426 unsafe { ::core::mem::zeroed() }
26427 }
26428}
26429#[repr(C)]
26430#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26431#[cfg(feature = "Win32_Foundation")]
26432pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
26433 pub AtomicInt64OnDescriptorHeapResourceSupported: super::super::Foundation::BOOL,
26434}
26435#[cfg(feature = "Win32_Foundation")]
26436impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {}
26437#[cfg(feature = "Win32_Foundation")]
26438impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
26439 fn clone(&self) -> Self {
26440 *self
26441 }
26442}
26443#[cfg(feature = "Win32_Foundation")]
26444impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
26445 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26446 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS11").field("AtomicInt64OnDescriptorHeapResourceSupported", &self.AtomicInt64OnDescriptorHeapResourceSupported).finish()
26447 }
26448}
26449#[cfg(feature = "Win32_Foundation")]
26450impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
26451 type TypeKind = ::windows::core::CopyType;
26452}
26453#[cfg(feature = "Win32_Foundation")]
26454impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
26455 fn eq(&self, other: &Self) -> bool {
26456 self.AtomicInt64OnDescriptorHeapResourceSupported == other.AtomicInt64OnDescriptorHeapResourceSupported
26457 }
26458}
26459#[cfg(feature = "Win32_Foundation")]
26460impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {}
26461#[cfg(feature = "Win32_Foundation")]
26462impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS11 {
26463 fn default() -> Self {
26464 unsafe { ::core::mem::zeroed() }
26465 }
26466}
26467#[repr(C)]
26468#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26469#[cfg(feature = "Win32_Foundation")]
26470pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
26471 pub MSPrimitivesPipelineStatisticIncludesCulledPrimitives: D3D12_TRI_STATE,
26472 pub EnhancedBarriersSupported: super::super::Foundation::BOOL,
26473 pub RelaxedFormatCastingSupported: super::super::Foundation::BOOL,
26474}
26475#[cfg(feature = "Win32_Foundation")]
26476impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {}
26477#[cfg(feature = "Win32_Foundation")]
26478impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
26479 fn clone(&self) -> Self {
26480 *self
26481 }
26482}
26483#[cfg(feature = "Win32_Foundation")]
26484impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
26485 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26486 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS12").field("MSPrimitivesPipelineStatisticIncludesCulledPrimitives", &self.MSPrimitivesPipelineStatisticIncludesCulledPrimitives).field("EnhancedBarriersSupported", &self.EnhancedBarriersSupported).field("RelaxedFormatCastingSupported", &self.RelaxedFormatCastingSupported).finish()
26487 }
26488}
26489#[cfg(feature = "Win32_Foundation")]
26490impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
26491 type TypeKind = ::windows::core::CopyType;
26492}
26493#[cfg(feature = "Win32_Foundation")]
26494impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
26495 fn eq(&self, other: &Self) -> bool {
26496 self.MSPrimitivesPipelineStatisticIncludesCulledPrimitives == other.MSPrimitivesPipelineStatisticIncludesCulledPrimitives && self.EnhancedBarriersSupported == other.EnhancedBarriersSupported && self.RelaxedFormatCastingSupported == other.RelaxedFormatCastingSupported
26497 }
26498}
26499#[cfg(feature = "Win32_Foundation")]
26500impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {}
26501#[cfg(feature = "Win32_Foundation")]
26502impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS12 {
26503 fn default() -> Self {
26504 unsafe { ::core::mem::zeroed() }
26505 }
26506}
26507#[repr(C)]
26508#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26509#[cfg(feature = "Win32_Foundation")]
26510pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
26511 pub UnrestrictedBufferTextureCopyPitchSupported: super::super::Foundation::BOOL,
26512 pub UnrestrictedVertexElementAlignmentSupported: super::super::Foundation::BOOL,
26513 pub InvertedViewportHeightFlipsYSupported: super::super::Foundation::BOOL,
26514 pub InvertedViewportDepthFlipsZSupported: super::super::Foundation::BOOL,
26515 pub TextureCopyBetweenDimensionsSupported: super::super::Foundation::BOOL,
26516 pub AlphaBlendFactorSupported: super::super::Foundation::BOOL,
26517}
26518#[cfg(feature = "Win32_Foundation")]
26519impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {}
26520#[cfg(feature = "Win32_Foundation")]
26521impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
26522 fn clone(&self) -> Self {
26523 *self
26524 }
26525}
26526#[cfg(feature = "Win32_Foundation")]
26527impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
26528 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26529 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS13")
26530 .field("UnrestrictedBufferTextureCopyPitchSupported", &self.UnrestrictedBufferTextureCopyPitchSupported)
26531 .field("UnrestrictedVertexElementAlignmentSupported", &self.UnrestrictedVertexElementAlignmentSupported)
26532 .field("InvertedViewportHeightFlipsYSupported", &self.InvertedViewportHeightFlipsYSupported)
26533 .field("InvertedViewportDepthFlipsZSupported", &self.InvertedViewportDepthFlipsZSupported)
26534 .field("TextureCopyBetweenDimensionsSupported", &self.TextureCopyBetweenDimensionsSupported)
26535 .field("AlphaBlendFactorSupported", &self.AlphaBlendFactorSupported)
26536 .finish()
26537 }
26538}
26539#[cfg(feature = "Win32_Foundation")]
26540impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
26541 type TypeKind = ::windows::core::CopyType;
26542}
26543#[cfg(feature = "Win32_Foundation")]
26544impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
26545 fn eq(&self, other: &Self) -> bool {
26546 self.UnrestrictedBufferTextureCopyPitchSupported == other.UnrestrictedBufferTextureCopyPitchSupported && self.UnrestrictedVertexElementAlignmentSupported == other.UnrestrictedVertexElementAlignmentSupported && self.InvertedViewportHeightFlipsYSupported == other.InvertedViewportHeightFlipsYSupported && self.InvertedViewportDepthFlipsZSupported == other.InvertedViewportDepthFlipsZSupported && self.TextureCopyBetweenDimensionsSupported == other.TextureCopyBetweenDimensionsSupported && self.AlphaBlendFactorSupported == other.AlphaBlendFactorSupported
26547 }
26548}
26549#[cfg(feature = "Win32_Foundation")]
26550impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {}
26551#[cfg(feature = "Win32_Foundation")]
26552impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS13 {
26553 fn default() -> Self {
26554 unsafe { ::core::mem::zeroed() }
26555 }
26556}
26557#[repr(C)]
26558#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26559#[cfg(feature = "Win32_Foundation")]
26560pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
26561 pub AdvancedTextureOpsSupported: super::super::Foundation::BOOL,
26562 pub WriteableMSAATexturesSupported: super::super::Foundation::BOOL,
26563 pub IndependentFrontAndBackStencilRefMaskSupported: super::super::Foundation::BOOL,
26564}
26565#[cfg(feature = "Win32_Foundation")]
26566impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {}
26567#[cfg(feature = "Win32_Foundation")]
26568impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
26569 fn clone(&self) -> Self {
26570 *self
26571 }
26572}
26573#[cfg(feature = "Win32_Foundation")]
26574impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
26575 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26576 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS14").field("AdvancedTextureOpsSupported", &self.AdvancedTextureOpsSupported).field("WriteableMSAATexturesSupported", &self.WriteableMSAATexturesSupported).field("IndependentFrontAndBackStencilRefMaskSupported", &self.IndependentFrontAndBackStencilRefMaskSupported).finish()
26577 }
26578}
26579#[cfg(feature = "Win32_Foundation")]
26580impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
26581 type TypeKind = ::windows::core::CopyType;
26582}
26583#[cfg(feature = "Win32_Foundation")]
26584impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
26585 fn eq(&self, other: &Self) -> bool {
26586 self.AdvancedTextureOpsSupported == other.AdvancedTextureOpsSupported && self.WriteableMSAATexturesSupported == other.WriteableMSAATexturesSupported && self.IndependentFrontAndBackStencilRefMaskSupported == other.IndependentFrontAndBackStencilRefMaskSupported
26587 }
26588}
26589#[cfg(feature = "Win32_Foundation")]
26590impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {}
26591#[cfg(feature = "Win32_Foundation")]
26592impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS14 {
26593 fn default() -> Self {
26594 unsafe { ::core::mem::zeroed() }
26595 }
26596}
26597#[repr(C)]
26598#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26599#[cfg(feature = "Win32_Foundation")]
26600pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
26601 pub TriangleFanSupported: super::super::Foundation::BOOL,
26602 pub DynamicIndexBufferStripCutSupported: super::super::Foundation::BOOL,
26603}
26604#[cfg(feature = "Win32_Foundation")]
26605impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {}
26606#[cfg(feature = "Win32_Foundation")]
26607impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
26608 fn clone(&self) -> Self {
26609 *self
26610 }
26611}
26612#[cfg(feature = "Win32_Foundation")]
26613impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
26614 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26615 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS15").field("TriangleFanSupported", &self.TriangleFanSupported).field("DynamicIndexBufferStripCutSupported", &self.DynamicIndexBufferStripCutSupported).finish()
26616 }
26617}
26618#[cfg(feature = "Win32_Foundation")]
26619impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
26620 type TypeKind = ::windows::core::CopyType;
26621}
26622#[cfg(feature = "Win32_Foundation")]
26623impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
26624 fn eq(&self, other: &Self) -> bool {
26625 self.TriangleFanSupported == other.TriangleFanSupported && self.DynamicIndexBufferStripCutSupported == other.DynamicIndexBufferStripCutSupported
26626 }
26627}
26628#[cfg(feature = "Win32_Foundation")]
26629impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {}
26630#[cfg(feature = "Win32_Foundation")]
26631impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS15 {
26632 fn default() -> Self {
26633 unsafe { ::core::mem::zeroed() }
26634 }
26635}
26636#[repr(C)]
26637#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26638#[cfg(feature = "Win32_Foundation")]
26639pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
26640 pub DynamicDepthBiasSupported: super::super::Foundation::BOOL,
26641 pub Reserved: super::super::Foundation::BOOL,
26642}
26643#[cfg(feature = "Win32_Foundation")]
26644impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {}
26645#[cfg(feature = "Win32_Foundation")]
26646impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
26647 fn clone(&self) -> Self {
26648 *self
26649 }
26650}
26651#[cfg(feature = "Win32_Foundation")]
26652impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
26653 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26654 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS16").field("DynamicDepthBiasSupported", &self.DynamicDepthBiasSupported).field("Reserved", &self.Reserved).finish()
26655 }
26656}
26657#[cfg(feature = "Win32_Foundation")]
26658impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
26659 type TypeKind = ::windows::core::CopyType;
26660}
26661#[cfg(feature = "Win32_Foundation")]
26662impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
26663 fn eq(&self, other: &Self) -> bool {
26664 self.DynamicDepthBiasSupported == other.DynamicDepthBiasSupported && self.Reserved == other.Reserved
26665 }
26666}
26667#[cfg(feature = "Win32_Foundation")]
26668impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {}
26669#[cfg(feature = "Win32_Foundation")]
26670impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS16 {
26671 fn default() -> Self {
26672 unsafe { ::core::mem::zeroed() }
26673 }
26674}
26675#[repr(C)]
26676#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26677#[cfg(feature = "Win32_Foundation")]
26678pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
26679 pub DepthBoundsTestSupported: super::super::Foundation::BOOL,
26680 pub ProgrammableSamplePositionsTier: D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER,
26681}
26682#[cfg(feature = "Win32_Foundation")]
26683impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {}
26684#[cfg(feature = "Win32_Foundation")]
26685impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
26686 fn clone(&self) -> Self {
26687 *self
26688 }
26689}
26690#[cfg(feature = "Win32_Foundation")]
26691impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
26692 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26693 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS2").field("DepthBoundsTestSupported", &self.DepthBoundsTestSupported).field("ProgrammableSamplePositionsTier", &self.ProgrammableSamplePositionsTier).finish()
26694 }
26695}
26696#[cfg(feature = "Win32_Foundation")]
26697impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
26698 type TypeKind = ::windows::core::CopyType;
26699}
26700#[cfg(feature = "Win32_Foundation")]
26701impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
26702 fn eq(&self, other: &Self) -> bool {
26703 self.DepthBoundsTestSupported == other.DepthBoundsTestSupported && self.ProgrammableSamplePositionsTier == other.ProgrammableSamplePositionsTier
26704 }
26705}
26706#[cfg(feature = "Win32_Foundation")]
26707impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {}
26708#[cfg(feature = "Win32_Foundation")]
26709impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
26710 fn default() -> Self {
26711 unsafe { ::core::mem::zeroed() }
26712 }
26713}
26714#[repr(C)]
26715#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26716#[cfg(feature = "Win32_Foundation")]
26717pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
26718 pub CopyQueueTimestampQueriesSupported: super::super::Foundation::BOOL,
26719 pub CastingFullyTypedFormatSupported: super::super::Foundation::BOOL,
26720 pub WriteBufferImmediateSupportFlags: D3D12_COMMAND_LIST_SUPPORT_FLAGS,
26721 pub ViewInstancingTier: D3D12_VIEW_INSTANCING_TIER,
26722 pub BarycentricsSupported: super::super::Foundation::BOOL,
26723}
26724#[cfg(feature = "Win32_Foundation")]
26725impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {}
26726#[cfg(feature = "Win32_Foundation")]
26727impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
26728 fn clone(&self) -> Self {
26729 *self
26730 }
26731}
26732#[cfg(feature = "Win32_Foundation")]
26733impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
26734 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26735 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS3").field("CopyQueueTimestampQueriesSupported", &self.CopyQueueTimestampQueriesSupported).field("CastingFullyTypedFormatSupported", &self.CastingFullyTypedFormatSupported).field("WriteBufferImmediateSupportFlags", &self.WriteBufferImmediateSupportFlags).field("ViewInstancingTier", &self.ViewInstancingTier).field("BarycentricsSupported", &self.BarycentricsSupported).finish()
26736 }
26737}
26738#[cfg(feature = "Win32_Foundation")]
26739impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
26740 type TypeKind = ::windows::core::CopyType;
26741}
26742#[cfg(feature = "Win32_Foundation")]
26743impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
26744 fn eq(&self, other: &Self) -> bool {
26745 self.CopyQueueTimestampQueriesSupported == other.CopyQueueTimestampQueriesSupported && self.CastingFullyTypedFormatSupported == other.CastingFullyTypedFormatSupported && self.WriteBufferImmediateSupportFlags == other.WriteBufferImmediateSupportFlags && self.ViewInstancingTier == other.ViewInstancingTier && self.BarycentricsSupported == other.BarycentricsSupported
26746 }
26747}
26748#[cfg(feature = "Win32_Foundation")]
26749impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {}
26750#[cfg(feature = "Win32_Foundation")]
26751impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
26752 fn default() -> Self {
26753 unsafe { ::core::mem::zeroed() }
26754 }
26755}
26756#[repr(C)]
26757#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26758#[cfg(feature = "Win32_Foundation")]
26759pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
26760 pub MSAA64KBAlignedTextureSupported: super::super::Foundation::BOOL,
26761 pub SharedResourceCompatibilityTier: D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER,
26762 pub Native16BitShaderOpsSupported: super::super::Foundation::BOOL,
26763}
26764#[cfg(feature = "Win32_Foundation")]
26765impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {}
26766#[cfg(feature = "Win32_Foundation")]
26767impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
26768 fn clone(&self) -> Self {
26769 *self
26770 }
26771}
26772#[cfg(feature = "Win32_Foundation")]
26773impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
26774 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26775 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS4").field("MSAA64KBAlignedTextureSupported", &self.MSAA64KBAlignedTextureSupported).field("SharedResourceCompatibilityTier", &self.SharedResourceCompatibilityTier).field("Native16BitShaderOpsSupported", &self.Native16BitShaderOpsSupported).finish()
26776 }
26777}
26778#[cfg(feature = "Win32_Foundation")]
26779impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
26780 type TypeKind = ::windows::core::CopyType;
26781}
26782#[cfg(feature = "Win32_Foundation")]
26783impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
26784 fn eq(&self, other: &Self) -> bool {
26785 self.MSAA64KBAlignedTextureSupported == other.MSAA64KBAlignedTextureSupported && self.SharedResourceCompatibilityTier == other.SharedResourceCompatibilityTier && self.Native16BitShaderOpsSupported == other.Native16BitShaderOpsSupported
26786 }
26787}
26788#[cfg(feature = "Win32_Foundation")]
26789impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {}
26790#[cfg(feature = "Win32_Foundation")]
26791impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
26792 fn default() -> Self {
26793 unsafe { ::core::mem::zeroed() }
26794 }
26795}
26796#[repr(C)]
26797#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26798#[cfg(feature = "Win32_Foundation")]
26799pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
26800 pub SRVOnlyTiledResourceTier3: super::super::Foundation::BOOL,
26801 pub RenderPassesTier: D3D12_RENDER_PASS_TIER,
26802 pub RaytracingTier: D3D12_RAYTRACING_TIER,
26803}
26804#[cfg(feature = "Win32_Foundation")]
26805impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {}
26806#[cfg(feature = "Win32_Foundation")]
26807impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
26808 fn clone(&self) -> Self {
26809 *self
26810 }
26811}
26812#[cfg(feature = "Win32_Foundation")]
26813impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
26814 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26815 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS5").field("SRVOnlyTiledResourceTier3", &self.SRVOnlyTiledResourceTier3).field("RenderPassesTier", &self.RenderPassesTier).field("RaytracingTier", &self.RaytracingTier).finish()
26816 }
26817}
26818#[cfg(feature = "Win32_Foundation")]
26819impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
26820 type TypeKind = ::windows::core::CopyType;
26821}
26822#[cfg(feature = "Win32_Foundation")]
26823impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
26824 fn eq(&self, other: &Self) -> bool {
26825 self.SRVOnlyTiledResourceTier3 == other.SRVOnlyTiledResourceTier3 && self.RenderPassesTier == other.RenderPassesTier && self.RaytracingTier == other.RaytracingTier
26826 }
26827}
26828#[cfg(feature = "Win32_Foundation")]
26829impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {}
26830#[cfg(feature = "Win32_Foundation")]
26831impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
26832 fn default() -> Self {
26833 unsafe { ::core::mem::zeroed() }
26834 }
26835}
26836#[repr(C)]
26837#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26838#[cfg(feature = "Win32_Foundation")]
26839pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
26840 pub AdditionalShadingRatesSupported: super::super::Foundation::BOOL,
26841 pub PerPrimitiveShadingRateSupportedWithViewportIndexing: super::super::Foundation::BOOL,
26842 pub VariableShadingRateTier: D3D12_VARIABLE_SHADING_RATE_TIER,
26843 pub ShadingRateImageTileSize: u32,
26844 pub BackgroundProcessingSupported: super::super::Foundation::BOOL,
26845}
26846#[cfg(feature = "Win32_Foundation")]
26847impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {}
26848#[cfg(feature = "Win32_Foundation")]
26849impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
26850 fn clone(&self) -> Self {
26851 *self
26852 }
26853}
26854#[cfg(feature = "Win32_Foundation")]
26855impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
26856 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26857 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS6").field("AdditionalShadingRatesSupported", &self.AdditionalShadingRatesSupported).field("PerPrimitiveShadingRateSupportedWithViewportIndexing", &self.PerPrimitiveShadingRateSupportedWithViewportIndexing).field("VariableShadingRateTier", &self.VariableShadingRateTier).field("ShadingRateImageTileSize", &self.ShadingRateImageTileSize).field("BackgroundProcessingSupported", &self.BackgroundProcessingSupported).finish()
26858 }
26859}
26860#[cfg(feature = "Win32_Foundation")]
26861impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
26862 type TypeKind = ::windows::core::CopyType;
26863}
26864#[cfg(feature = "Win32_Foundation")]
26865impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
26866 fn eq(&self, other: &Self) -> bool {
26867 self.AdditionalShadingRatesSupported == other.AdditionalShadingRatesSupported && self.PerPrimitiveShadingRateSupportedWithViewportIndexing == other.PerPrimitiveShadingRateSupportedWithViewportIndexing && self.VariableShadingRateTier == other.VariableShadingRateTier && self.ShadingRateImageTileSize == other.ShadingRateImageTileSize && self.BackgroundProcessingSupported == other.BackgroundProcessingSupported
26868 }
26869}
26870#[cfg(feature = "Win32_Foundation")]
26871impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {}
26872#[cfg(feature = "Win32_Foundation")]
26873impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS6 {
26874 fn default() -> Self {
26875 unsafe { ::core::mem::zeroed() }
26876 }
26877}
26878#[repr(C)]
26879#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
26880pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
26881 pub MeshShaderTier: D3D12_MESH_SHADER_TIER,
26882 pub SamplerFeedbackTier: D3D12_SAMPLER_FEEDBACK_TIER,
26883}
26884impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {}
26885impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
26886 fn clone(&self) -> Self {
26887 *self
26888 }
26889}
26890impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
26891 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26892 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS7").field("MeshShaderTier", &self.MeshShaderTier).field("SamplerFeedbackTier", &self.SamplerFeedbackTier).finish()
26893 }
26894}
26895impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
26896 type TypeKind = ::windows::core::CopyType;
26897}
26898impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
26899 fn eq(&self, other: &Self) -> bool {
26900 self.MeshShaderTier == other.MeshShaderTier && self.SamplerFeedbackTier == other.SamplerFeedbackTier
26901 }
26902}
26903impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {}
26904impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS7 {
26905 fn default() -> Self {
26906 unsafe { ::core::mem::zeroed() }
26907 }
26908}
26909#[repr(C)]
26910#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26911#[cfg(feature = "Win32_Foundation")]
26912pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
26913 pub UnalignedBlockTexturesSupported: super::super::Foundation::BOOL,
26914}
26915#[cfg(feature = "Win32_Foundation")]
26916impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {}
26917#[cfg(feature = "Win32_Foundation")]
26918impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
26919 fn clone(&self) -> Self {
26920 *self
26921 }
26922}
26923#[cfg(feature = "Win32_Foundation")]
26924impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
26925 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26926 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS8").field("UnalignedBlockTexturesSupported", &self.UnalignedBlockTexturesSupported).finish()
26927 }
26928}
26929#[cfg(feature = "Win32_Foundation")]
26930impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
26931 type TypeKind = ::windows::core::CopyType;
26932}
26933#[cfg(feature = "Win32_Foundation")]
26934impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
26935 fn eq(&self, other: &Self) -> bool {
26936 self.UnalignedBlockTexturesSupported == other.UnalignedBlockTexturesSupported
26937 }
26938}
26939#[cfg(feature = "Win32_Foundation")]
26940impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {}
26941#[cfg(feature = "Win32_Foundation")]
26942impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS8 {
26943 fn default() -> Self {
26944 unsafe { ::core::mem::zeroed() }
26945 }
26946}
26947#[repr(C)]
26948#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26949#[cfg(feature = "Win32_Foundation")]
26950pub struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
26951 pub MeshShaderPipelineStatsSupported: super::super::Foundation::BOOL,
26952 pub MeshShaderSupportsFullRangeRenderTargetArrayIndex: super::super::Foundation::BOOL,
26953 pub AtomicInt64OnTypedResourceSupported: super::super::Foundation::BOOL,
26954 pub AtomicInt64OnGroupSharedSupported: super::super::Foundation::BOOL,
26955 pub DerivativesInMeshAndAmplificationShadersSupported: super::super::Foundation::BOOL,
26956 pub WaveMMATier: D3D12_WAVE_MMA_TIER,
26957}
26958#[cfg(feature = "Win32_Foundation")]
26959impl ::core::marker::Copy for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {}
26960#[cfg(feature = "Win32_Foundation")]
26961impl ::core::clone::Clone for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
26962 fn clone(&self) -> Self {
26963 *self
26964 }
26965}
26966#[cfg(feature = "Win32_Foundation")]
26967impl ::core::fmt::Debug for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
26968 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26969 f.debug_struct("D3D12_FEATURE_DATA_D3D12_OPTIONS9")
26970 .field("MeshShaderPipelineStatsSupported", &self.MeshShaderPipelineStatsSupported)
26971 .field("MeshShaderSupportsFullRangeRenderTargetArrayIndex", &self.MeshShaderSupportsFullRangeRenderTargetArrayIndex)
26972 .field("AtomicInt64OnTypedResourceSupported", &self.AtomicInt64OnTypedResourceSupported)
26973 .field("AtomicInt64OnGroupSharedSupported", &self.AtomicInt64OnGroupSharedSupported)
26974 .field("DerivativesInMeshAndAmplificationShadersSupported", &self.DerivativesInMeshAndAmplificationShadersSupported)
26975 .field("WaveMMATier", &self.WaveMMATier)
26976 .finish()
26977 }
26978}
26979#[cfg(feature = "Win32_Foundation")]
26980impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
26981 type TypeKind = ::windows::core::CopyType;
26982}
26983#[cfg(feature = "Win32_Foundation")]
26984impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
26985 fn eq(&self, other: &Self) -> bool {
26986 self.MeshShaderPipelineStatsSupported == other.MeshShaderPipelineStatsSupported && self.MeshShaderSupportsFullRangeRenderTargetArrayIndex == other.MeshShaderSupportsFullRangeRenderTargetArrayIndex && self.AtomicInt64OnTypedResourceSupported == other.AtomicInt64OnTypedResourceSupported && self.AtomicInt64OnGroupSharedSupported == other.AtomicInt64OnGroupSharedSupported && self.DerivativesInMeshAndAmplificationShadersSupported == other.DerivativesInMeshAndAmplificationShadersSupported && self.WaveMMATier == other.WaveMMATier
26987 }
26988}
26989#[cfg(feature = "Win32_Foundation")]
26990impl ::core::cmp::Eq for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {}
26991#[cfg(feature = "Win32_Foundation")]
26992impl ::core::default::Default for D3D12_FEATURE_DATA_D3D12_OPTIONS9 {
26993 fn default() -> Self {
26994 unsafe { ::core::mem::zeroed() }
26995 }
26996}
26997#[repr(C)]
26998#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
26999#[cfg(feature = "Win32_Foundation")]
27000pub struct D3D12_FEATURE_DATA_DISPLAYABLE {
27001 pub DisplayableTexture: super::super::Foundation::BOOL,
27002 pub SharedResourceCompatibilityTier: D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER,
27003}
27004#[cfg(feature = "Win32_Foundation")]
27005impl ::core::marker::Copy for D3D12_FEATURE_DATA_DISPLAYABLE {}
27006#[cfg(feature = "Win32_Foundation")]
27007impl ::core::clone::Clone for D3D12_FEATURE_DATA_DISPLAYABLE {
27008 fn clone(&self) -> Self {
27009 *self
27010 }
27011}
27012#[cfg(feature = "Win32_Foundation")]
27013impl ::core::fmt::Debug for D3D12_FEATURE_DATA_DISPLAYABLE {
27014 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27015 f.debug_struct("D3D12_FEATURE_DATA_DISPLAYABLE").field("DisplayableTexture", &self.DisplayableTexture).field("SharedResourceCompatibilityTier", &self.SharedResourceCompatibilityTier).finish()
27016 }
27017}
27018#[cfg(feature = "Win32_Foundation")]
27019impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_DISPLAYABLE {
27020 type TypeKind = ::windows::core::CopyType;
27021}
27022#[cfg(feature = "Win32_Foundation")]
27023impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_DISPLAYABLE {
27024 fn eq(&self, other: &Self) -> bool {
27025 self.DisplayableTexture == other.DisplayableTexture && self.SharedResourceCompatibilityTier == other.SharedResourceCompatibilityTier
27026 }
27027}
27028#[cfg(feature = "Win32_Foundation")]
27029impl ::core::cmp::Eq for D3D12_FEATURE_DATA_DISPLAYABLE {}
27030#[cfg(feature = "Win32_Foundation")]
27031impl ::core::default::Default for D3D12_FEATURE_DATA_DISPLAYABLE {
27032 fn default() -> Self {
27033 unsafe { ::core::mem::zeroed() }
27034 }
27035}
27036#[repr(C)]
27037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
27038#[cfg(feature = "Win32_Foundation")]
27039pub struct D3D12_FEATURE_DATA_EXISTING_HEAPS {
27040 pub Supported: super::super::Foundation::BOOL,
27041}
27042#[cfg(feature = "Win32_Foundation")]
27043impl ::core::marker::Copy for D3D12_FEATURE_DATA_EXISTING_HEAPS {}
27044#[cfg(feature = "Win32_Foundation")]
27045impl ::core::clone::Clone for D3D12_FEATURE_DATA_EXISTING_HEAPS {
27046 fn clone(&self) -> Self {
27047 *self
27048 }
27049}
27050#[cfg(feature = "Win32_Foundation")]
27051impl ::core::fmt::Debug for D3D12_FEATURE_DATA_EXISTING_HEAPS {
27052 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27053 f.debug_struct("D3D12_FEATURE_DATA_EXISTING_HEAPS").field("Supported", &self.Supported).finish()
27054 }
27055}
27056#[cfg(feature = "Win32_Foundation")]
27057impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_EXISTING_HEAPS {
27058 type TypeKind = ::windows::core::CopyType;
27059}
27060#[cfg(feature = "Win32_Foundation")]
27061impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_EXISTING_HEAPS {
27062 fn eq(&self, other: &Self) -> bool {
27063 self.Supported == other.Supported
27064 }
27065}
27066#[cfg(feature = "Win32_Foundation")]
27067impl ::core::cmp::Eq for D3D12_FEATURE_DATA_EXISTING_HEAPS {}
27068#[cfg(feature = "Win32_Foundation")]
27069impl ::core::default::Default for D3D12_FEATURE_DATA_EXISTING_HEAPS {
27070 fn default() -> Self {
27071 unsafe { ::core::mem::zeroed() }
27072 }
27073}
27074#[repr(C)]
27075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
27076#[cfg(feature = "Win32_Graphics_Direct3D")]
27077pub struct D3D12_FEATURE_DATA_FEATURE_LEVELS {
27078 pub NumFeatureLevels: u32,
27079 pub pFeatureLevelsRequested: *const super::Direct3D::D3D_FEATURE_LEVEL,
27080 pub MaxSupportedFeatureLevel: super::Direct3D::D3D_FEATURE_LEVEL,
27081}
27082#[cfg(feature = "Win32_Graphics_Direct3D")]
27083impl ::core::marker::Copy for D3D12_FEATURE_DATA_FEATURE_LEVELS {}
27084#[cfg(feature = "Win32_Graphics_Direct3D")]
27085impl ::core::clone::Clone for D3D12_FEATURE_DATA_FEATURE_LEVELS {
27086 fn clone(&self) -> Self {
27087 *self
27088 }
27089}
27090#[cfg(feature = "Win32_Graphics_Direct3D")]
27091impl ::core::fmt::Debug for D3D12_FEATURE_DATA_FEATURE_LEVELS {
27092 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27093 f.debug_struct("D3D12_FEATURE_DATA_FEATURE_LEVELS").field("NumFeatureLevels", &self.NumFeatureLevels).field("pFeatureLevelsRequested", &self.pFeatureLevelsRequested).field("MaxSupportedFeatureLevel", &self.MaxSupportedFeatureLevel).finish()
27094 }
27095}
27096#[cfg(feature = "Win32_Graphics_Direct3D")]
27097impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_FEATURE_LEVELS {
27098 type TypeKind = ::windows::core::CopyType;
27099}
27100#[cfg(feature = "Win32_Graphics_Direct3D")]
27101impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_FEATURE_LEVELS {
27102 fn eq(&self, other: &Self) -> bool {
27103 self.NumFeatureLevels == other.NumFeatureLevels && self.pFeatureLevelsRequested == other.pFeatureLevelsRequested && self.MaxSupportedFeatureLevel == other.MaxSupportedFeatureLevel
27104 }
27105}
27106#[cfg(feature = "Win32_Graphics_Direct3D")]
27107impl ::core::cmp::Eq for D3D12_FEATURE_DATA_FEATURE_LEVELS {}
27108#[cfg(feature = "Win32_Graphics_Direct3D")]
27109impl ::core::default::Default for D3D12_FEATURE_DATA_FEATURE_LEVELS {
27110 fn default() -> Self {
27111 unsafe { ::core::mem::zeroed() }
27112 }
27113}
27114#[repr(C)]
27115#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
27116#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27117pub struct D3D12_FEATURE_DATA_FORMAT_INFO {
27118 pub Format: super::Dxgi::Common::DXGI_FORMAT,
27119 pub PlaneCount: u8,
27120}
27121#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27122impl ::core::marker::Copy for D3D12_FEATURE_DATA_FORMAT_INFO {}
27123#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27124impl ::core::clone::Clone for D3D12_FEATURE_DATA_FORMAT_INFO {
27125 fn clone(&self) -> Self {
27126 *self
27127 }
27128}
27129#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27130impl ::core::fmt::Debug for D3D12_FEATURE_DATA_FORMAT_INFO {
27131 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27132 f.debug_struct("D3D12_FEATURE_DATA_FORMAT_INFO").field("Format", &self.Format).field("PlaneCount", &self.PlaneCount).finish()
27133 }
27134}
27135#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27136impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_FORMAT_INFO {
27137 type TypeKind = ::windows::core::CopyType;
27138}
27139#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27140impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_FORMAT_INFO {
27141 fn eq(&self, other: &Self) -> bool {
27142 self.Format == other.Format && self.PlaneCount == other.PlaneCount
27143 }
27144}
27145#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27146impl ::core::cmp::Eq for D3D12_FEATURE_DATA_FORMAT_INFO {}
27147#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27148impl ::core::default::Default for D3D12_FEATURE_DATA_FORMAT_INFO {
27149 fn default() -> Self {
27150 unsafe { ::core::mem::zeroed() }
27151 }
27152}
27153#[repr(C)]
27154#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
27155#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27156pub struct D3D12_FEATURE_DATA_FORMAT_SUPPORT {
27157 pub Format: super::Dxgi::Common::DXGI_FORMAT,
27158 pub Support1: D3D12_FORMAT_SUPPORT1,
27159 pub Support2: D3D12_FORMAT_SUPPORT2,
27160}
27161#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27162impl ::core::marker::Copy for D3D12_FEATURE_DATA_FORMAT_SUPPORT {}
27163#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27164impl ::core::clone::Clone for D3D12_FEATURE_DATA_FORMAT_SUPPORT {
27165 fn clone(&self) -> Self {
27166 *self
27167 }
27168}
27169#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27170impl ::core::fmt::Debug for D3D12_FEATURE_DATA_FORMAT_SUPPORT {
27171 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27172 f.debug_struct("D3D12_FEATURE_DATA_FORMAT_SUPPORT").field("Format", &self.Format).field("Support1", &self.Support1).field("Support2", &self.Support2).finish()
27173 }
27174}
27175#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27176impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_FORMAT_SUPPORT {
27177 type TypeKind = ::windows::core::CopyType;
27178}
27179#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27180impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_FORMAT_SUPPORT {
27181 fn eq(&self, other: &Self) -> bool {
27182 self.Format == other.Format && self.Support1 == other.Support1 && self.Support2 == other.Support2
27183 }
27184}
27185#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27186impl ::core::cmp::Eq for D3D12_FEATURE_DATA_FORMAT_SUPPORT {}
27187#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27188impl ::core::default::Default for D3D12_FEATURE_DATA_FORMAT_SUPPORT {
27189 fn default() -> Self {
27190 unsafe { ::core::mem::zeroed() }
27191 }
27192}
27193#[repr(C)]
27194#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27195pub struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
27196 pub MaxGPUVirtualAddressBitsPerResource: u32,
27197 pub MaxGPUVirtualAddressBitsPerProcess: u32,
27198}
27199impl ::core::marker::Copy for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {}
27200impl ::core::clone::Clone for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
27201 fn clone(&self) -> Self {
27202 *self
27203 }
27204}
27205impl ::core::fmt::Debug for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
27206 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27207 f.debug_struct("D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT").field("MaxGPUVirtualAddressBitsPerResource", &self.MaxGPUVirtualAddressBitsPerResource).field("MaxGPUVirtualAddressBitsPerProcess", &self.MaxGPUVirtualAddressBitsPerProcess).finish()
27208 }
27209}
27210impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
27211 type TypeKind = ::windows::core::CopyType;
27212}
27213impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
27214 fn eq(&self, other: &Self) -> bool {
27215 self.MaxGPUVirtualAddressBitsPerResource == other.MaxGPUVirtualAddressBitsPerResource && self.MaxGPUVirtualAddressBitsPerProcess == other.MaxGPUVirtualAddressBitsPerProcess
27216 }
27217}
27218impl ::core::cmp::Eq for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {}
27219impl ::core::default::Default for D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
27220 fn default() -> Self {
27221 unsafe { ::core::mem::zeroed() }
27222 }
27223}
27224#[repr(C)]
27225#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
27226#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27227pub struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
27228 pub Format: super::Dxgi::Common::DXGI_FORMAT,
27229 pub SampleCount: u32,
27230 pub Flags: D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS,
27231 pub NumQualityLevels: u32,
27232}
27233#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27234impl ::core::marker::Copy for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {}
27235#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27236impl ::core::clone::Clone for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
27237 fn clone(&self) -> Self {
27238 *self
27239 }
27240}
27241#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27242impl ::core::fmt::Debug for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
27243 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27244 f.debug_struct("D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS").field("Format", &self.Format).field("SampleCount", &self.SampleCount).field("Flags", &self.Flags).field("NumQualityLevels", &self.NumQualityLevels).finish()
27245 }
27246}
27247#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27248impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
27249 type TypeKind = ::windows::core::CopyType;
27250}
27251#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27252impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
27253 fn eq(&self, other: &Self) -> bool {
27254 self.Format == other.Format && self.SampleCount == other.SampleCount && self.Flags == other.Flags && self.NumQualityLevels == other.NumQualityLevels
27255 }
27256}
27257#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27258impl ::core::cmp::Eq for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {}
27259#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
27260impl ::core::default::Default for D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
27261 fn default() -> Self {
27262 unsafe { ::core::mem::zeroed() }
27263 }
27264}
27265#[repr(C)]
27266#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27267pub struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
27268 pub NodeIndex: u32,
27269 pub Support: D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS,
27270}
27271impl ::core::marker::Copy for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {}
27272impl ::core::clone::Clone for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
27273 fn clone(&self) -> Self {
27274 *self
27275 }
27276}
27277impl ::core::fmt::Debug for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
27278 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27279 f.debug_struct("D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT").field("NodeIndex", &self.NodeIndex).field("Support", &self.Support).finish()
27280 }
27281}
27282impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
27283 type TypeKind = ::windows::core::CopyType;
27284}
27285impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
27286 fn eq(&self, other: &Self) -> bool {
27287 self.NodeIndex == other.NodeIndex && self.Support == other.Support
27288 }
27289}
27290impl ::core::cmp::Eq for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {}
27291impl ::core::default::Default for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT {
27292 fn default() -> Self {
27293 unsafe { ::core::mem::zeroed() }
27294 }
27295}
27296#[repr(C)]
27297#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27298pub struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
27299 pub NodeIndex: u32,
27300 pub Count: u32,
27301 pub pTypes: *mut ::windows::core::GUID,
27302}
27303impl ::core::marker::Copy for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {}
27304impl ::core::clone::Clone for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
27305 fn clone(&self) -> Self {
27306 *self
27307 }
27308}
27309impl ::core::fmt::Debug for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
27310 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27311 f.debug_struct("D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES").field("NodeIndex", &self.NodeIndex).field("Count", &self.Count).field("pTypes", &self.pTypes).finish()
27312 }
27313}
27314impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
27315 type TypeKind = ::windows::core::CopyType;
27316}
27317impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
27318 fn eq(&self, other: &Self) -> bool {
27319 self.NodeIndex == other.NodeIndex && self.Count == other.Count && self.pTypes == other.pTypes
27320 }
27321}
27322impl ::core::cmp::Eq for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {}
27323impl ::core::default::Default for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES {
27324 fn default() -> Self {
27325 unsafe { ::core::mem::zeroed() }
27326 }
27327}
27328#[repr(C)]
27329#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27330pub struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
27331 pub NodeIndex: u32,
27332 pub Count: u32,
27333}
27334impl ::core::marker::Copy for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {}
27335impl ::core::clone::Clone for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
27336 fn clone(&self) -> Self {
27337 *self
27338 }
27339}
27340impl ::core::fmt::Debug for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
27341 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27342 f.debug_struct("D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT").field("NodeIndex", &self.NodeIndex).field("Count", &self.Count).finish()
27343 }
27344}
27345impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
27346 type TypeKind = ::windows::core::CopyType;
27347}
27348impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
27349 fn eq(&self, other: &Self) -> bool {
27350 self.NodeIndex == other.NodeIndex && self.Count == other.Count
27351 }
27352}
27353impl ::core::cmp::Eq for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {}
27354impl ::core::default::Default for D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT {
27355 fn default() -> Self {
27356 unsafe { ::core::mem::zeroed() }
27357 }
27358}
27359#[repr(C)]
27360#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27361pub struct D3D12_FEATURE_DATA_QUERY_META_COMMAND {
27362 pub CommandId: ::windows::core::GUID,
27363 pub NodeMask: u32,
27364 pub pQueryInputData: *const ::core::ffi::c_void,
27365 pub QueryInputDataSizeInBytes: usize,
27366 pub pQueryOutputData: *mut ::core::ffi::c_void,
27367 pub QueryOutputDataSizeInBytes: usize,
27368}
27369impl ::core::marker::Copy for D3D12_FEATURE_DATA_QUERY_META_COMMAND {}
27370impl ::core::clone::Clone for D3D12_FEATURE_DATA_QUERY_META_COMMAND {
27371 fn clone(&self) -> Self {
27372 *self
27373 }
27374}
27375impl ::core::fmt::Debug for D3D12_FEATURE_DATA_QUERY_META_COMMAND {
27376 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27377 f.debug_struct("D3D12_FEATURE_DATA_QUERY_META_COMMAND").field("CommandId", &self.CommandId).field("NodeMask", &self.NodeMask).field("pQueryInputData", &self.pQueryInputData).field("QueryInputDataSizeInBytes", &self.QueryInputDataSizeInBytes).field("pQueryOutputData", &self.pQueryOutputData).field("QueryOutputDataSizeInBytes", &self.QueryOutputDataSizeInBytes).finish()
27378 }
27379}
27380impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_QUERY_META_COMMAND {
27381 type TypeKind = ::windows::core::CopyType;
27382}
27383impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_QUERY_META_COMMAND {
27384 fn eq(&self, other: &Self) -> bool {
27385 self.CommandId == other.CommandId && self.NodeMask == other.NodeMask && self.pQueryInputData == other.pQueryInputData && self.QueryInputDataSizeInBytes == other.QueryInputDataSizeInBytes && self.pQueryOutputData == other.pQueryOutputData && self.QueryOutputDataSizeInBytes == other.QueryOutputDataSizeInBytes
27386 }
27387}
27388impl ::core::cmp::Eq for D3D12_FEATURE_DATA_QUERY_META_COMMAND {}
27389impl ::core::default::Default for D3D12_FEATURE_DATA_QUERY_META_COMMAND {
27390 fn default() -> Self {
27391 unsafe { ::core::mem::zeroed() }
27392 }
27393}
27394#[repr(C)]
27395#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27396pub struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
27397 pub HighestVersion: D3D_ROOT_SIGNATURE_VERSION,
27398}
27399impl ::core::marker::Copy for D3D12_FEATURE_DATA_ROOT_SIGNATURE {}
27400impl ::core::clone::Clone for D3D12_FEATURE_DATA_ROOT_SIGNATURE {
27401 fn clone(&self) -> Self {
27402 *self
27403 }
27404}
27405impl ::core::fmt::Debug for D3D12_FEATURE_DATA_ROOT_SIGNATURE {
27406 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27407 f.debug_struct("D3D12_FEATURE_DATA_ROOT_SIGNATURE").field("HighestVersion", &self.HighestVersion).finish()
27408 }
27409}
27410impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_ROOT_SIGNATURE {
27411 type TypeKind = ::windows::core::CopyType;
27412}
27413impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_ROOT_SIGNATURE {
27414 fn eq(&self, other: &Self) -> bool {
27415 self.HighestVersion == other.HighestVersion
27416 }
27417}
27418impl ::core::cmp::Eq for D3D12_FEATURE_DATA_ROOT_SIGNATURE {}
27419impl ::core::default::Default for D3D12_FEATURE_DATA_ROOT_SIGNATURE {
27420 fn default() -> Self {
27421 unsafe { ::core::mem::zeroed() }
27422 }
27423}
27424#[repr(C)]
27425#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27426pub struct D3D12_FEATURE_DATA_SERIALIZATION {
27427 pub NodeIndex: u32,
27428 pub HeapSerializationTier: D3D12_HEAP_SERIALIZATION_TIER,
27429}
27430impl ::core::marker::Copy for D3D12_FEATURE_DATA_SERIALIZATION {}
27431impl ::core::clone::Clone for D3D12_FEATURE_DATA_SERIALIZATION {
27432 fn clone(&self) -> Self {
27433 *self
27434 }
27435}
27436impl ::core::fmt::Debug for D3D12_FEATURE_DATA_SERIALIZATION {
27437 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27438 f.debug_struct("D3D12_FEATURE_DATA_SERIALIZATION").field("NodeIndex", &self.NodeIndex).field("HeapSerializationTier", &self.HeapSerializationTier).finish()
27439 }
27440}
27441impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_SERIALIZATION {
27442 type TypeKind = ::windows::core::CopyType;
27443}
27444impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_SERIALIZATION {
27445 fn eq(&self, other: &Self) -> bool {
27446 self.NodeIndex == other.NodeIndex && self.HeapSerializationTier == other.HeapSerializationTier
27447 }
27448}
27449impl ::core::cmp::Eq for D3D12_FEATURE_DATA_SERIALIZATION {}
27450impl ::core::default::Default for D3D12_FEATURE_DATA_SERIALIZATION {
27451 fn default() -> Self {
27452 unsafe { ::core::mem::zeroed() }
27453 }
27454}
27455#[repr(C)]
27456#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27457pub struct D3D12_FEATURE_DATA_SHADER_CACHE {
27458 pub SupportFlags: D3D12_SHADER_CACHE_SUPPORT_FLAGS,
27459}
27460impl ::core::marker::Copy for D3D12_FEATURE_DATA_SHADER_CACHE {}
27461impl ::core::clone::Clone for D3D12_FEATURE_DATA_SHADER_CACHE {
27462 fn clone(&self) -> Self {
27463 *self
27464 }
27465}
27466impl ::core::fmt::Debug for D3D12_FEATURE_DATA_SHADER_CACHE {
27467 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27468 f.debug_struct("D3D12_FEATURE_DATA_SHADER_CACHE").field("SupportFlags", &self.SupportFlags).finish()
27469 }
27470}
27471impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_SHADER_CACHE {
27472 type TypeKind = ::windows::core::CopyType;
27473}
27474impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_SHADER_CACHE {
27475 fn eq(&self, other: &Self) -> bool {
27476 self.SupportFlags == other.SupportFlags
27477 }
27478}
27479impl ::core::cmp::Eq for D3D12_FEATURE_DATA_SHADER_CACHE {}
27480impl ::core::default::Default for D3D12_FEATURE_DATA_SHADER_CACHE {
27481 fn default() -> Self {
27482 unsafe { ::core::mem::zeroed() }
27483 }
27484}
27485#[repr(C)]
27486#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27487pub struct D3D12_FEATURE_DATA_SHADER_MODEL {
27488 pub HighestShaderModel: D3D_SHADER_MODEL,
27489}
27490impl ::core::marker::Copy for D3D12_FEATURE_DATA_SHADER_MODEL {}
27491impl ::core::clone::Clone for D3D12_FEATURE_DATA_SHADER_MODEL {
27492 fn clone(&self) -> Self {
27493 *self
27494 }
27495}
27496impl ::core::fmt::Debug for D3D12_FEATURE_DATA_SHADER_MODEL {
27497 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27498 f.debug_struct("D3D12_FEATURE_DATA_SHADER_MODEL").field("HighestShaderModel", &self.HighestShaderModel).finish()
27499 }
27500}
27501impl ::windows::core::TypeKind for D3D12_FEATURE_DATA_SHADER_MODEL {
27502 type TypeKind = ::windows::core::CopyType;
27503}
27504impl ::core::cmp::PartialEq for D3D12_FEATURE_DATA_SHADER_MODEL {
27505 fn eq(&self, other: &Self) -> bool {
27506 self.HighestShaderModel == other.HighestShaderModel
27507 }
27508}
27509impl ::core::cmp::Eq for D3D12_FEATURE_DATA_SHADER_MODEL {}
27510impl ::core::default::Default for D3D12_FEATURE_DATA_SHADER_MODEL {
27511 fn default() -> Self {
27512 unsafe { ::core::mem::zeroed() }
27513 }
27514}
27515#[repr(C)]
27516#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`*"]
27517#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27518pub struct D3D12_FUNCTION_DESC {
27519 pub Version: u32,
27520 pub Creator: ::windows::core::PCSTR,
27521 pub Flags: u32,
27522 pub ConstantBuffers: u32,
27523 pub BoundResources: u32,
27524 pub InstructionCount: u32,
27525 pub TempRegisterCount: u32,
27526 pub TempArrayCount: u32,
27527 pub DefCount: u32,
27528 pub DclCount: u32,
27529 pub TextureNormalInstructions: u32,
27530 pub TextureLoadInstructions: u32,
27531 pub TextureCompInstructions: u32,
27532 pub TextureBiasInstructions: u32,
27533 pub TextureGradientInstructions: u32,
27534 pub FloatInstructionCount: u32,
27535 pub IntInstructionCount: u32,
27536 pub UintInstructionCount: u32,
27537 pub StaticFlowControlCount: u32,
27538 pub DynamicFlowControlCount: u32,
27539 pub MacroInstructionCount: u32,
27540 pub ArrayInstructionCount: u32,
27541 pub MovInstructionCount: u32,
27542 pub MovcInstructionCount: u32,
27543 pub ConversionInstructionCount: u32,
27544 pub BitwiseInstructionCount: u32,
27545 pub MinFeatureLevel: super::Direct3D::D3D_FEATURE_LEVEL,
27546 pub RequiredFeatureFlags: u64,
27547 pub Name: ::windows::core::PCSTR,
27548 pub FunctionParameterCount: i32,
27549 pub HasReturn: super::super::Foundation::BOOL,
27550 pub Has10Level9VertexShader: super::super::Foundation::BOOL,
27551 pub Has10Level9PixelShader: super::super::Foundation::BOOL,
27552}
27553#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27554impl ::core::marker::Copy for D3D12_FUNCTION_DESC {}
27555#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27556impl ::core::clone::Clone for D3D12_FUNCTION_DESC {
27557 fn clone(&self) -> Self {
27558 *self
27559 }
27560}
27561#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27562impl ::core::fmt::Debug for D3D12_FUNCTION_DESC {
27563 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27564 f.debug_struct("D3D12_FUNCTION_DESC")
27565 .field("Version", &self.Version)
27566 .field("Creator", &self.Creator)
27567 .field("Flags", &self.Flags)
27568 .field("ConstantBuffers", &self.ConstantBuffers)
27569 .field("BoundResources", &self.BoundResources)
27570 .field("InstructionCount", &self.InstructionCount)
27571 .field("TempRegisterCount", &self.TempRegisterCount)
27572 .field("TempArrayCount", &self.TempArrayCount)
27573 .field("DefCount", &self.DefCount)
27574 .field("DclCount", &self.DclCount)
27575 .field("TextureNormalInstructions", &self.TextureNormalInstructions)
27576 .field("TextureLoadInstructions", &self.TextureLoadInstructions)
27577 .field("TextureCompInstructions", &self.TextureCompInstructions)
27578 .field("TextureBiasInstructions", &self.TextureBiasInstructions)
27579 .field("TextureGradientInstructions", &self.TextureGradientInstructions)
27580 .field("FloatInstructionCount", &self.FloatInstructionCount)
27581 .field("IntInstructionCount", &self.IntInstructionCount)
27582 .field("UintInstructionCount", &self.UintInstructionCount)
27583 .field("StaticFlowControlCount", &self.StaticFlowControlCount)
27584 .field("DynamicFlowControlCount", &self.DynamicFlowControlCount)
27585 .field("MacroInstructionCount", &self.MacroInstructionCount)
27586 .field("ArrayInstructionCount", &self.ArrayInstructionCount)
27587 .field("MovInstructionCount", &self.MovInstructionCount)
27588 .field("MovcInstructionCount", &self.MovcInstructionCount)
27589 .field("ConversionInstructionCount", &self.ConversionInstructionCount)
27590 .field("BitwiseInstructionCount", &self.BitwiseInstructionCount)
27591 .field("MinFeatureLevel", &self.MinFeatureLevel)
27592 .field("RequiredFeatureFlags", &self.RequiredFeatureFlags)
27593 .field("Name", &self.Name)
27594 .field("FunctionParameterCount", &self.FunctionParameterCount)
27595 .field("HasReturn", &self.HasReturn)
27596 .field("Has10Level9VertexShader", &self.Has10Level9VertexShader)
27597 .field("Has10Level9PixelShader", &self.Has10Level9PixelShader)
27598 .finish()
27599 }
27600}
27601#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27602impl ::windows::core::TypeKind for D3D12_FUNCTION_DESC {
27603 type TypeKind = ::windows::core::CopyType;
27604}
27605#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27606impl ::core::cmp::PartialEq for D3D12_FUNCTION_DESC {
27607 fn eq(&self, other: &Self) -> bool {
27608 self.Version == other.Version
27609 && self.Creator == other.Creator
27610 && self.Flags == other.Flags
27611 && self.ConstantBuffers == other.ConstantBuffers
27612 && self.BoundResources == other.BoundResources
27613 && self.InstructionCount == other.InstructionCount
27614 && self.TempRegisterCount == other.TempRegisterCount
27615 && self.TempArrayCount == other.TempArrayCount
27616 && self.DefCount == other.DefCount
27617 && self.DclCount == other.DclCount
27618 && self.TextureNormalInstructions == other.TextureNormalInstructions
27619 && self.TextureLoadInstructions == other.TextureLoadInstructions
27620 && self.TextureCompInstructions == other.TextureCompInstructions
27621 && self.TextureBiasInstructions == other.TextureBiasInstructions
27622 && self.TextureGradientInstructions == other.TextureGradientInstructions
27623 && self.FloatInstructionCount == other.FloatInstructionCount
27624 && self.IntInstructionCount == other.IntInstructionCount
27625 && self.UintInstructionCount == other.UintInstructionCount
27626 && self.StaticFlowControlCount == other.StaticFlowControlCount
27627 && self.DynamicFlowControlCount == other.DynamicFlowControlCount
27628 && self.MacroInstructionCount == other.MacroInstructionCount
27629 && self.ArrayInstructionCount == other.ArrayInstructionCount
27630 && self.MovInstructionCount == other.MovInstructionCount
27631 && self.MovcInstructionCount == other.MovcInstructionCount
27632 && self.ConversionInstructionCount == other.ConversionInstructionCount
27633 && self.BitwiseInstructionCount == other.BitwiseInstructionCount
27634 && self.MinFeatureLevel == other.MinFeatureLevel
27635 && self.RequiredFeatureFlags == other.RequiredFeatureFlags
27636 && self.Name == other.Name
27637 && self.FunctionParameterCount == other.FunctionParameterCount
27638 && self.HasReturn == other.HasReturn
27639 && self.Has10Level9VertexShader == other.Has10Level9VertexShader
27640 && self.Has10Level9PixelShader == other.Has10Level9PixelShader
27641 }
27642}
27643#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27644impl ::core::cmp::Eq for D3D12_FUNCTION_DESC {}
27645#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))]
27646impl ::core::default::Default for D3D12_FUNCTION_DESC {
27647 fn default() -> Self {
27648 unsafe { ::core::mem::zeroed() }
27649 }
27650}
27651#[repr(C)]
27652#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27653pub struct D3D12_GLOBAL_BARRIER {
27654 pub SyncBefore: D3D12_BARRIER_SYNC,
27655 pub SyncAfter: D3D12_BARRIER_SYNC,
27656 pub AccessBefore: D3D12_BARRIER_ACCESS,
27657 pub AccessAfter: D3D12_BARRIER_ACCESS,
27658}
27659impl ::core::marker::Copy for D3D12_GLOBAL_BARRIER {}
27660impl ::core::clone::Clone for D3D12_GLOBAL_BARRIER {
27661 fn clone(&self) -> Self {
27662 *self
27663 }
27664}
27665impl ::core::fmt::Debug for D3D12_GLOBAL_BARRIER {
27666 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27667 f.debug_struct("D3D12_GLOBAL_BARRIER").field("SyncBefore", &self.SyncBefore).field("SyncAfter", &self.SyncAfter).field("AccessBefore", &self.AccessBefore).field("AccessAfter", &self.AccessAfter).finish()
27668 }
27669}
27670impl ::windows::core::TypeKind for D3D12_GLOBAL_BARRIER {
27671 type TypeKind = ::windows::core::CopyType;
27672}
27673impl ::core::cmp::PartialEq for D3D12_GLOBAL_BARRIER {
27674 fn eq(&self, other: &Self) -> bool {
27675 self.SyncBefore == other.SyncBefore && self.SyncAfter == other.SyncAfter && self.AccessBefore == other.AccessBefore && self.AccessAfter == other.AccessAfter
27676 }
27677}
27678impl ::core::cmp::Eq for D3D12_GLOBAL_BARRIER {}
27679impl ::core::default::Default for D3D12_GLOBAL_BARRIER {
27680 fn default() -> Self {
27681 unsafe { ::core::mem::zeroed() }
27682 }
27683}
27684#[repr(C)]
27685#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27686pub struct D3D12_GLOBAL_ROOT_SIGNATURE {
27687 pub pGlobalRootSignature: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12RootSignature>>,
27688}
27689impl ::core::clone::Clone for D3D12_GLOBAL_ROOT_SIGNATURE {
27690 fn clone(&self) -> Self {
27691 unsafe { ::core::mem::transmute_copy(self) }
27692 }
27693}
27694impl ::core::fmt::Debug for D3D12_GLOBAL_ROOT_SIGNATURE {
27695 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27696 f.debug_struct("D3D12_GLOBAL_ROOT_SIGNATURE").field("pGlobalRootSignature", &self.pGlobalRootSignature).finish()
27697 }
27698}
27699impl ::windows::core::TypeKind for D3D12_GLOBAL_ROOT_SIGNATURE {
27700 type TypeKind = ::windows::core::CopyType;
27701}
27702impl ::core::cmp::PartialEq for D3D12_GLOBAL_ROOT_SIGNATURE {
27703 fn eq(&self, other: &Self) -> bool {
27704 self.pGlobalRootSignature == other.pGlobalRootSignature
27705 }
27706}
27707impl ::core::cmp::Eq for D3D12_GLOBAL_ROOT_SIGNATURE {}
27708impl ::core::default::Default for D3D12_GLOBAL_ROOT_SIGNATURE {
27709 fn default() -> Self {
27710 unsafe { ::core::mem::zeroed() }
27711 }
27712}
27713#[repr(C)]
27714#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27715pub struct D3D12_GPU_DESCRIPTOR_HANDLE {
27716 pub ptr: u64,
27717}
27718impl ::core::marker::Copy for D3D12_GPU_DESCRIPTOR_HANDLE {}
27719impl ::core::clone::Clone for D3D12_GPU_DESCRIPTOR_HANDLE {
27720 fn clone(&self) -> Self {
27721 *self
27722 }
27723}
27724impl ::core::fmt::Debug for D3D12_GPU_DESCRIPTOR_HANDLE {
27725 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27726 f.debug_struct("D3D12_GPU_DESCRIPTOR_HANDLE").field("ptr", &self.ptr).finish()
27727 }
27728}
27729impl ::windows::core::TypeKind for D3D12_GPU_DESCRIPTOR_HANDLE {
27730 type TypeKind = ::windows::core::CopyType;
27731}
27732impl ::core::cmp::PartialEq for D3D12_GPU_DESCRIPTOR_HANDLE {
27733 fn eq(&self, other: &Self) -> bool {
27734 self.ptr == other.ptr
27735 }
27736}
27737impl ::core::cmp::Eq for D3D12_GPU_DESCRIPTOR_HANDLE {}
27738impl ::core::default::Default for D3D12_GPU_DESCRIPTOR_HANDLE {
27739 fn default() -> Self {
27740 unsafe { ::core::mem::zeroed() }
27741 }
27742}
27743#[repr(C)]
27744#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27745pub struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
27746 pub StartAddress: u64,
27747 pub StrideInBytes: u64,
27748}
27749impl ::core::marker::Copy for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {}
27750impl ::core::clone::Clone for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
27751 fn clone(&self) -> Self {
27752 *self
27753 }
27754}
27755impl ::core::fmt::Debug for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
27756 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27757 f.debug_struct("D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE").field("StartAddress", &self.StartAddress).field("StrideInBytes", &self.StrideInBytes).finish()
27758 }
27759}
27760impl ::windows::core::TypeKind for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
27761 type TypeKind = ::windows::core::CopyType;
27762}
27763impl ::core::cmp::PartialEq for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
27764 fn eq(&self, other: &Self) -> bool {
27765 self.StartAddress == other.StartAddress && self.StrideInBytes == other.StrideInBytes
27766 }
27767}
27768impl ::core::cmp::Eq for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {}
27769impl ::core::default::Default for D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE {
27770 fn default() -> Self {
27771 unsafe { ::core::mem::zeroed() }
27772 }
27773}
27774#[repr(C)]
27775#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27776pub struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
27777 pub StartAddress: u64,
27778 pub SizeInBytes: u64,
27779}
27780impl ::core::marker::Copy for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {}
27781impl ::core::clone::Clone for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
27782 fn clone(&self) -> Self {
27783 *self
27784 }
27785}
27786impl ::core::fmt::Debug for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
27787 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27788 f.debug_struct("D3D12_GPU_VIRTUAL_ADDRESS_RANGE").field("StartAddress", &self.StartAddress).field("SizeInBytes", &self.SizeInBytes).finish()
27789 }
27790}
27791impl ::windows::core::TypeKind for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
27792 type TypeKind = ::windows::core::CopyType;
27793}
27794impl ::core::cmp::PartialEq for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
27795 fn eq(&self, other: &Self) -> bool {
27796 self.StartAddress == other.StartAddress && self.SizeInBytes == other.SizeInBytes
27797 }
27798}
27799impl ::core::cmp::Eq for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {}
27800impl ::core::default::Default for D3D12_GPU_VIRTUAL_ADDRESS_RANGE {
27801 fn default() -> Self {
27802 unsafe { ::core::mem::zeroed() }
27803 }
27804}
27805#[repr(C)]
27806#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27807pub struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
27808 pub StartAddress: u64,
27809 pub SizeInBytes: u64,
27810 pub StrideInBytes: u64,
27811}
27812impl ::core::marker::Copy for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {}
27813impl ::core::clone::Clone for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
27814 fn clone(&self) -> Self {
27815 *self
27816 }
27817}
27818impl ::core::fmt::Debug for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
27819 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27820 f.debug_struct("D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE").field("StartAddress", &self.StartAddress).field("SizeInBytes", &self.SizeInBytes).field("StrideInBytes", &self.StrideInBytes).finish()
27821 }
27822}
27823impl ::windows::core::TypeKind for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
27824 type TypeKind = ::windows::core::CopyType;
27825}
27826impl ::core::cmp::PartialEq for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
27827 fn eq(&self, other: &Self) -> bool {
27828 self.StartAddress == other.StartAddress && self.SizeInBytes == other.SizeInBytes && self.StrideInBytes == other.StrideInBytes
27829 }
27830}
27831impl ::core::cmp::Eq for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {}
27832impl ::core::default::Default for D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE {
27833 fn default() -> Self {
27834 unsafe { ::core::mem::zeroed() }
27835 }
27836}
27837#[repr(C)]
27838#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
27839#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27840pub struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
27841 pub pRootSignature: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12RootSignature>>,
27842 pub VS: D3D12_SHADER_BYTECODE,
27843 pub PS: D3D12_SHADER_BYTECODE,
27844 pub DS: D3D12_SHADER_BYTECODE,
27845 pub HS: D3D12_SHADER_BYTECODE,
27846 pub GS: D3D12_SHADER_BYTECODE,
27847 pub StreamOutput: D3D12_STREAM_OUTPUT_DESC,
27848 pub BlendState: D3D12_BLEND_DESC,
27849 pub SampleMask: u32,
27850 pub RasterizerState: D3D12_RASTERIZER_DESC,
27851 pub DepthStencilState: D3D12_DEPTH_STENCIL_DESC,
27852 pub InputLayout: D3D12_INPUT_LAYOUT_DESC,
27853 pub IBStripCutValue: D3D12_INDEX_BUFFER_STRIP_CUT_VALUE,
27854 pub PrimitiveTopologyType: D3D12_PRIMITIVE_TOPOLOGY_TYPE,
27855 pub NumRenderTargets: u32,
27856 pub RTVFormats: [super::Dxgi::Common::DXGI_FORMAT; 8],
27857 pub DSVFormat: super::Dxgi::Common::DXGI_FORMAT,
27858 pub SampleDesc: super::Dxgi::Common::DXGI_SAMPLE_DESC,
27859 pub NodeMask: u32,
27860 pub CachedPSO: D3D12_CACHED_PIPELINE_STATE,
27861 pub Flags: D3D12_PIPELINE_STATE_FLAGS,
27862}
27863#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27864impl ::core::clone::Clone for D3D12_GRAPHICS_PIPELINE_STATE_DESC {
27865 fn clone(&self) -> Self {
27866 unsafe { ::core::mem::transmute_copy(self) }
27867 }
27868}
27869#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27870impl ::core::fmt::Debug for D3D12_GRAPHICS_PIPELINE_STATE_DESC {
27871 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27872 f.debug_struct("D3D12_GRAPHICS_PIPELINE_STATE_DESC")
27873 .field("pRootSignature", &self.pRootSignature)
27874 .field("VS", &self.VS)
27875 .field("PS", &self.PS)
27876 .field("DS", &self.DS)
27877 .field("HS", &self.HS)
27878 .field("GS", &self.GS)
27879 .field("StreamOutput", &self.StreamOutput)
27880 .field("BlendState", &self.BlendState)
27881 .field("SampleMask", &self.SampleMask)
27882 .field("RasterizerState", &self.RasterizerState)
27883 .field("DepthStencilState", &self.DepthStencilState)
27884 .field("InputLayout", &self.InputLayout)
27885 .field("IBStripCutValue", &self.IBStripCutValue)
27886 .field("PrimitiveTopologyType", &self.PrimitiveTopologyType)
27887 .field("NumRenderTargets", &self.NumRenderTargets)
27888 .field("RTVFormats", &self.RTVFormats)
27889 .field("DSVFormat", &self.DSVFormat)
27890 .field("SampleDesc", &self.SampleDesc)
27891 .field("NodeMask", &self.NodeMask)
27892 .field("CachedPSO", &self.CachedPSO)
27893 .field("Flags", &self.Flags)
27894 .finish()
27895 }
27896}
27897#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27898impl ::windows::core::TypeKind for D3D12_GRAPHICS_PIPELINE_STATE_DESC {
27899 type TypeKind = ::windows::core::CopyType;
27900}
27901#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27902impl ::core::cmp::PartialEq for D3D12_GRAPHICS_PIPELINE_STATE_DESC {
27903 fn eq(&self, other: &Self) -> bool {
27904 self.pRootSignature == other.pRootSignature
27905 && self.VS == other.VS
27906 && self.PS == other.PS
27907 && self.DS == other.DS
27908 && self.HS == other.HS
27909 && self.GS == other.GS
27910 && self.StreamOutput == other.StreamOutput
27911 && self.BlendState == other.BlendState
27912 && self.SampleMask == other.SampleMask
27913 && self.RasterizerState == other.RasterizerState
27914 && self.DepthStencilState == other.DepthStencilState
27915 && self.InputLayout == other.InputLayout
27916 && self.IBStripCutValue == other.IBStripCutValue
27917 && self.PrimitiveTopologyType == other.PrimitiveTopologyType
27918 && self.NumRenderTargets == other.NumRenderTargets
27919 && self.RTVFormats == other.RTVFormats
27920 && self.DSVFormat == other.DSVFormat
27921 && self.SampleDesc == other.SampleDesc
27922 && self.NodeMask == other.NodeMask
27923 && self.CachedPSO == other.CachedPSO
27924 && self.Flags == other.Flags
27925 }
27926}
27927#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27928impl ::core::cmp::Eq for D3D12_GRAPHICS_PIPELINE_STATE_DESC {}
27929#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
27930impl ::core::default::Default for D3D12_GRAPHICS_PIPELINE_STATE_DESC {
27931 fn default() -> Self {
27932 unsafe { ::core::mem::zeroed() }
27933 }
27934}
27935#[repr(C)]
27936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27937pub struct D3D12_HEAP_DESC {
27938 pub SizeInBytes: u64,
27939 pub Properties: D3D12_HEAP_PROPERTIES,
27940 pub Alignment: u64,
27941 pub Flags: D3D12_HEAP_FLAGS,
27942}
27943impl ::core::marker::Copy for D3D12_HEAP_DESC {}
27944impl ::core::clone::Clone for D3D12_HEAP_DESC {
27945 fn clone(&self) -> Self {
27946 *self
27947 }
27948}
27949impl ::core::fmt::Debug for D3D12_HEAP_DESC {
27950 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27951 f.debug_struct("D3D12_HEAP_DESC").field("SizeInBytes", &self.SizeInBytes).field("Properties", &self.Properties).field("Alignment", &self.Alignment).field("Flags", &self.Flags).finish()
27952 }
27953}
27954impl ::windows::core::TypeKind for D3D12_HEAP_DESC {
27955 type TypeKind = ::windows::core::CopyType;
27956}
27957impl ::core::cmp::PartialEq for D3D12_HEAP_DESC {
27958 fn eq(&self, other: &Self) -> bool {
27959 self.SizeInBytes == other.SizeInBytes && self.Properties == other.Properties && self.Alignment == other.Alignment && self.Flags == other.Flags
27960 }
27961}
27962impl ::core::cmp::Eq for D3D12_HEAP_DESC {}
27963impl ::core::default::Default for D3D12_HEAP_DESC {
27964 fn default() -> Self {
27965 unsafe { ::core::mem::zeroed() }
27966 }
27967}
27968#[repr(C)]
27969#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
27970pub struct D3D12_HEAP_PROPERTIES {
27971 pub Type: D3D12_HEAP_TYPE,
27972 pub CPUPageProperty: D3D12_CPU_PAGE_PROPERTY,
27973 pub MemoryPoolPreference: D3D12_MEMORY_POOL,
27974 pub CreationNodeMask: u32,
27975 pub VisibleNodeMask: u32,
27976}
27977impl ::core::marker::Copy for D3D12_HEAP_PROPERTIES {}
27978impl ::core::clone::Clone for D3D12_HEAP_PROPERTIES {
27979 fn clone(&self) -> Self {
27980 *self
27981 }
27982}
27983impl ::core::fmt::Debug for D3D12_HEAP_PROPERTIES {
27984 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
27985 f.debug_struct("D3D12_HEAP_PROPERTIES").field("Type", &self.Type).field("CPUPageProperty", &self.CPUPageProperty).field("MemoryPoolPreference", &self.MemoryPoolPreference).field("CreationNodeMask", &self.CreationNodeMask).field("VisibleNodeMask", &self.VisibleNodeMask).finish()
27986 }
27987}
27988impl ::windows::core::TypeKind for D3D12_HEAP_PROPERTIES {
27989 type TypeKind = ::windows::core::CopyType;
27990}
27991impl ::core::cmp::PartialEq for D3D12_HEAP_PROPERTIES {
27992 fn eq(&self, other: &Self) -> bool {
27993 self.Type == other.Type && self.CPUPageProperty == other.CPUPageProperty && self.MemoryPoolPreference == other.MemoryPoolPreference && self.CreationNodeMask == other.CreationNodeMask && self.VisibleNodeMask == other.VisibleNodeMask
27994 }
27995}
27996impl ::core::cmp::Eq for D3D12_HEAP_PROPERTIES {}
27997impl ::core::default::Default for D3D12_HEAP_PROPERTIES {
27998 fn default() -> Self {
27999 unsafe { ::core::mem::zeroed() }
28000 }
28001}
28002#[repr(C)]
28003#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28004pub struct D3D12_HIT_GROUP_DESC {
28005 pub HitGroupExport: ::windows::core::PCWSTR,
28006 pub Type: D3D12_HIT_GROUP_TYPE,
28007 pub AnyHitShaderImport: ::windows::core::PCWSTR,
28008 pub ClosestHitShaderImport: ::windows::core::PCWSTR,
28009 pub IntersectionShaderImport: ::windows::core::PCWSTR,
28010}
28011impl ::core::marker::Copy for D3D12_HIT_GROUP_DESC {}
28012impl ::core::clone::Clone for D3D12_HIT_GROUP_DESC {
28013 fn clone(&self) -> Self {
28014 *self
28015 }
28016}
28017impl ::core::fmt::Debug for D3D12_HIT_GROUP_DESC {
28018 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28019 f.debug_struct("D3D12_HIT_GROUP_DESC").field("HitGroupExport", &self.HitGroupExport).field("Type", &self.Type).field("AnyHitShaderImport", &self.AnyHitShaderImport).field("ClosestHitShaderImport", &self.ClosestHitShaderImport).field("IntersectionShaderImport", &self.IntersectionShaderImport).finish()
28020 }
28021}
28022impl ::windows::core::TypeKind for D3D12_HIT_GROUP_DESC {
28023 type TypeKind = ::windows::core::CopyType;
28024}
28025impl ::core::cmp::PartialEq for D3D12_HIT_GROUP_DESC {
28026 fn eq(&self, other: &Self) -> bool {
28027 self.HitGroupExport == other.HitGroupExport && self.Type == other.Type && self.AnyHitShaderImport == other.AnyHitShaderImport && self.ClosestHitShaderImport == other.ClosestHitShaderImport && self.IntersectionShaderImport == other.IntersectionShaderImport
28028 }
28029}
28030impl ::core::cmp::Eq for D3D12_HIT_GROUP_DESC {}
28031impl ::core::default::Default for D3D12_HIT_GROUP_DESC {
28032 fn default() -> Self {
28033 unsafe { ::core::mem::zeroed() }
28034 }
28035}
28036#[repr(C)]
28037#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
28038#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28039pub struct D3D12_INDEX_BUFFER_VIEW {
28040 pub BufferLocation: u64,
28041 pub SizeInBytes: u32,
28042 pub Format: super::Dxgi::Common::DXGI_FORMAT,
28043}
28044#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28045impl ::core::marker::Copy for D3D12_INDEX_BUFFER_VIEW {}
28046#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28047impl ::core::clone::Clone for D3D12_INDEX_BUFFER_VIEW {
28048 fn clone(&self) -> Self {
28049 *self
28050 }
28051}
28052#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28053impl ::core::fmt::Debug for D3D12_INDEX_BUFFER_VIEW {
28054 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28055 f.debug_struct("D3D12_INDEX_BUFFER_VIEW").field("BufferLocation", &self.BufferLocation).field("SizeInBytes", &self.SizeInBytes).field("Format", &self.Format).finish()
28056 }
28057}
28058#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28059impl ::windows::core::TypeKind for D3D12_INDEX_BUFFER_VIEW {
28060 type TypeKind = ::windows::core::CopyType;
28061}
28062#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28063impl ::core::cmp::PartialEq for D3D12_INDEX_BUFFER_VIEW {
28064 fn eq(&self, other: &Self) -> bool {
28065 self.BufferLocation == other.BufferLocation && self.SizeInBytes == other.SizeInBytes && self.Format == other.Format
28066 }
28067}
28068#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28069impl ::core::cmp::Eq for D3D12_INDEX_BUFFER_VIEW {}
28070#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28071impl ::core::default::Default for D3D12_INDEX_BUFFER_VIEW {
28072 fn default() -> Self {
28073 unsafe { ::core::mem::zeroed() }
28074 }
28075}
28076#[repr(C)]
28077#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28078pub struct D3D12_INDIRECT_ARGUMENT_DESC {
28079 pub Type: D3D12_INDIRECT_ARGUMENT_TYPE,
28080 pub Anonymous: D3D12_INDIRECT_ARGUMENT_DESC_0,
28081}
28082impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC {}
28083impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC {
28084 fn clone(&self) -> Self {
28085 *self
28086 }
28087}
28088impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC {
28089 type TypeKind = ::windows::core::CopyType;
28090}
28091impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC {
28092 fn default() -> Self {
28093 unsafe { ::core::mem::zeroed() }
28094 }
28095}
28096#[repr(C)]
28097#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28098pub union D3D12_INDIRECT_ARGUMENT_DESC_0 {
28099 pub VertexBuffer: D3D12_INDIRECT_ARGUMENT_DESC_0_4,
28100 pub Constant: D3D12_INDIRECT_ARGUMENT_DESC_0_1,
28101 pub ConstantBufferView: D3D12_INDIRECT_ARGUMENT_DESC_0_0,
28102 pub ShaderResourceView: D3D12_INDIRECT_ARGUMENT_DESC_0_2,
28103 pub UnorderedAccessView: D3D12_INDIRECT_ARGUMENT_DESC_0_3,
28104}
28105impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC_0 {}
28106impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC_0 {
28107 fn clone(&self) -> Self {
28108 *self
28109 }
28110}
28111impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC_0 {
28112 type TypeKind = ::windows::core::CopyType;
28113}
28114impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC_0 {
28115 fn default() -> Self {
28116 unsafe { ::core::mem::zeroed() }
28117 }
28118}
28119#[repr(C)]
28120#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28121pub struct D3D12_INDIRECT_ARGUMENT_DESC_0_0 {
28122 pub RootParameterIndex: u32,
28123}
28124impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {}
28125impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {
28126 fn clone(&self) -> Self {
28127 *self
28128 }
28129}
28130impl ::core::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {
28131 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28132 f.debug_struct("D3D12_INDIRECT_ARGUMENT_DESC_0_0").field("RootParameterIndex", &self.RootParameterIndex).finish()
28133 }
28134}
28135impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {
28136 type TypeKind = ::windows::core::CopyType;
28137}
28138impl ::core::cmp::PartialEq for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {
28139 fn eq(&self, other: &Self) -> bool {
28140 self.RootParameterIndex == other.RootParameterIndex
28141 }
28142}
28143impl ::core::cmp::Eq for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {}
28144impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC_0_0 {
28145 fn default() -> Self {
28146 unsafe { ::core::mem::zeroed() }
28147 }
28148}
28149#[repr(C)]
28150#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28151pub struct D3D12_INDIRECT_ARGUMENT_DESC_0_1 {
28152 pub RootParameterIndex: u32,
28153 pub DestOffsetIn32BitValues: u32,
28154 pub Num32BitValuesToSet: u32,
28155}
28156impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {}
28157impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {
28158 fn clone(&self) -> Self {
28159 *self
28160 }
28161}
28162impl ::core::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {
28163 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28164 f.debug_struct("D3D12_INDIRECT_ARGUMENT_DESC_0_1").field("RootParameterIndex", &self.RootParameterIndex).field("DestOffsetIn32BitValues", &self.DestOffsetIn32BitValues).field("Num32BitValuesToSet", &self.Num32BitValuesToSet).finish()
28165 }
28166}
28167impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {
28168 type TypeKind = ::windows::core::CopyType;
28169}
28170impl ::core::cmp::PartialEq for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {
28171 fn eq(&self, other: &Self) -> bool {
28172 self.RootParameterIndex == other.RootParameterIndex && self.DestOffsetIn32BitValues == other.DestOffsetIn32BitValues && self.Num32BitValuesToSet == other.Num32BitValuesToSet
28173 }
28174}
28175impl ::core::cmp::Eq for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {}
28176impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC_0_1 {
28177 fn default() -> Self {
28178 unsafe { ::core::mem::zeroed() }
28179 }
28180}
28181#[repr(C)]
28182#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28183pub struct D3D12_INDIRECT_ARGUMENT_DESC_0_2 {
28184 pub RootParameterIndex: u32,
28185}
28186impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {}
28187impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {
28188 fn clone(&self) -> Self {
28189 *self
28190 }
28191}
28192impl ::core::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {
28193 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28194 f.debug_struct("D3D12_INDIRECT_ARGUMENT_DESC_0_2").field("RootParameterIndex", &self.RootParameterIndex).finish()
28195 }
28196}
28197impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {
28198 type TypeKind = ::windows::core::CopyType;
28199}
28200impl ::core::cmp::PartialEq for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {
28201 fn eq(&self, other: &Self) -> bool {
28202 self.RootParameterIndex == other.RootParameterIndex
28203 }
28204}
28205impl ::core::cmp::Eq for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {}
28206impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC_0_2 {
28207 fn default() -> Self {
28208 unsafe { ::core::mem::zeroed() }
28209 }
28210}
28211#[repr(C)]
28212#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28213pub struct D3D12_INDIRECT_ARGUMENT_DESC_0_3 {
28214 pub RootParameterIndex: u32,
28215}
28216impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {}
28217impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {
28218 fn clone(&self) -> Self {
28219 *self
28220 }
28221}
28222impl ::core::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {
28223 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28224 f.debug_struct("D3D12_INDIRECT_ARGUMENT_DESC_0_3").field("RootParameterIndex", &self.RootParameterIndex).finish()
28225 }
28226}
28227impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {
28228 type TypeKind = ::windows::core::CopyType;
28229}
28230impl ::core::cmp::PartialEq for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {
28231 fn eq(&self, other: &Self) -> bool {
28232 self.RootParameterIndex == other.RootParameterIndex
28233 }
28234}
28235impl ::core::cmp::Eq for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {}
28236impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC_0_3 {
28237 fn default() -> Self {
28238 unsafe { ::core::mem::zeroed() }
28239 }
28240}
28241#[repr(C)]
28242#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28243pub struct D3D12_INDIRECT_ARGUMENT_DESC_0_4 {
28244 pub Slot: u32,
28245}
28246impl ::core::marker::Copy for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {}
28247impl ::core::clone::Clone for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {
28248 fn clone(&self) -> Self {
28249 *self
28250 }
28251}
28252impl ::core::fmt::Debug for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {
28253 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28254 f.debug_struct("D3D12_INDIRECT_ARGUMENT_DESC_0_4").field("Slot", &self.Slot).finish()
28255 }
28256}
28257impl ::windows::core::TypeKind for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {
28258 type TypeKind = ::windows::core::CopyType;
28259}
28260impl ::core::cmp::PartialEq for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {
28261 fn eq(&self, other: &Self) -> bool {
28262 self.Slot == other.Slot
28263 }
28264}
28265impl ::core::cmp::Eq for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {}
28266impl ::core::default::Default for D3D12_INDIRECT_ARGUMENT_DESC_0_4 {
28267 fn default() -> Self {
28268 unsafe { ::core::mem::zeroed() }
28269 }
28270}
28271#[repr(C)]
28272#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28273pub struct D3D12_INFO_QUEUE_FILTER {
28274 pub AllowList: D3D12_INFO_QUEUE_FILTER_DESC,
28275 pub DenyList: D3D12_INFO_QUEUE_FILTER_DESC,
28276}
28277impl ::core::marker::Copy for D3D12_INFO_QUEUE_FILTER {}
28278impl ::core::clone::Clone for D3D12_INFO_QUEUE_FILTER {
28279 fn clone(&self) -> Self {
28280 *self
28281 }
28282}
28283impl ::core::fmt::Debug for D3D12_INFO_QUEUE_FILTER {
28284 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28285 f.debug_struct("D3D12_INFO_QUEUE_FILTER").field("AllowList", &self.AllowList).field("DenyList", &self.DenyList).finish()
28286 }
28287}
28288impl ::windows::core::TypeKind for D3D12_INFO_QUEUE_FILTER {
28289 type TypeKind = ::windows::core::CopyType;
28290}
28291impl ::core::cmp::PartialEq for D3D12_INFO_QUEUE_FILTER {
28292 fn eq(&self, other: &Self) -> bool {
28293 self.AllowList == other.AllowList && self.DenyList == other.DenyList
28294 }
28295}
28296impl ::core::cmp::Eq for D3D12_INFO_QUEUE_FILTER {}
28297impl ::core::default::Default for D3D12_INFO_QUEUE_FILTER {
28298 fn default() -> Self {
28299 unsafe { ::core::mem::zeroed() }
28300 }
28301}
28302#[repr(C)]
28303#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28304pub struct D3D12_INFO_QUEUE_FILTER_DESC {
28305 pub NumCategories: u32,
28306 pub pCategoryList: *mut D3D12_MESSAGE_CATEGORY,
28307 pub NumSeverities: u32,
28308 pub pSeverityList: *mut D3D12_MESSAGE_SEVERITY,
28309 pub NumIDs: u32,
28310 pub pIDList: *mut D3D12_MESSAGE_ID,
28311}
28312impl ::core::marker::Copy for D3D12_INFO_QUEUE_FILTER_DESC {}
28313impl ::core::clone::Clone for D3D12_INFO_QUEUE_FILTER_DESC {
28314 fn clone(&self) -> Self {
28315 *self
28316 }
28317}
28318impl ::core::fmt::Debug for D3D12_INFO_QUEUE_FILTER_DESC {
28319 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28320 f.debug_struct("D3D12_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("pIDList", &self.pIDList).finish()
28321 }
28322}
28323impl ::windows::core::TypeKind for D3D12_INFO_QUEUE_FILTER_DESC {
28324 type TypeKind = ::windows::core::CopyType;
28325}
28326impl ::core::cmp::PartialEq for D3D12_INFO_QUEUE_FILTER_DESC {
28327 fn eq(&self, other: &Self) -> bool {
28328 self.NumCategories == other.NumCategories && self.pCategoryList == other.pCategoryList && self.NumSeverities == other.NumSeverities && self.pSeverityList == other.pSeverityList && self.NumIDs == other.NumIDs && self.pIDList == other.pIDList
28329 }
28330}
28331impl ::core::cmp::Eq for D3D12_INFO_QUEUE_FILTER_DESC {}
28332impl ::core::default::Default for D3D12_INFO_QUEUE_FILTER_DESC {
28333 fn default() -> Self {
28334 unsafe { ::core::mem::zeroed() }
28335 }
28336}
28337#[repr(C)]
28338#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
28339#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28340pub struct D3D12_INPUT_ELEMENT_DESC {
28341 pub SemanticName: ::windows::core::PCSTR,
28342 pub SemanticIndex: u32,
28343 pub Format: super::Dxgi::Common::DXGI_FORMAT,
28344 pub InputSlot: u32,
28345 pub AlignedByteOffset: u32,
28346 pub InputSlotClass: D3D12_INPUT_CLASSIFICATION,
28347 pub InstanceDataStepRate: u32,
28348}
28349#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28350impl ::core::marker::Copy for D3D12_INPUT_ELEMENT_DESC {}
28351#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28352impl ::core::clone::Clone for D3D12_INPUT_ELEMENT_DESC {
28353 fn clone(&self) -> Self {
28354 *self
28355 }
28356}
28357#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28358impl ::core::fmt::Debug for D3D12_INPUT_ELEMENT_DESC {
28359 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28360 f.debug_struct("D3D12_INPUT_ELEMENT_DESC").field("SemanticName", &self.SemanticName).field("SemanticIndex", &self.SemanticIndex).field("Format", &self.Format).field("InputSlot", &self.InputSlot).field("AlignedByteOffset", &self.AlignedByteOffset).field("InputSlotClass", &self.InputSlotClass).field("InstanceDataStepRate", &self.InstanceDataStepRate).finish()
28361 }
28362}
28363#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28364impl ::windows::core::TypeKind for D3D12_INPUT_ELEMENT_DESC {
28365 type TypeKind = ::windows::core::CopyType;
28366}
28367#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28368impl ::core::cmp::PartialEq for D3D12_INPUT_ELEMENT_DESC {
28369 fn eq(&self, other: &Self) -> bool {
28370 self.SemanticName == other.SemanticName && self.SemanticIndex == other.SemanticIndex && self.Format == other.Format && self.InputSlot == other.InputSlot && self.AlignedByteOffset == other.AlignedByteOffset && self.InputSlotClass == other.InputSlotClass && self.InstanceDataStepRate == other.InstanceDataStepRate
28371 }
28372}
28373#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28374impl ::core::cmp::Eq for D3D12_INPUT_ELEMENT_DESC {}
28375#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28376impl ::core::default::Default for D3D12_INPUT_ELEMENT_DESC {
28377 fn default() -> Self {
28378 unsafe { ::core::mem::zeroed() }
28379 }
28380}
28381#[repr(C)]
28382#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
28383#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28384pub struct D3D12_INPUT_LAYOUT_DESC {
28385 pub pInputElementDescs: *const D3D12_INPUT_ELEMENT_DESC,
28386 pub NumElements: u32,
28387}
28388#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28389impl ::core::marker::Copy for D3D12_INPUT_LAYOUT_DESC {}
28390#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28391impl ::core::clone::Clone for D3D12_INPUT_LAYOUT_DESC {
28392 fn clone(&self) -> Self {
28393 *self
28394 }
28395}
28396#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28397impl ::core::fmt::Debug for D3D12_INPUT_LAYOUT_DESC {
28398 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28399 f.debug_struct("D3D12_INPUT_LAYOUT_DESC").field("pInputElementDescs", &self.pInputElementDescs).field("NumElements", &self.NumElements).finish()
28400 }
28401}
28402#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28403impl ::windows::core::TypeKind for D3D12_INPUT_LAYOUT_DESC {
28404 type TypeKind = ::windows::core::CopyType;
28405}
28406#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28407impl ::core::cmp::PartialEq for D3D12_INPUT_LAYOUT_DESC {
28408 fn eq(&self, other: &Self) -> bool {
28409 self.pInputElementDescs == other.pInputElementDescs && self.NumElements == other.NumElements
28410 }
28411}
28412#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28413impl ::core::cmp::Eq for D3D12_INPUT_LAYOUT_DESC {}
28414#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28415impl ::core::default::Default for D3D12_INPUT_LAYOUT_DESC {
28416 fn default() -> Self {
28417 unsafe { ::core::mem::zeroed() }
28418 }
28419}
28420#[repr(C)]
28421#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28422pub struct D3D12_LIBRARY_DESC {
28423 pub Creator: ::windows::core::PCSTR,
28424 pub Flags: u32,
28425 pub FunctionCount: u32,
28426}
28427impl ::core::marker::Copy for D3D12_LIBRARY_DESC {}
28428impl ::core::clone::Clone for D3D12_LIBRARY_DESC {
28429 fn clone(&self) -> Self {
28430 *self
28431 }
28432}
28433impl ::core::fmt::Debug for D3D12_LIBRARY_DESC {
28434 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28435 f.debug_struct("D3D12_LIBRARY_DESC").field("Creator", &self.Creator).field("Flags", &self.Flags).field("FunctionCount", &self.FunctionCount).finish()
28436 }
28437}
28438impl ::windows::core::TypeKind for D3D12_LIBRARY_DESC {
28439 type TypeKind = ::windows::core::CopyType;
28440}
28441impl ::core::cmp::PartialEq for D3D12_LIBRARY_DESC {
28442 fn eq(&self, other: &Self) -> bool {
28443 self.Creator == other.Creator && self.Flags == other.Flags && self.FunctionCount == other.FunctionCount
28444 }
28445}
28446impl ::core::cmp::Eq for D3D12_LIBRARY_DESC {}
28447impl ::core::default::Default for D3D12_LIBRARY_DESC {
28448 fn default() -> Self {
28449 unsafe { ::core::mem::zeroed() }
28450 }
28451}
28452#[repr(C)]
28453#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28454pub struct D3D12_LOCAL_ROOT_SIGNATURE {
28455 pub pLocalRootSignature: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12RootSignature>>,
28456}
28457impl ::core::clone::Clone for D3D12_LOCAL_ROOT_SIGNATURE {
28458 fn clone(&self) -> Self {
28459 unsafe { ::core::mem::transmute_copy(self) }
28460 }
28461}
28462impl ::core::fmt::Debug for D3D12_LOCAL_ROOT_SIGNATURE {
28463 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28464 f.debug_struct("D3D12_LOCAL_ROOT_SIGNATURE").field("pLocalRootSignature", &self.pLocalRootSignature).finish()
28465 }
28466}
28467impl ::windows::core::TypeKind for D3D12_LOCAL_ROOT_SIGNATURE {
28468 type TypeKind = ::windows::core::CopyType;
28469}
28470impl ::core::cmp::PartialEq for D3D12_LOCAL_ROOT_SIGNATURE {
28471 fn eq(&self, other: &Self) -> bool {
28472 self.pLocalRootSignature == other.pLocalRootSignature
28473 }
28474}
28475impl ::core::cmp::Eq for D3D12_LOCAL_ROOT_SIGNATURE {}
28476impl ::core::default::Default for D3D12_LOCAL_ROOT_SIGNATURE {
28477 fn default() -> Self {
28478 unsafe { ::core::mem::zeroed() }
28479 }
28480}
28481#[repr(C)]
28482#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28483pub struct D3D12_MEMCPY_DEST {
28484 pub pData: *mut ::core::ffi::c_void,
28485 pub RowPitch: usize,
28486 pub SlicePitch: usize,
28487}
28488impl ::core::marker::Copy for D3D12_MEMCPY_DEST {}
28489impl ::core::clone::Clone for D3D12_MEMCPY_DEST {
28490 fn clone(&self) -> Self {
28491 *self
28492 }
28493}
28494impl ::core::fmt::Debug for D3D12_MEMCPY_DEST {
28495 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28496 f.debug_struct("D3D12_MEMCPY_DEST").field("pData", &self.pData).field("RowPitch", &self.RowPitch).field("SlicePitch", &self.SlicePitch).finish()
28497 }
28498}
28499impl ::windows::core::TypeKind for D3D12_MEMCPY_DEST {
28500 type TypeKind = ::windows::core::CopyType;
28501}
28502impl ::core::cmp::PartialEq for D3D12_MEMCPY_DEST {
28503 fn eq(&self, other: &Self) -> bool {
28504 self.pData == other.pData && self.RowPitch == other.RowPitch && self.SlicePitch == other.SlicePitch
28505 }
28506}
28507impl ::core::cmp::Eq for D3D12_MEMCPY_DEST {}
28508impl ::core::default::Default for D3D12_MEMCPY_DEST {
28509 fn default() -> Self {
28510 unsafe { ::core::mem::zeroed() }
28511 }
28512}
28513#[repr(C)]
28514#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28515pub struct D3D12_MESSAGE {
28516 pub Category: D3D12_MESSAGE_CATEGORY,
28517 pub Severity: D3D12_MESSAGE_SEVERITY,
28518 pub ID: D3D12_MESSAGE_ID,
28519 pub pDescription: ::windows::core::PCSTR,
28520 pub DescriptionByteLength: usize,
28521}
28522impl ::core::marker::Copy for D3D12_MESSAGE {}
28523impl ::core::clone::Clone for D3D12_MESSAGE {
28524 fn clone(&self) -> Self {
28525 *self
28526 }
28527}
28528impl ::core::fmt::Debug for D3D12_MESSAGE {
28529 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28530 f.debug_struct("D3D12_MESSAGE").field("Category", &self.Category).field("Severity", &self.Severity).field("ID", &self.ID).field("pDescription", &self.pDescription).field("DescriptionByteLength", &self.DescriptionByteLength).finish()
28531 }
28532}
28533impl ::windows::core::TypeKind for D3D12_MESSAGE {
28534 type TypeKind = ::windows::core::CopyType;
28535}
28536impl ::core::cmp::PartialEq for D3D12_MESSAGE {
28537 fn eq(&self, other: &Self) -> bool {
28538 self.Category == other.Category && self.Severity == other.Severity && self.ID == other.ID && self.pDescription == other.pDescription && self.DescriptionByteLength == other.DescriptionByteLength
28539 }
28540}
28541impl ::core::cmp::Eq for D3D12_MESSAGE {}
28542impl ::core::default::Default for D3D12_MESSAGE {
28543 fn default() -> Self {
28544 unsafe { ::core::mem::zeroed() }
28545 }
28546}
28547#[repr(C)]
28548#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28549pub struct D3D12_META_COMMAND_DESC {
28550 pub Id: ::windows::core::GUID,
28551 pub Name: ::windows::core::PCWSTR,
28552 pub InitializationDirtyState: D3D12_GRAPHICS_STATES,
28553 pub ExecutionDirtyState: D3D12_GRAPHICS_STATES,
28554}
28555impl ::core::marker::Copy for D3D12_META_COMMAND_DESC {}
28556impl ::core::clone::Clone for D3D12_META_COMMAND_DESC {
28557 fn clone(&self) -> Self {
28558 *self
28559 }
28560}
28561impl ::core::fmt::Debug for D3D12_META_COMMAND_DESC {
28562 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28563 f.debug_struct("D3D12_META_COMMAND_DESC").field("Id", &self.Id).field("Name", &self.Name).field("InitializationDirtyState", &self.InitializationDirtyState).field("ExecutionDirtyState", &self.ExecutionDirtyState).finish()
28564 }
28565}
28566impl ::windows::core::TypeKind for D3D12_META_COMMAND_DESC {
28567 type TypeKind = ::windows::core::CopyType;
28568}
28569impl ::core::cmp::PartialEq for D3D12_META_COMMAND_DESC {
28570 fn eq(&self, other: &Self) -> bool {
28571 self.Id == other.Id && self.Name == other.Name && self.InitializationDirtyState == other.InitializationDirtyState && self.ExecutionDirtyState == other.ExecutionDirtyState
28572 }
28573}
28574impl ::core::cmp::Eq for D3D12_META_COMMAND_DESC {}
28575impl ::core::default::Default for D3D12_META_COMMAND_DESC {
28576 fn default() -> Self {
28577 unsafe { ::core::mem::zeroed() }
28578 }
28579}
28580#[repr(C)]
28581#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28582pub struct D3D12_META_COMMAND_PARAMETER_DESC {
28583 pub Name: ::windows::core::PCWSTR,
28584 pub Type: D3D12_META_COMMAND_PARAMETER_TYPE,
28585 pub Flags: D3D12_META_COMMAND_PARAMETER_FLAGS,
28586 pub RequiredResourceState: D3D12_RESOURCE_STATES,
28587 pub StructureOffset: u32,
28588}
28589impl ::core::marker::Copy for D3D12_META_COMMAND_PARAMETER_DESC {}
28590impl ::core::clone::Clone for D3D12_META_COMMAND_PARAMETER_DESC {
28591 fn clone(&self) -> Self {
28592 *self
28593 }
28594}
28595impl ::core::fmt::Debug for D3D12_META_COMMAND_PARAMETER_DESC {
28596 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28597 f.debug_struct("D3D12_META_COMMAND_PARAMETER_DESC").field("Name", &self.Name).field("Type", &self.Type).field("Flags", &self.Flags).field("RequiredResourceState", &self.RequiredResourceState).field("StructureOffset", &self.StructureOffset).finish()
28598 }
28599}
28600impl ::windows::core::TypeKind for D3D12_META_COMMAND_PARAMETER_DESC {
28601 type TypeKind = ::windows::core::CopyType;
28602}
28603impl ::core::cmp::PartialEq for D3D12_META_COMMAND_PARAMETER_DESC {
28604 fn eq(&self, other: &Self) -> bool {
28605 self.Name == other.Name && self.Type == other.Type && self.Flags == other.Flags && self.RequiredResourceState == other.RequiredResourceState && self.StructureOffset == other.StructureOffset
28606 }
28607}
28608impl ::core::cmp::Eq for D3D12_META_COMMAND_PARAMETER_DESC {}
28609impl ::core::default::Default for D3D12_META_COMMAND_PARAMETER_DESC {
28610 fn default() -> Self {
28611 unsafe { ::core::mem::zeroed() }
28612 }
28613}
28614#[repr(C)]
28615#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28616pub struct D3D12_MIP_REGION {
28617 pub Width: u32,
28618 pub Height: u32,
28619 pub Depth: u32,
28620}
28621impl ::core::marker::Copy for D3D12_MIP_REGION {}
28622impl ::core::clone::Clone for D3D12_MIP_REGION {
28623 fn clone(&self) -> Self {
28624 *self
28625 }
28626}
28627impl ::core::fmt::Debug for D3D12_MIP_REGION {
28628 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28629 f.debug_struct("D3D12_MIP_REGION").field("Width", &self.Width).field("Height", &self.Height).field("Depth", &self.Depth).finish()
28630 }
28631}
28632impl ::windows::core::TypeKind for D3D12_MIP_REGION {
28633 type TypeKind = ::windows::core::CopyType;
28634}
28635impl ::core::cmp::PartialEq for D3D12_MIP_REGION {
28636 fn eq(&self, other: &Self) -> bool {
28637 self.Width == other.Width && self.Height == other.Height && self.Depth == other.Depth
28638 }
28639}
28640impl ::core::cmp::Eq for D3D12_MIP_REGION {}
28641impl ::core::default::Default for D3D12_MIP_REGION {
28642 fn default() -> Self {
28643 unsafe { ::core::mem::zeroed() }
28644 }
28645}
28646#[repr(C)]
28647#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28648pub struct D3D12_NODE_MASK {
28649 pub NodeMask: u32,
28650}
28651impl ::core::marker::Copy for D3D12_NODE_MASK {}
28652impl ::core::clone::Clone for D3D12_NODE_MASK {
28653 fn clone(&self) -> Self {
28654 *self
28655 }
28656}
28657impl ::core::fmt::Debug for D3D12_NODE_MASK {
28658 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28659 f.debug_struct("D3D12_NODE_MASK").field("NodeMask", &self.NodeMask).finish()
28660 }
28661}
28662impl ::windows::core::TypeKind for D3D12_NODE_MASK {
28663 type TypeKind = ::windows::core::CopyType;
28664}
28665impl ::core::cmp::PartialEq for D3D12_NODE_MASK {
28666 fn eq(&self, other: &Self) -> bool {
28667 self.NodeMask == other.NodeMask
28668 }
28669}
28670impl ::core::cmp::Eq for D3D12_NODE_MASK {}
28671impl ::core::default::Default for D3D12_NODE_MASK {
28672 fn default() -> Self {
28673 unsafe { ::core::mem::zeroed() }
28674 }
28675}
28676#[repr(C)]
28677#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28678pub struct D3D12_PACKED_MIP_INFO {
28679 pub NumStandardMips: u8,
28680 pub NumPackedMips: u8,
28681 pub NumTilesForPackedMips: u32,
28682 pub StartTileIndexInOverallResource: u32,
28683}
28684impl ::core::marker::Copy for D3D12_PACKED_MIP_INFO {}
28685impl ::core::clone::Clone for D3D12_PACKED_MIP_INFO {
28686 fn clone(&self) -> Self {
28687 *self
28688 }
28689}
28690impl ::core::fmt::Debug for D3D12_PACKED_MIP_INFO {
28691 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28692 f.debug_struct("D3D12_PACKED_MIP_INFO").field("NumStandardMips", &self.NumStandardMips).field("NumPackedMips", &self.NumPackedMips).field("NumTilesForPackedMips", &self.NumTilesForPackedMips).field("StartTileIndexInOverallResource", &self.StartTileIndexInOverallResource).finish()
28693 }
28694}
28695impl ::windows::core::TypeKind for D3D12_PACKED_MIP_INFO {
28696 type TypeKind = ::windows::core::CopyType;
28697}
28698impl ::core::cmp::PartialEq for D3D12_PACKED_MIP_INFO {
28699 fn eq(&self, other: &Self) -> bool {
28700 self.NumStandardMips == other.NumStandardMips && self.NumPackedMips == other.NumPackedMips && self.NumTilesForPackedMips == other.NumTilesForPackedMips && self.StartTileIndexInOverallResource == other.StartTileIndexInOverallResource
28701 }
28702}
28703impl ::core::cmp::Eq for D3D12_PACKED_MIP_INFO {}
28704impl ::core::default::Default for D3D12_PACKED_MIP_INFO {
28705 fn default() -> Self {
28706 unsafe { ::core::mem::zeroed() }
28707 }
28708}
28709#[repr(C)]
28710#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
28711#[cfg(feature = "Win32_Graphics_Direct3D")]
28712pub struct D3D12_PARAMETER_DESC {
28713 pub Name: ::windows::core::PCSTR,
28714 pub SemanticName: ::windows::core::PCSTR,
28715 pub Type: super::Direct3D::D3D_SHADER_VARIABLE_TYPE,
28716 pub Class: super::Direct3D::D3D_SHADER_VARIABLE_CLASS,
28717 pub Rows: u32,
28718 pub Columns: u32,
28719 pub InterpolationMode: super::Direct3D::D3D_INTERPOLATION_MODE,
28720 pub Flags: super::Direct3D::D3D_PARAMETER_FLAGS,
28721 pub FirstInRegister: u32,
28722 pub FirstInComponent: u32,
28723 pub FirstOutRegister: u32,
28724 pub FirstOutComponent: u32,
28725}
28726#[cfg(feature = "Win32_Graphics_Direct3D")]
28727impl ::core::marker::Copy for D3D12_PARAMETER_DESC {}
28728#[cfg(feature = "Win32_Graphics_Direct3D")]
28729impl ::core::clone::Clone for D3D12_PARAMETER_DESC {
28730 fn clone(&self) -> Self {
28731 *self
28732 }
28733}
28734#[cfg(feature = "Win32_Graphics_Direct3D")]
28735impl ::core::fmt::Debug for D3D12_PARAMETER_DESC {
28736 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28737 f.debug_struct("D3D12_PARAMETER_DESC")
28738 .field("Name", &self.Name)
28739 .field("SemanticName", &self.SemanticName)
28740 .field("Type", &self.Type)
28741 .field("Class", &self.Class)
28742 .field("Rows", &self.Rows)
28743 .field("Columns", &self.Columns)
28744 .field("InterpolationMode", &self.InterpolationMode)
28745 .field("Flags", &self.Flags)
28746 .field("FirstInRegister", &self.FirstInRegister)
28747 .field("FirstInComponent", &self.FirstInComponent)
28748 .field("FirstOutRegister", &self.FirstOutRegister)
28749 .field("FirstOutComponent", &self.FirstOutComponent)
28750 .finish()
28751 }
28752}
28753#[cfg(feature = "Win32_Graphics_Direct3D")]
28754impl ::windows::core::TypeKind for D3D12_PARAMETER_DESC {
28755 type TypeKind = ::windows::core::CopyType;
28756}
28757#[cfg(feature = "Win32_Graphics_Direct3D")]
28758impl ::core::cmp::PartialEq for D3D12_PARAMETER_DESC {
28759 fn eq(&self, other: &Self) -> bool {
28760 self.Name == other.Name && self.SemanticName == other.SemanticName && self.Type == other.Type && self.Class == other.Class && self.Rows == other.Rows && self.Columns == other.Columns && self.InterpolationMode == other.InterpolationMode && self.Flags == other.Flags && self.FirstInRegister == other.FirstInRegister && self.FirstInComponent == other.FirstInComponent && self.FirstOutRegister == other.FirstOutRegister && self.FirstOutComponent == other.FirstOutComponent
28761 }
28762}
28763#[cfg(feature = "Win32_Graphics_Direct3D")]
28764impl ::core::cmp::Eq for D3D12_PARAMETER_DESC {}
28765#[cfg(feature = "Win32_Graphics_Direct3D")]
28766impl ::core::default::Default for D3D12_PARAMETER_DESC {
28767 fn default() -> Self {
28768 unsafe { ::core::mem::zeroed() }
28769 }
28770}
28771#[repr(C)]
28772#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28773pub struct D3D12_PIPELINE_STATE_STREAM_DESC {
28774 pub SizeInBytes: usize,
28775 pub pPipelineStateSubobjectStream: *mut ::core::ffi::c_void,
28776}
28777impl ::core::marker::Copy for D3D12_PIPELINE_STATE_STREAM_DESC {}
28778impl ::core::clone::Clone for D3D12_PIPELINE_STATE_STREAM_DESC {
28779 fn clone(&self) -> Self {
28780 *self
28781 }
28782}
28783impl ::core::fmt::Debug for D3D12_PIPELINE_STATE_STREAM_DESC {
28784 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28785 f.debug_struct("D3D12_PIPELINE_STATE_STREAM_DESC").field("SizeInBytes", &self.SizeInBytes).field("pPipelineStateSubobjectStream", &self.pPipelineStateSubobjectStream).finish()
28786 }
28787}
28788impl ::windows::core::TypeKind for D3D12_PIPELINE_STATE_STREAM_DESC {
28789 type TypeKind = ::windows::core::CopyType;
28790}
28791impl ::core::cmp::PartialEq for D3D12_PIPELINE_STATE_STREAM_DESC {
28792 fn eq(&self, other: &Self) -> bool {
28793 self.SizeInBytes == other.SizeInBytes && self.pPipelineStateSubobjectStream == other.pPipelineStateSubobjectStream
28794 }
28795}
28796impl ::core::cmp::Eq for D3D12_PIPELINE_STATE_STREAM_DESC {}
28797impl ::core::default::Default for D3D12_PIPELINE_STATE_STREAM_DESC {
28798 fn default() -> Self {
28799 unsafe { ::core::mem::zeroed() }
28800 }
28801}
28802#[repr(C)]
28803#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
28804#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28805pub struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
28806 pub Offset: u64,
28807 pub Footprint: D3D12_SUBRESOURCE_FOOTPRINT,
28808}
28809#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28810impl ::core::marker::Copy for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {}
28811#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28812impl ::core::clone::Clone for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
28813 fn clone(&self) -> Self {
28814 *self
28815 }
28816}
28817#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28818impl ::core::fmt::Debug for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
28819 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28820 f.debug_struct("D3D12_PLACED_SUBRESOURCE_FOOTPRINT").field("Offset", &self.Offset).field("Footprint", &self.Footprint).finish()
28821 }
28822}
28823#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28824impl ::windows::core::TypeKind for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
28825 type TypeKind = ::windows::core::CopyType;
28826}
28827#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28828impl ::core::cmp::PartialEq for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
28829 fn eq(&self, other: &Self) -> bool {
28830 self.Offset == other.Offset && self.Footprint == other.Footprint
28831 }
28832}
28833#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28834impl ::core::cmp::Eq for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {}
28835#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
28836impl ::core::default::Default for D3D12_PLACED_SUBRESOURCE_FOOTPRINT {
28837 fn default() -> Self {
28838 unsafe { ::core::mem::zeroed() }
28839 }
28840}
28841#[repr(C)]
28842#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28843pub struct D3D12_PROTECTED_RESOURCE_SESSION_DESC {
28844 pub NodeMask: u32,
28845 pub Flags: D3D12_PROTECTED_RESOURCE_SESSION_FLAGS,
28846}
28847impl ::core::marker::Copy for D3D12_PROTECTED_RESOURCE_SESSION_DESC {}
28848impl ::core::clone::Clone for D3D12_PROTECTED_RESOURCE_SESSION_DESC {
28849 fn clone(&self) -> Self {
28850 *self
28851 }
28852}
28853impl ::core::fmt::Debug for D3D12_PROTECTED_RESOURCE_SESSION_DESC {
28854 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28855 f.debug_struct("D3D12_PROTECTED_RESOURCE_SESSION_DESC").field("NodeMask", &self.NodeMask).field("Flags", &self.Flags).finish()
28856 }
28857}
28858impl ::windows::core::TypeKind for D3D12_PROTECTED_RESOURCE_SESSION_DESC {
28859 type TypeKind = ::windows::core::CopyType;
28860}
28861impl ::core::cmp::PartialEq for D3D12_PROTECTED_RESOURCE_SESSION_DESC {
28862 fn eq(&self, other: &Self) -> bool {
28863 self.NodeMask == other.NodeMask && self.Flags == other.Flags
28864 }
28865}
28866impl ::core::cmp::Eq for D3D12_PROTECTED_RESOURCE_SESSION_DESC {}
28867impl ::core::default::Default for D3D12_PROTECTED_RESOURCE_SESSION_DESC {
28868 fn default() -> Self {
28869 unsafe { ::core::mem::zeroed() }
28870 }
28871}
28872#[repr(C)]
28873#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28874pub struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
28875 pub NodeMask: u32,
28876 pub Flags: D3D12_PROTECTED_RESOURCE_SESSION_FLAGS,
28877 pub ProtectionType: ::windows::core::GUID,
28878}
28879impl ::core::marker::Copy for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {}
28880impl ::core::clone::Clone for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
28881 fn clone(&self) -> Self {
28882 *self
28883 }
28884}
28885impl ::core::fmt::Debug for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
28886 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28887 f.debug_struct("D3D12_PROTECTED_RESOURCE_SESSION_DESC1").field("NodeMask", &self.NodeMask).field("Flags", &self.Flags).field("ProtectionType", &self.ProtectionType).finish()
28888 }
28889}
28890impl ::windows::core::TypeKind for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
28891 type TypeKind = ::windows::core::CopyType;
28892}
28893impl ::core::cmp::PartialEq for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
28894 fn eq(&self, other: &Self) -> bool {
28895 self.NodeMask == other.NodeMask && self.Flags == other.Flags && self.ProtectionType == other.ProtectionType
28896 }
28897}
28898impl ::core::cmp::Eq for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {}
28899impl ::core::default::Default for D3D12_PROTECTED_RESOURCE_SESSION_DESC1 {
28900 fn default() -> Self {
28901 unsafe { ::core::mem::zeroed() }
28902 }
28903}
28904#[repr(C)]
28905#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28906pub struct D3D12_QUERY_DATA_PIPELINE_STATISTICS {
28907 pub IAVertices: u64,
28908 pub IAPrimitives: u64,
28909 pub VSInvocations: u64,
28910 pub GSInvocations: u64,
28911 pub GSPrimitives: u64,
28912 pub CInvocations: u64,
28913 pub CPrimitives: u64,
28914 pub PSInvocations: u64,
28915 pub HSInvocations: u64,
28916 pub DSInvocations: u64,
28917 pub CSInvocations: u64,
28918}
28919impl ::core::marker::Copy for D3D12_QUERY_DATA_PIPELINE_STATISTICS {}
28920impl ::core::clone::Clone for D3D12_QUERY_DATA_PIPELINE_STATISTICS {
28921 fn clone(&self) -> Self {
28922 *self
28923 }
28924}
28925impl ::core::fmt::Debug for D3D12_QUERY_DATA_PIPELINE_STATISTICS {
28926 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28927 f.debug_struct("D3D12_QUERY_DATA_PIPELINE_STATISTICS")
28928 .field("IAVertices", &self.IAVertices)
28929 .field("IAPrimitives", &self.IAPrimitives)
28930 .field("VSInvocations", &self.VSInvocations)
28931 .field("GSInvocations", &self.GSInvocations)
28932 .field("GSPrimitives", &self.GSPrimitives)
28933 .field("CInvocations", &self.CInvocations)
28934 .field("CPrimitives", &self.CPrimitives)
28935 .field("PSInvocations", &self.PSInvocations)
28936 .field("HSInvocations", &self.HSInvocations)
28937 .field("DSInvocations", &self.DSInvocations)
28938 .field("CSInvocations", &self.CSInvocations)
28939 .finish()
28940 }
28941}
28942impl ::windows::core::TypeKind for D3D12_QUERY_DATA_PIPELINE_STATISTICS {
28943 type TypeKind = ::windows::core::CopyType;
28944}
28945impl ::core::cmp::PartialEq for D3D12_QUERY_DATA_PIPELINE_STATISTICS {
28946 fn eq(&self, other: &Self) -> bool {
28947 self.IAVertices == other.IAVertices && self.IAPrimitives == other.IAPrimitives && self.VSInvocations == other.VSInvocations && self.GSInvocations == other.GSInvocations && self.GSPrimitives == other.GSPrimitives && self.CInvocations == other.CInvocations && self.CPrimitives == other.CPrimitives && self.PSInvocations == other.PSInvocations && self.HSInvocations == other.HSInvocations && self.DSInvocations == other.DSInvocations && self.CSInvocations == other.CSInvocations
28948 }
28949}
28950impl ::core::cmp::Eq for D3D12_QUERY_DATA_PIPELINE_STATISTICS {}
28951impl ::core::default::Default for D3D12_QUERY_DATA_PIPELINE_STATISTICS {
28952 fn default() -> Self {
28953 unsafe { ::core::mem::zeroed() }
28954 }
28955}
28956#[repr(C)]
28957#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
28958pub struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
28959 pub IAVertices: u64,
28960 pub IAPrimitives: u64,
28961 pub VSInvocations: u64,
28962 pub GSInvocations: u64,
28963 pub GSPrimitives: u64,
28964 pub CInvocations: u64,
28965 pub CPrimitives: u64,
28966 pub PSInvocations: u64,
28967 pub HSInvocations: u64,
28968 pub DSInvocations: u64,
28969 pub CSInvocations: u64,
28970 pub ASInvocations: u64,
28971 pub MSInvocations: u64,
28972 pub MSPrimitives: u64,
28973}
28974impl ::core::marker::Copy for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {}
28975impl ::core::clone::Clone for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
28976 fn clone(&self) -> Self {
28977 *self
28978 }
28979}
28980impl ::core::fmt::Debug for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
28981 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
28982 f.debug_struct("D3D12_QUERY_DATA_PIPELINE_STATISTICS1")
28983 .field("IAVertices", &self.IAVertices)
28984 .field("IAPrimitives", &self.IAPrimitives)
28985 .field("VSInvocations", &self.VSInvocations)
28986 .field("GSInvocations", &self.GSInvocations)
28987 .field("GSPrimitives", &self.GSPrimitives)
28988 .field("CInvocations", &self.CInvocations)
28989 .field("CPrimitives", &self.CPrimitives)
28990 .field("PSInvocations", &self.PSInvocations)
28991 .field("HSInvocations", &self.HSInvocations)
28992 .field("DSInvocations", &self.DSInvocations)
28993 .field("CSInvocations", &self.CSInvocations)
28994 .field("ASInvocations", &self.ASInvocations)
28995 .field("MSInvocations", &self.MSInvocations)
28996 .field("MSPrimitives", &self.MSPrimitives)
28997 .finish()
28998 }
28999}
29000impl ::windows::core::TypeKind for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
29001 type TypeKind = ::windows::core::CopyType;
29002}
29003impl ::core::cmp::PartialEq for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
29004 fn eq(&self, other: &Self) -> bool {
29005 self.IAVertices == other.IAVertices && self.IAPrimitives == other.IAPrimitives && self.VSInvocations == other.VSInvocations && self.GSInvocations == other.GSInvocations && self.GSPrimitives == other.GSPrimitives && self.CInvocations == other.CInvocations && self.CPrimitives == other.CPrimitives && self.PSInvocations == other.PSInvocations && self.HSInvocations == other.HSInvocations && self.DSInvocations == other.DSInvocations && self.CSInvocations == other.CSInvocations && self.ASInvocations == other.ASInvocations && self.MSInvocations == other.MSInvocations && self.MSPrimitives == other.MSPrimitives
29006 }
29007}
29008impl ::core::cmp::Eq for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {}
29009impl ::core::default::Default for D3D12_QUERY_DATA_PIPELINE_STATISTICS1 {
29010 fn default() -> Self {
29011 unsafe { ::core::mem::zeroed() }
29012 }
29013}
29014#[repr(C)]
29015#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29016pub struct D3D12_QUERY_DATA_SO_STATISTICS {
29017 pub NumPrimitivesWritten: u64,
29018 pub PrimitivesStorageNeeded: u64,
29019}
29020impl ::core::marker::Copy for D3D12_QUERY_DATA_SO_STATISTICS {}
29021impl ::core::clone::Clone for D3D12_QUERY_DATA_SO_STATISTICS {
29022 fn clone(&self) -> Self {
29023 *self
29024 }
29025}
29026impl ::core::fmt::Debug for D3D12_QUERY_DATA_SO_STATISTICS {
29027 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29028 f.debug_struct("D3D12_QUERY_DATA_SO_STATISTICS").field("NumPrimitivesWritten", &self.NumPrimitivesWritten).field("PrimitivesStorageNeeded", &self.PrimitivesStorageNeeded).finish()
29029 }
29030}
29031impl ::windows::core::TypeKind for D3D12_QUERY_DATA_SO_STATISTICS {
29032 type TypeKind = ::windows::core::CopyType;
29033}
29034impl ::core::cmp::PartialEq for D3D12_QUERY_DATA_SO_STATISTICS {
29035 fn eq(&self, other: &Self) -> bool {
29036 self.NumPrimitivesWritten == other.NumPrimitivesWritten && self.PrimitivesStorageNeeded == other.PrimitivesStorageNeeded
29037 }
29038}
29039impl ::core::cmp::Eq for D3D12_QUERY_DATA_SO_STATISTICS {}
29040impl ::core::default::Default for D3D12_QUERY_DATA_SO_STATISTICS {
29041 fn default() -> Self {
29042 unsafe { ::core::mem::zeroed() }
29043 }
29044}
29045#[repr(C)]
29046#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29047pub struct D3D12_QUERY_HEAP_DESC {
29048 pub Type: D3D12_QUERY_HEAP_TYPE,
29049 pub Count: u32,
29050 pub NodeMask: u32,
29051}
29052impl ::core::marker::Copy for D3D12_QUERY_HEAP_DESC {}
29053impl ::core::clone::Clone for D3D12_QUERY_HEAP_DESC {
29054 fn clone(&self) -> Self {
29055 *self
29056 }
29057}
29058impl ::core::fmt::Debug for D3D12_QUERY_HEAP_DESC {
29059 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29060 f.debug_struct("D3D12_QUERY_HEAP_DESC").field("Type", &self.Type).field("Count", &self.Count).field("NodeMask", &self.NodeMask).finish()
29061 }
29062}
29063impl ::windows::core::TypeKind for D3D12_QUERY_HEAP_DESC {
29064 type TypeKind = ::windows::core::CopyType;
29065}
29066impl ::core::cmp::PartialEq for D3D12_QUERY_HEAP_DESC {
29067 fn eq(&self, other: &Self) -> bool {
29068 self.Type == other.Type && self.Count == other.Count && self.NodeMask == other.NodeMask
29069 }
29070}
29071impl ::core::cmp::Eq for D3D12_QUERY_HEAP_DESC {}
29072impl ::core::default::Default for D3D12_QUERY_HEAP_DESC {
29073 fn default() -> Self {
29074 unsafe { ::core::mem::zeroed() }
29075 }
29076}
29077#[repr(C)]
29078#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29079pub struct D3D12_RANGE {
29080 pub Begin: usize,
29081 pub End: usize,
29082}
29083impl ::core::marker::Copy for D3D12_RANGE {}
29084impl ::core::clone::Clone for D3D12_RANGE {
29085 fn clone(&self) -> Self {
29086 *self
29087 }
29088}
29089impl ::core::fmt::Debug for D3D12_RANGE {
29090 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29091 f.debug_struct("D3D12_RANGE").field("Begin", &self.Begin).field("End", &self.End).finish()
29092 }
29093}
29094impl ::windows::core::TypeKind for D3D12_RANGE {
29095 type TypeKind = ::windows::core::CopyType;
29096}
29097impl ::core::cmp::PartialEq for D3D12_RANGE {
29098 fn eq(&self, other: &Self) -> bool {
29099 self.Begin == other.Begin && self.End == other.End
29100 }
29101}
29102impl ::core::cmp::Eq for D3D12_RANGE {}
29103impl ::core::default::Default for D3D12_RANGE {
29104 fn default() -> Self {
29105 unsafe { ::core::mem::zeroed() }
29106 }
29107}
29108#[repr(C)]
29109#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29110pub struct D3D12_RANGE_UINT64 {
29111 pub Begin: u64,
29112 pub End: u64,
29113}
29114impl ::core::marker::Copy for D3D12_RANGE_UINT64 {}
29115impl ::core::clone::Clone for D3D12_RANGE_UINT64 {
29116 fn clone(&self) -> Self {
29117 *self
29118 }
29119}
29120impl ::core::fmt::Debug for D3D12_RANGE_UINT64 {
29121 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29122 f.debug_struct("D3D12_RANGE_UINT64").field("Begin", &self.Begin).field("End", &self.End).finish()
29123 }
29124}
29125impl ::windows::core::TypeKind for D3D12_RANGE_UINT64 {
29126 type TypeKind = ::windows::core::CopyType;
29127}
29128impl ::core::cmp::PartialEq for D3D12_RANGE_UINT64 {
29129 fn eq(&self, other: &Self) -> bool {
29130 self.Begin == other.Begin && self.End == other.End
29131 }
29132}
29133impl ::core::cmp::Eq for D3D12_RANGE_UINT64 {}
29134impl ::core::default::Default for D3D12_RANGE_UINT64 {
29135 fn default() -> Self {
29136 unsafe { ::core::mem::zeroed() }
29137 }
29138}
29139#[repr(C)]
29140#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
29141#[cfg(feature = "Win32_Foundation")]
29142pub struct D3D12_RASTERIZER_DESC {
29143 pub FillMode: D3D12_FILL_MODE,
29144 pub CullMode: D3D12_CULL_MODE,
29145 pub FrontCounterClockwise: super::super::Foundation::BOOL,
29146 pub DepthBias: i32,
29147 pub DepthBiasClamp: f32,
29148 pub SlopeScaledDepthBias: f32,
29149 pub DepthClipEnable: super::super::Foundation::BOOL,
29150 pub MultisampleEnable: super::super::Foundation::BOOL,
29151 pub AntialiasedLineEnable: super::super::Foundation::BOOL,
29152 pub ForcedSampleCount: u32,
29153 pub ConservativeRaster: D3D12_CONSERVATIVE_RASTERIZATION_MODE,
29154}
29155#[cfg(feature = "Win32_Foundation")]
29156impl ::core::marker::Copy for D3D12_RASTERIZER_DESC {}
29157#[cfg(feature = "Win32_Foundation")]
29158impl ::core::clone::Clone for D3D12_RASTERIZER_DESC {
29159 fn clone(&self) -> Self {
29160 *self
29161 }
29162}
29163#[cfg(feature = "Win32_Foundation")]
29164impl ::core::fmt::Debug for D3D12_RASTERIZER_DESC {
29165 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29166 f.debug_struct("D3D12_RASTERIZER_DESC")
29167 .field("FillMode", &self.FillMode)
29168 .field("CullMode", &self.CullMode)
29169 .field("FrontCounterClockwise", &self.FrontCounterClockwise)
29170 .field("DepthBias", &self.DepthBias)
29171 .field("DepthBiasClamp", &self.DepthBiasClamp)
29172 .field("SlopeScaledDepthBias", &self.SlopeScaledDepthBias)
29173 .field("DepthClipEnable", &self.DepthClipEnable)
29174 .field("MultisampleEnable", &self.MultisampleEnable)
29175 .field("AntialiasedLineEnable", &self.AntialiasedLineEnable)
29176 .field("ForcedSampleCount", &self.ForcedSampleCount)
29177 .field("ConservativeRaster", &self.ConservativeRaster)
29178 .finish()
29179 }
29180}
29181#[cfg(feature = "Win32_Foundation")]
29182impl ::windows::core::TypeKind for D3D12_RASTERIZER_DESC {
29183 type TypeKind = ::windows::core::CopyType;
29184}
29185#[cfg(feature = "Win32_Foundation")]
29186impl ::core::cmp::PartialEq for D3D12_RASTERIZER_DESC {
29187 fn eq(&self, other: &Self) -> bool {
29188 self.FillMode == other.FillMode && self.CullMode == other.CullMode && self.FrontCounterClockwise == other.FrontCounterClockwise && self.DepthBias == other.DepthBias && self.DepthBiasClamp == other.DepthBiasClamp && self.SlopeScaledDepthBias == other.SlopeScaledDepthBias && self.DepthClipEnable == other.DepthClipEnable && self.MultisampleEnable == other.MultisampleEnable && self.AntialiasedLineEnable == other.AntialiasedLineEnable && self.ForcedSampleCount == other.ForcedSampleCount && self.ConservativeRaster == other.ConservativeRaster
29189 }
29190}
29191#[cfg(feature = "Win32_Foundation")]
29192impl ::core::cmp::Eq for D3D12_RASTERIZER_DESC {}
29193#[cfg(feature = "Win32_Foundation")]
29194impl ::core::default::Default for D3D12_RASTERIZER_DESC {
29195 fn default() -> Self {
29196 unsafe { ::core::mem::zeroed() }
29197 }
29198}
29199#[repr(C)]
29200#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
29201#[cfg(feature = "Win32_Foundation")]
29202pub struct D3D12_RASTERIZER_DESC1 {
29203 pub FillMode: D3D12_FILL_MODE,
29204 pub CullMode: D3D12_CULL_MODE,
29205 pub FrontCounterClockwise: super::super::Foundation::BOOL,
29206 pub DepthBias: f32,
29207 pub DepthBiasClamp: f32,
29208 pub SlopeScaledDepthBias: f32,
29209 pub DepthClipEnable: super::super::Foundation::BOOL,
29210 pub MultisampleEnable: super::super::Foundation::BOOL,
29211 pub AntialiasedLineEnable: super::super::Foundation::BOOL,
29212 pub ForcedSampleCount: u32,
29213 pub ConservativeRaster: D3D12_CONSERVATIVE_RASTERIZATION_MODE,
29214}
29215#[cfg(feature = "Win32_Foundation")]
29216impl ::core::marker::Copy for D3D12_RASTERIZER_DESC1 {}
29217#[cfg(feature = "Win32_Foundation")]
29218impl ::core::clone::Clone for D3D12_RASTERIZER_DESC1 {
29219 fn clone(&self) -> Self {
29220 *self
29221 }
29222}
29223#[cfg(feature = "Win32_Foundation")]
29224impl ::core::fmt::Debug for D3D12_RASTERIZER_DESC1 {
29225 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29226 f.debug_struct("D3D12_RASTERIZER_DESC1")
29227 .field("FillMode", &self.FillMode)
29228 .field("CullMode", &self.CullMode)
29229 .field("FrontCounterClockwise", &self.FrontCounterClockwise)
29230 .field("DepthBias", &self.DepthBias)
29231 .field("DepthBiasClamp", &self.DepthBiasClamp)
29232 .field("SlopeScaledDepthBias", &self.SlopeScaledDepthBias)
29233 .field("DepthClipEnable", &self.DepthClipEnable)
29234 .field("MultisampleEnable", &self.MultisampleEnable)
29235 .field("AntialiasedLineEnable", &self.AntialiasedLineEnable)
29236 .field("ForcedSampleCount", &self.ForcedSampleCount)
29237 .field("ConservativeRaster", &self.ConservativeRaster)
29238 .finish()
29239 }
29240}
29241#[cfg(feature = "Win32_Foundation")]
29242impl ::windows::core::TypeKind for D3D12_RASTERIZER_DESC1 {
29243 type TypeKind = ::windows::core::CopyType;
29244}
29245#[cfg(feature = "Win32_Foundation")]
29246impl ::core::cmp::PartialEq for D3D12_RASTERIZER_DESC1 {
29247 fn eq(&self, other: &Self) -> bool {
29248 self.FillMode == other.FillMode && self.CullMode == other.CullMode && self.FrontCounterClockwise == other.FrontCounterClockwise && self.DepthBias == other.DepthBias && self.DepthBiasClamp == other.DepthBiasClamp && self.SlopeScaledDepthBias == other.SlopeScaledDepthBias && self.DepthClipEnable == other.DepthClipEnable && self.MultisampleEnable == other.MultisampleEnable && self.AntialiasedLineEnable == other.AntialiasedLineEnable && self.ForcedSampleCount == other.ForcedSampleCount && self.ConservativeRaster == other.ConservativeRaster
29249 }
29250}
29251#[cfg(feature = "Win32_Foundation")]
29252impl ::core::cmp::Eq for D3D12_RASTERIZER_DESC1 {}
29253#[cfg(feature = "Win32_Foundation")]
29254impl ::core::default::Default for D3D12_RASTERIZER_DESC1 {
29255 fn default() -> Self {
29256 unsafe { ::core::mem::zeroed() }
29257 }
29258}
29259#[repr(C)]
29260#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29261pub struct D3D12_RAYTRACING_AABB {
29262 pub MinX: f32,
29263 pub MinY: f32,
29264 pub MinZ: f32,
29265 pub MaxX: f32,
29266 pub MaxY: f32,
29267 pub MaxZ: f32,
29268}
29269impl ::core::marker::Copy for D3D12_RAYTRACING_AABB {}
29270impl ::core::clone::Clone for D3D12_RAYTRACING_AABB {
29271 fn clone(&self) -> Self {
29272 *self
29273 }
29274}
29275impl ::core::fmt::Debug for D3D12_RAYTRACING_AABB {
29276 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29277 f.debug_struct("D3D12_RAYTRACING_AABB").field("MinX", &self.MinX).field("MinY", &self.MinY).field("MinZ", &self.MinZ).field("MaxX", &self.MaxX).field("MaxY", &self.MaxY).field("MaxZ", &self.MaxZ).finish()
29278 }
29279}
29280impl ::windows::core::TypeKind for D3D12_RAYTRACING_AABB {
29281 type TypeKind = ::windows::core::CopyType;
29282}
29283impl ::core::cmp::PartialEq for D3D12_RAYTRACING_AABB {
29284 fn eq(&self, other: &Self) -> bool {
29285 self.MinX == other.MinX && self.MinY == other.MinY && self.MinZ == other.MinZ && self.MaxX == other.MaxX && self.MaxY == other.MaxY && self.MaxZ == other.MaxZ
29286 }
29287}
29288impl ::core::cmp::Eq for D3D12_RAYTRACING_AABB {}
29289impl ::core::default::Default for D3D12_RAYTRACING_AABB {
29290 fn default() -> Self {
29291 unsafe { ::core::mem::zeroed() }
29292 }
29293}
29294#[repr(C)]
29295#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29296pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
29297 pub CompactedSizeInBytes: u64,
29298}
29299impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {}
29300impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
29301 fn clone(&self) -> Self {
29302 *self
29303 }
29304}
29305impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
29306 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29307 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC").field("CompactedSizeInBytes", &self.CompactedSizeInBytes).finish()
29308 }
29309}
29310impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
29311 type TypeKind = ::windows::core::CopyType;
29312}
29313impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
29314 fn eq(&self, other: &Self) -> bool {
29315 self.CompactedSizeInBytes == other.CompactedSizeInBytes
29316 }
29317}
29318impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {}
29319impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC {
29320 fn default() -> Self {
29321 unsafe { ::core::mem::zeroed() }
29322 }
29323}
29324#[repr(C)]
29325#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29326pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
29327 pub CurrentSizeInBytes: u64,
29328}
29329impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {}
29330impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
29331 fn clone(&self) -> Self {
29332 *self
29333 }
29334}
29335impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
29336 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29337 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC").field("CurrentSizeInBytes", &self.CurrentSizeInBytes).finish()
29338 }
29339}
29340impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
29341 type TypeKind = ::windows::core::CopyType;
29342}
29343impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
29344 fn eq(&self, other: &Self) -> bool {
29345 self.CurrentSizeInBytes == other.CurrentSizeInBytes
29346 }
29347}
29348impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {}
29349impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC {
29350 fn default() -> Self {
29351 unsafe { ::core::mem::zeroed() }
29352 }
29353}
29354#[repr(C)]
29355#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29356pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
29357 pub DestBuffer: u64,
29358 pub InfoType: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE,
29359}
29360impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {}
29361impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
29362 fn clone(&self) -> Self {
29363 *self
29364 }
29365}
29366impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
29367 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29368 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC").field("DestBuffer", &self.DestBuffer).field("InfoType", &self.InfoType).finish()
29369 }
29370}
29371impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
29372 type TypeKind = ::windows::core::CopyType;
29373}
29374impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
29375 fn eq(&self, other: &Self) -> bool {
29376 self.DestBuffer == other.DestBuffer && self.InfoType == other.InfoType
29377 }
29378}
29379impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {}
29380impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC {
29381 fn default() -> Self {
29382 unsafe { ::core::mem::zeroed() }
29383 }
29384}
29385#[repr(C)]
29386#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29387pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
29388 pub SerializedSizeInBytes: u64,
29389 pub NumBottomLevelAccelerationStructurePointers: u64,
29390}
29391impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {}
29392impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
29393 fn clone(&self) -> Self {
29394 *self
29395 }
29396}
29397impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
29398 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29399 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC").field("SerializedSizeInBytes", &self.SerializedSizeInBytes).field("NumBottomLevelAccelerationStructurePointers", &self.NumBottomLevelAccelerationStructurePointers).finish()
29400 }
29401}
29402impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
29403 type TypeKind = ::windows::core::CopyType;
29404}
29405impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
29406 fn eq(&self, other: &Self) -> bool {
29407 self.SerializedSizeInBytes == other.SerializedSizeInBytes && self.NumBottomLevelAccelerationStructurePointers == other.NumBottomLevelAccelerationStructurePointers
29408 }
29409}
29410impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {}
29411impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC {
29412 fn default() -> Self {
29413 unsafe { ::core::mem::zeroed() }
29414 }
29415}
29416#[repr(C)]
29417#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29418pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
29419 pub DecodedSizeInBytes: u64,
29420}
29421impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {}
29422impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
29423 fn clone(&self) -> Self {
29424 *self
29425 }
29426}
29427impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
29428 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29429 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC").field("DecodedSizeInBytes", &self.DecodedSizeInBytes).finish()
29430 }
29431}
29432impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
29433 type TypeKind = ::windows::core::CopyType;
29434}
29435impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
29436 fn eq(&self, other: &Self) -> bool {
29437 self.DecodedSizeInBytes == other.DecodedSizeInBytes
29438 }
29439}
29440impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {}
29441impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC {
29442 fn default() -> Self {
29443 unsafe { ::core::mem::zeroed() }
29444 }
29445}
29446#[repr(C)]
29447#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29448pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
29449 pub ResultDataMaxSizeInBytes: u64,
29450 pub ScratchDataSizeInBytes: u64,
29451 pub UpdateScratchDataSizeInBytes: u64,
29452}
29453impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {}
29454impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
29455 fn clone(&self) -> Self {
29456 *self
29457 }
29458}
29459impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
29460 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29461 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO").field("ResultDataMaxSizeInBytes", &self.ResultDataMaxSizeInBytes).field("ScratchDataSizeInBytes", &self.ScratchDataSizeInBytes).field("UpdateScratchDataSizeInBytes", &self.UpdateScratchDataSizeInBytes).finish()
29462 }
29463}
29464impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
29465 type TypeKind = ::windows::core::CopyType;
29466}
29467impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
29468 fn eq(&self, other: &Self) -> bool {
29469 self.ResultDataMaxSizeInBytes == other.ResultDataMaxSizeInBytes && self.ScratchDataSizeInBytes == other.ScratchDataSizeInBytes && self.UpdateScratchDataSizeInBytes == other.UpdateScratchDataSizeInBytes
29470 }
29471}
29472impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {}
29473impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO {
29474 fn default() -> Self {
29475 unsafe { ::core::mem::zeroed() }
29476 }
29477}
29478#[repr(C)]
29479#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29480pub struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
29481 pub Location: u64,
29482}
29483impl ::core::marker::Copy for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {}
29484impl ::core::clone::Clone for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
29485 fn clone(&self) -> Self {
29486 *self
29487 }
29488}
29489impl ::core::fmt::Debug for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
29490 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29491 f.debug_struct("D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV").field("Location", &self.Location).finish()
29492 }
29493}
29494impl ::windows::core::TypeKind for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
29495 type TypeKind = ::windows::core::CopyType;
29496}
29497impl ::core::cmp::PartialEq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
29498 fn eq(&self, other: &Self) -> bool {
29499 self.Location == other.Location
29500 }
29501}
29502impl ::core::cmp::Eq for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {}
29503impl ::core::default::Default for D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV {
29504 fn default() -> Self {
29505 unsafe { ::core::mem::zeroed() }
29506 }
29507}
29508#[repr(C)]
29509#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29510pub struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
29511 pub AABBCount: u64,
29512 pub AABBs: D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE,
29513}
29514impl ::core::marker::Copy for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {}
29515impl ::core::clone::Clone for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
29516 fn clone(&self) -> Self {
29517 *self
29518 }
29519}
29520impl ::core::fmt::Debug for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
29521 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29522 f.debug_struct("D3D12_RAYTRACING_GEOMETRY_AABBS_DESC").field("AABBCount", &self.AABBCount).field("AABBs", &self.AABBs).finish()
29523 }
29524}
29525impl ::windows::core::TypeKind for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
29526 type TypeKind = ::windows::core::CopyType;
29527}
29528impl ::core::cmp::PartialEq for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
29529 fn eq(&self, other: &Self) -> bool {
29530 self.AABBCount == other.AABBCount && self.AABBs == other.AABBs
29531 }
29532}
29533impl ::core::cmp::Eq for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {}
29534impl ::core::default::Default for D3D12_RAYTRACING_GEOMETRY_AABBS_DESC {
29535 fn default() -> Self {
29536 unsafe { ::core::mem::zeroed() }
29537 }
29538}
29539#[repr(C)]
29540#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29541#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29542pub struct D3D12_RAYTRACING_GEOMETRY_DESC {
29543 pub Type: D3D12_RAYTRACING_GEOMETRY_TYPE,
29544 pub Flags: D3D12_RAYTRACING_GEOMETRY_FLAGS,
29545 pub Anonymous: D3D12_RAYTRACING_GEOMETRY_DESC_0,
29546}
29547#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29548impl ::core::marker::Copy for D3D12_RAYTRACING_GEOMETRY_DESC {}
29549#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29550impl ::core::clone::Clone for D3D12_RAYTRACING_GEOMETRY_DESC {
29551 fn clone(&self) -> Self {
29552 *self
29553 }
29554}
29555#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29556impl ::windows::core::TypeKind for D3D12_RAYTRACING_GEOMETRY_DESC {
29557 type TypeKind = ::windows::core::CopyType;
29558}
29559#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29560impl ::core::default::Default for D3D12_RAYTRACING_GEOMETRY_DESC {
29561 fn default() -> Self {
29562 unsafe { ::core::mem::zeroed() }
29563 }
29564}
29565#[repr(C)]
29566#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29567#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29568pub union D3D12_RAYTRACING_GEOMETRY_DESC_0 {
29569 pub Triangles: D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC,
29570 pub AABBs: D3D12_RAYTRACING_GEOMETRY_AABBS_DESC,
29571}
29572#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29573impl ::core::marker::Copy for D3D12_RAYTRACING_GEOMETRY_DESC_0 {}
29574#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29575impl ::core::clone::Clone for D3D12_RAYTRACING_GEOMETRY_DESC_0 {
29576 fn clone(&self) -> Self {
29577 *self
29578 }
29579}
29580#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29581impl ::windows::core::TypeKind for D3D12_RAYTRACING_GEOMETRY_DESC_0 {
29582 type TypeKind = ::windows::core::CopyType;
29583}
29584#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29585impl ::core::default::Default for D3D12_RAYTRACING_GEOMETRY_DESC_0 {
29586 fn default() -> Self {
29587 unsafe { ::core::mem::zeroed() }
29588 }
29589}
29590#[repr(C)]
29591#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29592#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29593pub struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
29594 pub Transform3x4: u64,
29595 pub IndexFormat: super::Dxgi::Common::DXGI_FORMAT,
29596 pub VertexFormat: super::Dxgi::Common::DXGI_FORMAT,
29597 pub IndexCount: u32,
29598 pub VertexCount: u32,
29599 pub IndexBuffer: u64,
29600 pub VertexBuffer: D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE,
29601}
29602#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29603impl ::core::marker::Copy for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {}
29604#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29605impl ::core::clone::Clone for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
29606 fn clone(&self) -> Self {
29607 *self
29608 }
29609}
29610#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29611impl ::core::fmt::Debug for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
29612 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29613 f.debug_struct("D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC").field("Transform3x4", &self.Transform3x4).field("IndexFormat", &self.IndexFormat).field("VertexFormat", &self.VertexFormat).field("IndexCount", &self.IndexCount).field("VertexCount", &self.VertexCount).field("IndexBuffer", &self.IndexBuffer).field("VertexBuffer", &self.VertexBuffer).finish()
29614 }
29615}
29616#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29617impl ::windows::core::TypeKind for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
29618 type TypeKind = ::windows::core::CopyType;
29619}
29620#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29621impl ::core::cmp::PartialEq for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
29622 fn eq(&self, other: &Self) -> bool {
29623 self.Transform3x4 == other.Transform3x4 && self.IndexFormat == other.IndexFormat && self.VertexFormat == other.VertexFormat && self.IndexCount == other.IndexCount && self.VertexCount == other.VertexCount && self.IndexBuffer == other.IndexBuffer && self.VertexBuffer == other.VertexBuffer
29624 }
29625}
29626#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29627impl ::core::cmp::Eq for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {}
29628#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29629impl ::core::default::Default for D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC {
29630 fn default() -> Self {
29631 unsafe { ::core::mem::zeroed() }
29632 }
29633}
29634#[repr(C)]
29635#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29636pub struct D3D12_RAYTRACING_INSTANCE_DESC {
29637 pub Transform: [f32; 12],
29638 pub _bitfield1: u32,
29639 pub _bitfield2: u32,
29640 pub AccelerationStructure: u64,
29641}
29642impl ::core::marker::Copy for D3D12_RAYTRACING_INSTANCE_DESC {}
29643impl ::core::clone::Clone for D3D12_RAYTRACING_INSTANCE_DESC {
29644 fn clone(&self) -> Self {
29645 *self
29646 }
29647}
29648impl ::core::fmt::Debug for D3D12_RAYTRACING_INSTANCE_DESC {
29649 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29650 f.debug_struct("D3D12_RAYTRACING_INSTANCE_DESC").field("Transform", &self.Transform).field("_bitfield1", &self._bitfield1).field("_bitfield2", &self._bitfield2).field("AccelerationStructure", &self.AccelerationStructure).finish()
29651 }
29652}
29653impl ::windows::core::TypeKind for D3D12_RAYTRACING_INSTANCE_DESC {
29654 type TypeKind = ::windows::core::CopyType;
29655}
29656impl ::core::cmp::PartialEq for D3D12_RAYTRACING_INSTANCE_DESC {
29657 fn eq(&self, other: &Self) -> bool {
29658 self.Transform == other.Transform && self._bitfield1 == other._bitfield1 && self._bitfield2 == other._bitfield2 && self.AccelerationStructure == other.AccelerationStructure
29659 }
29660}
29661impl ::core::cmp::Eq for D3D12_RAYTRACING_INSTANCE_DESC {}
29662impl ::core::default::Default for D3D12_RAYTRACING_INSTANCE_DESC {
29663 fn default() -> Self {
29664 unsafe { ::core::mem::zeroed() }
29665 }
29666}
29667#[repr(C)]
29668#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29669pub struct D3D12_RAYTRACING_PIPELINE_CONFIG {
29670 pub MaxTraceRecursionDepth: u32,
29671}
29672impl ::core::marker::Copy for D3D12_RAYTRACING_PIPELINE_CONFIG {}
29673impl ::core::clone::Clone for D3D12_RAYTRACING_PIPELINE_CONFIG {
29674 fn clone(&self) -> Self {
29675 *self
29676 }
29677}
29678impl ::core::fmt::Debug for D3D12_RAYTRACING_PIPELINE_CONFIG {
29679 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29680 f.debug_struct("D3D12_RAYTRACING_PIPELINE_CONFIG").field("MaxTraceRecursionDepth", &self.MaxTraceRecursionDepth).finish()
29681 }
29682}
29683impl ::windows::core::TypeKind for D3D12_RAYTRACING_PIPELINE_CONFIG {
29684 type TypeKind = ::windows::core::CopyType;
29685}
29686impl ::core::cmp::PartialEq for D3D12_RAYTRACING_PIPELINE_CONFIG {
29687 fn eq(&self, other: &Self) -> bool {
29688 self.MaxTraceRecursionDepth == other.MaxTraceRecursionDepth
29689 }
29690}
29691impl ::core::cmp::Eq for D3D12_RAYTRACING_PIPELINE_CONFIG {}
29692impl ::core::default::Default for D3D12_RAYTRACING_PIPELINE_CONFIG {
29693 fn default() -> Self {
29694 unsafe { ::core::mem::zeroed() }
29695 }
29696}
29697#[repr(C)]
29698#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29699pub struct D3D12_RAYTRACING_PIPELINE_CONFIG1 {
29700 pub MaxTraceRecursionDepth: u32,
29701 pub Flags: D3D12_RAYTRACING_PIPELINE_FLAGS,
29702}
29703impl ::core::marker::Copy for D3D12_RAYTRACING_PIPELINE_CONFIG1 {}
29704impl ::core::clone::Clone for D3D12_RAYTRACING_PIPELINE_CONFIG1 {
29705 fn clone(&self) -> Self {
29706 *self
29707 }
29708}
29709impl ::core::fmt::Debug for D3D12_RAYTRACING_PIPELINE_CONFIG1 {
29710 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29711 f.debug_struct("D3D12_RAYTRACING_PIPELINE_CONFIG1").field("MaxTraceRecursionDepth", &self.MaxTraceRecursionDepth).field("Flags", &self.Flags).finish()
29712 }
29713}
29714impl ::windows::core::TypeKind for D3D12_RAYTRACING_PIPELINE_CONFIG1 {
29715 type TypeKind = ::windows::core::CopyType;
29716}
29717impl ::core::cmp::PartialEq for D3D12_RAYTRACING_PIPELINE_CONFIG1 {
29718 fn eq(&self, other: &Self) -> bool {
29719 self.MaxTraceRecursionDepth == other.MaxTraceRecursionDepth && self.Flags == other.Flags
29720 }
29721}
29722impl ::core::cmp::Eq for D3D12_RAYTRACING_PIPELINE_CONFIG1 {}
29723impl ::core::default::Default for D3D12_RAYTRACING_PIPELINE_CONFIG1 {
29724 fn default() -> Self {
29725 unsafe { ::core::mem::zeroed() }
29726 }
29727}
29728#[repr(C)]
29729#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
29730pub struct D3D12_RAYTRACING_SHADER_CONFIG {
29731 pub MaxPayloadSizeInBytes: u32,
29732 pub MaxAttributeSizeInBytes: u32,
29733}
29734impl ::core::marker::Copy for D3D12_RAYTRACING_SHADER_CONFIG {}
29735impl ::core::clone::Clone for D3D12_RAYTRACING_SHADER_CONFIG {
29736 fn clone(&self) -> Self {
29737 *self
29738 }
29739}
29740impl ::core::fmt::Debug for D3D12_RAYTRACING_SHADER_CONFIG {
29741 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29742 f.debug_struct("D3D12_RAYTRACING_SHADER_CONFIG").field("MaxPayloadSizeInBytes", &self.MaxPayloadSizeInBytes).field("MaxAttributeSizeInBytes", &self.MaxAttributeSizeInBytes).finish()
29743 }
29744}
29745impl ::windows::core::TypeKind for D3D12_RAYTRACING_SHADER_CONFIG {
29746 type TypeKind = ::windows::core::CopyType;
29747}
29748impl ::core::cmp::PartialEq for D3D12_RAYTRACING_SHADER_CONFIG {
29749 fn eq(&self, other: &Self) -> bool {
29750 self.MaxPayloadSizeInBytes == other.MaxPayloadSizeInBytes && self.MaxAttributeSizeInBytes == other.MaxAttributeSizeInBytes
29751 }
29752}
29753impl ::core::cmp::Eq for D3D12_RAYTRACING_SHADER_CONFIG {}
29754impl ::core::default::Default for D3D12_RAYTRACING_SHADER_CONFIG {
29755 fn default() -> Self {
29756 unsafe { ::core::mem::zeroed() }
29757 }
29758}
29759#[repr(C)]
29760#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29761#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29762pub struct D3D12_RENDER_PASS_BEGINNING_ACCESS {
29763 pub Type: D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE,
29764 pub Anonymous: D3D12_RENDER_PASS_BEGINNING_ACCESS_0,
29765}
29766#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29767impl ::core::marker::Copy for D3D12_RENDER_PASS_BEGINNING_ACCESS {}
29768#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29769impl ::core::clone::Clone for D3D12_RENDER_PASS_BEGINNING_ACCESS {
29770 fn clone(&self) -> Self {
29771 *self
29772 }
29773}
29774#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29775impl ::windows::core::TypeKind for D3D12_RENDER_PASS_BEGINNING_ACCESS {
29776 type TypeKind = ::windows::core::CopyType;
29777}
29778#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29779impl ::core::default::Default for D3D12_RENDER_PASS_BEGINNING_ACCESS {
29780 fn default() -> Self {
29781 unsafe { ::core::mem::zeroed() }
29782 }
29783}
29784#[repr(C)]
29785#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29786#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29787pub union D3D12_RENDER_PASS_BEGINNING_ACCESS_0 {
29788 pub Clear: D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS,
29789}
29790#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29791impl ::core::marker::Copy for D3D12_RENDER_PASS_BEGINNING_ACCESS_0 {}
29792#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29793impl ::core::clone::Clone for D3D12_RENDER_PASS_BEGINNING_ACCESS_0 {
29794 fn clone(&self) -> Self {
29795 *self
29796 }
29797}
29798#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29799impl ::windows::core::TypeKind for D3D12_RENDER_PASS_BEGINNING_ACCESS_0 {
29800 type TypeKind = ::windows::core::CopyType;
29801}
29802#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29803impl ::core::default::Default for D3D12_RENDER_PASS_BEGINNING_ACCESS_0 {
29804 fn default() -> Self {
29805 unsafe { ::core::mem::zeroed() }
29806 }
29807}
29808#[repr(C)]
29809#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29810#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29811pub struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
29812 pub ClearValue: D3D12_CLEAR_VALUE,
29813}
29814#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29815impl ::core::marker::Copy for D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {}
29816#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29817impl ::core::clone::Clone for D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
29818 fn clone(&self) -> Self {
29819 *self
29820 }
29821}
29822#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29823impl ::windows::core::TypeKind for D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
29824 type TypeKind = ::windows::core::CopyType;
29825}
29826#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
29827impl ::core::default::Default for D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS {
29828 fn default() -> Self {
29829 unsafe { ::core::mem::zeroed() }
29830 }
29831}
29832#[repr(C)]
29833#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29834#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29835pub struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
29836 pub cpuDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
29837 pub DepthBeginningAccess: D3D12_RENDER_PASS_BEGINNING_ACCESS,
29838 pub StencilBeginningAccess: D3D12_RENDER_PASS_BEGINNING_ACCESS,
29839 pub DepthEndingAccess: D3D12_RENDER_PASS_ENDING_ACCESS,
29840 pub StencilEndingAccess: D3D12_RENDER_PASS_ENDING_ACCESS,
29841}
29842#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29843impl ::core::clone::Clone for D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
29844 fn clone(&self) -> Self {
29845 unsafe { ::core::mem::transmute_copy(self) }
29846 }
29847}
29848#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29849impl ::windows::core::TypeKind for D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
29850 type TypeKind = ::windows::core::CopyType;
29851}
29852#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29853impl ::core::default::Default for D3D12_RENDER_PASS_DEPTH_STENCIL_DESC {
29854 fn default() -> Self {
29855 unsafe { ::core::mem::zeroed() }
29856 }
29857}
29858#[repr(C)]
29859#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29860#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29861pub struct D3D12_RENDER_PASS_ENDING_ACCESS {
29862 pub Type: D3D12_RENDER_PASS_ENDING_ACCESS_TYPE,
29863 pub Anonymous: D3D12_RENDER_PASS_ENDING_ACCESS_0,
29864}
29865#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29866impl ::core::clone::Clone for D3D12_RENDER_PASS_ENDING_ACCESS {
29867 fn clone(&self) -> Self {
29868 unsafe { ::core::mem::transmute_copy(self) }
29869 }
29870}
29871#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29872impl ::windows::core::TypeKind for D3D12_RENDER_PASS_ENDING_ACCESS {
29873 type TypeKind = ::windows::core::CopyType;
29874}
29875#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29876impl ::core::default::Default for D3D12_RENDER_PASS_ENDING_ACCESS {
29877 fn default() -> Self {
29878 unsafe { ::core::mem::zeroed() }
29879 }
29880}
29881#[repr(C)]
29882#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29883#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29884pub union D3D12_RENDER_PASS_ENDING_ACCESS_0 {
29885 pub Resolve: ::std::mem::ManuallyDrop<D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS>,
29886}
29887#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29888impl ::core::clone::Clone for D3D12_RENDER_PASS_ENDING_ACCESS_0 {
29889 fn clone(&self) -> Self {
29890 unsafe { ::core::mem::transmute_copy(self) }
29891 }
29892}
29893#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29894impl ::windows::core::TypeKind for D3D12_RENDER_PASS_ENDING_ACCESS_0 {
29895 type TypeKind = ::windows::core::CopyType;
29896}
29897#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29898impl ::core::default::Default for D3D12_RENDER_PASS_ENDING_ACCESS_0 {
29899 fn default() -> Self {
29900 unsafe { ::core::mem::zeroed() }
29901 }
29902}
29903#[repr(C)]
29904#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29905#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29906pub struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
29907 pub pSrcResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
29908 pub pDstResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
29909 pub SubresourceCount: u32,
29910 pub pSubresourceParameters: *const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS,
29911 pub Format: super::Dxgi::Common::DXGI_FORMAT,
29912 pub ResolveMode: D3D12_RESOLVE_MODE,
29913 pub PreserveResolveSource: super::super::Foundation::BOOL,
29914}
29915#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29916impl ::core::clone::Clone for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
29917 fn clone(&self) -> Self {
29918 unsafe { ::core::mem::transmute_copy(self) }
29919 }
29920}
29921#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29922impl ::core::fmt::Debug for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
29923 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29924 f.debug_struct("D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS").field("pSrcResource", &self.pSrcResource).field("pDstResource", &self.pDstResource).field("SubresourceCount", &self.SubresourceCount).field("pSubresourceParameters", &self.pSubresourceParameters).field("Format", &self.Format).field("ResolveMode", &self.ResolveMode).field("PreserveResolveSource", &self.PreserveResolveSource).finish()
29925 }
29926}
29927#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29928impl ::windows::core::TypeKind for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
29929 type TypeKind = ::windows::core::CopyType;
29930}
29931#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29932impl ::core::cmp::PartialEq for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
29933 fn eq(&self, other: &Self) -> bool {
29934 self.pSrcResource == other.pSrcResource && self.pDstResource == other.pDstResource && self.SubresourceCount == other.SubresourceCount && self.pSubresourceParameters == other.pSubresourceParameters && self.Format == other.Format && self.ResolveMode == other.ResolveMode && self.PreserveResolveSource == other.PreserveResolveSource
29935 }
29936}
29937#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29938impl ::core::cmp::Eq for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {}
29939#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29940impl ::core::default::Default for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS {
29941 fn default() -> Self {
29942 unsafe { ::core::mem::zeroed() }
29943 }
29944}
29945#[repr(C)]
29946#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
29947#[cfg(feature = "Win32_Foundation")]
29948pub struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
29949 pub SrcSubresource: u32,
29950 pub DstSubresource: u32,
29951 pub DstX: u32,
29952 pub DstY: u32,
29953 pub SrcRect: super::super::Foundation::RECT,
29954}
29955#[cfg(feature = "Win32_Foundation")]
29956impl ::core::marker::Copy for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {}
29957#[cfg(feature = "Win32_Foundation")]
29958impl ::core::clone::Clone for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
29959 fn clone(&self) -> Self {
29960 *self
29961 }
29962}
29963#[cfg(feature = "Win32_Foundation")]
29964impl ::core::fmt::Debug for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
29965 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
29966 f.debug_struct("D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS").field("SrcSubresource", &self.SrcSubresource).field("DstSubresource", &self.DstSubresource).field("DstX", &self.DstX).field("DstY", &self.DstY).field("SrcRect", &self.SrcRect).finish()
29967 }
29968}
29969#[cfg(feature = "Win32_Foundation")]
29970impl ::windows::core::TypeKind for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
29971 type TypeKind = ::windows::core::CopyType;
29972}
29973#[cfg(feature = "Win32_Foundation")]
29974impl ::core::cmp::PartialEq for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
29975 fn eq(&self, other: &Self) -> bool {
29976 self.SrcSubresource == other.SrcSubresource && self.DstSubresource == other.DstSubresource && self.DstX == other.DstX && self.DstY == other.DstY && self.SrcRect == other.SrcRect
29977 }
29978}
29979#[cfg(feature = "Win32_Foundation")]
29980impl ::core::cmp::Eq for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {}
29981#[cfg(feature = "Win32_Foundation")]
29982impl ::core::default::Default for D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS {
29983 fn default() -> Self {
29984 unsafe { ::core::mem::zeroed() }
29985 }
29986}
29987#[repr(C)]
29988#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
29989#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29990pub struct D3D12_RENDER_PASS_RENDER_TARGET_DESC {
29991 pub cpuDescriptor: D3D12_CPU_DESCRIPTOR_HANDLE,
29992 pub BeginningAccess: D3D12_RENDER_PASS_BEGINNING_ACCESS,
29993 pub EndingAccess: D3D12_RENDER_PASS_ENDING_ACCESS,
29994}
29995#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
29996impl ::core::clone::Clone for D3D12_RENDER_PASS_RENDER_TARGET_DESC {
29997 fn clone(&self) -> Self {
29998 unsafe { ::core::mem::transmute_copy(self) }
29999 }
30000}
30001#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
30002impl ::windows::core::TypeKind for D3D12_RENDER_PASS_RENDER_TARGET_DESC {
30003 type TypeKind = ::windows::core::CopyType;
30004}
30005#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
30006impl ::core::default::Default for D3D12_RENDER_PASS_RENDER_TARGET_DESC {
30007 fn default() -> Self {
30008 unsafe { ::core::mem::zeroed() }
30009 }
30010}
30011#[repr(C)]
30012#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
30013#[cfg(feature = "Win32_Foundation")]
30014pub struct D3D12_RENDER_TARGET_BLEND_DESC {
30015 pub BlendEnable: super::super::Foundation::BOOL,
30016 pub LogicOpEnable: super::super::Foundation::BOOL,
30017 pub SrcBlend: D3D12_BLEND,
30018 pub DestBlend: D3D12_BLEND,
30019 pub BlendOp: D3D12_BLEND_OP,
30020 pub SrcBlendAlpha: D3D12_BLEND,
30021 pub DestBlendAlpha: D3D12_BLEND,
30022 pub BlendOpAlpha: D3D12_BLEND_OP,
30023 pub LogicOp: D3D12_LOGIC_OP,
30024 pub RenderTargetWriteMask: u8,
30025}
30026#[cfg(feature = "Win32_Foundation")]
30027impl ::core::marker::Copy for D3D12_RENDER_TARGET_BLEND_DESC {}
30028#[cfg(feature = "Win32_Foundation")]
30029impl ::core::clone::Clone for D3D12_RENDER_TARGET_BLEND_DESC {
30030 fn clone(&self) -> Self {
30031 *self
30032 }
30033}
30034#[cfg(feature = "Win32_Foundation")]
30035impl ::core::fmt::Debug for D3D12_RENDER_TARGET_BLEND_DESC {
30036 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30037 f.debug_struct("D3D12_RENDER_TARGET_BLEND_DESC").field("BlendEnable", &self.BlendEnable).field("LogicOpEnable", &self.LogicOpEnable).field("SrcBlend", &self.SrcBlend).field("DestBlend", &self.DestBlend).field("BlendOp", &self.BlendOp).field("SrcBlendAlpha", &self.SrcBlendAlpha).field("DestBlendAlpha", &self.DestBlendAlpha).field("BlendOpAlpha", &self.BlendOpAlpha).field("LogicOp", &self.LogicOp).field("RenderTargetWriteMask", &self.RenderTargetWriteMask).finish()
30038 }
30039}
30040#[cfg(feature = "Win32_Foundation")]
30041impl ::windows::core::TypeKind for D3D12_RENDER_TARGET_BLEND_DESC {
30042 type TypeKind = ::windows::core::CopyType;
30043}
30044#[cfg(feature = "Win32_Foundation")]
30045impl ::core::cmp::PartialEq for D3D12_RENDER_TARGET_BLEND_DESC {
30046 fn eq(&self, other: &Self) -> bool {
30047 self.BlendEnable == other.BlendEnable && self.LogicOpEnable == other.LogicOpEnable && self.SrcBlend == other.SrcBlend && self.DestBlend == other.DestBlend && self.BlendOp == other.BlendOp && self.SrcBlendAlpha == other.SrcBlendAlpha && self.DestBlendAlpha == other.DestBlendAlpha && self.BlendOpAlpha == other.BlendOpAlpha && self.LogicOp == other.LogicOp && self.RenderTargetWriteMask == other.RenderTargetWriteMask
30048 }
30049}
30050#[cfg(feature = "Win32_Foundation")]
30051impl ::core::cmp::Eq for D3D12_RENDER_TARGET_BLEND_DESC {}
30052#[cfg(feature = "Win32_Foundation")]
30053impl ::core::default::Default for D3D12_RENDER_TARGET_BLEND_DESC {
30054 fn default() -> Self {
30055 unsafe { ::core::mem::zeroed() }
30056 }
30057}
30058#[repr(C)]
30059#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
30060#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30061pub struct D3D12_RENDER_TARGET_VIEW_DESC {
30062 pub Format: super::Dxgi::Common::DXGI_FORMAT,
30063 pub ViewDimension: D3D12_RTV_DIMENSION,
30064 pub Anonymous: D3D12_RENDER_TARGET_VIEW_DESC_0,
30065}
30066#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30067impl ::core::marker::Copy for D3D12_RENDER_TARGET_VIEW_DESC {}
30068#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30069impl ::core::clone::Clone for D3D12_RENDER_TARGET_VIEW_DESC {
30070 fn clone(&self) -> Self {
30071 *self
30072 }
30073}
30074#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30075impl ::windows::core::TypeKind for D3D12_RENDER_TARGET_VIEW_DESC {
30076 type TypeKind = ::windows::core::CopyType;
30077}
30078#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30079impl ::core::default::Default for D3D12_RENDER_TARGET_VIEW_DESC {
30080 fn default() -> Self {
30081 unsafe { ::core::mem::zeroed() }
30082 }
30083}
30084#[repr(C)]
30085#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
30086#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30087pub union D3D12_RENDER_TARGET_VIEW_DESC_0 {
30088 pub Buffer: D3D12_BUFFER_RTV,
30089 pub Texture1D: D3D12_TEX1D_RTV,
30090 pub Texture1DArray: D3D12_TEX1D_ARRAY_RTV,
30091 pub Texture2D: D3D12_TEX2D_RTV,
30092 pub Texture2DArray: D3D12_TEX2D_ARRAY_RTV,
30093 pub Texture2DMS: D3D12_TEX2DMS_RTV,
30094 pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_RTV,
30095 pub Texture3D: D3D12_TEX3D_RTV,
30096}
30097#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30098impl ::core::marker::Copy for D3D12_RENDER_TARGET_VIEW_DESC_0 {}
30099#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30100impl ::core::clone::Clone for D3D12_RENDER_TARGET_VIEW_DESC_0 {
30101 fn clone(&self) -> Self {
30102 *self
30103 }
30104}
30105#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30106impl ::windows::core::TypeKind for D3D12_RENDER_TARGET_VIEW_DESC_0 {
30107 type TypeKind = ::windows::core::CopyType;
30108}
30109#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30110impl ::core::default::Default for D3D12_RENDER_TARGET_VIEW_DESC_0 {
30111 fn default() -> Self {
30112 unsafe { ::core::mem::zeroed() }
30113 }
30114}
30115#[repr(C)]
30116#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30117pub struct D3D12_RESOURCE_ALIASING_BARRIER {
30118 pub pResourceBefore: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
30119 pub pResourceAfter: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
30120}
30121impl ::core::clone::Clone for D3D12_RESOURCE_ALIASING_BARRIER {
30122 fn clone(&self) -> Self {
30123 unsafe { ::core::mem::transmute_copy(self) }
30124 }
30125}
30126impl ::core::fmt::Debug for D3D12_RESOURCE_ALIASING_BARRIER {
30127 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30128 f.debug_struct("D3D12_RESOURCE_ALIASING_BARRIER").field("pResourceBefore", &self.pResourceBefore).field("pResourceAfter", &self.pResourceAfter).finish()
30129 }
30130}
30131impl ::windows::core::TypeKind for D3D12_RESOURCE_ALIASING_BARRIER {
30132 type TypeKind = ::windows::core::CopyType;
30133}
30134impl ::core::cmp::PartialEq for D3D12_RESOURCE_ALIASING_BARRIER {
30135 fn eq(&self, other: &Self) -> bool {
30136 self.pResourceBefore == other.pResourceBefore && self.pResourceAfter == other.pResourceAfter
30137 }
30138}
30139impl ::core::cmp::Eq for D3D12_RESOURCE_ALIASING_BARRIER {}
30140impl ::core::default::Default for D3D12_RESOURCE_ALIASING_BARRIER {
30141 fn default() -> Self {
30142 unsafe { ::core::mem::zeroed() }
30143 }
30144}
30145#[repr(C)]
30146#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30147pub struct D3D12_RESOURCE_ALLOCATION_INFO {
30148 pub SizeInBytes: u64,
30149 pub Alignment: u64,
30150}
30151impl ::core::marker::Copy for D3D12_RESOURCE_ALLOCATION_INFO {}
30152impl ::core::clone::Clone for D3D12_RESOURCE_ALLOCATION_INFO {
30153 fn clone(&self) -> Self {
30154 *self
30155 }
30156}
30157impl ::core::fmt::Debug for D3D12_RESOURCE_ALLOCATION_INFO {
30158 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30159 f.debug_struct("D3D12_RESOURCE_ALLOCATION_INFO").field("SizeInBytes", &self.SizeInBytes).field("Alignment", &self.Alignment).finish()
30160 }
30161}
30162impl ::windows::core::TypeKind for D3D12_RESOURCE_ALLOCATION_INFO {
30163 type TypeKind = ::windows::core::CopyType;
30164}
30165impl ::core::cmp::PartialEq for D3D12_RESOURCE_ALLOCATION_INFO {
30166 fn eq(&self, other: &Self) -> bool {
30167 self.SizeInBytes == other.SizeInBytes && self.Alignment == other.Alignment
30168 }
30169}
30170impl ::core::cmp::Eq for D3D12_RESOURCE_ALLOCATION_INFO {}
30171impl ::core::default::Default for D3D12_RESOURCE_ALLOCATION_INFO {
30172 fn default() -> Self {
30173 unsafe { ::core::mem::zeroed() }
30174 }
30175}
30176#[repr(C)]
30177#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30178pub struct D3D12_RESOURCE_ALLOCATION_INFO1 {
30179 pub Offset: u64,
30180 pub Alignment: u64,
30181 pub SizeInBytes: u64,
30182}
30183impl ::core::marker::Copy for D3D12_RESOURCE_ALLOCATION_INFO1 {}
30184impl ::core::clone::Clone for D3D12_RESOURCE_ALLOCATION_INFO1 {
30185 fn clone(&self) -> Self {
30186 *self
30187 }
30188}
30189impl ::core::fmt::Debug for D3D12_RESOURCE_ALLOCATION_INFO1 {
30190 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30191 f.debug_struct("D3D12_RESOURCE_ALLOCATION_INFO1").field("Offset", &self.Offset).field("Alignment", &self.Alignment).field("SizeInBytes", &self.SizeInBytes).finish()
30192 }
30193}
30194impl ::windows::core::TypeKind for D3D12_RESOURCE_ALLOCATION_INFO1 {
30195 type TypeKind = ::windows::core::CopyType;
30196}
30197impl ::core::cmp::PartialEq for D3D12_RESOURCE_ALLOCATION_INFO1 {
30198 fn eq(&self, other: &Self) -> bool {
30199 self.Offset == other.Offset && self.Alignment == other.Alignment && self.SizeInBytes == other.SizeInBytes
30200 }
30201}
30202impl ::core::cmp::Eq for D3D12_RESOURCE_ALLOCATION_INFO1 {}
30203impl ::core::default::Default for D3D12_RESOURCE_ALLOCATION_INFO1 {
30204 fn default() -> Self {
30205 unsafe { ::core::mem::zeroed() }
30206 }
30207}
30208#[repr(C)]
30209#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30210pub struct D3D12_RESOURCE_BARRIER {
30211 pub Type: D3D12_RESOURCE_BARRIER_TYPE,
30212 pub Flags: D3D12_RESOURCE_BARRIER_FLAGS,
30213 pub Anonymous: D3D12_RESOURCE_BARRIER_0,
30214}
30215impl ::core::clone::Clone for D3D12_RESOURCE_BARRIER {
30216 fn clone(&self) -> Self {
30217 unsafe { ::core::mem::transmute_copy(self) }
30218 }
30219}
30220impl ::windows::core::TypeKind for D3D12_RESOURCE_BARRIER {
30221 type TypeKind = ::windows::core::CopyType;
30222}
30223impl ::core::default::Default for D3D12_RESOURCE_BARRIER {
30224 fn default() -> Self {
30225 unsafe { ::core::mem::zeroed() }
30226 }
30227}
30228#[repr(C)]
30229#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30230pub union D3D12_RESOURCE_BARRIER_0 {
30231 pub Transition: ::std::mem::ManuallyDrop<D3D12_RESOURCE_TRANSITION_BARRIER>,
30232 pub Aliasing: ::std::mem::ManuallyDrop<D3D12_RESOURCE_ALIASING_BARRIER>,
30233 pub UAV: ::std::mem::ManuallyDrop<D3D12_RESOURCE_UAV_BARRIER>,
30234}
30235impl ::core::clone::Clone for D3D12_RESOURCE_BARRIER_0 {
30236 fn clone(&self) -> Self {
30237 unsafe { ::core::mem::transmute_copy(self) }
30238 }
30239}
30240impl ::windows::core::TypeKind for D3D12_RESOURCE_BARRIER_0 {
30241 type TypeKind = ::windows::core::CopyType;
30242}
30243impl ::core::default::Default for D3D12_RESOURCE_BARRIER_0 {
30244 fn default() -> Self {
30245 unsafe { ::core::mem::zeroed() }
30246 }
30247}
30248#[repr(C)]
30249#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
30250#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30251pub struct D3D12_RESOURCE_DESC {
30252 pub Dimension: D3D12_RESOURCE_DIMENSION,
30253 pub Alignment: u64,
30254 pub Width: u64,
30255 pub Height: u32,
30256 pub DepthOrArraySize: u16,
30257 pub MipLevels: u16,
30258 pub Format: super::Dxgi::Common::DXGI_FORMAT,
30259 pub SampleDesc: super::Dxgi::Common::DXGI_SAMPLE_DESC,
30260 pub Layout: D3D12_TEXTURE_LAYOUT,
30261 pub Flags: D3D12_RESOURCE_FLAGS,
30262}
30263#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30264impl ::core::marker::Copy for D3D12_RESOURCE_DESC {}
30265#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30266impl ::core::clone::Clone for D3D12_RESOURCE_DESC {
30267 fn clone(&self) -> Self {
30268 *self
30269 }
30270}
30271#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30272impl ::core::fmt::Debug for D3D12_RESOURCE_DESC {
30273 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30274 f.debug_struct("D3D12_RESOURCE_DESC").field("Dimension", &self.Dimension).field("Alignment", &self.Alignment).field("Width", &self.Width).field("Height", &self.Height).field("DepthOrArraySize", &self.DepthOrArraySize).field("MipLevels", &self.MipLevels).field("Format", &self.Format).field("SampleDesc", &self.SampleDesc).field("Layout", &self.Layout).field("Flags", &self.Flags).finish()
30275 }
30276}
30277#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30278impl ::windows::core::TypeKind for D3D12_RESOURCE_DESC {
30279 type TypeKind = ::windows::core::CopyType;
30280}
30281#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30282impl ::core::cmp::PartialEq for D3D12_RESOURCE_DESC {
30283 fn eq(&self, other: &Self) -> bool {
30284 self.Dimension == other.Dimension && self.Alignment == other.Alignment && self.Width == other.Width && self.Height == other.Height && self.DepthOrArraySize == other.DepthOrArraySize && self.MipLevels == other.MipLevels && self.Format == other.Format && self.SampleDesc == other.SampleDesc && self.Layout == other.Layout && self.Flags == other.Flags
30285 }
30286}
30287#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30288impl ::core::cmp::Eq for D3D12_RESOURCE_DESC {}
30289#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30290impl ::core::default::Default for D3D12_RESOURCE_DESC {
30291 fn default() -> Self {
30292 unsafe { ::core::mem::zeroed() }
30293 }
30294}
30295#[repr(C)]
30296#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
30297#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30298pub struct D3D12_RESOURCE_DESC1 {
30299 pub Dimension: D3D12_RESOURCE_DIMENSION,
30300 pub Alignment: u64,
30301 pub Width: u64,
30302 pub Height: u32,
30303 pub DepthOrArraySize: u16,
30304 pub MipLevels: u16,
30305 pub Format: super::Dxgi::Common::DXGI_FORMAT,
30306 pub SampleDesc: super::Dxgi::Common::DXGI_SAMPLE_DESC,
30307 pub Layout: D3D12_TEXTURE_LAYOUT,
30308 pub Flags: D3D12_RESOURCE_FLAGS,
30309 pub SamplerFeedbackMipRegion: D3D12_MIP_REGION,
30310}
30311#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30312impl ::core::marker::Copy for D3D12_RESOURCE_DESC1 {}
30313#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30314impl ::core::clone::Clone for D3D12_RESOURCE_DESC1 {
30315 fn clone(&self) -> Self {
30316 *self
30317 }
30318}
30319#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30320impl ::core::fmt::Debug for D3D12_RESOURCE_DESC1 {
30321 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30322 f.debug_struct("D3D12_RESOURCE_DESC1").field("Dimension", &self.Dimension).field("Alignment", &self.Alignment).field("Width", &self.Width).field("Height", &self.Height).field("DepthOrArraySize", &self.DepthOrArraySize).field("MipLevels", &self.MipLevels).field("Format", &self.Format).field("SampleDesc", &self.SampleDesc).field("Layout", &self.Layout).field("Flags", &self.Flags).field("SamplerFeedbackMipRegion", &self.SamplerFeedbackMipRegion).finish()
30323 }
30324}
30325#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30326impl ::windows::core::TypeKind for D3D12_RESOURCE_DESC1 {
30327 type TypeKind = ::windows::core::CopyType;
30328}
30329#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30330impl ::core::cmp::PartialEq for D3D12_RESOURCE_DESC1 {
30331 fn eq(&self, other: &Self) -> bool {
30332 self.Dimension == other.Dimension && self.Alignment == other.Alignment && self.Width == other.Width && self.Height == other.Height && self.DepthOrArraySize == other.DepthOrArraySize && self.MipLevels == other.MipLevels && self.Format == other.Format && self.SampleDesc == other.SampleDesc && self.Layout == other.Layout && self.Flags == other.Flags && self.SamplerFeedbackMipRegion == other.SamplerFeedbackMipRegion
30333 }
30334}
30335#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30336impl ::core::cmp::Eq for D3D12_RESOURCE_DESC1 {}
30337#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30338impl ::core::default::Default for D3D12_RESOURCE_DESC1 {
30339 fn default() -> Self {
30340 unsafe { ::core::mem::zeroed() }
30341 }
30342}
30343#[repr(C)]
30344#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30345pub struct D3D12_RESOURCE_TRANSITION_BARRIER {
30346 pub pResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
30347 pub Subresource: u32,
30348 pub StateBefore: D3D12_RESOURCE_STATES,
30349 pub StateAfter: D3D12_RESOURCE_STATES,
30350}
30351impl ::core::clone::Clone for D3D12_RESOURCE_TRANSITION_BARRIER {
30352 fn clone(&self) -> Self {
30353 unsafe { ::core::mem::transmute_copy(self) }
30354 }
30355}
30356impl ::core::fmt::Debug for D3D12_RESOURCE_TRANSITION_BARRIER {
30357 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30358 f.debug_struct("D3D12_RESOURCE_TRANSITION_BARRIER").field("pResource", &self.pResource).field("Subresource", &self.Subresource).field("StateBefore", &self.StateBefore).field("StateAfter", &self.StateAfter).finish()
30359 }
30360}
30361impl ::windows::core::TypeKind for D3D12_RESOURCE_TRANSITION_BARRIER {
30362 type TypeKind = ::windows::core::CopyType;
30363}
30364impl ::core::cmp::PartialEq for D3D12_RESOURCE_TRANSITION_BARRIER {
30365 fn eq(&self, other: &Self) -> bool {
30366 self.pResource == other.pResource && self.Subresource == other.Subresource && self.StateBefore == other.StateBefore && self.StateAfter == other.StateAfter
30367 }
30368}
30369impl ::core::cmp::Eq for D3D12_RESOURCE_TRANSITION_BARRIER {}
30370impl ::core::default::Default for D3D12_RESOURCE_TRANSITION_BARRIER {
30371 fn default() -> Self {
30372 unsafe { ::core::mem::zeroed() }
30373 }
30374}
30375#[repr(C)]
30376#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30377pub struct D3D12_RESOURCE_UAV_BARRIER {
30378 pub pResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
30379}
30380impl ::core::clone::Clone for D3D12_RESOURCE_UAV_BARRIER {
30381 fn clone(&self) -> Self {
30382 unsafe { ::core::mem::transmute_copy(self) }
30383 }
30384}
30385impl ::core::fmt::Debug for D3D12_RESOURCE_UAV_BARRIER {
30386 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30387 f.debug_struct("D3D12_RESOURCE_UAV_BARRIER").field("pResource", &self.pResource).finish()
30388 }
30389}
30390impl ::windows::core::TypeKind for D3D12_RESOURCE_UAV_BARRIER {
30391 type TypeKind = ::windows::core::CopyType;
30392}
30393impl ::core::cmp::PartialEq for D3D12_RESOURCE_UAV_BARRIER {
30394 fn eq(&self, other: &Self) -> bool {
30395 self.pResource == other.pResource
30396 }
30397}
30398impl ::core::cmp::Eq for D3D12_RESOURCE_UAV_BARRIER {}
30399impl ::core::default::Default for D3D12_RESOURCE_UAV_BARRIER {
30400 fn default() -> Self {
30401 unsafe { ::core::mem::zeroed() }
30402 }
30403}
30404#[repr(C)]
30405#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30406pub struct D3D12_ROOT_CONSTANTS {
30407 pub ShaderRegister: u32,
30408 pub RegisterSpace: u32,
30409 pub Num32BitValues: u32,
30410}
30411impl ::core::marker::Copy for D3D12_ROOT_CONSTANTS {}
30412impl ::core::clone::Clone for D3D12_ROOT_CONSTANTS {
30413 fn clone(&self) -> Self {
30414 *self
30415 }
30416}
30417impl ::core::fmt::Debug for D3D12_ROOT_CONSTANTS {
30418 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30419 f.debug_struct("D3D12_ROOT_CONSTANTS").field("ShaderRegister", &self.ShaderRegister).field("RegisterSpace", &self.RegisterSpace).field("Num32BitValues", &self.Num32BitValues).finish()
30420 }
30421}
30422impl ::windows::core::TypeKind for D3D12_ROOT_CONSTANTS {
30423 type TypeKind = ::windows::core::CopyType;
30424}
30425impl ::core::cmp::PartialEq for D3D12_ROOT_CONSTANTS {
30426 fn eq(&self, other: &Self) -> bool {
30427 self.ShaderRegister == other.ShaderRegister && self.RegisterSpace == other.RegisterSpace && self.Num32BitValues == other.Num32BitValues
30428 }
30429}
30430impl ::core::cmp::Eq for D3D12_ROOT_CONSTANTS {}
30431impl ::core::default::Default for D3D12_ROOT_CONSTANTS {
30432 fn default() -> Self {
30433 unsafe { ::core::mem::zeroed() }
30434 }
30435}
30436#[repr(C)]
30437#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30438pub struct D3D12_ROOT_DESCRIPTOR {
30439 pub ShaderRegister: u32,
30440 pub RegisterSpace: u32,
30441}
30442impl ::core::marker::Copy for D3D12_ROOT_DESCRIPTOR {}
30443impl ::core::clone::Clone for D3D12_ROOT_DESCRIPTOR {
30444 fn clone(&self) -> Self {
30445 *self
30446 }
30447}
30448impl ::core::fmt::Debug for D3D12_ROOT_DESCRIPTOR {
30449 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30450 f.debug_struct("D3D12_ROOT_DESCRIPTOR").field("ShaderRegister", &self.ShaderRegister).field("RegisterSpace", &self.RegisterSpace).finish()
30451 }
30452}
30453impl ::windows::core::TypeKind for D3D12_ROOT_DESCRIPTOR {
30454 type TypeKind = ::windows::core::CopyType;
30455}
30456impl ::core::cmp::PartialEq for D3D12_ROOT_DESCRIPTOR {
30457 fn eq(&self, other: &Self) -> bool {
30458 self.ShaderRegister == other.ShaderRegister && self.RegisterSpace == other.RegisterSpace
30459 }
30460}
30461impl ::core::cmp::Eq for D3D12_ROOT_DESCRIPTOR {}
30462impl ::core::default::Default for D3D12_ROOT_DESCRIPTOR {
30463 fn default() -> Self {
30464 unsafe { ::core::mem::zeroed() }
30465 }
30466}
30467#[repr(C)]
30468#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30469pub struct D3D12_ROOT_DESCRIPTOR1 {
30470 pub ShaderRegister: u32,
30471 pub RegisterSpace: u32,
30472 pub Flags: D3D12_ROOT_DESCRIPTOR_FLAGS,
30473}
30474impl ::core::marker::Copy for D3D12_ROOT_DESCRIPTOR1 {}
30475impl ::core::clone::Clone for D3D12_ROOT_DESCRIPTOR1 {
30476 fn clone(&self) -> Self {
30477 *self
30478 }
30479}
30480impl ::core::fmt::Debug for D3D12_ROOT_DESCRIPTOR1 {
30481 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30482 f.debug_struct("D3D12_ROOT_DESCRIPTOR1").field("ShaderRegister", &self.ShaderRegister).field("RegisterSpace", &self.RegisterSpace).field("Flags", &self.Flags).finish()
30483 }
30484}
30485impl ::windows::core::TypeKind for D3D12_ROOT_DESCRIPTOR1 {
30486 type TypeKind = ::windows::core::CopyType;
30487}
30488impl ::core::cmp::PartialEq for D3D12_ROOT_DESCRIPTOR1 {
30489 fn eq(&self, other: &Self) -> bool {
30490 self.ShaderRegister == other.ShaderRegister && self.RegisterSpace == other.RegisterSpace && self.Flags == other.Flags
30491 }
30492}
30493impl ::core::cmp::Eq for D3D12_ROOT_DESCRIPTOR1 {}
30494impl ::core::default::Default for D3D12_ROOT_DESCRIPTOR1 {
30495 fn default() -> Self {
30496 unsafe { ::core::mem::zeroed() }
30497 }
30498}
30499#[repr(C)]
30500#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30501pub struct D3D12_ROOT_DESCRIPTOR_TABLE {
30502 pub NumDescriptorRanges: u32,
30503 pub pDescriptorRanges: *const D3D12_DESCRIPTOR_RANGE,
30504}
30505impl ::core::marker::Copy for D3D12_ROOT_DESCRIPTOR_TABLE {}
30506impl ::core::clone::Clone for D3D12_ROOT_DESCRIPTOR_TABLE {
30507 fn clone(&self) -> Self {
30508 *self
30509 }
30510}
30511impl ::core::fmt::Debug for D3D12_ROOT_DESCRIPTOR_TABLE {
30512 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30513 f.debug_struct("D3D12_ROOT_DESCRIPTOR_TABLE").field("NumDescriptorRanges", &self.NumDescriptorRanges).field("pDescriptorRanges", &self.pDescriptorRanges).finish()
30514 }
30515}
30516impl ::windows::core::TypeKind for D3D12_ROOT_DESCRIPTOR_TABLE {
30517 type TypeKind = ::windows::core::CopyType;
30518}
30519impl ::core::cmp::PartialEq for D3D12_ROOT_DESCRIPTOR_TABLE {
30520 fn eq(&self, other: &Self) -> bool {
30521 self.NumDescriptorRanges == other.NumDescriptorRanges && self.pDescriptorRanges == other.pDescriptorRanges
30522 }
30523}
30524impl ::core::cmp::Eq for D3D12_ROOT_DESCRIPTOR_TABLE {}
30525impl ::core::default::Default for D3D12_ROOT_DESCRIPTOR_TABLE {
30526 fn default() -> Self {
30527 unsafe { ::core::mem::zeroed() }
30528 }
30529}
30530#[repr(C)]
30531#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30532pub struct D3D12_ROOT_DESCRIPTOR_TABLE1 {
30533 pub NumDescriptorRanges: u32,
30534 pub pDescriptorRanges: *const D3D12_DESCRIPTOR_RANGE1,
30535}
30536impl ::core::marker::Copy for D3D12_ROOT_DESCRIPTOR_TABLE1 {}
30537impl ::core::clone::Clone for D3D12_ROOT_DESCRIPTOR_TABLE1 {
30538 fn clone(&self) -> Self {
30539 *self
30540 }
30541}
30542impl ::core::fmt::Debug for D3D12_ROOT_DESCRIPTOR_TABLE1 {
30543 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30544 f.debug_struct("D3D12_ROOT_DESCRIPTOR_TABLE1").field("NumDescriptorRanges", &self.NumDescriptorRanges).field("pDescriptorRanges", &self.pDescriptorRanges).finish()
30545 }
30546}
30547impl ::windows::core::TypeKind for D3D12_ROOT_DESCRIPTOR_TABLE1 {
30548 type TypeKind = ::windows::core::CopyType;
30549}
30550impl ::core::cmp::PartialEq for D3D12_ROOT_DESCRIPTOR_TABLE1 {
30551 fn eq(&self, other: &Self) -> bool {
30552 self.NumDescriptorRanges == other.NumDescriptorRanges && self.pDescriptorRanges == other.pDescriptorRanges
30553 }
30554}
30555impl ::core::cmp::Eq for D3D12_ROOT_DESCRIPTOR_TABLE1 {}
30556impl ::core::default::Default for D3D12_ROOT_DESCRIPTOR_TABLE1 {
30557 fn default() -> Self {
30558 unsafe { ::core::mem::zeroed() }
30559 }
30560}
30561#[repr(C)]
30562#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30563pub struct D3D12_ROOT_PARAMETER {
30564 pub ParameterType: D3D12_ROOT_PARAMETER_TYPE,
30565 pub Anonymous: D3D12_ROOT_PARAMETER_0,
30566 pub ShaderVisibility: D3D12_SHADER_VISIBILITY,
30567}
30568impl ::core::marker::Copy for D3D12_ROOT_PARAMETER {}
30569impl ::core::clone::Clone for D3D12_ROOT_PARAMETER {
30570 fn clone(&self) -> Self {
30571 *self
30572 }
30573}
30574impl ::windows::core::TypeKind for D3D12_ROOT_PARAMETER {
30575 type TypeKind = ::windows::core::CopyType;
30576}
30577impl ::core::default::Default for D3D12_ROOT_PARAMETER {
30578 fn default() -> Self {
30579 unsafe { ::core::mem::zeroed() }
30580 }
30581}
30582#[repr(C)]
30583#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30584pub union D3D12_ROOT_PARAMETER_0 {
30585 pub DescriptorTable: D3D12_ROOT_DESCRIPTOR_TABLE,
30586 pub Constants: D3D12_ROOT_CONSTANTS,
30587 pub Descriptor: D3D12_ROOT_DESCRIPTOR,
30588}
30589impl ::core::marker::Copy for D3D12_ROOT_PARAMETER_0 {}
30590impl ::core::clone::Clone for D3D12_ROOT_PARAMETER_0 {
30591 fn clone(&self) -> Self {
30592 *self
30593 }
30594}
30595impl ::windows::core::TypeKind for D3D12_ROOT_PARAMETER_0 {
30596 type TypeKind = ::windows::core::CopyType;
30597}
30598impl ::core::default::Default for D3D12_ROOT_PARAMETER_0 {
30599 fn default() -> Self {
30600 unsafe { ::core::mem::zeroed() }
30601 }
30602}
30603#[repr(C)]
30604#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30605pub struct D3D12_ROOT_PARAMETER1 {
30606 pub ParameterType: D3D12_ROOT_PARAMETER_TYPE,
30607 pub Anonymous: D3D12_ROOT_PARAMETER1_0,
30608 pub ShaderVisibility: D3D12_SHADER_VISIBILITY,
30609}
30610impl ::core::marker::Copy for D3D12_ROOT_PARAMETER1 {}
30611impl ::core::clone::Clone for D3D12_ROOT_PARAMETER1 {
30612 fn clone(&self) -> Self {
30613 *self
30614 }
30615}
30616impl ::windows::core::TypeKind for D3D12_ROOT_PARAMETER1 {
30617 type TypeKind = ::windows::core::CopyType;
30618}
30619impl ::core::default::Default for D3D12_ROOT_PARAMETER1 {
30620 fn default() -> Self {
30621 unsafe { ::core::mem::zeroed() }
30622 }
30623}
30624#[repr(C)]
30625#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30626pub union D3D12_ROOT_PARAMETER1_0 {
30627 pub DescriptorTable: D3D12_ROOT_DESCRIPTOR_TABLE1,
30628 pub Constants: D3D12_ROOT_CONSTANTS,
30629 pub Descriptor: D3D12_ROOT_DESCRIPTOR1,
30630}
30631impl ::core::marker::Copy for D3D12_ROOT_PARAMETER1_0 {}
30632impl ::core::clone::Clone for D3D12_ROOT_PARAMETER1_0 {
30633 fn clone(&self) -> Self {
30634 *self
30635 }
30636}
30637impl ::windows::core::TypeKind for D3D12_ROOT_PARAMETER1_0 {
30638 type TypeKind = ::windows::core::CopyType;
30639}
30640impl ::core::default::Default for D3D12_ROOT_PARAMETER1_0 {
30641 fn default() -> Self {
30642 unsafe { ::core::mem::zeroed() }
30643 }
30644}
30645#[repr(C)]
30646#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30647pub struct D3D12_ROOT_SIGNATURE_DESC {
30648 pub NumParameters: u32,
30649 pub pParameters: *const D3D12_ROOT_PARAMETER,
30650 pub NumStaticSamplers: u32,
30651 pub pStaticSamplers: *const D3D12_STATIC_SAMPLER_DESC,
30652 pub Flags: D3D12_ROOT_SIGNATURE_FLAGS,
30653}
30654impl ::core::marker::Copy for D3D12_ROOT_SIGNATURE_DESC {}
30655impl ::core::clone::Clone for D3D12_ROOT_SIGNATURE_DESC {
30656 fn clone(&self) -> Self {
30657 *self
30658 }
30659}
30660impl ::core::fmt::Debug for D3D12_ROOT_SIGNATURE_DESC {
30661 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30662 f.debug_struct("D3D12_ROOT_SIGNATURE_DESC").field("NumParameters", &self.NumParameters).field("pParameters", &self.pParameters).field("NumStaticSamplers", &self.NumStaticSamplers).field("pStaticSamplers", &self.pStaticSamplers).field("Flags", &self.Flags).finish()
30663 }
30664}
30665impl ::windows::core::TypeKind for D3D12_ROOT_SIGNATURE_DESC {
30666 type TypeKind = ::windows::core::CopyType;
30667}
30668impl ::core::cmp::PartialEq for D3D12_ROOT_SIGNATURE_DESC {
30669 fn eq(&self, other: &Self) -> bool {
30670 self.NumParameters == other.NumParameters && self.pParameters == other.pParameters && self.NumStaticSamplers == other.NumStaticSamplers && self.pStaticSamplers == other.pStaticSamplers && self.Flags == other.Flags
30671 }
30672}
30673impl ::core::cmp::Eq for D3D12_ROOT_SIGNATURE_DESC {}
30674impl ::core::default::Default for D3D12_ROOT_SIGNATURE_DESC {
30675 fn default() -> Self {
30676 unsafe { ::core::mem::zeroed() }
30677 }
30678}
30679#[repr(C)]
30680#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30681pub struct D3D12_ROOT_SIGNATURE_DESC1 {
30682 pub NumParameters: u32,
30683 pub pParameters: *const D3D12_ROOT_PARAMETER1,
30684 pub NumStaticSamplers: u32,
30685 pub pStaticSamplers: *const D3D12_STATIC_SAMPLER_DESC,
30686 pub Flags: D3D12_ROOT_SIGNATURE_FLAGS,
30687}
30688impl ::core::marker::Copy for D3D12_ROOT_SIGNATURE_DESC1 {}
30689impl ::core::clone::Clone for D3D12_ROOT_SIGNATURE_DESC1 {
30690 fn clone(&self) -> Self {
30691 *self
30692 }
30693}
30694impl ::core::fmt::Debug for D3D12_ROOT_SIGNATURE_DESC1 {
30695 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30696 f.debug_struct("D3D12_ROOT_SIGNATURE_DESC1").field("NumParameters", &self.NumParameters).field("pParameters", &self.pParameters).field("NumStaticSamplers", &self.NumStaticSamplers).field("pStaticSamplers", &self.pStaticSamplers).field("Flags", &self.Flags).finish()
30697 }
30698}
30699impl ::windows::core::TypeKind for D3D12_ROOT_SIGNATURE_DESC1 {
30700 type TypeKind = ::windows::core::CopyType;
30701}
30702impl ::core::cmp::PartialEq for D3D12_ROOT_SIGNATURE_DESC1 {
30703 fn eq(&self, other: &Self) -> bool {
30704 self.NumParameters == other.NumParameters && self.pParameters == other.pParameters && self.NumStaticSamplers == other.NumStaticSamplers && self.pStaticSamplers == other.pStaticSamplers && self.Flags == other.Flags
30705 }
30706}
30707impl ::core::cmp::Eq for D3D12_ROOT_SIGNATURE_DESC1 {}
30708impl ::core::default::Default for D3D12_ROOT_SIGNATURE_DESC1 {
30709 fn default() -> Self {
30710 unsafe { ::core::mem::zeroed() }
30711 }
30712}
30713#[repr(C)]
30714#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
30715#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30716pub struct D3D12_RT_FORMAT_ARRAY {
30717 pub RTFormats: [super::Dxgi::Common::DXGI_FORMAT; 8],
30718 pub NumRenderTargets: u32,
30719}
30720#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30721impl ::core::marker::Copy for D3D12_RT_FORMAT_ARRAY {}
30722#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30723impl ::core::clone::Clone for D3D12_RT_FORMAT_ARRAY {
30724 fn clone(&self) -> Self {
30725 *self
30726 }
30727}
30728#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30729impl ::core::fmt::Debug for D3D12_RT_FORMAT_ARRAY {
30730 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30731 f.debug_struct("D3D12_RT_FORMAT_ARRAY").field("RTFormats", &self.RTFormats).field("NumRenderTargets", &self.NumRenderTargets).finish()
30732 }
30733}
30734#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30735impl ::windows::core::TypeKind for D3D12_RT_FORMAT_ARRAY {
30736 type TypeKind = ::windows::core::CopyType;
30737}
30738#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30739impl ::core::cmp::PartialEq for D3D12_RT_FORMAT_ARRAY {
30740 fn eq(&self, other: &Self) -> bool {
30741 self.RTFormats == other.RTFormats && self.NumRenderTargets == other.NumRenderTargets
30742 }
30743}
30744#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30745impl ::core::cmp::Eq for D3D12_RT_FORMAT_ARRAY {}
30746#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
30747impl ::core::default::Default for D3D12_RT_FORMAT_ARRAY {
30748 fn default() -> Self {
30749 unsafe { ::core::mem::zeroed() }
30750 }
30751}
30752#[repr(C)]
30753#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30754pub struct D3D12_SAMPLER_DESC {
30755 pub Filter: D3D12_FILTER,
30756 pub AddressU: D3D12_TEXTURE_ADDRESS_MODE,
30757 pub AddressV: D3D12_TEXTURE_ADDRESS_MODE,
30758 pub AddressW: D3D12_TEXTURE_ADDRESS_MODE,
30759 pub MipLODBias: f32,
30760 pub MaxAnisotropy: u32,
30761 pub ComparisonFunc: D3D12_COMPARISON_FUNC,
30762 pub BorderColor: [f32; 4],
30763 pub MinLOD: f32,
30764 pub MaxLOD: f32,
30765}
30766impl ::core::marker::Copy for D3D12_SAMPLER_DESC {}
30767impl ::core::clone::Clone for D3D12_SAMPLER_DESC {
30768 fn clone(&self) -> Self {
30769 *self
30770 }
30771}
30772impl ::core::fmt::Debug for D3D12_SAMPLER_DESC {
30773 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30774 f.debug_struct("D3D12_SAMPLER_DESC").field("Filter", &self.Filter).field("AddressU", &self.AddressU).field("AddressV", &self.AddressV).field("AddressW", &self.AddressW).field("MipLODBias", &self.MipLODBias).field("MaxAnisotropy", &self.MaxAnisotropy).field("ComparisonFunc", &self.ComparisonFunc).field("BorderColor", &self.BorderColor).field("MinLOD", &self.MinLOD).field("MaxLOD", &self.MaxLOD).finish()
30775 }
30776}
30777impl ::windows::core::TypeKind for D3D12_SAMPLER_DESC {
30778 type TypeKind = ::windows::core::CopyType;
30779}
30780impl ::core::cmp::PartialEq for D3D12_SAMPLER_DESC {
30781 fn eq(&self, other: &Self) -> bool {
30782 self.Filter == other.Filter && self.AddressU == other.AddressU && self.AddressV == other.AddressV && self.AddressW == other.AddressW && self.MipLODBias == other.MipLODBias && self.MaxAnisotropy == other.MaxAnisotropy && self.ComparisonFunc == other.ComparisonFunc && self.BorderColor == other.BorderColor && self.MinLOD == other.MinLOD && self.MaxLOD == other.MaxLOD
30783 }
30784}
30785impl ::core::cmp::Eq for D3D12_SAMPLER_DESC {}
30786impl ::core::default::Default for D3D12_SAMPLER_DESC {
30787 fn default() -> Self {
30788 unsafe { ::core::mem::zeroed() }
30789 }
30790}
30791#[repr(C)]
30792#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30793pub struct D3D12_SAMPLER_DESC2 {
30794 pub Filter: D3D12_FILTER,
30795 pub AddressU: D3D12_TEXTURE_ADDRESS_MODE,
30796 pub AddressV: D3D12_TEXTURE_ADDRESS_MODE,
30797 pub AddressW: D3D12_TEXTURE_ADDRESS_MODE,
30798 pub MipLODBias: f32,
30799 pub MaxAnisotropy: u32,
30800 pub ComparisonFunc: D3D12_COMPARISON_FUNC,
30801 pub Anonymous: D3D12_SAMPLER_DESC2_0,
30802 pub MinLOD: f32,
30803 pub MaxLOD: f32,
30804 pub Flags: D3D12_SAMPLER_FLAGS,
30805}
30806impl ::core::marker::Copy for D3D12_SAMPLER_DESC2 {}
30807impl ::core::clone::Clone for D3D12_SAMPLER_DESC2 {
30808 fn clone(&self) -> Self {
30809 *self
30810 }
30811}
30812impl ::windows::core::TypeKind for D3D12_SAMPLER_DESC2 {
30813 type TypeKind = ::windows::core::CopyType;
30814}
30815impl ::core::default::Default for D3D12_SAMPLER_DESC2 {
30816 fn default() -> Self {
30817 unsafe { ::core::mem::zeroed() }
30818 }
30819}
30820#[repr(C)]
30821#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30822pub union D3D12_SAMPLER_DESC2_0 {
30823 pub FloatBorderColor: [f32; 4],
30824 pub UintBorderColor: [u32; 4],
30825}
30826impl ::core::marker::Copy for D3D12_SAMPLER_DESC2_0 {}
30827impl ::core::clone::Clone for D3D12_SAMPLER_DESC2_0 {
30828 fn clone(&self) -> Self {
30829 *self
30830 }
30831}
30832impl ::windows::core::TypeKind for D3D12_SAMPLER_DESC2_0 {
30833 type TypeKind = ::windows::core::CopyType;
30834}
30835impl ::core::default::Default for D3D12_SAMPLER_DESC2_0 {
30836 fn default() -> Self {
30837 unsafe { ::core::mem::zeroed() }
30838 }
30839}
30840#[repr(C)]
30841#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30842pub struct D3D12_SAMPLE_POSITION {
30843 pub X: i8,
30844 pub Y: i8,
30845}
30846impl ::core::marker::Copy for D3D12_SAMPLE_POSITION {}
30847impl ::core::clone::Clone for D3D12_SAMPLE_POSITION {
30848 fn clone(&self) -> Self {
30849 *self
30850 }
30851}
30852impl ::core::fmt::Debug for D3D12_SAMPLE_POSITION {
30853 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30854 f.debug_struct("D3D12_SAMPLE_POSITION").field("X", &self.X).field("Y", &self.Y).finish()
30855 }
30856}
30857impl ::windows::core::TypeKind for D3D12_SAMPLE_POSITION {
30858 type TypeKind = ::windows::core::CopyType;
30859}
30860impl ::core::cmp::PartialEq for D3D12_SAMPLE_POSITION {
30861 fn eq(&self, other: &Self) -> bool {
30862 self.X == other.X && self.Y == other.Y
30863 }
30864}
30865impl ::core::cmp::Eq for D3D12_SAMPLE_POSITION {}
30866impl ::core::default::Default for D3D12_SAMPLE_POSITION {
30867 fn default() -> Self {
30868 unsafe { ::core::mem::zeroed() }
30869 }
30870}
30871#[repr(C)]
30872#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30873pub struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
30874 pub DriverOpaqueGUID: ::windows::core::GUID,
30875 pub DriverOpaqueVersioningData: [u8; 16],
30876}
30877impl ::core::marker::Copy for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {}
30878impl ::core::clone::Clone for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
30879 fn clone(&self) -> Self {
30880 *self
30881 }
30882}
30883impl ::core::fmt::Debug for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
30884 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30885 f.debug_struct("D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER").field("DriverOpaqueGUID", &self.DriverOpaqueGUID).field("DriverOpaqueVersioningData", &self.DriverOpaqueVersioningData).finish()
30886 }
30887}
30888impl ::windows::core::TypeKind for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
30889 type TypeKind = ::windows::core::CopyType;
30890}
30891impl ::core::cmp::PartialEq for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
30892 fn eq(&self, other: &Self) -> bool {
30893 self.DriverOpaqueGUID == other.DriverOpaqueGUID && self.DriverOpaqueVersioningData == other.DriverOpaqueVersioningData
30894 }
30895}
30896impl ::core::cmp::Eq for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {}
30897impl ::core::default::Default for D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER {
30898 fn default() -> Self {
30899 unsafe { ::core::mem::zeroed() }
30900 }
30901}
30902#[repr(C)]
30903#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30904pub struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
30905 pub DriverMatchingIdentifier: D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER,
30906 pub SerializedSizeInBytesIncludingHeader: u64,
30907 pub DeserializedSizeInBytes: u64,
30908 pub NumBottomLevelAccelerationStructurePointersAfterHeader: u64,
30909}
30910impl ::core::marker::Copy for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {}
30911impl ::core::clone::Clone for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
30912 fn clone(&self) -> Self {
30913 *self
30914 }
30915}
30916impl ::core::fmt::Debug for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
30917 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30918 f.debug_struct("D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER").field("DriverMatchingIdentifier", &self.DriverMatchingIdentifier).field("SerializedSizeInBytesIncludingHeader", &self.SerializedSizeInBytesIncludingHeader).field("DeserializedSizeInBytes", &self.DeserializedSizeInBytes).field("NumBottomLevelAccelerationStructurePointersAfterHeader", &self.NumBottomLevelAccelerationStructurePointersAfterHeader).finish()
30919 }
30920}
30921impl ::windows::core::TypeKind for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
30922 type TypeKind = ::windows::core::CopyType;
30923}
30924impl ::core::cmp::PartialEq for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
30925 fn eq(&self, other: &Self) -> bool {
30926 self.DriverMatchingIdentifier == other.DriverMatchingIdentifier && self.SerializedSizeInBytesIncludingHeader == other.SerializedSizeInBytesIncludingHeader && self.DeserializedSizeInBytes == other.DeserializedSizeInBytes && self.NumBottomLevelAccelerationStructurePointersAfterHeader == other.NumBottomLevelAccelerationStructurePointersAfterHeader
30927 }
30928}
30929impl ::core::cmp::Eq for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {}
30930impl ::core::default::Default for D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER {
30931 fn default() -> Self {
30932 unsafe { ::core::mem::zeroed() }
30933 }
30934}
30935#[repr(C)]
30936#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
30937#[cfg(feature = "Win32_Graphics_Direct3D")]
30938pub struct D3D12_SHADER_BUFFER_DESC {
30939 pub Name: ::windows::core::PCSTR,
30940 pub Type: super::Direct3D::D3D_CBUFFER_TYPE,
30941 pub Variables: u32,
30942 pub Size: u32,
30943 pub uFlags: u32,
30944}
30945#[cfg(feature = "Win32_Graphics_Direct3D")]
30946impl ::core::marker::Copy for D3D12_SHADER_BUFFER_DESC {}
30947#[cfg(feature = "Win32_Graphics_Direct3D")]
30948impl ::core::clone::Clone for D3D12_SHADER_BUFFER_DESC {
30949 fn clone(&self) -> Self {
30950 *self
30951 }
30952}
30953#[cfg(feature = "Win32_Graphics_Direct3D")]
30954impl ::core::fmt::Debug for D3D12_SHADER_BUFFER_DESC {
30955 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30956 f.debug_struct("D3D12_SHADER_BUFFER_DESC").field("Name", &self.Name).field("Type", &self.Type).field("Variables", &self.Variables).field("Size", &self.Size).field("uFlags", &self.uFlags).finish()
30957 }
30958}
30959#[cfg(feature = "Win32_Graphics_Direct3D")]
30960impl ::windows::core::TypeKind for D3D12_SHADER_BUFFER_DESC {
30961 type TypeKind = ::windows::core::CopyType;
30962}
30963#[cfg(feature = "Win32_Graphics_Direct3D")]
30964impl ::core::cmp::PartialEq for D3D12_SHADER_BUFFER_DESC {
30965 fn eq(&self, other: &Self) -> bool {
30966 self.Name == other.Name && self.Type == other.Type && self.Variables == other.Variables && self.Size == other.Size && self.uFlags == other.uFlags
30967 }
30968}
30969#[cfg(feature = "Win32_Graphics_Direct3D")]
30970impl ::core::cmp::Eq for D3D12_SHADER_BUFFER_DESC {}
30971#[cfg(feature = "Win32_Graphics_Direct3D")]
30972impl ::core::default::Default for D3D12_SHADER_BUFFER_DESC {
30973 fn default() -> Self {
30974 unsafe { ::core::mem::zeroed() }
30975 }
30976}
30977#[repr(C)]
30978#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
30979pub struct D3D12_SHADER_BYTECODE {
30980 pub pShaderBytecode: *const ::core::ffi::c_void,
30981 pub BytecodeLength: usize,
30982}
30983impl ::core::marker::Copy for D3D12_SHADER_BYTECODE {}
30984impl ::core::clone::Clone for D3D12_SHADER_BYTECODE {
30985 fn clone(&self) -> Self {
30986 *self
30987 }
30988}
30989impl ::core::fmt::Debug for D3D12_SHADER_BYTECODE {
30990 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
30991 f.debug_struct("D3D12_SHADER_BYTECODE").field("pShaderBytecode", &self.pShaderBytecode).field("BytecodeLength", &self.BytecodeLength).finish()
30992 }
30993}
30994impl ::windows::core::TypeKind for D3D12_SHADER_BYTECODE {
30995 type TypeKind = ::windows::core::CopyType;
30996}
30997impl ::core::cmp::PartialEq for D3D12_SHADER_BYTECODE {
30998 fn eq(&self, other: &Self) -> bool {
30999 self.pShaderBytecode == other.pShaderBytecode && self.BytecodeLength == other.BytecodeLength
31000 }
31001}
31002impl ::core::cmp::Eq for D3D12_SHADER_BYTECODE {}
31003impl ::core::default::Default for D3D12_SHADER_BYTECODE {
31004 fn default() -> Self {
31005 unsafe { ::core::mem::zeroed() }
31006 }
31007}
31008#[repr(C)]
31009#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31010pub struct D3D12_SHADER_CACHE_SESSION_DESC {
31011 pub Identifier: ::windows::core::GUID,
31012 pub Mode: D3D12_SHADER_CACHE_MODE,
31013 pub Flags: D3D12_SHADER_CACHE_FLAGS,
31014 pub MaximumInMemoryCacheSizeBytes: u32,
31015 pub MaximumInMemoryCacheEntries: u32,
31016 pub MaximumValueFileSizeBytes: u32,
31017 pub Version: u64,
31018}
31019impl ::core::marker::Copy for D3D12_SHADER_CACHE_SESSION_DESC {}
31020impl ::core::clone::Clone for D3D12_SHADER_CACHE_SESSION_DESC {
31021 fn clone(&self) -> Self {
31022 *self
31023 }
31024}
31025impl ::core::fmt::Debug for D3D12_SHADER_CACHE_SESSION_DESC {
31026 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31027 f.debug_struct("D3D12_SHADER_CACHE_SESSION_DESC").field("Identifier", &self.Identifier).field("Mode", &self.Mode).field("Flags", &self.Flags).field("MaximumInMemoryCacheSizeBytes", &self.MaximumInMemoryCacheSizeBytes).field("MaximumInMemoryCacheEntries", &self.MaximumInMemoryCacheEntries).field("MaximumValueFileSizeBytes", &self.MaximumValueFileSizeBytes).field("Version", &self.Version).finish()
31028 }
31029}
31030impl ::windows::core::TypeKind for D3D12_SHADER_CACHE_SESSION_DESC {
31031 type TypeKind = ::windows::core::CopyType;
31032}
31033impl ::core::cmp::PartialEq for D3D12_SHADER_CACHE_SESSION_DESC {
31034 fn eq(&self, other: &Self) -> bool {
31035 self.Identifier == other.Identifier && self.Mode == other.Mode && self.Flags == other.Flags && self.MaximumInMemoryCacheSizeBytes == other.MaximumInMemoryCacheSizeBytes && self.MaximumInMemoryCacheEntries == other.MaximumInMemoryCacheEntries && self.MaximumValueFileSizeBytes == other.MaximumValueFileSizeBytes && self.Version == other.Version
31036 }
31037}
31038impl ::core::cmp::Eq for D3D12_SHADER_CACHE_SESSION_DESC {}
31039impl ::core::default::Default for D3D12_SHADER_CACHE_SESSION_DESC {
31040 fn default() -> Self {
31041 unsafe { ::core::mem::zeroed() }
31042 }
31043}
31044#[repr(C)]
31045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
31046#[cfg(feature = "Win32_Graphics_Direct3D")]
31047pub struct D3D12_SHADER_DESC {
31048 pub Version: u32,
31049 pub Creator: ::windows::core::PCSTR,
31050 pub Flags: u32,
31051 pub ConstantBuffers: u32,
31052 pub BoundResources: u32,
31053 pub InputParameters: u32,
31054 pub OutputParameters: u32,
31055 pub InstructionCount: u32,
31056 pub TempRegisterCount: u32,
31057 pub TempArrayCount: u32,
31058 pub DefCount: u32,
31059 pub DclCount: u32,
31060 pub TextureNormalInstructions: u32,
31061 pub TextureLoadInstructions: u32,
31062 pub TextureCompInstructions: u32,
31063 pub TextureBiasInstructions: u32,
31064 pub TextureGradientInstructions: u32,
31065 pub FloatInstructionCount: u32,
31066 pub IntInstructionCount: u32,
31067 pub UintInstructionCount: u32,
31068 pub StaticFlowControlCount: u32,
31069 pub DynamicFlowControlCount: u32,
31070 pub MacroInstructionCount: u32,
31071 pub ArrayInstructionCount: u32,
31072 pub CutInstructionCount: u32,
31073 pub EmitInstructionCount: u32,
31074 pub GSOutputTopology: super::Direct3D::D3D_PRIMITIVE_TOPOLOGY,
31075 pub GSMaxOutputVertexCount: u32,
31076 pub InputPrimitive: super::Direct3D::D3D_PRIMITIVE,
31077 pub PatchConstantParameters: u32,
31078 pub cGSInstanceCount: u32,
31079 pub cControlPoints: u32,
31080 pub HSOutputPrimitive: super::Direct3D::D3D_TESSELLATOR_OUTPUT_PRIMITIVE,
31081 pub HSPartitioning: super::Direct3D::D3D_TESSELLATOR_PARTITIONING,
31082 pub TessellatorDomain: super::Direct3D::D3D_TESSELLATOR_DOMAIN,
31083 pub cBarrierInstructions: u32,
31084 pub cInterlockedInstructions: u32,
31085 pub cTextureStoreInstructions: u32,
31086}
31087#[cfg(feature = "Win32_Graphics_Direct3D")]
31088impl ::core::marker::Copy for D3D12_SHADER_DESC {}
31089#[cfg(feature = "Win32_Graphics_Direct3D")]
31090impl ::core::clone::Clone for D3D12_SHADER_DESC {
31091 fn clone(&self) -> Self {
31092 *self
31093 }
31094}
31095#[cfg(feature = "Win32_Graphics_Direct3D")]
31096impl ::core::fmt::Debug for D3D12_SHADER_DESC {
31097 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31098 f.debug_struct("D3D12_SHADER_DESC")
31099 .field("Version", &self.Version)
31100 .field("Creator", &self.Creator)
31101 .field("Flags", &self.Flags)
31102 .field("ConstantBuffers", &self.ConstantBuffers)
31103 .field("BoundResources", &self.BoundResources)
31104 .field("InputParameters", &self.InputParameters)
31105 .field("OutputParameters", &self.OutputParameters)
31106 .field("InstructionCount", &self.InstructionCount)
31107 .field("TempRegisterCount", &self.TempRegisterCount)
31108 .field("TempArrayCount", &self.TempArrayCount)
31109 .field("DefCount", &self.DefCount)
31110 .field("DclCount", &self.DclCount)
31111 .field("TextureNormalInstructions", &self.TextureNormalInstructions)
31112 .field("TextureLoadInstructions", &self.TextureLoadInstructions)
31113 .field("TextureCompInstructions", &self.TextureCompInstructions)
31114 .field("TextureBiasInstructions", &self.TextureBiasInstructions)
31115 .field("TextureGradientInstructions", &self.TextureGradientInstructions)
31116 .field("FloatInstructionCount", &self.FloatInstructionCount)
31117 .field("IntInstructionCount", &self.IntInstructionCount)
31118 .field("UintInstructionCount", &self.UintInstructionCount)
31119 .field("StaticFlowControlCount", &self.StaticFlowControlCount)
31120 .field("DynamicFlowControlCount", &self.DynamicFlowControlCount)
31121 .field("MacroInstructionCount", &self.MacroInstructionCount)
31122 .field("ArrayInstructionCount", &self.ArrayInstructionCount)
31123 .field("CutInstructionCount", &self.CutInstructionCount)
31124 .field("EmitInstructionCount", &self.EmitInstructionCount)
31125 .field("GSOutputTopology", &self.GSOutputTopology)
31126 .field("GSMaxOutputVertexCount", &self.GSMaxOutputVertexCount)
31127 .field("InputPrimitive", &self.InputPrimitive)
31128 .field("PatchConstantParameters", &self.PatchConstantParameters)
31129 .field("cGSInstanceCount", &self.cGSInstanceCount)
31130 .field("cControlPoints", &self.cControlPoints)
31131 .field("HSOutputPrimitive", &self.HSOutputPrimitive)
31132 .field("HSPartitioning", &self.HSPartitioning)
31133 .field("TessellatorDomain", &self.TessellatorDomain)
31134 .field("cBarrierInstructions", &self.cBarrierInstructions)
31135 .field("cInterlockedInstructions", &self.cInterlockedInstructions)
31136 .field("cTextureStoreInstructions", &self.cTextureStoreInstructions)
31137 .finish()
31138 }
31139}
31140#[cfg(feature = "Win32_Graphics_Direct3D")]
31141impl ::windows::core::TypeKind for D3D12_SHADER_DESC {
31142 type TypeKind = ::windows::core::CopyType;
31143}
31144#[cfg(feature = "Win32_Graphics_Direct3D")]
31145impl ::core::cmp::PartialEq for D3D12_SHADER_DESC {
31146 fn eq(&self, other: &Self) -> bool {
31147 self.Version == other.Version
31148 && self.Creator == other.Creator
31149 && self.Flags == other.Flags
31150 && self.ConstantBuffers == other.ConstantBuffers
31151 && self.BoundResources == other.BoundResources
31152 && self.InputParameters == other.InputParameters
31153 && self.OutputParameters == other.OutputParameters
31154 && self.InstructionCount == other.InstructionCount
31155 && self.TempRegisterCount == other.TempRegisterCount
31156 && self.TempArrayCount == other.TempArrayCount
31157 && self.DefCount == other.DefCount
31158 && self.DclCount == other.DclCount
31159 && self.TextureNormalInstructions == other.TextureNormalInstructions
31160 && self.TextureLoadInstructions == other.TextureLoadInstructions
31161 && self.TextureCompInstructions == other.TextureCompInstructions
31162 && self.TextureBiasInstructions == other.TextureBiasInstructions
31163 && self.TextureGradientInstructions == other.TextureGradientInstructions
31164 && self.FloatInstructionCount == other.FloatInstructionCount
31165 && self.IntInstructionCount == other.IntInstructionCount
31166 && self.UintInstructionCount == other.UintInstructionCount
31167 && self.StaticFlowControlCount == other.StaticFlowControlCount
31168 && self.DynamicFlowControlCount == other.DynamicFlowControlCount
31169 && self.MacroInstructionCount == other.MacroInstructionCount
31170 && self.ArrayInstructionCount == other.ArrayInstructionCount
31171 && self.CutInstructionCount == other.CutInstructionCount
31172 && self.EmitInstructionCount == other.EmitInstructionCount
31173 && self.GSOutputTopology == other.GSOutputTopology
31174 && self.GSMaxOutputVertexCount == other.GSMaxOutputVertexCount
31175 && self.InputPrimitive == other.InputPrimitive
31176 && self.PatchConstantParameters == other.PatchConstantParameters
31177 && self.cGSInstanceCount == other.cGSInstanceCount
31178 && self.cControlPoints == other.cControlPoints
31179 && self.HSOutputPrimitive == other.HSOutputPrimitive
31180 && self.HSPartitioning == other.HSPartitioning
31181 && self.TessellatorDomain == other.TessellatorDomain
31182 && self.cBarrierInstructions == other.cBarrierInstructions
31183 && self.cInterlockedInstructions == other.cInterlockedInstructions
31184 && self.cTextureStoreInstructions == other.cTextureStoreInstructions
31185 }
31186}
31187#[cfg(feature = "Win32_Graphics_Direct3D")]
31188impl ::core::cmp::Eq for D3D12_SHADER_DESC {}
31189#[cfg(feature = "Win32_Graphics_Direct3D")]
31190impl ::core::default::Default for D3D12_SHADER_DESC {
31191 fn default() -> Self {
31192 unsafe { ::core::mem::zeroed() }
31193 }
31194}
31195#[repr(C)]
31196#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
31197#[cfg(feature = "Win32_Graphics_Direct3D")]
31198pub struct D3D12_SHADER_INPUT_BIND_DESC {
31199 pub Name: ::windows::core::PCSTR,
31200 pub Type: super::Direct3D::D3D_SHADER_INPUT_TYPE,
31201 pub BindPoint: u32,
31202 pub BindCount: u32,
31203 pub uFlags: u32,
31204 pub ReturnType: super::Direct3D::D3D_RESOURCE_RETURN_TYPE,
31205 pub Dimension: super::Direct3D::D3D_SRV_DIMENSION,
31206 pub NumSamples: u32,
31207 pub Space: u32,
31208 pub uID: u32,
31209}
31210#[cfg(feature = "Win32_Graphics_Direct3D")]
31211impl ::core::marker::Copy for D3D12_SHADER_INPUT_BIND_DESC {}
31212#[cfg(feature = "Win32_Graphics_Direct3D")]
31213impl ::core::clone::Clone for D3D12_SHADER_INPUT_BIND_DESC {
31214 fn clone(&self) -> Self {
31215 *self
31216 }
31217}
31218#[cfg(feature = "Win32_Graphics_Direct3D")]
31219impl ::core::fmt::Debug for D3D12_SHADER_INPUT_BIND_DESC {
31220 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31221 f.debug_struct("D3D12_SHADER_INPUT_BIND_DESC").field("Name", &self.Name).field("Type", &self.Type).field("BindPoint", &self.BindPoint).field("BindCount", &self.BindCount).field("uFlags", &self.uFlags).field("ReturnType", &self.ReturnType).field("Dimension", &self.Dimension).field("NumSamples", &self.NumSamples).field("Space", &self.Space).field("uID", &self.uID).finish()
31222 }
31223}
31224#[cfg(feature = "Win32_Graphics_Direct3D")]
31225impl ::windows::core::TypeKind for D3D12_SHADER_INPUT_BIND_DESC {
31226 type TypeKind = ::windows::core::CopyType;
31227}
31228#[cfg(feature = "Win32_Graphics_Direct3D")]
31229impl ::core::cmp::PartialEq for D3D12_SHADER_INPUT_BIND_DESC {
31230 fn eq(&self, other: &Self) -> bool {
31231 self.Name == other.Name && self.Type == other.Type && self.BindPoint == other.BindPoint && self.BindCount == other.BindCount && self.uFlags == other.uFlags && self.ReturnType == other.ReturnType && self.Dimension == other.Dimension && self.NumSamples == other.NumSamples && self.Space == other.Space && self.uID == other.uID
31232 }
31233}
31234#[cfg(feature = "Win32_Graphics_Direct3D")]
31235impl ::core::cmp::Eq for D3D12_SHADER_INPUT_BIND_DESC {}
31236#[cfg(feature = "Win32_Graphics_Direct3D")]
31237impl ::core::default::Default for D3D12_SHADER_INPUT_BIND_DESC {
31238 fn default() -> Self {
31239 unsafe { ::core::mem::zeroed() }
31240 }
31241}
31242#[repr(C)]
31243#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
31244#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31245pub struct D3D12_SHADER_RESOURCE_VIEW_DESC {
31246 pub Format: super::Dxgi::Common::DXGI_FORMAT,
31247 pub ViewDimension: D3D12_SRV_DIMENSION,
31248 pub Shader4ComponentMapping: u32,
31249 pub Anonymous: D3D12_SHADER_RESOURCE_VIEW_DESC_0,
31250}
31251#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31252impl ::core::marker::Copy for D3D12_SHADER_RESOURCE_VIEW_DESC {}
31253#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31254impl ::core::clone::Clone for D3D12_SHADER_RESOURCE_VIEW_DESC {
31255 fn clone(&self) -> Self {
31256 *self
31257 }
31258}
31259#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31260impl ::windows::core::TypeKind for D3D12_SHADER_RESOURCE_VIEW_DESC {
31261 type TypeKind = ::windows::core::CopyType;
31262}
31263#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31264impl ::core::default::Default for D3D12_SHADER_RESOURCE_VIEW_DESC {
31265 fn default() -> Self {
31266 unsafe { ::core::mem::zeroed() }
31267 }
31268}
31269#[repr(C)]
31270#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
31271#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31272pub union D3D12_SHADER_RESOURCE_VIEW_DESC_0 {
31273 pub Buffer: D3D12_BUFFER_SRV,
31274 pub Texture1D: D3D12_TEX1D_SRV,
31275 pub Texture1DArray: D3D12_TEX1D_ARRAY_SRV,
31276 pub Texture2D: D3D12_TEX2D_SRV,
31277 pub Texture2DArray: D3D12_TEX2D_ARRAY_SRV,
31278 pub Texture2DMS: D3D12_TEX2DMS_SRV,
31279 pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_SRV,
31280 pub Texture3D: D3D12_TEX3D_SRV,
31281 pub TextureCube: D3D12_TEXCUBE_SRV,
31282 pub TextureCubeArray: D3D12_TEXCUBE_ARRAY_SRV,
31283 pub RaytracingAccelerationStructure: D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV,
31284}
31285#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31286impl ::core::marker::Copy for D3D12_SHADER_RESOURCE_VIEW_DESC_0 {}
31287#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31288impl ::core::clone::Clone for D3D12_SHADER_RESOURCE_VIEW_DESC_0 {
31289 fn clone(&self) -> Self {
31290 *self
31291 }
31292}
31293#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31294impl ::windows::core::TypeKind for D3D12_SHADER_RESOURCE_VIEW_DESC_0 {
31295 type TypeKind = ::windows::core::CopyType;
31296}
31297#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31298impl ::core::default::Default for D3D12_SHADER_RESOURCE_VIEW_DESC_0 {
31299 fn default() -> Self {
31300 unsafe { ::core::mem::zeroed() }
31301 }
31302}
31303#[repr(C)]
31304#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
31305#[cfg(feature = "Win32_Graphics_Direct3D")]
31306pub struct D3D12_SHADER_TYPE_DESC {
31307 pub Class: super::Direct3D::D3D_SHADER_VARIABLE_CLASS,
31308 pub Type: super::Direct3D::D3D_SHADER_VARIABLE_TYPE,
31309 pub Rows: u32,
31310 pub Columns: u32,
31311 pub Elements: u32,
31312 pub Members: u32,
31313 pub Offset: u32,
31314 pub Name: ::windows::core::PCSTR,
31315}
31316#[cfg(feature = "Win32_Graphics_Direct3D")]
31317impl ::core::marker::Copy for D3D12_SHADER_TYPE_DESC {}
31318#[cfg(feature = "Win32_Graphics_Direct3D")]
31319impl ::core::clone::Clone for D3D12_SHADER_TYPE_DESC {
31320 fn clone(&self) -> Self {
31321 *self
31322 }
31323}
31324#[cfg(feature = "Win32_Graphics_Direct3D")]
31325impl ::core::fmt::Debug for D3D12_SHADER_TYPE_DESC {
31326 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31327 f.debug_struct("D3D12_SHADER_TYPE_DESC").field("Class", &self.Class).field("Type", &self.Type).field("Rows", &self.Rows).field("Columns", &self.Columns).field("Elements", &self.Elements).field("Members", &self.Members).field("Offset", &self.Offset).field("Name", &self.Name).finish()
31328 }
31329}
31330#[cfg(feature = "Win32_Graphics_Direct3D")]
31331impl ::windows::core::TypeKind for D3D12_SHADER_TYPE_DESC {
31332 type TypeKind = ::windows::core::CopyType;
31333}
31334#[cfg(feature = "Win32_Graphics_Direct3D")]
31335impl ::core::cmp::PartialEq for D3D12_SHADER_TYPE_DESC {
31336 fn eq(&self, other: &Self) -> bool {
31337 self.Class == other.Class && self.Type == other.Type && self.Rows == other.Rows && self.Columns == other.Columns && self.Elements == other.Elements && self.Members == other.Members && self.Offset == other.Offset && self.Name == other.Name
31338 }
31339}
31340#[cfg(feature = "Win32_Graphics_Direct3D")]
31341impl ::core::cmp::Eq for D3D12_SHADER_TYPE_DESC {}
31342#[cfg(feature = "Win32_Graphics_Direct3D")]
31343impl ::core::default::Default for D3D12_SHADER_TYPE_DESC {
31344 fn default() -> Self {
31345 unsafe { ::core::mem::zeroed() }
31346 }
31347}
31348#[repr(C)]
31349#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31350pub struct D3D12_SHADER_VARIABLE_DESC {
31351 pub Name: ::windows::core::PCSTR,
31352 pub StartOffset: u32,
31353 pub Size: u32,
31354 pub uFlags: u32,
31355 pub DefaultValue: *mut ::core::ffi::c_void,
31356 pub StartTexture: u32,
31357 pub TextureSize: u32,
31358 pub StartSampler: u32,
31359 pub SamplerSize: u32,
31360}
31361impl ::core::marker::Copy for D3D12_SHADER_VARIABLE_DESC {}
31362impl ::core::clone::Clone for D3D12_SHADER_VARIABLE_DESC {
31363 fn clone(&self) -> Self {
31364 *self
31365 }
31366}
31367impl ::core::fmt::Debug for D3D12_SHADER_VARIABLE_DESC {
31368 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31369 f.debug_struct("D3D12_SHADER_VARIABLE_DESC").field("Name", &self.Name).field("StartOffset", &self.StartOffset).field("Size", &self.Size).field("uFlags", &self.uFlags).field("DefaultValue", &self.DefaultValue).field("StartTexture", &self.StartTexture).field("TextureSize", &self.TextureSize).field("StartSampler", &self.StartSampler).field("SamplerSize", &self.SamplerSize).finish()
31370 }
31371}
31372impl ::windows::core::TypeKind for D3D12_SHADER_VARIABLE_DESC {
31373 type TypeKind = ::windows::core::CopyType;
31374}
31375impl ::core::cmp::PartialEq for D3D12_SHADER_VARIABLE_DESC {
31376 fn eq(&self, other: &Self) -> bool {
31377 self.Name == other.Name && self.StartOffset == other.StartOffset && self.Size == other.Size && self.uFlags == other.uFlags && self.DefaultValue == other.DefaultValue && self.StartTexture == other.StartTexture && self.TextureSize == other.TextureSize && self.StartSampler == other.StartSampler && self.SamplerSize == other.SamplerSize
31378 }
31379}
31380impl ::core::cmp::Eq for D3D12_SHADER_VARIABLE_DESC {}
31381impl ::core::default::Default for D3D12_SHADER_VARIABLE_DESC {
31382 fn default() -> Self {
31383 unsafe { ::core::mem::zeroed() }
31384 }
31385}
31386#[repr(C)]
31387#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
31388#[cfg(feature = "Win32_Graphics_Direct3D")]
31389pub struct D3D12_SIGNATURE_PARAMETER_DESC {
31390 pub SemanticName: ::windows::core::PCSTR,
31391 pub SemanticIndex: u32,
31392 pub Register: u32,
31393 pub SystemValueType: super::Direct3D::D3D_NAME,
31394 pub ComponentType: super::Direct3D::D3D_REGISTER_COMPONENT_TYPE,
31395 pub Mask: u8,
31396 pub ReadWriteMask: u8,
31397 pub Stream: u32,
31398 pub MinPrecision: super::Direct3D::D3D_MIN_PRECISION,
31399}
31400#[cfg(feature = "Win32_Graphics_Direct3D")]
31401impl ::core::marker::Copy for D3D12_SIGNATURE_PARAMETER_DESC {}
31402#[cfg(feature = "Win32_Graphics_Direct3D")]
31403impl ::core::clone::Clone for D3D12_SIGNATURE_PARAMETER_DESC {
31404 fn clone(&self) -> Self {
31405 *self
31406 }
31407}
31408#[cfg(feature = "Win32_Graphics_Direct3D")]
31409impl ::core::fmt::Debug for D3D12_SIGNATURE_PARAMETER_DESC {
31410 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31411 f.debug_struct("D3D12_SIGNATURE_PARAMETER_DESC").field("SemanticName", &self.SemanticName).field("SemanticIndex", &self.SemanticIndex).field("Register", &self.Register).field("SystemValueType", &self.SystemValueType).field("ComponentType", &self.ComponentType).field("Mask", &self.Mask).field("ReadWriteMask", &self.ReadWriteMask).field("Stream", &self.Stream).field("MinPrecision", &self.MinPrecision).finish()
31412 }
31413}
31414#[cfg(feature = "Win32_Graphics_Direct3D")]
31415impl ::windows::core::TypeKind for D3D12_SIGNATURE_PARAMETER_DESC {
31416 type TypeKind = ::windows::core::CopyType;
31417}
31418#[cfg(feature = "Win32_Graphics_Direct3D")]
31419impl ::core::cmp::PartialEq for D3D12_SIGNATURE_PARAMETER_DESC {
31420 fn eq(&self, other: &Self) -> bool {
31421 self.SemanticName == other.SemanticName && self.SemanticIndex == other.SemanticIndex && self.Register == other.Register && self.SystemValueType == other.SystemValueType && self.ComponentType == other.ComponentType && self.Mask == other.Mask && self.ReadWriteMask == other.ReadWriteMask && self.Stream == other.Stream && self.MinPrecision == other.MinPrecision
31422 }
31423}
31424#[cfg(feature = "Win32_Graphics_Direct3D")]
31425impl ::core::cmp::Eq for D3D12_SIGNATURE_PARAMETER_DESC {}
31426#[cfg(feature = "Win32_Graphics_Direct3D")]
31427impl ::core::default::Default for D3D12_SIGNATURE_PARAMETER_DESC {
31428 fn default() -> Self {
31429 unsafe { ::core::mem::zeroed() }
31430 }
31431}
31432#[repr(C)]
31433#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31434pub struct D3D12_SO_DECLARATION_ENTRY {
31435 pub Stream: u32,
31436 pub SemanticName: ::windows::core::PCSTR,
31437 pub SemanticIndex: u32,
31438 pub StartComponent: u8,
31439 pub ComponentCount: u8,
31440 pub OutputSlot: u8,
31441}
31442impl ::core::marker::Copy for D3D12_SO_DECLARATION_ENTRY {}
31443impl ::core::clone::Clone for D3D12_SO_DECLARATION_ENTRY {
31444 fn clone(&self) -> Self {
31445 *self
31446 }
31447}
31448impl ::core::fmt::Debug for D3D12_SO_DECLARATION_ENTRY {
31449 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31450 f.debug_struct("D3D12_SO_DECLARATION_ENTRY").field("Stream", &self.Stream).field("SemanticName", &self.SemanticName).field("SemanticIndex", &self.SemanticIndex).field("StartComponent", &self.StartComponent).field("ComponentCount", &self.ComponentCount).field("OutputSlot", &self.OutputSlot).finish()
31451 }
31452}
31453impl ::windows::core::TypeKind for D3D12_SO_DECLARATION_ENTRY {
31454 type TypeKind = ::windows::core::CopyType;
31455}
31456impl ::core::cmp::PartialEq for D3D12_SO_DECLARATION_ENTRY {
31457 fn eq(&self, other: &Self) -> bool {
31458 self.Stream == other.Stream && self.SemanticName == other.SemanticName && self.SemanticIndex == other.SemanticIndex && self.StartComponent == other.StartComponent && self.ComponentCount == other.ComponentCount && self.OutputSlot == other.OutputSlot
31459 }
31460}
31461impl ::core::cmp::Eq for D3D12_SO_DECLARATION_ENTRY {}
31462impl ::core::default::Default for D3D12_SO_DECLARATION_ENTRY {
31463 fn default() -> Self {
31464 unsafe { ::core::mem::zeroed() }
31465 }
31466}
31467#[repr(C)]
31468#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31469pub struct D3D12_STATE_OBJECT_CONFIG {
31470 pub Flags: D3D12_STATE_OBJECT_FLAGS,
31471}
31472impl ::core::marker::Copy for D3D12_STATE_OBJECT_CONFIG {}
31473impl ::core::clone::Clone for D3D12_STATE_OBJECT_CONFIG {
31474 fn clone(&self) -> Self {
31475 *self
31476 }
31477}
31478impl ::core::fmt::Debug for D3D12_STATE_OBJECT_CONFIG {
31479 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31480 f.debug_struct("D3D12_STATE_OBJECT_CONFIG").field("Flags", &self.Flags).finish()
31481 }
31482}
31483impl ::windows::core::TypeKind for D3D12_STATE_OBJECT_CONFIG {
31484 type TypeKind = ::windows::core::CopyType;
31485}
31486impl ::core::cmp::PartialEq for D3D12_STATE_OBJECT_CONFIG {
31487 fn eq(&self, other: &Self) -> bool {
31488 self.Flags == other.Flags
31489 }
31490}
31491impl ::core::cmp::Eq for D3D12_STATE_OBJECT_CONFIG {}
31492impl ::core::default::Default for D3D12_STATE_OBJECT_CONFIG {
31493 fn default() -> Self {
31494 unsafe { ::core::mem::zeroed() }
31495 }
31496}
31497#[repr(C)]
31498#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31499pub struct D3D12_STATE_OBJECT_DESC {
31500 pub Type: D3D12_STATE_OBJECT_TYPE,
31501 pub NumSubobjects: u32,
31502 pub pSubobjects: *const D3D12_STATE_SUBOBJECT,
31503}
31504impl ::core::marker::Copy for D3D12_STATE_OBJECT_DESC {}
31505impl ::core::clone::Clone for D3D12_STATE_OBJECT_DESC {
31506 fn clone(&self) -> Self {
31507 *self
31508 }
31509}
31510impl ::core::fmt::Debug for D3D12_STATE_OBJECT_DESC {
31511 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31512 f.debug_struct("D3D12_STATE_OBJECT_DESC").field("Type", &self.Type).field("NumSubobjects", &self.NumSubobjects).field("pSubobjects", &self.pSubobjects).finish()
31513 }
31514}
31515impl ::windows::core::TypeKind for D3D12_STATE_OBJECT_DESC {
31516 type TypeKind = ::windows::core::CopyType;
31517}
31518impl ::core::cmp::PartialEq for D3D12_STATE_OBJECT_DESC {
31519 fn eq(&self, other: &Self) -> bool {
31520 self.Type == other.Type && self.NumSubobjects == other.NumSubobjects && self.pSubobjects == other.pSubobjects
31521 }
31522}
31523impl ::core::cmp::Eq for D3D12_STATE_OBJECT_DESC {}
31524impl ::core::default::Default for D3D12_STATE_OBJECT_DESC {
31525 fn default() -> Self {
31526 unsafe { ::core::mem::zeroed() }
31527 }
31528}
31529#[repr(C)]
31530#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31531pub struct D3D12_STATE_SUBOBJECT {
31532 pub Type: D3D12_STATE_SUBOBJECT_TYPE,
31533 pub pDesc: *const ::core::ffi::c_void,
31534}
31535impl ::core::marker::Copy for D3D12_STATE_SUBOBJECT {}
31536impl ::core::clone::Clone for D3D12_STATE_SUBOBJECT {
31537 fn clone(&self) -> Self {
31538 *self
31539 }
31540}
31541impl ::core::fmt::Debug for D3D12_STATE_SUBOBJECT {
31542 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31543 f.debug_struct("D3D12_STATE_SUBOBJECT").field("Type", &self.Type).field("pDesc", &self.pDesc).finish()
31544 }
31545}
31546impl ::windows::core::TypeKind for D3D12_STATE_SUBOBJECT {
31547 type TypeKind = ::windows::core::CopyType;
31548}
31549impl ::core::cmp::PartialEq for D3D12_STATE_SUBOBJECT {
31550 fn eq(&self, other: &Self) -> bool {
31551 self.Type == other.Type && self.pDesc == other.pDesc
31552 }
31553}
31554impl ::core::cmp::Eq for D3D12_STATE_SUBOBJECT {}
31555impl ::core::default::Default for D3D12_STATE_SUBOBJECT {
31556 fn default() -> Self {
31557 unsafe { ::core::mem::zeroed() }
31558 }
31559}
31560#[repr(C)]
31561#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31562pub struct D3D12_STATIC_SAMPLER_DESC {
31563 pub Filter: D3D12_FILTER,
31564 pub AddressU: D3D12_TEXTURE_ADDRESS_MODE,
31565 pub AddressV: D3D12_TEXTURE_ADDRESS_MODE,
31566 pub AddressW: D3D12_TEXTURE_ADDRESS_MODE,
31567 pub MipLODBias: f32,
31568 pub MaxAnisotropy: u32,
31569 pub ComparisonFunc: D3D12_COMPARISON_FUNC,
31570 pub BorderColor: D3D12_STATIC_BORDER_COLOR,
31571 pub MinLOD: f32,
31572 pub MaxLOD: f32,
31573 pub ShaderRegister: u32,
31574 pub RegisterSpace: u32,
31575 pub ShaderVisibility: D3D12_SHADER_VISIBILITY,
31576}
31577impl ::core::marker::Copy for D3D12_STATIC_SAMPLER_DESC {}
31578impl ::core::clone::Clone for D3D12_STATIC_SAMPLER_DESC {
31579 fn clone(&self) -> Self {
31580 *self
31581 }
31582}
31583impl ::core::fmt::Debug for D3D12_STATIC_SAMPLER_DESC {
31584 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31585 f.debug_struct("D3D12_STATIC_SAMPLER_DESC")
31586 .field("Filter", &self.Filter)
31587 .field("AddressU", &self.AddressU)
31588 .field("AddressV", &self.AddressV)
31589 .field("AddressW", &self.AddressW)
31590 .field("MipLODBias", &self.MipLODBias)
31591 .field("MaxAnisotropy", &self.MaxAnisotropy)
31592 .field("ComparisonFunc", &self.ComparisonFunc)
31593 .field("BorderColor", &self.BorderColor)
31594 .field("MinLOD", &self.MinLOD)
31595 .field("MaxLOD", &self.MaxLOD)
31596 .field("ShaderRegister", &self.ShaderRegister)
31597 .field("RegisterSpace", &self.RegisterSpace)
31598 .field("ShaderVisibility", &self.ShaderVisibility)
31599 .finish()
31600 }
31601}
31602impl ::windows::core::TypeKind for D3D12_STATIC_SAMPLER_DESC {
31603 type TypeKind = ::windows::core::CopyType;
31604}
31605impl ::core::cmp::PartialEq for D3D12_STATIC_SAMPLER_DESC {
31606 fn eq(&self, other: &Self) -> bool {
31607 self.Filter == other.Filter && self.AddressU == other.AddressU && self.AddressV == other.AddressV && self.AddressW == other.AddressW && self.MipLODBias == other.MipLODBias && self.MaxAnisotropy == other.MaxAnisotropy && self.ComparisonFunc == other.ComparisonFunc && self.BorderColor == other.BorderColor && self.MinLOD == other.MinLOD && self.MaxLOD == other.MaxLOD && self.ShaderRegister == other.ShaderRegister && self.RegisterSpace == other.RegisterSpace && self.ShaderVisibility == other.ShaderVisibility
31608 }
31609}
31610impl ::core::cmp::Eq for D3D12_STATIC_SAMPLER_DESC {}
31611impl ::core::default::Default for D3D12_STATIC_SAMPLER_DESC {
31612 fn default() -> Self {
31613 unsafe { ::core::mem::zeroed() }
31614 }
31615}
31616#[repr(C)]
31617#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31618pub struct D3D12_STREAM_OUTPUT_BUFFER_VIEW {
31619 pub BufferLocation: u64,
31620 pub SizeInBytes: u64,
31621 pub BufferFilledSizeLocation: u64,
31622}
31623impl ::core::marker::Copy for D3D12_STREAM_OUTPUT_BUFFER_VIEW {}
31624impl ::core::clone::Clone for D3D12_STREAM_OUTPUT_BUFFER_VIEW {
31625 fn clone(&self) -> Self {
31626 *self
31627 }
31628}
31629impl ::core::fmt::Debug for D3D12_STREAM_OUTPUT_BUFFER_VIEW {
31630 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31631 f.debug_struct("D3D12_STREAM_OUTPUT_BUFFER_VIEW").field("BufferLocation", &self.BufferLocation).field("SizeInBytes", &self.SizeInBytes).field("BufferFilledSizeLocation", &self.BufferFilledSizeLocation).finish()
31632 }
31633}
31634impl ::windows::core::TypeKind for D3D12_STREAM_OUTPUT_BUFFER_VIEW {
31635 type TypeKind = ::windows::core::CopyType;
31636}
31637impl ::core::cmp::PartialEq for D3D12_STREAM_OUTPUT_BUFFER_VIEW {
31638 fn eq(&self, other: &Self) -> bool {
31639 self.BufferLocation == other.BufferLocation && self.SizeInBytes == other.SizeInBytes && self.BufferFilledSizeLocation == other.BufferFilledSizeLocation
31640 }
31641}
31642impl ::core::cmp::Eq for D3D12_STREAM_OUTPUT_BUFFER_VIEW {}
31643impl ::core::default::Default for D3D12_STREAM_OUTPUT_BUFFER_VIEW {
31644 fn default() -> Self {
31645 unsafe { ::core::mem::zeroed() }
31646 }
31647}
31648#[repr(C)]
31649#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31650pub struct D3D12_STREAM_OUTPUT_DESC {
31651 pub pSODeclaration: *const D3D12_SO_DECLARATION_ENTRY,
31652 pub NumEntries: u32,
31653 pub pBufferStrides: *const u32,
31654 pub NumStrides: u32,
31655 pub RasterizedStream: u32,
31656}
31657impl ::core::marker::Copy for D3D12_STREAM_OUTPUT_DESC {}
31658impl ::core::clone::Clone for D3D12_STREAM_OUTPUT_DESC {
31659 fn clone(&self) -> Self {
31660 *self
31661 }
31662}
31663impl ::core::fmt::Debug for D3D12_STREAM_OUTPUT_DESC {
31664 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31665 f.debug_struct("D3D12_STREAM_OUTPUT_DESC").field("pSODeclaration", &self.pSODeclaration).field("NumEntries", &self.NumEntries).field("pBufferStrides", &self.pBufferStrides).field("NumStrides", &self.NumStrides).field("RasterizedStream", &self.RasterizedStream).finish()
31666 }
31667}
31668impl ::windows::core::TypeKind for D3D12_STREAM_OUTPUT_DESC {
31669 type TypeKind = ::windows::core::CopyType;
31670}
31671impl ::core::cmp::PartialEq for D3D12_STREAM_OUTPUT_DESC {
31672 fn eq(&self, other: &Self) -> bool {
31673 self.pSODeclaration == other.pSODeclaration && self.NumEntries == other.NumEntries && self.pBufferStrides == other.pBufferStrides && self.NumStrides == other.NumStrides && self.RasterizedStream == other.RasterizedStream
31674 }
31675}
31676impl ::core::cmp::Eq for D3D12_STREAM_OUTPUT_DESC {}
31677impl ::core::default::Default for D3D12_STREAM_OUTPUT_DESC {
31678 fn default() -> Self {
31679 unsafe { ::core::mem::zeroed() }
31680 }
31681}
31682#[repr(C)]
31683#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31684pub struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
31685 pub pSubobjectToAssociate: *const D3D12_STATE_SUBOBJECT,
31686 pub NumExports: u32,
31687 pub pExports: *const ::windows::core::PCWSTR,
31688}
31689impl ::core::marker::Copy for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {}
31690impl ::core::clone::Clone for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
31691 fn clone(&self) -> Self {
31692 *self
31693 }
31694}
31695impl ::core::fmt::Debug for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
31696 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31697 f.debug_struct("D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION").field("pSubobjectToAssociate", &self.pSubobjectToAssociate).field("NumExports", &self.NumExports).field("pExports", &self.pExports).finish()
31698 }
31699}
31700impl ::windows::core::TypeKind for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
31701 type TypeKind = ::windows::core::CopyType;
31702}
31703impl ::core::cmp::PartialEq for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
31704 fn eq(&self, other: &Self) -> bool {
31705 self.pSubobjectToAssociate == other.pSubobjectToAssociate && self.NumExports == other.NumExports && self.pExports == other.pExports
31706 }
31707}
31708impl ::core::cmp::Eq for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {}
31709impl ::core::default::Default for D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION {
31710 fn default() -> Self {
31711 unsafe { ::core::mem::zeroed() }
31712 }
31713}
31714#[repr(C)]
31715#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31716pub struct D3D12_SUBRESOURCE_DATA {
31717 pub pData: *const ::core::ffi::c_void,
31718 pub RowPitch: isize,
31719 pub SlicePitch: isize,
31720}
31721impl ::core::marker::Copy for D3D12_SUBRESOURCE_DATA {}
31722impl ::core::clone::Clone for D3D12_SUBRESOURCE_DATA {
31723 fn clone(&self) -> Self {
31724 *self
31725 }
31726}
31727impl ::core::fmt::Debug for D3D12_SUBRESOURCE_DATA {
31728 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31729 f.debug_struct("D3D12_SUBRESOURCE_DATA").field("pData", &self.pData).field("RowPitch", &self.RowPitch).field("SlicePitch", &self.SlicePitch).finish()
31730 }
31731}
31732impl ::windows::core::TypeKind for D3D12_SUBRESOURCE_DATA {
31733 type TypeKind = ::windows::core::CopyType;
31734}
31735impl ::core::cmp::PartialEq for D3D12_SUBRESOURCE_DATA {
31736 fn eq(&self, other: &Self) -> bool {
31737 self.pData == other.pData && self.RowPitch == other.RowPitch && self.SlicePitch == other.SlicePitch
31738 }
31739}
31740impl ::core::cmp::Eq for D3D12_SUBRESOURCE_DATA {}
31741impl ::core::default::Default for D3D12_SUBRESOURCE_DATA {
31742 fn default() -> Self {
31743 unsafe { ::core::mem::zeroed() }
31744 }
31745}
31746#[repr(C)]
31747#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
31748#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31749pub struct D3D12_SUBRESOURCE_FOOTPRINT {
31750 pub Format: super::Dxgi::Common::DXGI_FORMAT,
31751 pub Width: u32,
31752 pub Height: u32,
31753 pub Depth: u32,
31754 pub RowPitch: u32,
31755}
31756#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31757impl ::core::marker::Copy for D3D12_SUBRESOURCE_FOOTPRINT {}
31758#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31759impl ::core::clone::Clone for D3D12_SUBRESOURCE_FOOTPRINT {
31760 fn clone(&self) -> Self {
31761 *self
31762 }
31763}
31764#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31765impl ::core::fmt::Debug for D3D12_SUBRESOURCE_FOOTPRINT {
31766 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31767 f.debug_struct("D3D12_SUBRESOURCE_FOOTPRINT").field("Format", &self.Format).field("Width", &self.Width).field("Height", &self.Height).field("Depth", &self.Depth).field("RowPitch", &self.RowPitch).finish()
31768 }
31769}
31770#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31771impl ::windows::core::TypeKind for D3D12_SUBRESOURCE_FOOTPRINT {
31772 type TypeKind = ::windows::core::CopyType;
31773}
31774#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31775impl ::core::cmp::PartialEq for D3D12_SUBRESOURCE_FOOTPRINT {
31776 fn eq(&self, other: &Self) -> bool {
31777 self.Format == other.Format && self.Width == other.Width && self.Height == other.Height && self.Depth == other.Depth && self.RowPitch == other.RowPitch
31778 }
31779}
31780#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31781impl ::core::cmp::Eq for D3D12_SUBRESOURCE_FOOTPRINT {}
31782#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
31783impl ::core::default::Default for D3D12_SUBRESOURCE_FOOTPRINT {
31784 fn default() -> Self {
31785 unsafe { ::core::mem::zeroed() }
31786 }
31787}
31788#[repr(C)]
31789#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31790pub struct D3D12_SUBRESOURCE_INFO {
31791 pub Offset: u64,
31792 pub RowPitch: u32,
31793 pub DepthPitch: u32,
31794}
31795impl ::core::marker::Copy for D3D12_SUBRESOURCE_INFO {}
31796impl ::core::clone::Clone for D3D12_SUBRESOURCE_INFO {
31797 fn clone(&self) -> Self {
31798 *self
31799 }
31800}
31801impl ::core::fmt::Debug for D3D12_SUBRESOURCE_INFO {
31802 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31803 f.debug_struct("D3D12_SUBRESOURCE_INFO").field("Offset", &self.Offset).field("RowPitch", &self.RowPitch).field("DepthPitch", &self.DepthPitch).finish()
31804 }
31805}
31806impl ::windows::core::TypeKind for D3D12_SUBRESOURCE_INFO {
31807 type TypeKind = ::windows::core::CopyType;
31808}
31809impl ::core::cmp::PartialEq for D3D12_SUBRESOURCE_INFO {
31810 fn eq(&self, other: &Self) -> bool {
31811 self.Offset == other.Offset && self.RowPitch == other.RowPitch && self.DepthPitch == other.DepthPitch
31812 }
31813}
31814impl ::core::cmp::Eq for D3D12_SUBRESOURCE_INFO {}
31815impl ::core::default::Default for D3D12_SUBRESOURCE_INFO {
31816 fn default() -> Self {
31817 unsafe { ::core::mem::zeroed() }
31818 }
31819}
31820#[repr(C)]
31821#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31822pub struct D3D12_SUBRESOURCE_RANGE_UINT64 {
31823 pub Subresource: u32,
31824 pub Range: D3D12_RANGE_UINT64,
31825}
31826impl ::core::marker::Copy for D3D12_SUBRESOURCE_RANGE_UINT64 {}
31827impl ::core::clone::Clone for D3D12_SUBRESOURCE_RANGE_UINT64 {
31828 fn clone(&self) -> Self {
31829 *self
31830 }
31831}
31832impl ::core::fmt::Debug for D3D12_SUBRESOURCE_RANGE_UINT64 {
31833 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31834 f.debug_struct("D3D12_SUBRESOURCE_RANGE_UINT64").field("Subresource", &self.Subresource).field("Range", &self.Range).finish()
31835 }
31836}
31837impl ::windows::core::TypeKind for D3D12_SUBRESOURCE_RANGE_UINT64 {
31838 type TypeKind = ::windows::core::CopyType;
31839}
31840impl ::core::cmp::PartialEq for D3D12_SUBRESOURCE_RANGE_UINT64 {
31841 fn eq(&self, other: &Self) -> bool {
31842 self.Subresource == other.Subresource && self.Range == other.Range
31843 }
31844}
31845impl ::core::cmp::Eq for D3D12_SUBRESOURCE_RANGE_UINT64 {}
31846impl ::core::default::Default for D3D12_SUBRESOURCE_RANGE_UINT64 {
31847 fn default() -> Self {
31848 unsafe { ::core::mem::zeroed() }
31849 }
31850}
31851#[repr(C)]
31852#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31853pub struct D3D12_SUBRESOURCE_TILING {
31854 pub WidthInTiles: u32,
31855 pub HeightInTiles: u16,
31856 pub DepthInTiles: u16,
31857 pub StartTileIndexInOverallResource: u32,
31858}
31859impl ::core::marker::Copy for D3D12_SUBRESOURCE_TILING {}
31860impl ::core::clone::Clone for D3D12_SUBRESOURCE_TILING {
31861 fn clone(&self) -> Self {
31862 *self
31863 }
31864}
31865impl ::core::fmt::Debug for D3D12_SUBRESOURCE_TILING {
31866 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31867 f.debug_struct("D3D12_SUBRESOURCE_TILING").field("WidthInTiles", &self.WidthInTiles).field("HeightInTiles", &self.HeightInTiles).field("DepthInTiles", &self.DepthInTiles).field("StartTileIndexInOverallResource", &self.StartTileIndexInOverallResource).finish()
31868 }
31869}
31870impl ::windows::core::TypeKind for D3D12_SUBRESOURCE_TILING {
31871 type TypeKind = ::windows::core::CopyType;
31872}
31873impl ::core::cmp::PartialEq for D3D12_SUBRESOURCE_TILING {
31874 fn eq(&self, other: &Self) -> bool {
31875 self.WidthInTiles == other.WidthInTiles && self.HeightInTiles == other.HeightInTiles && self.DepthInTiles == other.DepthInTiles && self.StartTileIndexInOverallResource == other.StartTileIndexInOverallResource
31876 }
31877}
31878impl ::core::cmp::Eq for D3D12_SUBRESOURCE_TILING {}
31879impl ::core::default::Default for D3D12_SUBRESOURCE_TILING {
31880 fn default() -> Self {
31881 unsafe { ::core::mem::zeroed() }
31882 }
31883}
31884#[repr(C)]
31885#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31886pub struct D3D12_TEX1D_ARRAY_DSV {
31887 pub MipSlice: u32,
31888 pub FirstArraySlice: u32,
31889 pub ArraySize: u32,
31890}
31891impl ::core::marker::Copy for D3D12_TEX1D_ARRAY_DSV {}
31892impl ::core::clone::Clone for D3D12_TEX1D_ARRAY_DSV {
31893 fn clone(&self) -> Self {
31894 *self
31895 }
31896}
31897impl ::core::fmt::Debug for D3D12_TEX1D_ARRAY_DSV {
31898 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31899 f.debug_struct("D3D12_TEX1D_ARRAY_DSV").field("MipSlice", &self.MipSlice).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
31900 }
31901}
31902impl ::windows::core::TypeKind for D3D12_TEX1D_ARRAY_DSV {
31903 type TypeKind = ::windows::core::CopyType;
31904}
31905impl ::core::cmp::PartialEq for D3D12_TEX1D_ARRAY_DSV {
31906 fn eq(&self, other: &Self) -> bool {
31907 self.MipSlice == other.MipSlice && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
31908 }
31909}
31910impl ::core::cmp::Eq for D3D12_TEX1D_ARRAY_DSV {}
31911impl ::core::default::Default for D3D12_TEX1D_ARRAY_DSV {
31912 fn default() -> Self {
31913 unsafe { ::core::mem::zeroed() }
31914 }
31915}
31916#[repr(C)]
31917#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31918pub struct D3D12_TEX1D_ARRAY_RTV {
31919 pub MipSlice: u32,
31920 pub FirstArraySlice: u32,
31921 pub ArraySize: u32,
31922}
31923impl ::core::marker::Copy for D3D12_TEX1D_ARRAY_RTV {}
31924impl ::core::clone::Clone for D3D12_TEX1D_ARRAY_RTV {
31925 fn clone(&self) -> Self {
31926 *self
31927 }
31928}
31929impl ::core::fmt::Debug for D3D12_TEX1D_ARRAY_RTV {
31930 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31931 f.debug_struct("D3D12_TEX1D_ARRAY_RTV").field("MipSlice", &self.MipSlice).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
31932 }
31933}
31934impl ::windows::core::TypeKind for D3D12_TEX1D_ARRAY_RTV {
31935 type TypeKind = ::windows::core::CopyType;
31936}
31937impl ::core::cmp::PartialEq for D3D12_TEX1D_ARRAY_RTV {
31938 fn eq(&self, other: &Self) -> bool {
31939 self.MipSlice == other.MipSlice && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
31940 }
31941}
31942impl ::core::cmp::Eq for D3D12_TEX1D_ARRAY_RTV {}
31943impl ::core::default::Default for D3D12_TEX1D_ARRAY_RTV {
31944 fn default() -> Self {
31945 unsafe { ::core::mem::zeroed() }
31946 }
31947}
31948#[repr(C)]
31949#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31950pub struct D3D12_TEX1D_ARRAY_SRV {
31951 pub MostDetailedMip: u32,
31952 pub MipLevels: u32,
31953 pub FirstArraySlice: u32,
31954 pub ArraySize: u32,
31955 pub ResourceMinLODClamp: f32,
31956}
31957impl ::core::marker::Copy for D3D12_TEX1D_ARRAY_SRV {}
31958impl ::core::clone::Clone for D3D12_TEX1D_ARRAY_SRV {
31959 fn clone(&self) -> Self {
31960 *self
31961 }
31962}
31963impl ::core::fmt::Debug for D3D12_TEX1D_ARRAY_SRV {
31964 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31965 f.debug_struct("D3D12_TEX1D_ARRAY_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
31966 }
31967}
31968impl ::windows::core::TypeKind for D3D12_TEX1D_ARRAY_SRV {
31969 type TypeKind = ::windows::core::CopyType;
31970}
31971impl ::core::cmp::PartialEq for D3D12_TEX1D_ARRAY_SRV {
31972 fn eq(&self, other: &Self) -> bool {
31973 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize && self.ResourceMinLODClamp == other.ResourceMinLODClamp
31974 }
31975}
31976impl ::core::cmp::Eq for D3D12_TEX1D_ARRAY_SRV {}
31977impl ::core::default::Default for D3D12_TEX1D_ARRAY_SRV {
31978 fn default() -> Self {
31979 unsafe { ::core::mem::zeroed() }
31980 }
31981}
31982#[repr(C)]
31983#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
31984pub struct D3D12_TEX1D_ARRAY_UAV {
31985 pub MipSlice: u32,
31986 pub FirstArraySlice: u32,
31987 pub ArraySize: u32,
31988}
31989impl ::core::marker::Copy for D3D12_TEX1D_ARRAY_UAV {}
31990impl ::core::clone::Clone for D3D12_TEX1D_ARRAY_UAV {
31991 fn clone(&self) -> Self {
31992 *self
31993 }
31994}
31995impl ::core::fmt::Debug for D3D12_TEX1D_ARRAY_UAV {
31996 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
31997 f.debug_struct("D3D12_TEX1D_ARRAY_UAV").field("MipSlice", &self.MipSlice).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
31998 }
31999}
32000impl ::windows::core::TypeKind for D3D12_TEX1D_ARRAY_UAV {
32001 type TypeKind = ::windows::core::CopyType;
32002}
32003impl ::core::cmp::PartialEq for D3D12_TEX1D_ARRAY_UAV {
32004 fn eq(&self, other: &Self) -> bool {
32005 self.MipSlice == other.MipSlice && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
32006 }
32007}
32008impl ::core::cmp::Eq for D3D12_TEX1D_ARRAY_UAV {}
32009impl ::core::default::Default for D3D12_TEX1D_ARRAY_UAV {
32010 fn default() -> Self {
32011 unsafe { ::core::mem::zeroed() }
32012 }
32013}
32014#[repr(C)]
32015#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32016pub struct D3D12_TEX1D_DSV {
32017 pub MipSlice: u32,
32018}
32019impl ::core::marker::Copy for D3D12_TEX1D_DSV {}
32020impl ::core::clone::Clone for D3D12_TEX1D_DSV {
32021 fn clone(&self) -> Self {
32022 *self
32023 }
32024}
32025impl ::core::fmt::Debug for D3D12_TEX1D_DSV {
32026 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32027 f.debug_struct("D3D12_TEX1D_DSV").field("MipSlice", &self.MipSlice).finish()
32028 }
32029}
32030impl ::windows::core::TypeKind for D3D12_TEX1D_DSV {
32031 type TypeKind = ::windows::core::CopyType;
32032}
32033impl ::core::cmp::PartialEq for D3D12_TEX1D_DSV {
32034 fn eq(&self, other: &Self) -> bool {
32035 self.MipSlice == other.MipSlice
32036 }
32037}
32038impl ::core::cmp::Eq for D3D12_TEX1D_DSV {}
32039impl ::core::default::Default for D3D12_TEX1D_DSV {
32040 fn default() -> Self {
32041 unsafe { ::core::mem::zeroed() }
32042 }
32043}
32044#[repr(C)]
32045#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32046pub struct D3D12_TEX1D_RTV {
32047 pub MipSlice: u32,
32048}
32049impl ::core::marker::Copy for D3D12_TEX1D_RTV {}
32050impl ::core::clone::Clone for D3D12_TEX1D_RTV {
32051 fn clone(&self) -> Self {
32052 *self
32053 }
32054}
32055impl ::core::fmt::Debug for D3D12_TEX1D_RTV {
32056 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32057 f.debug_struct("D3D12_TEX1D_RTV").field("MipSlice", &self.MipSlice).finish()
32058 }
32059}
32060impl ::windows::core::TypeKind for D3D12_TEX1D_RTV {
32061 type TypeKind = ::windows::core::CopyType;
32062}
32063impl ::core::cmp::PartialEq for D3D12_TEX1D_RTV {
32064 fn eq(&self, other: &Self) -> bool {
32065 self.MipSlice == other.MipSlice
32066 }
32067}
32068impl ::core::cmp::Eq for D3D12_TEX1D_RTV {}
32069impl ::core::default::Default for D3D12_TEX1D_RTV {
32070 fn default() -> Self {
32071 unsafe { ::core::mem::zeroed() }
32072 }
32073}
32074#[repr(C)]
32075#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32076pub struct D3D12_TEX1D_SRV {
32077 pub MostDetailedMip: u32,
32078 pub MipLevels: u32,
32079 pub ResourceMinLODClamp: f32,
32080}
32081impl ::core::marker::Copy for D3D12_TEX1D_SRV {}
32082impl ::core::clone::Clone for D3D12_TEX1D_SRV {
32083 fn clone(&self) -> Self {
32084 *self
32085 }
32086}
32087impl ::core::fmt::Debug for D3D12_TEX1D_SRV {
32088 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32089 f.debug_struct("D3D12_TEX1D_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
32090 }
32091}
32092impl ::windows::core::TypeKind for D3D12_TEX1D_SRV {
32093 type TypeKind = ::windows::core::CopyType;
32094}
32095impl ::core::cmp::PartialEq for D3D12_TEX1D_SRV {
32096 fn eq(&self, other: &Self) -> bool {
32097 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.ResourceMinLODClamp == other.ResourceMinLODClamp
32098 }
32099}
32100impl ::core::cmp::Eq for D3D12_TEX1D_SRV {}
32101impl ::core::default::Default for D3D12_TEX1D_SRV {
32102 fn default() -> Self {
32103 unsafe { ::core::mem::zeroed() }
32104 }
32105}
32106#[repr(C)]
32107#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32108pub struct D3D12_TEX1D_UAV {
32109 pub MipSlice: u32,
32110}
32111impl ::core::marker::Copy for D3D12_TEX1D_UAV {}
32112impl ::core::clone::Clone for D3D12_TEX1D_UAV {
32113 fn clone(&self) -> Self {
32114 *self
32115 }
32116}
32117impl ::core::fmt::Debug for D3D12_TEX1D_UAV {
32118 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32119 f.debug_struct("D3D12_TEX1D_UAV").field("MipSlice", &self.MipSlice).finish()
32120 }
32121}
32122impl ::windows::core::TypeKind for D3D12_TEX1D_UAV {
32123 type TypeKind = ::windows::core::CopyType;
32124}
32125impl ::core::cmp::PartialEq for D3D12_TEX1D_UAV {
32126 fn eq(&self, other: &Self) -> bool {
32127 self.MipSlice == other.MipSlice
32128 }
32129}
32130impl ::core::cmp::Eq for D3D12_TEX1D_UAV {}
32131impl ::core::default::Default for D3D12_TEX1D_UAV {
32132 fn default() -> Self {
32133 unsafe { ::core::mem::zeroed() }
32134 }
32135}
32136#[repr(C)]
32137#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32138pub struct D3D12_TEX2DMS_ARRAY_DSV {
32139 pub FirstArraySlice: u32,
32140 pub ArraySize: u32,
32141}
32142impl ::core::marker::Copy for D3D12_TEX2DMS_ARRAY_DSV {}
32143impl ::core::clone::Clone for D3D12_TEX2DMS_ARRAY_DSV {
32144 fn clone(&self) -> Self {
32145 *self
32146 }
32147}
32148impl ::core::fmt::Debug for D3D12_TEX2DMS_ARRAY_DSV {
32149 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32150 f.debug_struct("D3D12_TEX2DMS_ARRAY_DSV").field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
32151 }
32152}
32153impl ::windows::core::TypeKind for D3D12_TEX2DMS_ARRAY_DSV {
32154 type TypeKind = ::windows::core::CopyType;
32155}
32156impl ::core::cmp::PartialEq for D3D12_TEX2DMS_ARRAY_DSV {
32157 fn eq(&self, other: &Self) -> bool {
32158 self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
32159 }
32160}
32161impl ::core::cmp::Eq for D3D12_TEX2DMS_ARRAY_DSV {}
32162impl ::core::default::Default for D3D12_TEX2DMS_ARRAY_DSV {
32163 fn default() -> Self {
32164 unsafe { ::core::mem::zeroed() }
32165 }
32166}
32167#[repr(C)]
32168#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32169pub struct D3D12_TEX2DMS_ARRAY_RTV {
32170 pub FirstArraySlice: u32,
32171 pub ArraySize: u32,
32172}
32173impl ::core::marker::Copy for D3D12_TEX2DMS_ARRAY_RTV {}
32174impl ::core::clone::Clone for D3D12_TEX2DMS_ARRAY_RTV {
32175 fn clone(&self) -> Self {
32176 *self
32177 }
32178}
32179impl ::core::fmt::Debug for D3D12_TEX2DMS_ARRAY_RTV {
32180 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32181 f.debug_struct("D3D12_TEX2DMS_ARRAY_RTV").field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
32182 }
32183}
32184impl ::windows::core::TypeKind for D3D12_TEX2DMS_ARRAY_RTV {
32185 type TypeKind = ::windows::core::CopyType;
32186}
32187impl ::core::cmp::PartialEq for D3D12_TEX2DMS_ARRAY_RTV {
32188 fn eq(&self, other: &Self) -> bool {
32189 self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
32190 }
32191}
32192impl ::core::cmp::Eq for D3D12_TEX2DMS_ARRAY_RTV {}
32193impl ::core::default::Default for D3D12_TEX2DMS_ARRAY_RTV {
32194 fn default() -> Self {
32195 unsafe { ::core::mem::zeroed() }
32196 }
32197}
32198#[repr(C)]
32199#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32200pub struct D3D12_TEX2DMS_ARRAY_SRV {
32201 pub FirstArraySlice: u32,
32202 pub ArraySize: u32,
32203}
32204impl ::core::marker::Copy for D3D12_TEX2DMS_ARRAY_SRV {}
32205impl ::core::clone::Clone for D3D12_TEX2DMS_ARRAY_SRV {
32206 fn clone(&self) -> Self {
32207 *self
32208 }
32209}
32210impl ::core::fmt::Debug for D3D12_TEX2DMS_ARRAY_SRV {
32211 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32212 f.debug_struct("D3D12_TEX2DMS_ARRAY_SRV").field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
32213 }
32214}
32215impl ::windows::core::TypeKind for D3D12_TEX2DMS_ARRAY_SRV {
32216 type TypeKind = ::windows::core::CopyType;
32217}
32218impl ::core::cmp::PartialEq for D3D12_TEX2DMS_ARRAY_SRV {
32219 fn eq(&self, other: &Self) -> bool {
32220 self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
32221 }
32222}
32223impl ::core::cmp::Eq for D3D12_TEX2DMS_ARRAY_SRV {}
32224impl ::core::default::Default for D3D12_TEX2DMS_ARRAY_SRV {
32225 fn default() -> Self {
32226 unsafe { ::core::mem::zeroed() }
32227 }
32228}
32229#[repr(C)]
32230#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32231pub struct D3D12_TEX2DMS_ARRAY_UAV {
32232 pub FirstArraySlice: u32,
32233 pub ArraySize: u32,
32234}
32235impl ::core::marker::Copy for D3D12_TEX2DMS_ARRAY_UAV {}
32236impl ::core::clone::Clone for D3D12_TEX2DMS_ARRAY_UAV {
32237 fn clone(&self) -> Self {
32238 *self
32239 }
32240}
32241impl ::core::fmt::Debug for D3D12_TEX2DMS_ARRAY_UAV {
32242 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32243 f.debug_struct("D3D12_TEX2DMS_ARRAY_UAV").field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
32244 }
32245}
32246impl ::windows::core::TypeKind for D3D12_TEX2DMS_ARRAY_UAV {
32247 type TypeKind = ::windows::core::CopyType;
32248}
32249impl ::core::cmp::PartialEq for D3D12_TEX2DMS_ARRAY_UAV {
32250 fn eq(&self, other: &Self) -> bool {
32251 self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
32252 }
32253}
32254impl ::core::cmp::Eq for D3D12_TEX2DMS_ARRAY_UAV {}
32255impl ::core::default::Default for D3D12_TEX2DMS_ARRAY_UAV {
32256 fn default() -> Self {
32257 unsafe { ::core::mem::zeroed() }
32258 }
32259}
32260#[repr(C)]
32261#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32262pub struct D3D12_TEX2DMS_DSV {
32263 pub UnusedField_NothingToDefine: u32,
32264}
32265impl ::core::marker::Copy for D3D12_TEX2DMS_DSV {}
32266impl ::core::clone::Clone for D3D12_TEX2DMS_DSV {
32267 fn clone(&self) -> Self {
32268 *self
32269 }
32270}
32271impl ::core::fmt::Debug for D3D12_TEX2DMS_DSV {
32272 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32273 f.debug_struct("D3D12_TEX2DMS_DSV").field("UnusedField_NothingToDefine", &self.UnusedField_NothingToDefine).finish()
32274 }
32275}
32276impl ::windows::core::TypeKind for D3D12_TEX2DMS_DSV {
32277 type TypeKind = ::windows::core::CopyType;
32278}
32279impl ::core::cmp::PartialEq for D3D12_TEX2DMS_DSV {
32280 fn eq(&self, other: &Self) -> bool {
32281 self.UnusedField_NothingToDefine == other.UnusedField_NothingToDefine
32282 }
32283}
32284impl ::core::cmp::Eq for D3D12_TEX2DMS_DSV {}
32285impl ::core::default::Default for D3D12_TEX2DMS_DSV {
32286 fn default() -> Self {
32287 unsafe { ::core::mem::zeroed() }
32288 }
32289}
32290#[repr(C)]
32291#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32292pub struct D3D12_TEX2DMS_RTV {
32293 pub UnusedField_NothingToDefine: u32,
32294}
32295impl ::core::marker::Copy for D3D12_TEX2DMS_RTV {}
32296impl ::core::clone::Clone for D3D12_TEX2DMS_RTV {
32297 fn clone(&self) -> Self {
32298 *self
32299 }
32300}
32301impl ::core::fmt::Debug for D3D12_TEX2DMS_RTV {
32302 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32303 f.debug_struct("D3D12_TEX2DMS_RTV").field("UnusedField_NothingToDefine", &self.UnusedField_NothingToDefine).finish()
32304 }
32305}
32306impl ::windows::core::TypeKind for D3D12_TEX2DMS_RTV {
32307 type TypeKind = ::windows::core::CopyType;
32308}
32309impl ::core::cmp::PartialEq for D3D12_TEX2DMS_RTV {
32310 fn eq(&self, other: &Self) -> bool {
32311 self.UnusedField_NothingToDefine == other.UnusedField_NothingToDefine
32312 }
32313}
32314impl ::core::cmp::Eq for D3D12_TEX2DMS_RTV {}
32315impl ::core::default::Default for D3D12_TEX2DMS_RTV {
32316 fn default() -> Self {
32317 unsafe { ::core::mem::zeroed() }
32318 }
32319}
32320#[repr(C)]
32321#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32322pub struct D3D12_TEX2DMS_SRV {
32323 pub UnusedField_NothingToDefine: u32,
32324}
32325impl ::core::marker::Copy for D3D12_TEX2DMS_SRV {}
32326impl ::core::clone::Clone for D3D12_TEX2DMS_SRV {
32327 fn clone(&self) -> Self {
32328 *self
32329 }
32330}
32331impl ::core::fmt::Debug for D3D12_TEX2DMS_SRV {
32332 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32333 f.debug_struct("D3D12_TEX2DMS_SRV").field("UnusedField_NothingToDefine", &self.UnusedField_NothingToDefine).finish()
32334 }
32335}
32336impl ::windows::core::TypeKind for D3D12_TEX2DMS_SRV {
32337 type TypeKind = ::windows::core::CopyType;
32338}
32339impl ::core::cmp::PartialEq for D3D12_TEX2DMS_SRV {
32340 fn eq(&self, other: &Self) -> bool {
32341 self.UnusedField_NothingToDefine == other.UnusedField_NothingToDefine
32342 }
32343}
32344impl ::core::cmp::Eq for D3D12_TEX2DMS_SRV {}
32345impl ::core::default::Default for D3D12_TEX2DMS_SRV {
32346 fn default() -> Self {
32347 unsafe { ::core::mem::zeroed() }
32348 }
32349}
32350#[repr(C)]
32351#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32352pub struct D3D12_TEX2DMS_UAV {
32353 pub UnusedField_NothingToDefine: u32,
32354}
32355impl ::core::marker::Copy for D3D12_TEX2DMS_UAV {}
32356impl ::core::clone::Clone for D3D12_TEX2DMS_UAV {
32357 fn clone(&self) -> Self {
32358 *self
32359 }
32360}
32361impl ::core::fmt::Debug for D3D12_TEX2DMS_UAV {
32362 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32363 f.debug_struct("D3D12_TEX2DMS_UAV").field("UnusedField_NothingToDefine", &self.UnusedField_NothingToDefine).finish()
32364 }
32365}
32366impl ::windows::core::TypeKind for D3D12_TEX2DMS_UAV {
32367 type TypeKind = ::windows::core::CopyType;
32368}
32369impl ::core::cmp::PartialEq for D3D12_TEX2DMS_UAV {
32370 fn eq(&self, other: &Self) -> bool {
32371 self.UnusedField_NothingToDefine == other.UnusedField_NothingToDefine
32372 }
32373}
32374impl ::core::cmp::Eq for D3D12_TEX2DMS_UAV {}
32375impl ::core::default::Default for D3D12_TEX2DMS_UAV {
32376 fn default() -> Self {
32377 unsafe { ::core::mem::zeroed() }
32378 }
32379}
32380#[repr(C)]
32381#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32382pub struct D3D12_TEX2D_ARRAY_DSV {
32383 pub MipSlice: u32,
32384 pub FirstArraySlice: u32,
32385 pub ArraySize: u32,
32386}
32387impl ::core::marker::Copy for D3D12_TEX2D_ARRAY_DSV {}
32388impl ::core::clone::Clone for D3D12_TEX2D_ARRAY_DSV {
32389 fn clone(&self) -> Self {
32390 *self
32391 }
32392}
32393impl ::core::fmt::Debug for D3D12_TEX2D_ARRAY_DSV {
32394 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32395 f.debug_struct("D3D12_TEX2D_ARRAY_DSV").field("MipSlice", &self.MipSlice).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).finish()
32396 }
32397}
32398impl ::windows::core::TypeKind for D3D12_TEX2D_ARRAY_DSV {
32399 type TypeKind = ::windows::core::CopyType;
32400}
32401impl ::core::cmp::PartialEq for D3D12_TEX2D_ARRAY_DSV {
32402 fn eq(&self, other: &Self) -> bool {
32403 self.MipSlice == other.MipSlice && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize
32404 }
32405}
32406impl ::core::cmp::Eq for D3D12_TEX2D_ARRAY_DSV {}
32407impl ::core::default::Default for D3D12_TEX2D_ARRAY_DSV {
32408 fn default() -> Self {
32409 unsafe { ::core::mem::zeroed() }
32410 }
32411}
32412#[repr(C)]
32413#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32414pub struct D3D12_TEX2D_ARRAY_RTV {
32415 pub MipSlice: u32,
32416 pub FirstArraySlice: u32,
32417 pub ArraySize: u32,
32418 pub PlaneSlice: u32,
32419}
32420impl ::core::marker::Copy for D3D12_TEX2D_ARRAY_RTV {}
32421impl ::core::clone::Clone for D3D12_TEX2D_ARRAY_RTV {
32422 fn clone(&self) -> Self {
32423 *self
32424 }
32425}
32426impl ::core::fmt::Debug for D3D12_TEX2D_ARRAY_RTV {
32427 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32428 f.debug_struct("D3D12_TEX2D_ARRAY_RTV").field("MipSlice", &self.MipSlice).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).field("PlaneSlice", &self.PlaneSlice).finish()
32429 }
32430}
32431impl ::windows::core::TypeKind for D3D12_TEX2D_ARRAY_RTV {
32432 type TypeKind = ::windows::core::CopyType;
32433}
32434impl ::core::cmp::PartialEq for D3D12_TEX2D_ARRAY_RTV {
32435 fn eq(&self, other: &Self) -> bool {
32436 self.MipSlice == other.MipSlice && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize && self.PlaneSlice == other.PlaneSlice
32437 }
32438}
32439impl ::core::cmp::Eq for D3D12_TEX2D_ARRAY_RTV {}
32440impl ::core::default::Default for D3D12_TEX2D_ARRAY_RTV {
32441 fn default() -> Self {
32442 unsafe { ::core::mem::zeroed() }
32443 }
32444}
32445#[repr(C)]
32446#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32447pub struct D3D12_TEX2D_ARRAY_SRV {
32448 pub MostDetailedMip: u32,
32449 pub MipLevels: u32,
32450 pub FirstArraySlice: u32,
32451 pub ArraySize: u32,
32452 pub PlaneSlice: u32,
32453 pub ResourceMinLODClamp: f32,
32454}
32455impl ::core::marker::Copy for D3D12_TEX2D_ARRAY_SRV {}
32456impl ::core::clone::Clone for D3D12_TEX2D_ARRAY_SRV {
32457 fn clone(&self) -> Self {
32458 *self
32459 }
32460}
32461impl ::core::fmt::Debug for D3D12_TEX2D_ARRAY_SRV {
32462 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32463 f.debug_struct("D3D12_TEX2D_ARRAY_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).field("PlaneSlice", &self.PlaneSlice).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
32464 }
32465}
32466impl ::windows::core::TypeKind for D3D12_TEX2D_ARRAY_SRV {
32467 type TypeKind = ::windows::core::CopyType;
32468}
32469impl ::core::cmp::PartialEq for D3D12_TEX2D_ARRAY_SRV {
32470 fn eq(&self, other: &Self) -> bool {
32471 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize && self.PlaneSlice == other.PlaneSlice && self.ResourceMinLODClamp == other.ResourceMinLODClamp
32472 }
32473}
32474impl ::core::cmp::Eq for D3D12_TEX2D_ARRAY_SRV {}
32475impl ::core::default::Default for D3D12_TEX2D_ARRAY_SRV {
32476 fn default() -> Self {
32477 unsafe { ::core::mem::zeroed() }
32478 }
32479}
32480#[repr(C)]
32481#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32482pub struct D3D12_TEX2D_ARRAY_UAV {
32483 pub MipSlice: u32,
32484 pub FirstArraySlice: u32,
32485 pub ArraySize: u32,
32486 pub PlaneSlice: u32,
32487}
32488impl ::core::marker::Copy for D3D12_TEX2D_ARRAY_UAV {}
32489impl ::core::clone::Clone for D3D12_TEX2D_ARRAY_UAV {
32490 fn clone(&self) -> Self {
32491 *self
32492 }
32493}
32494impl ::core::fmt::Debug for D3D12_TEX2D_ARRAY_UAV {
32495 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32496 f.debug_struct("D3D12_TEX2D_ARRAY_UAV").field("MipSlice", &self.MipSlice).field("FirstArraySlice", &self.FirstArraySlice).field("ArraySize", &self.ArraySize).field("PlaneSlice", &self.PlaneSlice).finish()
32497 }
32498}
32499impl ::windows::core::TypeKind for D3D12_TEX2D_ARRAY_UAV {
32500 type TypeKind = ::windows::core::CopyType;
32501}
32502impl ::core::cmp::PartialEq for D3D12_TEX2D_ARRAY_UAV {
32503 fn eq(&self, other: &Self) -> bool {
32504 self.MipSlice == other.MipSlice && self.FirstArraySlice == other.FirstArraySlice && self.ArraySize == other.ArraySize && self.PlaneSlice == other.PlaneSlice
32505 }
32506}
32507impl ::core::cmp::Eq for D3D12_TEX2D_ARRAY_UAV {}
32508impl ::core::default::Default for D3D12_TEX2D_ARRAY_UAV {
32509 fn default() -> Self {
32510 unsafe { ::core::mem::zeroed() }
32511 }
32512}
32513#[repr(C)]
32514#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32515pub struct D3D12_TEX2D_DSV {
32516 pub MipSlice: u32,
32517}
32518impl ::core::marker::Copy for D3D12_TEX2D_DSV {}
32519impl ::core::clone::Clone for D3D12_TEX2D_DSV {
32520 fn clone(&self) -> Self {
32521 *self
32522 }
32523}
32524impl ::core::fmt::Debug for D3D12_TEX2D_DSV {
32525 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32526 f.debug_struct("D3D12_TEX2D_DSV").field("MipSlice", &self.MipSlice).finish()
32527 }
32528}
32529impl ::windows::core::TypeKind for D3D12_TEX2D_DSV {
32530 type TypeKind = ::windows::core::CopyType;
32531}
32532impl ::core::cmp::PartialEq for D3D12_TEX2D_DSV {
32533 fn eq(&self, other: &Self) -> bool {
32534 self.MipSlice == other.MipSlice
32535 }
32536}
32537impl ::core::cmp::Eq for D3D12_TEX2D_DSV {}
32538impl ::core::default::Default for D3D12_TEX2D_DSV {
32539 fn default() -> Self {
32540 unsafe { ::core::mem::zeroed() }
32541 }
32542}
32543#[repr(C)]
32544#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32545pub struct D3D12_TEX2D_RTV {
32546 pub MipSlice: u32,
32547 pub PlaneSlice: u32,
32548}
32549impl ::core::marker::Copy for D3D12_TEX2D_RTV {}
32550impl ::core::clone::Clone for D3D12_TEX2D_RTV {
32551 fn clone(&self) -> Self {
32552 *self
32553 }
32554}
32555impl ::core::fmt::Debug for D3D12_TEX2D_RTV {
32556 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32557 f.debug_struct("D3D12_TEX2D_RTV").field("MipSlice", &self.MipSlice).field("PlaneSlice", &self.PlaneSlice).finish()
32558 }
32559}
32560impl ::windows::core::TypeKind for D3D12_TEX2D_RTV {
32561 type TypeKind = ::windows::core::CopyType;
32562}
32563impl ::core::cmp::PartialEq for D3D12_TEX2D_RTV {
32564 fn eq(&self, other: &Self) -> bool {
32565 self.MipSlice == other.MipSlice && self.PlaneSlice == other.PlaneSlice
32566 }
32567}
32568impl ::core::cmp::Eq for D3D12_TEX2D_RTV {}
32569impl ::core::default::Default for D3D12_TEX2D_RTV {
32570 fn default() -> Self {
32571 unsafe { ::core::mem::zeroed() }
32572 }
32573}
32574#[repr(C)]
32575#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32576pub struct D3D12_TEX2D_SRV {
32577 pub MostDetailedMip: u32,
32578 pub MipLevels: u32,
32579 pub PlaneSlice: u32,
32580 pub ResourceMinLODClamp: f32,
32581}
32582impl ::core::marker::Copy for D3D12_TEX2D_SRV {}
32583impl ::core::clone::Clone for D3D12_TEX2D_SRV {
32584 fn clone(&self) -> Self {
32585 *self
32586 }
32587}
32588impl ::core::fmt::Debug for D3D12_TEX2D_SRV {
32589 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32590 f.debug_struct("D3D12_TEX2D_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("PlaneSlice", &self.PlaneSlice).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
32591 }
32592}
32593impl ::windows::core::TypeKind for D3D12_TEX2D_SRV {
32594 type TypeKind = ::windows::core::CopyType;
32595}
32596impl ::core::cmp::PartialEq for D3D12_TEX2D_SRV {
32597 fn eq(&self, other: &Self) -> bool {
32598 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.PlaneSlice == other.PlaneSlice && self.ResourceMinLODClamp == other.ResourceMinLODClamp
32599 }
32600}
32601impl ::core::cmp::Eq for D3D12_TEX2D_SRV {}
32602impl ::core::default::Default for D3D12_TEX2D_SRV {
32603 fn default() -> Self {
32604 unsafe { ::core::mem::zeroed() }
32605 }
32606}
32607#[repr(C)]
32608#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32609pub struct D3D12_TEX2D_UAV {
32610 pub MipSlice: u32,
32611 pub PlaneSlice: u32,
32612}
32613impl ::core::marker::Copy for D3D12_TEX2D_UAV {}
32614impl ::core::clone::Clone for D3D12_TEX2D_UAV {
32615 fn clone(&self) -> Self {
32616 *self
32617 }
32618}
32619impl ::core::fmt::Debug for D3D12_TEX2D_UAV {
32620 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32621 f.debug_struct("D3D12_TEX2D_UAV").field("MipSlice", &self.MipSlice).field("PlaneSlice", &self.PlaneSlice).finish()
32622 }
32623}
32624impl ::windows::core::TypeKind for D3D12_TEX2D_UAV {
32625 type TypeKind = ::windows::core::CopyType;
32626}
32627impl ::core::cmp::PartialEq for D3D12_TEX2D_UAV {
32628 fn eq(&self, other: &Self) -> bool {
32629 self.MipSlice == other.MipSlice && self.PlaneSlice == other.PlaneSlice
32630 }
32631}
32632impl ::core::cmp::Eq for D3D12_TEX2D_UAV {}
32633impl ::core::default::Default for D3D12_TEX2D_UAV {
32634 fn default() -> Self {
32635 unsafe { ::core::mem::zeroed() }
32636 }
32637}
32638#[repr(C)]
32639#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32640pub struct D3D12_TEX3D_RTV {
32641 pub MipSlice: u32,
32642 pub FirstWSlice: u32,
32643 pub WSize: u32,
32644}
32645impl ::core::marker::Copy for D3D12_TEX3D_RTV {}
32646impl ::core::clone::Clone for D3D12_TEX3D_RTV {
32647 fn clone(&self) -> Self {
32648 *self
32649 }
32650}
32651impl ::core::fmt::Debug for D3D12_TEX3D_RTV {
32652 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32653 f.debug_struct("D3D12_TEX3D_RTV").field("MipSlice", &self.MipSlice).field("FirstWSlice", &self.FirstWSlice).field("WSize", &self.WSize).finish()
32654 }
32655}
32656impl ::windows::core::TypeKind for D3D12_TEX3D_RTV {
32657 type TypeKind = ::windows::core::CopyType;
32658}
32659impl ::core::cmp::PartialEq for D3D12_TEX3D_RTV {
32660 fn eq(&self, other: &Self) -> bool {
32661 self.MipSlice == other.MipSlice && self.FirstWSlice == other.FirstWSlice && self.WSize == other.WSize
32662 }
32663}
32664impl ::core::cmp::Eq for D3D12_TEX3D_RTV {}
32665impl ::core::default::Default for D3D12_TEX3D_RTV {
32666 fn default() -> Self {
32667 unsafe { ::core::mem::zeroed() }
32668 }
32669}
32670#[repr(C)]
32671#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32672pub struct D3D12_TEX3D_SRV {
32673 pub MostDetailedMip: u32,
32674 pub MipLevels: u32,
32675 pub ResourceMinLODClamp: f32,
32676}
32677impl ::core::marker::Copy for D3D12_TEX3D_SRV {}
32678impl ::core::clone::Clone for D3D12_TEX3D_SRV {
32679 fn clone(&self) -> Self {
32680 *self
32681 }
32682}
32683impl ::core::fmt::Debug for D3D12_TEX3D_SRV {
32684 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32685 f.debug_struct("D3D12_TEX3D_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
32686 }
32687}
32688impl ::windows::core::TypeKind for D3D12_TEX3D_SRV {
32689 type TypeKind = ::windows::core::CopyType;
32690}
32691impl ::core::cmp::PartialEq for D3D12_TEX3D_SRV {
32692 fn eq(&self, other: &Self) -> bool {
32693 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.ResourceMinLODClamp == other.ResourceMinLODClamp
32694 }
32695}
32696impl ::core::cmp::Eq for D3D12_TEX3D_SRV {}
32697impl ::core::default::Default for D3D12_TEX3D_SRV {
32698 fn default() -> Self {
32699 unsafe { ::core::mem::zeroed() }
32700 }
32701}
32702#[repr(C)]
32703#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32704pub struct D3D12_TEX3D_UAV {
32705 pub MipSlice: u32,
32706 pub FirstWSlice: u32,
32707 pub WSize: u32,
32708}
32709impl ::core::marker::Copy for D3D12_TEX3D_UAV {}
32710impl ::core::clone::Clone for D3D12_TEX3D_UAV {
32711 fn clone(&self) -> Self {
32712 *self
32713 }
32714}
32715impl ::core::fmt::Debug for D3D12_TEX3D_UAV {
32716 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32717 f.debug_struct("D3D12_TEX3D_UAV").field("MipSlice", &self.MipSlice).field("FirstWSlice", &self.FirstWSlice).field("WSize", &self.WSize).finish()
32718 }
32719}
32720impl ::windows::core::TypeKind for D3D12_TEX3D_UAV {
32721 type TypeKind = ::windows::core::CopyType;
32722}
32723impl ::core::cmp::PartialEq for D3D12_TEX3D_UAV {
32724 fn eq(&self, other: &Self) -> bool {
32725 self.MipSlice == other.MipSlice && self.FirstWSlice == other.FirstWSlice && self.WSize == other.WSize
32726 }
32727}
32728impl ::core::cmp::Eq for D3D12_TEX3D_UAV {}
32729impl ::core::default::Default for D3D12_TEX3D_UAV {
32730 fn default() -> Self {
32731 unsafe { ::core::mem::zeroed() }
32732 }
32733}
32734#[repr(C)]
32735#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32736pub struct D3D12_TEXCUBE_ARRAY_SRV {
32737 pub MostDetailedMip: u32,
32738 pub MipLevels: u32,
32739 pub First2DArrayFace: u32,
32740 pub NumCubes: u32,
32741 pub ResourceMinLODClamp: f32,
32742}
32743impl ::core::marker::Copy for D3D12_TEXCUBE_ARRAY_SRV {}
32744impl ::core::clone::Clone for D3D12_TEXCUBE_ARRAY_SRV {
32745 fn clone(&self) -> Self {
32746 *self
32747 }
32748}
32749impl ::core::fmt::Debug for D3D12_TEXCUBE_ARRAY_SRV {
32750 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32751 f.debug_struct("D3D12_TEXCUBE_ARRAY_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("First2DArrayFace", &self.First2DArrayFace).field("NumCubes", &self.NumCubes).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
32752 }
32753}
32754impl ::windows::core::TypeKind for D3D12_TEXCUBE_ARRAY_SRV {
32755 type TypeKind = ::windows::core::CopyType;
32756}
32757impl ::core::cmp::PartialEq for D3D12_TEXCUBE_ARRAY_SRV {
32758 fn eq(&self, other: &Self) -> bool {
32759 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.First2DArrayFace == other.First2DArrayFace && self.NumCubes == other.NumCubes && self.ResourceMinLODClamp == other.ResourceMinLODClamp
32760 }
32761}
32762impl ::core::cmp::Eq for D3D12_TEXCUBE_ARRAY_SRV {}
32763impl ::core::default::Default for D3D12_TEXCUBE_ARRAY_SRV {
32764 fn default() -> Self {
32765 unsafe { ::core::mem::zeroed() }
32766 }
32767}
32768#[repr(C)]
32769#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32770pub struct D3D12_TEXCUBE_SRV {
32771 pub MostDetailedMip: u32,
32772 pub MipLevels: u32,
32773 pub ResourceMinLODClamp: f32,
32774}
32775impl ::core::marker::Copy for D3D12_TEXCUBE_SRV {}
32776impl ::core::clone::Clone for D3D12_TEXCUBE_SRV {
32777 fn clone(&self) -> Self {
32778 *self
32779 }
32780}
32781impl ::core::fmt::Debug for D3D12_TEXCUBE_SRV {
32782 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32783 f.debug_struct("D3D12_TEXCUBE_SRV").field("MostDetailedMip", &self.MostDetailedMip).field("MipLevels", &self.MipLevels).field("ResourceMinLODClamp", &self.ResourceMinLODClamp).finish()
32784 }
32785}
32786impl ::windows::core::TypeKind for D3D12_TEXCUBE_SRV {
32787 type TypeKind = ::windows::core::CopyType;
32788}
32789impl ::core::cmp::PartialEq for D3D12_TEXCUBE_SRV {
32790 fn eq(&self, other: &Self) -> bool {
32791 self.MostDetailedMip == other.MostDetailedMip && self.MipLevels == other.MipLevels && self.ResourceMinLODClamp == other.ResourceMinLODClamp
32792 }
32793}
32794impl ::core::cmp::Eq for D3D12_TEXCUBE_SRV {}
32795impl ::core::default::Default for D3D12_TEXCUBE_SRV {
32796 fn default() -> Self {
32797 unsafe { ::core::mem::zeroed() }
32798 }
32799}
32800#[repr(C)]
32801#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32802pub struct D3D12_TEXTURE_BARRIER {
32803 pub SyncBefore: D3D12_BARRIER_SYNC,
32804 pub SyncAfter: D3D12_BARRIER_SYNC,
32805 pub AccessBefore: D3D12_BARRIER_ACCESS,
32806 pub AccessAfter: D3D12_BARRIER_ACCESS,
32807 pub LayoutBefore: D3D12_BARRIER_LAYOUT,
32808 pub LayoutAfter: D3D12_BARRIER_LAYOUT,
32809 pub pResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
32810 pub Subresources: D3D12_BARRIER_SUBRESOURCE_RANGE,
32811 pub Flags: D3D12_TEXTURE_BARRIER_FLAGS,
32812}
32813impl ::core::clone::Clone for D3D12_TEXTURE_BARRIER {
32814 fn clone(&self) -> Self {
32815 unsafe { ::core::mem::transmute_copy(self) }
32816 }
32817}
32818impl ::core::fmt::Debug for D3D12_TEXTURE_BARRIER {
32819 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32820 f.debug_struct("D3D12_TEXTURE_BARRIER").field("SyncBefore", &self.SyncBefore).field("SyncAfter", &self.SyncAfter).field("AccessBefore", &self.AccessBefore).field("AccessAfter", &self.AccessAfter).field("LayoutBefore", &self.LayoutBefore).field("LayoutAfter", &self.LayoutAfter).field("pResource", &self.pResource).field("Subresources", &self.Subresources).field("Flags", &self.Flags).finish()
32821 }
32822}
32823impl ::windows::core::TypeKind for D3D12_TEXTURE_BARRIER {
32824 type TypeKind = ::windows::core::CopyType;
32825}
32826impl ::core::cmp::PartialEq for D3D12_TEXTURE_BARRIER {
32827 fn eq(&self, other: &Self) -> bool {
32828 self.SyncBefore == other.SyncBefore && self.SyncAfter == other.SyncAfter && self.AccessBefore == other.AccessBefore && self.AccessAfter == other.AccessAfter && self.LayoutBefore == other.LayoutBefore && self.LayoutAfter == other.LayoutAfter && self.pResource == other.pResource && self.Subresources == other.Subresources && self.Flags == other.Flags
32829 }
32830}
32831impl ::core::cmp::Eq for D3D12_TEXTURE_BARRIER {}
32832impl ::core::default::Default for D3D12_TEXTURE_BARRIER {
32833 fn default() -> Self {
32834 unsafe { ::core::mem::zeroed() }
32835 }
32836}
32837#[repr(C)]
32838#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
32839#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32840pub struct D3D12_TEXTURE_COPY_LOCATION {
32841 pub pResource: ::std::mem::ManuallyDrop<::core::option::Option<ID3D12Resource>>,
32842 pub Type: D3D12_TEXTURE_COPY_TYPE,
32843 pub Anonymous: D3D12_TEXTURE_COPY_LOCATION_0,
32844}
32845#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32846impl ::core::clone::Clone for D3D12_TEXTURE_COPY_LOCATION {
32847 fn clone(&self) -> Self {
32848 unsafe { ::core::mem::transmute_copy(self) }
32849 }
32850}
32851#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32852impl ::windows::core::TypeKind for D3D12_TEXTURE_COPY_LOCATION {
32853 type TypeKind = ::windows::core::CopyType;
32854}
32855#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32856impl ::core::default::Default for D3D12_TEXTURE_COPY_LOCATION {
32857 fn default() -> Self {
32858 unsafe { ::core::mem::zeroed() }
32859 }
32860}
32861#[repr(C)]
32862#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
32863#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32864pub union D3D12_TEXTURE_COPY_LOCATION_0 {
32865 pub PlacedFootprint: D3D12_PLACED_SUBRESOURCE_FOOTPRINT,
32866 pub SubresourceIndex: u32,
32867}
32868#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32869impl ::core::marker::Copy for D3D12_TEXTURE_COPY_LOCATION_0 {}
32870#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32871impl ::core::clone::Clone for D3D12_TEXTURE_COPY_LOCATION_0 {
32872 fn clone(&self) -> Self {
32873 *self
32874 }
32875}
32876#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32877impl ::windows::core::TypeKind for D3D12_TEXTURE_COPY_LOCATION_0 {
32878 type TypeKind = ::windows::core::CopyType;
32879}
32880#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32881impl ::core::default::Default for D3D12_TEXTURE_COPY_LOCATION_0 {
32882 fn default() -> Self {
32883 unsafe { ::core::mem::zeroed() }
32884 }
32885}
32886#[repr(C)]
32887#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32888pub struct D3D12_TILED_RESOURCE_COORDINATE {
32889 pub X: u32,
32890 pub Y: u32,
32891 pub Z: u32,
32892 pub Subresource: u32,
32893}
32894impl ::core::marker::Copy for D3D12_TILED_RESOURCE_COORDINATE {}
32895impl ::core::clone::Clone for D3D12_TILED_RESOURCE_COORDINATE {
32896 fn clone(&self) -> Self {
32897 *self
32898 }
32899}
32900impl ::core::fmt::Debug for D3D12_TILED_RESOURCE_COORDINATE {
32901 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32902 f.debug_struct("D3D12_TILED_RESOURCE_COORDINATE").field("X", &self.X).field("Y", &self.Y).field("Z", &self.Z).field("Subresource", &self.Subresource).finish()
32903 }
32904}
32905impl ::windows::core::TypeKind for D3D12_TILED_RESOURCE_COORDINATE {
32906 type TypeKind = ::windows::core::CopyType;
32907}
32908impl ::core::cmp::PartialEq for D3D12_TILED_RESOURCE_COORDINATE {
32909 fn eq(&self, other: &Self) -> bool {
32910 self.X == other.X && self.Y == other.Y && self.Z == other.Z && self.Subresource == other.Subresource
32911 }
32912}
32913impl ::core::cmp::Eq for D3D12_TILED_RESOURCE_COORDINATE {}
32914impl ::core::default::Default for D3D12_TILED_RESOURCE_COORDINATE {
32915 fn default() -> Self {
32916 unsafe { ::core::mem::zeroed() }
32917 }
32918}
32919#[repr(C)]
32920#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Foundation\"`*"]
32921#[cfg(feature = "Win32_Foundation")]
32922pub struct D3D12_TILE_REGION_SIZE {
32923 pub NumTiles: u32,
32924 pub UseBox: super::super::Foundation::BOOL,
32925 pub Width: u32,
32926 pub Height: u16,
32927 pub Depth: u16,
32928}
32929#[cfg(feature = "Win32_Foundation")]
32930impl ::core::marker::Copy for D3D12_TILE_REGION_SIZE {}
32931#[cfg(feature = "Win32_Foundation")]
32932impl ::core::clone::Clone for D3D12_TILE_REGION_SIZE {
32933 fn clone(&self) -> Self {
32934 *self
32935 }
32936}
32937#[cfg(feature = "Win32_Foundation")]
32938impl ::core::fmt::Debug for D3D12_TILE_REGION_SIZE {
32939 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32940 f.debug_struct("D3D12_TILE_REGION_SIZE").field("NumTiles", &self.NumTiles).field("UseBox", &self.UseBox).field("Width", &self.Width).field("Height", &self.Height).field("Depth", &self.Depth).finish()
32941 }
32942}
32943#[cfg(feature = "Win32_Foundation")]
32944impl ::windows::core::TypeKind for D3D12_TILE_REGION_SIZE {
32945 type TypeKind = ::windows::core::CopyType;
32946}
32947#[cfg(feature = "Win32_Foundation")]
32948impl ::core::cmp::PartialEq for D3D12_TILE_REGION_SIZE {
32949 fn eq(&self, other: &Self) -> bool {
32950 self.NumTiles == other.NumTiles && self.UseBox == other.UseBox && self.Width == other.Width && self.Height == other.Height && self.Depth == other.Depth
32951 }
32952}
32953#[cfg(feature = "Win32_Foundation")]
32954impl ::core::cmp::Eq for D3D12_TILE_REGION_SIZE {}
32955#[cfg(feature = "Win32_Foundation")]
32956impl ::core::default::Default for D3D12_TILE_REGION_SIZE {
32957 fn default() -> Self {
32958 unsafe { ::core::mem::zeroed() }
32959 }
32960}
32961#[repr(C)]
32962#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
32963pub struct D3D12_TILE_SHAPE {
32964 pub WidthInTexels: u32,
32965 pub HeightInTexels: u32,
32966 pub DepthInTexels: u32,
32967}
32968impl ::core::marker::Copy for D3D12_TILE_SHAPE {}
32969impl ::core::clone::Clone for D3D12_TILE_SHAPE {
32970 fn clone(&self) -> Self {
32971 *self
32972 }
32973}
32974impl ::core::fmt::Debug for D3D12_TILE_SHAPE {
32975 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
32976 f.debug_struct("D3D12_TILE_SHAPE").field("WidthInTexels", &self.WidthInTexels).field("HeightInTexels", &self.HeightInTexels).field("DepthInTexels", &self.DepthInTexels).finish()
32977 }
32978}
32979impl ::windows::core::TypeKind for D3D12_TILE_SHAPE {
32980 type TypeKind = ::windows::core::CopyType;
32981}
32982impl ::core::cmp::PartialEq for D3D12_TILE_SHAPE {
32983 fn eq(&self, other: &Self) -> bool {
32984 self.WidthInTexels == other.WidthInTexels && self.HeightInTexels == other.HeightInTexels && self.DepthInTexels == other.DepthInTexels
32985 }
32986}
32987impl ::core::cmp::Eq for D3D12_TILE_SHAPE {}
32988impl ::core::default::Default for D3D12_TILE_SHAPE {
32989 fn default() -> Self {
32990 unsafe { ::core::mem::zeroed() }
32991 }
32992}
32993#[repr(C)]
32994#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
32995#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
32996pub struct D3D12_UNORDERED_ACCESS_VIEW_DESC {
32997 pub Format: super::Dxgi::Common::DXGI_FORMAT,
32998 pub ViewDimension: D3D12_UAV_DIMENSION,
32999 pub Anonymous: D3D12_UNORDERED_ACCESS_VIEW_DESC_0,
33000}
33001#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33002impl ::core::marker::Copy for D3D12_UNORDERED_ACCESS_VIEW_DESC {}
33003#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33004impl ::core::clone::Clone for D3D12_UNORDERED_ACCESS_VIEW_DESC {
33005 fn clone(&self) -> Self {
33006 *self
33007 }
33008}
33009#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33010impl ::windows::core::TypeKind for D3D12_UNORDERED_ACCESS_VIEW_DESC {
33011 type TypeKind = ::windows::core::CopyType;
33012}
33013#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33014impl ::core::default::Default for D3D12_UNORDERED_ACCESS_VIEW_DESC {
33015 fn default() -> Self {
33016 unsafe { ::core::mem::zeroed() }
33017 }
33018}
33019#[repr(C)]
33020#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
33021#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33022pub union D3D12_UNORDERED_ACCESS_VIEW_DESC_0 {
33023 pub Buffer: D3D12_BUFFER_UAV,
33024 pub Texture1D: D3D12_TEX1D_UAV,
33025 pub Texture1DArray: D3D12_TEX1D_ARRAY_UAV,
33026 pub Texture2D: D3D12_TEX2D_UAV,
33027 pub Texture2DArray: D3D12_TEX2D_ARRAY_UAV,
33028 pub Texture2DMS: D3D12_TEX2DMS_UAV,
33029 pub Texture2DMSArray: D3D12_TEX2DMS_ARRAY_UAV,
33030 pub Texture3D: D3D12_TEX3D_UAV,
33031}
33032#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33033impl ::core::marker::Copy for D3D12_UNORDERED_ACCESS_VIEW_DESC_0 {}
33034#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33035impl ::core::clone::Clone for D3D12_UNORDERED_ACCESS_VIEW_DESC_0 {
33036 fn clone(&self) -> Self {
33037 *self
33038 }
33039}
33040#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33041impl ::windows::core::TypeKind for D3D12_UNORDERED_ACCESS_VIEW_DESC_0 {
33042 type TypeKind = ::windows::core::CopyType;
33043}
33044#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
33045impl ::core::default::Default for D3D12_UNORDERED_ACCESS_VIEW_DESC_0 {
33046 fn default() -> Self {
33047 unsafe { ::core::mem::zeroed() }
33048 }
33049}
33050#[repr(C)]
33051#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33052pub struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
33053 pub Version: D3D12_DRED_VERSION,
33054 pub Anonymous: D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA_0,
33055}
33056impl ::core::marker::Copy for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {}
33057impl ::core::clone::Clone for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
33058 fn clone(&self) -> Self {
33059 *self
33060 }
33061}
33062impl ::windows::core::TypeKind for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
33063 type TypeKind = ::windows::core::CopyType;
33064}
33065impl ::core::default::Default for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA {
33066 fn default() -> Self {
33067 unsafe { ::core::mem::zeroed() }
33068 }
33069}
33070#[repr(C)]
33071#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33072pub union D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA_0 {
33073 pub Dred_1_0: D3D12_DEVICE_REMOVED_EXTENDED_DATA,
33074 pub Dred_1_1: D3D12_DEVICE_REMOVED_EXTENDED_DATA1,
33075 pub Dred_1_2: D3D12_DEVICE_REMOVED_EXTENDED_DATA2,
33076 pub Dred_1_3: D3D12_DEVICE_REMOVED_EXTENDED_DATA3,
33077}
33078impl ::core::marker::Copy for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA_0 {}
33079impl ::core::clone::Clone for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA_0 {
33080 fn clone(&self) -> Self {
33081 *self
33082 }
33083}
33084impl ::windows::core::TypeKind for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA_0 {
33085 type TypeKind = ::windows::core::CopyType;
33086}
33087impl ::core::default::Default for D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA_0 {
33088 fn default() -> Self {
33089 unsafe { ::core::mem::zeroed() }
33090 }
33091}
33092#[repr(C)]
33093#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33094pub struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
33095 pub Version: D3D_ROOT_SIGNATURE_VERSION,
33096 pub Anonymous: D3D12_VERSIONED_ROOT_SIGNATURE_DESC_0,
33097}
33098impl ::core::marker::Copy for D3D12_VERSIONED_ROOT_SIGNATURE_DESC {}
33099impl ::core::clone::Clone for D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
33100 fn clone(&self) -> Self {
33101 *self
33102 }
33103}
33104impl ::windows::core::TypeKind for D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
33105 type TypeKind = ::windows::core::CopyType;
33106}
33107impl ::core::default::Default for D3D12_VERSIONED_ROOT_SIGNATURE_DESC {
33108 fn default() -> Self {
33109 unsafe { ::core::mem::zeroed() }
33110 }
33111}
33112#[repr(C)]
33113#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33114pub union D3D12_VERSIONED_ROOT_SIGNATURE_DESC_0 {
33115 pub Desc_1_0: D3D12_ROOT_SIGNATURE_DESC,
33116 pub Desc_1_1: D3D12_ROOT_SIGNATURE_DESC1,
33117}
33118impl ::core::marker::Copy for D3D12_VERSIONED_ROOT_SIGNATURE_DESC_0 {}
33119impl ::core::clone::Clone for D3D12_VERSIONED_ROOT_SIGNATURE_DESC_0 {
33120 fn clone(&self) -> Self {
33121 *self
33122 }
33123}
33124impl ::windows::core::TypeKind for D3D12_VERSIONED_ROOT_SIGNATURE_DESC_0 {
33125 type TypeKind = ::windows::core::CopyType;
33126}
33127impl ::core::default::Default for D3D12_VERSIONED_ROOT_SIGNATURE_DESC_0 {
33128 fn default() -> Self {
33129 unsafe { ::core::mem::zeroed() }
33130 }
33131}
33132#[repr(C)]
33133#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33134pub struct D3D12_VERTEX_BUFFER_VIEW {
33135 pub BufferLocation: u64,
33136 pub SizeInBytes: u32,
33137 pub StrideInBytes: u32,
33138}
33139impl ::core::marker::Copy for D3D12_VERTEX_BUFFER_VIEW {}
33140impl ::core::clone::Clone for D3D12_VERTEX_BUFFER_VIEW {
33141 fn clone(&self) -> Self {
33142 *self
33143 }
33144}
33145impl ::core::fmt::Debug for D3D12_VERTEX_BUFFER_VIEW {
33146 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33147 f.debug_struct("D3D12_VERTEX_BUFFER_VIEW").field("BufferLocation", &self.BufferLocation).field("SizeInBytes", &self.SizeInBytes).field("StrideInBytes", &self.StrideInBytes).finish()
33148 }
33149}
33150impl ::windows::core::TypeKind for D3D12_VERTEX_BUFFER_VIEW {
33151 type TypeKind = ::windows::core::CopyType;
33152}
33153impl ::core::cmp::PartialEq for D3D12_VERTEX_BUFFER_VIEW {
33154 fn eq(&self, other: &Self) -> bool {
33155 self.BufferLocation == other.BufferLocation && self.SizeInBytes == other.SizeInBytes && self.StrideInBytes == other.StrideInBytes
33156 }
33157}
33158impl ::core::cmp::Eq for D3D12_VERTEX_BUFFER_VIEW {}
33159impl ::core::default::Default for D3D12_VERTEX_BUFFER_VIEW {
33160 fn default() -> Self {
33161 unsafe { ::core::mem::zeroed() }
33162 }
33163}
33164#[repr(C)]
33165#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33166pub struct D3D12_VIEWPORT {
33167 pub TopLeftX: f32,
33168 pub TopLeftY: f32,
33169 pub Width: f32,
33170 pub Height: f32,
33171 pub MinDepth: f32,
33172 pub MaxDepth: f32,
33173}
33174impl ::core::marker::Copy for D3D12_VIEWPORT {}
33175impl ::core::clone::Clone for D3D12_VIEWPORT {
33176 fn clone(&self) -> Self {
33177 *self
33178 }
33179}
33180impl ::core::fmt::Debug for D3D12_VIEWPORT {
33181 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33182 f.debug_struct("D3D12_VIEWPORT").field("TopLeftX", &self.TopLeftX).field("TopLeftY", &self.TopLeftY).field("Width", &self.Width).field("Height", &self.Height).field("MinDepth", &self.MinDepth).field("MaxDepth", &self.MaxDepth).finish()
33183 }
33184}
33185impl ::windows::core::TypeKind for D3D12_VIEWPORT {
33186 type TypeKind = ::windows::core::CopyType;
33187}
33188impl ::core::cmp::PartialEq for D3D12_VIEWPORT {
33189 fn eq(&self, other: &Self) -> bool {
33190 self.TopLeftX == other.TopLeftX && self.TopLeftY == other.TopLeftY && self.Width == other.Width && self.Height == other.Height && self.MinDepth == other.MinDepth && self.MaxDepth == other.MaxDepth
33191 }
33192}
33193impl ::core::cmp::Eq for D3D12_VIEWPORT {}
33194impl ::core::default::Default for D3D12_VIEWPORT {
33195 fn default() -> Self {
33196 unsafe { ::core::mem::zeroed() }
33197 }
33198}
33199#[repr(C)]
33200#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33201pub struct D3D12_VIEW_INSTANCE_LOCATION {
33202 pub ViewportArrayIndex: u32,
33203 pub RenderTargetArrayIndex: u32,
33204}
33205impl ::core::marker::Copy for D3D12_VIEW_INSTANCE_LOCATION {}
33206impl ::core::clone::Clone for D3D12_VIEW_INSTANCE_LOCATION {
33207 fn clone(&self) -> Self {
33208 *self
33209 }
33210}
33211impl ::core::fmt::Debug for D3D12_VIEW_INSTANCE_LOCATION {
33212 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33213 f.debug_struct("D3D12_VIEW_INSTANCE_LOCATION").field("ViewportArrayIndex", &self.ViewportArrayIndex).field("RenderTargetArrayIndex", &self.RenderTargetArrayIndex).finish()
33214 }
33215}
33216impl ::windows::core::TypeKind for D3D12_VIEW_INSTANCE_LOCATION {
33217 type TypeKind = ::windows::core::CopyType;
33218}
33219impl ::core::cmp::PartialEq for D3D12_VIEW_INSTANCE_LOCATION {
33220 fn eq(&self, other: &Self) -> bool {
33221 self.ViewportArrayIndex == other.ViewportArrayIndex && self.RenderTargetArrayIndex == other.RenderTargetArrayIndex
33222 }
33223}
33224impl ::core::cmp::Eq for D3D12_VIEW_INSTANCE_LOCATION {}
33225impl ::core::default::Default for D3D12_VIEW_INSTANCE_LOCATION {
33226 fn default() -> Self {
33227 unsafe { ::core::mem::zeroed() }
33228 }
33229}
33230#[repr(C)]
33231#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33232pub struct D3D12_VIEW_INSTANCING_DESC {
33233 pub ViewInstanceCount: u32,
33234 pub pViewInstanceLocations: *const D3D12_VIEW_INSTANCE_LOCATION,
33235 pub Flags: D3D12_VIEW_INSTANCING_FLAGS,
33236}
33237impl ::core::marker::Copy for D3D12_VIEW_INSTANCING_DESC {}
33238impl ::core::clone::Clone for D3D12_VIEW_INSTANCING_DESC {
33239 fn clone(&self) -> Self {
33240 *self
33241 }
33242}
33243impl ::core::fmt::Debug for D3D12_VIEW_INSTANCING_DESC {
33244 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33245 f.debug_struct("D3D12_VIEW_INSTANCING_DESC").field("ViewInstanceCount", &self.ViewInstanceCount).field("pViewInstanceLocations", &self.pViewInstanceLocations).field("Flags", &self.Flags).finish()
33246 }
33247}
33248impl ::windows::core::TypeKind for D3D12_VIEW_INSTANCING_DESC {
33249 type TypeKind = ::windows::core::CopyType;
33250}
33251impl ::core::cmp::PartialEq for D3D12_VIEW_INSTANCING_DESC {
33252 fn eq(&self, other: &Self) -> bool {
33253 self.ViewInstanceCount == other.ViewInstanceCount && self.pViewInstanceLocations == other.pViewInstanceLocations && self.Flags == other.Flags
33254 }
33255}
33256impl ::core::cmp::Eq for D3D12_VIEW_INSTANCING_DESC {}
33257impl ::core::default::Default for D3D12_VIEW_INSTANCING_DESC {
33258 fn default() -> Self {
33259 unsafe { ::core::mem::zeroed() }
33260 }
33261}
33262#[repr(C)]
33263#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33264pub struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
33265 pub Dest: u64,
33266 pub Value: u32,
33267}
33268impl ::core::marker::Copy for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {}
33269impl ::core::clone::Clone for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
33270 fn clone(&self) -> Self {
33271 *self
33272 }
33273}
33274impl ::core::fmt::Debug for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
33275 fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
33276 f.debug_struct("D3D12_WRITEBUFFERIMMEDIATE_PARAMETER").field("Dest", &self.Dest).field("Value", &self.Value).finish()
33277 }
33278}
33279impl ::windows::core::TypeKind for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
33280 type TypeKind = ::windows::core::CopyType;
33281}
33282impl ::core::cmp::PartialEq for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
33283 fn eq(&self, other: &Self) -> bool {
33284 self.Dest == other.Dest && self.Value == other.Value
33285 }
33286}
33287impl ::core::cmp::Eq for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {}
33288impl ::core::default::Default for D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
33289 fn default() -> Self {
33290 unsafe { ::core::mem::zeroed() }
33291 }
33292}
33293#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33294pub type D3D12MessageFunc = ::core::option::Option<unsafe extern "system" fn(category: D3D12_MESSAGE_CATEGORY, severity: D3D12_MESSAGE_SEVERITY, id: D3D12_MESSAGE_ID, pdescription: ::windows::core::PCSTR, pcontext: *mut ::core::ffi::c_void) -> ()>;
33295#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
33296#[cfg(feature = "Win32_Graphics_Direct3D")]
33297pub type PFN_D3D12_CREATE_DEVICE = ::core::option::Option<unsafe extern "system" fn(param0: ::core::option::Option<::windows::core::IUnknown>, param1: super::Direct3D::D3D_FEATURE_LEVEL, param2: *const ::windows::core::GUID, param3: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT>;
33298#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33299pub type PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER = ::core::option::Option<unsafe extern "system" fn(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: *const ::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT>;
33300#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33301pub type PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER = ::core::option::Option<unsafe extern "system" fn(psrcdata: *const ::core::ffi::c_void, srcdatasizeinbytes: usize, prootsignaturedeserializerinterface: *const ::windows::core::GUID, pprootsignaturedeserializer: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT>;
33302#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33303pub type PFN_D3D12_GET_DEBUG_INTERFACE = ::core::option::Option<unsafe extern "system" fn(param0: *const ::windows::core::GUID, param1: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT>;
33304#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"]
33305pub type PFN_D3D12_GET_INTERFACE = ::core::option::Option<unsafe extern "system" fn(param0: *const ::windows::core::GUID, param1: *const ::windows::core::GUID, param2: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT>;
33306#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
33307#[cfg(feature = "Win32_Graphics_Direct3D")]
33308pub type PFN_D3D12_SERIALIZE_ROOT_SIGNATURE = ::core::option::Option<unsafe extern "system" fn(prootsignature: *const D3D12_ROOT_SIGNATURE_DESC, version: D3D_ROOT_SIGNATURE_VERSION, ppblob: *mut ::core::option::Option<super::Direct3D::ID3DBlob>, pperrorblob: *mut ::core::option::Option<super::Direct3D::ID3DBlob>) -> ::windows::core::HRESULT>;
33309#[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`, `\"Win32_Graphics_Direct3D\"`*"]
33310#[cfg(feature = "Win32_Graphics_Direct3D")]
33311pub type PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE = ::core::option::Option<unsafe extern "system" fn(prootsignature: *const D3D12_VERSIONED_ROOT_SIGNATURE_DESC, ppblob: *mut ::core::option::Option<super::Direct3D::ID3DBlob>, pperrorblob: *mut ::core::option::Option<super::Direct3D::ID3DBlob>) -> ::windows::core::HRESULT>;
33312#[cfg(feature = "implement")]
33313::core::include!("impl.rs");