objc2_quartz_core/generated/
CAMetalDisplayLink.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8use objc2_foundation::*;
9
10use crate::*;
11
12extern_class!(
13 #[unsafe(super(NSObject))]
15 #[derive(Debug, PartialEq, Eq, Hash)]
16 pub struct CAMetalDisplayLinkUpdate;
17);
18
19extern_conformance!(
20 unsafe impl NSObjectProtocol for CAMetalDisplayLinkUpdate {}
21);
22
23impl CAMetalDisplayLinkUpdate {
24 extern_methods!(
25 #[cfg(all(feature = "CAMetalLayer", feature = "objc2-metal"))]
26 #[unsafe(method(drawable))]
27 #[unsafe(method_family = none)]
28 pub fn drawable(&self) -> Retained<ProtocolObject<dyn CAMetalDrawable>>;
29
30 #[cfg(feature = "objc2-core-foundation")]
31 #[unsafe(method(targetTimestamp))]
32 #[unsafe(method_family = none)]
33 pub fn targetTimestamp(&self) -> CFTimeInterval;
34
35 #[cfg(feature = "objc2-core-foundation")]
36 #[unsafe(method(targetPresentationTimestamp))]
37 #[unsafe(method_family = none)]
38 pub fn targetPresentationTimestamp(&self) -> CFTimeInterval;
39 );
40}
41
42impl CAMetalDisplayLinkUpdate {
44 extern_methods!(
45 #[unsafe(method(init))]
46 #[unsafe(method_family = init)]
47 pub fn init(this: Allocated<Self>) -> Retained<Self>;
48
49 #[unsafe(method(new))]
50 #[unsafe(method_family = new)]
51 pub fn new() -> Retained<Self>;
52 );
53}
54
55impl DefaultRetained for CAMetalDisplayLinkUpdate {
56 #[inline]
57 fn default_retained() -> Retained<Self> {
58 Self::new()
59 }
60}
61
62extern_protocol!(
63 pub unsafe trait CAMetalDisplayLinkDelegate {
65 #[unsafe(method(metalDisplayLink:needsUpdate:))]
66 #[unsafe(method_family = none)]
67 fn metalDisplayLink_needsUpdate(
68 &self,
69 link: &CAMetalDisplayLink,
70 update: &CAMetalDisplayLinkUpdate,
71 );
72 }
73);
74
75extern_class!(
76 #[unsafe(super(NSObject))]
78 #[derive(Debug, PartialEq, Eq, Hash)]
79 pub struct CAMetalDisplayLink;
80);
81
82extern_conformance!(
83 unsafe impl NSObjectProtocol for CAMetalDisplayLink {}
84);
85
86impl CAMetalDisplayLink {
87 extern_methods!(
88 #[cfg(all(feature = "CALayer", feature = "CAMetalLayer"))]
89 #[unsafe(method(initWithMetalLayer:))]
90 #[unsafe(method_family = init)]
91 pub fn initWithMetalLayer(this: Allocated<Self>, layer: &CAMetalLayer) -> Retained<Self>;
92
93 #[unsafe(method(addToRunLoop:forMode:))]
97 #[unsafe(method_family = none)]
98 pub unsafe fn addToRunLoop_forMode(&self, runloop: &NSRunLoop, mode: &NSRunLoopMode);
99
100 #[unsafe(method(removeFromRunLoop:forMode:))]
104 #[unsafe(method_family = none)]
105 pub unsafe fn removeFromRunLoop_forMode(&self, runloop: &NSRunLoop, mode: &NSRunLoopMode);
106
107 #[unsafe(method(invalidate))]
108 #[unsafe(method_family = none)]
109 pub fn invalidate(&self);
110
111 #[unsafe(method(delegate))]
112 #[unsafe(method_family = none)]
113 pub fn delegate(&self) -> Option<Retained<ProtocolObject<dyn CAMetalDisplayLinkDelegate>>>;
114
115 #[unsafe(method(setDelegate:))]
119 #[unsafe(method_family = none)]
120 pub fn setDelegate(
121 &self,
122 delegate: Option<&ProtocolObject<dyn CAMetalDisplayLinkDelegate>>,
123 );
124
125 #[unsafe(method(preferredFrameLatency))]
126 #[unsafe(method_family = none)]
127 pub fn preferredFrameLatency(&self) -> c_float;
128
129 #[unsafe(method(setPreferredFrameLatency:))]
131 #[unsafe(method_family = none)]
132 pub fn setPreferredFrameLatency(&self, preferred_frame_latency: c_float);
133
134 #[cfg(feature = "CAFrameRateRange")]
135 #[unsafe(method(preferredFrameRateRange))]
136 #[unsafe(method_family = none)]
137 pub fn preferredFrameRateRange(&self) -> CAFrameRateRange;
138
139 #[cfg(feature = "CAFrameRateRange")]
140 #[unsafe(method(setPreferredFrameRateRange:))]
142 #[unsafe(method_family = none)]
143 pub fn setPreferredFrameRateRange(&self, preferred_frame_rate_range: CAFrameRateRange);
144
145 #[unsafe(method(isPaused))]
146 #[unsafe(method_family = none)]
147 pub fn isPaused(&self) -> bool;
148
149 #[unsafe(method(setPaused:))]
151 #[unsafe(method_family = none)]
152 pub fn setPaused(&self, paused: bool);
153 );
154}
155
156impl CAMetalDisplayLink {
158 extern_methods!(
159 #[unsafe(method(init))]
160 #[unsafe(method_family = init)]
161 pub fn init(this: Allocated<Self>) -> Retained<Self>;
162
163 #[unsafe(method(new))]
164 #[unsafe(method_family = new)]
165 pub fn new() -> Retained<Self>;
166 );
167}
168
169impl DefaultRetained for CAMetalDisplayLink {
170 #[inline]
171 fn default_retained() -> Retained<Self> {
172 Self::new()
173 }
174}