1#[repr(C)]
10#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
11pub struct __BindgenBitfieldUnit<Storage> {
12 storage: Storage,
13}
14impl<Storage> __BindgenBitfieldUnit<Storage> {
15 #[inline]
16 pub const fn new(storage: Storage) -> Self {
17 Self { storage }
18 }
19}
20impl<Storage> __BindgenBitfieldUnit<Storage>
21where
22 Storage: AsRef<[u8]> + AsMut<[u8]>,
23{
24 #[inline]
25 fn extract_bit(byte: u8, index: usize) -> bool {
26 let bit_index = if cfg!(target_endian = "big") {
27 7 - (index % 8)
28 } else {
29 index % 8
30 };
31 let mask = 1 << bit_index;
32 byte & mask == mask
33 }
34 #[inline]
35 pub fn get_bit(&self, index: usize) -> bool {
36 debug_assert!(index / 8 < self.storage.as_ref().len());
37 let byte_index = index / 8;
38 let byte = self.storage.as_ref()[byte_index];
39 Self::extract_bit(byte, index)
40 }
41 #[inline]
42 pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
43 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
44 let byte_index = index / 8;
45 let byte = unsafe {
46 *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
47 };
48 Self::extract_bit(byte, index)
49 }
50 #[inline]
51 fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
52 let bit_index = if cfg!(target_endian = "big") {
53 7 - (index % 8)
54 } else {
55 index % 8
56 };
57 let mask = 1 << bit_index;
58 if val { byte | mask } else { byte & !mask }
59 }
60 #[inline]
61 pub fn set_bit(&mut self, index: usize, val: bool) {
62 debug_assert!(index / 8 < self.storage.as_ref().len());
63 let byte_index = index / 8;
64 let byte = &mut self.storage.as_mut()[byte_index];
65 *byte = Self::change_bit(*byte, index, val);
66 }
67 #[inline]
68 pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
69 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
70 let byte_index = index / 8;
71 let byte = unsafe {
72 (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
73 };
74 unsafe { *byte = Self::change_bit(*byte, index, val) };
75 }
76 #[inline]
77 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
78 debug_assert!(bit_width <= 64);
79 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
80 debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len());
81 if bit_width == 0 {
82 return 0;
83 }
84 let mut val = 0u64;
85 let storage = self.storage.as_ref();
86 let start_byte = bit_offset / 8;
87 let bit_shift = bit_offset % 8;
88 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
89 if cfg!(target_endian = "big") {
90 for i in 0..bytes_needed {
91 val |= (storage[start_byte + i].reverse_bits() as u64) << (i * 8);
92 }
93 } else {
94 for i in 0..bytes_needed {
95 val |= (storage[start_byte + i] as u64) << (i * 8);
96 }
97 }
98 val >>= bit_shift;
99 if bit_width < 64 {
100 val &= (1u64 << bit_width) - 1;
101 }
102 if cfg!(target_endian = "big") {
103 val = val.reverse_bits() >> (64 - bit_width as usize);
104 }
105 val
106 }
107 #[inline]
108 pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
109 debug_assert!(bit_width <= 64);
110 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
111 debug_assert!(
112 (bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>()
113 );
114 if bit_width == 0 {
115 return 0;
116 }
117 let mut val = 0u64;
118 let start_byte = bit_offset / 8;
119 let bit_shift = bit_offset % 8;
120 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
121 let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
122 if cfg!(target_endian = "big") {
123 for i in 0..bytes_needed {
124 let byte = unsafe { *storage_ptr.add(start_byte + i) };
125 val |= (byte.reverse_bits() as u64) << (i * 8);
126 }
127 } else {
128 for i in 0..bytes_needed {
129 let byte = unsafe { *storage_ptr.add(start_byte + i) };
130 val |= (byte as u64) << (i * 8);
131 }
132 }
133 val >>= bit_shift;
134 if bit_width < 64 {
135 val &= (1u64 << bit_width) - 1;
136 }
137 if cfg!(target_endian = "big") {
138 val = val.reverse_bits() >> (64 - bit_width as usize);
139 }
140 val
141 }
142 #[inline]
143 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
144 debug_assert!(bit_width <= 64);
145 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
146 debug_assert!((bit_offset + (bit_width as usize) + 7) / 8 <= self.storage.as_ref().len());
147 if bit_width == 0 {
148 return;
149 }
150 let mut val = val;
151 if bit_width < 64 {
152 val &= (1u64 << bit_width) - 1;
153 }
154 if cfg!(target_endian = "big") {
155 val = val.reverse_bits() >> (64 - bit_width as usize);
156 }
157 let storage = self.storage.as_mut();
158 let start_byte = bit_offset / 8;
159 let bit_shift = bit_offset % 8;
160 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
161 val <<= bit_shift;
162 let field_mask = if bit_width as usize + bit_shift >= 64 {
163 !0u64 << bit_shift
164 } else {
165 ((1u64 << bit_width) - 1) << bit_shift
166 };
167 for i in 0..bytes_needed {
168 let byte_val = (val >> (i * 8)) as u8;
169 let byte_mask = (field_mask >> (i * 8)) as u8;
170 if cfg!(target_endian = "big") {
171 let byte = storage[start_byte + i].reverse_bits();
172 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
173 storage[start_byte + i] = new_byte.reverse_bits();
174 } else {
175 storage[start_byte + i] =
176 (storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
177 }
178 }
179 }
180 #[inline]
181 pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
182 debug_assert!(bit_width <= 64);
183 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
184 debug_assert!(
185 (bit_offset + (bit_width as usize) + 7) / 8 <= core::mem::size_of::<Storage>()
186 );
187 if bit_width == 0 {
188 return;
189 }
190 let mut val = val;
191 if bit_width < 64 {
192 val &= (1u64 << bit_width) - 1;
193 }
194 if cfg!(target_endian = "big") {
195 val = val.reverse_bits() >> (64 - bit_width as usize);
196 }
197 let start_byte = bit_offset / 8;
198 let bit_shift = bit_offset % 8;
199 let bytes_needed = (bit_width as usize + bit_shift + 7) / 8;
200 val <<= bit_shift;
201 let field_mask = if bit_width as usize + bit_shift >= 64 {
202 !0u64 << bit_shift
203 } else {
204 ((1u64 << bit_width) - 1) << bit_shift
205 };
206 let storage_ptr = unsafe { core::ptr::addr_of_mut!((*this).storage) as *mut u8 };
207 for i in 0..bytes_needed {
208 let byte_val = (val >> (i * 8)) as u8;
209 let byte_mask = (field_mask >> (i * 8)) as u8;
210 let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
211 if cfg!(target_endian = "big") {
212 let byte = unsafe { (*byte_ptr).reverse_bits() };
213 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
214 unsafe { *byte_ptr = new_byte.reverse_bits() };
215 } else {
216 unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
217 }
218 }
219 }
220}
221#[doc = " Const-generic methods for efficient bitfield access when offset and width"]
222#[doc = " are known at compile time."]
223impl<const N: usize> __BindgenBitfieldUnit<[u8; N]> {
224 #[doc = " Get a field using const generics for compile-time optimization."]
225 #[doc = " Uses native word size operations when the field fits in usize."]
226 #[inline]
227 pub const fn get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&self) -> u64 {
228 debug_assert!(BIT_WIDTH <= 64);
229 debug_assert!(BIT_OFFSET / 8 < N);
230 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
231 if BIT_WIDTH == 0 {
232 return 0;
233 }
234 let start_byte = BIT_OFFSET / 8;
235 let bit_shift = BIT_OFFSET % 8;
236 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
237 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
238 let mut val = 0usize;
239 if cfg!(target_endian = "big") {
240 let mut i = 0;
241 while i < bytes_needed {
242 val |= (self.storage[start_byte + i].reverse_bits() as usize) << (i * 8);
243 i += 1;
244 }
245 } else {
246 let mut i = 0;
247 while i < bytes_needed {
248 val |= (self.storage[start_byte + i] as usize) << (i * 8);
249 i += 1;
250 }
251 }
252 val >>= bit_shift;
253 if (BIT_WIDTH as u32) < usize::BITS {
254 val &= (1usize << BIT_WIDTH) - 1;
255 }
256 if cfg!(target_endian = "big") {
257 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
258 }
259 val as u64
260 } else {
261 let mut val = 0u64;
262 if cfg!(target_endian = "big") {
263 let mut i = 0;
264 while i < bytes_needed {
265 val |= (self.storage[start_byte + i].reverse_bits() as u64) << (i * 8);
266 i += 1;
267 }
268 } else {
269 let mut i = 0;
270 while i < bytes_needed {
271 val |= (self.storage[start_byte + i] as u64) << (i * 8);
272 i += 1;
273 }
274 }
275 val >>= bit_shift;
276 if BIT_WIDTH < 64 {
277 val &= (1u64 << BIT_WIDTH) - 1;
278 }
279 if cfg!(target_endian = "big") {
280 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
281 }
282 val
283 }
284 }
285 #[doc = " Set a field using const generics for compile-time optimization."]
286 #[doc = " Uses native word size operations when the field fits in usize."]
287 #[inline]
288 pub fn set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(&mut self, val: u64) {
289 debug_assert!(BIT_WIDTH <= 64);
290 debug_assert!(BIT_OFFSET / 8 < N);
291 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
292 if BIT_WIDTH == 0 {
293 return;
294 }
295 let start_byte = BIT_OFFSET / 8;
296 let bit_shift = BIT_OFFSET % 8;
297 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
298 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
299 let mut val = val as usize;
300 if (BIT_WIDTH as u32) < usize::BITS {
301 val &= (1usize << BIT_WIDTH) - 1;
302 }
303 if cfg!(target_endian = "big") {
304 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
305 }
306 val <<= bit_shift;
307 let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
308 !0usize << bit_shift
309 } else {
310 ((1usize << BIT_WIDTH) - 1) << bit_shift
311 };
312 let mut i = 0;
313 while i < bytes_needed {
314 let byte_val = (val >> (i * 8)) as u8;
315 let byte_mask = (field_mask >> (i * 8)) as u8;
316 if cfg!(target_endian = "big") {
317 let byte = self.storage[start_byte + i].reverse_bits();
318 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
319 self.storage[start_byte + i] = new_byte.reverse_bits();
320 } else {
321 self.storage[start_byte + i] =
322 (self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
323 }
324 i += 1;
325 }
326 } else {
327 let mut val = val;
328 if BIT_WIDTH < 64 {
329 val &= (1u64 << BIT_WIDTH) - 1;
330 }
331 if cfg!(target_endian = "big") {
332 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
333 }
334 val <<= bit_shift;
335 let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
336 !0u64 << bit_shift
337 } else {
338 ((1u64 << BIT_WIDTH) - 1) << bit_shift
339 };
340 let mut i = 0;
341 while i < bytes_needed {
342 let byte_val = (val >> (i * 8)) as u8;
343 let byte_mask = (field_mask >> (i * 8)) as u8;
344 if cfg!(target_endian = "big") {
345 let byte = self.storage[start_byte + i].reverse_bits();
346 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
347 self.storage[start_byte + i] = new_byte.reverse_bits();
348 } else {
349 self.storage[start_byte + i] =
350 (self.storage[start_byte + i] & !byte_mask) | (byte_val & byte_mask);
351 }
352 i += 1;
353 }
354 }
355 }
356 #[doc = " Raw pointer get using const generics for compile-time optimization."]
357 #[doc = " Uses native word size operations when the field fits in usize."]
358 #[inline]
359 pub const unsafe fn raw_get_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
360 this: *const Self,
361 ) -> u64 {
362 debug_assert!(BIT_WIDTH <= 64);
363 debug_assert!(BIT_OFFSET / 8 < N);
364 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
365 if BIT_WIDTH == 0 {
366 return 0;
367 }
368 let start_byte = BIT_OFFSET / 8;
369 let bit_shift = BIT_OFFSET % 8;
370 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
371 let storage_ptr = unsafe { core::ptr::addr_of!((*this).storage) as *const u8 };
372 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
373 let mut val = 0usize;
374 if cfg!(target_endian = "big") {
375 let mut i = 0;
376 while i < bytes_needed {
377 let byte = unsafe { *storage_ptr.add(start_byte + i) };
378 val |= (byte.reverse_bits() as usize) << (i * 8);
379 i += 1;
380 }
381 } else {
382 let mut i = 0;
383 while i < bytes_needed {
384 let byte = unsafe { *storage_ptr.add(start_byte + i) };
385 val |= (byte as usize) << (i * 8);
386 i += 1;
387 }
388 }
389 val >>= bit_shift;
390 if (BIT_WIDTH as u32) < usize::BITS {
391 val &= (1usize << BIT_WIDTH) - 1;
392 }
393 if cfg!(target_endian = "big") {
394 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
395 }
396 val as u64
397 } else {
398 let mut val = 0u64;
399 if cfg!(target_endian = "big") {
400 let mut i = 0;
401 while i < bytes_needed {
402 let byte = unsafe { *storage_ptr.add(start_byte + i) };
403 val |= (byte.reverse_bits() as u64) << (i * 8);
404 i += 1;
405 }
406 } else {
407 let mut i = 0;
408 while i < bytes_needed {
409 let byte = unsafe { *storage_ptr.add(start_byte + i) };
410 val |= (byte as u64) << (i * 8);
411 i += 1;
412 }
413 }
414 val >>= bit_shift;
415 if BIT_WIDTH < 64 {
416 val &= (1u64 << BIT_WIDTH) - 1;
417 }
418 if cfg!(target_endian = "big") {
419 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
420 }
421 val
422 }
423 }
424 #[doc = " Raw pointer set using const generics for compile-time optimization."]
425 #[doc = " Uses native word size operations when the field fits in usize."]
426 #[inline]
427 pub unsafe fn raw_set_const<const BIT_OFFSET: usize, const BIT_WIDTH: u8>(
428 this: *mut Self,
429 val: u64,
430 ) {
431 debug_assert!(BIT_WIDTH <= 64);
432 debug_assert!(BIT_OFFSET / 8 < N);
433 debug_assert!((BIT_OFFSET + (BIT_WIDTH as usize) + 7) / 8 <= N);
434 if BIT_WIDTH == 0 {
435 return;
436 }
437 let start_byte = BIT_OFFSET / 8;
438 let bit_shift = BIT_OFFSET % 8;
439 let bytes_needed = (BIT_WIDTH as usize + bit_shift + 7) / 8;
440 let storage_ptr = this.cast::<[u8; N]>().cast::<u8>();
441 if BIT_WIDTH as usize + bit_shift <= usize::BITS as usize {
442 let mut val = val as usize;
443 if (BIT_WIDTH as u32) < usize::BITS {
444 val &= (1usize << BIT_WIDTH) - 1;
445 }
446 if cfg!(target_endian = "big") {
447 val = val.reverse_bits() >> (usize::BITS as usize - BIT_WIDTH as usize);
448 }
449 val <<= bit_shift;
450 let field_mask = if BIT_WIDTH as usize + bit_shift >= usize::BITS as usize {
451 !0usize << bit_shift
452 } else {
453 ((1usize << BIT_WIDTH) - 1) << bit_shift
454 };
455 let mut i = 0;
456 while i < bytes_needed {
457 let byte_val = (val >> (i * 8)) as u8;
458 let byte_mask = (field_mask >> (i * 8)) as u8;
459 let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
460 if cfg!(target_endian = "big") {
461 let byte = unsafe { (*byte_ptr).reverse_bits() };
462 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
463 unsafe { *byte_ptr = new_byte.reverse_bits() };
464 } else {
465 unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
466 }
467 i += 1;
468 }
469 } else {
470 let mut val = val;
471 if BIT_WIDTH < 64 {
472 val &= (1u64 << BIT_WIDTH) - 1;
473 }
474 if cfg!(target_endian = "big") {
475 val = val.reverse_bits() >> (64 - BIT_WIDTH as usize);
476 }
477 val <<= bit_shift;
478 let field_mask = if BIT_WIDTH as usize + bit_shift >= 64 {
479 !0u64 << bit_shift
480 } else {
481 ((1u64 << BIT_WIDTH) - 1) << bit_shift
482 };
483 let mut i = 0;
484 while i < bytes_needed {
485 let byte_val = (val >> (i * 8)) as u8;
486 let byte_mask = (field_mask >> (i * 8)) as u8;
487 let byte_ptr = unsafe { storage_ptr.add(start_byte + i) };
488 if cfg!(target_endian = "big") {
489 let byte = unsafe { (*byte_ptr).reverse_bits() };
490 let new_byte = (byte & !byte_mask) | (byte_val & byte_mask);
491 unsafe { *byte_ptr = new_byte.reverse_bits() };
492 } else {
493 unsafe { *byte_ptr = (*byte_ptr & !byte_mask) | (byte_val & byte_mask) };
494 }
495 i += 1;
496 }
497 }
498 }
499}
500pub const VIPS_PI: f64 = 3.141592653589793;
501pub const VIPS_PATH_MAX: u32 = 4096;
502pub const VIPS_TARGET_BUFFER_SIZE: u32 = 8500;
503pub const VIPS_TARGET_CUSTOM_BUFFER_SIZE: u32 = 4096;
504pub const VIPS_SBUF_BUFFER_SIZE: u32 = 4096;
505pub const VIPS_VERSION: &[u8; 7] = b"8.18.6\0";
506pub const VIPS_VERSION_STRING: &[u8; 7] = b"8.18.6\0";
507pub const VIPS_MAJOR_VERSION: u32 = 8;
508pub const VIPS_MINOR_VERSION: u32 = 18;
509pub const VIPS_MICRO_VERSION: u32 = 6;
510pub const VIPS_LIBRARY_CURRENT: u32 = 58;
511pub const VIPS_LIBRARY_REVISION: u32 = 6;
512pub const VIPS_LIBRARY_AGE: u32 = 18;
513pub const VIPS_CONFIG: &[u8; 29] = b"vendored headers for bindgen\0";
514pub const VIPS_ENABLE_DEPRECATED: u32 = 1;
515pub const VIPS_SPARE: u32 = 8;
516pub const VIPS_SIZEOF_HEADER: u32 = 64;
517pub const VIPS__TILE_WIDTH: u32 = 128;
518pub const VIPS__TILE_HEIGHT: u32 = 128;
519pub const VIPS__THINSTRIP_HEIGHT: u32 = 1;
520pub const VIPS__FATSTRIP_HEIGHT: u32 = 16;
521pub const VIPS_MAGIC_INTEL: u32 = 3064394248;
522pub const VIPS_MAGIC_SPARC: u32 = 150120118;
523pub const VIPS_DEFAULT_MAX_COORD: u32 = 100000000;
524pub const VIPS_TRANSFORM_SHIFT: u32 = 6;
525pub const VIPS_TRANSFORM_SCALE: u32 = 64;
526pub const VIPS_INTERPOLATE_SHIFT: u32 = 12;
527pub const VIPS_INTERPOLATE_SCALE: u32 = 4096;
528pub const VIPS_META_EXIF_NAME: &[u8; 10] = b"exif-data\0";
529pub const VIPS_META_XMP_NAME: &[u8; 9] = b"xmp-data\0";
530pub const VIPS_META_IPTC_NAME: &[u8; 10] = b"iptc-data\0";
531pub const VIPS_META_PHOTOSHOP_NAME: &[u8; 15] = b"photoshop-data\0";
532pub const VIPS_META_ICC_NAME: &[u8; 17] = b"icc-profile-data\0";
533pub const VIPS_META_IMAGEDESCRIPTION: &[u8; 18] = b"image-description\0";
534pub const VIPS_META_RESOLUTION_UNIT: &[u8; 16] = b"resolution-unit\0";
535pub const VIPS_META_BITS_PER_SAMPLE: &[u8; 16] = b"bits-per-sample\0";
536pub const VIPS_META_PALETTE: &[u8; 8] = b"palette\0";
537pub const VIPS_META_LOADER: &[u8; 12] = b"vips-loader\0";
538pub const VIPS_META_SEQUENTIAL: &[u8; 16] = b"vips-sequential\0";
539pub const VIPS_META_ORIENTATION: &[u8; 12] = b"orientation\0";
540pub const VIPS_META_PAGE_HEIGHT: &[u8; 12] = b"page-height\0";
541pub const VIPS_META_N_PAGES: &[u8; 8] = b"n-pages\0";
542pub const VIPS_META_N_SUBIFDS: &[u8; 10] = b"n-subifds\0";
543pub const VIPS_META_CONCURRENCY: &[u8; 12] = b"concurrency\0";
544pub const VIPS_META_TILE_WIDTH: &[u8; 11] = b"tile-width\0";
545pub const VIPS_META_TILE_HEIGHT: &[u8; 12] = b"tile-height\0";
546pub const VIPS_D93_X0: f64 = 89.74;
547pub const VIPS_D93_Y0: f64 = 100.0;
548pub const VIPS_D93_Z0: f64 = 130.77;
549pub const VIPS_D75_X0: f64 = 94.9682;
550pub const VIPS_D75_Y0: f64 = 100.0;
551pub const VIPS_D75_Z0: f64 = 122.571;
552pub const VIPS_D65_X0: f64 = 95.047;
553pub const VIPS_D65_Y0: f64 = 100.0;
554pub const VIPS_D65_Z0: f64 = 108.8827;
555pub const VIPS_D55_X0: f64 = 95.6831;
556pub const VIPS_D55_Y0: f64 = 100.0;
557pub const VIPS_D55_Z0: f64 = 92.0871;
558pub const VIPS_D50_X0: f64 = 96.425;
559pub const VIPS_D50_Y0: f64 = 100.0;
560pub const VIPS_D50_Z0: f64 = 82.468;
561pub const VIPS_A_X0: f64 = 109.8503;
562pub const VIPS_A_Y0: f64 = 100.0;
563pub const VIPS_A_Z0: f64 = 35.5849;
564pub const VIPS_B_X0: f64 = 99.072;
565pub const VIPS_B_Y0: f64 = 100.0;
566pub const VIPS_B_Z0: f64 = 85.223;
567pub const VIPS_C_X0: f64 = 98.07;
568pub const VIPS_C_Y0: f64 = 100.0;
569pub const VIPS_C_Z0: f64 = 118.23;
570pub const VIPS_E_X0: f64 = 100.0;
571pub const VIPS_E_Y0: f64 = 100.0;
572pub const VIPS_E_Z0: f64 = 100.0;
573pub const VIPS_D3250_X0: f64 = 105.659;
574pub const VIPS_D3250_Y0: f64 = 100.0;
575pub const VIPS_D3250_Z0: f64 = 45.8501;
576pub const VIPS_META_IPCT_NAME: &[u8; 10] = b"iptc-data\0";
577pub const VIPS_EXEEXT: &[u8; 1] = b"\0";
578pub const VIPS_VECTOR_SOURCE_MAX: u32 = 10;
579pub const VIPS_SAVEABLE_LAST: u32 = 99;
580pub type guint8 = core::ffi::c_uchar;
581pub type guint32 = core::ffi::c_uint;
582pub type gint64 = core::ffi::c_longlong;
583pub type guint64 = core::ffi::c_ulonglong;
584pub type gssize = core::ffi::c_long;
585pub type gsize = core::ffi::c_ulong;
586pub type __int64_t = core::ffi::c_longlong;
587pub type __darwin_off_t = __int64_t;
588pub type gchar = core::ffi::c_char;
589pub type glong = core::ffi::c_long;
590pub type gint = core::ffi::c_int;
591pub type gboolean = gint;
592pub type gulong = core::ffi::c_ulong;
593pub type guint = core::ffi::c_uint;
594pub type gfloat = f32;
595pub type gdouble = f64;
596pub type gpointer = *mut core::ffi::c_void;
597pub type GFunc = ::core::option::Option<unsafe extern "C" fn(data: gpointer, user_data: gpointer)>;
598pub type GByteArray = _GByteArray;
599#[repr(C)]
600#[derive(Debug, Copy, Clone)]
601pub struct _GByteArray {
602 pub data: *mut guint8,
603 pub len: guint,
604}
605pub type va_list = __builtin_va_list;
606pub type GQuark = guint32;
607pub type GError = _GError;
608#[repr(C)]
609#[derive(Debug, Copy, Clone)]
610pub struct _GError {
611 pub domain: GQuark,
612 pub code: gint,
613 pub message: *mut gchar,
614}
615pub type GThreadFunc = ::core::option::Option<unsafe extern "C" fn(data: gpointer) -> gpointer>;
616pub type GThread = _GThread;
617pub type GMutex = _GMutex;
618pub type GCond = _GCond;
619#[repr(C)]
620#[derive(Copy, Clone)]
621pub union _GMutex {
622 pub p: gpointer,
623 pub i: [guint; 2usize],
624}
625#[repr(C)]
626#[derive(Debug, Copy, Clone)]
627pub struct _GCond {
628 pub p: gpointer,
629 pub i: [guint; 2usize],
630}
631#[repr(C)]
632#[derive(Debug)]
633pub struct _GData {
634 _unused: [u8; 0],
635}
636pub type GData = _GData;
637unsafe extern "C" {
638 pub fn g_free(mem: gpointer);
639}
640pub type GList = _GList;
641#[repr(C)]
642#[derive(Debug, Copy, Clone)]
643pub struct _GList {
644 pub data: gpointer,
645 pub next: *mut GList,
646 pub prev: *mut GList,
647}
648#[repr(C)]
649#[derive(Debug)]
650pub struct _GHashTable {
651 _unused: [u8; 0],
652}
653pub type GHashTable = _GHashTable;
654pub type GSList = _GSList;
655#[repr(C)]
656#[derive(Debug, Copy, Clone)]
657pub struct _GSList {
658 pub data: gpointer,
659 pub next: *mut GSList,
660}
661pub type GString = _GString;
662#[repr(C)]
663#[derive(Debug, Copy, Clone)]
664pub struct _GString {
665 pub str_: *mut gchar,
666 pub len: gsize,
667 pub allocated_len: gsize,
668}
669#[repr(C)]
670#[derive(Debug)]
671pub struct _GOptionGroup {
672 _unused: [u8; 0],
673}
674pub type GOptionGroup = _GOptionGroup;
675pub type GQueue = _GQueue;
676#[repr(C)]
677#[derive(Debug, Copy, Clone)]
678pub struct _GQueue {
679 pub head: *mut GList,
680 pub tail: *mut GList,
681 pub length: guint,
682}
683#[repr(C)]
684#[derive(Debug)]
685pub struct _GTimer {
686 _unused: [u8; 0],
687}
688pub type GTimer = _GTimer;
689#[repr(u32)]
690#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
691pub enum GThreadPriority {
692 G_THREAD_PRIORITY_LOW = 0,
693 G_THREAD_PRIORITY_NORMAL = 1,
694 G_THREAD_PRIORITY_HIGH = 2,
695 G_THREAD_PRIORITY_URGENT = 3,
696}
697#[repr(C)]
698#[derive(Debug, Copy, Clone)]
699pub struct _GThread {
700 pub func: GThreadFunc,
701 pub data: gpointer,
702 pub joinable: gboolean,
703 pub priority: GThreadPriority,
704}
705pub type off_t = __darwin_off_t;
706pub type fpos_t = __darwin_off_t;
707#[repr(C)]
708#[derive(Debug, Copy, Clone)]
709pub struct __sbuf {
710 pub _base: *mut core::ffi::c_uchar,
711 pub _size: core::ffi::c_int,
712}
713#[repr(C)]
714#[derive(Debug)]
715pub struct __sFILEX {
716 _unused: [u8; 0],
717}
718#[repr(C)]
719#[derive(Debug, Copy, Clone)]
720pub struct __sFILE {
721 pub _p: *mut core::ffi::c_uchar,
722 pub _r: core::ffi::c_int,
723 pub _w: core::ffi::c_int,
724 pub _flags: core::ffi::c_short,
725 pub _file: core::ffi::c_short,
726 pub _bf: __sbuf,
727 pub _lbfsize: core::ffi::c_int,
728 pub _cookie: *mut core::ffi::c_void,
729 pub _close: ::core::option::Option<
730 unsafe extern "C" fn(arg1: *mut core::ffi::c_void) -> core::ffi::c_int,
731 >,
732 pub _read: ::core::option::Option<
733 unsafe extern "C" fn(
734 arg1: *mut core::ffi::c_void,
735 arg2: *mut core::ffi::c_char,
736 __n: core::ffi::c_int,
737 ) -> core::ffi::c_int,
738 >,
739 pub _seek: ::core::option::Option<
740 unsafe extern "C" fn(
741 arg1: *mut core::ffi::c_void,
742 arg2: fpos_t,
743 arg3: core::ffi::c_int,
744 ) -> fpos_t,
745 >,
746 pub _write: ::core::option::Option<
747 unsafe extern "C" fn(
748 arg1: *mut core::ffi::c_void,
749 arg2: *const core::ffi::c_char,
750 __n: core::ffi::c_int,
751 ) -> core::ffi::c_int,
752 >,
753 pub _ub: __sbuf,
754 pub _extra: *mut __sFILEX,
755 pub _ur: core::ffi::c_int,
756 pub _ubuf: [core::ffi::c_uchar; 3usize],
757 pub _nbuf: [core::ffi::c_uchar; 1usize],
758 pub _lb: __sbuf,
759 pub _blksize: core::ffi::c_int,
760 pub _offset: fpos_t,
761}
762pub type FILE = __sFILE;
763pub type GType = gsize;
764pub type GValue = _GValue;
765pub type GTypeClass = _GTypeClass;
766pub type GTypeInstance = _GTypeInstance;
767#[repr(C)]
768#[derive(Debug, Copy, Clone)]
769pub struct _GTypeClass {
770 pub g_type: GType,
771}
772#[repr(C)]
773#[derive(Debug, Copy, Clone)]
774pub struct _GTypeInstance {
775 pub g_class: *mut GTypeClass,
776}
777#[repr(C)]
778#[derive(Copy, Clone)]
779pub struct _GValue {
780 pub g_type: GType,
781 pub data: [_GValue__bindgen_ty_1; 2usize],
782}
783#[repr(C)]
784#[derive(Copy, Clone)]
785pub union _GValue__bindgen_ty_1 {
786 pub v_int: gint,
787 pub v_uint: guint,
788 pub v_long: glong,
789 pub v_ulong: gulong,
790 pub v_int64: gint64,
791 pub v_uint64: guint64,
792 pub v_float: gfloat,
793 pub v_double: gdouble,
794 pub v_pointer: gpointer,
795}
796impl GParamFlags {
797 pub const G_PARAM_PRIVATE: GParamFlags = GParamFlags::G_PARAM_STATIC_NAME;
798}
799#[repr(i32)]
800#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
801pub enum GParamFlags {
802 G_PARAM_READABLE = 1,
803 G_PARAM_WRITABLE = 2,
804 G_PARAM_READWRITE = 3,
805 G_PARAM_CONSTRUCT = 4,
806 G_PARAM_CONSTRUCT_ONLY = 8,
807 G_PARAM_LAX_VALIDATION = 16,
808 G_PARAM_STATIC_NAME = 32,
809 G_PARAM_STATIC_NICK = 64,
810 G_PARAM_STATIC_BLURB = 128,
811 G_PARAM_EXPLICIT_NOTIFY = 1073741824,
812 G_PARAM_DEPRECATED = -2147483648,
813}
814pub type GParamSpec = _GParamSpec;
815#[repr(C)]
816#[derive(Debug, Copy, Clone)]
817pub struct _GParamSpec {
818 pub g_type_instance: GTypeInstance,
819 pub name: *const gchar,
820 pub flags: GParamFlags,
821 pub value_type: GType,
822 pub owner_type: GType,
823 pub _nick: *mut gchar,
824 pub _blurb: *mut gchar,
825 pub qdata: *mut GData,
826 pub ref_count: guint,
827 pub param_id: guint,
828}
829pub type GClosure = _GClosure;
830pub type GClosureNotifyData = _GClosureNotifyData;
831pub type GCallback = ::core::option::Option<unsafe extern "C" fn()>;
832pub type GClosureNotify =
833 ::core::option::Option<unsafe extern "C" fn(data: gpointer, closure: *mut GClosure)>;
834#[repr(C)]
835#[derive(Debug, Copy, Clone)]
836pub struct _GClosureNotifyData {
837 pub data: gpointer,
838 pub notify: GClosureNotify,
839}
840#[repr(C)]
841#[derive(Debug, Copy, Clone)]
842pub struct _GClosure {
843 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
844 pub marshal: ::core::option::Option<
845 unsafe extern "C" fn(
846 closure: *mut GClosure,
847 return_value: *mut GValue,
848 n_param_values: guint,
849 param_values: *const GValue,
850 invocation_hint: gpointer,
851 marshal_data: gpointer,
852 ),
853 >,
854 pub data: gpointer,
855 pub notifiers: *mut GClosureNotifyData,
856}
857impl _GClosure {
858 #[inline]
859 #[allow(unnecessary_transmutes)]
860 pub fn ref_count(&self) -> guint {
861 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<0usize, 15u8>() as u32) }
862 }
863 #[inline]
864 #[allow(unnecessary_transmutes)]
865 pub fn set_ref_count(&mut self, val: guint) {
866 unsafe {
867 let val: u32 = ::core::mem::transmute(val);
868 self._bitfield_1.set_const::<0usize, 15u8>(val as u64)
869 }
870 }
871 #[inline]
872 #[allow(unnecessary_transmutes)]
873 pub unsafe fn ref_count_raw(this: *const Self) -> guint {
874 unsafe {
875 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
876 0usize,
877 15u8,
878 >(::core::ptr::addr_of!((*this)._bitfield_1))
879 as u32)
880 }
881 }
882 #[inline]
883 #[allow(unnecessary_transmutes)]
884 pub unsafe fn set_ref_count_raw(this: *mut Self, val: guint) {
885 unsafe {
886 let val: u32 = ::core::mem::transmute(val);
887 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<0usize, 15u8>(
888 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
889 val as u64,
890 )
891 }
892 }
893 #[inline]
894 #[allow(unnecessary_transmutes)]
895 pub fn meta_marshal_nouse(&self) -> guint {
896 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<15usize, 1u8>() as u32) }
897 }
898 #[inline]
899 #[allow(unnecessary_transmutes)]
900 pub fn set_meta_marshal_nouse(&mut self, val: guint) {
901 unsafe {
902 let val: u32 = ::core::mem::transmute(val);
903 self._bitfield_1.set_const::<15usize, 1u8>(val as u64)
904 }
905 }
906 #[inline]
907 #[allow(unnecessary_transmutes)]
908 pub unsafe fn meta_marshal_nouse_raw(this: *const Self) -> guint {
909 unsafe {
910 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
911 15usize,
912 1u8,
913 >(::core::ptr::addr_of!((*this)._bitfield_1))
914 as u32)
915 }
916 }
917 #[inline]
918 #[allow(unnecessary_transmutes)]
919 pub unsafe fn set_meta_marshal_nouse_raw(this: *mut Self, val: guint) {
920 unsafe {
921 let val: u32 = ::core::mem::transmute(val);
922 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<15usize, 1u8>(
923 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
924 val as u64,
925 )
926 }
927 }
928 #[inline]
929 #[allow(unnecessary_transmutes)]
930 pub fn n_guards(&self) -> guint {
931 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<16usize, 1u8>() as u32) }
932 }
933 #[inline]
934 #[allow(unnecessary_transmutes)]
935 pub fn set_n_guards(&mut self, val: guint) {
936 unsafe {
937 let val: u32 = ::core::mem::transmute(val);
938 self._bitfield_1.set_const::<16usize, 1u8>(val as u64)
939 }
940 }
941 #[inline]
942 #[allow(unnecessary_transmutes)]
943 pub unsafe fn n_guards_raw(this: *const Self) -> guint {
944 unsafe {
945 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
946 16usize,
947 1u8,
948 >(::core::ptr::addr_of!((*this)._bitfield_1))
949 as u32)
950 }
951 }
952 #[inline]
953 #[allow(unnecessary_transmutes)]
954 pub unsafe fn set_n_guards_raw(this: *mut Self, val: guint) {
955 unsafe {
956 let val: u32 = ::core::mem::transmute(val);
957 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<16usize, 1u8>(
958 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
959 val as u64,
960 )
961 }
962 }
963 #[inline]
964 #[allow(unnecessary_transmutes)]
965 pub fn n_fnotifiers(&self) -> guint {
966 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<17usize, 2u8>() as u32) }
967 }
968 #[inline]
969 #[allow(unnecessary_transmutes)]
970 pub fn set_n_fnotifiers(&mut self, val: guint) {
971 unsafe {
972 let val: u32 = ::core::mem::transmute(val);
973 self._bitfield_1.set_const::<17usize, 2u8>(val as u64)
974 }
975 }
976 #[inline]
977 #[allow(unnecessary_transmutes)]
978 pub unsafe fn n_fnotifiers_raw(this: *const Self) -> guint {
979 unsafe {
980 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
981 17usize,
982 2u8,
983 >(::core::ptr::addr_of!((*this)._bitfield_1))
984 as u32)
985 }
986 }
987 #[inline]
988 #[allow(unnecessary_transmutes)]
989 pub unsafe fn set_n_fnotifiers_raw(this: *mut Self, val: guint) {
990 unsafe {
991 let val: u32 = ::core::mem::transmute(val);
992 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<17usize, 2u8>(
993 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
994 val as u64,
995 )
996 }
997 }
998 #[inline]
999 #[allow(unnecessary_transmutes)]
1000 pub fn n_inotifiers(&self) -> guint {
1001 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<19usize, 8u8>() as u32) }
1002 }
1003 #[inline]
1004 #[allow(unnecessary_transmutes)]
1005 pub fn set_n_inotifiers(&mut self, val: guint) {
1006 unsafe {
1007 let val: u32 = ::core::mem::transmute(val);
1008 self._bitfield_1.set_const::<19usize, 8u8>(val as u64)
1009 }
1010 }
1011 #[inline]
1012 #[allow(unnecessary_transmutes)]
1013 pub unsafe fn n_inotifiers_raw(this: *const Self) -> guint {
1014 unsafe {
1015 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
1016 19usize,
1017 8u8,
1018 >(::core::ptr::addr_of!((*this)._bitfield_1))
1019 as u32)
1020 }
1021 }
1022 #[inline]
1023 #[allow(unnecessary_transmutes)]
1024 pub unsafe fn set_n_inotifiers_raw(this: *mut Self, val: guint) {
1025 unsafe {
1026 let val: u32 = ::core::mem::transmute(val);
1027 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<19usize, 8u8>(
1028 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1029 val as u64,
1030 )
1031 }
1032 }
1033 #[inline]
1034 #[allow(unnecessary_transmutes)]
1035 pub fn in_inotify(&self) -> guint {
1036 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<27usize, 1u8>() as u32) }
1037 }
1038 #[inline]
1039 #[allow(unnecessary_transmutes)]
1040 pub fn set_in_inotify(&mut self, val: guint) {
1041 unsafe {
1042 let val: u32 = ::core::mem::transmute(val);
1043 self._bitfield_1.set_const::<27usize, 1u8>(val as u64)
1044 }
1045 }
1046 #[inline]
1047 #[allow(unnecessary_transmutes)]
1048 pub unsafe fn in_inotify_raw(this: *const Self) -> guint {
1049 unsafe {
1050 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
1051 27usize,
1052 1u8,
1053 >(::core::ptr::addr_of!((*this)._bitfield_1))
1054 as u32)
1055 }
1056 }
1057 #[inline]
1058 #[allow(unnecessary_transmutes)]
1059 pub unsafe fn set_in_inotify_raw(this: *mut Self, val: guint) {
1060 unsafe {
1061 let val: u32 = ::core::mem::transmute(val);
1062 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<27usize, 1u8>(
1063 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1064 val as u64,
1065 )
1066 }
1067 }
1068 #[inline]
1069 #[allow(unnecessary_transmutes)]
1070 pub fn floating(&self) -> guint {
1071 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<28usize, 1u8>() as u32) }
1072 }
1073 #[inline]
1074 #[allow(unnecessary_transmutes)]
1075 pub fn set_floating(&mut self, val: guint) {
1076 unsafe {
1077 let val: u32 = ::core::mem::transmute(val);
1078 self._bitfield_1.set_const::<28usize, 1u8>(val as u64)
1079 }
1080 }
1081 #[inline]
1082 #[allow(unnecessary_transmutes)]
1083 pub unsafe fn floating_raw(this: *const Self) -> guint {
1084 unsafe {
1085 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
1086 28usize,
1087 1u8,
1088 >(::core::ptr::addr_of!((*this)._bitfield_1))
1089 as u32)
1090 }
1091 }
1092 #[inline]
1093 #[allow(unnecessary_transmutes)]
1094 pub unsafe fn set_floating_raw(this: *mut Self, val: guint) {
1095 unsafe {
1096 let val: u32 = ::core::mem::transmute(val);
1097 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<28usize, 1u8>(
1098 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1099 val as u64,
1100 )
1101 }
1102 }
1103 #[inline]
1104 #[allow(unnecessary_transmutes)]
1105 pub fn derivative_flag(&self) -> guint {
1106 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<29usize, 1u8>() as u32) }
1107 }
1108 #[inline]
1109 #[allow(unnecessary_transmutes)]
1110 pub fn set_derivative_flag(&mut self, val: guint) {
1111 unsafe {
1112 let val: u32 = ::core::mem::transmute(val);
1113 self._bitfield_1.set_const::<29usize, 1u8>(val as u64)
1114 }
1115 }
1116 #[inline]
1117 #[allow(unnecessary_transmutes)]
1118 pub unsafe fn derivative_flag_raw(this: *const Self) -> guint {
1119 unsafe {
1120 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
1121 29usize,
1122 1u8,
1123 >(::core::ptr::addr_of!((*this)._bitfield_1))
1124 as u32)
1125 }
1126 }
1127 #[inline]
1128 #[allow(unnecessary_transmutes)]
1129 pub unsafe fn set_derivative_flag_raw(this: *mut Self, val: guint) {
1130 unsafe {
1131 let val: u32 = ::core::mem::transmute(val);
1132 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<29usize, 1u8>(
1133 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1134 val as u64,
1135 )
1136 }
1137 }
1138 #[inline]
1139 #[allow(unnecessary_transmutes)]
1140 pub fn in_marshal(&self) -> guint {
1141 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<30usize, 1u8>() as u32) }
1142 }
1143 #[inline]
1144 #[allow(unnecessary_transmutes)]
1145 pub fn set_in_marshal(&mut self, val: guint) {
1146 unsafe {
1147 let val: u32 = ::core::mem::transmute(val);
1148 self._bitfield_1.set_const::<30usize, 1u8>(val as u64)
1149 }
1150 }
1151 #[inline]
1152 #[allow(unnecessary_transmutes)]
1153 pub unsafe fn in_marshal_raw(this: *const Self) -> guint {
1154 unsafe {
1155 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
1156 30usize,
1157 1u8,
1158 >(::core::ptr::addr_of!((*this)._bitfield_1))
1159 as u32)
1160 }
1161 }
1162 #[inline]
1163 #[allow(unnecessary_transmutes)]
1164 pub unsafe fn set_in_marshal_raw(this: *mut Self, val: guint) {
1165 unsafe {
1166 let val: u32 = ::core::mem::transmute(val);
1167 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<30usize, 1u8>(
1168 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1169 val as u64,
1170 )
1171 }
1172 }
1173 #[inline]
1174 #[allow(unnecessary_transmutes)]
1175 pub fn is_invalid(&self) -> guint {
1176 unsafe { ::core::mem::transmute(self._bitfield_1.get_const::<31usize, 1u8>() as u32) }
1177 }
1178 #[inline]
1179 #[allow(unnecessary_transmutes)]
1180 pub fn set_is_invalid(&mut self, val: guint) {
1181 unsafe {
1182 let val: u32 = ::core::mem::transmute(val);
1183 self._bitfield_1.set_const::<31usize, 1u8>(val as u64)
1184 }
1185 }
1186 #[inline]
1187 #[allow(unnecessary_transmutes)]
1188 pub unsafe fn is_invalid_raw(this: *const Self) -> guint {
1189 unsafe {
1190 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get_const::<
1191 31usize,
1192 1u8,
1193 >(::core::ptr::addr_of!((*this)._bitfield_1))
1194 as u32)
1195 }
1196 }
1197 #[inline]
1198 #[allow(unnecessary_transmutes)]
1199 pub unsafe fn set_is_invalid_raw(this: *mut Self, val: guint) {
1200 unsafe {
1201 let val: u32 = ::core::mem::transmute(val);
1202 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set_const::<31usize, 1u8>(
1203 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
1204 val as u64,
1205 )
1206 }
1207 }
1208 #[inline]
1209 #[allow(unnecessary_transmutes)]
1210 pub fn new_bitfield_1(
1211 ref_count: guint,
1212 meta_marshal_nouse: guint,
1213 n_guards: guint,
1214 n_fnotifiers: guint,
1215 n_inotifiers: guint,
1216 in_inotify: guint,
1217 floating: guint,
1218 derivative_flag: guint,
1219 in_marshal: guint,
1220 is_invalid: guint,
1221 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
1222 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
1223 __bindgen_bitfield_unit.set_const::<0usize, 15u8>({
1224 let ref_count: u32 = unsafe { ::core::mem::transmute(ref_count) };
1225 ref_count as u64
1226 });
1227 __bindgen_bitfield_unit.set_const::<15usize, 1u8>({
1228 let meta_marshal_nouse: u32 = unsafe { ::core::mem::transmute(meta_marshal_nouse) };
1229 meta_marshal_nouse as u64
1230 });
1231 __bindgen_bitfield_unit.set_const::<16usize, 1u8>({
1232 let n_guards: u32 = unsafe { ::core::mem::transmute(n_guards) };
1233 n_guards as u64
1234 });
1235 __bindgen_bitfield_unit.set_const::<17usize, 2u8>({
1236 let n_fnotifiers: u32 = unsafe { ::core::mem::transmute(n_fnotifiers) };
1237 n_fnotifiers as u64
1238 });
1239 __bindgen_bitfield_unit.set_const::<19usize, 8u8>({
1240 let n_inotifiers: u32 = unsafe { ::core::mem::transmute(n_inotifiers) };
1241 n_inotifiers as u64
1242 });
1243 __bindgen_bitfield_unit.set_const::<27usize, 1u8>({
1244 let in_inotify: u32 = unsafe { ::core::mem::transmute(in_inotify) };
1245 in_inotify as u64
1246 });
1247 __bindgen_bitfield_unit.set_const::<28usize, 1u8>({
1248 let floating: u32 = unsafe { ::core::mem::transmute(floating) };
1249 floating as u64
1250 });
1251 __bindgen_bitfield_unit.set_const::<29usize, 1u8>({
1252 let derivative_flag: u32 = unsafe { ::core::mem::transmute(derivative_flag) };
1253 derivative_flag as u64
1254 });
1255 __bindgen_bitfield_unit.set_const::<30usize, 1u8>({
1256 let in_marshal: u32 = unsafe { ::core::mem::transmute(in_marshal) };
1257 in_marshal as u64
1258 });
1259 __bindgen_bitfield_unit.set_const::<31usize, 1u8>({
1260 let is_invalid: u32 = unsafe { ::core::mem::transmute(is_invalid) };
1261 is_invalid as u64
1262 });
1263 __bindgen_bitfield_unit
1264 }
1265}
1266#[repr(u32)]
1267#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1268pub enum GConnectFlags {
1269 G_CONNECT_DEFAULT = 0,
1270 G_CONNECT_AFTER = 1,
1271 G_CONNECT_SWAPPED = 2,
1272}
1273unsafe extern "C" {
1274 pub fn g_signal_connect_data(
1275 instance: gpointer,
1276 detailed_signal: *const gchar,
1277 c_handler: GCallback,
1278 data: gpointer,
1279 destroy_data: GClosureNotify,
1280 connect_flags: GConnectFlags,
1281 ) -> gulong;
1282}
1283pub type GObject = _GObject;
1284pub type GObjectClass = _GObjectClass;
1285pub type GObjectConstructParam = _GObjectConstructParam;
1286#[repr(C)]
1287#[derive(Debug, Copy, Clone)]
1288pub struct _GObject {
1289 pub g_type_instance: GTypeInstance,
1290 pub ref_count: guint,
1291 pub qdata: *mut GData,
1292}
1293#[repr(C)]
1294#[derive(Debug, Copy, Clone)]
1295pub struct _GObjectClass {
1296 pub g_type_class: GTypeClass,
1297 pub construct_properties: *mut GSList,
1298 pub constructor: ::core::option::Option<
1299 unsafe extern "C" fn(
1300 type_: GType,
1301 n_construct_properties: guint,
1302 construct_properties: *mut GObjectConstructParam,
1303 ) -> *mut GObject,
1304 >,
1305 pub set_property: ::core::option::Option<
1306 unsafe extern "C" fn(
1307 object: *mut GObject,
1308 property_id: guint,
1309 value: *const GValue,
1310 pspec: *mut GParamSpec,
1311 ),
1312 >,
1313 pub get_property: ::core::option::Option<
1314 unsafe extern "C" fn(
1315 object: *mut GObject,
1316 property_id: guint,
1317 value: *mut GValue,
1318 pspec: *mut GParamSpec,
1319 ),
1320 >,
1321 pub dispose: ::core::option::Option<unsafe extern "C" fn(object: *mut GObject)>,
1322 pub finalize: ::core::option::Option<unsafe extern "C" fn(object: *mut GObject)>,
1323 pub dispatch_properties_changed: ::core::option::Option<
1324 unsafe extern "C" fn(object: *mut GObject, n_pspecs: guint, pspecs: *mut *mut GParamSpec),
1325 >,
1326 pub notify:
1327 ::core::option::Option<unsafe extern "C" fn(object: *mut GObject, pspec: *mut GParamSpec)>,
1328 pub constructed: ::core::option::Option<unsafe extern "C" fn(object: *mut GObject)>,
1329 pub flags: gsize,
1330 pub n_construct_properties: gsize,
1331 pub pspecs: gpointer,
1332 pub n_pspecs: gsize,
1333 pub pdummy: [gpointer; 3usize],
1334}
1335#[repr(C)]
1336#[derive(Debug, Copy, Clone)]
1337pub struct _GObjectConstructParam {
1338 pub pspec: *mut GParamSpec,
1339 pub value: *mut GValue,
1340}
1341unsafe extern "C" {
1342 pub fn g_object_ref(object: gpointer) -> gpointer;
1343}
1344unsafe extern "C" {
1345 pub fn g_object_unref(object: gpointer);
1346}
1347#[repr(C)]
1348#[derive(Debug)]
1349pub struct _GAsyncResult {
1350 _unused: [u8; 0],
1351}
1352pub type GAsyncResult = _GAsyncResult;
1353pub type GCancellable = _GCancellable;
1354#[repr(C)]
1355#[derive(Debug)]
1356pub struct _GFileInfo {
1357 _unused: [u8; 0],
1358}
1359pub type GFileInfo = _GFileInfo;
1360pub type GInputStream = _GInputStream;
1361#[repr(C)]
1362#[derive(Debug)]
1363pub struct _GSeekable {
1364 _unused: [u8; 0],
1365}
1366pub type GSeekable = _GSeekable;
1367pub type GAsyncReadyCallback = ::core::option::Option<
1368 unsafe extern "C" fn(source_object: *mut GObject, res: *mut GAsyncResult, data: gpointer),
1369>;
1370pub type GInputStreamClass = _GInputStreamClass;
1371#[repr(C)]
1372#[derive(Debug)]
1373pub struct _GInputStreamPrivate {
1374 _unused: [u8; 0],
1375}
1376pub type GInputStreamPrivate = _GInputStreamPrivate;
1377#[repr(C)]
1378#[derive(Debug, Copy, Clone)]
1379pub struct _GInputStream {
1380 pub parent_instance: GObject,
1381 pub priv_: *mut GInputStreamPrivate,
1382}
1383#[repr(C)]
1384#[derive(Debug, Copy, Clone)]
1385pub struct _GInputStreamClass {
1386 pub parent_class: GObjectClass,
1387 pub read_fn: ::core::option::Option<
1388 unsafe extern "C" fn(
1389 stream: *mut GInputStream,
1390 buffer: *mut core::ffi::c_void,
1391 count: gsize,
1392 cancellable: *mut GCancellable,
1393 error: *mut *mut GError,
1394 ) -> gssize,
1395 >,
1396 pub skip: ::core::option::Option<
1397 unsafe extern "C" fn(
1398 stream: *mut GInputStream,
1399 count: gsize,
1400 cancellable: *mut GCancellable,
1401 error: *mut *mut GError,
1402 ) -> gssize,
1403 >,
1404 pub close_fn: ::core::option::Option<
1405 unsafe extern "C" fn(
1406 stream: *mut GInputStream,
1407 cancellable: *mut GCancellable,
1408 error: *mut *mut GError,
1409 ) -> gboolean,
1410 >,
1411 pub read_async: ::core::option::Option<
1412 unsafe extern "C" fn(
1413 stream: *mut GInputStream,
1414 buffer: *mut core::ffi::c_void,
1415 count: gsize,
1416 io_priority: core::ffi::c_int,
1417 cancellable: *mut GCancellable,
1418 callback: GAsyncReadyCallback,
1419 user_data: gpointer,
1420 ),
1421 >,
1422 pub read_finish: ::core::option::Option<
1423 unsafe extern "C" fn(
1424 stream: *mut GInputStream,
1425 result: *mut GAsyncResult,
1426 error: *mut *mut GError,
1427 ) -> gssize,
1428 >,
1429 pub skip_async: ::core::option::Option<
1430 unsafe extern "C" fn(
1431 stream: *mut GInputStream,
1432 count: gsize,
1433 io_priority: core::ffi::c_int,
1434 cancellable: *mut GCancellable,
1435 callback: GAsyncReadyCallback,
1436 user_data: gpointer,
1437 ),
1438 >,
1439 pub skip_finish: ::core::option::Option<
1440 unsafe extern "C" fn(
1441 stream: *mut GInputStream,
1442 result: *mut GAsyncResult,
1443 error: *mut *mut GError,
1444 ) -> gssize,
1445 >,
1446 pub close_async: ::core::option::Option<
1447 unsafe extern "C" fn(
1448 stream: *mut GInputStream,
1449 io_priority: core::ffi::c_int,
1450 cancellable: *mut GCancellable,
1451 callback: GAsyncReadyCallback,
1452 user_data: gpointer,
1453 ),
1454 >,
1455 pub close_finish: ::core::option::Option<
1456 unsafe extern "C" fn(
1457 stream: *mut GInputStream,
1458 result: *mut GAsyncResult,
1459 error: *mut *mut GError,
1460 ) -> gboolean,
1461 >,
1462 pub _g_reserved1: ::core::option::Option<unsafe extern "C" fn()>,
1463 pub _g_reserved2: ::core::option::Option<unsafe extern "C" fn()>,
1464 pub _g_reserved3: ::core::option::Option<unsafe extern "C" fn()>,
1465 pub _g_reserved4: ::core::option::Option<unsafe extern "C" fn()>,
1466 pub _g_reserved5: ::core::option::Option<unsafe extern "C" fn()>,
1467}
1468#[repr(C)]
1469#[derive(Debug)]
1470pub struct _GCancellablePrivate {
1471 _unused: [u8; 0],
1472}
1473pub type GCancellablePrivate = _GCancellablePrivate;
1474#[repr(C)]
1475#[derive(Debug, Copy, Clone)]
1476pub struct _GCancellable {
1477 pub parent_instance: GObject,
1478 pub priv_: *mut GCancellablePrivate,
1479}
1480pub type VipsPel = core::ffi::c_uchar;
1481pub type VipsCallbackFn = ::core::option::Option<
1482 unsafe extern "C" fn(a: *mut core::ffi::c_void, b: *mut core::ffi::c_void) -> core::ffi::c_int,
1483>;
1484pub type VipsSListMap2Fn = ::core::option::Option<
1485 unsafe extern "C" fn(
1486 item: *mut core::ffi::c_void,
1487 a: *mut core::ffi::c_void,
1488 b: *mut core::ffi::c_void,
1489 ) -> *mut core::ffi::c_void,
1490>;
1491pub type VipsSListMap4Fn = ::core::option::Option<
1492 unsafe extern "C" fn(
1493 item: *mut core::ffi::c_void,
1494 a: *mut core::ffi::c_void,
1495 b: *mut core::ffi::c_void,
1496 c: *mut core::ffi::c_void,
1497 d: *mut core::ffi::c_void,
1498 ) -> *mut core::ffi::c_void,
1499>;
1500pub type VipsSListFold2Fn = ::core::option::Option<
1501 unsafe extern "C" fn(
1502 item: *mut core::ffi::c_void,
1503 a: *mut core::ffi::c_void,
1504 b: *mut core::ffi::c_void,
1505 c: *mut core::ffi::c_void,
1506 ) -> *mut core::ffi::c_void,
1507>;
1508#[repr(u32)]
1509#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1510pub enum VipsPrecision {
1511 VIPS_PRECISION_INTEGER = 0,
1512 VIPS_PRECISION_FLOAT = 1,
1513 VIPS_PRECISION_APPROXIMATE = 2,
1514 VIPS_PRECISION_LAST = 3,
1515}
1516unsafe extern "C" {
1517 pub fn vips_path_filename7(path: *const core::ffi::c_char) -> *mut core::ffi::c_char;
1518}
1519unsafe extern "C" {
1520 pub fn vips_path_mode7(path: *const core::ffi::c_char) -> *mut core::ffi::c_char;
1521}
1522pub type VipsImage = _VipsImage;
1523pub type VipsRegion = _VipsRegion;
1524pub type VipsBuf = _VipsBuf;
1525pub type VipsSource = _VipsSource;
1526pub type VipsTarget = _VipsTarget;
1527pub type VipsInterpolate = _VipsInterpolate;
1528pub type VipsOperation = _VipsOperation;
1529#[repr(C)]
1530#[derive(Debug, Copy, Clone)]
1531pub struct _VipsBuf {
1532 pub base: *mut core::ffi::c_char,
1533 pub mx: core::ffi::c_int,
1534 pub i: core::ffi::c_int,
1535 pub full: gboolean,
1536 pub lasti: core::ffi::c_int,
1537 pub dynamic: gboolean,
1538}
1539unsafe extern "C" {
1540 pub fn vips_buf_rewind(buf: *mut VipsBuf);
1541}
1542unsafe extern "C" {
1543 pub fn vips_buf_destroy(buf: *mut VipsBuf);
1544}
1545unsafe extern "C" {
1546 pub fn vips_buf_init(buf: *mut VipsBuf);
1547}
1548unsafe extern "C" {
1549 pub fn vips_buf_set_static(
1550 buf: *mut VipsBuf,
1551 base: *mut core::ffi::c_char,
1552 mx: core::ffi::c_int,
1553 );
1554}
1555unsafe extern "C" {
1556 pub fn vips_buf_set_dynamic(buf: *mut VipsBuf, mx: core::ffi::c_int);
1557}
1558unsafe extern "C" {
1559 pub fn vips_buf_init_static(
1560 buf: *mut VipsBuf,
1561 base: *mut core::ffi::c_char,
1562 mx: core::ffi::c_int,
1563 );
1564}
1565unsafe extern "C" {
1566 pub fn vips_buf_init_dynamic(buf: *mut VipsBuf, mx: core::ffi::c_int);
1567}
1568unsafe extern "C" {
1569 pub fn vips_buf_appendns(
1570 buf: *mut VipsBuf,
1571 str_: *const core::ffi::c_char,
1572 sz: core::ffi::c_int,
1573 ) -> gboolean;
1574}
1575unsafe extern "C" {
1576 pub fn vips_buf_appends(buf: *mut VipsBuf, str_: *const core::ffi::c_char) -> gboolean;
1577}
1578unsafe extern "C" {
1579 pub fn vips_buf_appendf(buf: *mut VipsBuf, fmt: *const core::ffi::c_char, ...) -> gboolean;
1580}
1581unsafe extern "C" {
1582 pub fn vips_buf_vappendf(
1583 buf: *mut VipsBuf,
1584 fmt: *const core::ffi::c_char,
1585 ap: va_list,
1586 ) -> gboolean;
1587}
1588unsafe extern "C" {
1589 pub fn vips_buf_appendc(buf: *mut VipsBuf, ch: core::ffi::c_char) -> gboolean;
1590}
1591unsafe extern "C" {
1592 pub fn vips_buf_appendgv(buf: *mut VipsBuf, value: *mut GValue) -> gboolean;
1593}
1594unsafe extern "C" {
1595 pub fn vips_buf_append_size(buf: *mut VipsBuf, n: usize) -> gboolean;
1596}
1597unsafe extern "C" {
1598 pub fn vips_buf_removec(buf: *mut VipsBuf, ch: core::ffi::c_char) -> gboolean;
1599}
1600unsafe extern "C" {
1601 pub fn vips_buf_change(
1602 buf: *mut VipsBuf,
1603 o: *const core::ffi::c_char,
1604 n: *const core::ffi::c_char,
1605 ) -> gboolean;
1606}
1607unsafe extern "C" {
1608 pub fn vips_buf_is_empty(buf: *mut VipsBuf) -> gboolean;
1609}
1610unsafe extern "C" {
1611 pub fn vips_buf_is_full(buf: *mut VipsBuf) -> gboolean;
1612}
1613unsafe extern "C" {
1614 pub fn vips_buf_all(buf: *mut VipsBuf) -> *const core::ffi::c_char;
1615}
1616unsafe extern "C" {
1617 pub fn vips_buf_firstline(buf: *mut VipsBuf) -> *const core::ffi::c_char;
1618}
1619unsafe extern "C" {
1620 pub fn vips_buf_appendg(buf: *mut VipsBuf, g: f64) -> gboolean;
1621}
1622unsafe extern "C" {
1623 pub fn vips_buf_appendd(buf: *mut VipsBuf, d: core::ffi::c_int) -> gboolean;
1624}
1625unsafe extern "C" {
1626 pub fn vips_buf_len(buf: *mut VipsBuf) -> core::ffi::c_int;
1627}
1628#[repr(C)]
1629#[derive(Debug, Copy, Clone)]
1630pub struct _VipsDbuf {
1631 pub data: *mut core::ffi::c_uchar,
1632 pub allocated_size: usize,
1633 pub data_size: usize,
1634 pub write_point: usize,
1635}
1636pub type VipsDbuf = _VipsDbuf;
1637unsafe extern "C" {
1638 pub fn vips_dbuf_init(dbuf: *mut VipsDbuf);
1639}
1640unsafe extern "C" {
1641 pub fn vips_dbuf_minimum_size(dbuf: *mut VipsDbuf, size: usize) -> gboolean;
1642}
1643unsafe extern "C" {
1644 pub fn vips_dbuf_allocate(dbuf: *mut VipsDbuf, size: usize) -> gboolean;
1645}
1646unsafe extern "C" {
1647 pub fn vips_dbuf_read(dbuf: *mut VipsDbuf, data: *mut core::ffi::c_uchar, size: usize)
1648 -> usize;
1649}
1650unsafe extern "C" {
1651 pub fn vips_dbuf_get_write(dbuf: *mut VipsDbuf, size: *mut usize) -> *mut core::ffi::c_uchar;
1652}
1653unsafe extern "C" {
1654 pub fn vips_dbuf_write(
1655 dbuf: *mut VipsDbuf,
1656 data: *const core::ffi::c_uchar,
1657 size: usize,
1658 ) -> gboolean;
1659}
1660unsafe extern "C" {
1661 pub fn vips_dbuf_writef(dbuf: *mut VipsDbuf, fmt: *const core::ffi::c_char, ...) -> gboolean;
1662}
1663unsafe extern "C" {
1664 pub fn vips_dbuf_write_amp(dbuf: *mut VipsDbuf, str_: *const core::ffi::c_char) -> gboolean;
1665}
1666unsafe extern "C" {
1667 pub fn vips_dbuf_reset(dbuf: *mut VipsDbuf);
1668}
1669unsafe extern "C" {
1670 pub fn vips_dbuf_destroy(dbuf: *mut VipsDbuf);
1671}
1672unsafe extern "C" {
1673 pub fn vips_dbuf_seek(dbuf: *mut VipsDbuf, offset: off_t, whence: core::ffi::c_int)
1674 -> gboolean;
1675}
1676unsafe extern "C" {
1677 pub fn vips_dbuf_truncate(dbuf: *mut VipsDbuf);
1678}
1679unsafe extern "C" {
1680 pub fn vips_dbuf_tell(dbuf: *mut VipsDbuf) -> off_t;
1681}
1682unsafe extern "C" {
1683 pub fn vips_dbuf_string(dbuf: *mut VipsDbuf, size: *mut usize) -> *mut core::ffi::c_uchar;
1684}
1685unsafe extern "C" {
1686 pub fn vips_dbuf_steal(dbuf: *mut VipsDbuf, size: *mut usize) -> *mut core::ffi::c_uchar;
1687}
1688unsafe extern "C" {
1689 pub fn vips_enum_string(enm: GType, value: core::ffi::c_int) -> *const core::ffi::c_char;
1690}
1691unsafe extern "C" {
1692 pub fn vips_enum_nick(enm: GType, value: core::ffi::c_int) -> *const core::ffi::c_char;
1693}
1694unsafe extern "C" {
1695 pub fn vips_enum_from_nick(
1696 domain: *const core::ffi::c_char,
1697 type_: GType,
1698 str_: *const core::ffi::c_char,
1699 ) -> core::ffi::c_int;
1700}
1701unsafe extern "C" {
1702 pub fn vips_flags_from_nick(
1703 domain: *const core::ffi::c_char,
1704 type_: GType,
1705 nick: *const core::ffi::c_char,
1706 ) -> core::ffi::c_int;
1707}
1708unsafe extern "C" {
1709 pub fn vips_slist_equal(l1: *mut GSList, l2: *mut GSList) -> gboolean;
1710}
1711unsafe extern "C" {
1712 pub fn vips_slist_map2(
1713 list: *mut GSList,
1714 fn_: VipsSListMap2Fn,
1715 a: *mut core::ffi::c_void,
1716 b: *mut core::ffi::c_void,
1717 ) -> *mut core::ffi::c_void;
1718}
1719unsafe extern "C" {
1720 pub fn vips_slist_map2_rev(
1721 list: *mut GSList,
1722 fn_: VipsSListMap2Fn,
1723 a: *mut core::ffi::c_void,
1724 b: *mut core::ffi::c_void,
1725 ) -> *mut core::ffi::c_void;
1726}
1727unsafe extern "C" {
1728 pub fn vips_slist_map4(
1729 list: *mut GSList,
1730 fn_: VipsSListMap4Fn,
1731 a: *mut core::ffi::c_void,
1732 b: *mut core::ffi::c_void,
1733 c: *mut core::ffi::c_void,
1734 d: *mut core::ffi::c_void,
1735 ) -> *mut core::ffi::c_void;
1736}
1737unsafe extern "C" {
1738 pub fn vips_slist_fold2(
1739 list: *mut GSList,
1740 start: *mut core::ffi::c_void,
1741 fn_: VipsSListFold2Fn,
1742 a: *mut core::ffi::c_void,
1743 b: *mut core::ffi::c_void,
1744 ) -> *mut core::ffi::c_void;
1745}
1746unsafe extern "C" {
1747 pub fn vips_slist_filter(
1748 list: *mut GSList,
1749 fn_: VipsSListMap2Fn,
1750 a: *mut core::ffi::c_void,
1751 b: *mut core::ffi::c_void,
1752 ) -> *mut GSList;
1753}
1754unsafe extern "C" {
1755 pub fn vips_slist_free_all(list: *mut GSList);
1756}
1757unsafe extern "C" {
1758 pub fn vips_map_equal(
1759 a: *mut core::ffi::c_void,
1760 b: *mut core::ffi::c_void,
1761 ) -> *mut core::ffi::c_void;
1762}
1763unsafe extern "C" {
1764 pub fn vips_hash_table_map(
1765 hash: *mut GHashTable,
1766 fn_: VipsSListMap2Fn,
1767 a: *mut core::ffi::c_void,
1768 b: *mut core::ffi::c_void,
1769 ) -> *mut core::ffi::c_void;
1770}
1771unsafe extern "C" {
1772 pub fn vips_iscasepostfix(a: *const core::ffi::c_char, b: *const core::ffi::c_char)
1773 -> gboolean;
1774}
1775unsafe extern "C" {
1776 pub fn vips_isprefix(a: *const core::ffi::c_char, b: *const core::ffi::c_char) -> gboolean;
1777}
1778unsafe extern "C" {
1779 pub fn vips_break_token(
1780 str_: *mut core::ffi::c_char,
1781 brk: *const core::ffi::c_char,
1782 ) -> *mut core::ffi::c_char;
1783}
1784unsafe extern "C" {
1785 pub fn vips_filename_suffix_match(
1786 path: *const core::ffi::c_char,
1787 suffixes: *mut *const core::ffi::c_char,
1788 ) -> core::ffi::c_int;
1789}
1790unsafe extern "C" {
1791 pub fn vips_file_length(fd: core::ffi::c_int) -> gint64;
1792}
1793unsafe extern "C" {
1794 pub fn vips_existsf(name: *const core::ffi::c_char, ...) -> core::ffi::c_int;
1795}
1796unsafe extern "C" {
1797 pub fn vips_isdirf(name: *const core::ffi::c_char, ...) -> core::ffi::c_int;
1798}
1799unsafe extern "C" {
1800 pub fn vips_mkdirf(name: *const core::ffi::c_char, ...) -> core::ffi::c_int;
1801}
1802unsafe extern "C" {
1803 pub fn vips_rmdirf(name: *const core::ffi::c_char, ...) -> core::ffi::c_int;
1804}
1805unsafe extern "C" {
1806 pub fn vips_rename(
1807 old_name: *const core::ffi::c_char,
1808 new_name: *const core::ffi::c_char,
1809 ) -> core::ffi::c_int;
1810}
1811#[repr(u32)]
1812#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1813pub enum VipsToken {
1814 VIPS_TOKEN_LEFT = 1,
1815 VIPS_TOKEN_RIGHT = 2,
1816 VIPS_TOKEN_STRING = 3,
1817 VIPS_TOKEN_EQUALS = 4,
1818 VIPS_TOKEN_COMMA = 5,
1819}
1820unsafe extern "C" {
1821 pub fn vips__token_get(
1822 buffer: *const core::ffi::c_char,
1823 token: *mut VipsToken,
1824 string: *mut core::ffi::c_char,
1825 size: core::ffi::c_int,
1826 ) -> *const core::ffi::c_char;
1827}
1828unsafe extern "C" {
1829 pub fn vips_ispoweroftwo(p: core::ffi::c_int) -> core::ffi::c_int;
1830}
1831unsafe extern "C" {
1832 pub fn vips_amiMSBfirst() -> core::ffi::c_int;
1833}
1834unsafe extern "C" {
1835 pub fn vips_realpath(path: *const core::ffi::c_char) -> *mut core::ffi::c_char;
1836}
1837unsafe extern "C" {
1838 pub fn vips_strtod(str_: *const core::ffi::c_char, out: *mut f64) -> core::ffi::c_int;
1839}
1840pub type VipsObject = _VipsObject;
1841pub type VipsObjectClass = _VipsObjectClass;
1842#[repr(u32)]
1843#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1844pub enum VipsArgumentFlags {
1845 VIPS_ARGUMENT_NONE = 0,
1846 VIPS_ARGUMENT_REQUIRED = 1,
1847 VIPS_ARGUMENT_CONSTRUCT = 2,
1848 VIPS_ARGUMENT_SET_ONCE = 4,
1849 VIPS_ARGUMENT_SET_ALWAYS = 8,
1850 VIPS_ARGUMENT_INPUT = 16,
1851 VIPS_ARGUMENT_OUTPUT = 32,
1852 VIPS_ARGUMENT_DEPRECATED = 64,
1853 VIPS_ARGUMENT_MODIFY = 128,
1854 VIPS_ARGUMENT_NON_HASHABLE = 256,
1855}
1856#[repr(C)]
1857#[derive(Debug, Copy, Clone)]
1858pub struct _VipsArgument {
1859 pub pspec: *mut GParamSpec,
1860}
1861pub type VipsArgument = _VipsArgument;
1862#[repr(C)]
1863#[derive(Debug, Copy, Clone)]
1864pub struct _VipsArgumentClass {
1865 pub parent: VipsArgument,
1866 pub object_class: *mut VipsObjectClass,
1867 pub flags: VipsArgumentFlags,
1868 pub priority: core::ffi::c_int,
1869 pub offset: guint,
1870}
1871pub type VipsArgumentClass = _VipsArgumentClass;
1872#[repr(C)]
1873#[derive(Debug, Copy, Clone)]
1874pub struct _VipsArgumentInstance {
1875 pub parent: VipsArgument,
1876 pub argument_class: *mut VipsArgumentClass,
1877 pub object: *mut VipsObject,
1878 pub assigned: gboolean,
1879 pub close_id: gulong,
1880 pub invalidate_id: gulong,
1881}
1882pub type VipsArgumentInstance = _VipsArgumentInstance;
1883pub type VipsArgumentTable = GHashTable;
1884unsafe extern "C" {
1885 pub fn vips_argument_get_id() -> core::ffi::c_int;
1886}
1887unsafe extern "C" {
1888 pub fn vips__object_set_member(
1889 object: *mut VipsObject,
1890 pspec: *mut GParamSpec,
1891 member: *mut *mut GObject,
1892 argument: *mut GObject,
1893 );
1894}
1895pub type VipsArgumentMapFn = ::core::option::Option<
1896 unsafe extern "C" fn(
1897 object: *mut VipsObject,
1898 pspec: *mut GParamSpec,
1899 argument_class: *mut VipsArgumentClass,
1900 argument_instance: *mut VipsArgumentInstance,
1901 a: *mut core::ffi::c_void,
1902 b: *mut core::ffi::c_void,
1903 ) -> *mut core::ffi::c_void,
1904>;
1905unsafe extern "C" {
1906 pub fn vips_argument_map(
1907 object: *mut VipsObject,
1908 fn_: VipsArgumentMapFn,
1909 a: *mut core::ffi::c_void,
1910 b: *mut core::ffi::c_void,
1911 ) -> *mut core::ffi::c_void;
1912}
1913unsafe extern "C" {
1914 pub fn vips_object_get_args(
1915 object: *mut VipsObject,
1916 names: *mut *mut *const core::ffi::c_char,
1917 flags: *mut *mut core::ffi::c_int,
1918 n_args: *mut core::ffi::c_int,
1919 ) -> core::ffi::c_int;
1920}
1921pub type VipsArgumentClassMapFn = ::core::option::Option<
1922 unsafe extern "C" fn(
1923 object_class: *mut VipsObjectClass,
1924 pspec: *mut GParamSpec,
1925 argument_class: *mut VipsArgumentClass,
1926 a: *mut core::ffi::c_void,
1927 b: *mut core::ffi::c_void,
1928 ) -> *mut core::ffi::c_void,
1929>;
1930unsafe extern "C" {
1931 pub fn vips_argument_class_map(
1932 object_class: *mut VipsObjectClass,
1933 fn_: VipsArgumentClassMapFn,
1934 a: *mut core::ffi::c_void,
1935 b: *mut core::ffi::c_void,
1936 ) -> *mut core::ffi::c_void;
1937}
1938unsafe extern "C" {
1939 pub fn vips_argument_class_needsstring(argument_class: *mut VipsArgumentClass) -> gboolean;
1940}
1941unsafe extern "C" {
1942 pub fn vips_object_get_argument(
1943 object: *mut VipsObject,
1944 name: *const core::ffi::c_char,
1945 pspec: *mut *mut GParamSpec,
1946 argument_class: *mut *mut VipsArgumentClass,
1947 argument_instance: *mut *mut VipsArgumentInstance,
1948 ) -> core::ffi::c_int;
1949}
1950unsafe extern "C" {
1951 pub fn vips_object_argument_isset(
1952 object: *mut VipsObject,
1953 name: *const core::ffi::c_char,
1954 ) -> gboolean;
1955}
1956unsafe extern "C" {
1957 pub fn vips_object_get_argument_flags(
1958 object: *mut VipsObject,
1959 name: *const core::ffi::c_char,
1960 ) -> VipsArgumentFlags;
1961}
1962unsafe extern "C" {
1963 pub fn vips_object_get_argument_priority(
1964 object: *mut VipsObject,
1965 name: *const core::ffi::c_char,
1966 ) -> core::ffi::c_int;
1967}
1968#[repr(C)]
1969#[derive(Debug, Copy, Clone)]
1970pub struct _VipsObject {
1971 pub parent_instance: GObject,
1972 pub constructed: gboolean,
1973 pub static_object: gboolean,
1974 pub argument_table: *mut VipsArgumentTable,
1975 pub nickname: *mut core::ffi::c_char,
1976 pub description: *mut core::ffi::c_char,
1977 pub preclose: gboolean,
1978 pub close: gboolean,
1979 pub postclose: gboolean,
1980 pub local_memory: usize,
1981}
1982#[repr(C)]
1983#[derive(Debug, Copy, Clone)]
1984pub struct _VipsObjectClass {
1985 pub parent_class: GObjectClass,
1986 pub build:
1987 ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject) -> core::ffi::c_int>,
1988 pub postbuild: ::core::option::Option<
1989 unsafe extern "C" fn(
1990 object: *mut VipsObject,
1991 data: *mut core::ffi::c_void,
1992 ) -> core::ffi::c_int,
1993 >,
1994 pub summary_class:
1995 ::core::option::Option<unsafe extern "C" fn(cls: *mut _VipsObjectClass, buf: *mut VipsBuf)>,
1996 pub summary:
1997 ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject, buf: *mut VipsBuf)>,
1998 pub dump:
1999 ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject, buf: *mut VipsBuf)>,
2000 pub sanity:
2001 ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject, buf: *mut VipsBuf)>,
2002 pub rewind: ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject)>,
2003 pub preclose: ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject)>,
2004 pub close: ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject)>,
2005 pub postclose: ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject)>,
2006 pub new_from_string: ::core::option::Option<
2007 unsafe extern "C" fn(string: *const core::ffi::c_char) -> *mut VipsObject,
2008 >,
2009 pub to_string:
2010 ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject, buf: *mut VipsBuf)>,
2011 pub output_needs_arg: gboolean,
2012 pub output_to_arg: ::core::option::Option<
2013 unsafe extern "C" fn(
2014 object: *mut VipsObject,
2015 string: *const core::ffi::c_char,
2016 ) -> core::ffi::c_int,
2017 >,
2018 pub nickname: *const core::ffi::c_char,
2019 pub description: *const core::ffi::c_char,
2020 pub argument_table: *mut VipsArgumentTable,
2021 pub argument_table_traverse: *mut GSList,
2022 pub argument_table_traverse_gtype: GType,
2023 pub deprecated: gboolean,
2024 pub _vips_reserved1: ::core::option::Option<unsafe extern "C" fn()>,
2025 pub _vips_reserved2: ::core::option::Option<unsafe extern "C" fn()>,
2026 pub _vips_reserved3: ::core::option::Option<unsafe extern "C" fn()>,
2027 pub _vips_reserved4: ::core::option::Option<unsafe extern "C" fn()>,
2028}
2029unsafe extern "C" {
2030 pub fn vips_value_is_null(psoec: *mut GParamSpec, value: *const GValue) -> gboolean;
2031}
2032unsafe extern "C" {
2033 pub fn vips_object_set_property(
2034 gobject: *mut GObject,
2035 property_id: guint,
2036 value: *const GValue,
2037 pspec: *mut GParamSpec,
2038 );
2039}
2040unsafe extern "C" {
2041 pub fn vips_object_get_property(
2042 gobject: *mut GObject,
2043 property_id: guint,
2044 value: *mut GValue,
2045 pspec: *mut GParamSpec,
2046 );
2047}
2048unsafe extern "C" {
2049 pub fn vips_object_preclose(object: *mut VipsObject);
2050}
2051unsafe extern "C" {
2052 pub fn vips_object_build(object: *mut VipsObject) -> core::ffi::c_int;
2053}
2054unsafe extern "C" {
2055 pub fn vips_object_summary_class(klass: *mut VipsObjectClass, buf: *mut VipsBuf);
2056}
2057unsafe extern "C" {
2058 pub fn vips_object_summary(object: *mut VipsObject, buf: *mut VipsBuf);
2059}
2060unsafe extern "C" {
2061 pub fn vips_object_dump(object: *mut VipsObject, buf: *mut VipsBuf);
2062}
2063unsafe extern "C" {
2064 pub fn vips_object_print_summary_class(klass: *mut VipsObjectClass);
2065}
2066unsafe extern "C" {
2067 pub fn vips_object_print_summary(object: *mut VipsObject);
2068}
2069unsafe extern "C" {
2070 pub fn vips_object_print_dump(object: *mut VipsObject);
2071}
2072unsafe extern "C" {
2073 pub fn vips_object_print_name(object: *mut VipsObject);
2074}
2075unsafe extern "C" {
2076 pub fn vips_object_sanity(object: *mut VipsObject) -> gboolean;
2077}
2078unsafe extern "C" {
2079 pub fn vips_object_get_type() -> GType;
2080}
2081unsafe extern "C" {
2082 pub fn vips_object_class_install_argument(
2083 cls: *mut VipsObjectClass,
2084 pspec: *mut GParamSpec,
2085 flags: VipsArgumentFlags,
2086 priority: core::ffi::c_int,
2087 offset: guint,
2088 );
2089}
2090unsafe extern "C" {
2091 pub fn vips_object_set_argument_from_string(
2092 object: *mut VipsObject,
2093 name: *const core::ffi::c_char,
2094 value: *const core::ffi::c_char,
2095 ) -> core::ffi::c_int;
2096}
2097unsafe extern "C" {
2098 pub fn vips_object_argument_needsstring(
2099 object: *mut VipsObject,
2100 name: *const core::ffi::c_char,
2101 ) -> gboolean;
2102}
2103unsafe extern "C" {
2104 pub fn vips_object_get_argument_to_string(
2105 object: *mut VipsObject,
2106 name: *const core::ffi::c_char,
2107 arg: *const core::ffi::c_char,
2108 ) -> core::ffi::c_int;
2109}
2110unsafe extern "C" {
2111 pub fn vips_object_set_required(
2112 object: *mut VipsObject,
2113 value: *const core::ffi::c_char,
2114 ) -> core::ffi::c_int;
2115}
2116pub type VipsObjectSetArguments = ::core::option::Option<
2117 unsafe extern "C" fn(
2118 object: *mut VipsObject,
2119 a: *mut core::ffi::c_void,
2120 b: *mut core::ffi::c_void,
2121 ) -> *mut core::ffi::c_void,
2122>;
2123unsafe extern "C" {
2124 pub fn vips_object_new(
2125 type_: GType,
2126 set: VipsObjectSetArguments,
2127 a: *mut core::ffi::c_void,
2128 b: *mut core::ffi::c_void,
2129 ) -> *mut VipsObject;
2130}
2131unsafe extern "C" {
2132 pub fn vips_object_set_valist(object: *mut VipsObject, ap: va_list) -> core::ffi::c_int;
2133}
2134unsafe extern "C" {
2135 pub fn vips_object_set(object: *mut VipsObject, ...) -> core::ffi::c_int;
2136}
2137unsafe extern "C" {
2138 pub fn vips_object_set_from_string(
2139 object: *mut VipsObject,
2140 string: *const core::ffi::c_char,
2141 ) -> core::ffi::c_int;
2142}
2143unsafe extern "C" {
2144 pub fn vips_object_new_from_string(
2145 object_class: *mut VipsObjectClass,
2146 p: *const core::ffi::c_char,
2147 ) -> *mut VipsObject;
2148}
2149unsafe extern "C" {
2150 pub fn vips_object_to_string(object: *mut VipsObject, buf: *mut VipsBuf);
2151}
2152unsafe extern "C" {
2153 pub fn vips_object_map(
2154 fn_: VipsSListMap2Fn,
2155 a: *mut core::ffi::c_void,
2156 b: *mut core::ffi::c_void,
2157 ) -> *mut core::ffi::c_void;
2158}
2159pub type VipsTypeMapFn = ::core::option::Option<
2160 unsafe extern "C" fn(type_: GType, a: *mut core::ffi::c_void) -> *mut core::ffi::c_void,
2161>;
2162pub type VipsTypeMap2Fn = ::core::option::Option<
2163 unsafe extern "C" fn(
2164 type_: GType,
2165 a: *mut core::ffi::c_void,
2166 b: *mut core::ffi::c_void,
2167 ) -> *mut core::ffi::c_void,
2168>;
2169pub type VipsClassMapFn = ::core::option::Option<
2170 unsafe extern "C" fn(
2171 cls: *mut VipsObjectClass,
2172 a: *mut core::ffi::c_void,
2173 ) -> *mut core::ffi::c_void,
2174>;
2175unsafe extern "C" {
2176 pub fn vips_type_map(
2177 base: GType,
2178 fn_: VipsTypeMap2Fn,
2179 a: *mut core::ffi::c_void,
2180 b: *mut core::ffi::c_void,
2181 ) -> *mut core::ffi::c_void;
2182}
2183unsafe extern "C" {
2184 pub fn vips_type_map_all(
2185 base: GType,
2186 fn_: VipsTypeMapFn,
2187 a: *mut core::ffi::c_void,
2188 ) -> *mut core::ffi::c_void;
2189}
2190unsafe extern "C" {
2191 pub fn vips_type_depth(type_: GType) -> core::ffi::c_int;
2192}
2193unsafe extern "C" {
2194 pub fn vips_type_find(
2195 basename: *const core::ffi::c_char,
2196 nickname: *const core::ffi::c_char,
2197 ) -> GType;
2198}
2199unsafe extern "C" {
2200 pub fn vips_nickname_find(type_: GType) -> *const core::ffi::c_char;
2201}
2202unsafe extern "C" {
2203 pub fn vips_class_map_all(
2204 type_: GType,
2205 fn_: VipsClassMapFn,
2206 a: *mut core::ffi::c_void,
2207 ) -> *mut core::ffi::c_void;
2208}
2209unsafe extern "C" {
2210 pub fn vips_class_find(
2211 basename: *const core::ffi::c_char,
2212 nickname: *const core::ffi::c_char,
2213 ) -> *const VipsObjectClass;
2214}
2215unsafe extern "C" {
2216 pub fn vips_object_local_array(
2217 parent: *mut VipsObject,
2218 n: core::ffi::c_int,
2219 ) -> *mut *mut VipsObject;
2220}
2221unsafe extern "C" {
2222 pub fn vips_object_local_cb(vobject: *mut VipsObject, gobject: *mut GObject);
2223}
2224unsafe extern "C" {
2225 pub fn vips_object_set_static(object: *mut VipsObject, static_object: gboolean);
2226}
2227unsafe extern "C" {
2228 pub fn vips_object_print_all();
2229}
2230unsafe extern "C" {
2231 pub fn vips_object_sanity_all();
2232}
2233unsafe extern "C" {
2234 pub fn vips_object_rewind(object: *mut VipsObject);
2235}
2236unsafe extern "C" {
2237 pub fn vips_object_unref_outputs(object: *mut VipsObject);
2238}
2239unsafe extern "C" {
2240 pub fn vips_object_get_description(object: *mut VipsObject) -> *const core::ffi::c_char;
2241}
2242#[repr(C)]
2243#[derive(Debug, Copy, Clone)]
2244pub struct _VipsThing {
2245 pub i: core::ffi::c_int,
2246}
2247pub type VipsThing = _VipsThing;
2248unsafe extern "C" {
2249 pub fn vips_thing_get_type() -> GType;
2250}
2251unsafe extern "C" {
2252 pub fn vips_thing_new(i: core::ffi::c_int) -> *mut VipsThing;
2253}
2254#[repr(C)]
2255#[derive(Copy, Clone)]
2256pub struct _VipsArea {
2257 pub data: *mut core::ffi::c_void,
2258 pub length: usize,
2259 pub n: core::ffi::c_int,
2260 pub count: core::ffi::c_int,
2261 pub lock: GMutex,
2262 pub free_fn: VipsCallbackFn,
2263 pub client: *mut core::ffi::c_void,
2264 pub type_: GType,
2265 pub sizeof_type: usize,
2266}
2267pub type VipsArea = _VipsArea;
2268unsafe extern "C" {
2269 pub fn vips_area_copy(area: *mut VipsArea) -> *mut VipsArea;
2270}
2271unsafe extern "C" {
2272 pub fn vips_area_free_cb(mem: *mut core::ffi::c_void, area: *mut VipsArea) -> core::ffi::c_int;
2273}
2274unsafe extern "C" {
2275 pub fn vips_area_unref(area: *mut VipsArea);
2276}
2277unsafe extern "C" {
2278 pub fn vips_area_new(free_fn: VipsCallbackFn, data: *mut core::ffi::c_void) -> *mut VipsArea;
2279}
2280unsafe extern "C" {
2281 pub fn vips_area_new_array(
2282 type_: GType,
2283 sizeof_type: usize,
2284 n: core::ffi::c_int,
2285 ) -> *mut VipsArea;
2286}
2287unsafe extern "C" {
2288 pub fn vips_area_new_array_object(n: core::ffi::c_int) -> *mut VipsArea;
2289}
2290unsafe extern "C" {
2291 pub fn vips_area_get_data(
2292 area: *mut VipsArea,
2293 length: *mut usize,
2294 n: *mut core::ffi::c_int,
2295 type_: *mut GType,
2296 sizeof_type: *mut usize,
2297 ) -> *mut core::ffi::c_void;
2298}
2299unsafe extern "C" {
2300 pub fn vips_area_get_type() -> GType;
2301}
2302unsafe extern "C" {
2303 pub fn vips_save_string_get_type() -> GType;
2304}
2305#[repr(C)]
2306#[derive(Debug, Copy, Clone)]
2307pub struct _VipsSaveString {
2308 pub s: *mut core::ffi::c_char,
2309}
2310pub type VipsSaveString = _VipsSaveString;
2311#[repr(C)]
2312#[derive(Copy, Clone)]
2313pub struct _VipsRefString {
2314 pub area: VipsArea,
2315}
2316pub type VipsRefString = _VipsRefString;
2317unsafe extern "C" {
2318 pub fn vips_ref_string_new(str_: *const core::ffi::c_char) -> *mut VipsRefString;
2319}
2320unsafe extern "C" {
2321 pub fn vips_ref_string_get(
2322 refstr: *mut VipsRefString,
2323 length: *mut usize,
2324 ) -> *const core::ffi::c_char;
2325}
2326unsafe extern "C" {
2327 pub fn vips_ref_string_get_type() -> GType;
2328}
2329#[repr(C)]
2330#[derive(Copy, Clone)]
2331pub struct _VipsBlob {
2332 pub area: VipsArea,
2333}
2334pub type VipsBlob = _VipsBlob;
2335unsafe extern "C" {
2336 pub fn vips_blob_new(
2337 free_fn: VipsCallbackFn,
2338 data: *const core::ffi::c_void,
2339 length: usize,
2340 ) -> *mut VipsBlob;
2341}
2342unsafe extern "C" {
2343 pub fn vips_blob_copy(data: *const core::ffi::c_void, length: usize) -> *mut VipsBlob;
2344}
2345unsafe extern "C" {
2346 pub fn vips_blob_get(blob: *mut VipsBlob, length: *mut usize) -> *const core::ffi::c_void;
2347}
2348unsafe extern "C" {
2349 pub fn vips_blob_set(
2350 blob: *mut VipsBlob,
2351 free_fn: VipsCallbackFn,
2352 data: *const core::ffi::c_void,
2353 length: usize,
2354 );
2355}
2356unsafe extern "C" {
2357 pub fn vips_blob_get_type() -> GType;
2358}
2359#[repr(C)]
2360#[derive(Copy, Clone)]
2361pub struct _VipsArrayDouble {
2362 pub area: VipsArea,
2363}
2364pub type VipsArrayDouble = _VipsArrayDouble;
2365unsafe extern "C" {
2366 pub fn vips_array_double_new(array: *const f64, n: core::ffi::c_int) -> *mut VipsArrayDouble;
2367}
2368unsafe extern "C" {
2369 pub fn vips_array_double_newv(n: core::ffi::c_int, ...) -> *mut VipsArrayDouble;
2370}
2371unsafe extern "C" {
2372 pub fn vips_array_double_get(array: *mut VipsArrayDouble, n: *mut core::ffi::c_int)
2373 -> *mut f64;
2374}
2375unsafe extern "C" {
2376 pub fn vips_array_double_get_type() -> GType;
2377}
2378#[repr(C)]
2379#[derive(Copy, Clone)]
2380pub struct _VipsArrayInt {
2381 pub area: VipsArea,
2382}
2383pub type VipsArrayInt = _VipsArrayInt;
2384unsafe extern "C" {
2385 pub fn vips_array_int_new(
2386 array: *const core::ffi::c_int,
2387 n: core::ffi::c_int,
2388 ) -> *mut VipsArrayInt;
2389}
2390unsafe extern "C" {
2391 pub fn vips_array_int_newv(n: core::ffi::c_int, ...) -> *mut VipsArrayInt;
2392}
2393unsafe extern "C" {
2394 pub fn vips_array_int_get(
2395 array: *mut VipsArrayInt,
2396 n: *mut core::ffi::c_int,
2397 ) -> *mut core::ffi::c_int;
2398}
2399unsafe extern "C" {
2400 pub fn vips_array_int_get_type() -> GType;
2401}
2402#[repr(C)]
2403#[derive(Copy, Clone)]
2404pub struct _VipsArrayImage {
2405 pub area: VipsArea,
2406}
2407pub type VipsArrayImage = _VipsArrayImage;
2408unsafe extern "C" {
2409 pub fn vips_array_image_get_type() -> GType;
2410}
2411unsafe extern "C" {
2412 pub fn vips_value_set_area(
2413 value: *mut GValue,
2414 free_fn: VipsCallbackFn,
2415 data: *mut core::ffi::c_void,
2416 );
2417}
2418unsafe extern "C" {
2419 pub fn vips_value_get_area(value: *const GValue, length: *mut usize) -> *mut core::ffi::c_void;
2420}
2421unsafe extern "C" {
2422 pub fn vips_value_get_save_string(value: *const GValue) -> *const core::ffi::c_char;
2423}
2424unsafe extern "C" {
2425 pub fn vips_value_set_save_string(value: *mut GValue, str_: *const core::ffi::c_char);
2426}
2427unsafe extern "C" {
2428 pub fn vips_value_set_save_stringf(value: *mut GValue, fmt: *const core::ffi::c_char, ...);
2429}
2430unsafe extern "C" {
2431 pub fn vips_value_get_ref_string(
2432 value: *const GValue,
2433 length: *mut usize,
2434 ) -> *const core::ffi::c_char;
2435}
2436unsafe extern "C" {
2437 pub fn vips_value_set_ref_string(value: *mut GValue, str_: *const core::ffi::c_char);
2438}
2439unsafe extern "C" {
2440 pub fn vips_value_get_blob(value: *const GValue, length: *mut usize) -> *mut core::ffi::c_void;
2441}
2442unsafe extern "C" {
2443 pub fn vips_value_set_blob(
2444 value: *mut GValue,
2445 free_fn: VipsCallbackFn,
2446 data: *const core::ffi::c_void,
2447 length: usize,
2448 );
2449}
2450unsafe extern "C" {
2451 pub fn vips_value_set_blob_free(
2452 value: *mut GValue,
2453 data: *mut core::ffi::c_void,
2454 length: usize,
2455 );
2456}
2457unsafe extern "C" {
2458 pub fn vips_value_set_array(
2459 value: *mut GValue,
2460 n: core::ffi::c_int,
2461 type_: GType,
2462 sizeof_type: usize,
2463 );
2464}
2465unsafe extern "C" {
2466 pub fn vips_value_get_array(
2467 value: *const GValue,
2468 n: *mut core::ffi::c_int,
2469 type_: *mut GType,
2470 sizeof_type: *mut usize,
2471 ) -> *mut core::ffi::c_void;
2472}
2473unsafe extern "C" {
2474 pub fn vips_value_get_array_double(value: *const GValue, n: *mut core::ffi::c_int) -> *mut f64;
2475}
2476unsafe extern "C" {
2477 pub fn vips_value_set_array_double(value: *mut GValue, array: *const f64, n: core::ffi::c_int);
2478}
2479unsafe extern "C" {
2480 pub fn vips_value_get_array_int(
2481 value: *const GValue,
2482 n: *mut core::ffi::c_int,
2483 ) -> *mut core::ffi::c_int;
2484}
2485unsafe extern "C" {
2486 pub fn vips_value_set_array_int(
2487 value: *mut GValue,
2488 array: *const core::ffi::c_int,
2489 n: core::ffi::c_int,
2490 );
2491}
2492unsafe extern "C" {
2493 pub fn vips_value_get_array_object(
2494 value: *const GValue,
2495 n: *mut core::ffi::c_int,
2496 ) -> *mut *mut GObject;
2497}
2498unsafe extern "C" {
2499 pub fn vips_value_set_array_object(value: *mut GValue, n: core::ffi::c_int);
2500}
2501unsafe extern "C" {
2502 pub fn vips_profile_set(profile: gboolean);
2503}
2504#[repr(C)]
2505#[derive(Debug, Copy, Clone)]
2506pub struct _VipsConnection {
2507 pub parent_object: VipsObject,
2508 pub descriptor: core::ffi::c_int,
2509 pub tracked_descriptor: core::ffi::c_int,
2510 pub close_descriptor: core::ffi::c_int,
2511 pub filename: *mut core::ffi::c_char,
2512}
2513pub type VipsConnection = _VipsConnection;
2514#[repr(C)]
2515#[derive(Debug, Copy, Clone)]
2516pub struct _VipsConnectionClass {
2517 pub parent_class: VipsObjectClass,
2518}
2519pub type VipsConnectionClass = _VipsConnectionClass;
2520unsafe extern "C" {
2521 pub fn vips_connection_get_type() -> GType;
2522}
2523unsafe extern "C" {
2524 pub fn vips_connection_filename(connection: *mut VipsConnection) -> *const core::ffi::c_char;
2525}
2526unsafe extern "C" {
2527 pub fn vips_connection_nick(connection: *mut VipsConnection) -> *const core::ffi::c_char;
2528}
2529unsafe extern "C" {
2530 pub fn vips_pipe_read_limit_set(limit: gint64);
2531}
2532#[repr(C)]
2533#[derive(Debug, Copy, Clone)]
2534pub struct _VipsSource {
2535 pub parent_object: VipsConnection,
2536 pub decode: gboolean,
2537 pub have_tested_seek: gboolean,
2538 pub is_pipe: gboolean,
2539 pub read_position: gint64,
2540 pub length: gint64,
2541 pub data: *const core::ffi::c_void,
2542 pub header_bytes: *mut GByteArray,
2543 pub sniff: *mut GByteArray,
2544 pub blob: *mut VipsBlob,
2545 pub mmap_baseaddr: *mut core::ffi::c_void,
2546 pub mmap_length: usize,
2547}
2548#[repr(C)]
2549#[derive(Debug, Copy, Clone)]
2550pub struct _VipsSourceClass {
2551 pub parent_class: VipsConnectionClass,
2552 pub read: ::core::option::Option<
2553 unsafe extern "C" fn(
2554 source: *mut VipsSource,
2555 buffer: *mut core::ffi::c_void,
2556 length: usize,
2557 ) -> gint64,
2558 >,
2559 pub seek: ::core::option::Option<
2560 unsafe extern "C" fn(
2561 source: *mut VipsSource,
2562 offset: gint64,
2563 whence: core::ffi::c_int,
2564 ) -> gint64,
2565 >,
2566}
2567pub type VipsSourceClass = _VipsSourceClass;
2568unsafe extern "C" {
2569 pub fn vips_source_get_type() -> GType;
2570}
2571unsafe extern "C" {
2572 pub fn vips_source_new_from_descriptor(descriptor: core::ffi::c_int) -> *mut VipsSource;
2573}
2574unsafe extern "C" {
2575 pub fn vips_source_new_from_file(filename: *const core::ffi::c_char) -> *mut VipsSource;
2576}
2577unsafe extern "C" {
2578 pub fn vips_source_new_from_blob(blob: *mut VipsBlob) -> *mut VipsSource;
2579}
2580unsafe extern "C" {
2581 pub fn vips_source_new_from_target(target: *mut VipsTarget) -> *mut VipsSource;
2582}
2583unsafe extern "C" {
2584 pub fn vips_source_new_from_memory(
2585 data: *const core::ffi::c_void,
2586 length: usize,
2587 ) -> *mut VipsSource;
2588}
2589unsafe extern "C" {
2590 pub fn vips_source_new_from_options(options: *const core::ffi::c_char) -> *mut VipsSource;
2591}
2592unsafe extern "C" {
2593 pub fn vips_source_minimise(source: *mut VipsSource);
2594}
2595unsafe extern "C" {
2596 pub fn vips_source_unminimise(source: *mut VipsSource) -> core::ffi::c_int;
2597}
2598unsafe extern "C" {
2599 pub fn vips_source_decode(source: *mut VipsSource) -> core::ffi::c_int;
2600}
2601unsafe extern "C" {
2602 pub fn vips_source_read(
2603 source: *mut VipsSource,
2604 buffer: *mut core::ffi::c_void,
2605 length: usize,
2606 ) -> gint64;
2607}
2608unsafe extern "C" {
2609 pub fn vips_source_is_mappable(source: *mut VipsSource) -> gboolean;
2610}
2611unsafe extern "C" {
2612 pub fn vips_source_is_file(source: *mut VipsSource) -> gboolean;
2613}
2614unsafe extern "C" {
2615 pub fn vips_source_map(source: *mut VipsSource, length: *mut usize)
2616 -> *const core::ffi::c_void;
2617}
2618unsafe extern "C" {
2619 pub fn vips_source_map_blob(source: *mut VipsSource) -> *mut VipsBlob;
2620}
2621unsafe extern "C" {
2622 pub fn vips_source_seek(
2623 source: *mut VipsSource,
2624 offset: gint64,
2625 whence: core::ffi::c_int,
2626 ) -> gint64;
2627}
2628unsafe extern "C" {
2629 pub fn vips_source_rewind(source: *mut VipsSource) -> core::ffi::c_int;
2630}
2631unsafe extern "C" {
2632 pub fn vips_source_sniff_at_most(
2633 source: *mut VipsSource,
2634 data: *mut *mut core::ffi::c_uchar,
2635 length: usize,
2636 ) -> gint64;
2637}
2638unsafe extern "C" {
2639 pub fn vips_source_sniff(source: *mut VipsSource, length: usize) -> *mut core::ffi::c_uchar;
2640}
2641unsafe extern "C" {
2642 pub fn vips_source_length(source: *mut VipsSource) -> gint64;
2643}
2644#[repr(C)]
2645#[derive(Debug, Copy, Clone)]
2646pub struct _VipsSourceCustom {
2647 pub parent_object: VipsSource,
2648}
2649pub type VipsSourceCustom = _VipsSourceCustom;
2650#[repr(C)]
2651#[derive(Debug, Copy, Clone)]
2652pub struct _VipsSourceCustomClass {
2653 pub parent_class: VipsSourceClass,
2654 pub read: ::core::option::Option<
2655 unsafe extern "C" fn(
2656 source: *mut VipsSourceCustom,
2657 buffer: *mut core::ffi::c_void,
2658 length: gint64,
2659 ) -> gint64,
2660 >,
2661 pub seek: ::core::option::Option<
2662 unsafe extern "C" fn(
2663 source: *mut VipsSourceCustom,
2664 offset: gint64,
2665 whence: core::ffi::c_int,
2666 ) -> gint64,
2667 >,
2668}
2669pub type VipsSourceCustomClass = _VipsSourceCustomClass;
2670unsafe extern "C" {
2671 pub fn vips_source_custom_get_type() -> GType;
2672}
2673unsafe extern "C" {
2674 pub fn vips_source_custom_new() -> *mut VipsSourceCustom;
2675}
2676#[repr(C)]
2677#[derive(Debug, Copy, Clone)]
2678pub struct _VipsGInputStream {
2679 pub parent_instance: GInputStream,
2680 pub source: *mut VipsSource,
2681}
2682pub type VipsGInputStream = _VipsGInputStream;
2683#[repr(C)]
2684#[derive(Debug, Copy, Clone)]
2685pub struct _VipsGInputStreamClass {
2686 pub parent_class: GInputStreamClass,
2687}
2688pub type VipsGInputStreamClass = _VipsGInputStreamClass;
2689unsafe extern "C" {
2690 pub fn vips_g_input_stream_get_type() -> GType;
2691}
2692unsafe extern "C" {
2693 pub fn vips_g_input_stream_new_from_source(source: *mut VipsSource) -> *mut GInputStream;
2694}
2695#[repr(C)]
2696#[derive(Debug, Copy, Clone)]
2697pub struct _VipsSourceGInputStream {
2698 pub parent_instance: VipsSource,
2699 pub stream: *mut GInputStream,
2700 pub seekable: *mut GSeekable,
2701 pub info: *mut GFileInfo,
2702}
2703pub type VipsSourceGInputStream = _VipsSourceGInputStream;
2704#[repr(C)]
2705#[derive(Debug, Copy, Clone)]
2706pub struct _VipsSourceGInputStreamClass {
2707 pub parent_class: VipsSourceClass,
2708}
2709pub type VipsSourceGInputStreamClass = _VipsSourceGInputStreamClass;
2710unsafe extern "C" {
2711 pub fn vips_source_g_input_stream_get_type() -> GType;
2712}
2713unsafe extern "C" {
2714 pub fn vips_source_g_input_stream_new(stream: *mut GInputStream)
2715 -> *mut VipsSourceGInputStream;
2716}
2717#[repr(C)]
2718#[derive(Debug, Copy, Clone)]
2719pub struct _VipsTarget {
2720 pub parent_object: VipsConnection,
2721 pub memory: gboolean,
2722 pub ended: gboolean,
2723 pub memory_buffer: *mut GString,
2724 pub blob: *mut VipsBlob,
2725 pub output_buffer: [core::ffi::c_uchar; 8500usize],
2726 pub write_point: core::ffi::c_int,
2727 pub position: gint64,
2728 pub delete_on_close: gboolean,
2729 pub delete_on_close_filename: *mut core::ffi::c_char,
2730}
2731#[repr(C)]
2732#[derive(Debug, Copy, Clone)]
2733pub struct _VipsTargetClass {
2734 pub parent_class: VipsConnectionClass,
2735 pub write: ::core::option::Option<
2736 unsafe extern "C" fn(
2737 target: *mut VipsTarget,
2738 data: *const core::ffi::c_void,
2739 length: usize,
2740 ) -> gint64,
2741 >,
2742 pub finish: ::core::option::Option<unsafe extern "C" fn(target: *mut VipsTarget)>,
2743 pub read: ::core::option::Option<
2744 unsafe extern "C" fn(
2745 target: *mut VipsTarget,
2746 buffer: *mut core::ffi::c_void,
2747 length: usize,
2748 ) -> gint64,
2749 >,
2750 pub seek: ::core::option::Option<
2751 unsafe extern "C" fn(
2752 target: *mut VipsTarget,
2753 offset: gint64,
2754 whence: core::ffi::c_int,
2755 ) -> gint64,
2756 >,
2757 pub end:
2758 ::core::option::Option<unsafe extern "C" fn(target: *mut VipsTarget) -> core::ffi::c_int>,
2759}
2760pub type VipsTargetClass = _VipsTargetClass;
2761unsafe extern "C" {
2762 pub fn vips_target_get_type() -> GType;
2763}
2764unsafe extern "C" {
2765 pub fn vips_target_new_to_descriptor(descriptor: core::ffi::c_int) -> *mut VipsTarget;
2766}
2767unsafe extern "C" {
2768 pub fn vips_target_new_to_file(filename: *const core::ffi::c_char) -> *mut VipsTarget;
2769}
2770unsafe extern "C" {
2771 pub fn vips_target_new_to_memory() -> *mut VipsTarget;
2772}
2773unsafe extern "C" {
2774 pub fn vips_target_new_temp(based_on: *mut VipsTarget) -> *mut VipsTarget;
2775}
2776unsafe extern "C" {
2777 pub fn vips_target_write(
2778 target: *mut VipsTarget,
2779 data: *const core::ffi::c_void,
2780 length: usize,
2781 ) -> core::ffi::c_int;
2782}
2783unsafe extern "C" {
2784 pub fn vips_target_read(
2785 target: *mut VipsTarget,
2786 buffer: *mut core::ffi::c_void,
2787 length: usize,
2788 ) -> gint64;
2789}
2790unsafe extern "C" {
2791 pub fn vips_target_seek(
2792 target: *mut VipsTarget,
2793 offset: gint64,
2794 whence: core::ffi::c_int,
2795 ) -> gint64;
2796}
2797unsafe extern "C" {
2798 pub fn vips_target_end(target: *mut VipsTarget) -> core::ffi::c_int;
2799}
2800unsafe extern "C" {
2801 pub fn vips_target_steal(
2802 target: *mut VipsTarget,
2803 length: *mut usize,
2804 ) -> *mut core::ffi::c_uchar;
2805}
2806unsafe extern "C" {
2807 pub fn vips_target_steal_text(target: *mut VipsTarget) -> *mut core::ffi::c_char;
2808}
2809unsafe extern "C" {
2810 pub fn vips_target_putc(target: *mut VipsTarget, ch: core::ffi::c_int) -> core::ffi::c_int;
2811}
2812unsafe extern "C" {
2813 pub fn vips_target_writes(
2814 target: *mut VipsTarget,
2815 str_: *const core::ffi::c_char,
2816 ) -> core::ffi::c_int;
2817}
2818unsafe extern "C" {
2819 pub fn vips_target_writef(
2820 target: *mut VipsTarget,
2821 fmt: *const core::ffi::c_char,
2822 ...
2823 ) -> core::ffi::c_int;
2824}
2825unsafe extern "C" {
2826 pub fn vips_target_write_amp(
2827 target: *mut VipsTarget,
2828 str_: *const core::ffi::c_char,
2829 ) -> core::ffi::c_int;
2830}
2831#[repr(C)]
2832#[derive(Debug, Copy, Clone)]
2833pub struct _VipsTargetCustom {
2834 pub parent_object: VipsTarget,
2835}
2836pub type VipsTargetCustom = _VipsTargetCustom;
2837#[repr(C)]
2838#[derive(Debug, Copy, Clone)]
2839pub struct _VipsTargetCustomClass {
2840 pub parent_class: VipsTargetClass,
2841 pub write: ::core::option::Option<
2842 unsafe extern "C" fn(
2843 target: *mut VipsTargetCustom,
2844 data: *const core::ffi::c_void,
2845 length: gint64,
2846 ) -> gint64,
2847 >,
2848 pub finish: ::core::option::Option<unsafe extern "C" fn(target: *mut VipsTargetCustom)>,
2849 pub read: ::core::option::Option<
2850 unsafe extern "C" fn(
2851 target: *mut VipsTargetCustom,
2852 buffer: *mut core::ffi::c_void,
2853 length: gint64,
2854 ) -> gint64,
2855 >,
2856 pub seek: ::core::option::Option<
2857 unsafe extern "C" fn(
2858 target: *mut VipsTargetCustom,
2859 offset: gint64,
2860 whence: core::ffi::c_int,
2861 ) -> gint64,
2862 >,
2863 pub end: ::core::option::Option<
2864 unsafe extern "C" fn(target: *mut VipsTargetCustom) -> core::ffi::c_int,
2865 >,
2866}
2867pub type VipsTargetCustomClass = _VipsTargetCustomClass;
2868unsafe extern "C" {
2869 pub fn vips_target_custom_get_type() -> GType;
2870}
2871unsafe extern "C" {
2872 pub fn vips_target_custom_new() -> *mut VipsTargetCustom;
2873}
2874#[repr(C)]
2875#[derive(Debug, Copy, Clone)]
2876pub struct _VipsSbuf {
2877 pub parent_object: VipsObject,
2878 pub source: *mut VipsSource,
2879 pub input_buffer: [core::ffi::c_uchar; 4097usize],
2880 pub chars_in_buffer: core::ffi::c_int,
2881 pub read_point: core::ffi::c_int,
2882 pub line: [core::ffi::c_uchar; 4097usize],
2883}
2884pub type VipsSbuf = _VipsSbuf;
2885#[repr(C)]
2886#[derive(Debug, Copy, Clone)]
2887pub struct _VipsSbufClass {
2888 pub parent_class: VipsObjectClass,
2889}
2890pub type VipsSbufClass = _VipsSbufClass;
2891unsafe extern "C" {
2892 pub fn vips_sbuf_get_type() -> GType;
2893}
2894unsafe extern "C" {
2895 pub fn vips_sbuf_new_from_source(source: *mut VipsSource) -> *mut VipsSbuf;
2896}
2897unsafe extern "C" {
2898 pub fn vips_sbuf_unbuffer(sbuf: *mut VipsSbuf);
2899}
2900unsafe extern "C" {
2901 pub fn vips_sbuf_getc(sbuf: *mut VipsSbuf) -> core::ffi::c_int;
2902}
2903unsafe extern "C" {
2904 pub fn vips_sbuf_ungetc(sbuf: *mut VipsSbuf);
2905}
2906unsafe extern "C" {
2907 pub fn vips_sbuf_require(sbuf: *mut VipsSbuf, require: core::ffi::c_int) -> core::ffi::c_int;
2908}
2909unsafe extern "C" {
2910 pub fn vips_sbuf_get_line(sbuf: *mut VipsSbuf) -> *const core::ffi::c_char;
2911}
2912unsafe extern "C" {
2913 pub fn vips_sbuf_get_line_copy(sbuf: *mut VipsSbuf) -> *mut core::ffi::c_char;
2914}
2915unsafe extern "C" {
2916 pub fn vips_sbuf_get_non_whitespace(sbuf: *mut VipsSbuf) -> *const core::ffi::c_char;
2917}
2918unsafe extern "C" {
2919 pub fn vips_sbuf_skip_whitespace(sbuf: *mut VipsSbuf) -> core::ffi::c_int;
2920}
2921#[repr(C)]
2922#[derive(Debug, Copy, Clone)]
2923pub struct _VipsRect {
2924 pub left: core::ffi::c_int,
2925 pub top: core::ffi::c_int,
2926 pub width: core::ffi::c_int,
2927 pub height: core::ffi::c_int,
2928}
2929pub type VipsRect = _VipsRect;
2930unsafe extern "C" {
2931 pub fn vips_rect_isempty(r: *const VipsRect) -> gboolean;
2932}
2933unsafe extern "C" {
2934 pub fn vips_rect_includespoint(
2935 r: *const VipsRect,
2936 x: core::ffi::c_int,
2937 y: core::ffi::c_int,
2938 ) -> gboolean;
2939}
2940unsafe extern "C" {
2941 pub fn vips_rect_includesrect(r1: *const VipsRect, r2: *const VipsRect) -> gboolean;
2942}
2943unsafe extern "C" {
2944 pub fn vips_rect_equalsrect(r1: *const VipsRect, r2: *const VipsRect) -> gboolean;
2945}
2946unsafe extern "C" {
2947 pub fn vips_rect_overlapsrect(r1: *const VipsRect, r2: *const VipsRect) -> gboolean;
2948}
2949unsafe extern "C" {
2950 pub fn vips_rect_marginadjust(r: *mut VipsRect, n: core::ffi::c_int);
2951}
2952unsafe extern "C" {
2953 pub fn vips_rect_intersectrect(r1: *const VipsRect, r2: *const VipsRect, out: *mut VipsRect);
2954}
2955unsafe extern "C" {
2956 pub fn vips_rect_unionrect(r1: *const VipsRect, r2: *const VipsRect, out: *mut VipsRect);
2957}
2958unsafe extern "C" {
2959 pub fn vips_rect_dup(r: *const VipsRect) -> *mut VipsRect;
2960}
2961unsafe extern "C" {
2962 pub fn vips_rect_normalise(r: *mut VipsRect);
2963}
2964#[repr(C)]
2965#[derive(Debug, Copy, Clone)]
2966pub struct VipsWindow {
2967 pub ref_count: core::ffi::c_int,
2968 pub im: *mut _VipsImage,
2969 pub top: core::ffi::c_int,
2970 pub height: core::ffi::c_int,
2971 pub data: *mut VipsPel,
2972 pub baseaddr: *mut core::ffi::c_void,
2973 pub length: usize,
2974}
2975unsafe extern "C" {
2976 pub fn vips_window_unref(window: *mut VipsWindow) -> core::ffi::c_int;
2977}
2978unsafe extern "C" {
2979 pub fn vips_window_print(window: *mut VipsWindow);
2980}
2981#[repr(C)]
2982#[derive(Debug, Copy, Clone)]
2983pub struct VipsBufferThread {
2984 pub hash: *mut GHashTable,
2985 pub thread: *mut GThread,
2986}
2987#[repr(C)]
2988#[derive(Debug, Copy, Clone)]
2989pub struct _VipsBufferCache {
2990 pub buffers: *mut GSList,
2991 pub thread: *mut GThread,
2992 pub im: *mut _VipsImage,
2993 pub buffer_thread: *mut VipsBufferThread,
2994 pub reserve: *mut GSList,
2995 pub n_reserve: core::ffi::c_int,
2996}
2997pub type VipsBufferCache = _VipsBufferCache;
2998#[repr(C)]
2999#[derive(Debug, Copy, Clone)]
3000pub struct _VipsBuffer {
3001 pub ref_count: core::ffi::c_int,
3002 pub im: *mut _VipsImage,
3003 pub area: VipsRect,
3004 pub done: gboolean,
3005 pub cache: *mut VipsBufferCache,
3006 pub buf: *mut VipsPel,
3007 pub bsize: usize,
3008}
3009pub type VipsBuffer = _VipsBuffer;
3010unsafe extern "C" {
3011 pub fn vips_buffer_dump_all();
3012}
3013unsafe extern "C" {
3014 pub fn vips_buffer_done(buffer: *mut VipsBuffer);
3015}
3016unsafe extern "C" {
3017 pub fn vips_buffer_undone(buffer: *mut VipsBuffer);
3018}
3019unsafe extern "C" {
3020 pub fn vips_buffer_unref(buffer: *mut VipsBuffer);
3021}
3022unsafe extern "C" {
3023 pub fn vips_buffer_new(im: *mut _VipsImage, area: *mut VipsRect) -> *mut VipsBuffer;
3024}
3025unsafe extern "C" {
3026 pub fn vips_buffer_ref(im: *mut _VipsImage, area: *mut VipsRect) -> *mut VipsBuffer;
3027}
3028unsafe extern "C" {
3029 pub fn vips_buffer_unref_ref(
3030 buffer: *mut VipsBuffer,
3031 im: *mut _VipsImage,
3032 area: *mut VipsRect,
3033 ) -> *mut VipsBuffer;
3034}
3035unsafe extern "C" {
3036 pub fn vips_buffer_print(buffer: *mut VipsBuffer);
3037}
3038unsafe extern "C" {
3039 pub fn vips__render_shutdown();
3040}
3041#[repr(u32)]
3042#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3043pub enum _RegionType {
3044 VIPS_REGION_NONE = 0,
3045 VIPS_REGION_BUFFER = 1,
3046 VIPS_REGION_OTHER_REGION = 2,
3047 VIPS_REGION_OTHER_IMAGE = 3,
3048 VIPS_REGION_WINDOW = 4,
3049}
3050pub use self::_RegionType as RegionType;
3051unsafe extern "C" {
3052 pub fn vips__region_take_ownership(reg: *mut _VipsRegion);
3053}
3054unsafe extern "C" {
3055 pub fn vips__region_check_ownership(reg: *mut _VipsRegion);
3056}
3057unsafe extern "C" {
3058 pub fn vips__region_no_ownership(reg: *mut _VipsRegion);
3059}
3060pub type VipsRegionFillFn = ::core::option::Option<
3061 unsafe extern "C" fn(arg1: *mut _VipsRegion, arg2: *mut core::ffi::c_void) -> core::ffi::c_int,
3062>;
3063unsafe extern "C" {
3064 pub fn vips_region_fill(
3065 reg: *mut _VipsRegion,
3066 r: *const VipsRect,
3067 fn_: VipsRegionFillFn,
3068 a: *mut core::ffi::c_void,
3069 ) -> core::ffi::c_int;
3070}
3071unsafe extern "C" {
3072 pub fn vips__image_wio_output(image: *mut _VipsImage) -> core::ffi::c_int;
3073}
3074unsafe extern "C" {
3075 pub fn vips__image_pio_output(image: *mut _VipsImage) -> core::ffi::c_int;
3076}
3077unsafe extern "C" {
3078 pub fn vips__argument_get_instance(
3079 argument_class: *mut VipsArgumentClass,
3080 object: *mut VipsObject,
3081 ) -> *mut VipsArgumentInstance;
3082}
3083unsafe extern "C" {
3084 pub fn vips__argument_table_lookup(
3085 table: *mut VipsArgumentTable,
3086 pspec: *mut GParamSpec,
3087 ) -> *mut VipsArgument;
3088}
3089unsafe extern "C" {
3090 pub fn vips__demand_hint_array(
3091 image: *mut _VipsImage,
3092 hint: core::ffi::c_int,
3093 in_: *mut *mut _VipsImage,
3094 );
3095}
3096unsafe extern "C" {
3097 pub fn vips__image_copy_fields_array(
3098 out: *mut _VipsImage,
3099 in_: *mut *mut _VipsImage,
3100 ) -> core::ffi::c_int;
3101}
3102unsafe extern "C" {
3103 pub fn vips__region_count_pixels(region: *mut _VipsRegion, nickname: *const core::ffi::c_char);
3104}
3105unsafe extern "C" {
3106 pub fn vips_region_dump_all();
3107}
3108unsafe extern "C" {
3109 pub fn vips_region_prepare_many(
3110 reg: *mut *mut _VipsRegion,
3111 r: *const VipsRect,
3112 ) -> core::ffi::c_int;
3113}
3114unsafe extern "C" {
3115 pub fn vips__view_image(image: *mut _VipsImage) -> core::ffi::c_int;
3116}
3117unsafe extern "C" {
3118 pub fn vips__thread_gate_start(gate_name: *const core::ffi::c_char);
3119}
3120unsafe extern "C" {
3121 pub fn vips__thread_gate_stop(gate_name: *const core::ffi::c_char);
3122}
3123unsafe extern "C" {
3124 pub fn vips__thread_malloc_free(size: gint64);
3125}
3126unsafe extern "C" {
3127 pub fn vips__file_open_read(
3128 filename: *const core::ffi::c_char,
3129 fallback_dir: *const core::ffi::c_char,
3130 text_mode: gboolean,
3131 ) -> *mut FILE;
3132}
3133unsafe extern "C" {
3134 pub fn vips__file_open_write(
3135 filename: *const core::ffi::c_char,
3136 text_mode: gboolean,
3137 ) -> *mut FILE;
3138}
3139unsafe extern "C" {
3140 pub fn vips__write(
3141 fd: core::ffi::c_int,
3142 buf: *const core::ffi::c_void,
3143 count: usize,
3144 ) -> core::ffi::c_int;
3145}
3146unsafe extern "C" {
3147 pub fn vips__open(
3148 filename: *const core::ffi::c_char,
3149 flags: core::ffi::c_int,
3150 mode: core::ffi::c_int,
3151 ) -> core::ffi::c_int;
3152}
3153unsafe extern "C" {
3154 pub fn vips__file_read(
3155 fp: *mut FILE,
3156 name: *const core::ffi::c_char,
3157 length_out: *mut usize,
3158 ) -> *mut core::ffi::c_char;
3159}
3160unsafe extern "C" {
3161 pub fn vips__get_bytes(
3162 filename: *const core::ffi::c_char,
3163 buf: *mut core::ffi::c_uchar,
3164 len: gint64,
3165 ) -> gint64;
3166}
3167unsafe extern "C" {
3168 pub fn vips__seek(fd: core::ffi::c_int, pos: gint64, whence: core::ffi::c_int) -> gint64;
3169}
3170unsafe extern "C" {
3171 pub fn vips__filename_split8(
3172 name: *const core::ffi::c_char,
3173 filename: *mut core::ffi::c_char,
3174 option_string: *mut core::ffi::c_char,
3175 );
3176}
3177unsafe extern "C" {
3178 pub fn vips__temp_name(format: *const core::ffi::c_char) -> *mut core::ffi::c_char;
3179}
3180unsafe extern "C" {
3181 pub fn vips__win32_terminate(ret: core::ffi::c_int);
3182}
3183#[repr(u32)]
3184#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3185pub enum VipsRegionShrink {
3186 VIPS_REGION_SHRINK_MEAN = 0,
3187 VIPS_REGION_SHRINK_MEDIAN = 1,
3188 VIPS_REGION_SHRINK_MODE = 2,
3189 VIPS_REGION_SHRINK_MAX = 3,
3190 VIPS_REGION_SHRINK_MIN = 4,
3191 VIPS_REGION_SHRINK_NEAREST = 5,
3192 VIPS_REGION_SHRINK_LAST = 6,
3193}
3194#[repr(C)]
3195#[derive(Debug, Copy, Clone)]
3196pub struct _VipsRegion {
3197 pub parent_object: VipsObject,
3198 pub im: *mut VipsImage,
3199 pub valid: VipsRect,
3200 pub type_: RegionType,
3201 pub data: *mut VipsPel,
3202 pub bpl: core::ffi::c_int,
3203 pub seq: *mut core::ffi::c_void,
3204 pub thread: *mut GThread,
3205 pub window: *mut VipsWindow,
3206 pub buffer: *mut VipsBuffer,
3207 pub invalid: gboolean,
3208}
3209#[repr(C)]
3210#[derive(Debug, Copy, Clone)]
3211pub struct _VipsRegionClass {
3212 pub parent_class: VipsObjectClass,
3213}
3214pub type VipsRegionClass = _VipsRegionClass;
3215unsafe extern "C" {
3216 pub fn vips_region_get_type() -> GType;
3217}
3218unsafe extern "C" {
3219 pub fn vips_region_new(image: *mut VipsImage) -> *mut VipsRegion;
3220}
3221unsafe extern "C" {
3222 pub fn vips_region_buffer(reg: *mut VipsRegion, r: *const VipsRect) -> core::ffi::c_int;
3223}
3224unsafe extern "C" {
3225 pub fn vips_region_image(reg: *mut VipsRegion, r: *const VipsRect) -> core::ffi::c_int;
3226}
3227unsafe extern "C" {
3228 pub fn vips_region_region(
3229 reg: *mut VipsRegion,
3230 dest: *mut VipsRegion,
3231 r: *const VipsRect,
3232 x: core::ffi::c_int,
3233 y: core::ffi::c_int,
3234 ) -> core::ffi::c_int;
3235}
3236unsafe extern "C" {
3237 pub fn vips_region_equalsregion(
3238 reg1: *mut VipsRegion,
3239 reg2: *mut VipsRegion,
3240 ) -> core::ffi::c_int;
3241}
3242unsafe extern "C" {
3243 pub fn vips_region_position(
3244 reg: *mut VipsRegion,
3245 x: core::ffi::c_int,
3246 y: core::ffi::c_int,
3247 ) -> core::ffi::c_int;
3248}
3249unsafe extern "C" {
3250 pub fn vips_region_paint(reg: *mut VipsRegion, r: *const VipsRect, value: core::ffi::c_int);
3251}
3252unsafe extern "C" {
3253 pub fn vips_region_paint_pel(reg: *mut VipsRegion, r: *const VipsRect, ink: *const VipsPel);
3254}
3255unsafe extern "C" {
3256 pub fn vips_region_black(reg: *mut VipsRegion);
3257}
3258unsafe extern "C" {
3259 pub fn vips_region_copy(
3260 reg: *mut VipsRegion,
3261 dest: *mut VipsRegion,
3262 r: *const VipsRect,
3263 x: core::ffi::c_int,
3264 y: core::ffi::c_int,
3265 );
3266}
3267unsafe extern "C" {
3268 pub fn vips_region_shrink_method(
3269 from: *mut VipsRegion,
3270 to: *mut VipsRegion,
3271 target: *const VipsRect,
3272 method: VipsRegionShrink,
3273 ) -> core::ffi::c_int;
3274}
3275unsafe extern "C" {
3276 pub fn vips_region_shrink(
3277 from: *mut VipsRegion,
3278 to: *mut VipsRegion,
3279 target: *const VipsRect,
3280 ) -> core::ffi::c_int;
3281}
3282unsafe extern "C" {
3283 pub fn vips_region_prepare(reg: *mut VipsRegion, r: *const VipsRect) -> core::ffi::c_int;
3284}
3285unsafe extern "C" {
3286 pub fn vips_region_prepare_to(
3287 reg: *mut VipsRegion,
3288 dest: *mut VipsRegion,
3289 r: *const VipsRect,
3290 x: core::ffi::c_int,
3291 y: core::ffi::c_int,
3292 ) -> core::ffi::c_int;
3293}
3294unsafe extern "C" {
3295 pub fn vips_region_fetch(
3296 region: *mut VipsRegion,
3297 left: core::ffi::c_int,
3298 top: core::ffi::c_int,
3299 width: core::ffi::c_int,
3300 height: core::ffi::c_int,
3301 len: *mut usize,
3302 ) -> *mut VipsPel;
3303}
3304unsafe extern "C" {
3305 pub fn vips_region_width(region: *mut VipsRegion) -> core::ffi::c_int;
3306}
3307unsafe extern "C" {
3308 pub fn vips_region_height(region: *mut VipsRegion) -> core::ffi::c_int;
3309}
3310unsafe extern "C" {
3311 pub fn vips_region_invalidate(reg: *mut VipsRegion);
3312}
3313#[repr(i32)]
3314#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3315pub enum VipsDemandStyle {
3316 VIPS_DEMAND_STYLE_ERROR = -1,
3317 VIPS_DEMAND_STYLE_SMALLTILE = 0,
3318 VIPS_DEMAND_STYLE_FATSTRIP = 1,
3319 VIPS_DEMAND_STYLE_THINSTRIP = 2,
3320 VIPS_DEMAND_STYLE_ANY = 3,
3321}
3322#[repr(i32)]
3323#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3324pub enum VipsImageType {
3325 VIPS_IMAGE_ERROR = -1,
3326 VIPS_IMAGE_NONE = 0,
3327 VIPS_IMAGE_SETBUF = 1,
3328 VIPS_IMAGE_SETBUF_FOREIGN = 2,
3329 VIPS_IMAGE_OPENIN = 3,
3330 VIPS_IMAGE_MMAPIN = 4,
3331 VIPS_IMAGE_MMAPINRW = 5,
3332 VIPS_IMAGE_OPENOUT = 6,
3333 VIPS_IMAGE_PARTIAL = 7,
3334}
3335#[repr(i32)]
3336#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3337pub enum VipsInterpretation {
3338 VIPS_INTERPRETATION_ERROR = -1,
3339 VIPS_INTERPRETATION_MULTIBAND = 0,
3340 VIPS_INTERPRETATION_B_W = 1,
3341 VIPS_INTERPRETATION_HISTOGRAM = 10,
3342 VIPS_INTERPRETATION_XYZ = 12,
3343 VIPS_INTERPRETATION_LAB = 13,
3344 VIPS_INTERPRETATION_CMYK = 15,
3345 VIPS_INTERPRETATION_LABQ = 16,
3346 VIPS_INTERPRETATION_RGB = 17,
3347 VIPS_INTERPRETATION_CMC = 18,
3348 VIPS_INTERPRETATION_LCH = 19,
3349 VIPS_INTERPRETATION_LABS = 21,
3350 VIPS_INTERPRETATION_sRGB = 22,
3351 VIPS_INTERPRETATION_YXY = 23,
3352 VIPS_INTERPRETATION_FOURIER = 24,
3353 VIPS_INTERPRETATION_RGB16 = 25,
3354 VIPS_INTERPRETATION_GREY16 = 26,
3355 VIPS_INTERPRETATION_MATRIX = 27,
3356 VIPS_INTERPRETATION_scRGB = 28,
3357 VIPS_INTERPRETATION_HSV = 29,
3358 VIPS_INTERPRETATION_OKLAB = 30,
3359 VIPS_INTERPRETATION_OKLCH = 31,
3360 VIPS_INTERPRETATION_LAST = 32,
3361}
3362#[repr(i32)]
3363#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3364pub enum VipsBandFormat {
3365 VIPS_FORMAT_NOTSET = -1,
3366 VIPS_FORMAT_UCHAR = 0,
3367 VIPS_FORMAT_CHAR = 1,
3368 VIPS_FORMAT_USHORT = 2,
3369 VIPS_FORMAT_SHORT = 3,
3370 VIPS_FORMAT_UINT = 4,
3371 VIPS_FORMAT_INT = 5,
3372 VIPS_FORMAT_FLOAT = 6,
3373 VIPS_FORMAT_COMPLEX = 7,
3374 VIPS_FORMAT_DOUBLE = 8,
3375 VIPS_FORMAT_DPCOMPLEX = 9,
3376 VIPS_FORMAT_LAST = 10,
3377}
3378#[repr(i32)]
3379#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3380pub enum VipsCoding {
3381 VIPS_CODING_ERROR = -1,
3382 VIPS_CODING_NONE = 0,
3383 VIPS_CODING_LABQ = 2,
3384 VIPS_CODING_RAD = 6,
3385 VIPS_CODING_LAST = 7,
3386}
3387#[repr(u32)]
3388#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
3389pub enum VipsAccess {
3390 VIPS_ACCESS_RANDOM = 0,
3391 VIPS_ACCESS_SEQUENTIAL = 1,
3392 VIPS_ACCESS_SEQUENTIAL_UNBUFFERED = 2,
3393 VIPS_ACCESS_LAST = 3,
3394}
3395pub type VipsStartFn = ::core::option::Option<
3396 unsafe extern "C" fn(
3397 out: *mut VipsImage,
3398 a: *mut core::ffi::c_void,
3399 b: *mut core::ffi::c_void,
3400 ) -> *mut core::ffi::c_void,
3401>;
3402pub type VipsGenerateFn = ::core::option::Option<
3403 unsafe extern "C" fn(
3404 out: *mut VipsRegion,
3405 seq: *mut core::ffi::c_void,
3406 a: *mut core::ffi::c_void,
3407 b: *mut core::ffi::c_void,
3408 stop: *mut gboolean,
3409 ) -> core::ffi::c_int,
3410>;
3411pub type VipsStopFn = ::core::option::Option<
3412 unsafe extern "C" fn(
3413 seq: *mut core::ffi::c_void,
3414 a: *mut core::ffi::c_void,
3415 b: *mut core::ffi::c_void,
3416 ) -> core::ffi::c_int,
3417>;
3418#[repr(C)]
3419#[derive(Debug, Copy, Clone)]
3420pub struct _VipsProgress {
3421 pub im: *mut VipsImage,
3422 pub run: core::ffi::c_int,
3423 pub eta: core::ffi::c_int,
3424 pub tpels: gint64,
3425 pub npels: gint64,
3426 pub percent: core::ffi::c_int,
3427 pub start: *mut GTimer,
3428}
3429pub type VipsProgress = _VipsProgress;
3430#[repr(C)]
3431#[derive(Copy, Clone)]
3432pub struct _VipsImage {
3433 pub parent_instance: VipsObject,
3434 pub Xsize: core::ffi::c_int,
3435 pub Ysize: core::ffi::c_int,
3436 pub Bands: core::ffi::c_int,
3437 pub BandFmt: VipsBandFormat,
3438 pub Coding: VipsCoding,
3439 pub Type: VipsInterpretation,
3440 pub Xres: f64,
3441 pub Yres: f64,
3442 pub Xoffset: core::ffi::c_int,
3443 pub Yoffset: core::ffi::c_int,
3444 pub Length: core::ffi::c_int,
3445 pub Compression: core::ffi::c_short,
3446 pub Level: core::ffi::c_short,
3447 pub Bbits: core::ffi::c_int,
3448 pub time: *mut VipsProgress,
3449 pub Hist: *mut core::ffi::c_char,
3450 pub filename: *mut core::ffi::c_char,
3451 pub data: *mut VipsPel,
3452 pub kill: core::ffi::c_int,
3453 pub Xres_float: f32,
3454 pub Yres_float: f32,
3455 pub mode: *mut core::ffi::c_char,
3456 pub dtype: VipsImageType,
3457 pub fd: core::ffi::c_int,
3458 pub baseaddr: *mut core::ffi::c_void,
3459 pub length: usize,
3460 pub magic: guint32,
3461 pub start_fn: VipsStartFn,
3462 pub generate_fn: VipsGenerateFn,
3463 pub stop_fn: VipsStopFn,
3464 pub client1: *mut core::ffi::c_void,
3465 pub client2: *mut core::ffi::c_void,
3466 pub sslock: GMutex,
3467 pub regions: *mut GSList,
3468 pub dhint: VipsDemandStyle,
3469 pub meta: *mut GHashTable,
3470 pub meta_traverse: *mut GSList,
3471 pub sizeof_header: gint64,
3472 pub windows: *mut GSList,
3473 pub upstream: *mut GSList,
3474 pub downstream: *mut GSList,
3475 pub serial: core::ffi::c_int,
3476 pub history_list: *mut GSList,
3477 pub progress_signal: *mut VipsImage,
3478 pub file_length: gint64,
3479 pub hint_set: gboolean,
3480 pub delete_on_close: gboolean,
3481 pub delete_on_close_filename: *mut core::ffi::c_char,
3482}
3483#[repr(C)]
3484#[derive(Debug, Copy, Clone)]
3485pub struct _VipsImageClass {
3486 pub parent_class: VipsObjectClass,
3487 pub preeval: ::core::option::Option<
3488 unsafe extern "C" fn(
3489 image: *mut VipsImage,
3490 progress: *mut VipsProgress,
3491 data: *mut core::ffi::c_void,
3492 ),
3493 >,
3494 pub eval: ::core::option::Option<
3495 unsafe extern "C" fn(
3496 image: *mut VipsImage,
3497 progress: *mut VipsProgress,
3498 data: *mut core::ffi::c_void,
3499 ),
3500 >,
3501 pub posteval: ::core::option::Option<
3502 unsafe extern "C" fn(
3503 image: *mut VipsImage,
3504 progress: *mut VipsProgress,
3505 data: *mut core::ffi::c_void,
3506 ),
3507 >,
3508 pub written: ::core::option::Option<
3509 unsafe extern "C" fn(
3510 image: *mut VipsImage,
3511 result: *mut core::ffi::c_int,
3512 data: *mut core::ffi::c_void,
3513 ),
3514 >,
3515 pub invalidate: ::core::option::Option<
3516 unsafe extern "C" fn(image: *mut VipsImage, data: *mut core::ffi::c_void),
3517 >,
3518 pub minimise: ::core::option::Option<
3519 unsafe extern "C" fn(image: *mut VipsImage, data: *mut core::ffi::c_void),
3520 >,
3521}
3522pub type VipsImageClass = _VipsImageClass;
3523unsafe extern "C" {
3524 pub fn vips_image_get_type() -> GType;
3525}
3526unsafe extern "C" {
3527 pub fn vips_progress_set(progress: gboolean);
3528}
3529unsafe extern "C" {
3530 pub fn vips_image_invalidate_all(image: *mut VipsImage);
3531}
3532unsafe extern "C" {
3533 pub fn vips_image_minimise_all(image: *mut VipsImage);
3534}
3535unsafe extern "C" {
3536 pub fn vips_image_is_sequential(image: *mut VipsImage) -> gboolean;
3537}
3538unsafe extern "C" {
3539 pub fn vips_image_preeval(image: *mut VipsImage);
3540}
3541unsafe extern "C" {
3542 pub fn vips_image_eval(image: *mut VipsImage, processed: guint64);
3543}
3544unsafe extern "C" {
3545 pub fn vips_image_posteval(image: *mut VipsImage);
3546}
3547unsafe extern "C" {
3548 pub fn vips_image_set_progress(image: *mut VipsImage, progress: gboolean);
3549}
3550unsafe extern "C" {
3551 pub fn vips_image_iskilled(image: *mut VipsImage) -> gboolean;
3552}
3553unsafe extern "C" {
3554 pub fn vips_image_set_kill(image: *mut VipsImage, kill: gboolean);
3555}
3556unsafe extern "C" {
3557 pub fn vips_filename_get_filename(
3558 vips_filename: *const core::ffi::c_char,
3559 ) -> *mut core::ffi::c_char;
3560}
3561unsafe extern "C" {
3562 pub fn vips_filename_get_options(
3563 vips_filename: *const core::ffi::c_char,
3564 ) -> *mut core::ffi::c_char;
3565}
3566unsafe extern "C" {
3567 pub fn vips_image_new() -> *mut VipsImage;
3568}
3569unsafe extern "C" {
3570 pub fn vips_image_new_memory() -> *mut VipsImage;
3571}
3572unsafe extern "C" {
3573 pub fn vips_image_memory() -> *mut VipsImage;
3574}
3575unsafe extern "C" {
3576 pub fn vips_image_new_from_file(name: *const core::ffi::c_char, ...) -> *mut VipsImage;
3577}
3578unsafe extern "C" {
3579 pub fn vips_image_new_from_file_RW(filename: *const core::ffi::c_char) -> *mut VipsImage;
3580}
3581unsafe extern "C" {
3582 pub fn vips_image_new_from_file_raw(
3583 filename: *const core::ffi::c_char,
3584 xsize: core::ffi::c_int,
3585 ysize: core::ffi::c_int,
3586 bands: core::ffi::c_int,
3587 offset: guint64,
3588 ) -> *mut VipsImage;
3589}
3590unsafe extern "C" {
3591 pub fn vips_image_new_from_memory(
3592 data: *const core::ffi::c_void,
3593 size: usize,
3594 width: core::ffi::c_int,
3595 height: core::ffi::c_int,
3596 bands: core::ffi::c_int,
3597 format: VipsBandFormat,
3598 ) -> *mut VipsImage;
3599}
3600unsafe extern "C" {
3601 pub fn vips_image_new_from_memory_copy(
3602 data: *const core::ffi::c_void,
3603 size: usize,
3604 width: core::ffi::c_int,
3605 height: core::ffi::c_int,
3606 bands: core::ffi::c_int,
3607 format: VipsBandFormat,
3608 ) -> *mut VipsImage;
3609}
3610unsafe extern "C" {
3611 pub fn vips_image_new_from_buffer(
3612 buf: *const core::ffi::c_void,
3613 len: usize,
3614 option_string: *const core::ffi::c_char,
3615 ...
3616 ) -> *mut VipsImage;
3617}
3618unsafe extern "C" {
3619 pub fn vips_image_new_from_source(
3620 source: *mut VipsSource,
3621 option_string: *const core::ffi::c_char,
3622 ...
3623 ) -> *mut VipsImage;
3624}
3625unsafe extern "C" {
3626 pub fn vips_image_new_matrix(
3627 width: core::ffi::c_int,
3628 height: core::ffi::c_int,
3629 ) -> *mut VipsImage;
3630}
3631unsafe extern "C" {
3632 pub fn vips_image_new_matrixv(
3633 width: core::ffi::c_int,
3634 height: core::ffi::c_int,
3635 ...
3636 ) -> *mut VipsImage;
3637}
3638unsafe extern "C" {
3639 pub fn vips_image_new_matrix_from_array(
3640 width: core::ffi::c_int,
3641 height: core::ffi::c_int,
3642 array: *const f64,
3643 size: core::ffi::c_int,
3644 ) -> *mut VipsImage;
3645}
3646unsafe extern "C" {
3647 pub fn vips_image_matrix_from_array(
3648 width: core::ffi::c_int,
3649 height: core::ffi::c_int,
3650 array: *const f64,
3651 size: core::ffi::c_int,
3652 ) -> *mut VipsImage;
3653}
3654unsafe extern "C" {
3655 pub fn vips_image_new_from_image(
3656 image: *mut VipsImage,
3657 c: *const f64,
3658 n: core::ffi::c_int,
3659 ) -> *mut VipsImage;
3660}
3661unsafe extern "C" {
3662 pub fn vips_image_new_from_image1(image: *mut VipsImage, c: f64) -> *mut VipsImage;
3663}
3664unsafe extern "C" {
3665 pub fn vips_image_set_delete_on_close(image: *mut VipsImage, delete_on_close: gboolean);
3666}
3667unsafe extern "C" {
3668 pub fn vips_get_disc_threshold() -> guint64;
3669}
3670unsafe extern "C" {
3671 pub fn vips_image_new_temp_file(format: *const core::ffi::c_char) -> *mut VipsImage;
3672}
3673unsafe extern "C" {
3674 pub fn vips_image_write(image: *mut VipsImage, out: *mut VipsImage) -> core::ffi::c_int;
3675}
3676unsafe extern "C" {
3677 pub fn vips_image_write_to_file(
3678 image: *mut VipsImage,
3679 name: *const core::ffi::c_char,
3680 ...
3681 ) -> core::ffi::c_int;
3682}
3683unsafe extern "C" {
3684 pub fn vips_image_write_to_buffer(
3685 in_: *mut VipsImage,
3686 suffix: *const core::ffi::c_char,
3687 buf: *mut *mut core::ffi::c_void,
3688 size: *mut usize,
3689 ...
3690 ) -> core::ffi::c_int;
3691}
3692unsafe extern "C" {
3693 pub fn vips_image_write_to_target(
3694 in_: *mut VipsImage,
3695 suffix: *const core::ffi::c_char,
3696 target: *mut VipsTarget,
3697 ...
3698 ) -> core::ffi::c_int;
3699}
3700unsafe extern "C" {
3701 pub fn vips_image_write_to_memory(
3702 in_: *mut VipsImage,
3703 size: *mut usize,
3704 ) -> *mut core::ffi::c_void;
3705}
3706unsafe extern "C" {
3707 pub fn vips_image_decode_predict(
3708 in_: *mut VipsImage,
3709 bands: *mut core::ffi::c_int,
3710 format: *mut VipsBandFormat,
3711 ) -> core::ffi::c_int;
3712}
3713unsafe extern "C" {
3714 pub fn vips_image_decode(in_: *mut VipsImage, out: *mut *mut VipsImage) -> core::ffi::c_int;
3715}
3716unsafe extern "C" {
3717 pub fn vips_image_encode(
3718 in_: *mut VipsImage,
3719 out: *mut *mut VipsImage,
3720 coding: VipsCoding,
3721 ) -> core::ffi::c_int;
3722}
3723unsafe extern "C" {
3724 pub fn vips_image_isMSBfirst(image: *mut VipsImage) -> gboolean;
3725}
3726unsafe extern "C" {
3727 pub fn vips_image_isfile(image: *mut VipsImage) -> gboolean;
3728}
3729unsafe extern "C" {
3730 pub fn vips_image_ispartial(image: *mut VipsImage) -> gboolean;
3731}
3732unsafe extern "C" {
3733 pub fn vips_image_hasalpha(image: *mut VipsImage) -> gboolean;
3734}
3735unsafe extern "C" {
3736 pub fn vips_image_copy_memory(image: *mut VipsImage) -> *mut VipsImage;
3737}
3738unsafe extern "C" {
3739 pub fn vips_image_wio_input(image: *mut VipsImage) -> core::ffi::c_int;
3740}
3741unsafe extern "C" {
3742 pub fn vips_image_pio_input(image: *mut VipsImage) -> core::ffi::c_int;
3743}
3744unsafe extern "C" {
3745 pub fn vips_image_pio_output(image: *mut VipsImage) -> core::ffi::c_int;
3746}
3747unsafe extern "C" {
3748 pub fn vips_image_inplace(image: *mut VipsImage) -> core::ffi::c_int;
3749}
3750unsafe extern "C" {
3751 pub fn vips_image_write_prepare(image: *mut VipsImage) -> core::ffi::c_int;
3752}
3753unsafe extern "C" {
3754 pub fn vips_image_write_line(
3755 image: *mut VipsImage,
3756 ypos: core::ffi::c_int,
3757 linebuffer: *mut VipsPel,
3758 ) -> core::ffi::c_int;
3759}
3760unsafe extern "C" {
3761 pub fn vips_band_format_isint(format: VipsBandFormat) -> gboolean;
3762}
3763unsafe extern "C" {
3764 pub fn vips_band_format_isuint(format: VipsBandFormat) -> gboolean;
3765}
3766unsafe extern "C" {
3767 pub fn vips_band_format_is8bit(format: VipsBandFormat) -> gboolean;
3768}
3769unsafe extern "C" {
3770 pub fn vips_band_format_isfloat(format: VipsBandFormat) -> gboolean;
3771}
3772unsafe extern "C" {
3773 pub fn vips_band_format_iscomplex(format: VipsBandFormat) -> gboolean;
3774}
3775unsafe extern "C" {
3776 pub fn vips_system(cmd_format: *const core::ffi::c_char, ...) -> core::ffi::c_int;
3777}
3778unsafe extern "C" {
3779 pub fn vips_array_image_new(
3780 array: *mut *mut VipsImage,
3781 n: core::ffi::c_int,
3782 ) -> *mut VipsArrayImage;
3783}
3784unsafe extern "C" {
3785 pub fn vips_array_image_newv(n: core::ffi::c_int, ...) -> *mut VipsArrayImage;
3786}
3787unsafe extern "C" {
3788 pub fn vips_array_image_new_from_string(
3789 string: *const core::ffi::c_char,
3790 flags: VipsAccess,
3791 ) -> *mut VipsArrayImage;
3792}
3793unsafe extern "C" {
3794 pub fn vips_array_image_empty() -> *mut VipsArrayImage;
3795}
3796unsafe extern "C" {
3797 pub fn vips_array_image_append(
3798 array: *mut VipsArrayImage,
3799 image: *mut VipsImage,
3800 ) -> *mut VipsArrayImage;
3801}
3802unsafe extern "C" {
3803 pub fn vips_array_image_get(
3804 array: *mut VipsArrayImage,
3805 n: *mut core::ffi::c_int,
3806 ) -> *mut *mut VipsImage;
3807}
3808unsafe extern "C" {
3809 pub fn vips_value_get_array_image(
3810 value: *const GValue,
3811 n: *mut core::ffi::c_int,
3812 ) -> *mut *mut VipsImage;
3813}
3814unsafe extern "C" {
3815 pub fn vips_value_set_array_image(value: *mut GValue, n: core::ffi::c_int);
3816}
3817unsafe extern "C" {
3818 pub fn vips_reorder_prepare_many(
3819 image: *mut VipsImage,
3820 regions: *mut *mut VipsRegion,
3821 r: *mut VipsRect,
3822 ) -> core::ffi::c_int;
3823}
3824unsafe extern "C" {
3825 pub fn vips_reorder_margin_hint(image: *mut VipsImage, margin: core::ffi::c_int);
3826}
3827unsafe extern "C" {
3828 pub fn vips_image_free_buffer(image: *mut VipsImage, buffer: *mut core::ffi::c_void);
3829}
3830pub type VipsImage_autoptr = *mut VipsImage;
3831pub type VipsImage_listautoptr = *mut GList;
3832pub type VipsImage_slistautoptr = *mut GSList;
3833pub type VipsImage_queueautoptr = *mut GQueue;
3834pub type VipsObject_autoptr = *mut VipsObject;
3835pub type VipsObject_listautoptr = *mut GList;
3836pub type VipsObject_slistautoptr = *mut GSList;
3837pub type VipsObject_queueautoptr = *mut GQueue;
3838pub type VipsRegion_autoptr = *mut VipsRegion;
3839pub type VipsRegion_listautoptr = *mut GList;
3840pub type VipsRegion_slistautoptr = *mut GSList;
3841pub type VipsRegion_queueautoptr = *mut GQueue;
3842pub type VipsConnection_autoptr = *mut VipsConnection;
3843pub type VipsConnection_listautoptr = *mut GList;
3844pub type VipsConnection_slistautoptr = *mut GSList;
3845pub type VipsConnection_queueautoptr = *mut GQueue;
3846pub type VipsSource_autoptr = *mut VipsSource;
3847pub type VipsSource_listautoptr = *mut GList;
3848pub type VipsSource_slistautoptr = *mut GSList;
3849pub type VipsSource_queueautoptr = *mut GQueue;
3850pub type VipsSourceCustom_autoptr = *mut VipsSourceCustom;
3851pub type VipsSourceCustom_listautoptr = *mut GList;
3852pub type VipsSourceCustom_slistautoptr = *mut GSList;
3853pub type VipsSourceCustom_queueautoptr = *mut GQueue;
3854pub type VipsGInputStream_autoptr = *mut VipsGInputStream;
3855pub type VipsGInputStream_listautoptr = *mut GList;
3856pub type VipsGInputStream_slistautoptr = *mut GSList;
3857pub type VipsGInputStream_queueautoptr = *mut GQueue;
3858pub type VipsSourceGInputStream_autoptr = *mut VipsSourceGInputStream;
3859pub type VipsSourceGInputStream_listautoptr = *mut GList;
3860pub type VipsSourceGInputStream_slistautoptr = *mut GSList;
3861pub type VipsSourceGInputStream_queueautoptr = *mut GQueue;
3862pub type VipsTarget_autoptr = *mut VipsTarget;
3863pub type VipsTarget_listautoptr = *mut GList;
3864pub type VipsTarget_slistautoptr = *mut GSList;
3865pub type VipsTarget_queueautoptr = *mut GQueue;
3866pub type VipsTargetCustom_autoptr = *mut VipsTargetCustom;
3867pub type VipsTargetCustom_listautoptr = *mut GList;
3868pub type VipsTargetCustom_slistautoptr = *mut GSList;
3869pub type VipsTargetCustom_queueautoptr = *mut GQueue;
3870pub type VipsSbuf_autoptr = *mut VipsSbuf;
3871pub type VipsSbuf_listautoptr = *mut GList;
3872pub type VipsSbuf_slistautoptr = *mut GSList;
3873pub type VipsSbuf_queueautoptr = *mut GQueue;
3874pub type VipsInterpolate_autoptr = *mut VipsInterpolate;
3875pub type VipsInterpolate_listautoptr = *mut GList;
3876pub type VipsInterpolate_slistautoptr = *mut GSList;
3877pub type VipsInterpolate_queueautoptr = *mut GQueue;
3878pub type VipsOperation_autoptr = *mut VipsOperation;
3879pub type VipsOperation_listautoptr = *mut GList;
3880pub type VipsOperation_slistautoptr = *mut GSList;
3881pub type VipsOperation_queueautoptr = *mut GQueue;
3882pub type VipsArrayDouble_autoptr = *mut VipsArrayDouble;
3883pub type VipsArrayDouble_listautoptr = *mut GList;
3884pub type VipsArrayDouble_slistautoptr = *mut GSList;
3885pub type VipsArrayDouble_queueautoptr = *mut GQueue;
3886pub type VipsArrayImage_autoptr = *mut VipsArrayImage;
3887pub type VipsArrayImage_listautoptr = *mut GList;
3888pub type VipsArrayImage_slistautoptr = *mut GSList;
3889pub type VipsArrayImage_queueautoptr = *mut GQueue;
3890unsafe extern "C" {
3891 pub fn vips_malloc(object: *mut VipsObject, size: usize) -> *mut core::ffi::c_void;
3892}
3893unsafe extern "C" {
3894 pub fn vips_strdup(
3895 object: *mut VipsObject,
3896 str_: *const core::ffi::c_char,
3897 ) -> *mut core::ffi::c_char;
3898}
3899unsafe extern "C" {
3900 pub fn vips_tracked_free(s: *mut core::ffi::c_void);
3901}
3902unsafe extern "C" {
3903 pub fn vips_tracked_aligned_free(s: *mut core::ffi::c_void);
3904}
3905unsafe extern "C" {
3906 pub fn vips_tracked_malloc(size: usize) -> *mut core::ffi::c_void;
3907}
3908unsafe extern "C" {
3909 pub fn vips_tracked_aligned_alloc(size: usize, align: usize) -> *mut core::ffi::c_void;
3910}
3911unsafe extern "C" {
3912 pub fn vips_tracked_get_mem() -> usize;
3913}
3914unsafe extern "C" {
3915 pub fn vips_tracked_get_mem_highwater() -> usize;
3916}
3917unsafe extern "C" {
3918 pub fn vips_tracked_get_allocs() -> core::ffi::c_int;
3919}
3920unsafe extern "C" {
3921 pub fn vips_tracked_open(
3922 pathname: *const core::ffi::c_char,
3923 flags: core::ffi::c_int,
3924 mode: core::ffi::c_int,
3925 ) -> core::ffi::c_int;
3926}
3927unsafe extern "C" {
3928 pub fn vips_tracked_close(fd: core::ffi::c_int) -> core::ffi::c_int;
3929}
3930unsafe extern "C" {
3931 pub fn vips_tracked_get_files() -> core::ffi::c_int;
3932}
3933unsafe extern "C" {
3934 pub fn vips_error_buffer() -> *const core::ffi::c_char;
3935}
3936unsafe extern "C" {
3937 pub fn vips_error_buffer_copy() -> *mut core::ffi::c_char;
3938}
3939unsafe extern "C" {
3940 pub fn vips_error_clear();
3941}
3942unsafe extern "C" {
3943 pub fn vips_error_freeze();
3944}
3945unsafe extern "C" {
3946 pub fn vips_error_thaw();
3947}
3948unsafe extern "C" {
3949 pub fn vips_error(domain: *const core::ffi::c_char, fmt: *const core::ffi::c_char, ...);
3950}
3951unsafe extern "C" {
3952 pub fn vips_verror(
3953 domain: *const core::ffi::c_char,
3954 fmt: *const core::ffi::c_char,
3955 ap: va_list,
3956 );
3957}
3958unsafe extern "C" {
3959 pub fn vips_error_system(
3960 err: core::ffi::c_int,
3961 domain: *const core::ffi::c_char,
3962 fmt: *const core::ffi::c_char,
3963 ...
3964 );
3965}
3966unsafe extern "C" {
3967 pub fn vips_verror_system(
3968 err: core::ffi::c_int,
3969 domain: *const core::ffi::c_char,
3970 fmt: *const core::ffi::c_char,
3971 ap: va_list,
3972 );
3973}
3974unsafe extern "C" {
3975 pub fn vips_error_g(error: *mut *mut GError);
3976}
3977unsafe extern "C" {
3978 pub fn vips_g_error(error: *mut *mut GError);
3979}
3980unsafe extern "C" {
3981 pub fn vips_error_exit(fmt: *const core::ffi::c_char, ...) -> !;
3982}
3983unsafe extern "C" {
3984 pub fn vips_check_uncoded(
3985 domain: *const core::ffi::c_char,
3986 im: *mut VipsImage,
3987 ) -> core::ffi::c_int;
3988}
3989unsafe extern "C" {
3990 pub fn vips_check_coding(
3991 domain: *const core::ffi::c_char,
3992 im: *mut VipsImage,
3993 coding: VipsCoding,
3994 ) -> core::ffi::c_int;
3995}
3996unsafe extern "C" {
3997 pub fn vips_check_coding_known(
3998 domain: *const core::ffi::c_char,
3999 im: *mut VipsImage,
4000 ) -> core::ffi::c_int;
4001}
4002unsafe extern "C" {
4003 pub fn vips_check_coding_noneorlabq(
4004 domain: *const core::ffi::c_char,
4005 im: *mut VipsImage,
4006 ) -> core::ffi::c_int;
4007}
4008unsafe extern "C" {
4009 pub fn vips_check_coding_same(
4010 domain: *const core::ffi::c_char,
4011 im1: *mut VipsImage,
4012 im2: *mut VipsImage,
4013 ) -> core::ffi::c_int;
4014}
4015unsafe extern "C" {
4016 pub fn vips_check_mono(
4017 domain: *const core::ffi::c_char,
4018 im: *mut VipsImage,
4019 ) -> core::ffi::c_int;
4020}
4021unsafe extern "C" {
4022 pub fn vips_check_bands(
4023 domain: *const core::ffi::c_char,
4024 im: *mut VipsImage,
4025 bands: core::ffi::c_int,
4026 ) -> core::ffi::c_int;
4027}
4028unsafe extern "C" {
4029 pub fn vips_check_bands_1or3(
4030 domain: *const core::ffi::c_char,
4031 im: *mut VipsImage,
4032 ) -> core::ffi::c_int;
4033}
4034unsafe extern "C" {
4035 pub fn vips_check_bands_atleast(
4036 domain: *const core::ffi::c_char,
4037 im: *mut VipsImage,
4038 bands: core::ffi::c_int,
4039 ) -> core::ffi::c_int;
4040}
4041unsafe extern "C" {
4042 pub fn vips_check_bands_1orn(
4043 domain: *const core::ffi::c_char,
4044 im1: *mut VipsImage,
4045 im2: *mut VipsImage,
4046 ) -> core::ffi::c_int;
4047}
4048unsafe extern "C" {
4049 pub fn vips_check_bands_1orn_unary(
4050 domain: *const core::ffi::c_char,
4051 im: *mut VipsImage,
4052 n: core::ffi::c_int,
4053 ) -> core::ffi::c_int;
4054}
4055unsafe extern "C" {
4056 pub fn vips_check_bands_same(
4057 domain: *const core::ffi::c_char,
4058 im1: *mut VipsImage,
4059 im2: *mut VipsImage,
4060 ) -> core::ffi::c_int;
4061}
4062unsafe extern "C" {
4063 pub fn vips_check_bandno(
4064 domain: *const core::ffi::c_char,
4065 im: *mut VipsImage,
4066 bandno: core::ffi::c_int,
4067 ) -> core::ffi::c_int;
4068}
4069unsafe extern "C" {
4070 pub fn vips_check_int(domain: *const core::ffi::c_char, im: *mut VipsImage)
4071 -> core::ffi::c_int;
4072}
4073unsafe extern "C" {
4074 pub fn vips_check_uint(
4075 domain: *const core::ffi::c_char,
4076 im: *mut VipsImage,
4077 ) -> core::ffi::c_int;
4078}
4079unsafe extern "C" {
4080 pub fn vips_check_uintorf(
4081 domain: *const core::ffi::c_char,
4082 im: *mut VipsImage,
4083 ) -> core::ffi::c_int;
4084}
4085unsafe extern "C" {
4086 pub fn vips_check_noncomplex(
4087 domain: *const core::ffi::c_char,
4088 im: *mut VipsImage,
4089 ) -> core::ffi::c_int;
4090}
4091unsafe extern "C" {
4092 pub fn vips_check_complex(
4093 domain: *const core::ffi::c_char,
4094 im: *mut VipsImage,
4095 ) -> core::ffi::c_int;
4096}
4097unsafe extern "C" {
4098 pub fn vips_check_twocomponents(
4099 domain: *const core::ffi::c_char,
4100 im: *mut VipsImage,
4101 ) -> core::ffi::c_int;
4102}
4103unsafe extern "C" {
4104 pub fn vips_check_format(
4105 domain: *const core::ffi::c_char,
4106 im: *mut VipsImage,
4107 fmt: VipsBandFormat,
4108 ) -> core::ffi::c_int;
4109}
4110unsafe extern "C" {
4111 pub fn vips_check_u8or16(
4112 domain: *const core::ffi::c_char,
4113 im: *mut VipsImage,
4114 ) -> core::ffi::c_int;
4115}
4116unsafe extern "C" {
4117 pub fn vips_check_8or16(
4118 domain: *const core::ffi::c_char,
4119 im: *mut VipsImage,
4120 ) -> core::ffi::c_int;
4121}
4122unsafe extern "C" {
4123 pub fn vips_check_u8or16orf(
4124 domain: *const core::ffi::c_char,
4125 im: *mut VipsImage,
4126 ) -> core::ffi::c_int;
4127}
4128unsafe extern "C" {
4129 pub fn vips_check_format_same(
4130 domain: *const core::ffi::c_char,
4131 im1: *mut VipsImage,
4132 im2: *mut VipsImage,
4133 ) -> core::ffi::c_int;
4134}
4135unsafe extern "C" {
4136 pub fn vips_check_size_same(
4137 domain: *const core::ffi::c_char,
4138 im1: *mut VipsImage,
4139 im2: *mut VipsImage,
4140 ) -> core::ffi::c_int;
4141}
4142unsafe extern "C" {
4143 pub fn vips_check_oddsquare(
4144 domain: *const core::ffi::c_char,
4145 im: *mut VipsImage,
4146 ) -> core::ffi::c_int;
4147}
4148unsafe extern "C" {
4149 pub fn vips_check_vector_length(
4150 domain: *const core::ffi::c_char,
4151 n: core::ffi::c_int,
4152 len: core::ffi::c_int,
4153 ) -> core::ffi::c_int;
4154}
4155unsafe extern "C" {
4156 pub fn vips_check_vector(
4157 domain: *const core::ffi::c_char,
4158 n: core::ffi::c_int,
4159 im: *mut VipsImage,
4160 ) -> core::ffi::c_int;
4161}
4162unsafe extern "C" {
4163 pub fn vips_check_hist(
4164 domain: *const core::ffi::c_char,
4165 im: *mut VipsImage,
4166 ) -> core::ffi::c_int;
4167}
4168unsafe extern "C" {
4169 pub fn vips_check_matrix(
4170 domain: *const core::ffi::c_char,
4171 im: *mut VipsImage,
4172 out: *mut *mut VipsImage,
4173 ) -> core::ffi::c_int;
4174}
4175unsafe extern "C" {
4176 pub fn vips_check_separable(
4177 domain: *const core::ffi::c_char,
4178 im: *mut VipsImage,
4179 ) -> core::ffi::c_int;
4180}
4181unsafe extern "C" {
4182 pub fn vips_check_precision_intfloat(
4183 domain: *const core::ffi::c_char,
4184 precision: VipsPrecision,
4185 ) -> core::ffi::c_int;
4186}
4187#[repr(u32)]
4188#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4189pub enum VipsFormatFlags {
4190 VIPS_FORMAT_NONE = 0,
4191 VIPS_FORMAT_PARTIAL = 1,
4192 VIPS_FORMAT_BIGENDIAN = 2,
4193}
4194#[repr(C)]
4195#[derive(Debug, Copy, Clone)]
4196pub struct _VipsFormat {
4197 pub parent_object: VipsObject,
4198}
4199pub type VipsFormat = _VipsFormat;
4200#[repr(C)]
4201#[derive(Debug, Copy, Clone)]
4202pub struct _VipsFormatClass {
4203 pub parent_class: VipsObjectClass,
4204 pub is_a: ::core::option::Option<
4205 unsafe extern "C" fn(filename: *const core::ffi::c_char) -> gboolean,
4206 >,
4207 pub header: ::core::option::Option<
4208 unsafe extern "C" fn(
4209 filename: *const core::ffi::c_char,
4210 image: *mut VipsImage,
4211 ) -> core::ffi::c_int,
4212 >,
4213 pub load: ::core::option::Option<
4214 unsafe extern "C" fn(
4215 filename: *const core::ffi::c_char,
4216 image: *mut VipsImage,
4217 ) -> core::ffi::c_int,
4218 >,
4219 pub save: ::core::option::Option<
4220 unsafe extern "C" fn(
4221 image: *mut VipsImage,
4222 filename: *const core::ffi::c_char,
4223 ) -> core::ffi::c_int,
4224 >,
4225 pub get_flags: ::core::option::Option<
4226 unsafe extern "C" fn(filename: *const core::ffi::c_char) -> VipsFormatFlags,
4227 >,
4228 pub priority: core::ffi::c_int,
4229 pub suffs: *mut *const core::ffi::c_char,
4230}
4231pub type VipsFormatClass = _VipsFormatClass;
4232unsafe extern "C" {
4233 pub fn vips_format_get_type() -> GType;
4234}
4235unsafe extern "C" {
4236 pub fn vips_format_map(
4237 fn_: VipsSListMap2Fn,
4238 a: *mut core::ffi::c_void,
4239 b: *mut core::ffi::c_void,
4240 ) -> *mut core::ffi::c_void;
4241}
4242unsafe extern "C" {
4243 pub fn vips_format_for_file(filename: *const core::ffi::c_char) -> *mut VipsFormatClass;
4244}
4245unsafe extern "C" {
4246 pub fn vips_format_for_name(filename: *const core::ffi::c_char) -> *mut VipsFormatClass;
4247}
4248unsafe extern "C" {
4249 pub fn vips_format_get_flags(
4250 format: *mut VipsFormatClass,
4251 filename: *const core::ffi::c_char,
4252 ) -> VipsFormatFlags;
4253}
4254unsafe extern "C" {
4255 pub fn vips_format_read(
4256 filename: *const core::ffi::c_char,
4257 out: *mut VipsImage,
4258 ) -> core::ffi::c_int;
4259}
4260unsafe extern "C" {
4261 pub fn vips_format_write(
4262 in_: *mut VipsImage,
4263 filename: *const core::ffi::c_char,
4264 ) -> core::ffi::c_int;
4265}
4266pub type VipsRegionWrite = ::core::option::Option<
4267 unsafe extern "C" fn(
4268 region: *mut VipsRegion,
4269 area: *mut VipsRect,
4270 a: *mut core::ffi::c_void,
4271 ) -> core::ffi::c_int,
4272>;
4273unsafe extern "C" {
4274 pub fn vips_sink_disc(
4275 im: *mut VipsImage,
4276 write_fn: VipsRegionWrite,
4277 a: *mut core::ffi::c_void,
4278 ) -> core::ffi::c_int;
4279}
4280unsafe extern "C" {
4281 pub fn vips_sink(
4282 im: *mut VipsImage,
4283 start_fn: VipsStartFn,
4284 generate_fn: VipsGenerateFn,
4285 stop_fn: VipsStopFn,
4286 a: *mut core::ffi::c_void,
4287 b: *mut core::ffi::c_void,
4288 ) -> core::ffi::c_int;
4289}
4290unsafe extern "C" {
4291 pub fn vips_sink_tile(
4292 im: *mut VipsImage,
4293 tile_width: core::ffi::c_int,
4294 tile_height: core::ffi::c_int,
4295 start_fn: VipsStartFn,
4296 generate_fn: VipsGenerateFn,
4297 stop_fn: VipsStopFn,
4298 a: *mut core::ffi::c_void,
4299 b: *mut core::ffi::c_void,
4300 ) -> core::ffi::c_int;
4301}
4302pub type VipsSinkNotify = ::core::option::Option<
4303 unsafe extern "C" fn(im: *mut VipsImage, rect: *mut VipsRect, a: *mut core::ffi::c_void),
4304>;
4305unsafe extern "C" {
4306 pub fn vips_sink_screen(
4307 in_: *mut VipsImage,
4308 out: *mut VipsImage,
4309 mask: *mut VipsImage,
4310 tile_width: core::ffi::c_int,
4311 tile_height: core::ffi::c_int,
4312 max_tiles: core::ffi::c_int,
4313 priority: core::ffi::c_int,
4314 notify_fn: VipsSinkNotify,
4315 a: *mut core::ffi::c_void,
4316 ) -> core::ffi::c_int;
4317}
4318unsafe extern "C" {
4319 pub fn vips_sink_memory(im: *mut VipsImage) -> core::ffi::c_int;
4320}
4321unsafe extern "C" {
4322 pub fn vips_start_one(
4323 out: *mut VipsImage,
4324 a: *mut core::ffi::c_void,
4325 b: *mut core::ffi::c_void,
4326 ) -> *mut core::ffi::c_void;
4327}
4328unsafe extern "C" {
4329 pub fn vips_stop_one(
4330 seq: *mut core::ffi::c_void,
4331 a: *mut core::ffi::c_void,
4332 b: *mut core::ffi::c_void,
4333 ) -> core::ffi::c_int;
4334}
4335unsafe extern "C" {
4336 pub fn vips_start_many(
4337 out: *mut VipsImage,
4338 a: *mut core::ffi::c_void,
4339 b: *mut core::ffi::c_void,
4340 ) -> *mut core::ffi::c_void;
4341}
4342unsafe extern "C" {
4343 pub fn vips_stop_many(
4344 seq: *mut core::ffi::c_void,
4345 a: *mut core::ffi::c_void,
4346 b: *mut core::ffi::c_void,
4347 ) -> core::ffi::c_int;
4348}
4349unsafe extern "C" {
4350 pub fn vips_allocate_input_array(out: *mut VipsImage, ...) -> *mut *mut VipsImage;
4351}
4352unsafe extern "C" {
4353 pub fn vips_image_generate(
4354 image: *mut VipsImage,
4355 start_fn: VipsStartFn,
4356 generate_fn: VipsGenerateFn,
4357 stop_fn: VipsStopFn,
4358 a: *mut core::ffi::c_void,
4359 b: *mut core::ffi::c_void,
4360 ) -> core::ffi::c_int;
4361}
4362unsafe extern "C" {
4363 pub fn vips_image_pipeline_array(
4364 image: *mut VipsImage,
4365 hint: VipsDemandStyle,
4366 in_: *mut *mut VipsImage,
4367 ) -> core::ffi::c_int;
4368}
4369unsafe extern "C" {
4370 pub fn vips_image_pipelinev(
4371 image: *mut VipsImage,
4372 hint: VipsDemandStyle,
4373 ...
4374 ) -> core::ffi::c_int;
4375}
4376#[repr(C)]
4377#[derive(Debug, Copy, Clone)]
4378pub struct _VipsInterpolate {
4379 pub parent_object: VipsObject,
4380}
4381pub type VipsInterpolateMethod = ::core::option::Option<
4382 unsafe extern "C" fn(
4383 interpolate: *mut VipsInterpolate,
4384 out: *mut core::ffi::c_void,
4385 in_: *mut VipsRegion,
4386 x: f64,
4387 y: f64,
4388 ),
4389>;
4390#[repr(C)]
4391#[derive(Debug, Copy, Clone)]
4392pub struct _VipsInterpolateClass {
4393 pub parent_class: VipsObjectClass,
4394 pub interpolate: VipsInterpolateMethod,
4395 pub get_window_size: ::core::option::Option<
4396 unsafe extern "C" fn(interpolate: *mut VipsInterpolate) -> core::ffi::c_int,
4397 >,
4398 pub window_size: core::ffi::c_int,
4399 pub get_window_offset: ::core::option::Option<
4400 unsafe extern "C" fn(interpolate: *mut VipsInterpolate) -> core::ffi::c_int,
4401 >,
4402 pub window_offset: core::ffi::c_int,
4403}
4404pub type VipsInterpolateClass = _VipsInterpolateClass;
4405unsafe extern "C" {
4406 pub fn vips_interpolate_get_type() -> GType;
4407}
4408unsafe extern "C" {
4409 pub fn vips_interpolate(
4410 interpolate: *mut VipsInterpolate,
4411 out: *mut core::ffi::c_void,
4412 in_: *mut VipsRegion,
4413 x: f64,
4414 y: f64,
4415 );
4416}
4417unsafe extern "C" {
4418 pub fn vips_interpolate_get_method(interpolate: *mut VipsInterpolate) -> VipsInterpolateMethod;
4419}
4420unsafe extern "C" {
4421 pub fn vips_interpolate_get_window_size(interpolate: *mut VipsInterpolate) -> core::ffi::c_int;
4422}
4423unsafe extern "C" {
4424 pub fn vips_interpolate_get_window_offset(
4425 interpolate: *mut VipsInterpolate,
4426 ) -> core::ffi::c_int;
4427}
4428unsafe extern "C" {
4429 pub fn vips_interpolate_nearest_static() -> *mut VipsInterpolate;
4430}
4431unsafe extern "C" {
4432 pub fn vips_interpolate_bilinear_static() -> *mut VipsInterpolate;
4433}
4434unsafe extern "C" {
4435 pub fn vips_interpolate_new(nickname: *const core::ffi::c_char) -> *mut VipsInterpolate;
4436}
4437#[repr(C)]
4438#[derive(Copy, Clone)]
4439pub struct VipsSemaphore {
4440 pub name: *mut core::ffi::c_char,
4441 pub v: core::ffi::c_int,
4442 pub mutex: GMutex,
4443 pub cond: GCond,
4444}
4445unsafe extern "C" {
4446 pub fn vips_semaphore_up(s: *mut VipsSemaphore) -> core::ffi::c_int;
4447}
4448unsafe extern "C" {
4449 pub fn vips_semaphore_upn(s: *mut VipsSemaphore, n: core::ffi::c_int) -> core::ffi::c_int;
4450}
4451unsafe extern "C" {
4452 pub fn vips_semaphore_down(s: *mut VipsSemaphore) -> core::ffi::c_int;
4453}
4454unsafe extern "C" {
4455 pub fn vips_semaphore_downn(s: *mut VipsSemaphore, n: core::ffi::c_int) -> core::ffi::c_int;
4456}
4457unsafe extern "C" {
4458 pub fn vips_semaphore_down_timeout(s: *mut VipsSemaphore, timeout: gint64) -> core::ffi::c_int;
4459}
4460unsafe extern "C" {
4461 pub fn vips_semaphore_destroy(s: *mut VipsSemaphore);
4462}
4463unsafe extern "C" {
4464 pub fn vips_semaphore_init(
4465 s: *mut VipsSemaphore,
4466 v: core::ffi::c_int,
4467 name: *mut core::ffi::c_char,
4468 );
4469}
4470unsafe extern "C" {
4471 pub fn vips_g_thread_new(
4472 domain: *const core::ffi::c_char,
4473 func: GThreadFunc,
4474 data: gpointer,
4475 ) -> *mut GThread;
4476}
4477unsafe extern "C" {
4478 pub fn vips_thread_isvips() -> gboolean;
4479}
4480unsafe extern "C" {
4481 pub fn vips_thread_execute(
4482 domain: *const core::ffi::c_char,
4483 func: GFunc,
4484 data: gpointer,
4485 ) -> core::ffi::c_int;
4486}
4487#[repr(C)]
4488#[derive(Debug, Copy, Clone)]
4489pub struct _VipsThreadState {
4490 pub parent_object: VipsObject,
4491 pub im: *mut VipsImage,
4492 pub reg: *mut VipsRegion,
4493 pub pos: VipsRect,
4494 pub x: core::ffi::c_int,
4495 pub y: core::ffi::c_int,
4496 pub stop: gboolean,
4497 pub a: *mut core::ffi::c_void,
4498 pub stall: gboolean,
4499}
4500pub type VipsThreadState = _VipsThreadState;
4501#[repr(C)]
4502#[derive(Debug, Copy, Clone)]
4503pub struct _VipsThreadStateClass {
4504 pub parent_class: VipsObjectClass,
4505}
4506pub type VipsThreadStateClass = _VipsThreadStateClass;
4507unsafe extern "C" {
4508 pub fn vips_thread_state_set(
4509 object: *mut VipsObject,
4510 a: *mut core::ffi::c_void,
4511 b: *mut core::ffi::c_void,
4512 ) -> *mut core::ffi::c_void;
4513}
4514unsafe extern "C" {
4515 pub fn vips_thread_state_get_type() -> GType;
4516}
4517unsafe extern "C" {
4518 pub fn vips_thread_state_new(
4519 im: *mut VipsImage,
4520 a: *mut core::ffi::c_void,
4521 ) -> *mut VipsThreadState;
4522}
4523pub type VipsThreadStartFn = ::core::option::Option<
4524 unsafe extern "C" fn(im: *mut VipsImage, a: *mut core::ffi::c_void) -> *mut VipsThreadState,
4525>;
4526pub type VipsThreadpoolAllocateFn = ::core::option::Option<
4527 unsafe extern "C" fn(
4528 state: *mut VipsThreadState,
4529 a: *mut core::ffi::c_void,
4530 stop: *mut gboolean,
4531 ) -> core::ffi::c_int,
4532>;
4533pub type VipsThreadpoolWorkFn = ::core::option::Option<
4534 unsafe extern "C" fn(
4535 state: *mut VipsThreadState,
4536 a: *mut core::ffi::c_void,
4537 ) -> core::ffi::c_int,
4538>;
4539pub type VipsThreadpoolProgressFn =
4540 ::core::option::Option<unsafe extern "C" fn(a: *mut core::ffi::c_void) -> core::ffi::c_int>;
4541unsafe extern "C" {
4542 pub fn vips_threadpool_run(
4543 im: *mut VipsImage,
4544 start: VipsThreadStartFn,
4545 allocate: VipsThreadpoolAllocateFn,
4546 work: VipsThreadpoolWorkFn,
4547 progress: VipsThreadpoolProgressFn,
4548 a: *mut core::ffi::c_void,
4549 ) -> core::ffi::c_int;
4550}
4551unsafe extern "C" {
4552 pub fn vips_get_tile_size(
4553 im: *mut VipsImage,
4554 tile_width: *mut core::ffi::c_int,
4555 tile_height: *mut core::ffi::c_int,
4556 n_lines: *mut core::ffi::c_int,
4557 );
4558}
4559unsafe extern "C" {
4560 pub fn vips_format_sizeof(format: VipsBandFormat) -> guint64;
4561}
4562unsafe extern "C" {
4563 pub fn vips_format_sizeof_unsafe(format: VipsBandFormat) -> guint64;
4564}
4565unsafe extern "C" {
4566 pub fn vips_interpretation_max_alpha(interpretation: VipsInterpretation) -> f64;
4567}
4568unsafe extern "C" {
4569 pub fn vips_interpretation_bands(interpretation: VipsInterpretation) -> core::ffi::c_int;
4570}
4571unsafe extern "C" {
4572 pub fn vips_image_get_width(image: *const VipsImage) -> core::ffi::c_int;
4573}
4574unsafe extern "C" {
4575 pub fn vips_image_get_height(image: *const VipsImage) -> core::ffi::c_int;
4576}
4577unsafe extern "C" {
4578 pub fn vips_image_get_bands(image: *const VipsImage) -> core::ffi::c_int;
4579}
4580unsafe extern "C" {
4581 pub fn vips_image_get_format(image: *const VipsImage) -> VipsBandFormat;
4582}
4583unsafe extern "C" {
4584 pub fn vips_image_get_format_max(format: VipsBandFormat) -> f64;
4585}
4586unsafe extern "C" {
4587 pub fn vips_image_guess_format(image: *const VipsImage) -> VipsBandFormat;
4588}
4589unsafe extern "C" {
4590 pub fn vips_image_get_coding(image: *const VipsImage) -> VipsCoding;
4591}
4592unsafe extern "C" {
4593 pub fn vips_image_get_interpretation(image: *const VipsImage) -> VipsInterpretation;
4594}
4595unsafe extern "C" {
4596 pub fn vips_image_guess_interpretation(image: *const VipsImage) -> VipsInterpretation;
4597}
4598unsafe extern "C" {
4599 pub fn vips_image_get_xres(image: *const VipsImage) -> f64;
4600}
4601unsafe extern "C" {
4602 pub fn vips_image_get_yres(image: *const VipsImage) -> f64;
4603}
4604unsafe extern "C" {
4605 pub fn vips_image_get_xoffset(image: *const VipsImage) -> core::ffi::c_int;
4606}
4607unsafe extern "C" {
4608 pub fn vips_image_get_yoffset(image: *const VipsImage) -> core::ffi::c_int;
4609}
4610unsafe extern "C" {
4611 pub fn vips_image_get_filename(image: *const VipsImage) -> *const core::ffi::c_char;
4612}
4613unsafe extern "C" {
4614 pub fn vips_image_get_mode(image: *const VipsImage) -> *const core::ffi::c_char;
4615}
4616unsafe extern "C" {
4617 pub fn vips_image_get_scale(image: *const VipsImage) -> f64;
4618}
4619unsafe extern "C" {
4620 pub fn vips_image_get_offset(image: *const VipsImage) -> f64;
4621}
4622unsafe extern "C" {
4623 pub fn vips_image_get_page_height(image: *mut VipsImage) -> core::ffi::c_int;
4624}
4625unsafe extern "C" {
4626 pub fn vips_image_get_n_pages(image: *mut VipsImage) -> core::ffi::c_int;
4627}
4628unsafe extern "C" {
4629 pub fn vips_image_get_n_subifds(image: *mut VipsImage) -> core::ffi::c_int;
4630}
4631unsafe extern "C" {
4632 pub fn vips_image_get_orientation(image: *mut VipsImage) -> core::ffi::c_int;
4633}
4634unsafe extern "C" {
4635 pub fn vips_image_get_orientation_swap(image: *mut VipsImage) -> gboolean;
4636}
4637unsafe extern "C" {
4638 pub fn vips_image_get_concurrency(
4639 image: *mut VipsImage,
4640 default_concurrency: core::ffi::c_int,
4641 ) -> core::ffi::c_int;
4642}
4643unsafe extern "C" {
4644 pub fn vips_image_get_tile_width(image: *mut VipsImage) -> core::ffi::c_int;
4645}
4646unsafe extern "C" {
4647 pub fn vips_image_get_tile_height(image: *mut VipsImage) -> core::ffi::c_int;
4648}
4649unsafe extern "C" {
4650 pub fn vips_image_get_gainmap(image: *mut VipsImage) -> *mut VipsImage;
4651}
4652unsafe extern "C" {
4653 pub fn vips_image_get_data(image: *mut VipsImage) -> *const core::ffi::c_void;
4654}
4655unsafe extern "C" {
4656 pub fn vips_image_init_fields(
4657 image: *mut VipsImage,
4658 xsize: core::ffi::c_int,
4659 ysize: core::ffi::c_int,
4660 bands: core::ffi::c_int,
4661 format: VipsBandFormat,
4662 coding: VipsCoding,
4663 interpretation: VipsInterpretation,
4664 xres: f64,
4665 yres: f64,
4666 );
4667}
4668unsafe extern "C" {
4669 pub fn vips_image_set(
4670 image: *mut VipsImage,
4671 name: *const core::ffi::c_char,
4672 value: *mut GValue,
4673 );
4674}
4675unsafe extern "C" {
4676 pub fn vips_image_get(
4677 image: *const VipsImage,
4678 name: *const core::ffi::c_char,
4679 value_copy: *mut GValue,
4680 ) -> core::ffi::c_int;
4681}
4682unsafe extern "C" {
4683 pub fn vips_image_get_as_string(
4684 image: *const VipsImage,
4685 name: *const core::ffi::c_char,
4686 out: *mut *mut core::ffi::c_char,
4687 ) -> core::ffi::c_int;
4688}
4689unsafe extern "C" {
4690 pub fn vips_image_get_typeof(image: *const VipsImage, name: *const core::ffi::c_char) -> GType;
4691}
4692unsafe extern "C" {
4693 pub fn vips_image_remove(image: *mut VipsImage, name: *const core::ffi::c_char) -> gboolean;
4694}
4695pub type VipsImageMapFn = ::core::option::Option<
4696 unsafe extern "C" fn(
4697 image: *mut VipsImage,
4698 name: *const core::ffi::c_char,
4699 value: *mut GValue,
4700 a: *mut core::ffi::c_void,
4701 ) -> *mut core::ffi::c_void,
4702>;
4703unsafe extern "C" {
4704 pub fn vips_image_map(
4705 image: *mut VipsImage,
4706 fn_: VipsImageMapFn,
4707 a: *mut core::ffi::c_void,
4708 ) -> *mut core::ffi::c_void;
4709}
4710unsafe extern "C" {
4711 pub fn vips_image_get_fields(image: *mut VipsImage) -> *mut *mut gchar;
4712}
4713unsafe extern "C" {
4714 pub fn vips_image_set_area(
4715 image: *mut VipsImage,
4716 name: *const core::ffi::c_char,
4717 free_fn: VipsCallbackFn,
4718 data: *mut core::ffi::c_void,
4719 );
4720}
4721unsafe extern "C" {
4722 pub fn vips_image_get_area(
4723 image: *const VipsImage,
4724 name: *const core::ffi::c_char,
4725 data: *mut *const core::ffi::c_void,
4726 ) -> core::ffi::c_int;
4727}
4728unsafe extern "C" {
4729 pub fn vips_image_set_blob(
4730 image: *mut VipsImage,
4731 name: *const core::ffi::c_char,
4732 free_fn: VipsCallbackFn,
4733 data: *const core::ffi::c_void,
4734 length: usize,
4735 );
4736}
4737unsafe extern "C" {
4738 pub fn vips_image_set_blob_copy(
4739 image: *mut VipsImage,
4740 name: *const core::ffi::c_char,
4741 data: *const core::ffi::c_void,
4742 length: usize,
4743 );
4744}
4745unsafe extern "C" {
4746 pub fn vips_image_get_blob(
4747 image: *const VipsImage,
4748 name: *const core::ffi::c_char,
4749 data: *mut *const core::ffi::c_void,
4750 length: *mut usize,
4751 ) -> core::ffi::c_int;
4752}
4753unsafe extern "C" {
4754 pub fn vips_image_get_int(
4755 image: *const VipsImage,
4756 name: *const core::ffi::c_char,
4757 out: *mut core::ffi::c_int,
4758 ) -> core::ffi::c_int;
4759}
4760unsafe extern "C" {
4761 pub fn vips_image_set_int(
4762 image: *mut VipsImage,
4763 name: *const core::ffi::c_char,
4764 i: core::ffi::c_int,
4765 );
4766}
4767unsafe extern "C" {
4768 pub fn vips_image_get_double(
4769 image: *const VipsImage,
4770 name: *const core::ffi::c_char,
4771 out: *mut f64,
4772 ) -> core::ffi::c_int;
4773}
4774unsafe extern "C" {
4775 pub fn vips_image_set_double(image: *mut VipsImage, name: *const core::ffi::c_char, d: f64);
4776}
4777unsafe extern "C" {
4778 pub fn vips_image_get_string(
4779 image: *const VipsImage,
4780 name: *const core::ffi::c_char,
4781 out: *mut *const core::ffi::c_char,
4782 ) -> core::ffi::c_int;
4783}
4784unsafe extern "C" {
4785 pub fn vips_image_set_string(
4786 image: *mut VipsImage,
4787 name: *const core::ffi::c_char,
4788 str_: *const core::ffi::c_char,
4789 );
4790}
4791unsafe extern "C" {
4792 pub fn vips_image_print_field(image: *const VipsImage, name: *const core::ffi::c_char);
4793}
4794unsafe extern "C" {
4795 pub fn vips_image_get_image(
4796 image: *const VipsImage,
4797 name: *const core::ffi::c_char,
4798 out: *mut *mut VipsImage,
4799 ) -> core::ffi::c_int;
4800}
4801unsafe extern "C" {
4802 pub fn vips_image_set_image(
4803 image: *mut VipsImage,
4804 name: *const core::ffi::c_char,
4805 im: *mut VipsImage,
4806 );
4807}
4808unsafe extern "C" {
4809 pub fn vips_image_set_array_int(
4810 image: *mut VipsImage,
4811 name: *const core::ffi::c_char,
4812 array: *const core::ffi::c_int,
4813 n: core::ffi::c_int,
4814 );
4815}
4816unsafe extern "C" {
4817 pub fn vips_image_get_array_int(
4818 image: *mut VipsImage,
4819 name: *const core::ffi::c_char,
4820 out: *mut *mut core::ffi::c_int,
4821 n: *mut core::ffi::c_int,
4822 ) -> core::ffi::c_int;
4823}
4824unsafe extern "C" {
4825 pub fn vips_image_get_array_double(
4826 image: *mut VipsImage,
4827 name: *const core::ffi::c_char,
4828 out: *mut *mut f64,
4829 n: *mut core::ffi::c_int,
4830 ) -> core::ffi::c_int;
4831}
4832unsafe extern "C" {
4833 pub fn vips_image_set_array_double(
4834 image: *mut VipsImage,
4835 name: *const core::ffi::c_char,
4836 array: *const f64,
4837 n: core::ffi::c_int,
4838 );
4839}
4840unsafe extern "C" {
4841 pub fn vips_image_history_printf(
4842 image: *mut VipsImage,
4843 format: *const core::ffi::c_char,
4844 ...
4845 ) -> core::ffi::c_int;
4846}
4847unsafe extern "C" {
4848 pub fn vips_image_history_args(
4849 image: *mut VipsImage,
4850 name: *const core::ffi::c_char,
4851 argc: core::ffi::c_int,
4852 argv: *mut *mut core::ffi::c_char,
4853 ) -> core::ffi::c_int;
4854}
4855unsafe extern "C" {
4856 pub fn vips_image_get_history(image: *mut VipsImage) -> *const core::ffi::c_char;
4857}
4858#[repr(u32)]
4859#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
4860pub enum VipsOperationFlags {
4861 VIPS_OPERATION_NONE = 0,
4862 VIPS_OPERATION_SEQUENTIAL = 1,
4863 VIPS_OPERATION_SEQUENTIAL_UNBUFFERED = 2,
4864 VIPS_OPERATION_NOCACHE = 4,
4865 VIPS_OPERATION_DEPRECATED = 8,
4866 VIPS_OPERATION_UNTRUSTED = 16,
4867 VIPS_OPERATION_BLOCKED = 32,
4868 VIPS_OPERATION_REVALIDATE = 64,
4869}
4870pub type VipsOperationBuildFn =
4871 ::core::option::Option<unsafe extern "C" fn(object: *mut VipsObject) -> gboolean>;
4872#[repr(C)]
4873#[derive(Debug, Copy, Clone)]
4874pub struct _VipsOperation {
4875 pub parent_instance: VipsObject,
4876 pub hash: guint,
4877 pub found_hash: gboolean,
4878 pub pixels: core::ffi::c_int,
4879}
4880#[repr(C)]
4881#[derive(Debug, Copy, Clone)]
4882pub struct _VipsOperationClass {
4883 pub parent_class: VipsObjectClass,
4884 pub usage: ::core::option::Option<
4885 unsafe extern "C" fn(cls: *mut _VipsOperationClass, buf: *mut VipsBuf),
4886 >,
4887 pub get_flags: ::core::option::Option<
4888 unsafe extern "C" fn(operation: *mut VipsOperation) -> VipsOperationFlags,
4889 >,
4890 pub flags: VipsOperationFlags,
4891 pub invalidate: ::core::option::Option<unsafe extern "C" fn(operation: *mut VipsOperation)>,
4892}
4893pub type VipsOperationClass = _VipsOperationClass;
4894unsafe extern "C" {
4895 pub fn vips_operation_get_type() -> GType;
4896}
4897unsafe extern "C" {
4898 pub fn vips_operation_get_flags(operation: *mut VipsOperation) -> VipsOperationFlags;
4899}
4900unsafe extern "C" {
4901 pub fn vips_operation_class_print_usage(operation_class: *mut VipsOperationClass);
4902}
4903unsafe extern "C" {
4904 pub fn vips_operation_invalidate(operation: *mut VipsOperation);
4905}
4906unsafe extern "C" {
4907 pub fn vips_operation_call_valist(
4908 operation: *mut VipsOperation,
4909 ap: va_list,
4910 ) -> core::ffi::c_int;
4911}
4912unsafe extern "C" {
4913 pub fn vips_operation_new(name: *const core::ffi::c_char) -> *mut VipsOperation;
4914}
4915unsafe extern "C" {
4916 pub fn vips_call_required_optional(
4917 operation: *mut *mut VipsOperation,
4918 required: va_list,
4919 optional: va_list,
4920 ) -> core::ffi::c_int;
4921}
4922unsafe extern "C" {
4923 pub fn vips_call(operation_name: *const core::ffi::c_char, ...) -> core::ffi::c_int;
4924}
4925unsafe extern "C" {
4926 pub fn vips_call_split(
4927 operation_name: *const core::ffi::c_char,
4928 optional: va_list,
4929 ...
4930 ) -> core::ffi::c_int;
4931}
4932unsafe extern "C" {
4933 pub fn vips_call_split_option_string(
4934 operation_name: *const core::ffi::c_char,
4935 option_string: *const core::ffi::c_char,
4936 optional: va_list,
4937 ...
4938 ) -> core::ffi::c_int;
4939}
4940unsafe extern "C" {
4941 pub fn vips_call_options(group: *mut GOptionGroup, operation: *mut VipsOperation);
4942}
4943unsafe extern "C" {
4944 pub fn vips_call_argv(
4945 operation: *mut VipsOperation,
4946 argc: core::ffi::c_int,
4947 argv: *mut *mut core::ffi::c_char,
4948 ) -> core::ffi::c_int;
4949}
4950unsafe extern "C" {
4951 pub fn vips_cache_drop_all();
4952}
4953unsafe extern "C" {
4954 pub fn vips_cache_operation_buildp(operation: *mut *mut VipsOperation) -> core::ffi::c_int;
4955}
4956unsafe extern "C" {
4957 pub fn vips_cache_operation_build(operation: *mut VipsOperation) -> *mut VipsOperation;
4958}
4959unsafe extern "C" {
4960 pub fn vips_cache_print();
4961}
4962unsafe extern "C" {
4963 pub fn vips_cache_set_max(max: core::ffi::c_int);
4964}
4965unsafe extern "C" {
4966 pub fn vips_cache_set_max_mem(max_mem: usize);
4967}
4968unsafe extern "C" {
4969 pub fn vips_cache_get_max() -> core::ffi::c_int;
4970}
4971unsafe extern "C" {
4972 pub fn vips_cache_get_size() -> core::ffi::c_int;
4973}
4974unsafe extern "C" {
4975 pub fn vips_cache_get_max_mem() -> usize;
4976}
4977unsafe extern "C" {
4978 pub fn vips_cache_get_max_files() -> core::ffi::c_int;
4979}
4980unsafe extern "C" {
4981 pub fn vips_cache_set_max_files(max_files: core::ffi::c_int);
4982}
4983unsafe extern "C" {
4984 pub fn vips_cache_set_dump(dump: gboolean);
4985}
4986unsafe extern "C" {
4987 pub fn vips_cache_set_trace(trace: gboolean);
4988}
4989unsafe extern "C" {
4990 pub fn vips_concurrency_set(concurrency: core::ffi::c_int);
4991}
4992unsafe extern "C" {
4993 pub fn vips_concurrency_get() -> core::ffi::c_int;
4994}
4995unsafe extern "C" {
4996 pub fn vips_operation_block_set(name: *const core::ffi::c_char, state: gboolean);
4997}
4998#[repr(C)]
4999#[derive(Debug, Copy, Clone)]
5000pub struct _VipsForeign {
5001 pub parent_object: VipsOperation,
5002}
5003pub type VipsForeign = _VipsForeign;
5004#[repr(C)]
5005#[derive(Debug, Copy, Clone)]
5006pub struct _VipsForeignClass {
5007 pub parent_class: VipsOperationClass,
5008 pub priority: core::ffi::c_int,
5009 pub suffs: *mut *const core::ffi::c_char,
5010}
5011pub type VipsForeignClass = _VipsForeignClass;
5012unsafe extern "C" {
5013 pub fn vips_foreign_get_type() -> GType;
5014}
5015unsafe extern "C" {
5016 pub fn vips_foreign_map(
5017 base: *const core::ffi::c_char,
5018 fn_: VipsSListMap2Fn,
5019 a: *mut core::ffi::c_void,
5020 b: *mut core::ffi::c_void,
5021 ) -> *mut core::ffi::c_void;
5022}
5023#[repr(u32)]
5024#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5025pub enum VipsForeignFlags {
5026 VIPS_FOREIGN_NONE = 0,
5027 VIPS_FOREIGN_PARTIAL = 1,
5028 VIPS_FOREIGN_BIGENDIAN = 2,
5029 VIPS_FOREIGN_SEQUENTIAL = 4,
5030 VIPS_FOREIGN_ALL = 7,
5031}
5032#[repr(u32)]
5033#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5034pub enum VipsFailOn {
5035 VIPS_FAIL_ON_NONE = 0,
5036 VIPS_FAIL_ON_TRUNCATED = 1,
5037 VIPS_FAIL_ON_ERROR = 2,
5038 VIPS_FAIL_ON_WARNING = 3,
5039 VIPS_FAIL_ON_LAST = 4,
5040}
5041#[repr(C)]
5042#[derive(Debug, Copy, Clone)]
5043pub struct _VipsForeignLoad {
5044 pub parent_object: VipsForeign,
5045 pub memory: gboolean,
5046 pub access: VipsAccess,
5047 pub flags: VipsForeignFlags,
5048 pub fail_on: VipsFailOn,
5049 pub fail: gboolean,
5050 pub sequential: gboolean,
5051 pub out: *mut VipsImage,
5052 pub real: *mut VipsImage,
5053 pub nocache: gboolean,
5054 pub disc: gboolean,
5055 pub error: gboolean,
5056 pub revalidate: gboolean,
5057}
5058pub type VipsForeignLoad = _VipsForeignLoad;
5059#[repr(C)]
5060#[derive(Debug, Copy, Clone)]
5061pub struct _VipsForeignLoadClass {
5062 pub parent_class: VipsForeignClass,
5063 pub is_a: ::core::option::Option<
5064 unsafe extern "C" fn(filename: *const core::ffi::c_char) -> gboolean,
5065 >,
5066 pub is_a_buffer: ::core::option::Option<
5067 unsafe extern "C" fn(data: *const core::ffi::c_void, size: usize) -> gboolean,
5068 >,
5069 pub is_a_source:
5070 ::core::option::Option<unsafe extern "C" fn(source: *mut VipsSource) -> gboolean>,
5071 pub get_flags_filename: ::core::option::Option<
5072 unsafe extern "C" fn(filename: *const core::ffi::c_char) -> VipsForeignFlags,
5073 >,
5074 pub get_flags: ::core::option::Option<
5075 unsafe extern "C" fn(load: *mut VipsForeignLoad) -> VipsForeignFlags,
5076 >,
5077 pub header: ::core::option::Option<
5078 unsafe extern "C" fn(load: *mut VipsForeignLoad) -> core::ffi::c_int,
5079 >,
5080 pub load: ::core::option::Option<
5081 unsafe extern "C" fn(load: *mut VipsForeignLoad) -> core::ffi::c_int,
5082 >,
5083}
5084pub type VipsForeignLoadClass = _VipsForeignLoadClass;
5085unsafe extern "C" {
5086 pub fn vips_foreign_load_get_type() -> GType;
5087}
5088unsafe extern "C" {
5089 pub fn vips_foreign_find_load(filename: *const core::ffi::c_char) -> *const core::ffi::c_char;
5090}
5091unsafe extern "C" {
5092 pub fn vips_foreign_find_load_buffer(
5093 data: *const core::ffi::c_void,
5094 size: usize,
5095 ) -> *const core::ffi::c_char;
5096}
5097unsafe extern "C" {
5098 pub fn vips_foreign_find_load_source(source: *mut VipsSource) -> *const core::ffi::c_char;
5099}
5100unsafe extern "C" {
5101 pub fn vips_foreign_flags(
5102 loader: *const core::ffi::c_char,
5103 filename: *const core::ffi::c_char,
5104 ) -> VipsForeignFlags;
5105}
5106unsafe extern "C" {
5107 pub fn vips_foreign_is_a(
5108 loader: *const core::ffi::c_char,
5109 filename: *const core::ffi::c_char,
5110 ) -> gboolean;
5111}
5112unsafe extern "C" {
5113 pub fn vips_foreign_is_a_buffer(
5114 loader: *const core::ffi::c_char,
5115 data: *const core::ffi::c_void,
5116 size: usize,
5117 ) -> gboolean;
5118}
5119unsafe extern "C" {
5120 pub fn vips_foreign_is_a_source(
5121 loader: *const core::ffi::c_char,
5122 source: *mut VipsSource,
5123 ) -> gboolean;
5124}
5125unsafe extern "C" {
5126 pub fn vips_foreign_load_invalidate(image: *mut VipsImage);
5127}
5128#[repr(u32)]
5129#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5130pub enum VipsForeignSaveable {
5131 VIPS_FOREIGN_SAVEABLE_ANY = 0,
5132 VIPS_FOREIGN_SAVEABLE_MONO = 1,
5133 VIPS_FOREIGN_SAVEABLE_RGB = 2,
5134 VIPS_FOREIGN_SAVEABLE_CMYK = 4,
5135 VIPS_FOREIGN_SAVEABLE_ALPHA = 8,
5136 VIPS_FOREIGN_SAVEABLE_ALL = 15,
5137}
5138#[repr(u32)]
5139#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5140pub enum VipsForeignCoding {
5141 VIPS_FOREIGN_CODING_NONE = 1,
5142 VIPS_FOREIGN_CODING_LABQ = 2,
5143 VIPS_FOREIGN_CODING_RAD = 4,
5144 VIPS_FOREIGN_CODING_ALL = 7,
5145}
5146#[repr(u32)]
5147#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5148pub enum VipsForeignKeep {
5149 VIPS_FOREIGN_KEEP_NONE = 0,
5150 VIPS_FOREIGN_KEEP_EXIF = 1,
5151 VIPS_FOREIGN_KEEP_XMP = 2,
5152 VIPS_FOREIGN_KEEP_IPTC = 4,
5153 VIPS_FOREIGN_KEEP_ICC = 8,
5154 VIPS_FOREIGN_KEEP_OTHER = 16,
5155 VIPS_FOREIGN_KEEP_GAINMAP = 32,
5156 VIPS_FOREIGN_KEEP_ALL = 63,
5157}
5158#[repr(C)]
5159#[derive(Debug, Copy, Clone)]
5160pub struct _VipsForeignSave {
5161 pub parent_object: VipsForeign,
5162 pub strip: gboolean,
5163 pub keep: VipsForeignKeep,
5164 pub profile: *mut core::ffi::c_char,
5165 pub background: *mut VipsArrayDouble,
5166 pub page_height: core::ffi::c_int,
5167 pub in_: *mut VipsImage,
5168 pub ready: *mut VipsImage,
5169}
5170pub type VipsForeignSave = _VipsForeignSave;
5171#[repr(C)]
5172#[derive(Debug, Copy, Clone)]
5173pub struct _VipsForeignSaveClass {
5174 pub parent_class: VipsForeignClass,
5175 pub saveable: VipsForeignSaveable,
5176 pub format_table: *mut VipsBandFormat,
5177 pub coding: VipsForeignCoding,
5178}
5179pub type VipsForeignSaveClass = _VipsForeignSaveClass;
5180unsafe extern "C" {
5181 pub fn vips_foreign_save_get_type() -> GType;
5182}
5183unsafe extern "C" {
5184 pub fn vips_foreign_find_save(filename: *const core::ffi::c_char) -> *const core::ffi::c_char;
5185}
5186unsafe extern "C" {
5187 pub fn vips_foreign_get_suffixes() -> *mut *mut gchar;
5188}
5189unsafe extern "C" {
5190 pub fn vips_foreign_find_save_buffer(
5191 suffix: *const core::ffi::c_char,
5192 ) -> *const core::ffi::c_char;
5193}
5194unsafe extern "C" {
5195 pub fn vips_foreign_find_save_target(
5196 suffix: *const core::ffi::c_char,
5197 ) -> *const core::ffi::c_char;
5198}
5199unsafe extern "C" {
5200 pub fn vips_vipsload(
5201 filename: *const core::ffi::c_char,
5202 out: *mut *mut VipsImage,
5203 ...
5204 ) -> core::ffi::c_int;
5205}
5206unsafe extern "C" {
5207 pub fn vips_vipsload_source(
5208 source: *mut VipsSource,
5209 out: *mut *mut VipsImage,
5210 ...
5211 ) -> core::ffi::c_int;
5212}
5213unsafe extern "C" {
5214 pub fn vips_vipssave(
5215 in_: *mut VipsImage,
5216 filename: *const core::ffi::c_char,
5217 ...
5218 ) -> core::ffi::c_int;
5219}
5220unsafe extern "C" {
5221 pub fn vips_vipssave_target(
5222 in_: *mut VipsImage,
5223 target: *mut VipsTarget,
5224 ...
5225 ) -> core::ffi::c_int;
5226}
5227unsafe extern "C" {
5228 pub fn vips_openslideload(
5229 filename: *const core::ffi::c_char,
5230 out: *mut *mut VipsImage,
5231 ...
5232 ) -> core::ffi::c_int;
5233}
5234unsafe extern "C" {
5235 pub fn vips_openslideload_source(
5236 source: *mut VipsSource,
5237 out: *mut *mut VipsImage,
5238 ...
5239 ) -> core::ffi::c_int;
5240}
5241#[repr(u32)]
5242#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5243pub enum VipsForeignSubsample {
5244 VIPS_FOREIGN_SUBSAMPLE_AUTO = 0,
5245 VIPS_FOREIGN_SUBSAMPLE_ON = 1,
5246 VIPS_FOREIGN_SUBSAMPLE_OFF = 2,
5247 VIPS_FOREIGN_SUBSAMPLE_LAST = 3,
5248}
5249unsafe extern "C" {
5250 pub fn vips_jpegload(
5251 filename: *const core::ffi::c_char,
5252 out: *mut *mut VipsImage,
5253 ...
5254 ) -> core::ffi::c_int;
5255}
5256unsafe extern "C" {
5257 pub fn vips_jpegload_buffer(
5258 buf: *mut core::ffi::c_void,
5259 len: usize,
5260 out: *mut *mut VipsImage,
5261 ...
5262 ) -> core::ffi::c_int;
5263}
5264unsafe extern "C" {
5265 pub fn vips_jpegload_source(
5266 source: *mut VipsSource,
5267 out: *mut *mut VipsImage,
5268 ...
5269 ) -> core::ffi::c_int;
5270}
5271unsafe extern "C" {
5272 pub fn vips_jpegsave_target(
5273 in_: *mut VipsImage,
5274 target: *mut VipsTarget,
5275 ...
5276 ) -> core::ffi::c_int;
5277}
5278unsafe extern "C" {
5279 pub fn vips_jpegsave(
5280 in_: *mut VipsImage,
5281 filename: *const core::ffi::c_char,
5282 ...
5283 ) -> core::ffi::c_int;
5284}
5285unsafe extern "C" {
5286 pub fn vips_jpegsave_buffer(
5287 in_: *mut VipsImage,
5288 buf: *mut *mut core::ffi::c_void,
5289 len: *mut usize,
5290 ...
5291 ) -> core::ffi::c_int;
5292}
5293unsafe extern "C" {
5294 pub fn vips_jpegsave_mime(in_: *mut VipsImage, ...) -> core::ffi::c_int;
5295}
5296#[repr(u32)]
5297#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5298pub enum VipsForeignWebpPreset {
5299 VIPS_FOREIGN_WEBP_PRESET_DEFAULT = 0,
5300 VIPS_FOREIGN_WEBP_PRESET_PICTURE = 1,
5301 VIPS_FOREIGN_WEBP_PRESET_PHOTO = 2,
5302 VIPS_FOREIGN_WEBP_PRESET_DRAWING = 3,
5303 VIPS_FOREIGN_WEBP_PRESET_ICON = 4,
5304 VIPS_FOREIGN_WEBP_PRESET_TEXT = 5,
5305 VIPS_FOREIGN_WEBP_PRESET_LAST = 6,
5306}
5307unsafe extern "C" {
5308 pub fn vips_webpload_source(
5309 source: *mut VipsSource,
5310 out: *mut *mut VipsImage,
5311 ...
5312 ) -> core::ffi::c_int;
5313}
5314unsafe extern "C" {
5315 pub fn vips_webpload(
5316 filename: *const core::ffi::c_char,
5317 out: *mut *mut VipsImage,
5318 ...
5319 ) -> core::ffi::c_int;
5320}
5321unsafe extern "C" {
5322 pub fn vips_webpload_buffer(
5323 buf: *mut core::ffi::c_void,
5324 len: usize,
5325 out: *mut *mut VipsImage,
5326 ...
5327 ) -> core::ffi::c_int;
5328}
5329unsafe extern "C" {
5330 pub fn vips_webpsave_target(
5331 in_: *mut VipsImage,
5332 target: *mut VipsTarget,
5333 ...
5334 ) -> core::ffi::c_int;
5335}
5336unsafe extern "C" {
5337 pub fn vips_webpsave(
5338 in_: *mut VipsImage,
5339 filename: *const core::ffi::c_char,
5340 ...
5341 ) -> core::ffi::c_int;
5342}
5343unsafe extern "C" {
5344 pub fn vips_webpsave_buffer(
5345 in_: *mut VipsImage,
5346 buf: *mut *mut core::ffi::c_void,
5347 len: *mut usize,
5348 ...
5349 ) -> core::ffi::c_int;
5350}
5351unsafe extern "C" {
5352 pub fn vips_webpsave_mime(in_: *mut VipsImage, ...) -> core::ffi::c_int;
5353}
5354#[repr(u32)]
5355#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5356pub enum VipsForeignTiffCompression {
5357 VIPS_FOREIGN_TIFF_COMPRESSION_NONE = 0,
5358 VIPS_FOREIGN_TIFF_COMPRESSION_JPEG = 1,
5359 VIPS_FOREIGN_TIFF_COMPRESSION_DEFLATE = 2,
5360 VIPS_FOREIGN_TIFF_COMPRESSION_PACKBITS = 3,
5361 VIPS_FOREIGN_TIFF_COMPRESSION_CCITTFAX4 = 4,
5362 VIPS_FOREIGN_TIFF_COMPRESSION_LZW = 5,
5363 VIPS_FOREIGN_TIFF_COMPRESSION_WEBP = 6,
5364 VIPS_FOREIGN_TIFF_COMPRESSION_ZSTD = 7,
5365 VIPS_FOREIGN_TIFF_COMPRESSION_JP2K = 8,
5366 VIPS_FOREIGN_TIFF_COMPRESSION_LAST = 9,
5367}
5368#[repr(u32)]
5369#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5370pub enum VipsForeignTiffPredictor {
5371 VIPS_FOREIGN_TIFF_PREDICTOR_NONE = 1,
5372 VIPS_FOREIGN_TIFF_PREDICTOR_HORIZONTAL = 2,
5373 VIPS_FOREIGN_TIFF_PREDICTOR_FLOAT = 3,
5374 VIPS_FOREIGN_TIFF_PREDICTOR_LAST = 4,
5375}
5376#[repr(u32)]
5377#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5378pub enum VipsForeignTiffResunit {
5379 VIPS_FOREIGN_TIFF_RESUNIT_CM = 0,
5380 VIPS_FOREIGN_TIFF_RESUNIT_INCH = 1,
5381 VIPS_FOREIGN_TIFF_RESUNIT_LAST = 2,
5382}
5383unsafe extern "C" {
5384 pub fn vips_tiffload(
5385 filename: *const core::ffi::c_char,
5386 out: *mut *mut VipsImage,
5387 ...
5388 ) -> core::ffi::c_int;
5389}
5390unsafe extern "C" {
5391 pub fn vips_tiffload_buffer(
5392 buf: *mut core::ffi::c_void,
5393 len: usize,
5394 out: *mut *mut VipsImage,
5395 ...
5396 ) -> core::ffi::c_int;
5397}
5398unsafe extern "C" {
5399 pub fn vips_tiffload_source(
5400 source: *mut VipsSource,
5401 out: *mut *mut VipsImage,
5402 ...
5403 ) -> core::ffi::c_int;
5404}
5405unsafe extern "C" {
5406 pub fn vips_tiffsave(
5407 in_: *mut VipsImage,
5408 filename: *const core::ffi::c_char,
5409 ...
5410 ) -> core::ffi::c_int;
5411}
5412unsafe extern "C" {
5413 pub fn vips_tiffsave_buffer(
5414 in_: *mut VipsImage,
5415 buf: *mut *mut core::ffi::c_void,
5416 len: *mut usize,
5417 ...
5418 ) -> core::ffi::c_int;
5419}
5420unsafe extern "C" {
5421 pub fn vips_tiffsave_target(
5422 in_: *mut VipsImage,
5423 target: *mut VipsTarget,
5424 ...
5425 ) -> core::ffi::c_int;
5426}
5427unsafe extern "C" {
5428 pub fn vips_openexrload(
5429 filename: *const core::ffi::c_char,
5430 out: *mut *mut VipsImage,
5431 ...
5432 ) -> core::ffi::c_int;
5433}
5434unsafe extern "C" {
5435 pub fn vips_fitsload(
5436 filename: *const core::ffi::c_char,
5437 out: *mut *mut VipsImage,
5438 ...
5439 ) -> core::ffi::c_int;
5440}
5441unsafe extern "C" {
5442 pub fn vips_fitsload_source(
5443 source: *mut VipsSource,
5444 out: *mut *mut VipsImage,
5445 ...
5446 ) -> core::ffi::c_int;
5447}
5448unsafe extern "C" {
5449 pub fn vips_fitssave(
5450 in_: *mut VipsImage,
5451 filename: *const core::ffi::c_char,
5452 ...
5453 ) -> core::ffi::c_int;
5454}
5455unsafe extern "C" {
5456 pub fn vips_analyzeload(
5457 filename: *const core::ffi::c_char,
5458 out: *mut *mut VipsImage,
5459 ...
5460 ) -> core::ffi::c_int;
5461}
5462unsafe extern "C" {
5463 pub fn vips_rawload(
5464 filename: *const core::ffi::c_char,
5465 out: *mut *mut VipsImage,
5466 width: core::ffi::c_int,
5467 height: core::ffi::c_int,
5468 bands: core::ffi::c_int,
5469 ...
5470 ) -> core::ffi::c_int;
5471}
5472unsafe extern "C" {
5473 pub fn vips_rawsave(
5474 in_: *mut VipsImage,
5475 filename: *const core::ffi::c_char,
5476 ...
5477 ) -> core::ffi::c_int;
5478}
5479unsafe extern "C" {
5480 pub fn vips_rawsave_buffer(
5481 in_: *mut VipsImage,
5482 buf: *mut *mut core::ffi::c_void,
5483 len: *mut usize,
5484 ...
5485 ) -> core::ffi::c_int;
5486}
5487unsafe extern "C" {
5488 pub fn vips_rawsave_target(
5489 in_: *mut VipsImage,
5490 target: *mut VipsTarget,
5491 ...
5492 ) -> core::ffi::c_int;
5493}
5494unsafe extern "C" {
5495 pub fn vips_csvload(
5496 filename: *const core::ffi::c_char,
5497 out: *mut *mut VipsImage,
5498 ...
5499 ) -> core::ffi::c_int;
5500}
5501unsafe extern "C" {
5502 pub fn vips_csvload_source(
5503 source: *mut VipsSource,
5504 out: *mut *mut VipsImage,
5505 ...
5506 ) -> core::ffi::c_int;
5507}
5508unsafe extern "C" {
5509 pub fn vips_csvsave(
5510 in_: *mut VipsImage,
5511 filename: *const core::ffi::c_char,
5512 ...
5513 ) -> core::ffi::c_int;
5514}
5515unsafe extern "C" {
5516 pub fn vips_csvsave_target(
5517 in_: *mut VipsImage,
5518 target: *mut VipsTarget,
5519 ...
5520 ) -> core::ffi::c_int;
5521}
5522unsafe extern "C" {
5523 pub fn vips_matrixload(
5524 filename: *const core::ffi::c_char,
5525 out: *mut *mut VipsImage,
5526 ...
5527 ) -> core::ffi::c_int;
5528}
5529unsafe extern "C" {
5530 pub fn vips_matrixload_source(
5531 source: *mut VipsSource,
5532 out: *mut *mut VipsImage,
5533 ...
5534 ) -> core::ffi::c_int;
5535}
5536unsafe extern "C" {
5537 pub fn vips_matrixsave(
5538 in_: *mut VipsImage,
5539 filename: *const core::ffi::c_char,
5540 ...
5541 ) -> core::ffi::c_int;
5542}
5543unsafe extern "C" {
5544 pub fn vips_matrixsave_target(
5545 in_: *mut VipsImage,
5546 target: *mut VipsTarget,
5547 ...
5548 ) -> core::ffi::c_int;
5549}
5550unsafe extern "C" {
5551 pub fn vips_matrixprint(in_: *mut VipsImage, ...) -> core::ffi::c_int;
5552}
5553unsafe extern "C" {
5554 pub fn vips_magickload(
5555 filename: *const core::ffi::c_char,
5556 out: *mut *mut VipsImage,
5557 ...
5558 ) -> core::ffi::c_int;
5559}
5560unsafe extern "C" {
5561 pub fn vips_magickload_buffer(
5562 buf: *mut core::ffi::c_void,
5563 len: usize,
5564 out: *mut *mut VipsImage,
5565 ...
5566 ) -> core::ffi::c_int;
5567}
5568unsafe extern "C" {
5569 pub fn vips_magickload_source(
5570 source: *mut VipsSource,
5571 out: *mut *mut VipsImage,
5572 ...
5573 ) -> core::ffi::c_int;
5574}
5575unsafe extern "C" {
5576 pub fn vips_magicksave(
5577 in_: *mut VipsImage,
5578 filename: *const core::ffi::c_char,
5579 ...
5580 ) -> core::ffi::c_int;
5581}
5582unsafe extern "C" {
5583 pub fn vips_magicksave_buffer(
5584 in_: *mut VipsImage,
5585 buf: *mut *mut core::ffi::c_void,
5586 len: *mut usize,
5587 ...
5588 ) -> core::ffi::c_int;
5589}
5590#[repr(u32)]
5591#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5592pub enum VipsForeignPngFilter {
5593 VIPS_FOREIGN_PNG_FILTER_NONE = 8,
5594 VIPS_FOREIGN_PNG_FILTER_SUB = 16,
5595 VIPS_FOREIGN_PNG_FILTER_UP = 32,
5596 VIPS_FOREIGN_PNG_FILTER_AVG = 64,
5597 VIPS_FOREIGN_PNG_FILTER_PAETH = 128,
5598 VIPS_FOREIGN_PNG_FILTER_ALL = 248,
5599}
5600unsafe extern "C" {
5601 pub fn vips_pngload_source(
5602 source: *mut VipsSource,
5603 out: *mut *mut VipsImage,
5604 ...
5605 ) -> core::ffi::c_int;
5606}
5607unsafe extern "C" {
5608 pub fn vips_pngload(
5609 filename: *const core::ffi::c_char,
5610 out: *mut *mut VipsImage,
5611 ...
5612 ) -> core::ffi::c_int;
5613}
5614unsafe extern "C" {
5615 pub fn vips_pngload_buffer(
5616 buf: *mut core::ffi::c_void,
5617 len: usize,
5618 out: *mut *mut VipsImage,
5619 ...
5620 ) -> core::ffi::c_int;
5621}
5622unsafe extern "C" {
5623 pub fn vips_pngsave_target(
5624 in_: *mut VipsImage,
5625 target: *mut VipsTarget,
5626 ...
5627 ) -> core::ffi::c_int;
5628}
5629unsafe extern "C" {
5630 pub fn vips_pngsave(
5631 in_: *mut VipsImage,
5632 filename: *const core::ffi::c_char,
5633 ...
5634 ) -> core::ffi::c_int;
5635}
5636unsafe extern "C" {
5637 pub fn vips_pngsave_buffer(
5638 in_: *mut VipsImage,
5639 buf: *mut *mut core::ffi::c_void,
5640 len: *mut usize,
5641 ...
5642 ) -> core::ffi::c_int;
5643}
5644#[repr(u32)]
5645#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5646pub enum VipsForeignPpmFormat {
5647 VIPS_FOREIGN_PPM_FORMAT_PBM = 0,
5648 VIPS_FOREIGN_PPM_FORMAT_PGM = 1,
5649 VIPS_FOREIGN_PPM_FORMAT_PPM = 2,
5650 VIPS_FOREIGN_PPM_FORMAT_PFM = 3,
5651 VIPS_FOREIGN_PPM_FORMAT_PNM = 4,
5652 VIPS_FOREIGN_PPM_FORMAT_LAST = 5,
5653}
5654unsafe extern "C" {
5655 pub fn vips_ppmload(
5656 filename: *const core::ffi::c_char,
5657 out: *mut *mut VipsImage,
5658 ...
5659 ) -> core::ffi::c_int;
5660}
5661unsafe extern "C" {
5662 pub fn vips_ppmload_buffer(
5663 buf: *mut core::ffi::c_void,
5664 len: usize,
5665 out: *mut *mut VipsImage,
5666 ...
5667 ) -> core::ffi::c_int;
5668}
5669unsafe extern "C" {
5670 pub fn vips_ppmload_source(
5671 source: *mut VipsSource,
5672 out: *mut *mut VipsImage,
5673 ...
5674 ) -> core::ffi::c_int;
5675}
5676unsafe extern "C" {
5677 pub fn vips_ppmsave(
5678 in_: *mut VipsImage,
5679 filename: *const core::ffi::c_char,
5680 ...
5681 ) -> core::ffi::c_int;
5682}
5683unsafe extern "C" {
5684 pub fn vips_ppmsave_target(
5685 in_: *mut VipsImage,
5686 target: *mut VipsTarget,
5687 ...
5688 ) -> core::ffi::c_int;
5689}
5690unsafe extern "C" {
5691 pub fn vips_matload(
5692 filename: *const core::ffi::c_char,
5693 out: *mut *mut VipsImage,
5694 ...
5695 ) -> core::ffi::c_int;
5696}
5697unsafe extern "C" {
5698 pub fn vips_radload_source(
5699 source: *mut VipsSource,
5700 out: *mut *mut VipsImage,
5701 ...
5702 ) -> core::ffi::c_int;
5703}
5704unsafe extern "C" {
5705 pub fn vips_radload(
5706 filename: *const core::ffi::c_char,
5707 out: *mut *mut VipsImage,
5708 ...
5709 ) -> core::ffi::c_int;
5710}
5711unsafe extern "C" {
5712 pub fn vips_radload_buffer(
5713 buf: *mut core::ffi::c_void,
5714 len: usize,
5715 out: *mut *mut VipsImage,
5716 ...
5717 ) -> core::ffi::c_int;
5718}
5719unsafe extern "C" {
5720 pub fn vips_radsave(
5721 in_: *mut VipsImage,
5722 filename: *const core::ffi::c_char,
5723 ...
5724 ) -> core::ffi::c_int;
5725}
5726unsafe extern "C" {
5727 pub fn vips_radsave_buffer(
5728 in_: *mut VipsImage,
5729 buf: *mut *mut core::ffi::c_void,
5730 len: *mut usize,
5731 ...
5732 ) -> core::ffi::c_int;
5733}
5734unsafe extern "C" {
5735 pub fn vips_radsave_target(
5736 in_: *mut VipsImage,
5737 target: *mut VipsTarget,
5738 ...
5739 ) -> core::ffi::c_int;
5740}
5741#[repr(u32)]
5742#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5743pub enum VipsForeignPdfPageBox {
5744 VIPS_FOREIGN_PDF_PAGE_BOX_MEDIA = 0,
5745 VIPS_FOREIGN_PDF_PAGE_BOX_CROP = 1,
5746 VIPS_FOREIGN_PDF_PAGE_BOX_TRIM = 2,
5747 VIPS_FOREIGN_PDF_PAGE_BOX_BLEED = 3,
5748 VIPS_FOREIGN_PDF_PAGE_BOX_ART = 4,
5749 VIPS_FOREIGN_PDF_PAGE_BOX_LAST = 5,
5750}
5751unsafe extern "C" {
5752 pub fn vips_pdfload(
5753 filename: *const core::ffi::c_char,
5754 out: *mut *mut VipsImage,
5755 ...
5756 ) -> core::ffi::c_int;
5757}
5758unsafe extern "C" {
5759 pub fn vips_pdfload_buffer(
5760 buf: *mut core::ffi::c_void,
5761 len: usize,
5762 out: *mut *mut VipsImage,
5763 ...
5764 ) -> core::ffi::c_int;
5765}
5766unsafe extern "C" {
5767 pub fn vips_pdfload_source(
5768 source: *mut VipsSource,
5769 out: *mut *mut VipsImage,
5770 ...
5771 ) -> core::ffi::c_int;
5772}
5773unsafe extern "C" {
5774 pub fn vips_svgload(
5775 filename: *const core::ffi::c_char,
5776 out: *mut *mut VipsImage,
5777 ...
5778 ) -> core::ffi::c_int;
5779}
5780unsafe extern "C" {
5781 pub fn vips_svgload_buffer(
5782 buf: *mut core::ffi::c_void,
5783 len: usize,
5784 out: *mut *mut VipsImage,
5785 ...
5786 ) -> core::ffi::c_int;
5787}
5788unsafe extern "C" {
5789 pub fn vips_svgload_string(
5790 str_: *const core::ffi::c_char,
5791 out: *mut *mut VipsImage,
5792 ...
5793 ) -> core::ffi::c_int;
5794}
5795unsafe extern "C" {
5796 pub fn vips_svgload_source(
5797 source: *mut VipsSource,
5798 out: *mut *mut VipsImage,
5799 ...
5800 ) -> core::ffi::c_int;
5801}
5802unsafe extern "C" {
5803 pub fn vips_gifload(
5804 filename: *const core::ffi::c_char,
5805 out: *mut *mut VipsImage,
5806 ...
5807 ) -> core::ffi::c_int;
5808}
5809unsafe extern "C" {
5810 pub fn vips_gifload_buffer(
5811 buf: *mut core::ffi::c_void,
5812 len: usize,
5813 out: *mut *mut VipsImage,
5814 ...
5815 ) -> core::ffi::c_int;
5816}
5817unsafe extern "C" {
5818 pub fn vips_gifload_source(
5819 source: *mut VipsSource,
5820 out: *mut *mut VipsImage,
5821 ...
5822 ) -> core::ffi::c_int;
5823}
5824unsafe extern "C" {
5825 pub fn vips_gifsave(
5826 in_: *mut VipsImage,
5827 filename: *const core::ffi::c_char,
5828 ...
5829 ) -> core::ffi::c_int;
5830}
5831unsafe extern "C" {
5832 pub fn vips_gifsave_buffer(
5833 in_: *mut VipsImage,
5834 buf: *mut *mut core::ffi::c_void,
5835 len: *mut usize,
5836 ...
5837 ) -> core::ffi::c_int;
5838}
5839unsafe extern "C" {
5840 pub fn vips_gifsave_target(
5841 in_: *mut VipsImage,
5842 target: *mut VipsTarget,
5843 ...
5844 ) -> core::ffi::c_int;
5845}
5846unsafe extern "C" {
5847 pub fn vips_dcrawload(
5848 filename: *const core::ffi::c_char,
5849 out: *mut *mut VipsImage,
5850 ...
5851 ) -> core::ffi::c_int;
5852}
5853unsafe extern "C" {
5854 pub fn vips_dcrawload_buffer(
5855 buf: *mut core::ffi::c_void,
5856 len: usize,
5857 out: *mut *mut VipsImage,
5858 ...
5859 ) -> core::ffi::c_int;
5860}
5861unsafe extern "C" {
5862 pub fn vips_dcrawload_source(
5863 source: *mut VipsSource,
5864 out: *mut *mut VipsImage,
5865 ...
5866 ) -> core::ffi::c_int;
5867}
5868unsafe extern "C" {
5869 pub fn vips_uhdrload(
5870 filename: *const core::ffi::c_char,
5871 out: *mut *mut VipsImage,
5872 ...
5873 ) -> core::ffi::c_int;
5874}
5875unsafe extern "C" {
5876 pub fn vips_uhdrload_buffer(
5877 buf: *mut core::ffi::c_void,
5878 len: usize,
5879 out: *mut *mut VipsImage,
5880 ...
5881 ) -> core::ffi::c_int;
5882}
5883unsafe extern "C" {
5884 pub fn vips_uhdrload_source(
5885 source: *mut VipsSource,
5886 out: *mut *mut VipsImage,
5887 ...
5888 ) -> core::ffi::c_int;
5889}
5890unsafe extern "C" {
5891 pub fn vips_uhdrsave(
5892 in_: *mut VipsImage,
5893 filename: *const core::ffi::c_char,
5894 ...
5895 ) -> core::ffi::c_int;
5896}
5897unsafe extern "C" {
5898 pub fn vips_uhdrsave_buffer(
5899 in_: *mut VipsImage,
5900 buf: *mut *mut core::ffi::c_void,
5901 len: *mut usize,
5902 ...
5903 ) -> core::ffi::c_int;
5904}
5905unsafe extern "C" {
5906 pub fn vips_uhdrsave_target(
5907 in_: *mut VipsImage,
5908 target: *mut VipsTarget,
5909 ...
5910 ) -> core::ffi::c_int;
5911}
5912unsafe extern "C" {
5913 pub fn vips_heifload(
5914 filename: *const core::ffi::c_char,
5915 out: *mut *mut VipsImage,
5916 ...
5917 ) -> core::ffi::c_int;
5918}
5919unsafe extern "C" {
5920 pub fn vips_heifload_buffer(
5921 buf: *mut core::ffi::c_void,
5922 len: usize,
5923 out: *mut *mut VipsImage,
5924 ...
5925 ) -> core::ffi::c_int;
5926}
5927unsafe extern "C" {
5928 pub fn vips_heifload_source(
5929 source: *mut VipsSource,
5930 out: *mut *mut VipsImage,
5931 ...
5932 ) -> core::ffi::c_int;
5933}
5934unsafe extern "C" {
5935 pub fn vips_heifsave(
5936 in_: *mut VipsImage,
5937 filename: *const core::ffi::c_char,
5938 ...
5939 ) -> core::ffi::c_int;
5940}
5941unsafe extern "C" {
5942 pub fn vips_heifsave_buffer(
5943 in_: *mut VipsImage,
5944 buf: *mut *mut core::ffi::c_void,
5945 len: *mut usize,
5946 ...
5947 ) -> core::ffi::c_int;
5948}
5949unsafe extern "C" {
5950 pub fn vips_heifsave_target(
5951 in_: *mut VipsImage,
5952 target: *mut VipsTarget,
5953 ...
5954 ) -> core::ffi::c_int;
5955}
5956unsafe extern "C" {
5957 pub fn vips_niftiload(
5958 filename: *const core::ffi::c_char,
5959 out: *mut *mut VipsImage,
5960 ...
5961 ) -> core::ffi::c_int;
5962}
5963unsafe extern "C" {
5964 pub fn vips_niftiload_source(
5965 source: *mut VipsSource,
5966 out: *mut *mut VipsImage,
5967 ...
5968 ) -> core::ffi::c_int;
5969}
5970unsafe extern "C" {
5971 pub fn vips_niftisave(
5972 in_: *mut VipsImage,
5973 filename: *const core::ffi::c_char,
5974 ...
5975 ) -> core::ffi::c_int;
5976}
5977unsafe extern "C" {
5978 pub fn vips_jp2kload(
5979 filename: *const core::ffi::c_char,
5980 out: *mut *mut VipsImage,
5981 ...
5982 ) -> core::ffi::c_int;
5983}
5984unsafe extern "C" {
5985 pub fn vips_jp2kload_buffer(
5986 buf: *mut core::ffi::c_void,
5987 len: usize,
5988 out: *mut *mut VipsImage,
5989 ...
5990 ) -> core::ffi::c_int;
5991}
5992unsafe extern "C" {
5993 pub fn vips_jp2kload_source(
5994 source: *mut VipsSource,
5995 out: *mut *mut VipsImage,
5996 ...
5997 ) -> core::ffi::c_int;
5998}
5999unsafe extern "C" {
6000 pub fn vips_jp2ksave(
6001 in_: *mut VipsImage,
6002 filename: *const core::ffi::c_char,
6003 ...
6004 ) -> core::ffi::c_int;
6005}
6006unsafe extern "C" {
6007 pub fn vips_jp2ksave_buffer(
6008 in_: *mut VipsImage,
6009 buf: *mut *mut core::ffi::c_void,
6010 len: *mut usize,
6011 ...
6012 ) -> core::ffi::c_int;
6013}
6014unsafe extern "C" {
6015 pub fn vips_jp2ksave_target(
6016 in_: *mut VipsImage,
6017 target: *mut VipsTarget,
6018 ...
6019 ) -> core::ffi::c_int;
6020}
6021unsafe extern "C" {
6022 pub fn vips_jxlload_source(
6023 source: *mut VipsSource,
6024 out: *mut *mut VipsImage,
6025 ...
6026 ) -> core::ffi::c_int;
6027}
6028unsafe extern "C" {
6029 pub fn vips_jxlload_buffer(
6030 buf: *mut core::ffi::c_void,
6031 len: usize,
6032 out: *mut *mut VipsImage,
6033 ...
6034 ) -> core::ffi::c_int;
6035}
6036unsafe extern "C" {
6037 pub fn vips_jxlload(
6038 filename: *const core::ffi::c_char,
6039 out: *mut *mut VipsImage,
6040 ...
6041 ) -> core::ffi::c_int;
6042}
6043unsafe extern "C" {
6044 pub fn vips_jxlsave(
6045 in_: *mut VipsImage,
6046 filename: *const core::ffi::c_char,
6047 ...
6048 ) -> core::ffi::c_int;
6049}
6050unsafe extern "C" {
6051 pub fn vips_jxlsave_buffer(
6052 in_: *mut VipsImage,
6053 buf: *mut *mut core::ffi::c_void,
6054 len: *mut usize,
6055 ...
6056 ) -> core::ffi::c_int;
6057}
6058unsafe extern "C" {
6059 pub fn vips_jxlsave_target(
6060 in_: *mut VipsImage,
6061 target: *mut VipsTarget,
6062 ...
6063 ) -> core::ffi::c_int;
6064}
6065#[repr(u32)]
6066#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6067pub enum VipsForeignDzLayout {
6068 VIPS_FOREIGN_DZ_LAYOUT_DZ = 0,
6069 VIPS_FOREIGN_DZ_LAYOUT_ZOOMIFY = 1,
6070 VIPS_FOREIGN_DZ_LAYOUT_GOOGLE = 2,
6071 VIPS_FOREIGN_DZ_LAYOUT_IIIF = 3,
6072 VIPS_FOREIGN_DZ_LAYOUT_IIIF3 = 4,
6073 VIPS_FOREIGN_DZ_LAYOUT_LAST = 5,
6074}
6075#[repr(u32)]
6076#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6077pub enum VipsForeignDzDepth {
6078 VIPS_FOREIGN_DZ_DEPTH_ONEPIXEL = 0,
6079 VIPS_FOREIGN_DZ_DEPTH_ONETILE = 1,
6080 VIPS_FOREIGN_DZ_DEPTH_ONE = 2,
6081 VIPS_FOREIGN_DZ_DEPTH_LAST = 3,
6082}
6083#[repr(u32)]
6084#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6085pub enum VipsForeignDzContainer {
6086 VIPS_FOREIGN_DZ_CONTAINER_FS = 0,
6087 VIPS_FOREIGN_DZ_CONTAINER_ZIP = 1,
6088 VIPS_FOREIGN_DZ_CONTAINER_SZI = 2,
6089 VIPS_FOREIGN_DZ_CONTAINER_LAST = 3,
6090}
6091unsafe extern "C" {
6092 pub fn vips_dzsave(
6093 in_: *mut VipsImage,
6094 name: *const core::ffi::c_char,
6095 ...
6096 ) -> core::ffi::c_int;
6097}
6098unsafe extern "C" {
6099 pub fn vips_dzsave_buffer(
6100 in_: *mut VipsImage,
6101 buf: *mut *mut core::ffi::c_void,
6102 len: *mut usize,
6103 ...
6104 ) -> core::ffi::c_int;
6105}
6106unsafe extern "C" {
6107 pub fn vips_dzsave_target(
6108 in_: *mut VipsImage,
6109 target: *mut VipsTarget,
6110 ...
6111 ) -> core::ffi::c_int;
6112}
6113#[repr(u32)]
6114#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6115pub enum VipsForeignHeifCompression {
6116 VIPS_FOREIGN_HEIF_COMPRESSION_HEVC = 1,
6117 VIPS_FOREIGN_HEIF_COMPRESSION_AVC = 2,
6118 VIPS_FOREIGN_HEIF_COMPRESSION_JPEG = 3,
6119 VIPS_FOREIGN_HEIF_COMPRESSION_AV1 = 4,
6120 VIPS_FOREIGN_HEIF_COMPRESSION_LAST = 5,
6121}
6122#[repr(u32)]
6123#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6124pub enum VipsForeignHeifEncoder {
6125 VIPS_FOREIGN_HEIF_ENCODER_AUTO = 0,
6126 VIPS_FOREIGN_HEIF_ENCODER_AOM = 1,
6127 VIPS_FOREIGN_HEIF_ENCODER_RAV1E = 2,
6128 VIPS_FOREIGN_HEIF_ENCODER_SVT = 3,
6129 VIPS_FOREIGN_HEIF_ENCODER_X265 = 4,
6130 VIPS_FOREIGN_HEIF_ENCODER_LAST = 5,
6131}
6132#[repr(u32)]
6133#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6134pub enum VipsOperationMath {
6135 VIPS_OPERATION_MATH_SIN = 0,
6136 VIPS_OPERATION_MATH_COS = 1,
6137 VIPS_OPERATION_MATH_TAN = 2,
6138 VIPS_OPERATION_MATH_ASIN = 3,
6139 VIPS_OPERATION_MATH_ACOS = 4,
6140 VIPS_OPERATION_MATH_ATAN = 5,
6141 VIPS_OPERATION_MATH_LOG = 6,
6142 VIPS_OPERATION_MATH_LOG10 = 7,
6143 VIPS_OPERATION_MATH_EXP = 8,
6144 VIPS_OPERATION_MATH_EXP10 = 9,
6145 VIPS_OPERATION_MATH_SINH = 10,
6146 VIPS_OPERATION_MATH_COSH = 11,
6147 VIPS_OPERATION_MATH_TANH = 12,
6148 VIPS_OPERATION_MATH_ASINH = 13,
6149 VIPS_OPERATION_MATH_ACOSH = 14,
6150 VIPS_OPERATION_MATH_ATANH = 15,
6151 VIPS_OPERATION_MATH_LAST = 16,
6152}
6153#[repr(u32)]
6154#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6155pub enum VipsOperationMath2 {
6156 VIPS_OPERATION_MATH2_POW = 0,
6157 VIPS_OPERATION_MATH2_WOP = 1,
6158 VIPS_OPERATION_MATH2_ATAN2 = 2,
6159 VIPS_OPERATION_MATH2_LAST = 3,
6160}
6161#[repr(u32)]
6162#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6163pub enum VipsOperationRound {
6164 VIPS_OPERATION_ROUND_RINT = 0,
6165 VIPS_OPERATION_ROUND_CEIL = 1,
6166 VIPS_OPERATION_ROUND_FLOOR = 2,
6167 VIPS_OPERATION_ROUND_LAST = 3,
6168}
6169#[repr(u32)]
6170#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6171pub enum VipsOperationRelational {
6172 VIPS_OPERATION_RELATIONAL_EQUAL = 0,
6173 VIPS_OPERATION_RELATIONAL_NOTEQ = 1,
6174 VIPS_OPERATION_RELATIONAL_LESS = 2,
6175 VIPS_OPERATION_RELATIONAL_LESSEQ = 3,
6176 VIPS_OPERATION_RELATIONAL_MORE = 4,
6177 VIPS_OPERATION_RELATIONAL_MOREEQ = 5,
6178 VIPS_OPERATION_RELATIONAL_LAST = 6,
6179}
6180#[repr(u32)]
6181#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6182pub enum VipsOperationBoolean {
6183 VIPS_OPERATION_BOOLEAN_AND = 0,
6184 VIPS_OPERATION_BOOLEAN_OR = 1,
6185 VIPS_OPERATION_BOOLEAN_EOR = 2,
6186 VIPS_OPERATION_BOOLEAN_LSHIFT = 3,
6187 VIPS_OPERATION_BOOLEAN_RSHIFT = 4,
6188 VIPS_OPERATION_BOOLEAN_LAST = 5,
6189}
6190#[repr(u32)]
6191#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6192pub enum VipsOperationComplex {
6193 VIPS_OPERATION_COMPLEX_POLAR = 0,
6194 VIPS_OPERATION_COMPLEX_RECT = 1,
6195 VIPS_OPERATION_COMPLEX_CONJ = 2,
6196 VIPS_OPERATION_COMPLEX_LAST = 3,
6197}
6198#[repr(u32)]
6199#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6200pub enum VipsOperationComplex2 {
6201 VIPS_OPERATION_COMPLEX2_CROSS_PHASE = 0,
6202 VIPS_OPERATION_COMPLEX2_LAST = 1,
6203}
6204#[repr(u32)]
6205#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6206pub enum VipsOperationComplexget {
6207 VIPS_OPERATION_COMPLEXGET_REAL = 0,
6208 VIPS_OPERATION_COMPLEXGET_IMAG = 1,
6209 VIPS_OPERATION_COMPLEXGET_LAST = 2,
6210}
6211unsafe extern "C" {
6212 pub fn vips_add(
6213 left: *mut VipsImage,
6214 right: *mut VipsImage,
6215 out: *mut *mut VipsImage,
6216 ...
6217 ) -> core::ffi::c_int;
6218}
6219unsafe extern "C" {
6220 pub fn vips_sum(
6221 in_: *mut *mut VipsImage,
6222 out: *mut *mut VipsImage,
6223 n: core::ffi::c_int,
6224 ...
6225 ) -> core::ffi::c_int;
6226}
6227unsafe extern "C" {
6228 pub fn vips_subtract(
6229 in1: *mut VipsImage,
6230 in2: *mut VipsImage,
6231 out: *mut *mut VipsImage,
6232 ...
6233 ) -> core::ffi::c_int;
6234}
6235unsafe extern "C" {
6236 pub fn vips_multiply(
6237 left: *mut VipsImage,
6238 right: *mut VipsImage,
6239 out: *mut *mut VipsImage,
6240 ...
6241 ) -> core::ffi::c_int;
6242}
6243unsafe extern "C" {
6244 pub fn vips_divide(
6245 left: *mut VipsImage,
6246 right: *mut VipsImage,
6247 out: *mut *mut VipsImage,
6248 ...
6249 ) -> core::ffi::c_int;
6250}
6251unsafe extern "C" {
6252 pub fn vips_linear(
6253 in_: *mut VipsImage,
6254 out: *mut *mut VipsImage,
6255 a: *const f64,
6256 b: *const f64,
6257 n: core::ffi::c_int,
6258 ...
6259 ) -> core::ffi::c_int;
6260}
6261unsafe extern "C" {
6262 pub fn vips_linear1(
6263 in_: *mut VipsImage,
6264 out: *mut *mut VipsImage,
6265 a: f64,
6266 b: f64,
6267 ...
6268 ) -> core::ffi::c_int;
6269}
6270unsafe extern "C" {
6271 pub fn vips_remainder(
6272 left: *mut VipsImage,
6273 right: *mut VipsImage,
6274 out: *mut *mut VipsImage,
6275 ...
6276 ) -> core::ffi::c_int;
6277}
6278unsafe extern "C" {
6279 pub fn vips_remainder_const(
6280 in_: *mut VipsImage,
6281 out: *mut *mut VipsImage,
6282 c: *const f64,
6283 n: core::ffi::c_int,
6284 ...
6285 ) -> core::ffi::c_int;
6286}
6287unsafe extern "C" {
6288 pub fn vips_remainder_const1(
6289 in_: *mut VipsImage,
6290 out: *mut *mut VipsImage,
6291 c: f64,
6292 ...
6293 ) -> core::ffi::c_int;
6294}
6295unsafe extern "C" {
6296 pub fn vips_invert(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6297}
6298unsafe extern "C" {
6299 pub fn vips_abs(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6300}
6301unsafe extern "C" {
6302 pub fn vips_sign(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6303}
6304unsafe extern "C" {
6305 pub fn vips_clamp(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6306}
6307unsafe extern "C" {
6308 pub fn vips_maxpair(
6309 left: *mut VipsImage,
6310 right: *mut VipsImage,
6311 out: *mut *mut VipsImage,
6312 ...
6313 ) -> core::ffi::c_int;
6314}
6315unsafe extern "C" {
6316 pub fn vips_minpair(
6317 left: *mut VipsImage,
6318 right: *mut VipsImage,
6319 out: *mut *mut VipsImage,
6320 ...
6321 ) -> core::ffi::c_int;
6322}
6323unsafe extern "C" {
6324 pub fn vips_round(
6325 in_: *mut VipsImage,
6326 out: *mut *mut VipsImage,
6327 round: VipsOperationRound,
6328 ...
6329 ) -> core::ffi::c_int;
6330}
6331unsafe extern "C" {
6332 pub fn vips_floor(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6333}
6334unsafe extern "C" {
6335 pub fn vips_ceil(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6336}
6337unsafe extern "C" {
6338 pub fn vips_rint(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6339}
6340unsafe extern "C" {
6341 pub fn vips_math(
6342 in_: *mut VipsImage,
6343 out: *mut *mut VipsImage,
6344 math: VipsOperationMath,
6345 ...
6346 ) -> core::ffi::c_int;
6347}
6348unsafe extern "C" {
6349 pub fn vips_sin(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6350}
6351unsafe extern "C" {
6352 pub fn vips_cos(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6353}
6354unsafe extern "C" {
6355 pub fn vips_tan(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6356}
6357unsafe extern "C" {
6358 pub fn vips_asin(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6359}
6360unsafe extern "C" {
6361 pub fn vips_acos(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6362}
6363unsafe extern "C" {
6364 pub fn vips_atan(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6365}
6366unsafe extern "C" {
6367 pub fn vips_exp(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6368}
6369unsafe extern "C" {
6370 pub fn vips_exp10(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6371}
6372unsafe extern "C" {
6373 pub fn vips_log(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6374}
6375unsafe extern "C" {
6376 pub fn vips_log10(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6377}
6378unsafe extern "C" {
6379 pub fn vips_sinh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6380}
6381unsafe extern "C" {
6382 pub fn vips_cosh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6383}
6384unsafe extern "C" {
6385 pub fn vips_tanh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6386}
6387unsafe extern "C" {
6388 pub fn vips_asinh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6389}
6390unsafe extern "C" {
6391 pub fn vips_acosh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6392}
6393unsafe extern "C" {
6394 pub fn vips_atanh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6395}
6396unsafe extern "C" {
6397 pub fn vips_complex(
6398 in_: *mut VipsImage,
6399 out: *mut *mut VipsImage,
6400 cmplx: VipsOperationComplex,
6401 ...
6402 ) -> core::ffi::c_int;
6403}
6404unsafe extern "C" {
6405 pub fn vips_polar(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6406}
6407unsafe extern "C" {
6408 pub fn vips_rect(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6409}
6410unsafe extern "C" {
6411 pub fn vips_conj(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6412}
6413unsafe extern "C" {
6414 pub fn vips_complex2(
6415 left: *mut VipsImage,
6416 right: *mut VipsImage,
6417 out: *mut *mut VipsImage,
6418 cmplx: VipsOperationComplex2,
6419 ...
6420 ) -> core::ffi::c_int;
6421}
6422unsafe extern "C" {
6423 pub fn vips_cross_phase(
6424 left: *mut VipsImage,
6425 right: *mut VipsImage,
6426 out: *mut *mut VipsImage,
6427 ...
6428 ) -> core::ffi::c_int;
6429}
6430unsafe extern "C" {
6431 pub fn vips_complexget(
6432 in_: *mut VipsImage,
6433 out: *mut *mut VipsImage,
6434 get: VipsOperationComplexget,
6435 ...
6436 ) -> core::ffi::c_int;
6437}
6438unsafe extern "C" {
6439 pub fn vips_real(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6440}
6441unsafe extern "C" {
6442 pub fn vips_imag(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6443}
6444unsafe extern "C" {
6445 pub fn vips_complexform(
6446 left: *mut VipsImage,
6447 right: *mut VipsImage,
6448 out: *mut *mut VipsImage,
6449 ...
6450 ) -> core::ffi::c_int;
6451}
6452unsafe extern "C" {
6453 pub fn vips_relational(
6454 left: *mut VipsImage,
6455 right: *mut VipsImage,
6456 out: *mut *mut VipsImage,
6457 relational: VipsOperationRelational,
6458 ...
6459 ) -> core::ffi::c_int;
6460}
6461unsafe extern "C" {
6462 pub fn vips_equal(
6463 left: *mut VipsImage,
6464 right: *mut VipsImage,
6465 out: *mut *mut VipsImage,
6466 ...
6467 ) -> core::ffi::c_int;
6468}
6469unsafe extern "C" {
6470 pub fn vips_notequal(
6471 left: *mut VipsImage,
6472 right: *mut VipsImage,
6473 out: *mut *mut VipsImage,
6474 ...
6475 ) -> core::ffi::c_int;
6476}
6477unsafe extern "C" {
6478 pub fn vips_less(
6479 left: *mut VipsImage,
6480 right: *mut VipsImage,
6481 out: *mut *mut VipsImage,
6482 ...
6483 ) -> core::ffi::c_int;
6484}
6485unsafe extern "C" {
6486 pub fn vips_lesseq(
6487 left: *mut VipsImage,
6488 right: *mut VipsImage,
6489 out: *mut *mut VipsImage,
6490 ...
6491 ) -> core::ffi::c_int;
6492}
6493unsafe extern "C" {
6494 pub fn vips_more(
6495 left: *mut VipsImage,
6496 right: *mut VipsImage,
6497 out: *mut *mut VipsImage,
6498 ...
6499 ) -> core::ffi::c_int;
6500}
6501unsafe extern "C" {
6502 pub fn vips_moreeq(
6503 left: *mut VipsImage,
6504 right: *mut VipsImage,
6505 out: *mut *mut VipsImage,
6506 ...
6507 ) -> core::ffi::c_int;
6508}
6509unsafe extern "C" {
6510 pub fn vips_relational_const(
6511 in_: *mut VipsImage,
6512 out: *mut *mut VipsImage,
6513 relational: VipsOperationRelational,
6514 c: *const f64,
6515 n: core::ffi::c_int,
6516 ...
6517 ) -> core::ffi::c_int;
6518}
6519unsafe extern "C" {
6520 pub fn vips_equal_const(
6521 in_: *mut VipsImage,
6522 out: *mut *mut VipsImage,
6523 c: *const f64,
6524 n: core::ffi::c_int,
6525 ...
6526 ) -> core::ffi::c_int;
6527}
6528unsafe extern "C" {
6529 pub fn vips_notequal_const(
6530 in_: *mut VipsImage,
6531 out: *mut *mut VipsImage,
6532 c: *const f64,
6533 n: core::ffi::c_int,
6534 ...
6535 ) -> core::ffi::c_int;
6536}
6537unsafe extern "C" {
6538 pub fn vips_less_const(
6539 in_: *mut VipsImage,
6540 out: *mut *mut VipsImage,
6541 c: *const f64,
6542 n: core::ffi::c_int,
6543 ...
6544 ) -> core::ffi::c_int;
6545}
6546unsafe extern "C" {
6547 pub fn vips_lesseq_const(
6548 in_: *mut VipsImage,
6549 out: *mut *mut VipsImage,
6550 c: *const f64,
6551 n: core::ffi::c_int,
6552 ...
6553 ) -> core::ffi::c_int;
6554}
6555unsafe extern "C" {
6556 pub fn vips_more_const(
6557 in_: *mut VipsImage,
6558 out: *mut *mut VipsImage,
6559 c: *const f64,
6560 n: core::ffi::c_int,
6561 ...
6562 ) -> core::ffi::c_int;
6563}
6564unsafe extern "C" {
6565 pub fn vips_moreeq_const(
6566 in_: *mut VipsImage,
6567 out: *mut *mut VipsImage,
6568 c: *const f64,
6569 n: core::ffi::c_int,
6570 ...
6571 ) -> core::ffi::c_int;
6572}
6573unsafe extern "C" {
6574 pub fn vips_relational_const1(
6575 in_: *mut VipsImage,
6576 out: *mut *mut VipsImage,
6577 relational: VipsOperationRelational,
6578 c: f64,
6579 ...
6580 ) -> core::ffi::c_int;
6581}
6582unsafe extern "C" {
6583 pub fn vips_equal_const1(
6584 in_: *mut VipsImage,
6585 out: *mut *mut VipsImage,
6586 c: f64,
6587 ...
6588 ) -> core::ffi::c_int;
6589}
6590unsafe extern "C" {
6591 pub fn vips_notequal_const1(
6592 in_: *mut VipsImage,
6593 out: *mut *mut VipsImage,
6594 c: f64,
6595 ...
6596 ) -> core::ffi::c_int;
6597}
6598unsafe extern "C" {
6599 pub fn vips_less_const1(
6600 in_: *mut VipsImage,
6601 out: *mut *mut VipsImage,
6602 c: f64,
6603 ...
6604 ) -> core::ffi::c_int;
6605}
6606unsafe extern "C" {
6607 pub fn vips_lesseq_const1(
6608 in_: *mut VipsImage,
6609 out: *mut *mut VipsImage,
6610 c: f64,
6611 ...
6612 ) -> core::ffi::c_int;
6613}
6614unsafe extern "C" {
6615 pub fn vips_more_const1(
6616 in_: *mut VipsImage,
6617 out: *mut *mut VipsImage,
6618 c: f64,
6619 ...
6620 ) -> core::ffi::c_int;
6621}
6622unsafe extern "C" {
6623 pub fn vips_moreeq_const1(
6624 in_: *mut VipsImage,
6625 out: *mut *mut VipsImage,
6626 c: f64,
6627 ...
6628 ) -> core::ffi::c_int;
6629}
6630unsafe extern "C" {
6631 pub fn vips_boolean(
6632 left: *mut VipsImage,
6633 right: *mut VipsImage,
6634 out: *mut *mut VipsImage,
6635 boolean: VipsOperationBoolean,
6636 ...
6637 ) -> core::ffi::c_int;
6638}
6639unsafe extern "C" {
6640 pub fn vips_andimage(
6641 left: *mut VipsImage,
6642 right: *mut VipsImage,
6643 out: *mut *mut VipsImage,
6644 ...
6645 ) -> core::ffi::c_int;
6646}
6647unsafe extern "C" {
6648 pub fn vips_orimage(
6649 left: *mut VipsImage,
6650 right: *mut VipsImage,
6651 out: *mut *mut VipsImage,
6652 ...
6653 ) -> core::ffi::c_int;
6654}
6655unsafe extern "C" {
6656 pub fn vips_eorimage(
6657 left: *mut VipsImage,
6658 right: *mut VipsImage,
6659 out: *mut *mut VipsImage,
6660 ...
6661 ) -> core::ffi::c_int;
6662}
6663unsafe extern "C" {
6664 pub fn vips_lshift(
6665 left: *mut VipsImage,
6666 right: *mut VipsImage,
6667 out: *mut *mut VipsImage,
6668 ...
6669 ) -> core::ffi::c_int;
6670}
6671unsafe extern "C" {
6672 pub fn vips_rshift(
6673 left: *mut VipsImage,
6674 right: *mut VipsImage,
6675 out: *mut *mut VipsImage,
6676 ...
6677 ) -> core::ffi::c_int;
6678}
6679unsafe extern "C" {
6680 pub fn vips_boolean_const(
6681 in_: *mut VipsImage,
6682 out: *mut *mut VipsImage,
6683 boolean: VipsOperationBoolean,
6684 c: *const f64,
6685 n: core::ffi::c_int,
6686 ...
6687 ) -> core::ffi::c_int;
6688}
6689unsafe extern "C" {
6690 pub fn vips_andimage_const(
6691 in_: *mut VipsImage,
6692 out: *mut *mut VipsImage,
6693 c: *const f64,
6694 n: core::ffi::c_int,
6695 ...
6696 ) -> core::ffi::c_int;
6697}
6698unsafe extern "C" {
6699 pub fn vips_orimage_const(
6700 in_: *mut VipsImage,
6701 out: *mut *mut VipsImage,
6702 c: *const f64,
6703 n: core::ffi::c_int,
6704 ...
6705 ) -> core::ffi::c_int;
6706}
6707unsafe extern "C" {
6708 pub fn vips_eorimage_const(
6709 in_: *mut VipsImage,
6710 out: *mut *mut VipsImage,
6711 c: *const f64,
6712 n: core::ffi::c_int,
6713 ...
6714 ) -> core::ffi::c_int;
6715}
6716unsafe extern "C" {
6717 pub fn vips_lshift_const(
6718 in_: *mut VipsImage,
6719 out: *mut *mut VipsImage,
6720 c: *const f64,
6721 n: core::ffi::c_int,
6722 ...
6723 ) -> core::ffi::c_int;
6724}
6725unsafe extern "C" {
6726 pub fn vips_rshift_const(
6727 in_: *mut VipsImage,
6728 out: *mut *mut VipsImage,
6729 c: *const f64,
6730 n: core::ffi::c_int,
6731 ...
6732 ) -> core::ffi::c_int;
6733}
6734unsafe extern "C" {
6735 pub fn vips_boolean_const1(
6736 in_: *mut VipsImage,
6737 out: *mut *mut VipsImage,
6738 boolean: VipsOperationBoolean,
6739 c: f64,
6740 ...
6741 ) -> core::ffi::c_int;
6742}
6743unsafe extern "C" {
6744 pub fn vips_andimage_const1(
6745 in_: *mut VipsImage,
6746 out: *mut *mut VipsImage,
6747 c: f64,
6748 ...
6749 ) -> core::ffi::c_int;
6750}
6751unsafe extern "C" {
6752 pub fn vips_orimage_const1(
6753 in_: *mut VipsImage,
6754 out: *mut *mut VipsImage,
6755 c: f64,
6756 ...
6757 ) -> core::ffi::c_int;
6758}
6759unsafe extern "C" {
6760 pub fn vips_eorimage_const1(
6761 in_: *mut VipsImage,
6762 out: *mut *mut VipsImage,
6763 c: f64,
6764 ...
6765 ) -> core::ffi::c_int;
6766}
6767unsafe extern "C" {
6768 pub fn vips_lshift_const1(
6769 in_: *mut VipsImage,
6770 out: *mut *mut VipsImage,
6771 c: f64,
6772 ...
6773 ) -> core::ffi::c_int;
6774}
6775unsafe extern "C" {
6776 pub fn vips_rshift_const1(
6777 in_: *mut VipsImage,
6778 out: *mut *mut VipsImage,
6779 c: f64,
6780 ...
6781 ) -> core::ffi::c_int;
6782}
6783unsafe extern "C" {
6784 pub fn vips_math2(
6785 left: *mut VipsImage,
6786 right: *mut VipsImage,
6787 out: *mut *mut VipsImage,
6788 math2: VipsOperationMath2,
6789 ...
6790 ) -> core::ffi::c_int;
6791}
6792unsafe extern "C" {
6793 pub fn vips_pow(
6794 left: *mut VipsImage,
6795 right: *mut VipsImage,
6796 out: *mut *mut VipsImage,
6797 ...
6798 ) -> core::ffi::c_int;
6799}
6800unsafe extern "C" {
6801 pub fn vips_wop(
6802 left: *mut VipsImage,
6803 right: *mut VipsImage,
6804 out: *mut *mut VipsImage,
6805 ...
6806 ) -> core::ffi::c_int;
6807}
6808unsafe extern "C" {
6809 pub fn vips_atan2(
6810 left: *mut VipsImage,
6811 right: *mut VipsImage,
6812 out: *mut *mut VipsImage,
6813 ...
6814 ) -> core::ffi::c_int;
6815}
6816unsafe extern "C" {
6817 pub fn vips_math2_const(
6818 in_: *mut VipsImage,
6819 out: *mut *mut VipsImage,
6820 math2: VipsOperationMath2,
6821 c: *const f64,
6822 n: core::ffi::c_int,
6823 ...
6824 ) -> core::ffi::c_int;
6825}
6826unsafe extern "C" {
6827 pub fn vips_pow_const(
6828 in_: *mut VipsImage,
6829 out: *mut *mut VipsImage,
6830 c: *const f64,
6831 n: core::ffi::c_int,
6832 ...
6833 ) -> core::ffi::c_int;
6834}
6835unsafe extern "C" {
6836 pub fn vips_wop_const(
6837 in_: *mut VipsImage,
6838 out: *mut *mut VipsImage,
6839 c: *const f64,
6840 n: core::ffi::c_int,
6841 ...
6842 ) -> core::ffi::c_int;
6843}
6844unsafe extern "C" {
6845 pub fn vips_atan2_const(
6846 in_: *mut VipsImage,
6847 out: *mut *mut VipsImage,
6848 c: *const f64,
6849 n: core::ffi::c_int,
6850 ...
6851 ) -> core::ffi::c_int;
6852}
6853unsafe extern "C" {
6854 pub fn vips_math2_const1(
6855 in_: *mut VipsImage,
6856 out: *mut *mut VipsImage,
6857 math2: VipsOperationMath2,
6858 c: f64,
6859 ...
6860 ) -> core::ffi::c_int;
6861}
6862unsafe extern "C" {
6863 pub fn vips_pow_const1(
6864 in_: *mut VipsImage,
6865 out: *mut *mut VipsImage,
6866 c: f64,
6867 ...
6868 ) -> core::ffi::c_int;
6869}
6870unsafe extern "C" {
6871 pub fn vips_wop_const1(
6872 in_: *mut VipsImage,
6873 out: *mut *mut VipsImage,
6874 c: f64,
6875 ...
6876 ) -> core::ffi::c_int;
6877}
6878unsafe extern "C" {
6879 pub fn vips_atan2_const1(
6880 in_: *mut VipsImage,
6881 out: *mut *mut VipsImage,
6882 c: f64,
6883 ...
6884 ) -> core::ffi::c_int;
6885}
6886unsafe extern "C" {
6887 pub fn vips_avg(in_: *mut VipsImage, out: *mut f64, ...) -> core::ffi::c_int;
6888}
6889unsafe extern "C" {
6890 pub fn vips_deviate(in_: *mut VipsImage, out: *mut f64, ...) -> core::ffi::c_int;
6891}
6892unsafe extern "C" {
6893 pub fn vips_min(in_: *mut VipsImage, out: *mut f64, ...) -> core::ffi::c_int;
6894}
6895unsafe extern "C" {
6896 pub fn vips_max(in_: *mut VipsImage, out: *mut f64, ...) -> core::ffi::c_int;
6897}
6898unsafe extern "C" {
6899 pub fn vips_stats(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6900}
6901unsafe extern "C" {
6902 pub fn vips_measure(
6903 in_: *mut VipsImage,
6904 out: *mut *mut VipsImage,
6905 h: core::ffi::c_int,
6906 v: core::ffi::c_int,
6907 ...
6908 ) -> core::ffi::c_int;
6909}
6910unsafe extern "C" {
6911 pub fn vips_find_trim(
6912 in_: *mut VipsImage,
6913 left: *mut core::ffi::c_int,
6914 top: *mut core::ffi::c_int,
6915 width: *mut core::ffi::c_int,
6916 height: *mut core::ffi::c_int,
6917 ...
6918 ) -> core::ffi::c_int;
6919}
6920unsafe extern "C" {
6921 pub fn vips_getpoint(
6922 in_: *mut VipsImage,
6923 vector: *mut *mut f64,
6924 n: *mut core::ffi::c_int,
6925 x: core::ffi::c_int,
6926 y: core::ffi::c_int,
6927 ...
6928 ) -> core::ffi::c_int;
6929}
6930unsafe extern "C" {
6931 pub fn vips_hist_find(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6932}
6933unsafe extern "C" {
6934 pub fn vips_hist_find_ndim(
6935 in_: *mut VipsImage,
6936 out: *mut *mut VipsImage,
6937 ...
6938 ) -> core::ffi::c_int;
6939}
6940unsafe extern "C" {
6941 pub fn vips_hist_find_indexed(
6942 in_: *mut VipsImage,
6943 index: *mut VipsImage,
6944 out: *mut *mut VipsImage,
6945 ...
6946 ) -> core::ffi::c_int;
6947}
6948unsafe extern "C" {
6949 pub fn vips_hough_line(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
6950}
6951unsafe extern "C" {
6952 pub fn vips_hough_circle(
6953 in_: *mut VipsImage,
6954 out: *mut *mut VipsImage,
6955 ...
6956 ) -> core::ffi::c_int;
6957}
6958unsafe extern "C" {
6959 pub fn vips_project(
6960 in_: *mut VipsImage,
6961 columns: *mut *mut VipsImage,
6962 rows: *mut *mut VipsImage,
6963 ...
6964 ) -> core::ffi::c_int;
6965}
6966unsafe extern "C" {
6967 pub fn vips_profile(
6968 in_: *mut VipsImage,
6969 columns: *mut *mut VipsImage,
6970 rows: *mut *mut VipsImage,
6971 ...
6972 ) -> core::ffi::c_int;
6973}
6974#[repr(u32)]
6975#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6976pub enum VipsExtend {
6977 VIPS_EXTEND_BLACK = 0,
6978 VIPS_EXTEND_COPY = 1,
6979 VIPS_EXTEND_REPEAT = 2,
6980 VIPS_EXTEND_MIRROR = 3,
6981 VIPS_EXTEND_WHITE = 4,
6982 VIPS_EXTEND_BACKGROUND = 5,
6983 VIPS_EXTEND_LAST = 6,
6984}
6985#[repr(u32)]
6986#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
6987pub enum VipsCompassDirection {
6988 VIPS_COMPASS_DIRECTION_CENTRE = 0,
6989 VIPS_COMPASS_DIRECTION_NORTH = 1,
6990 VIPS_COMPASS_DIRECTION_EAST = 2,
6991 VIPS_COMPASS_DIRECTION_SOUTH = 3,
6992 VIPS_COMPASS_DIRECTION_WEST = 4,
6993 VIPS_COMPASS_DIRECTION_NORTH_EAST = 5,
6994 VIPS_COMPASS_DIRECTION_SOUTH_EAST = 6,
6995 VIPS_COMPASS_DIRECTION_SOUTH_WEST = 7,
6996 VIPS_COMPASS_DIRECTION_NORTH_WEST = 8,
6997 VIPS_COMPASS_DIRECTION_LAST = 9,
6998}
6999#[repr(u32)]
7000#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7001pub enum VipsDirection {
7002 VIPS_DIRECTION_HORIZONTAL = 0,
7003 VIPS_DIRECTION_VERTICAL = 1,
7004 VIPS_DIRECTION_LAST = 2,
7005}
7006#[repr(u32)]
7007#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7008pub enum VipsAlign {
7009 VIPS_ALIGN_LOW = 0,
7010 VIPS_ALIGN_CENTRE = 1,
7011 VIPS_ALIGN_HIGH = 2,
7012 VIPS_ALIGN_LAST = 3,
7013}
7014#[repr(u32)]
7015#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7016pub enum VipsAngle {
7017 VIPS_ANGLE_D0 = 0,
7018 VIPS_ANGLE_D90 = 1,
7019 VIPS_ANGLE_D180 = 2,
7020 VIPS_ANGLE_D270 = 3,
7021 VIPS_ANGLE_LAST = 4,
7022}
7023#[repr(u32)]
7024#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7025pub enum VipsAngle45 {
7026 VIPS_ANGLE45_D0 = 0,
7027 VIPS_ANGLE45_D45 = 1,
7028 VIPS_ANGLE45_D90 = 2,
7029 VIPS_ANGLE45_D135 = 3,
7030 VIPS_ANGLE45_D180 = 4,
7031 VIPS_ANGLE45_D225 = 5,
7032 VIPS_ANGLE45_D270 = 6,
7033 VIPS_ANGLE45_D315 = 7,
7034 VIPS_ANGLE45_LAST = 8,
7035}
7036#[repr(u32)]
7037#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7038pub enum VipsInteresting {
7039 VIPS_INTERESTING_NONE = 0,
7040 VIPS_INTERESTING_CENTRE = 1,
7041 VIPS_INTERESTING_ENTROPY = 2,
7042 VIPS_INTERESTING_ATTENTION = 3,
7043 VIPS_INTERESTING_LOW = 4,
7044 VIPS_INTERESTING_HIGH = 5,
7045 VIPS_INTERESTING_ALL = 6,
7046 VIPS_INTERESTING_LAST = 7,
7047}
7048#[repr(u32)]
7049#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7050pub enum VipsBlendMode {
7051 VIPS_BLEND_MODE_CLEAR = 0,
7052 VIPS_BLEND_MODE_SOURCE = 1,
7053 VIPS_BLEND_MODE_OVER = 2,
7054 VIPS_BLEND_MODE_IN = 3,
7055 VIPS_BLEND_MODE_OUT = 4,
7056 VIPS_BLEND_MODE_ATOP = 5,
7057 VIPS_BLEND_MODE_DEST = 6,
7058 VIPS_BLEND_MODE_DEST_OVER = 7,
7059 VIPS_BLEND_MODE_DEST_IN = 8,
7060 VIPS_BLEND_MODE_DEST_OUT = 9,
7061 VIPS_BLEND_MODE_DEST_ATOP = 10,
7062 VIPS_BLEND_MODE_XOR = 11,
7063 VIPS_BLEND_MODE_ADD = 12,
7064 VIPS_BLEND_MODE_SATURATE = 13,
7065 VIPS_BLEND_MODE_MULTIPLY = 14,
7066 VIPS_BLEND_MODE_SCREEN = 15,
7067 VIPS_BLEND_MODE_OVERLAY = 16,
7068 VIPS_BLEND_MODE_DARKEN = 17,
7069 VIPS_BLEND_MODE_LIGHTEN = 18,
7070 VIPS_BLEND_MODE_COLOUR_DODGE = 19,
7071 VIPS_BLEND_MODE_COLOUR_BURN = 20,
7072 VIPS_BLEND_MODE_HARD_LIGHT = 21,
7073 VIPS_BLEND_MODE_SOFT_LIGHT = 22,
7074 VIPS_BLEND_MODE_DIFFERENCE = 23,
7075 VIPS_BLEND_MODE_EXCLUSION = 24,
7076 VIPS_BLEND_MODE_LAST = 25,
7077}
7078unsafe extern "C" {
7079 pub fn vips_copy(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7080}
7081unsafe extern "C" {
7082 pub fn vips_tilecache(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7083}
7084unsafe extern "C" {
7085 pub fn vips_linecache(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7086}
7087unsafe extern "C" {
7088 pub fn vips_sequential(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7089}
7090unsafe extern "C" {
7091 pub fn vips_copy_file(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7092}
7093unsafe extern "C" {
7094 pub fn vips_embed(
7095 in_: *mut VipsImage,
7096 out: *mut *mut VipsImage,
7097 x: core::ffi::c_int,
7098 y: core::ffi::c_int,
7099 width: core::ffi::c_int,
7100 height: core::ffi::c_int,
7101 ...
7102 ) -> core::ffi::c_int;
7103}
7104unsafe extern "C" {
7105 pub fn vips_gravity(
7106 in_: *mut VipsImage,
7107 out: *mut *mut VipsImage,
7108 direction: VipsCompassDirection,
7109 width: core::ffi::c_int,
7110 height: core::ffi::c_int,
7111 ...
7112 ) -> core::ffi::c_int;
7113}
7114unsafe extern "C" {
7115 pub fn vips_flip(
7116 in_: *mut VipsImage,
7117 out: *mut *mut VipsImage,
7118 direction: VipsDirection,
7119 ...
7120 ) -> core::ffi::c_int;
7121}
7122unsafe extern "C" {
7123 pub fn vips_insert(
7124 main: *mut VipsImage,
7125 sub: *mut VipsImage,
7126 out: *mut *mut VipsImage,
7127 x: core::ffi::c_int,
7128 y: core::ffi::c_int,
7129 ...
7130 ) -> core::ffi::c_int;
7131}
7132unsafe extern "C" {
7133 pub fn vips_join(
7134 in1: *mut VipsImage,
7135 in2: *mut VipsImage,
7136 out: *mut *mut VipsImage,
7137 direction: VipsDirection,
7138 ...
7139 ) -> core::ffi::c_int;
7140}
7141unsafe extern "C" {
7142 pub fn vips_arrayjoin(
7143 in_: *mut *mut VipsImage,
7144 out: *mut *mut VipsImage,
7145 n: core::ffi::c_int,
7146 ...
7147 ) -> core::ffi::c_int;
7148}
7149unsafe extern "C" {
7150 pub fn vips_extract_area(
7151 in_: *mut VipsImage,
7152 out: *mut *mut VipsImage,
7153 left: core::ffi::c_int,
7154 top: core::ffi::c_int,
7155 width: core::ffi::c_int,
7156 height: core::ffi::c_int,
7157 ...
7158 ) -> core::ffi::c_int;
7159}
7160unsafe extern "C" {
7161 pub fn vips_crop(
7162 in_: *mut VipsImage,
7163 out: *mut *mut VipsImage,
7164 left: core::ffi::c_int,
7165 top: core::ffi::c_int,
7166 width: core::ffi::c_int,
7167 height: core::ffi::c_int,
7168 ...
7169 ) -> core::ffi::c_int;
7170}
7171unsafe extern "C" {
7172 pub fn vips_smartcrop(
7173 in_: *mut VipsImage,
7174 out: *mut *mut VipsImage,
7175 width: core::ffi::c_int,
7176 height: core::ffi::c_int,
7177 ...
7178 ) -> core::ffi::c_int;
7179}
7180unsafe extern "C" {
7181 pub fn vips_extract_band(
7182 in_: *mut VipsImage,
7183 out: *mut *mut VipsImage,
7184 band: core::ffi::c_int,
7185 ...
7186 ) -> core::ffi::c_int;
7187}
7188unsafe extern "C" {
7189 pub fn vips_replicate(
7190 in_: *mut VipsImage,
7191 out: *mut *mut VipsImage,
7192 across: core::ffi::c_int,
7193 down: core::ffi::c_int,
7194 ...
7195 ) -> core::ffi::c_int;
7196}
7197unsafe extern "C" {
7198 pub fn vips_grid(
7199 in_: *mut VipsImage,
7200 out: *mut *mut VipsImage,
7201 tile_height: core::ffi::c_int,
7202 across: core::ffi::c_int,
7203 down: core::ffi::c_int,
7204 ...
7205 ) -> core::ffi::c_int;
7206}
7207unsafe extern "C" {
7208 pub fn vips_transpose3d(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
7209 -> core::ffi::c_int;
7210}
7211unsafe extern "C" {
7212 pub fn vips_wrap(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7213}
7214unsafe extern "C" {
7215 pub fn vips_rot(
7216 in_: *mut VipsImage,
7217 out: *mut *mut VipsImage,
7218 angle: VipsAngle,
7219 ...
7220 ) -> core::ffi::c_int;
7221}
7222unsafe extern "C" {
7223 pub fn vips_rot90(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7224}
7225unsafe extern "C" {
7226 pub fn vips_rot180(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7227}
7228unsafe extern "C" {
7229 pub fn vips_rot270(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7230}
7231unsafe extern "C" {
7232 pub fn vips_rot45(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7233}
7234unsafe extern "C" {
7235 pub fn vips_autorot_remove_angle(image: *mut VipsImage);
7236}
7237unsafe extern "C" {
7238 pub fn vips_autorot(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7239}
7240unsafe extern "C" {
7241 pub fn vips_zoom(
7242 in_: *mut VipsImage,
7243 out: *mut *mut VipsImage,
7244 xfac: core::ffi::c_int,
7245 yfac: core::ffi::c_int,
7246 ...
7247 ) -> core::ffi::c_int;
7248}
7249unsafe extern "C" {
7250 pub fn vips_subsample(
7251 in_: *mut VipsImage,
7252 out: *mut *mut VipsImage,
7253 xfac: core::ffi::c_int,
7254 yfac: core::ffi::c_int,
7255 ...
7256 ) -> core::ffi::c_int;
7257}
7258unsafe extern "C" {
7259 pub fn vips_cast(
7260 in_: *mut VipsImage,
7261 out: *mut *mut VipsImage,
7262 format: VipsBandFormat,
7263 ...
7264 ) -> core::ffi::c_int;
7265}
7266unsafe extern "C" {
7267 pub fn vips_cast_uchar(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7268}
7269unsafe extern "C" {
7270 pub fn vips_cast_char(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7271}
7272unsafe extern "C" {
7273 pub fn vips_cast_ushort(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
7274 -> core::ffi::c_int;
7275}
7276unsafe extern "C" {
7277 pub fn vips_cast_short(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7278}
7279unsafe extern "C" {
7280 pub fn vips_cast_uint(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7281}
7282unsafe extern "C" {
7283 pub fn vips_cast_int(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7284}
7285unsafe extern "C" {
7286 pub fn vips_cast_float(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7287}
7288unsafe extern "C" {
7289 pub fn vips_cast_double(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
7290 -> core::ffi::c_int;
7291}
7292unsafe extern "C" {
7293 pub fn vips_cast_complex(
7294 in_: *mut VipsImage,
7295 out: *mut *mut VipsImage,
7296 ...
7297 ) -> core::ffi::c_int;
7298}
7299unsafe extern "C" {
7300 pub fn vips_cast_dpcomplex(
7301 in_: *mut VipsImage,
7302 out: *mut *mut VipsImage,
7303 ...
7304 ) -> core::ffi::c_int;
7305}
7306unsafe extern "C" {
7307 pub fn vips_scale(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7308}
7309unsafe extern "C" {
7310 pub fn vips_msb(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7311}
7312unsafe extern "C" {
7313 pub fn vips_byteswap(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7314}
7315unsafe extern "C" {
7316 pub fn vips_bandjoin(
7317 in_: *mut *mut VipsImage,
7318 out: *mut *mut VipsImage,
7319 n: core::ffi::c_int,
7320 ...
7321 ) -> core::ffi::c_int;
7322}
7323unsafe extern "C" {
7324 pub fn vips_bandjoin2(
7325 in1: *mut VipsImage,
7326 in2: *mut VipsImage,
7327 out: *mut *mut VipsImage,
7328 ...
7329 ) -> core::ffi::c_int;
7330}
7331unsafe extern "C" {
7332 pub fn vips_bandjoin_const(
7333 in_: *mut VipsImage,
7334 out: *mut *mut VipsImage,
7335 c: *mut f64,
7336 n: core::ffi::c_int,
7337 ...
7338 ) -> core::ffi::c_int;
7339}
7340unsafe extern "C" {
7341 pub fn vips_bandjoin_const1(
7342 in_: *mut VipsImage,
7343 out: *mut *mut VipsImage,
7344 c: f64,
7345 ...
7346 ) -> core::ffi::c_int;
7347}
7348unsafe extern "C" {
7349 pub fn vips_bandrank(
7350 in_: *mut *mut VipsImage,
7351 out: *mut *mut VipsImage,
7352 n: core::ffi::c_int,
7353 ...
7354 ) -> core::ffi::c_int;
7355}
7356unsafe extern "C" {
7357 pub fn vips_bandfold(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7358}
7359unsafe extern "C" {
7360 pub fn vips_bandunfold(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7361}
7362unsafe extern "C" {
7363 pub fn vips_bandbool(
7364 in_: *mut VipsImage,
7365 out: *mut *mut VipsImage,
7366 boolean: VipsOperationBoolean,
7367 ...
7368 ) -> core::ffi::c_int;
7369}
7370unsafe extern "C" {
7371 pub fn vips_bandand(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7372}
7373unsafe extern "C" {
7374 pub fn vips_bandor(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7375}
7376unsafe extern "C" {
7377 pub fn vips_bandeor(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7378}
7379unsafe extern "C" {
7380 pub fn vips_bandmean(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7381}
7382unsafe extern "C" {
7383 pub fn vips_recomb(
7384 in_: *mut VipsImage,
7385 out: *mut *mut VipsImage,
7386 m: *mut VipsImage,
7387 ...
7388 ) -> core::ffi::c_int;
7389}
7390unsafe extern "C" {
7391 pub fn vips_ifthenelse(
7392 cond: *mut VipsImage,
7393 in1: *mut VipsImage,
7394 in2: *mut VipsImage,
7395 out: *mut *mut VipsImage,
7396 ...
7397 ) -> core::ffi::c_int;
7398}
7399unsafe extern "C" {
7400 pub fn vips_switch(
7401 tests: *mut *mut VipsImage,
7402 out: *mut *mut VipsImage,
7403 n: core::ffi::c_int,
7404 ...
7405 ) -> core::ffi::c_int;
7406}
7407unsafe extern "C" {
7408 pub fn vips_flatten(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7409}
7410unsafe extern "C" {
7411 pub fn vips_addalpha(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7412}
7413unsafe extern "C" {
7414 pub fn vips_premultiply(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
7415 -> core::ffi::c_int;
7416}
7417unsafe extern "C" {
7418 pub fn vips_unpremultiply(
7419 in_: *mut VipsImage,
7420 out: *mut *mut VipsImage,
7421 ...
7422 ) -> core::ffi::c_int;
7423}
7424unsafe extern "C" {
7425 pub fn vips_composite(
7426 in_: *mut *mut VipsImage,
7427 out: *mut *mut VipsImage,
7428 n: core::ffi::c_int,
7429 mode: *mut core::ffi::c_int,
7430 ...
7431 ) -> core::ffi::c_int;
7432}
7433unsafe extern "C" {
7434 pub fn vips_composite2(
7435 base: *mut VipsImage,
7436 overlay: *mut VipsImage,
7437 out: *mut *mut VipsImage,
7438 mode: VipsBlendMode,
7439 ...
7440 ) -> core::ffi::c_int;
7441}
7442unsafe extern "C" {
7443 pub fn vips_falsecolour(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
7444 -> core::ffi::c_int;
7445}
7446unsafe extern "C" {
7447 pub fn vips_gamma(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7448}
7449#[repr(u32)]
7450#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7451pub enum VipsCombine {
7452 VIPS_COMBINE_MAX = 0,
7453 VIPS_COMBINE_SUM = 1,
7454 VIPS_COMBINE_MIN = 2,
7455 VIPS_COMBINE_LAST = 3,
7456}
7457unsafe extern "C" {
7458 pub fn vips_conv(
7459 in_: *mut VipsImage,
7460 out: *mut *mut VipsImage,
7461 mask: *mut VipsImage,
7462 ...
7463 ) -> core::ffi::c_int;
7464}
7465unsafe extern "C" {
7466 pub fn vips_convf(
7467 in_: *mut VipsImage,
7468 out: *mut *mut VipsImage,
7469 mask: *mut VipsImage,
7470 ...
7471 ) -> core::ffi::c_int;
7472}
7473unsafe extern "C" {
7474 pub fn vips_convi(
7475 in_: *mut VipsImage,
7476 out: *mut *mut VipsImage,
7477 mask: *mut VipsImage,
7478 ...
7479 ) -> core::ffi::c_int;
7480}
7481unsafe extern "C" {
7482 pub fn vips_conva(
7483 in_: *mut VipsImage,
7484 out: *mut *mut VipsImage,
7485 mask: *mut VipsImage,
7486 ...
7487 ) -> core::ffi::c_int;
7488}
7489unsafe extern "C" {
7490 pub fn vips_convsep(
7491 in_: *mut VipsImage,
7492 out: *mut *mut VipsImage,
7493 mask: *mut VipsImage,
7494 ...
7495 ) -> core::ffi::c_int;
7496}
7497unsafe extern "C" {
7498 pub fn vips_convasep(
7499 in_: *mut VipsImage,
7500 out: *mut *mut VipsImage,
7501 mask: *mut VipsImage,
7502 ...
7503 ) -> core::ffi::c_int;
7504}
7505unsafe extern "C" {
7506 pub fn vips_compass(
7507 in_: *mut VipsImage,
7508 out: *mut *mut VipsImage,
7509 mask: *mut VipsImage,
7510 ...
7511 ) -> core::ffi::c_int;
7512}
7513unsafe extern "C" {
7514 pub fn vips_gaussblur(
7515 in_: *mut VipsImage,
7516 out: *mut *mut VipsImage,
7517 sigma: f64,
7518 ...
7519 ) -> core::ffi::c_int;
7520}
7521unsafe extern "C" {
7522 pub fn vips_sharpen(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7523}
7524unsafe extern "C" {
7525 pub fn vips_spcor(
7526 in_: *mut VipsImage,
7527 ref_: *mut VipsImage,
7528 out: *mut *mut VipsImage,
7529 ...
7530 ) -> core::ffi::c_int;
7531}
7532unsafe extern "C" {
7533 pub fn vips_fastcor(
7534 in_: *mut VipsImage,
7535 ref_: *mut VipsImage,
7536 out: *mut *mut VipsImage,
7537 ...
7538 ) -> core::ffi::c_int;
7539}
7540unsafe extern "C" {
7541 pub fn vips_sobel(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7542}
7543unsafe extern "C" {
7544 pub fn vips_scharr(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7545}
7546unsafe extern "C" {
7547 pub fn vips_prewitt(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7548}
7549unsafe extern "C" {
7550 pub fn vips_canny(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7551}
7552#[repr(u32)]
7553#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7554pub enum VipsOperationMorphology {
7555 VIPS_OPERATION_MORPHOLOGY_ERODE = 0,
7556 VIPS_OPERATION_MORPHOLOGY_DILATE = 1,
7557 VIPS_OPERATION_MORPHOLOGY_LAST = 2,
7558}
7559unsafe extern "C" {
7560 pub fn vips_morph(
7561 in_: *mut VipsImage,
7562 out: *mut *mut VipsImage,
7563 mask: *mut VipsImage,
7564 morph: VipsOperationMorphology,
7565 ...
7566 ) -> core::ffi::c_int;
7567}
7568unsafe extern "C" {
7569 pub fn vips_rank(
7570 in_: *mut VipsImage,
7571 out: *mut *mut VipsImage,
7572 width: core::ffi::c_int,
7573 height: core::ffi::c_int,
7574 index: core::ffi::c_int,
7575 ...
7576 ) -> core::ffi::c_int;
7577}
7578unsafe extern "C" {
7579 pub fn vips_median(
7580 in_: *mut VipsImage,
7581 out: *mut *mut VipsImage,
7582 size: core::ffi::c_int,
7583 ...
7584 ) -> core::ffi::c_int;
7585}
7586unsafe extern "C" {
7587 pub fn vips_countlines(
7588 in_: *mut VipsImage,
7589 nolines: *mut f64,
7590 direction: VipsDirection,
7591 ...
7592 ) -> core::ffi::c_int;
7593}
7594unsafe extern "C" {
7595 pub fn vips_labelregions(
7596 in_: *mut VipsImage,
7597 mask: *mut *mut VipsImage,
7598 ...
7599 ) -> core::ffi::c_int;
7600}
7601unsafe extern "C" {
7602 pub fn vips_fill_nearest(
7603 in_: *mut VipsImage,
7604 out: *mut *mut VipsImage,
7605 ...
7606 ) -> core::ffi::c_int;
7607}
7608unsafe extern "C" {
7609 pub fn vips_merge(
7610 ref_: *mut VipsImage,
7611 sec: *mut VipsImage,
7612 out: *mut *mut VipsImage,
7613 direction: VipsDirection,
7614 dx: core::ffi::c_int,
7615 dy: core::ffi::c_int,
7616 ...
7617 ) -> core::ffi::c_int;
7618}
7619unsafe extern "C" {
7620 pub fn vips_mosaic(
7621 ref_: *mut VipsImage,
7622 sec: *mut VipsImage,
7623 out: *mut *mut VipsImage,
7624 direction: VipsDirection,
7625 xref: core::ffi::c_int,
7626 yref: core::ffi::c_int,
7627 xsec: core::ffi::c_int,
7628 ysec: core::ffi::c_int,
7629 ...
7630 ) -> core::ffi::c_int;
7631}
7632unsafe extern "C" {
7633 pub fn vips_mosaic1(
7634 ref_: *mut VipsImage,
7635 sec: *mut VipsImage,
7636 out: *mut *mut VipsImage,
7637 direction: VipsDirection,
7638 xr1: core::ffi::c_int,
7639 yr1: core::ffi::c_int,
7640 xs1: core::ffi::c_int,
7641 ys1: core::ffi::c_int,
7642 xr2: core::ffi::c_int,
7643 yr2: core::ffi::c_int,
7644 xs2: core::ffi::c_int,
7645 ys2: core::ffi::c_int,
7646 ...
7647 ) -> core::ffi::c_int;
7648}
7649unsafe extern "C" {
7650 pub fn vips_match(
7651 ref_: *mut VipsImage,
7652 sec: *mut VipsImage,
7653 out: *mut *mut VipsImage,
7654 xr1: core::ffi::c_int,
7655 yr1: core::ffi::c_int,
7656 xs1: core::ffi::c_int,
7657 ys1: core::ffi::c_int,
7658 xr2: core::ffi::c_int,
7659 yr2: core::ffi::c_int,
7660 xs2: core::ffi::c_int,
7661 ys2: core::ffi::c_int,
7662 ...
7663 ) -> core::ffi::c_int;
7664}
7665unsafe extern "C" {
7666 pub fn vips_globalbalance(
7667 in_: *mut VipsImage,
7668 out: *mut *mut VipsImage,
7669 ...
7670 ) -> core::ffi::c_int;
7671}
7672unsafe extern "C" {
7673 pub fn vips_remosaic(
7674 in_: *mut VipsImage,
7675 out: *mut *mut VipsImage,
7676 old_str: *const core::ffi::c_char,
7677 new_str: *const core::ffi::c_char,
7678 ...
7679 ) -> core::ffi::c_int;
7680}
7681unsafe extern "C" {
7682 pub fn vips_matrixinvert(m: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7683}
7684unsafe extern "C" {
7685 pub fn vips_matrixmultiply(
7686 left: *mut VipsImage,
7687 right: *mut VipsImage,
7688 out: *mut *mut VipsImage,
7689 ...
7690 ) -> core::ffi::c_int;
7691}
7692unsafe extern "C" {
7693 pub fn vips_maplut(
7694 in_: *mut VipsImage,
7695 out: *mut *mut VipsImage,
7696 lut: *mut VipsImage,
7697 ...
7698 ) -> core::ffi::c_int;
7699}
7700unsafe extern "C" {
7701 pub fn vips_percent(
7702 in_: *mut VipsImage,
7703 percent: f64,
7704 threshold: *mut core::ffi::c_int,
7705 ...
7706 ) -> core::ffi::c_int;
7707}
7708unsafe extern "C" {
7709 pub fn vips_stdif(
7710 in_: *mut VipsImage,
7711 out: *mut *mut VipsImage,
7712 width: core::ffi::c_int,
7713 height: core::ffi::c_int,
7714 ...
7715 ) -> core::ffi::c_int;
7716}
7717unsafe extern "C" {
7718 pub fn vips_hist_cum(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7719}
7720unsafe extern "C" {
7721 pub fn vips_hist_norm(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7722}
7723unsafe extern "C" {
7724 pub fn vips_hist_equal(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7725}
7726unsafe extern "C" {
7727 pub fn vips_hist_plot(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7728}
7729unsafe extern "C" {
7730 pub fn vips_hist_match(
7731 in_: *mut VipsImage,
7732 ref_: *mut VipsImage,
7733 out: *mut *mut VipsImage,
7734 ...
7735 ) -> core::ffi::c_int;
7736}
7737unsafe extern "C" {
7738 pub fn vips_hist_local(
7739 in_: *mut VipsImage,
7740 out: *mut *mut VipsImage,
7741 width: core::ffi::c_int,
7742 height: core::ffi::c_int,
7743 ...
7744 ) -> core::ffi::c_int;
7745}
7746unsafe extern "C" {
7747 pub fn vips_hist_ismonotonic(in_: *mut VipsImage, out: *mut gboolean, ...) -> core::ffi::c_int;
7748}
7749unsafe extern "C" {
7750 pub fn vips_hist_entropy(in_: *mut VipsImage, out: *mut f64, ...) -> core::ffi::c_int;
7751}
7752unsafe extern "C" {
7753 pub fn vips_case(
7754 index: *mut VipsImage,
7755 cases: *mut *mut VipsImage,
7756 out: *mut *mut VipsImage,
7757 n: core::ffi::c_int,
7758 ...
7759 ) -> core::ffi::c_int;
7760}
7761unsafe extern "C" {
7762 pub fn vips_fwfft(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7763}
7764unsafe extern "C" {
7765 pub fn vips_invfft(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7766}
7767unsafe extern "C" {
7768 pub fn vips_freqmult(
7769 in_: *mut VipsImage,
7770 mask: *mut VipsImage,
7771 out: *mut *mut VipsImage,
7772 ...
7773 ) -> core::ffi::c_int;
7774}
7775unsafe extern "C" {
7776 pub fn vips_spectrum(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7777}
7778unsafe extern "C" {
7779 pub fn vips_phasecor(
7780 in1: *mut VipsImage,
7781 in2: *mut VipsImage,
7782 out: *mut *mut VipsImage,
7783 ...
7784 ) -> core::ffi::c_int;
7785}
7786#[repr(u32)]
7787#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7788pub enum VipsKernel {
7789 VIPS_KERNEL_NEAREST = 0,
7790 VIPS_KERNEL_LINEAR = 1,
7791 VIPS_KERNEL_CUBIC = 2,
7792 VIPS_KERNEL_MITCHELL = 3,
7793 VIPS_KERNEL_LANCZOS2 = 4,
7794 VIPS_KERNEL_LANCZOS3 = 5,
7795 VIPS_KERNEL_MKS2013 = 6,
7796 VIPS_KERNEL_MKS2021 = 7,
7797 VIPS_KERNEL_LAST = 8,
7798}
7799#[repr(u32)]
7800#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7801pub enum VipsSize {
7802 VIPS_SIZE_BOTH = 0,
7803 VIPS_SIZE_UP = 1,
7804 VIPS_SIZE_DOWN = 2,
7805 VIPS_SIZE_FORCE = 3,
7806 VIPS_SIZE_LAST = 4,
7807}
7808unsafe extern "C" {
7809 pub fn vips_shrink(
7810 in_: *mut VipsImage,
7811 out: *mut *mut VipsImage,
7812 hshrink: f64,
7813 vshrink: f64,
7814 ...
7815 ) -> core::ffi::c_int;
7816}
7817unsafe extern "C" {
7818 pub fn vips_shrinkh(
7819 in_: *mut VipsImage,
7820 out: *mut *mut VipsImage,
7821 hshrink: core::ffi::c_int,
7822 ...
7823 ) -> core::ffi::c_int;
7824}
7825unsafe extern "C" {
7826 pub fn vips_shrinkv(
7827 in_: *mut VipsImage,
7828 out: *mut *mut VipsImage,
7829 vshrink: core::ffi::c_int,
7830 ...
7831 ) -> core::ffi::c_int;
7832}
7833unsafe extern "C" {
7834 pub fn vips_reduce(
7835 in_: *mut VipsImage,
7836 out: *mut *mut VipsImage,
7837 hshrink: f64,
7838 vshrink: f64,
7839 ...
7840 ) -> core::ffi::c_int;
7841}
7842unsafe extern "C" {
7843 pub fn vips_reduceh(
7844 in_: *mut VipsImage,
7845 out: *mut *mut VipsImage,
7846 hshrink: f64,
7847 ...
7848 ) -> core::ffi::c_int;
7849}
7850unsafe extern "C" {
7851 pub fn vips_reducev(
7852 in_: *mut VipsImage,
7853 out: *mut *mut VipsImage,
7854 vshrink: f64,
7855 ...
7856 ) -> core::ffi::c_int;
7857}
7858unsafe extern "C" {
7859 pub fn vips_thumbnail(
7860 filename: *const core::ffi::c_char,
7861 out: *mut *mut VipsImage,
7862 width: core::ffi::c_int,
7863 ...
7864 ) -> core::ffi::c_int;
7865}
7866unsafe extern "C" {
7867 pub fn vips_thumbnail_buffer(
7868 buf: *mut core::ffi::c_void,
7869 len: usize,
7870 out: *mut *mut VipsImage,
7871 width: core::ffi::c_int,
7872 ...
7873 ) -> core::ffi::c_int;
7874}
7875unsafe extern "C" {
7876 pub fn vips_thumbnail_image(
7877 in_: *mut VipsImage,
7878 out: *mut *mut VipsImage,
7879 width: core::ffi::c_int,
7880 ...
7881 ) -> core::ffi::c_int;
7882}
7883unsafe extern "C" {
7884 pub fn vips_thumbnail_source(
7885 source: *mut VipsSource,
7886 out: *mut *mut VipsImage,
7887 width: core::ffi::c_int,
7888 ...
7889 ) -> core::ffi::c_int;
7890}
7891unsafe extern "C" {
7892 pub fn vips_similarity(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7893}
7894unsafe extern "C" {
7895 pub fn vips_rotate(
7896 in_: *mut VipsImage,
7897 out: *mut *mut VipsImage,
7898 angle: f64,
7899 ...
7900 ) -> core::ffi::c_int;
7901}
7902unsafe extern "C" {
7903 pub fn vips_affine(
7904 in_: *mut VipsImage,
7905 out: *mut *mut VipsImage,
7906 a: f64,
7907 b: f64,
7908 c: f64,
7909 d: f64,
7910 ...
7911 ) -> core::ffi::c_int;
7912}
7913unsafe extern "C" {
7914 pub fn vips_resize(
7915 in_: *mut VipsImage,
7916 out: *mut *mut VipsImage,
7917 scale: f64,
7918 ...
7919 ) -> core::ffi::c_int;
7920}
7921unsafe extern "C" {
7922 pub fn vips_mapim(
7923 in_: *mut VipsImage,
7924 out: *mut *mut VipsImage,
7925 index: *mut VipsImage,
7926 ...
7927 ) -> core::ffi::c_int;
7928}
7929unsafe extern "C" {
7930 pub fn vips_quadratic(
7931 in_: *mut VipsImage,
7932 out: *mut *mut VipsImage,
7933 coeff: *mut VipsImage,
7934 ...
7935 ) -> core::ffi::c_int;
7936}
7937#[repr(u32)]
7938#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7939pub enum VipsIntent {
7940 VIPS_INTENT_PERCEPTUAL = 0,
7941 VIPS_INTENT_RELATIVE = 1,
7942 VIPS_INTENT_SATURATION = 2,
7943 VIPS_INTENT_ABSOLUTE = 3,
7944 VIPS_INTENT_AUTO = 32,
7945 VIPS_INTENT_LAST = 33,
7946}
7947#[repr(u32)]
7948#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
7949pub enum VipsPCS {
7950 VIPS_PCS_LAB = 0,
7951 VIPS_PCS_XYZ = 1,
7952 VIPS_PCS_LAST = 2,
7953}
7954unsafe extern "C" {
7955 pub fn vips_colourspace_issupported(image: *const VipsImage) -> gboolean;
7956}
7957unsafe extern "C" {
7958 pub fn vips_colourspace(
7959 in_: *mut VipsImage,
7960 out: *mut *mut VipsImage,
7961 space: VipsInterpretation,
7962 ...
7963 ) -> core::ffi::c_int;
7964}
7965unsafe extern "C" {
7966 pub fn vips_LabQ2sRGB(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7967}
7968unsafe extern "C" {
7969 pub fn vips_rad2float(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7970}
7971unsafe extern "C" {
7972 pub fn vips_float2rad(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7973}
7974unsafe extern "C" {
7975 pub fn vips_LabS2LabQ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7976}
7977unsafe extern "C" {
7978 pub fn vips_LabQ2LabS(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7979}
7980unsafe extern "C" {
7981 pub fn vips_LabQ2Lab(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7982}
7983unsafe extern "C" {
7984 pub fn vips_Lab2LabQ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7985}
7986unsafe extern "C" {
7987 pub fn vips_LCh2Lab(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7988}
7989unsafe extern "C" {
7990 pub fn vips_Lab2LCh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7991}
7992unsafe extern "C" {
7993 pub fn vips_Lab2XYZ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7994}
7995unsafe extern "C" {
7996 pub fn vips_XYZ2Lab(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
7997}
7998unsafe extern "C" {
7999 pub fn vips_XYZ2scRGB(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8000}
8001unsafe extern "C" {
8002 pub fn vips_scRGB2sRGB(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8003}
8004unsafe extern "C" {
8005 pub fn vips_scRGB2BW(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8006}
8007unsafe extern "C" {
8008 pub fn vips_sRGB2scRGB(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8009}
8010unsafe extern "C" {
8011 pub fn vips_scRGB2XYZ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8012}
8013unsafe extern "C" {
8014 pub fn vips_HSV2sRGB(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8015}
8016unsafe extern "C" {
8017 pub fn vips_sRGB2HSV(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8018}
8019unsafe extern "C" {
8020 pub fn vips_LCh2CMC(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8021}
8022unsafe extern "C" {
8023 pub fn vips_CMC2LCh(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8024}
8025unsafe extern "C" {
8026 pub fn vips_XYZ2Yxy(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8027}
8028unsafe extern "C" {
8029 pub fn vips_Yxy2XYZ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8030}
8031unsafe extern "C" {
8032 pub fn vips_LabS2Lab(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8033}
8034unsafe extern "C" {
8035 pub fn vips_Lab2LabS(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8036}
8037unsafe extern "C" {
8038 pub fn vips_CMYK2XYZ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8039}
8040unsafe extern "C" {
8041 pub fn vips_XYZ2CMYK(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8042}
8043unsafe extern "C" {
8044 pub fn vips_Oklab2XYZ(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8045}
8046unsafe extern "C" {
8047 pub fn vips_XYZ2Oklab(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8048}
8049unsafe extern "C" {
8050 pub fn vips_Oklch2Oklab(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
8051 -> core::ffi::c_int;
8052}
8053unsafe extern "C" {
8054 pub fn vips_Oklab2Oklch(in_: *mut VipsImage, out: *mut *mut VipsImage, ...)
8055 -> core::ffi::c_int;
8056}
8057unsafe extern "C" {
8058 pub fn vips_uhdr2scRGB(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8059}
8060unsafe extern "C" {
8061 pub fn vips_profile_load(
8062 name: *const core::ffi::c_char,
8063 profile: *mut *mut VipsBlob,
8064 ...
8065 ) -> core::ffi::c_int;
8066}
8067unsafe extern "C" {
8068 pub fn vips_icc_present() -> core::ffi::c_int;
8069}
8070unsafe extern "C" {
8071 pub fn vips_icc_transform(
8072 in_: *mut VipsImage,
8073 out: *mut *mut VipsImage,
8074 output_profile: *const core::ffi::c_char,
8075 ...
8076 ) -> core::ffi::c_int;
8077}
8078unsafe extern "C" {
8079 pub fn vips_icc_import(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8080}
8081unsafe extern "C" {
8082 pub fn vips_icc_export(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8083}
8084unsafe extern "C" {
8085 pub fn vips_icc_ac2rc(
8086 in_: *mut VipsImage,
8087 out: *mut *mut VipsImage,
8088 profile_filename: *const core::ffi::c_char,
8089 ) -> core::ffi::c_int;
8090}
8091unsafe extern "C" {
8092 pub fn vips_icc_is_compatible_profile(
8093 image: *mut VipsImage,
8094 data: *const core::ffi::c_void,
8095 data_length: usize,
8096 ) -> gboolean;
8097}
8098unsafe extern "C" {
8099 pub fn vips_dE76(
8100 left: *mut VipsImage,
8101 right: *mut VipsImage,
8102 out: *mut *mut VipsImage,
8103 ...
8104 ) -> core::ffi::c_int;
8105}
8106unsafe extern "C" {
8107 pub fn vips_dE00(
8108 left: *mut VipsImage,
8109 right: *mut VipsImage,
8110 out: *mut *mut VipsImage,
8111 ...
8112 ) -> core::ffi::c_int;
8113}
8114unsafe extern "C" {
8115 pub fn vips_dECMC(
8116 left: *mut VipsImage,
8117 right: *mut VipsImage,
8118 out: *mut *mut VipsImage,
8119 ...
8120 ) -> core::ffi::c_int;
8121}
8122unsafe extern "C" {
8123 pub fn vips_col_Lab2XYZ(L: f32, a: f32, b: f32, X: *mut f32, Y: *mut f32, Z: *mut f32);
8124}
8125unsafe extern "C" {
8126 pub fn vips_col_XYZ2Lab(X: f32, Y: f32, Z: f32, L: *mut f32, a: *mut f32, b: *mut f32);
8127}
8128unsafe extern "C" {
8129 pub fn vips_col_ab2h(a: f64, b: f64) -> f64;
8130}
8131unsafe extern "C" {
8132 pub fn vips_col_ab2Ch(a: f32, b: f32, C: *mut f32, h: *mut f32);
8133}
8134unsafe extern "C" {
8135 pub fn vips_col_Ch2ab(C: f32, h: f32, a: *mut f32, b: *mut f32);
8136}
8137unsafe extern "C" {
8138 pub fn vips_col_L2Lcmc(L: f32) -> f32;
8139}
8140unsafe extern "C" {
8141 pub fn vips_col_C2Ccmc(C: f32) -> f32;
8142}
8143unsafe extern "C" {
8144 pub fn vips_col_Ch2hcmc(C: f32, h: f32) -> f32;
8145}
8146unsafe extern "C" {
8147 pub fn vips_col_make_tables_CMC();
8148}
8149unsafe extern "C" {
8150 pub fn vips_col_Lcmc2L(Lcmc: f32) -> f32;
8151}
8152unsafe extern "C" {
8153 pub fn vips_col_Ccmc2C(Ccmc: f32) -> f32;
8154}
8155unsafe extern "C" {
8156 pub fn vips_col_Chcmc2h(C: f32, hcmc: f32) -> f32;
8157}
8158unsafe extern "C" {
8159 pub fn vips_col_sRGB2scRGB_8(
8160 r: core::ffi::c_int,
8161 g: core::ffi::c_int,
8162 b: core::ffi::c_int,
8163 R: *mut f32,
8164 G: *mut f32,
8165 B: *mut f32,
8166 ) -> core::ffi::c_int;
8167}
8168unsafe extern "C" {
8169 pub fn vips_col_sRGB2scRGB_16(
8170 r: core::ffi::c_int,
8171 g: core::ffi::c_int,
8172 b: core::ffi::c_int,
8173 R: *mut f32,
8174 G: *mut f32,
8175 B: *mut f32,
8176 ) -> core::ffi::c_int;
8177}
8178unsafe extern "C" {
8179 pub fn vips_col_sRGB2scRGB_8_noclip(
8180 r: core::ffi::c_int,
8181 g: core::ffi::c_int,
8182 b: core::ffi::c_int,
8183 R: *mut f32,
8184 G: *mut f32,
8185 B: *mut f32,
8186 ) -> core::ffi::c_int;
8187}
8188unsafe extern "C" {
8189 pub fn vips_col_sRGB2scRGB_16_noclip(
8190 r: core::ffi::c_int,
8191 g: core::ffi::c_int,
8192 b: core::ffi::c_int,
8193 R: *mut f32,
8194 G: *mut f32,
8195 B: *mut f32,
8196 ) -> core::ffi::c_int;
8197}
8198unsafe extern "C" {
8199 pub fn vips_col_scRGB2XYZ(
8200 R: f32,
8201 G: f32,
8202 B: f32,
8203 X: *mut f32,
8204 Y: *mut f32,
8205 Z: *mut f32,
8206 ) -> core::ffi::c_int;
8207}
8208unsafe extern "C" {
8209 pub fn vips_col_XYZ2scRGB(
8210 X: f32,
8211 Y: f32,
8212 Z: f32,
8213 R: *mut f32,
8214 G: *mut f32,
8215 B: *mut f32,
8216 ) -> core::ffi::c_int;
8217}
8218unsafe extern "C" {
8219 pub fn vips_col_scRGB2sRGB_8(
8220 R: f32,
8221 G: f32,
8222 B: f32,
8223 r: *mut core::ffi::c_int,
8224 g: *mut core::ffi::c_int,
8225 b: *mut core::ffi::c_int,
8226 og: *mut core::ffi::c_int,
8227 ) -> core::ffi::c_int;
8228}
8229unsafe extern "C" {
8230 pub fn vips_col_scRGB2sRGB_16(
8231 R: f32,
8232 G: f32,
8233 B: f32,
8234 r: *mut core::ffi::c_int,
8235 g: *mut core::ffi::c_int,
8236 b: *mut core::ffi::c_int,
8237 og: *mut core::ffi::c_int,
8238 ) -> core::ffi::c_int;
8239}
8240unsafe extern "C" {
8241 pub fn vips_col_scRGB2BW_16(
8242 R: f32,
8243 G: f32,
8244 B: f32,
8245 g: *mut core::ffi::c_int,
8246 og: *mut core::ffi::c_int,
8247 ) -> core::ffi::c_int;
8248}
8249unsafe extern "C" {
8250 pub fn vips_col_scRGB2BW_8(
8251 R: f32,
8252 G: f32,
8253 B: f32,
8254 g: *mut core::ffi::c_int,
8255 og: *mut core::ffi::c_int,
8256 ) -> core::ffi::c_int;
8257}
8258unsafe extern "C" {
8259 pub fn vips_pythagoras(L1: f32, a1: f32, b1: f32, L2: f32, a2: f32, b2: f32) -> f32;
8260}
8261unsafe extern "C" {
8262 pub fn vips_col_dE00(L1: f32, a1: f32, b1: f32, L2: f32, a2: f32, b2: f32) -> f32;
8263}
8264#[repr(u32)]
8265#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8266pub enum VipsCombineMode {
8267 VIPS_COMBINE_MODE_SET = 0,
8268 VIPS_COMBINE_MODE_ADD = 1,
8269 VIPS_COMBINE_MODE_LAST = 2,
8270}
8271unsafe extern "C" {
8272 pub fn vips_draw_rect(
8273 image: *mut VipsImage,
8274 ink: *mut f64,
8275 n: core::ffi::c_int,
8276 left: core::ffi::c_int,
8277 top: core::ffi::c_int,
8278 width: core::ffi::c_int,
8279 height: core::ffi::c_int,
8280 ...
8281 ) -> core::ffi::c_int;
8282}
8283unsafe extern "C" {
8284 pub fn vips_draw_rect1(
8285 image: *mut VipsImage,
8286 ink: f64,
8287 left: core::ffi::c_int,
8288 top: core::ffi::c_int,
8289 width: core::ffi::c_int,
8290 height: core::ffi::c_int,
8291 ...
8292 ) -> core::ffi::c_int;
8293}
8294unsafe extern "C" {
8295 pub fn vips_draw_point(
8296 image: *mut VipsImage,
8297 ink: *mut f64,
8298 n: core::ffi::c_int,
8299 x: core::ffi::c_int,
8300 y: core::ffi::c_int,
8301 ...
8302 ) -> core::ffi::c_int;
8303}
8304unsafe extern "C" {
8305 pub fn vips_draw_point1(
8306 image: *mut VipsImage,
8307 ink: f64,
8308 x: core::ffi::c_int,
8309 y: core::ffi::c_int,
8310 ...
8311 ) -> core::ffi::c_int;
8312}
8313unsafe extern "C" {
8314 pub fn vips_draw_image(
8315 image: *mut VipsImage,
8316 sub: *mut VipsImage,
8317 x: core::ffi::c_int,
8318 y: core::ffi::c_int,
8319 ...
8320 ) -> core::ffi::c_int;
8321}
8322unsafe extern "C" {
8323 pub fn vips_draw_mask(
8324 image: *mut VipsImage,
8325 ink: *mut f64,
8326 n: core::ffi::c_int,
8327 mask: *mut VipsImage,
8328 x: core::ffi::c_int,
8329 y: core::ffi::c_int,
8330 ...
8331 ) -> core::ffi::c_int;
8332}
8333unsafe extern "C" {
8334 pub fn vips_draw_mask1(
8335 image: *mut VipsImage,
8336 ink: f64,
8337 mask: *mut VipsImage,
8338 x: core::ffi::c_int,
8339 y: core::ffi::c_int,
8340 ...
8341 ) -> core::ffi::c_int;
8342}
8343unsafe extern "C" {
8344 pub fn vips_draw_line(
8345 image: *mut VipsImage,
8346 ink: *mut f64,
8347 n: core::ffi::c_int,
8348 x1: core::ffi::c_int,
8349 y1: core::ffi::c_int,
8350 x2: core::ffi::c_int,
8351 y2: core::ffi::c_int,
8352 ...
8353 ) -> core::ffi::c_int;
8354}
8355unsafe extern "C" {
8356 pub fn vips_draw_line1(
8357 image: *mut VipsImage,
8358 ink: f64,
8359 x1: core::ffi::c_int,
8360 y1: core::ffi::c_int,
8361 x2: core::ffi::c_int,
8362 y2: core::ffi::c_int,
8363 ...
8364 ) -> core::ffi::c_int;
8365}
8366unsafe extern "C" {
8367 pub fn vips_draw_circle(
8368 image: *mut VipsImage,
8369 ink: *mut f64,
8370 n: core::ffi::c_int,
8371 cx: core::ffi::c_int,
8372 cy: core::ffi::c_int,
8373 radius: core::ffi::c_int,
8374 ...
8375 ) -> core::ffi::c_int;
8376}
8377unsafe extern "C" {
8378 pub fn vips_draw_circle1(
8379 image: *mut VipsImage,
8380 ink: f64,
8381 cx: core::ffi::c_int,
8382 cy: core::ffi::c_int,
8383 radius: core::ffi::c_int,
8384 ...
8385 ) -> core::ffi::c_int;
8386}
8387unsafe extern "C" {
8388 pub fn vips_draw_flood(
8389 image: *mut VipsImage,
8390 ink: *mut f64,
8391 n: core::ffi::c_int,
8392 x: core::ffi::c_int,
8393 y: core::ffi::c_int,
8394 ...
8395 ) -> core::ffi::c_int;
8396}
8397unsafe extern "C" {
8398 pub fn vips_draw_flood1(
8399 image: *mut VipsImage,
8400 ink: f64,
8401 x: core::ffi::c_int,
8402 y: core::ffi::c_int,
8403 ...
8404 ) -> core::ffi::c_int;
8405}
8406unsafe extern "C" {
8407 pub fn vips_draw_smudge(
8408 image: *mut VipsImage,
8409 left: core::ffi::c_int,
8410 top: core::ffi::c_int,
8411 width: core::ffi::c_int,
8412 height: core::ffi::c_int,
8413 ...
8414 ) -> core::ffi::c_int;
8415}
8416#[repr(u32)]
8417#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8418pub enum VipsTextWrap {
8419 VIPS_TEXT_WRAP_WORD = 0,
8420 VIPS_TEXT_WRAP_CHAR = 1,
8421 VIPS_TEXT_WRAP_WORD_CHAR = 2,
8422 VIPS_TEXT_WRAP_NONE = 3,
8423 VIPS_TEXT_WRAP_LAST = 4,
8424}
8425#[repr(u32)]
8426#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8427pub enum VipsSdfShape {
8428 VIPS_SDF_SHAPE_CIRCLE = 0,
8429 VIPS_SDF_SHAPE_BOX = 1,
8430 VIPS_SDF_SHAPE_ROUNDED_BOX = 2,
8431 VIPS_SDF_SHAPE_LINE = 3,
8432 VIPS_SDF_SHAPE_LAST = 4,
8433}
8434unsafe extern "C" {
8435 pub fn vips_black(
8436 out: *mut *mut VipsImage,
8437 width: core::ffi::c_int,
8438 height: core::ffi::c_int,
8439 ...
8440 ) -> core::ffi::c_int;
8441}
8442unsafe extern "C" {
8443 pub fn vips_xyz(
8444 out: *mut *mut VipsImage,
8445 width: core::ffi::c_int,
8446 height: core::ffi::c_int,
8447 ...
8448 ) -> core::ffi::c_int;
8449}
8450unsafe extern "C" {
8451 pub fn vips_grey(
8452 out: *mut *mut VipsImage,
8453 width: core::ffi::c_int,
8454 height: core::ffi::c_int,
8455 ...
8456 ) -> core::ffi::c_int;
8457}
8458unsafe extern "C" {
8459 pub fn vips_gaussmat(
8460 out: *mut *mut VipsImage,
8461 sigma: f64,
8462 min_ampl: f64,
8463 ...
8464 ) -> core::ffi::c_int;
8465}
8466unsafe extern "C" {
8467 pub fn vips_logmat(
8468 out: *mut *mut VipsImage,
8469 sigma: f64,
8470 min_ampl: f64,
8471 ...
8472 ) -> core::ffi::c_int;
8473}
8474unsafe extern "C" {
8475 pub fn vips_text(
8476 out: *mut *mut VipsImage,
8477 text: *const core::ffi::c_char,
8478 ...
8479 ) -> core::ffi::c_int;
8480}
8481unsafe extern "C" {
8482 pub fn vips_gaussnoise(
8483 out: *mut *mut VipsImage,
8484 width: core::ffi::c_int,
8485 height: core::ffi::c_int,
8486 ...
8487 ) -> core::ffi::c_int;
8488}
8489unsafe extern "C" {
8490 pub fn vips_eye(
8491 out: *mut *mut VipsImage,
8492 width: core::ffi::c_int,
8493 height: core::ffi::c_int,
8494 ...
8495 ) -> core::ffi::c_int;
8496}
8497unsafe extern "C" {
8498 pub fn vips_sines(
8499 out: *mut *mut VipsImage,
8500 width: core::ffi::c_int,
8501 height: core::ffi::c_int,
8502 ...
8503 ) -> core::ffi::c_int;
8504}
8505unsafe extern "C" {
8506 pub fn vips_zone(
8507 out: *mut *mut VipsImage,
8508 width: core::ffi::c_int,
8509 height: core::ffi::c_int,
8510 ...
8511 ) -> core::ffi::c_int;
8512}
8513unsafe extern "C" {
8514 pub fn vips_sdf(
8515 out: *mut *mut VipsImage,
8516 width: core::ffi::c_int,
8517 height: core::ffi::c_int,
8518 shape: VipsSdfShape,
8519 ...
8520 ) -> core::ffi::c_int;
8521}
8522unsafe extern "C" {
8523 pub fn vips_identity(out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8524}
8525unsafe extern "C" {
8526 pub fn vips_buildlut(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8527}
8528unsafe extern "C" {
8529 pub fn vips_invertlut(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8530}
8531unsafe extern "C" {
8532 pub fn vips_tonelut(out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
8533}
8534unsafe extern "C" {
8535 pub fn vips_mask_ideal(
8536 out: *mut *mut VipsImage,
8537 width: core::ffi::c_int,
8538 height: core::ffi::c_int,
8539 frequency_cutoff: f64,
8540 ...
8541 ) -> core::ffi::c_int;
8542}
8543unsafe extern "C" {
8544 pub fn vips_mask_ideal_ring(
8545 out: *mut *mut VipsImage,
8546 width: core::ffi::c_int,
8547 height: core::ffi::c_int,
8548 frequency_cutoff: f64,
8549 ringwidth: f64,
8550 ...
8551 ) -> core::ffi::c_int;
8552}
8553unsafe extern "C" {
8554 pub fn vips_mask_ideal_band(
8555 out: *mut *mut VipsImage,
8556 width: core::ffi::c_int,
8557 height: core::ffi::c_int,
8558 frequency_cutoff_x: f64,
8559 frequency_cutoff_y: f64,
8560 radius: f64,
8561 ...
8562 ) -> core::ffi::c_int;
8563}
8564unsafe extern "C" {
8565 pub fn vips_mask_butterworth(
8566 out: *mut *mut VipsImage,
8567 width: core::ffi::c_int,
8568 height: core::ffi::c_int,
8569 order: f64,
8570 frequency_cutoff: f64,
8571 amplitude_cutoff: f64,
8572 ...
8573 ) -> core::ffi::c_int;
8574}
8575unsafe extern "C" {
8576 pub fn vips_mask_butterworth_ring(
8577 out: *mut *mut VipsImage,
8578 width: core::ffi::c_int,
8579 height: core::ffi::c_int,
8580 order: f64,
8581 frequency_cutoff: f64,
8582 amplitude_cutoff: f64,
8583 ringwidth: f64,
8584 ...
8585 ) -> core::ffi::c_int;
8586}
8587unsafe extern "C" {
8588 pub fn vips_mask_butterworth_band(
8589 out: *mut *mut VipsImage,
8590 width: core::ffi::c_int,
8591 height: core::ffi::c_int,
8592 order: f64,
8593 frequency_cutoff_x: f64,
8594 frequency_cutoff_y: f64,
8595 radius: f64,
8596 amplitude_cutoff: f64,
8597 ...
8598 ) -> core::ffi::c_int;
8599}
8600unsafe extern "C" {
8601 pub fn vips_mask_gaussian(
8602 out: *mut *mut VipsImage,
8603 width: core::ffi::c_int,
8604 height: core::ffi::c_int,
8605 frequency_cutoff: f64,
8606 amplitude_cutoff: f64,
8607 ...
8608 ) -> core::ffi::c_int;
8609}
8610unsafe extern "C" {
8611 pub fn vips_mask_gaussian_ring(
8612 out: *mut *mut VipsImage,
8613 width: core::ffi::c_int,
8614 height: core::ffi::c_int,
8615 frequency_cutoff: f64,
8616 amplitude_cutoff: f64,
8617 ringwidth: f64,
8618 ...
8619 ) -> core::ffi::c_int;
8620}
8621unsafe extern "C" {
8622 pub fn vips_mask_gaussian_band(
8623 out: *mut *mut VipsImage,
8624 width: core::ffi::c_int,
8625 height: core::ffi::c_int,
8626 frequency_cutoff_x: f64,
8627 frequency_cutoff_y: f64,
8628 radius: f64,
8629 amplitude_cutoff: f64,
8630 ...
8631 ) -> core::ffi::c_int;
8632}
8633unsafe extern "C" {
8634 pub fn vips_mask_fractal(
8635 out: *mut *mut VipsImage,
8636 width: core::ffi::c_int,
8637 height: core::ffi::c_int,
8638 fractal_dimension: f64,
8639 ...
8640 ) -> core::ffi::c_int;
8641}
8642unsafe extern "C" {
8643 pub fn vips_fractsurf(
8644 out: *mut *mut VipsImage,
8645 width: core::ffi::c_int,
8646 height: core::ffi::c_int,
8647 fractal_dimension: f64,
8648 ...
8649 ) -> core::ffi::c_int;
8650}
8651unsafe extern "C" {
8652 pub fn vips_worley(
8653 out: *mut *mut VipsImage,
8654 width: core::ffi::c_int,
8655 height: core::ffi::c_int,
8656 ...
8657 ) -> core::ffi::c_int;
8658}
8659unsafe extern "C" {
8660 pub fn vips_perlin(
8661 out: *mut *mut VipsImage,
8662 width: core::ffi::c_int,
8663 height: core::ffi::c_int,
8664 ...
8665 ) -> core::ffi::c_int;
8666}
8667#[repr(C)]
8668#[derive(Debug, Copy, Clone)]
8669pub struct im__INTMASK {
8670 pub xsize: core::ffi::c_int,
8671 pub ysize: core::ffi::c_int,
8672 pub scale: core::ffi::c_int,
8673 pub offset: core::ffi::c_int,
8674 pub coeff: *mut core::ffi::c_int,
8675 pub filename: *mut core::ffi::c_char,
8676}
8677pub type INTMASK = im__INTMASK;
8678#[repr(C)]
8679#[derive(Debug, Copy, Clone)]
8680pub struct im__DOUBLEMASK {
8681 pub xsize: core::ffi::c_int,
8682 pub ysize: core::ffi::c_int,
8683 pub scale: f64,
8684 pub offset: f64,
8685 pub coeff: *mut f64,
8686 pub filename: *mut core::ffi::c_char,
8687}
8688pub type DOUBLEMASK = im__DOUBLEMASK;
8689unsafe extern "C" {
8690 pub fn vips_image_new_mode(
8691 filename: *const core::ffi::c_char,
8692 mode: *const core::ffi::c_char,
8693 ) -> *mut VipsImage;
8694}
8695unsafe extern "C" {
8696 pub fn vips_image_open_input(image: *mut VipsImage) -> core::ffi::c_int;
8697}
8698unsafe extern "C" {
8699 pub fn vips_image_open_output(image: *mut VipsImage) -> core::ffi::c_int;
8700}
8701unsafe extern "C" {
8702 pub fn vips_mapfile(image: *mut VipsImage) -> core::ffi::c_int;
8703}
8704unsafe extern "C" {
8705 pub fn vips_mapfilerw(image: *mut VipsImage) -> core::ffi::c_int;
8706}
8707unsafe extern "C" {
8708 pub fn vips_remapfilerw(image: *mut VipsImage) -> core::ffi::c_int;
8709}
8710pub type VipsPlotFn = ::core::option::Option<
8711 unsafe extern "C" fn(
8712 image: *mut VipsImage,
8713 x: core::ffi::c_int,
8714 y: core::ffi::c_int,
8715 a: *mut core::ffi::c_void,
8716 b: *mut core::ffi::c_void,
8717 c: *mut core::ffi::c_void,
8718 ) -> core::ffi::c_int,
8719>;
8720unsafe extern "C" {
8721 pub fn vips__deprecated_open_read(
8722 filename: *const core::ffi::c_char,
8723 sequential: gboolean,
8724 ) -> *mut VipsImage;
8725}
8726unsafe extern "C" {
8727 pub fn vips__deprecated_open_write(filename: *const core::ffi::c_char) -> *mut VipsImage;
8728}
8729unsafe extern "C" {
8730 pub fn vips__find_lroverlap(
8731 ref_in: *mut VipsImage,
8732 sec_in: *mut VipsImage,
8733 out: *mut VipsImage,
8734 bandno_in: core::ffi::c_int,
8735 xref: core::ffi::c_int,
8736 yref: core::ffi::c_int,
8737 xsec: core::ffi::c_int,
8738 ysec: core::ffi::c_int,
8739 halfcorrelation: core::ffi::c_int,
8740 halfarea: core::ffi::c_int,
8741 dx0: *mut core::ffi::c_int,
8742 dy0: *mut core::ffi::c_int,
8743 scale1: *mut f64,
8744 angle1: *mut f64,
8745 dx1: *mut f64,
8746 dy1: *mut f64,
8747 ) -> core::ffi::c_int;
8748}
8749unsafe extern "C" {
8750 pub fn vips__find_tboverlap(
8751 ref_in: *mut VipsImage,
8752 sec_in: *mut VipsImage,
8753 out: *mut VipsImage,
8754 bandno_in: core::ffi::c_int,
8755 xref: core::ffi::c_int,
8756 yref: core::ffi::c_int,
8757 xsec: core::ffi::c_int,
8758 ysec: core::ffi::c_int,
8759 halfcorrelation: core::ffi::c_int,
8760 halfarea: core::ffi::c_int,
8761 dx0: *mut core::ffi::c_int,
8762 dy0: *mut core::ffi::c_int,
8763 scale1: *mut f64,
8764 angle1: *mut f64,
8765 dx1: *mut f64,
8766 dy1: *mut f64,
8767 ) -> core::ffi::c_int;
8768}
8769unsafe extern "C" {
8770 pub fn vips_check_imask(
8771 domain: *const core::ffi::c_char,
8772 mask: *mut INTMASK,
8773 ) -> core::ffi::c_int;
8774}
8775unsafe extern "C" {
8776 pub fn vips_check_dmask(
8777 domain: *const core::ffi::c_char,
8778 mask: *mut DOUBLEMASK,
8779 ) -> core::ffi::c_int;
8780}
8781unsafe extern "C" {
8782 pub fn vips_check_dmask_1d(
8783 domain: *const core::ffi::c_char,
8784 mask: *mut DOUBLEMASK,
8785 ) -> core::ffi::c_int;
8786}
8787unsafe extern "C" {
8788 pub fn vips_get_option_group() -> *mut GOptionGroup;
8789}
8790unsafe extern "C" {
8791 pub fn vips_window_ref(
8792 im: *mut VipsImage,
8793 top: core::ffi::c_int,
8794 height: core::ffi::c_int,
8795 ) -> *mut VipsWindow;
8796}
8797unsafe extern "C" {
8798 pub fn vips_popenf(
8799 fmt: *const core::ffi::c_char,
8800 mode: *const core::ffi::c_char,
8801 ...
8802 ) -> *mut FILE;
8803}
8804unsafe extern "C" {
8805 pub fn vips__ink_to_vector(
8806 domain: *const core::ffi::c_char,
8807 im: *mut VipsImage,
8808 ink: *mut VipsPel,
8809 n: *mut core::ffi::c_int,
8810 ) -> *mut f64;
8811}
8812unsafe extern "C" {
8813 pub fn vips__init(argv0: *const core::ffi::c_char) -> core::ffi::c_int;
8814}
8815unsafe extern "C" {
8816 pub fn vips__get_sizeof_vipsobject() -> usize;
8817}
8818#[repr(C)]
8819#[derive(Debug, Copy, Clone)]
8820pub struct VipsVector {
8821 pub name: *const core::ffi::c_char,
8822 pub unique_name: *mut core::ffi::c_char,
8823 pub n_temp: core::ffi::c_int,
8824 pub n_scanline: core::ffi::c_int,
8825 pub n_source: core::ffi::c_int,
8826 pub n_destination: core::ffi::c_int,
8827 pub n_constant: core::ffi::c_int,
8828 pub n_parameter: core::ffi::c_int,
8829 pub n_instruction: core::ffi::c_int,
8830 pub sl: [core::ffi::c_int; 10usize],
8831 pub line: [core::ffi::c_int; 10usize],
8832 pub s: [core::ffi::c_int; 10usize],
8833 pub d1: core::ffi::c_int,
8834 pub compiled: gboolean,
8835}
8836#[repr(C)]
8837#[derive(Debug, Copy, Clone)]
8838pub struct VipsExecutor {
8839 pub vector: *mut VipsVector,
8840}
8841unsafe extern "C" {
8842 pub fn vips_vector_init();
8843}
8844unsafe extern "C" {
8845 pub fn vips_vector_free(vector: *mut VipsVector);
8846}
8847unsafe extern "C" {
8848 pub fn vips_vector_new(
8849 name: *const core::ffi::c_char,
8850 dsize: core::ffi::c_int,
8851 ) -> *mut VipsVector;
8852}
8853unsafe extern "C" {
8854 pub fn vips_vector_constant(
8855 vector: *mut VipsVector,
8856 name: *mut core::ffi::c_char,
8857 value: core::ffi::c_int,
8858 size: core::ffi::c_int,
8859 );
8860}
8861unsafe extern "C" {
8862 pub fn vips_vector_source_scanline(
8863 vector: *mut VipsVector,
8864 name: *mut core::ffi::c_char,
8865 line: core::ffi::c_int,
8866 size: core::ffi::c_int,
8867 );
8868}
8869unsafe extern "C" {
8870 pub fn vips_vector_source_name(
8871 vector: *mut VipsVector,
8872 name: *const core::ffi::c_char,
8873 size: core::ffi::c_int,
8874 ) -> core::ffi::c_int;
8875}
8876unsafe extern "C" {
8877 pub fn vips_vector_temporary(
8878 vector: *mut VipsVector,
8879 name: *const core::ffi::c_char,
8880 size: core::ffi::c_int,
8881 );
8882}
8883unsafe extern "C" {
8884 pub fn vips_vector_parameter(
8885 vector: *mut VipsVector,
8886 name: *const core::ffi::c_char,
8887 size: core::ffi::c_int,
8888 ) -> core::ffi::c_int;
8889}
8890unsafe extern "C" {
8891 pub fn vips_vector_destination(
8892 vector: *mut VipsVector,
8893 name: *const core::ffi::c_char,
8894 size: core::ffi::c_int,
8895 ) -> core::ffi::c_int;
8896}
8897unsafe extern "C" {
8898 pub fn vips_vector_asm2(
8899 vector: *mut VipsVector,
8900 op: *const core::ffi::c_char,
8901 a: *const core::ffi::c_char,
8902 b: *const core::ffi::c_char,
8903 );
8904}
8905unsafe extern "C" {
8906 pub fn vips_vector_asm3(
8907 vector: *mut VipsVector,
8908 op: *const core::ffi::c_char,
8909 a: *const core::ffi::c_char,
8910 b: *const core::ffi::c_char,
8911 c: *const core::ffi::c_char,
8912 );
8913}
8914unsafe extern "C" {
8915 pub fn vips_vector_full(vector: *mut VipsVector) -> gboolean;
8916}
8917unsafe extern "C" {
8918 pub fn vips_vector_compile(vector: *mut VipsVector) -> gboolean;
8919}
8920unsafe extern "C" {
8921 pub fn vips_vector_print(vector: *mut VipsVector);
8922}
8923unsafe extern "C" {
8924 pub fn vips_executor_set_program(
8925 executor: *mut VipsExecutor,
8926 vector: *mut VipsVector,
8927 n: core::ffi::c_int,
8928 );
8929}
8930unsafe extern "C" {
8931 pub fn vips_executor_set_scanline(
8932 executor: *mut VipsExecutor,
8933 ir: *mut VipsRegion,
8934 x: core::ffi::c_int,
8935 y: core::ffi::c_int,
8936 );
8937}
8938unsafe extern "C" {
8939 pub fn vips_executor_set_destination(
8940 executor: *mut VipsExecutor,
8941 value: *mut core::ffi::c_void,
8942 );
8943}
8944unsafe extern "C" {
8945 pub fn vips_executor_set_parameter(
8946 executor: *mut VipsExecutor,
8947 var: core::ffi::c_int,
8948 value: core::ffi::c_int,
8949 );
8950}
8951unsafe extern "C" {
8952 pub fn vips_executor_set_array(
8953 executor: *mut VipsExecutor,
8954 var: core::ffi::c_int,
8955 value: *mut core::ffi::c_void,
8956 );
8957}
8958unsafe extern "C" {
8959 pub fn vips_executor_run(executor: *mut VipsExecutor);
8960}
8961unsafe extern "C" {
8962 pub fn vips_vector_to_fixed_point(
8963 in_: *mut f64,
8964 out: *mut core::ffi::c_int,
8965 n: core::ffi::c_int,
8966 scale: core::ffi::c_int,
8967 );
8968}
8969pub type im_object = *mut core::ffi::c_void;
8970unsafe extern "C" {
8971 pub fn vips__input_interpolate_init(
8972 obj: *mut im_object,
8973 str_: *mut core::ffi::c_char,
8974 ) -> core::ffi::c_int;
8975}
8976impl VipsBBits {
8977 pub const IM_BBITS_FLOAT: VipsBBits = VipsBBits::IM_BBITS_INT;
8978}
8979impl VipsBBits {
8980 pub const IM_BBITS_DOUBLE: VipsBBits = VipsBBits::IM_BBITS_COMPLEX;
8981}
8982#[repr(u32)]
8983#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8984pub enum VipsBBits {
8985 IM_BBITS_BYTE = 8,
8986 IM_BBITS_SHORT = 16,
8987 IM_BBITS_INT = 32,
8988 IM_BBITS_COMPLEX = 64,
8989 IM_BBITS_DPCOMPLEX = 128,
8990}
8991unsafe extern "C" {
8992 pub fn vips_g_mutex_new() -> *mut GMutex;
8993}
8994unsafe extern "C" {
8995 pub fn vips_g_mutex_free(arg1: *mut GMutex);
8996}
8997unsafe extern "C" {
8998 pub fn vips_g_cond_new() -> *mut GCond;
8999}
9000unsafe extern "C" {
9001 pub fn vips_g_cond_free(arg1: *mut GCond);
9002}
9003unsafe extern "C" {
9004 pub fn vips_g_thread_join(thread: *mut GThread) -> *mut core::ffi::c_void;
9005}
9006unsafe extern "C" {
9007 pub fn vips_cache(in_: *mut VipsImage, out: *mut *mut VipsImage, ...) -> core::ffi::c_int;
9008}
9009#[repr(u32)]
9010#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
9011pub enum VipsForeignJpegSubsample {
9012 VIPS_FOREIGN_JPEG_SUBSAMPLE_AUTO = 0,
9013 VIPS_FOREIGN_JPEG_SUBSAMPLE_ON = 1,
9014 VIPS_FOREIGN_JPEG_SUBSAMPLE_OFF = 2,
9015 VIPS_FOREIGN_JPEG_SUBSAMPLE_LAST = 3,
9016}
9017unsafe extern "C" {
9018 pub fn vips_rawsave_fd(in_: *mut VipsImage, fd: core::ffi::c_int, ...) -> core::ffi::c_int;
9019}
9020unsafe extern "C" {
9021 pub fn vips_warn(domain: *const core::ffi::c_char, fmt: *const core::ffi::c_char, ...);
9022}
9023unsafe extern "C" {
9024 pub fn vips_vwarn(domain: *const core::ffi::c_char, fmt: *const core::ffi::c_char, ap: va_list);
9025}
9026unsafe extern "C" {
9027 pub fn vips_info_set(info: gboolean);
9028}
9029unsafe extern "C" {
9030 pub fn vips_info(domain: *const core::ffi::c_char, fmt: *const core::ffi::c_char, ...);
9031}
9032unsafe extern "C" {
9033 pub fn vips_vinfo(domain: *const core::ffi::c_char, fmt: *const core::ffi::c_char, ap: va_list);
9034}
9035unsafe extern "C" {
9036 pub fn vips_autorot_get_angle(image: *mut VipsImage) -> VipsAngle;
9037}
9038unsafe extern "C" {
9039 pub fn vips_thread_isworker() -> gboolean;
9040}
9041unsafe extern "C" {
9042 pub fn vips_free(buf: *mut core::ffi::c_void) -> core::ffi::c_int;
9043}
9044unsafe extern "C" {
9045 pub fn vips_target_finish(target: *mut VipsTarget);
9046}
9047unsafe extern "C" {
9048 pub fn vips_cache_operation_lookup(operation: *mut VipsOperation) -> *mut VipsOperation;
9049}
9050unsafe extern "C" {
9051 pub fn vips_cache_operation_add(operation: *mut VipsOperation);
9052}
9053unsafe extern "C" {
9054 pub fn vips_strncpy(
9055 dest: *mut core::ffi::c_char,
9056 src: *const core::ffi::c_char,
9057 n: core::ffi::c_int,
9058 ) -> *mut core::ffi::c_char;
9059}
9060unsafe extern "C" {
9061 pub fn vips_strrstr(
9062 haystack: *const core::ffi::c_char,
9063 needle: *const core::ffi::c_char,
9064 ) -> *mut core::ffi::c_char;
9065}
9066unsafe extern "C" {
9067 pub fn vips_ispostfix(a: *const core::ffi::c_char, b: *const core::ffi::c_char) -> gboolean;
9068}
9069unsafe extern "C" {
9070 pub fn vips_vsnprintf(
9071 str_: *mut core::ffi::c_char,
9072 size: usize,
9073 format: *const core::ffi::c_char,
9074 ap: va_list,
9075 ) -> core::ffi::c_int;
9076}
9077unsafe extern "C" {
9078 pub fn vips_snprintf(
9079 str_: *mut core::ffi::c_char,
9080 size: usize,
9081 format: *const core::ffi::c_char,
9082 ...
9083 ) -> core::ffi::c_int;
9084}
9085unsafe extern "C" {
9086 pub fn vips_max_coord_get() -> core::ffi::c_int;
9087}
9088unsafe extern "C" {
9089 pub fn vips_init(argv0: *const core::ffi::c_char) -> core::ffi::c_int;
9090}
9091unsafe extern "C" {
9092 pub fn vips_get_argv0() -> *const core::ffi::c_char;
9093}
9094unsafe extern "C" {
9095 pub fn vips_get_prgname() -> *const core::ffi::c_char;
9096}
9097unsafe extern "C" {
9098 pub fn vips_shutdown();
9099}
9100unsafe extern "C" {
9101 pub fn vips_thread_shutdown();
9102}
9103unsafe extern "C" {
9104 pub fn vips_add_option_entries(option_group: *mut GOptionGroup);
9105}
9106unsafe extern "C" {
9107 pub fn vips_leak_set(leak: gboolean);
9108}
9109unsafe extern "C" {
9110 pub fn vips_block_untrusted_set(state: gboolean);
9111}
9112unsafe extern "C" {
9113 pub fn vips_version_string() -> *const core::ffi::c_char;
9114}
9115unsafe extern "C" {
9116 pub fn vips_version(flag: core::ffi::c_int) -> core::ffi::c_int;
9117}
9118unsafe extern "C" {
9119 pub fn vips_guess_prefix(
9120 argv0: *const core::ffi::c_char,
9121 env_name: *const core::ffi::c_char,
9122 ) -> *const core::ffi::c_char;
9123}
9124unsafe extern "C" {
9125 pub fn vips_guess_libdir(
9126 argv0: *const core::ffi::c_char,
9127 env_name: *const core::ffi::c_char,
9128 ) -> *const core::ffi::c_char;
9129}
9130pub type __builtin_va_list = *mut core::ffi::c_char;