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 unsafe 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 unsafe fn targetTimestamp(&self) -> CFTimeInterval;
34
35 #[cfg(feature = "objc2-core-foundation")]
36 #[unsafe(method(targetPresentationTimestamp))]
37 #[unsafe(method_family = none)]
38 pub unsafe fn targetPresentationTimestamp(&self) -> CFTimeInterval;
39 );
40}
41
42impl CAMetalDisplayLinkUpdate {
44 extern_methods!(
45 #[unsafe(method(init))]
46 #[unsafe(method_family = init)]
47 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
48
49 #[unsafe(method(new))]
50 #[unsafe(method_family = new)]
51 pub unsafe fn new() -> Retained<Self>;
52 );
53}
54
55extern_protocol!(
56 pub unsafe trait CAMetalDisplayLinkDelegate {
58 #[unsafe(method(metalDisplayLink:needsUpdate:))]
59 #[unsafe(method_family = none)]
60 unsafe fn metalDisplayLink_needsUpdate(
61 &self,
62 link: &CAMetalDisplayLink,
63 update: &CAMetalDisplayLinkUpdate,
64 );
65 }
66);
67
68extern_class!(
69 #[unsafe(super(NSObject))]
71 #[derive(Debug, PartialEq, Eq, Hash)]
72 pub struct CAMetalDisplayLink;
73);
74
75extern_conformance!(
76 unsafe impl NSObjectProtocol for CAMetalDisplayLink {}
77);
78
79impl CAMetalDisplayLink {
80 extern_methods!(
81 #[cfg(all(feature = "CALayer", feature = "CAMetalLayer"))]
82 #[unsafe(method(initWithMetalLayer:))]
83 #[unsafe(method_family = init)]
84 pub unsafe fn initWithMetalLayer(
85 this: Allocated<Self>,
86 layer: &CAMetalLayer,
87 ) -> Retained<Self>;
88
89 #[unsafe(method(addToRunLoop:forMode:))]
90 #[unsafe(method_family = none)]
91 pub unsafe fn addToRunLoop_forMode(&self, runloop: &NSRunLoop, mode: &NSRunLoopMode);
92
93 #[unsafe(method(removeFromRunLoop:forMode:))]
94 #[unsafe(method_family = none)]
95 pub unsafe fn removeFromRunLoop_forMode(&self, runloop: &NSRunLoop, mode: &NSRunLoopMode);
96
97 #[unsafe(method(invalidate))]
98 #[unsafe(method_family = none)]
99 pub unsafe fn invalidate(&self);
100
101 #[unsafe(method(delegate))]
102 #[unsafe(method_family = none)]
103 pub unsafe fn delegate(
104 &self,
105 ) -> Option<Retained<ProtocolObject<dyn CAMetalDisplayLinkDelegate>>>;
106
107 #[unsafe(method(setDelegate:))]
110 #[unsafe(method_family = none)]
111 pub unsafe fn setDelegate(
112 &self,
113 delegate: Option<&ProtocolObject<dyn CAMetalDisplayLinkDelegate>>,
114 );
115
116 #[unsafe(method(preferredFrameLatency))]
117 #[unsafe(method_family = none)]
118 pub unsafe fn preferredFrameLatency(&self) -> c_float;
119
120 #[unsafe(method(setPreferredFrameLatency:))]
122 #[unsafe(method_family = none)]
123 pub unsafe fn setPreferredFrameLatency(&self, preferred_frame_latency: c_float);
124
125 #[cfg(feature = "CAFrameRateRange")]
126 #[unsafe(method(preferredFrameRateRange))]
127 #[unsafe(method_family = none)]
128 pub unsafe fn preferredFrameRateRange(&self) -> CAFrameRateRange;
129
130 #[cfg(feature = "CAFrameRateRange")]
131 #[unsafe(method(setPreferredFrameRateRange:))]
133 #[unsafe(method_family = none)]
134 pub unsafe fn setPreferredFrameRateRange(
135 &self,
136 preferred_frame_rate_range: CAFrameRateRange,
137 );
138
139 #[unsafe(method(isPaused))]
140 #[unsafe(method_family = none)]
141 pub unsafe fn isPaused(&self) -> bool;
142
143 #[unsafe(method(setPaused:))]
145 #[unsafe(method_family = none)]
146 pub unsafe fn setPaused(&self, paused: bool);
147 );
148}
149
150impl CAMetalDisplayLink {
152 extern_methods!(
153 #[unsafe(method(init))]
154 #[unsafe(method_family = init)]
155 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
156
157 #[unsafe(method(new))]
158 #[unsafe(method_family = new)]
159 pub unsafe fn new() -> Retained<Self>;
160 );
161}