1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use objc2_metal::*;
use crate::*;
extern_class!(
/// [Apple's documentation](https://developer.apple.com/documentation/metalperformanceshaders/mpsnngridsample?language=objc)
#[unsafe(super(MPSCNNBinaryKernel, MPSKernel, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
pub struct MPSNNGridSample;
);
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
extern_conformance!(
unsafe impl NSCoding for MPSNNGridSample {}
);
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
extern_conformance!(
unsafe impl NSCopying for MPSNNGridSample {}
);
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
unsafe impl CopyingHelper for MPSNNGridSample {
type Result = Self;
}
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
extern_conformance!(
unsafe impl NSObjectProtocol for MPSNNGridSample {}
);
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
extern_conformance!(
unsafe impl NSSecureCoding for MPSNNGridSample {}
);
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
impl MPSNNGridSample {
extern_methods!(
/// This determines whether the pixel locations from the grid are used as the input coordinate (if set to YES) or
/// is added to the input coordinate (if set to NO).
/// The default value is YES.
#[unsafe(method(useGridValueAsInputCoordinate))]
#[unsafe(method_family = none)]
pub unsafe fn useGridValueAsInputCoordinate(&self) -> bool;
/// Setter for [`useGridValueAsInputCoordinate`][Self::useGridValueAsInputCoordinate].
#[unsafe(method(setUseGridValueAsInputCoordinate:))]
#[unsafe(method_family = none)]
pub unsafe fn setUseGridValueAsInputCoordinate(
&self,
use_grid_value_as_input_coordinate: bool,
);
/// Create a grid sample kernel.
///
/// Parameter `device`: The device the filter will run on
///
/// Returns: A valid MPSNNGridSample object or nil, if failure.
#[unsafe(method(initWithDevice:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithDevice(
this: Allocated<Self>,
device: &ProtocolObject<dyn MTLDevice>,
) -> Retained<Self>;
/// NSSecureCoding compatability
///
/// While the standard NSSecureCoding/NSCoding method
/// -initWithCoder: should work, since the file can't
/// know which device your data is allocated on, we
/// have to guess and may guess incorrectly. To avoid
/// that problem, use initWithCoder:device instead.
///
/// Parameter `aDecoder`: The NSCoder subclass with your serialized MPSKernel
///
/// Parameter `device`: The MTLDevice on which to make the MPSKernel
///
/// Returns: A new MPSKernel object, or nil if failure.
///
/// # Safety
///
/// `a_decoder` possibly has further requirements.
#[unsafe(method(initWithCoder:device:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder_device(
this: Allocated<Self>,
a_decoder: &NSCoder,
device: &ProtocolObject<dyn MTLDevice>,
) -> Option<Retained<Self>>;
);
}
/// Methods declared on superclass `MPSKernel`.
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
impl MPSNNGridSample {
extern_methods!(
/// Called by NSCoder to decode MPSKernels
///
/// This isn't the right interface to decode a MPSKernel, but
/// it is the one that NSCoder uses. To enable your NSCoder
/// (e.g. NSKeyedUnarchiver) to set which device to use
/// extend the object to adopt the MPSDeviceProvider
/// protocol. Otherwise, the Metal system default device
/// will be used.
///
/// # Safety
///
/// `a_decoder` possibly has further requirements.
#[unsafe(method(initWithCoder:))]
#[unsafe(method_family = init)]
pub unsafe fn initWithCoder(
this: Allocated<Self>,
a_decoder: &NSCoder,
) -> Option<Retained<Self>>;
);
}
/// Methods declared on superclass `NSObject`.
#[cfg(all(feature = "MPSCNNKernel", feature = "MPSCore", feature = "MPSKernel"))]
impl MPSNNGridSample {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}