objc2_metal_performance_shaders/generated/MPSNDArray/
MPSNDArrayStridedSlice.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::*;
6use objc2_foundation::*;
7use objc2_metal::*;
8
9use crate::*;
10
11extern_class!(
12    /// Dependencies: This depends on Metal.framework.
13    ///
14    ///
15    /// Extracts a subset of the source array using the specified slice strides.
16    ///
17    /// See also [Apple's documentation](https://developer.apple.com/documentation/metalperformanceshaders/mpsndarraystridedslice?language=objc)
18    #[unsafe(super(
19        MPSNDArrayUnaryKernel,
20        MPSNDArrayMultiaryKernel,
21        MPSNDArrayMultiaryBase,
22        MPSKernel,
23        NSObject
24    ))]
25    #[derive(Debug, PartialEq, Eq, Hash)]
26    #[cfg(all(
27        feature = "MPSCore",
28        feature = "MPSKernel",
29        feature = "MPSNDArrayKernel"
30    ))]
31    pub struct MPSNDArrayStridedSlice;
32);
33
34#[cfg(all(
35    feature = "MPSCore",
36    feature = "MPSKernel",
37    feature = "MPSNDArrayKernel"
38))]
39extern_conformance!(
40    unsafe impl NSCoding for MPSNDArrayStridedSlice {}
41);
42
43#[cfg(all(
44    feature = "MPSCore",
45    feature = "MPSKernel",
46    feature = "MPSNDArrayKernel"
47))]
48extern_conformance!(
49    unsafe impl NSCopying for MPSNDArrayStridedSlice {}
50);
51
52#[cfg(all(
53    feature = "MPSCore",
54    feature = "MPSKernel",
55    feature = "MPSNDArrayKernel"
56))]
57unsafe impl CopyingHelper for MPSNDArrayStridedSlice {
58    type Result = Self;
59}
60
61#[cfg(all(
62    feature = "MPSCore",
63    feature = "MPSKernel",
64    feature = "MPSNDArrayKernel"
65))]
66extern_conformance!(
67    unsafe impl NSObjectProtocol for MPSNDArrayStridedSlice {}
68);
69
70#[cfg(all(
71    feature = "MPSCore",
72    feature = "MPSKernel",
73    feature = "MPSNDArrayKernel"
74))]
75extern_conformance!(
76    unsafe impl NSSecureCoding for MPSNDArrayStridedSlice {}
77);
78
79#[cfg(all(
80    feature = "MPSCore",
81    feature = "MPSKernel",
82    feature = "MPSNDArrayKernel"
83))]
84impl MPSNDArrayStridedSlice {
85    extern_methods!(
86        #[cfg(feature = "MPSNDArrayTypes")]
87        /// The strides to use when slicing the input array.
88        #[unsafe(method(strides))]
89        #[unsafe(method_family = none)]
90        pub unsafe fn strides(&self) -> MPSNDArrayOffsets;
91
92        #[cfg(feature = "MPSNDArrayTypes")]
93        /// Setter for [`strides`][Self::strides].
94        #[unsafe(method(setStrides:))]
95        #[unsafe(method_family = none)]
96        pub unsafe fn setStrides(&self, strides: MPSNDArrayOffsets);
97    );
98}
99
100/// Methods declared on superclass `MPSNDArrayUnaryKernel`.
101#[cfg(all(
102    feature = "MPSCore",
103    feature = "MPSKernel",
104    feature = "MPSNDArrayKernel"
105))]
106impl MPSNDArrayStridedSlice {
107    extern_methods!(
108        #[unsafe(method(initWithDevice:))]
109        #[unsafe(method_family = init)]
110        pub unsafe fn initWithDevice(
111            this: Allocated<Self>,
112            device: &ProtocolObject<dyn MTLDevice>,
113        ) -> Retained<Self>;
114
115        #[unsafe(method(initWithDevice:sourceCount:))]
116        #[unsafe(method_family = init)]
117        pub unsafe fn initWithDevice_sourceCount(
118            this: Allocated<Self>,
119            device: &ProtocolObject<dyn MTLDevice>,
120            count: NSUInteger,
121        ) -> Retained<Self>;
122
123        /// # Safety
124        ///
125        /// `coder` possibly has further requirements.
126        #[unsafe(method(initWithCoder:device:))]
127        #[unsafe(method_family = init)]
128        pub unsafe fn initWithCoder_device(
129            this: Allocated<Self>,
130            coder: &NSCoder,
131            device: &ProtocolObject<dyn MTLDevice>,
132        ) -> Retained<Self>;
133    );
134}
135
136/// Methods declared on superclass `MPSKernel`.
137#[cfg(all(
138    feature = "MPSCore",
139    feature = "MPSKernel",
140    feature = "MPSNDArrayKernel"
141))]
142impl MPSNDArrayStridedSlice {
143    extern_methods!(
144        /// Called by NSCoder to decode MPSKernels
145        ///
146        /// This isn't the right interface to decode a MPSKernel, but
147        /// it is the one that NSCoder uses. To enable your NSCoder
148        /// (e.g. NSKeyedUnarchiver) to set which device to use
149        /// extend the object to adopt the MPSDeviceProvider
150        /// protocol. Otherwise, the Metal system default device
151        /// will be used.
152        ///
153        /// # Safety
154        ///
155        /// `a_decoder` possibly has further requirements.
156        #[unsafe(method(initWithCoder:))]
157        #[unsafe(method_family = init)]
158        pub unsafe fn initWithCoder(
159            this: Allocated<Self>,
160            a_decoder: &NSCoder,
161        ) -> Option<Retained<Self>>;
162    );
163}
164
165/// Methods declared on superclass `NSObject`.
166#[cfg(all(
167    feature = "MPSCore",
168    feature = "MPSKernel",
169    feature = "MPSNDArrayKernel"
170))]
171impl MPSNDArrayStridedSlice {
172    extern_methods!(
173        #[unsafe(method(init))]
174        #[unsafe(method_family = init)]
175        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
176
177        #[unsafe(method(new))]
178        #[unsafe(method_family = new)]
179        pub unsafe fn new() -> Retained<Self>;
180    );
181}
182
183extern_class!(
184    /// Dependencies: This depends on Metal.framework.
185    ///
186    ///
187    /// Perform the gradient operation corresponding to a strided slice.
188    ///
189    /// See also [Apple's documentation](https://developer.apple.com/documentation/metalperformanceshaders/mpsndarraystridedslicegradient?language=objc)
190    #[unsafe(super(
191        MPSNDArrayUnaryGradientKernel,
192        MPSNDArrayMultiaryGradientKernel,
193        MPSNDArrayMultiaryBase,
194        MPSKernel,
195        NSObject
196    ))]
197    #[derive(Debug, PartialEq, Eq, Hash)]
198    #[cfg(all(
199        feature = "MPSCore",
200        feature = "MPSKernel",
201        feature = "MPSNDArrayKernel"
202    ))]
203    pub struct MPSNDArrayStridedSliceGradient;
204);
205
206#[cfg(all(
207    feature = "MPSCore",
208    feature = "MPSKernel",
209    feature = "MPSNDArrayKernel"
210))]
211extern_conformance!(
212    unsafe impl NSCoding for MPSNDArrayStridedSliceGradient {}
213);
214
215#[cfg(all(
216    feature = "MPSCore",
217    feature = "MPSKernel",
218    feature = "MPSNDArrayKernel"
219))]
220extern_conformance!(
221    unsafe impl NSCopying for MPSNDArrayStridedSliceGradient {}
222);
223
224#[cfg(all(
225    feature = "MPSCore",
226    feature = "MPSKernel",
227    feature = "MPSNDArrayKernel"
228))]
229unsafe impl CopyingHelper for MPSNDArrayStridedSliceGradient {
230    type Result = Self;
231}
232
233#[cfg(all(
234    feature = "MPSCore",
235    feature = "MPSKernel",
236    feature = "MPSNDArrayKernel"
237))]
238extern_conformance!(
239    unsafe impl NSObjectProtocol for MPSNDArrayStridedSliceGradient {}
240);
241
242#[cfg(all(
243    feature = "MPSCore",
244    feature = "MPSKernel",
245    feature = "MPSNDArrayKernel"
246))]
247extern_conformance!(
248    unsafe impl NSSecureCoding for MPSNDArrayStridedSliceGradient {}
249);
250
251#[cfg(all(
252    feature = "MPSCore",
253    feature = "MPSKernel",
254    feature = "MPSNDArrayKernel"
255))]
256impl MPSNDArrayStridedSliceGradient {
257    extern_methods!();
258}
259
260/// Methods declared on superclass `MPSNDArrayUnaryGradientKernel`.
261#[cfg(all(
262    feature = "MPSCore",
263    feature = "MPSKernel",
264    feature = "MPSNDArrayKernel"
265))]
266impl MPSNDArrayStridedSliceGradient {
267    extern_methods!(
268        #[unsafe(method(initWithDevice:))]
269        #[unsafe(method_family = init)]
270        pub unsafe fn initWithDevice(
271            this: Allocated<Self>,
272            device: &ProtocolObject<dyn MTLDevice>,
273        ) -> Retained<Self>;
274
275        #[unsafe(method(initWithDevice:sourceCount:sourceGradientIndex:))]
276        #[unsafe(method_family = init)]
277        pub unsafe fn initWithDevice_sourceCount_sourceGradientIndex(
278            this: Allocated<Self>,
279            device: &ProtocolObject<dyn MTLDevice>,
280            count: NSUInteger,
281            source_gradient_index: NSUInteger,
282        ) -> Retained<Self>;
283
284        /// # Safety
285        ///
286        /// `coder` possibly has further requirements.
287        #[unsafe(method(initWithCoder:device:))]
288        #[unsafe(method_family = init)]
289        pub unsafe fn initWithCoder_device(
290            this: Allocated<Self>,
291            coder: &NSCoder,
292            device: &ProtocolObject<dyn MTLDevice>,
293        ) -> Retained<Self>;
294    );
295}
296
297/// Methods declared on superclass `MPSNDArrayMultiaryGradientKernel`.
298#[cfg(all(
299    feature = "MPSCore",
300    feature = "MPSKernel",
301    feature = "MPSNDArrayKernel"
302))]
303impl MPSNDArrayStridedSliceGradient {
304    extern_methods!(
305        #[unsafe(method(initWithDevice:sourceCount:))]
306        #[unsafe(method_family = init)]
307        pub unsafe fn initWithDevice_sourceCount(
308            this: Allocated<Self>,
309            device: &ProtocolObject<dyn MTLDevice>,
310            count: NSUInteger,
311        ) -> Retained<Self>;
312    );
313}
314
315/// Methods declared on superclass `MPSKernel`.
316#[cfg(all(
317    feature = "MPSCore",
318    feature = "MPSKernel",
319    feature = "MPSNDArrayKernel"
320))]
321impl MPSNDArrayStridedSliceGradient {
322    extern_methods!(
323        /// Called by NSCoder to decode MPSKernels
324        ///
325        /// This isn't the right interface to decode a MPSKernel, but
326        /// it is the one that NSCoder uses. To enable your NSCoder
327        /// (e.g. NSKeyedUnarchiver) to set which device to use
328        /// extend the object to adopt the MPSDeviceProvider
329        /// protocol. Otherwise, the Metal system default device
330        /// will be used.
331        ///
332        /// # Safety
333        ///
334        /// `a_decoder` possibly has further requirements.
335        #[unsafe(method(initWithCoder:))]
336        #[unsafe(method_family = init)]
337        pub unsafe fn initWithCoder(
338            this: Allocated<Self>,
339            a_decoder: &NSCoder,
340        ) -> Option<Retained<Self>>;
341    );
342}
343
344/// Methods declared on superclass `NSObject`.
345#[cfg(all(
346    feature = "MPSCore",
347    feature = "MPSKernel",
348    feature = "MPSNDArrayKernel"
349))]
350impl MPSNDArrayStridedSliceGradient {
351    extern_methods!(
352        #[unsafe(method(init))]
353        #[unsafe(method_family = init)]
354        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
355
356        #[unsafe(method(new))]
357        #[unsafe(method_family = new)]
358        pub unsafe fn new() -> Retained<Self>;
359    );
360}