1 #ifndef CLIB_PNG_PROTOS_H
    2 #define CLIB_PNG_PROTOS_H
    3 
    4 /*
    5 	png.library C prototypes
    6 
    7 	Copyright © 2003-2004 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef LIBRARIES_PNG_H
   11 # include <libraries/png.h>
   12 #endif
   13 
   14 
   15 #ifdef __cplusplus
   16 extern "C" {
   17 #endif
   18 
   19 png_uint_32 png_access_version_number(void);
   20 void png_set_sig_bytes(png_structp png_ptr, int num_bytes);
   21 int png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check);
   22 int png_check_sig(png_bytep sig, int num);
   23 png_structp png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn);
   24 png_structp png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn);
   25 png_uint_32 png_get_compression_buffer_size(png_structp png_ptr);
   26 void png_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size);
   27 int png_reset_zstream(png_structp png_ptr);
   28 void png_write_chunk(png_structp png_ptr, png_bytep chunk_name, png_bytep data, png_size_t length);
   29 void png_write_chunk_start(png_structp png_ptr, png_bytep chunk_name, png_uint_32 length);
   30 void png_write_chunk_data(png_structp png_ptr, png_bytep data, png_size_t length);
   31 void png_write_chunk_end(png_structp png_ptr);
   32 png_infop png_create_info_struct(png_structp png_ptr);
   33 void png_write_info_before_PLTE(png_structp png_ptr, png_infop info_ptr);
   34 void png_write_info(png_structp png_ptr, png_infop info_ptr);
   35 void png_read_info(png_structp png_ptr, png_infop info_ptr);
   36 
   37 png_charp png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime);
   38 void png_convert_from_struct_tm(png_timep ptime, struct tm FAR * ttime);
   39 void png_convert_from_time_t32(png_timep ptime, long ttime);
   40 void png_convert_from_time_t64(png_timep ptime, long long ttime);
   41 void png_set_expand(png_structp png_ptr);
   42 void png_set_gray_1_2_4_to_8(png_structp png_ptr);
   43 void png_set_expand_gray_1_2_4_to_8(png_structp png_ptr);
   44 void png_set_palette_to_rgb(png_structp png_ptr);
   45 void png_set_tRNS_to_alpha(png_structp png_ptr);
   46 void png_set_bgr(png_structp png_ptr);
   47 void png_set_gray_to_rgb(png_structp png_ptr);
   48 void png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red, double green );
   49 
   50 void png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action, png_fixed_point red, png_fixed_point green );
   51 png_byte png_get_rgb_to_gray_status(png_structp png_ptr);
   52 
   53 void png_build_grayscale_palette(int bit_depth, png_colorp palette);
   54 void png_set_strip_alpha(png_structp png_ptr);
   55 void png_set_swap_alpha(png_structp png_ptr);
   56 void png_set_invert_alpha(png_structp png_ptr);
   57 void png_set_filler(png_structp png_ptr, png_uint_32 filler, int flags);
   58 void png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int filler_loc);
   59 void png_set_swap(png_structp png_ptr);
   60 void png_set_packing(png_structp png_ptr);
   61 void png_set_packswap(png_structp png_ptr);
   62 void png_set_shift(png_structp png_ptr, png_color_8p true_bits);
   63 int png_set_interlace_handling(png_structp png_ptr);
   64 void png_set_invert_mono(png_structp png_ptr);
   65 
   66 void png_set_background(png_structp png_ptr, png_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma);
   67 void png_set_strip_16(png_structp png_ptr);
   68 void png_set_dither(png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, int full_dither);
   69 
   70 void png_set_gamma(png_structp png_ptr, double screen_gamma, double default_file_gamma);
   71 
   72 void png_set_flush(png_structp png_ptr, int nrows);
   73 void png_write_flush(png_structp png_ptr);
   74 
   75 
   76 void png_start_read_image(png_structp png_ptr);
   77 void png_read_update_info(png_structp png_ptr, png_infop info_ptr);
   78 void png_read_rows(png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows);
   79 void png_read_row(png_structp png_ptr, png_bytep row, png_bytep display_row);
   80 void png_read_image(png_structp png_ptr, png_bytepp image);
   81 void png_read_end(png_structp png_ptr, png_infop info_ptr);
   82 
   83 
   84 void png_write_row(png_structp png_ptr, png_bytep row);
   85 void png_write_rows(png_structp png_ptr, png_bytepp row, png_uint_32 num_rows);
   86 void png_write_image(png_structp png_ptr, png_bytepp image);
   87 void png_write_end(png_structp png_ptr, png_infop info_ptr);
   88 
   89 
   90 void png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr);
   91 void png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr);
   92 void png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr);
   93 
   94 void png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action);
   95 void png_set_filter(png_structp png_ptr, int method, int filters);
   96 void png_set_filter_heuristics(png_structp png_ptr, int heuristic_method, int num_weights, png_doublep filter_weights, png_doublep filter_costs);
   97 
   98 void png_set_compression_level(png_structp png_ptr, int level);
   99 void png_set_compression_mem_level (png_structp png_ptr, int mem_level);
  100 void png_set_compression_strategy (png_structp png_ptr, int strategy);
  101 void png_set_compression_window_bits(png_structp png_ptr, int window_bits);
  102 void png_set_compression_method(png_structp png_ptr, int method);
  103 
  104 void png_set_error_fn(png_structp png_ptr, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn);
  105 png_voidp png_get_error_ptr(png_structp png_ptr);
  106 
  107 void png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn);
  108 void png_set_read_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn);
  109 
  110 png_voidp png_get_io_ptr(png_structp png_ptr);
  111 
  112 void png_set_read_status_fn(png_structp png_ptr, png_read_status_ptr read_row_fn);
  113 void png_set_write_status_fn(png_structp png_ptr, png_write_status_ptr write_row_fn);
  114 
  115 void png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr read_user_transform_fn);
  116 void png_set_write_user_transform_fn(png_structp png_ptr, png_user_transform_ptr write_user_transform_fn);
  117 void png_set_user_transform_info(png_structp png_ptr, png_voidp user_transform_ptr, int user_transform_depth, int user_transform_channels);
  118 png_voidp png_get_user_transform_ptr(png_structp png_ptr);
  119 
  120 void png_set_read_user_chunk_fn(png_structp png_ptr,png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn);
  121 png_voidp png_get_user_chunk_ptr(png_structp  png_ptr);
  122 
  123 
  124 void png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr, png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn);
  125 png_voidp png_get_progressive_ptr(png_structp png_ptr);
  126 void png_process_data(png_structp png_ptr, png_infop info_ptr, png_bytep buffer, png_size_t buffer_size);
  127 void png_progressive_combine_row(png_structp png_ptr, png_bytep old_row, png_bytep new_row);
  128 
  129 
  130 png_voidp png_malloc(png_structp png_ptr, png_uint_32 size);
  131 png_voidp png_malloc_warn(png_structp png_ptr, png_uint_32 size);
  132 void png_free(png_structp png_ptr, png_voidp ptr);
  133 void png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num);
  134 void png_data_freer(png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask);
  135 
  136 
  137 png_voidp png_memcpy_check(png_structp png_ptr, png_voidp s1, png_voidp s2, png_uint_32 size);
  138 png_voidp png_memset_check(png_structp png_ptr, png_voidp s1, int value, png_uint_32 size);
  139 
  140 void png_error(png_structp png_ptr, png_const_charp error_message);
  141 void png_chunk_error(png_structp png_ptr, png_const_charp error_message);
  142 
  143 void png_warning(png_structp png_ptr, png_const_charp warning_message);
  144 void png_chunk_warning(png_structp png_ptr, png_const_charp warning_message);
  145 
  146 png_uint_32 png_get_valid(png_structp png_ptr,png_infop info_ptr, png_uint_32 flag);
  147 png_uint_32 png_get_rowbytes(png_structp png_ptr,png_infop info_ptr);
  148 
  149 png_bytepp png_get_rows(png_structp png_ptr,png_infop info_ptr);
  150 void png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers);
  151 
  152 png_byte png_get_channels(png_structp png_ptr, png_infop info_ptr);
  153 
  154 png_uint_32 png_get_image_width(png_structp png_ptr, png_infop info_ptr);
  155 png_uint_32 png_get_image_height(png_structp png_ptr, png_infop info_ptr);
  156 png_byte png_get_bit_depth(png_structp png_ptr, png_infop info_ptr);
  157 png_byte png_get_color_type(png_structp png_ptr, png_infop info_ptr);
  158 png_byte png_get_filter_type(png_structp png_ptr, png_infop info_ptr);
  159 png_byte png_get_interlace_type(png_structp png_ptr, png_infop info_ptr);
  160 png_byte png_get_compression_type(png_structp png_ptr, png_infop info_ptr);
  161 
  162 png_uint_32 png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr);
  163 png_uint_32 png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr);
  164 png_uint_32 png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr);
  165 
  166 float png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr);
  167 
  168 png_int_32 png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr);
  169 png_int_32 png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr);
  170 png_int_32 png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr);
  171 png_int_32 png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr);
  172 
  173 
  174 png_bytep png_get_signature(png_structp png_ptr, png_infop info_ptr);
  175 
  176 png_uint_32 png_get_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p *background);
  177 
  178 void png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background);
  179 
  180 png_uint_32 png_get_cHRM(png_structp png_ptr, png_infop info_ptr, double *white_x, double *white_y, double *red_x, double *red_y, double *green_x, double *green_y, double *blue_x, double *blue_y);
  181 png_uint_32 png_get_cHRM_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y, png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point *int_blue_x, png_fixed_point *int_blue_y);
  182 
  183 void png_set_cHRM(png_structp png_ptr, png_infop info_ptr, double white_x, double white_y, double red_x, double red_y, double green_x, double green_y, double blue_x, double blue_y);
  184 void png_set_cHRM_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y, png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x, png_fixed_point int_blue_y);
  185 
  186 png_uint_32 png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma);
  187 png_uint_32 png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point *int_file_gamma);
  188 
  189 void png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma);
  190 void png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_file_gamma);
  191 
  192 
  193 png_uint_32 png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist);
  194 void png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist);
  195 
  196 
  197 png_uint_32 png_get_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method);
  198 void png_set_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_method, int compression_method, int filter_method);
  199 
  200 png_uint_32 png_get_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type);
  201 void png_set_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type);
  202 
  203 
  204 png_uint_32 png_get_pCAL(png_structp png_ptr, png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, png_charp *units, png_charpp *params);
  205 void png_set_pCAL(png_structp png_ptr, png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_charp units, png_charpp params);
  206 
  207 png_uint_32 png_get_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type);
  208 void png_set_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type);
  209 
  210 
  211 png_uint_32 png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette);
  212 void png_set_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette);
  213 
  214 
  215 png_uint_32 png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit);
  216 void png_set_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p sig_bit);
  217 
  218 
  219 png_uint_32 png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *intent);
  220 void png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int intent);
  221 void png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, int intent);
  222 
  223 
  224 png_uint_32 png_get_iCCP(png_structp png_ptr, png_infop info_ptr, png_charpp name, int *compression_type, png_charpp profile, png_uint_32 *proflen);
  225 void png_set_iCCP(png_structp png_ptr, png_infop info_ptr, png_charp name, int compression_type, png_charp profile, png_uint_32 proflen);
  226 
  227 
  228 png_uint_32 png_get_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tpp entries);
  229 void png_set_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tp entries, int nentries);
  230 
  231 
  232 png_uint_32 png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, int *num_text);
  233 void png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text);
  234 
  235 
  236 png_uint_32 png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time);
  237 void png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time);
  238 
  239 
  240 png_uint_32 png_get_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values);
  241 void png_set_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep trans, int num_trans, png_color_16p trans_values);
  242 
  243 png_uint_32 png_get_sCAL(png_structp png_ptr, png_infop info_ptr, int *unit, double *width, double *height);
  244 void png_set_sCAL(png_structp png_ptr, png_infop info_ptr, int unit, double width, double height);
  245 
  246 
  247 void png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_bytep chunk_list, int num_chunks);
  248 void png_set_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns);
  249 void png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr, int chunk, int location);
  250 png_uint_32 png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkpp entries);
  251 
  252 
  253 int png_handle_as_unknown(png_structp png_ptr, png_bytep chunk_name);
  254 void png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask);
  255 
  256 void png_read_png(png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params);
  257 void png_write_png(png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params);
  258 
  259 
  260 /*png_bytep png_sig_bytes(void);*/
  261 
  262 png_charp png_get_copyright(png_structp png_ptr);
  263 png_charp png_get_header_ver(png_structp png_ptr);
  264 png_charp png_get_header_version(png_structp png_ptr);
  265 png_charp png_get_libpng_ver(png_structp png_ptr);
  266 
  267 png_uint_32 png_permit_mng_features(png_structp png_ptr, png_uint_32 mng_features_permitted);
  268 
  269 int png_mmx_support(void);
  270 
  271 void png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode);
  272 
  273 void png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn);
  274 png_voidp png_get_mem_ptr(png_structp png_ptr);
  275 
  276 png_structp png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn);
  277 png_structp png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn);
  278 
  279 png_voidp png_malloc_default(png_structp png_ptr, png_uint_32 size);
  280 void png_free_default(png_structp png_ptr, png_voidp ptr);
  281 
  282 void png_set_user_limits(png_structp png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max);
  283 png_uint_32 png_get_user_width_max(png_structp png_ptr);
  284 png_uint_32 png_get_user_height_max(png_structp png_ptr);
  285 
  286 
  287 /* this is in libpng.a */
  288 
  289 void png_init_io(png_structp png_ptr, png_FILE_p fp);
  290 
  291 
  292 #ifdef __cplusplus
  293 }
  294 #endif
  295 
  296 #endif /* CLIB_PNG_PROTOS_H */