generate.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /* Generate pixels.
  2. *
  3. * J.Cupitt, 8/4/93
  4. */
  5. /*
  6. This file is part of VIPS.
  7. VIPS is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU Lesser General Public License as published by
  9. the Free Software Foundation; either version 2 of the License, or
  10. (at your option) any later version.
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. GNU Lesser General Public License for more details.
  15. You should have received a copy of the GNU Lesser General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  18. 02110-1301 USA
  19. */
  20. /*
  21. These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
  22. */
  23. #ifndef VIPS_GENERATE_H
  24. #define VIPS_GENERATE_H
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif /*__cplusplus*/
  28. typedef int (*VipsRegionWrite)( VipsRegion *region, VipsRect *area, void *a );
  29. int vips_sink_disc( VipsImage *im, VipsRegionWrite write_fn, void *a );
  30. int vips_sink( VipsImage *im,
  31. VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
  32. void *a, void *b );
  33. int vips_sink_tile( VipsImage *im,
  34. int tile_width, int tile_height,
  35. VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
  36. void *a, void *b );
  37. typedef void (*VipsSinkNotify)( VipsImage *im, VipsRect *rect, void *a );
  38. int vips_sink_screen( VipsImage *in, VipsImage *out, VipsImage *mask,
  39. int tile_width, int tile_height, int max_tiles,
  40. int priority,
  41. VipsSinkNotify notify_fn, void *a );
  42. int vips_sink_memory( VipsImage *im );
  43. void *vips_start_one( VipsImage *out, void *a, void *b );
  44. int vips_stop_one( void *seq, void *a, void *b );
  45. void *vips_start_many( VipsImage *out, void *a, void *b );
  46. int vips_stop_many( void *seq, void *a, void *b );
  47. VipsImage **vips_allocate_input_array( VipsImage *out, ... )
  48. __attribute__((sentinel));
  49. int vips_image_generate( VipsImage *image,
  50. VipsStartFn start_fn, VipsGenerateFn generate_fn, VipsStopFn stop_fn,
  51. void *a, void *b
  52. );
  53. int vips_image_pipeline_array( VipsImage *image,
  54. VipsDemandStyle hint, VipsImage **in );
  55. int vips_image_pipelinev( VipsImage *image, VipsDemandStyle hint, ... )
  56. __attribute__((sentinel));
  57. #ifdef __cplusplus
  58. }
  59. #endif /*__cplusplus*/
  60. #endif /*VIPS_GENERATE_H*/