#![allow(
non_snake_case,
clippy::too_many_arguments,
clippy::missing_safety_doc,
dead_code
)]
use core::ffi::c_void;
pub unsafe trait DredSettings12Methods: Sized {
fn inner(&self) -> *mut c_void;
unsafe fn QueryInterface(
&self,
iid: *const windows::core::GUID,
out: *mut *mut c_void,
) -> windows::core::HRESULT;
unsafe fn AddRef(&self) -> u32;
unsafe fn Release(&self) -> u32;
unsafe fn SetAutoBreadcrumbsEnablement(
&self,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { real::SetAutoBreadcrumbsEnablement(self.inner(), a0) }
}
unsafe fn SetPageFaultEnablement(&self, a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT) {
unsafe { real::SetPageFaultEnablement(self.inner(), a0) }
}
unsafe fn SetWatsonDumpEnablement(
&self,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { real::SetWatsonDumpEnablement(self.inner(), a0) }
}
unsafe fn SetBreadcrumbContextEnablement(
&self,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { real::SetBreadcrumbContextEnablement(self.inner(), a0) }
}
unsafe fn UseMarkersOnlyAutoBreadcrumbs(&self, a0: windows::core::BOOL) {
unsafe { real::UseMarkersOnlyAutoBreadcrumbs(self.inner(), a0) }
}
}
pub mod real {
use core::ffi::c_void;
pub unsafe fn SetAutoBreadcrumbsEnablement(
inner: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
((*(*(inner as *const *const windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl))).base__.base__.SetAutoBreadcrumbsEnablement)(inner, a0)
}
}
pub unsafe fn SetPageFaultEnablement(
inner: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
((*(*(inner as *const *const windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl))).base__.base__.SetPageFaultEnablement)(inner, a0)
}
}
pub unsafe fn SetWatsonDumpEnablement(
inner: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
((*(*(inner as *const *const windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl))).base__.base__.SetWatsonDumpEnablement)(inner, a0)
}
}
pub unsafe fn SetBreadcrumbContextEnablement(
inner: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
((*(*(inner as *const *const windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl))).base__.SetBreadcrumbContextEnablement)(inner, a0)
}
}
pub unsafe fn UseMarkersOnlyAutoBreadcrumbs(inner: *mut c_void, a0: windows::core::BOOL) {
unsafe {
((*(*(inner as *const *const windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl))).UseMarkersOnlyAutoBreadcrumbs)(inner, a0)
}
}
}
unsafe extern "system" fn QueryInterface<T: DredSettings12Methods>(
this: *mut c_void,
iid: *const windows::core::GUID,
out: *mut *mut c_void,
) -> windows::core::HRESULT {
unsafe { (*(this as *const T)).QueryInterface(iid, out) }
}
unsafe extern "system" fn AddRef<T: DredSettings12Methods>(this: *mut c_void) -> u32 {
unsafe { (*(this as *const T)).AddRef() }
}
unsafe extern "system" fn Release<T: DredSettings12Methods>(this: *mut c_void) -> u32 {
unsafe { (*(this as *const T)).Release() }
}
unsafe extern "system" fn SetAutoBreadcrumbsEnablement<T: DredSettings12Methods>(
this: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { (*(this as *const T)).SetAutoBreadcrumbsEnablement(a0) }
}
unsafe extern "system" fn SetPageFaultEnablement<T: DredSettings12Methods>(
this: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { (*(this as *const T)).SetPageFaultEnablement(a0) }
}
unsafe extern "system" fn SetWatsonDumpEnablement<T: DredSettings12Methods>(
this: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { (*(this as *const T)).SetWatsonDumpEnablement(a0) }
}
unsafe extern "system" fn SetBreadcrumbContextEnablement<T: DredSettings12Methods>(
this: *mut c_void,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe { (*(this as *const T)).SetBreadcrumbContextEnablement(a0) }
}
unsafe extern "system" fn UseMarkersOnlyAutoBreadcrumbs<T: DredSettings12Methods>(
this: *mut c_void,
a0: windows::core::BOOL,
) {
unsafe { (*(this as *const T)).UseMarkersOnlyAutoBreadcrumbs(a0) }
}
#[allow(clippy::let_and_return)] unsafe impl DredSettings12Methods for crate::d3d12::Object {
fn inner(&self) -> *mut c_void {
self.real()
}
unsafe fn QueryInterface(
&self,
iid: *const windows::core::GUID,
out: *mut *mut c_void,
) -> windows::core::HRESULT {
unsafe { self.query(iid, out) }
}
unsafe fn AddRef(&self) -> u32 {
self.add_ref()
}
unsafe fn Release(&self) -> u32 {
unsafe { self.release() }
}
unsafe fn SetAutoBreadcrumbsEnablement(
&self,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
real::SetAutoBreadcrumbsEnablement(self.real(), a0);
}
}
unsafe fn SetPageFaultEnablement(&self, a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT) {
unsafe {
real::SetPageFaultEnablement(self.real(), a0);
}
}
unsafe fn SetWatsonDumpEnablement(
&self,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
real::SetWatsonDumpEnablement(self.real(), a0);
}
}
unsafe fn SetBreadcrumbContextEnablement(
&self,
a0: windows::Win32::Graphics::Direct3D12::D3D12_DRED_ENABLEMENT,
) {
unsafe {
real::SetBreadcrumbContextEnablement(self.real(), a0);
}
}
unsafe fn UseMarkersOnlyAutoBreadcrumbs(&self, a0: windows::core::BOOL) {
unsafe {
real::UseMarkersOnlyAutoBreadcrumbs(self.real(), a0);
}
}
}
pub const fn vtable<T: DredSettings12Methods>()
-> windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl {
windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings2_Vtbl {
base__: windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings1_Vtbl {
base__: windows::Win32::Graphics::Direct3D12::ID3D12DeviceRemovedExtendedDataSettings_Vtbl {
base__: windows::core::IUnknown_Vtbl {
QueryInterface: QueryInterface::<T>,
AddRef: AddRef::<T>,
Release: Release::<T>,
},
SetAutoBreadcrumbsEnablement: SetAutoBreadcrumbsEnablement::<T>,
SetPageFaultEnablement: SetPageFaultEnablement::<T>,
SetWatsonDumpEnablement: SetWatsonDumpEnablement::<T>,
},
SetBreadcrumbContextEnablement: SetBreadcrumbContextEnablement::<T>,
},
UseMarkersOnlyAutoBreadcrumbs: UseMarkersOnlyAutoBreadcrumbs::<T>,
}
}