1 #[cfg_attr(windows, link(name = "windows"))]
3 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
4 #[cfg(feature = "Win32_Foundation")]
5 pub fn DCompositionAttachMouseDragToHwnd(visual
: IDCompositionVisual
, hwnd
: super::super::Foundation
::HWND
, enable
: super::super::Foundation
::BOOL
) -> ::windows_sys
::core
::HRESULT
;
6 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
7 #[cfg(feature = "Win32_Foundation")]
8 pub fn DCompositionAttachMouseWheelToHwnd(visual
: IDCompositionVisual
, hwnd
: super::super::Foundation
::HWND
, enable
: super::super::Foundation
::BOOL
) -> ::windows_sys
::core
::HRESULT
;
9 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
10 #[cfg(feature = "Win32_Foundation")]
11 pub fn DCompositionBoostCompositorClock(enable
: super::super::Foundation
::BOOL
) -> ::windows_sys
::core
::HRESULT
;
12 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Graphics_Dxgi\"`*"]
13 #[cfg(feature = "Win32_Graphics_Dxgi")]
14 pub fn DCompositionCreateDevice(dxgidevice
: super::Dxgi
::IDXGIDevice
, iid
: *const ::windows_sys
::core
::GUID
, dcompositiondevice
: *mut *mut ::core
::ffi
::c_void
) -> ::windows_sys
::core
::HRESULT
;
15 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
16 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
;
17 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
18 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
;
19 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`, `\"Win32_Security\"`*"]
20 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
21 pub fn DCompositionCreateSurfaceHandle(desiredaccess
: u32, securityattributes
: *const super::super::Security
::SECURITY_ATTRIBUTES
, surfacehandle
: *mut super::super::Foundation
::HANDLE
) -> ::windows_sys
::core
::HRESULT
;
22 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
23 pub fn DCompositionGetFrameId(frameidtype
: COMPOSITION_FRAME_ID_TYPE
, frameid
: *mut u64) -> ::windows_sys
::core
::HRESULT
;
24 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
25 #[cfg(feature = "Win32_Foundation")]
26 pub fn DCompositionGetStatistics(frameid
: u64, framestats
: *mut COMPOSITION_FRAME_STATS
, targetidcount
: u32, targetids
: *mut COMPOSITION_TARGET_ID
, actualtargetidcount
: *mut u32) -> ::windows_sys
::core
::HRESULT
;
27 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
28 #[cfg(feature = "Win32_Foundation")]
29 pub fn DCompositionGetTargetStatistics(frameid
: u64, targetid
: *const COMPOSITION_TARGET_ID
, targetstats
: *mut COMPOSITION_TARGET_STATS
) -> ::windows_sys
::core
::HRESULT
;
30 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
31 #[cfg(feature = "Win32_Foundation")]
32 pub fn DCompositionWaitForCompositorClock(count
: u32, handles
: *const super::super::Foundation
::HANDLE
, timeoutinms
: u32) -> u32;
34 pub type IDCompositionAffineTransform2DEffect
= *mut ::core
::ffi
::c_void
;
35 pub type IDCompositionAnimation
= *mut ::core
::ffi
::c_void
;
36 pub type IDCompositionArithmeticCompositeEffect
= *mut ::core
::ffi
::c_void
;
37 pub type IDCompositionBlendEffect
= *mut ::core
::ffi
::c_void
;
38 pub type IDCompositionBrightnessEffect
= *mut ::core
::ffi
::c_void
;
39 pub type IDCompositionClip
= *mut ::core
::ffi
::c_void
;
40 pub type IDCompositionColorMatrixEffect
= *mut ::core
::ffi
::c_void
;
41 pub type IDCompositionCompositeEffect
= *mut ::core
::ffi
::c_void
;
42 pub type IDCompositionDelegatedInkTrail
= *mut ::core
::ffi
::c_void
;
43 pub type IDCompositionDesktopDevice
= *mut ::core
::ffi
::c_void
;
44 pub type IDCompositionDevice
= *mut ::core
::ffi
::c_void
;
45 pub type IDCompositionDevice2
= *mut ::core
::ffi
::c_void
;
46 pub type IDCompositionDevice3
= *mut ::core
::ffi
::c_void
;
47 pub type IDCompositionDeviceDebug
= *mut ::core
::ffi
::c_void
;
48 pub type IDCompositionEffect
= *mut ::core
::ffi
::c_void
;
49 pub type IDCompositionEffectGroup
= *mut ::core
::ffi
::c_void
;
50 pub type IDCompositionFilterEffect
= *mut ::core
::ffi
::c_void
;
51 pub type IDCompositionGaussianBlurEffect
= *mut ::core
::ffi
::c_void
;
52 pub type IDCompositionHueRotationEffect
= *mut ::core
::ffi
::c_void
;
53 pub type IDCompositionInkTrailDevice
= *mut ::core
::ffi
::c_void
;
54 pub type IDCompositionLinearTransferEffect
= *mut ::core
::ffi
::c_void
;
55 pub type IDCompositionMatrixTransform
= *mut ::core
::ffi
::c_void
;
56 pub type IDCompositionMatrixTransform3D
= *mut ::core
::ffi
::c_void
;
57 pub type IDCompositionRectangleClip
= *mut ::core
::ffi
::c_void
;
58 pub type IDCompositionRotateTransform
= *mut ::core
::ffi
::c_void
;
59 pub type IDCompositionRotateTransform3D
= *mut ::core
::ffi
::c_void
;
60 pub type IDCompositionSaturationEffect
= *mut ::core
::ffi
::c_void
;
61 pub type IDCompositionScaleTransform
= *mut ::core
::ffi
::c_void
;
62 pub type IDCompositionScaleTransform3D
= *mut ::core
::ffi
::c_void
;
63 pub type IDCompositionShadowEffect
= *mut ::core
::ffi
::c_void
;
64 pub type IDCompositionSkewTransform
= *mut ::core
::ffi
::c_void
;
65 pub type IDCompositionSurface
= *mut ::core
::ffi
::c_void
;
66 pub type IDCompositionSurfaceFactory
= *mut ::core
::ffi
::c_void
;
67 pub type IDCompositionTableTransferEffect
= *mut ::core
::ffi
::c_void
;
68 pub type IDCompositionTarget
= *mut ::core
::ffi
::c_void
;
69 pub type IDCompositionTransform
= *mut ::core
::ffi
::c_void
;
70 pub type IDCompositionTransform3D
= *mut ::core
::ffi
::c_void
;
71 pub type IDCompositionTranslateTransform
= *mut ::core
::ffi
::c_void
;
72 pub type IDCompositionTranslateTransform3D
= *mut ::core
::ffi
::c_void
;
73 pub type IDCompositionTurbulenceEffect
= *mut ::core
::ffi
::c_void
;
74 pub type IDCompositionVirtualSurface
= *mut ::core
::ffi
::c_void
;
75 pub type IDCompositionVisual
= *mut ::core
::ffi
::c_void
;
76 pub type IDCompositionVisual2
= *mut ::core
::ffi
::c_void
;
77 pub type IDCompositionVisual3
= *mut ::core
::ffi
::c_void
;
78 pub type IDCompositionVisualDebug
= *mut ::core
::ffi
::c_void
;
79 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
80 pub const COMPOSITIONOBJECT_READ
: i32 = 1i32;
81 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
82 pub const COMPOSITIONOBJECT_WRITE
: i32 = 2i32;
83 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
84 pub const COMPOSITION_STATS_MAX_TARGETS
: u32 = 256u32;
85 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
86 pub const DCOMPOSITION_MAX_WAITFORCOMPOSITORCLOCK_OBJECTS
: u32 = 32u32;
87 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
88 pub type COMPOSITION_FRAME_ID_TYPE
= i32;
89 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
90 pub const COMPOSITION_FRAME_ID_CREATED
: COMPOSITION_FRAME_ID_TYPE
= 0i32;
91 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
92 pub const COMPOSITION_FRAME_ID_CONFIRMED
: COMPOSITION_FRAME_ID_TYPE
= 1i32;
93 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
94 pub const COMPOSITION_FRAME_ID_COMPLETED
: COMPOSITION_FRAME_ID_TYPE
= 2i32;
95 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
96 pub type DCOMPOSITION_BACKFACE_VISIBILITY
= i32;
97 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
98 pub const DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE
: DCOMPOSITION_BACKFACE_VISIBILITY
= 0i32;
99 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
100 pub const DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN
: DCOMPOSITION_BACKFACE_VISIBILITY
= 1i32;
101 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
102 pub const DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT
: DCOMPOSITION_BACKFACE_VISIBILITY
= -1i32;
103 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
104 pub type DCOMPOSITION_BITMAP_INTERPOLATION_MODE
= i32;
105 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
106 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR
: DCOMPOSITION_BITMAP_INTERPOLATION_MODE
= 0i32;
107 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
108 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR
: DCOMPOSITION_BITMAP_INTERPOLATION_MODE
= 1i32;
109 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
110 pub const DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT
: DCOMPOSITION_BITMAP_INTERPOLATION_MODE
= -1i32;
111 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
112 pub type DCOMPOSITION_BORDER_MODE
= i32;
113 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
114 pub const DCOMPOSITION_BORDER_MODE_SOFT
: DCOMPOSITION_BORDER_MODE
= 0i32;
115 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
116 pub const DCOMPOSITION_BORDER_MODE_HARD
: DCOMPOSITION_BORDER_MODE
= 1i32;
117 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
118 pub const DCOMPOSITION_BORDER_MODE_INHERIT
: DCOMPOSITION_BORDER_MODE
= -1i32;
119 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
120 pub type DCOMPOSITION_COMPOSITE_MODE
= i32;
121 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
122 pub const DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER
: DCOMPOSITION_COMPOSITE_MODE
= 0i32;
123 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
124 pub const DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT
: DCOMPOSITION_COMPOSITE_MODE
= 1i32;
125 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
126 pub const DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND
: DCOMPOSITION_COMPOSITE_MODE
= 2i32;
127 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
128 pub const DCOMPOSITION_COMPOSITE_MODE_INHERIT
: DCOMPOSITION_COMPOSITE_MODE
= -1i32;
129 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
130 pub type DCOMPOSITION_DEPTH_MODE
= i32;
131 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
132 pub const DCOMPOSITION_DEPTH_MODE_TREE
: DCOMPOSITION_DEPTH_MODE
= 0i32;
133 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
134 pub const DCOMPOSITION_DEPTH_MODE_SPATIAL
: DCOMPOSITION_DEPTH_MODE
= 1i32;
135 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
136 pub const DCOMPOSITION_DEPTH_MODE_SORTED
: DCOMPOSITION_DEPTH_MODE
= 3i32;
137 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
138 pub const DCOMPOSITION_DEPTH_MODE_INHERIT
: DCOMPOSITION_DEPTH_MODE
= -1i32;
139 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
140 pub type DCOMPOSITION_OPACITY_MODE
= i32;
141 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
142 pub const DCOMPOSITION_OPACITY_MODE_LAYER
: DCOMPOSITION_OPACITY_MODE
= 0i32;
143 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
144 pub const DCOMPOSITION_OPACITY_MODE_MULTIPLY
: DCOMPOSITION_OPACITY_MODE
= 1i32;
145 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
146 pub const DCOMPOSITION_OPACITY_MODE_INHERIT
: DCOMPOSITION_OPACITY_MODE
= -1i32;
148 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
149 pub struct COMPOSITION_FRAME_STATS
{
152 pub framePeriod
: u64,
154 impl ::core
::marker
::Copy
for COMPOSITION_FRAME_STATS {}
155 impl ::core
::clone
::Clone
for COMPOSITION_FRAME_STATS
{
156 fn clone(&self) -> Self {
161 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
162 pub struct COMPOSITION_STATS
{
163 pub presentCount
: u32,
164 pub refreshCount
: u32,
165 pub virtualRefreshCount
: u32,
168 impl ::core
::marker
::Copy
for COMPOSITION_STATS {}
169 impl ::core
::clone
::Clone
for COMPOSITION_STATS
{
170 fn clone(&self) -> Self {
175 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Foundation\"`*"]
176 #[cfg(feature = "Win32_Foundation")]
177 pub struct COMPOSITION_TARGET_ID
{
178 pub displayAdapterLuid
: super::super::Foundation
::LUID
,
179 pub renderAdapterLuid
: super::super::Foundation
::LUID
,
180 pub vidPnSourceId
: u32,
181 pub vidPnTargetId
: u32,
184 #[cfg(feature = "Win32_Foundation")]
185 impl ::core
::marker
::Copy
for COMPOSITION_TARGET_ID {}
186 #[cfg(feature = "Win32_Foundation")]
187 impl ::core
::clone
::Clone
for COMPOSITION_TARGET_ID
{
188 fn clone(&self) -> Self {
193 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
194 pub struct COMPOSITION_TARGET_STATS
{
195 pub outstandingPresents
: u32,
196 pub presentTime
: u64,
197 pub vblankDuration
: u64,
198 pub presentedStats
: COMPOSITION_STATS
,
199 pub completedStats
: COMPOSITION_STATS
,
201 impl ::core
::marker
::Copy
for COMPOSITION_TARGET_STATS {}
202 impl ::core
::clone
::Clone
for COMPOSITION_TARGET_STATS
{
203 fn clone(&self) -> Self {
208 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`, `\"Win32_Graphics_Dxgi_Common\"`*"]
209 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
210 pub struct DCOMPOSITION_FRAME_STATISTICS
{
211 pub lastFrameTime
: i64,
212 pub currentCompositionRate
: super::Dxgi
::Common
::DXGI_RATIONAL
,
213 pub currentTime
: i64,
214 pub timeFrequency
: i64,
215 pub nextEstimatedFrameTime
: i64,
217 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
218 impl ::core
::marker
::Copy
for DCOMPOSITION_FRAME_STATISTICS {}
219 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
220 impl ::core
::clone
::Clone
for DCOMPOSITION_FRAME_STATISTICS
{
221 fn clone(&self) -> Self {
226 #[doc = "*Required features: `\"Win32_Graphics_DirectComposition\"`*"]
227 pub struct DCompositionInkTrailPoint
{
232 impl ::core
::marker
::Copy
for DCompositionInkTrailPoint {}
233 impl ::core
::clone
::Clone
for DCompositionInkTrailPoint
{
234 fn clone(&self) -> Self {