#[cfg_attr(windows, link(name = "windows"))] extern "system" { #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DCompositionAttachMouseDragToHwnd(visual: IDCompositionVisual, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DCompositionAttachMouseWheelToHwnd(visual: IDCompositionVisual, hwnd: super::super::Foundation::HWND, enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DCompositionBoostCompositorClock(enable: super::super::Foundation::BOOL) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Graphics_Dxgi\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi")] pub fn DCompositionCreateDevice(dxgidevice: super::Dxgi::IDXGIDevice, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub fn DCompositionCreateDevice2(renderingdevice: ::windows_sys::core::IUnknown, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub fn DCompositionCreateDevice3(renderingdevice: ::windows_sys::core::IUnknown, iid: *const ::windows_sys::core::GUID, dcompositiondevice: *mut *mut ::core::ffi::c_void) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))] pub fn DCompositionCreateSurfaceHandle(desiredaccess: u32, securityattributes: *const super::super::Security::SECURITY_ATTRIBUTES, surfacehandle: *mut super::super::Foundation::HANDLE) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub fn DCompositionGetFrameId(frameidtype: COMPOSITION_FRAME_ID_TYPE, frameid: *mut u64) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DCompositionGetStatistics(frameid: u64, framestats: *mut COMPOSITION_FRAME_STATS, targetidcount: u32, targetids: *mut COMPOSITION_TARGET_ID, actualtargetidcount: *mut u32) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DCompositionGetTargetStatistics(frameid: u64, targetid: *const COMPOSITION_TARGET_ID, targetstats: *mut COMPOSITION_TARGET_STATS) -> ::windows_sys::core::HRESULT; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub fn DCompositionWaitForCompositorClock(count: u32, handles: *const super::super::Foundation::HANDLE, timeoutinms: u32) -> u32; } pub type IDCompositionAffineTransform2DEffect = *mut ::core::ffi::c_void; pub type IDCompositionAnimation = *mut ::core::ffi::c_void; pub type IDCompositionArithmeticCompositeEffect = *mut ::core::ffi::c_void; pub type IDCompositionBlendEffect = *mut ::core::ffi::c_void; pub type IDCompositionBrightnessEffect = *mut ::core::ffi::c_void; pub type IDCompositionClip = *mut ::core::ffi::c_void; pub type IDCompositionColorMatrixEffect = *mut ::core::ffi::c_void; pub type IDCompositionCompositeEffect = *mut ::core::ffi::c_void; pub type IDCompositionDelegatedInkTrail = *mut ::core::ffi::c_void; pub type IDCompositionDesktopDevice = *mut ::core::ffi::c_void; pub type IDCompositionDevice = *mut ::core::ffi::c_void; pub type IDCompositionDevice2 = *mut ::core::ffi::c_void; pub type IDCompositionDevice3 = *mut ::core::ffi::c_void; pub type IDCompositionDeviceDebug = *mut ::core::ffi::c_void; pub type IDCompositionEffect = *mut ::core::ffi::c_void; pub type IDCompositionEffectGroup = *mut ::core::ffi::c_void; pub type IDCompositionFilterEffect = *mut ::core::ffi::c_void; pub type IDCompositionGaussianBlurEffect = *mut ::core::ffi::c_void; pub type IDCompositionHueRotationEffect = *mut ::core::ffi::c_void; pub type IDCompositionInkTrailDevice = *mut ::core::ffi::c_void; pub type IDCompositionLinearTransferEffect = *mut ::core::ffi::c_void; pub type IDCompositionMatrixTransform = *mut ::core::ffi::c_void; pub type IDCompositionMatrixTransform3D = *mut ::core::ffi::c_void; pub type IDCompositionRectangleClip = *mut ::core::ffi::c_void; pub type IDCompositionRotateTransform = *mut ::core::ffi::c_void; pub type IDCompositionRotateTransform3D = *mut ::core::ffi::c_void; pub type IDCompositionSaturationEffect = *mut ::core::ffi::c_void; pub type IDCompositionScaleTransform = *mut ::core::ffi::c_void; pub type IDCompositionScaleTransform3D = *mut ::core::ffi::c_void; pub type IDCompositionShadowEffect = *mut ::core::ffi::c_void; pub type IDCompositionSkewTransform = *mut ::core::ffi::c_void; pub type IDCompositionSurface = *mut ::core::ffi::c_void; pub type IDCompositionSurfaceFactory = *mut ::core::ffi::c_void; pub type IDCompositionTableTransferEffect = *mut ::core::ffi::c_void; pub type IDCompositionTarget = *mut ::core::ffi::c_void; pub type IDCompositionTransform = *mut ::core::ffi::c_void; pub type IDCompositionTransform3D = *mut ::core::ffi::c_void; pub type IDCompositionTranslateTransform = *mut ::core::ffi::c_void; pub type IDCompositionTranslateTransform3D = *mut ::core::ffi::c_void; pub type IDCompositionTurbulenceEffect = *mut ::core::ffi::c_void; pub type IDCompositionVirtualSurface = *mut ::core::ffi::c_void; pub type IDCompositionVisual = *mut ::core::ffi::c_void; pub type IDCompositionVisual2 = *mut ::core::ffi::c_void; pub type IDCompositionVisual3 = *mut ::core::ffi::c_void; pub type IDCompositionVisualDebug = *mut ::core::ffi::c_void; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const COMPOSITIONOBJECT_READ: i32 = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const COMPOSITIONOBJECT_WRITE: i32 = 2i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const COMPOSITION_STATS_MAX_TARGETS: u32 = 256u32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_MAX_WAITFORCOMPOSITORCLOCK_OBJECTS: u32 = 32u32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type COMPOSITION_FRAME_ID_TYPE = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const COMPOSITION_FRAME_ID_CREATED: COMPOSITION_FRAME_ID_TYPE = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const COMPOSITION_FRAME_ID_CONFIRMED: COMPOSITION_FRAME_ID_TYPE = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const COMPOSITION_FRAME_ID_COMPLETED: COMPOSITION_FRAME_ID_TYPE = 2i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type DCOMPOSITION_BACKFACE_VISIBILITY = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE: DCOMPOSITION_BACKFACE_VISIBILITY = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN: DCOMPOSITION_BACKFACE_VISIBILITY = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT: DCOMPOSITION_BACKFACE_VISIBILITY = -1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type DCOMPOSITION_BITMAP_INTERPOLATION_MODE = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT: DCOMPOSITION_BITMAP_INTERPOLATION_MODE = -1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type DCOMPOSITION_BORDER_MODE = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BORDER_MODE_SOFT: DCOMPOSITION_BORDER_MODE = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BORDER_MODE_HARD: DCOMPOSITION_BORDER_MODE = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_BORDER_MODE_INHERIT: DCOMPOSITION_BORDER_MODE = -1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type DCOMPOSITION_COMPOSITE_MODE = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER: DCOMPOSITION_COMPOSITE_MODE = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT: DCOMPOSITION_COMPOSITE_MODE = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND: DCOMPOSITION_COMPOSITE_MODE = 2i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_COMPOSITE_MODE_INHERIT: DCOMPOSITION_COMPOSITE_MODE = -1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type DCOMPOSITION_DEPTH_MODE = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_DEPTH_MODE_TREE: DCOMPOSITION_DEPTH_MODE = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_DEPTH_MODE_SPATIAL: DCOMPOSITION_DEPTH_MODE = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_DEPTH_MODE_SORTED: DCOMPOSITION_DEPTH_MODE = 3i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_DEPTH_MODE_INHERIT: DCOMPOSITION_DEPTH_MODE = -1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub type DCOMPOSITION_OPACITY_MODE = i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_OPACITY_MODE_LAYER: DCOMPOSITION_OPACITY_MODE = 0i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_OPACITY_MODE_MULTIPLY: DCOMPOSITION_OPACITY_MODE = 1i32; #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub const DCOMPOSITION_OPACITY_MODE_INHERIT: DCOMPOSITION_OPACITY_MODE = -1i32; #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub struct COMPOSITION_FRAME_STATS { pub startTime: u64, pub targetTime: u64, pub framePeriod: u64, } impl ::core::marker::Copy for COMPOSITION_FRAME_STATS {} impl ::core::clone::Clone for COMPOSITION_FRAME_STATS { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub struct COMPOSITION_STATS { pub presentCount: u32, pub refreshCount: u32, pub virtualRefreshCount: u32, pub time: u64, } impl ::core::marker::Copy for COMPOSITION_STATS {} impl ::core::clone::Clone for COMPOSITION_STATS { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] pub struct COMPOSITION_TARGET_ID { pub displayAdapterLuid: super::super::Foundation::LUID, pub renderAdapterLuid: super::super::Foundation::LUID, pub vidPnSourceId: u32, pub vidPnTargetId: u32, pub uniqueId: u32, } #[cfg(feature = "Win32_Foundation")] impl ::core::marker::Copy for COMPOSITION_TARGET_ID {} #[cfg(feature = "Win32_Foundation")] impl ::core::clone::Clone for COMPOSITION_TARGET_ID { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub struct COMPOSITION_TARGET_STATS { pub outstandingPresents: u32, pub presentTime: u64, pub vblankDuration: u64, pub presentedStats: COMPOSITION_STATS, pub completedStats: COMPOSITION_STATS, } impl ::core::marker::Copy for COMPOSITION_TARGET_STATS {} impl ::core::clone::Clone for COMPOSITION_TARGET_STATS { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Graphics_Dxgi_Common\"`*"] #[cfg(feature = "Win32_Graphics_Dxgi_Common")] pub struct DCOMPOSITION_FRAME_STATISTICS { pub lastFrameTime: i64, pub currentCompositionRate: super::Dxgi::Common::DXGI_RATIONAL, pub currentTime: i64, pub timeFrequency: i64, pub nextEstimatedFrameTime: i64, } #[cfg(feature = "Win32_Graphics_Dxgi_Common")] impl ::core::marker::Copy for DCOMPOSITION_FRAME_STATISTICS {} #[cfg(feature = "Win32_Graphics_Dxgi_Common")] impl ::core::clone::Clone for DCOMPOSITION_FRAME_STATISTICS { fn clone(&self) -> Self { *self } } #[repr(C)] #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"] pub struct DCompositionInkTrailPoint { pub x: f32, pub y: f32, pub radius: f32, } impl ::core::marker::Copy for DCompositionInkTrailPoint {} impl ::core::clone::Clone for DCompositionInkTrailPoint { fn clone(&self) -> Self { *self } }