objc2_core_image/generated/
CIImageProcessor.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::*;
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    /// [Apple's documentation](https://developer.apple.com/documentation/coreimage/ciimageprocessorkernel?language=objc)
20    #[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
86/// Methods declared on superclass `NSObject`.
87impl 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    /// [Apple's documentation](https://developer.apple.com/documentation/coreimage/ciimageprocessorinput?language=objc)
101    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    /// [Apple's documentation](https://developer.apple.com/documentation/coreimage/ciimageprocessoroutput?language=objc)
151    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);