objc2_core_image/generated/
CIImageProcessor.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6#[cfg(feature = "objc2-core-foundation")]
7use objc2_core_foundation::*;
8#[cfg(feature = "objc2-core-video")]
9use objc2_core_video::*;
10use objc2_foundation::*;
11#[cfg(feature = "objc2-io-surface")]
12use objc2_io_surface::*;
13#[cfg(feature = "objc2-metal")]
14use objc2_metal::*;
15
16use crate::*;
17
18extern_class!(
19 #[unsafe(super(NSObject))]
21 #[derive(Debug, PartialEq, Eq, Hash)]
22 pub struct CIImageProcessorKernel;
23);
24
25extern_conformance!(
26 unsafe impl NSObjectProtocol for CIImageProcessorKernel {}
27);
28
29impl CIImageProcessorKernel {
30 extern_methods!(
31 #[unsafe(method(processWithInputs:arguments:output:error:_))]
32 #[unsafe(method_family = none)]
33 pub unsafe fn processWithInputs_arguments_output_error(
34 inputs: Option<&NSArray<ProtocolObject<dyn CIImageProcessorInput>>>,
35 arguments: Option<&NSDictionary<NSString, AnyObject>>,
36 output: &ProtocolObject<dyn CIImageProcessorOutput>,
37 ) -> Result<(), Retained<NSError>>;
38
39 #[cfg(feature = "objc2-core-foundation")]
40 #[unsafe(method(roiForInput:arguments:outputRect:))]
41 #[unsafe(method_family = none)]
42 pub unsafe fn roiForInput_arguments_outputRect(
43 input: c_int,
44 arguments: Option<&NSDictionary<NSString, AnyObject>>,
45 output_rect: CGRect,
46 ) -> CGRect;
47
48 #[cfg(all(feature = "CIVector", feature = "objc2-core-foundation"))]
49 #[unsafe(method(roiTileArrayForInput:arguments:outputRect:))]
50 #[unsafe(method_family = none)]
51 pub unsafe fn roiTileArrayForInput_arguments_outputRect(
52 input: c_int,
53 arguments: Option<&NSDictionary<NSString, AnyObject>>,
54 output_rect: CGRect,
55 ) -> Retained<NSArray<CIVector>>;
56
57 #[cfg(feature = "CIImage")]
58 #[unsafe(method(formatForInputAtIndex:))]
59 #[unsafe(method_family = none)]
60 pub unsafe fn formatForInputAtIndex(input: c_int) -> CIFormat;
61
62 #[cfg(feature = "CIImage")]
63 #[unsafe(method(outputFormat))]
64 #[unsafe(method_family = none)]
65 pub unsafe fn outputFormat() -> CIFormat;
66
67 #[unsafe(method(outputIsOpaque))]
68 #[unsafe(method_family = none)]
69 pub unsafe fn outputIsOpaque() -> bool;
70
71 #[unsafe(method(synchronizeInputs))]
72 #[unsafe(method_family = none)]
73 pub unsafe fn synchronizeInputs() -> bool;
74
75 #[cfg(all(feature = "CIImage", feature = "objc2-core-foundation"))]
76 #[unsafe(method(applyWithExtent:inputs:arguments:error:_))]
77 #[unsafe(method_family = none)]
78 pub unsafe fn applyWithExtent_inputs_arguments_error(
79 extent: CGRect,
80 inputs: Option<&NSArray<CIImage>>,
81 args: Option<&NSDictionary<NSString, AnyObject>>,
82 ) -> Result<Retained<CIImage>, Retained<NSError>>;
83 );
84}
85
86impl CIImageProcessorKernel {
88 extern_methods!(
89 #[unsafe(method(init))]
90 #[unsafe(method_family = init)]
91 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
92
93 #[unsafe(method(new))]
94 #[unsafe(method_family = new)]
95 pub unsafe fn new() -> Retained<Self>;
96 );
97}
98
99extern_protocol!(
100 pub unsafe trait CIImageProcessorInput {
102 #[cfg(feature = "objc2-core-foundation")]
103 #[unsafe(method(region))]
104 #[unsafe(method_family = none)]
105 unsafe fn region(&self) -> CGRect;
106
107 #[unsafe(method(bytesPerRow))]
108 #[unsafe(method_family = none)]
109 unsafe fn bytesPerRow(&self) -> usize;
110
111 #[cfg(feature = "CIImage")]
112 #[unsafe(method(format))]
113 #[unsafe(method_family = none)]
114 unsafe fn format(&self) -> CIFormat;
115
116 #[unsafe(method(baseAddress))]
117 #[unsafe(method_family = none)]
118 unsafe fn baseAddress(&self) -> NonNull<c_void>;
119
120 #[cfg(feature = "objc2-io-surface")]
121 #[unsafe(method(surface))]
122 #[unsafe(method_family = none)]
123 unsafe fn surface(&self) -> Retained<IOSurfaceRef>;
124
125 #[cfg(feature = "objc2-core-video")]
126 #[unsafe(method(pixelBuffer))]
127 #[unsafe(method_family = none)]
128 unsafe fn pixelBuffer(&self) -> Option<Retained<CVPixelBuffer>>;
129
130 #[cfg(feature = "objc2-metal")]
131 #[unsafe(method(metalTexture))]
132 #[unsafe(method_family = none)]
133 unsafe fn metalTexture(&self) -> Option<Retained<ProtocolObject<dyn MTLTexture>>>;
134
135 #[unsafe(method(digest))]
136 #[unsafe(method_family = none)]
137 unsafe fn digest(&self) -> u64;
138
139 #[unsafe(method(roiTileIndex))]
140 #[unsafe(method_family = none)]
141 unsafe fn roiTileIndex(&self) -> NSUInteger;
142
143 #[unsafe(method(roiTileCount))]
144 #[unsafe(method_family = none)]
145 unsafe fn roiTileCount(&self) -> NSUInteger;
146 }
147);
148
149extern_protocol!(
150 pub unsafe trait CIImageProcessorOutput {
152 #[cfg(feature = "objc2-core-foundation")]
153 #[unsafe(method(region))]
154 #[unsafe(method_family = none)]
155 unsafe fn region(&self) -> CGRect;
156
157 #[unsafe(method(bytesPerRow))]
158 #[unsafe(method_family = none)]
159 unsafe fn bytesPerRow(&self) -> usize;
160
161 #[cfg(feature = "CIImage")]
162 #[unsafe(method(format))]
163 #[unsafe(method_family = none)]
164 unsafe fn format(&self) -> CIFormat;
165
166 #[unsafe(method(baseAddress))]
167 #[unsafe(method_family = none)]
168 unsafe fn baseAddress(&self) -> NonNull<c_void>;
169
170 #[cfg(feature = "objc2-io-surface")]
171 #[unsafe(method(surface))]
172 #[unsafe(method_family = none)]
173 unsafe fn surface(&self) -> Retained<IOSurfaceRef>;
174
175 #[cfg(feature = "objc2-core-video")]
176 #[unsafe(method(pixelBuffer))]
177 #[unsafe(method_family = none)]
178 unsafe fn pixelBuffer(&self) -> Option<Retained<CVPixelBuffer>>;
179
180 #[cfg(feature = "objc2-metal")]
181 #[unsafe(method(metalTexture))]
182 #[unsafe(method_family = none)]
183 unsafe fn metalTexture(&self) -> Option<Retained<ProtocolObject<dyn MTLTexture>>>;
184
185 #[cfg(feature = "objc2-metal")]
186 #[unsafe(method(metalCommandBuffer))]
187 #[unsafe(method_family = none)]
188 unsafe fn metalCommandBuffer(
189 &self,
190 ) -> Option<Retained<ProtocolObject<dyn MTLCommandBuffer>>>;
191
192 #[unsafe(method(digest))]
193 #[unsafe(method_family = none)]
194 unsafe fn digest(&self) -> u64;
195 }
196);