objc2_quartz_core/generated/
CAMetalDisplayLink.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use 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    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/cametaldisplaylinkupdate?language=objc)
14    #[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
42/// Methods declared on superclass `NSObject`.
43impl 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    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/cametaldisplaylinkdelegate?language=objc)
57    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    /// [Apple's documentation](https://developer.apple.com/documentation/quartzcore/cametaldisplaylink?language=objc)
70    #[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        /// This is a [weak property][objc2::topics::weak_property].
108        /// Setter for [`delegate`][Self::delegate].
109        #[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        /// Setter for [`preferredFrameLatency`][Self::preferredFrameLatency].
121        #[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        /// Setter for [`preferredFrameRateRange`][Self::preferredFrameRateRange].
132        #[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        /// Setter for [`isPaused`][Self::isPaused].
144        #[unsafe(method(setPaused:))]
145        #[unsafe(method_family = none)]
146        pub unsafe fn setPaused(&self, paused: bool);
147    );
148}
149
150/// Methods declared on superclass `NSObject`.
151impl 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}