14#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED
18#ifdef PNG_WRITE_SUPPORTED
20#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
26 if (
info_ptr->unknown_chunks_num != 0)
33 up < info_ptr->unknown_chunks +
info_ptr->unknown_chunks_num;
35 if ((
up->location & where) != 0)
40#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
64 png_warning(
png_ptr,
"Writing zero-length unknown chunk");
85 png_debug(1,
"in png_write_info_before_PLTE");
95#ifdef PNG_MNG_FEATURES_SUPPORTED
97 png_ptr->mng_features_permitted != 0)
100 "MNG features are not allowed in a PNG datastream");
101 png_ptr->mng_features_permitted = 0;
130#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
143#ifdef PNG_WRITE_sBIT_SUPPORTED
166#ifdef PNG_WRITE_cLLI_SUPPORTED
172#ifdef PNG_WRITE_mDCV_SUPPORTED
184# ifdef PNG_WRITE_cICP_SUPPORTED
191 info_ptr->cicp_video_full_range_flag);
195# ifdef PNG_WRITE_iCCP_SUPPORTED
203# ifdef PNG_WRITE_sRGB_SUPPORTED
208# ifdef PNG_WRITE_gAMA_SUPPORTED
213# ifdef PNG_WRITE_cHRM_SUPPORTED
225#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
241 png_error(
png_ptr,
"Valid palette required for paletted images");
243#ifdef PNG_WRITE_tRNS_SUPPORTED
246#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
257 for (
j = 0;
j<jend; ++
j)
259 (png_byte)(255 -
info_ptr->trans_alpha[
j]);
266#ifdef PNG_WRITE_bKGD_SUPPORTED
271#ifdef PNG_WRITE_eXIf_SUPPORTED
279#ifdef PNG_WRITE_hIST_SUPPORTED
284#ifdef PNG_WRITE_oFFs_SUPPORTED
290#ifdef PNG_WRITE_pCAL_SUPPORTED
297#ifdef PNG_WRITE_sCAL_SUPPORTED
303#ifdef PNG_WRITE_pHYs_SUPPORTED
309#ifdef PNG_WRITE_tIME_SUPPORTED
317#ifdef PNG_WRITE_sPLT_SUPPORTED
323#ifdef PNG_WRITE_TEXT_SUPPORTED
327 png_debug2(2,
"Writing header text chunk %d, type %d",
i,
332#ifdef PNG_WRITE_iTXt_SUPPORTED
346 png_warning(
png_ptr,
"Unable to write international text");
353#ifdef PNG_WRITE_zTXt_SUPPORTED
360 png_warning(
png_ptr,
"Unable to write compressed text");
366#ifdef PNG_WRITE_tEXt_SUPPORTED
375 png_warning(
png_ptr,
"Unable to write uncompressed text");
381#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
400 png_error(
png_ptr,
"No IDATs written into file");
402#ifdef PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED
405 png_benign_error(
png_ptr,
"Wrote palette index exceeding num_palette");
411#ifdef PNG_WRITE_TEXT_SUPPORTED
414#ifdef PNG_WRITE_tIME_SUPPORTED
421#ifdef PNG_WRITE_TEXT_SUPPORTED
425 png_debug2(2,
"Writing trailer text chunk %d, type %d",
i,
430#ifdef PNG_WRITE_iTXt_SUPPORTED
444 png_warning(
png_ptr,
"Unable to write international text");
450#ifdef PNG_WRITE_zTXt_SUPPORTED
457 png_warning(
png_ptr,
"Unable to write compressed text");
463#ifdef PNG_WRITE_tEXt_SUPPORTED
470 png_warning(
png_ptr,
"Unable to write uncompressed text");
476#ifdef PNG_WRITE_eXIf_SUPPORTED
482#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
499#ifdef PNG_WRITE_FLUSH_SUPPORTED
500# ifdef PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED
506#ifdef PNG_CONVERT_tIME_SUPPORTED
508png_convert_from_struct_tm(
png_timep ptime,
const struct tm * ttime)
510 png_debug(1,
"in png_convert_from_struct_tm");
512 ptime->
year = (png_uint_16)(1900 + ttime->
tm_year);
525 png_debug(1,
"in png_convert_from_time_t");
534 memset(ptime, 0,
sizeof(*ptime));
538 png_convert_from_struct_tm(ptime, tbuf);
545 png_error_ptr error_fn, png_error_ptr warn_fn),
548#ifndef PNG_USER_MEM_SUPPORTED
552 return png_create_write_struct_2(user_png_ver, error_ptr, error_fn,
559 png_error_ptr error_fn, png_error_ptr warn_fn,
png_voidp mem_ptr,
560 png_malloc_ptr malloc_fn, png_free_ptr free_fn),
564 error_fn, warn_fn, mem_ptr, malloc_fn, free_fn);
580 png_ptr->zlib_window_bits = 15;
583#ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
586 png_ptr->zlib_text_mem_level = 8;
587 png_ptr->zlib_text_window_bits = 15;
596#ifdef PNG_BENIGN_WRITE_ERRORS_SUPPORTED
660#ifdef PNG_WRITE_INTERLACING_SUPPORTED
664 num_pass = png_set_interlace_handling(
png_ptr);
679#ifdef PNG_MNG_FEATURES_SUPPORTED
684 png_debug(1,
"in png_do_write_intrapixel");
704 for (
i = 0, rp =
row;
i < row_width;
i++, rp += bytes_per_pixel)
706 *(rp) = (png_byte)(*rp - *(rp + 1));
707 *(rp + 2) = (png_byte)(*(rp + 2) - *(rp + 1));
711#ifdef PNG_WRITE_16BIT_SUPPORTED
726 for (
i = 0, rp =
row;
i < row_width;
i++, rp += bytes_per_pixel)
733 *(rp ) = (png_byte)(
red >> 8);
734 *(rp + 1) = (png_byte)
red;
735 *(rp + 4) = (png_byte)(
blue >> 8);
736 *(rp + 5) = (png_byte)
blue;
751 png_debug2(1,
"in png_write_row (row %u, pass %d)",
763 "png_write_info was never called before png_write_row");
766#if !defined(PNG_WRITE_INVERT_SUPPORTED) && defined(PNG_READ_INVERT_SUPPORTED)
768 png_warning(
png_ptr,
"PNG_WRITE_INVERT_SUPPORTED is not defined");
771#if !defined(PNG_WRITE_FILLER_SUPPORTED) && defined(PNG_READ_FILLER_SUPPORTED)
773 png_warning(
png_ptr,
"PNG_WRITE_FILLER_SUPPORTED is not defined");
775#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
776 defined(PNG_READ_PACKSWAP_SUPPORTED)
779 "PNG_WRITE_PACKSWAP_SUPPORTED is not defined");
782#if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED)
784 png_warning(
png_ptr,
"PNG_WRITE_PACK_SUPPORTED is not defined");
787#if !defined(PNG_WRITE_SHIFT_SUPPORTED) && defined(PNG_READ_SHIFT_SUPPORTED)
789 png_warning(
png_ptr,
"PNG_WRITE_SHIFT_SUPPORTED is not defined");
792#if !defined(PNG_WRITE_BGR_SUPPORTED) && defined(PNG_READ_BGR_SUPPORTED)
794 png_warning(
png_ptr,
"PNG_WRITE_BGR_SUPPORTED is not defined");
797#if !defined(PNG_WRITE_SWAP_SUPPORTED) && defined(PNG_READ_SWAP_SUPPORTED)
799 png_warning(
png_ptr,
"PNG_WRITE_SWAP_SUPPORTED is not defined");
805#ifdef PNG_WRITE_INTERLACING_SUPPORTED
807 if (
png_ptr->interlaced != 0 &&
813 if ((
png_ptr->row_number & 0x07) != 0)
829 if ((
png_ptr->row_number & 0x07) != 4)
845 if ((
png_ptr->row_number & 0x03) != 2)
861 if ((
png_ptr->row_number & 0x01) == 0)
892#ifdef PNG_WRITE_INTERLACING_SUPPORTED
897 png_do_write_interlace(&row_info,
png_ptr->row_buf + 1,
png_ptr->pass);
899 if (row_info.
width == 0)
907#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
909 if (
png_ptr->transformations != 0)
910 png_do_write_transformations(
png_ptr, &row_info);
918 png_error(
png_ptr,
"internal write transform logic error");
920#ifdef PNG_MNG_FEATURES_SUPPORTED
934 png_do_write_intrapixel(&row_info,
png_ptr->row_buf + 1);
939#ifdef PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED
943 png_do_check_palette_indexes(
png_ptr, &row_info);
947 png_write_find_filter(
png_ptr, &row_info);
953#ifdef PNG_WRITE_FLUSH_SUPPORTED
999#ifdef PNG_WRITE_FILTER_SUPPORTED
1008#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
1029 png_debug(1,
"in png_destroy_write_struct");
1031 if (png_ptr_ptr !=
NULL)
1037 png_destroy_info_struct(
png_ptr, info_ptr_ptr);
1039 *png_ptr_ptr =
NULL;
1041 png_destroy_png_struct(
png_ptr);
1055#ifdef PNG_MNG_FEATURES_SUPPORTED
1065#ifdef PNG_WRITE_FILTER_SUPPORTED
1074#ifdef PNG_WRITE_FILTER_SUPPORTED
1088 png_ptr->do_filter = (png_byte)filters;
break;
1095#ifdef PNG_WRITE_FILTER_SUPPORTED
1131 "png_set_filter: UP/AVG/PAETH cannot be added after start");
1157 png_malloc(
png_ptr, buf_size));
1159 if (num_filters > 1)
1163 png_malloc(
png_ptr, buf_size));
1166 png_ptr->do_filter = (png_byte)filters;
1170 png_error(
png_ptr,
"Unknown custom filter method");
1173#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
1175#ifdef PNG_FLOATING_POINT_SUPPORTED
1189#ifdef PNG_FIXED_POINT_SUPPORTED
1204#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
1208 png_debug(1,
"in png_set_compression_level");
1219 png_debug(1,
"in png_set_compression_mem_level");
1224 png_ptr->zlib_mem_level = mem_level;
1230 png_debug(1,
"in png_set_compression_strategy");
1238 png_ptr->zlib_strategy = strategy;
1247 png_debug(1,
"in png_set_compression_window_bits");
1258 if (window_bits > 15)
1260 png_warning(
png_ptr,
"Only compression windows <= 32k supported by PNG");
1264 else if (window_bits < 8)
1266 png_warning(
png_ptr,
"Only compression windows >= 256 supported by PNG");
1270 png_ptr->zlib_window_bits = window_bits;
1276 png_debug(1,
"in png_set_compression_method");
1285 png_warning(
png_ptr,
"Only compression method 8 is supported by PNG");
1292#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
1296 png_debug(1,
"in png_set_text_compression_level");
1307 png_debug(1,
"in png_set_text_compression_mem_level");
1312 png_ptr->zlib_text_mem_level = mem_level;
1318 png_debug(1,
"in png_set_text_compression_strategy");
1323 png_ptr->zlib_text_strategy = strategy;
1332 png_debug(1,
"in png_set_text_compression_window_bits");
1337 if (window_bits > 15)
1339 png_warning(
png_ptr,
"Only compression windows <= 32k supported by PNG");
1343 else if (window_bits < 8)
1345 png_warning(
png_ptr,
"Only compression windows >= 256 supported by PNG");
1349 png_ptr->zlib_text_window_bits = window_bits;
1355 png_debug(1,
"in png_set_text_compression_method");
1361 png_warning(
png_ptr,
"Only compression method 8 is supported by PNG");
1371 png_debug(1,
"in png_set_write_status_fn");
1376 png_ptr->write_row_fn = write_row_fn;
1379#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
1382 png_user_transform_ptr write_user_transform_fn)
1384 png_debug(1,
"in png_set_write_user_transform_fn");
1390 png_ptr->write_user_transform_fn = write_user_transform_fn;
1395#ifdef PNG_INFO_IMAGE_SUPPORTED
1418#ifdef PNG_WRITE_INVERT_SUPPORTED
1428#ifdef PNG_WRITE_SHIFT_SUPPORTED
1437#ifdef PNG_WRITE_PACK_SUPPORTED
1445#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
1458#ifdef PNG_WRITE_FILLER_SUPPORTED
1463 "PNG_TRANSFORM_STRIP_FILLER: BEFORE+AFTER not supported");
1478#ifdef PNG_WRITE_BGR_SUPPORTED
1486#ifdef PNG_WRITE_SWAP_SUPPORTED
1494#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
1502#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
1503 png_set_invert_alpha(
png_ptr);
1521#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED
1527 png_safe_error, png_safe_warning);
1557 return png_image_error(
image,
"png_image_write_: out of memory");
1566 png_int_32 row_stride;
1568 int convert_to_8bit;
1579} png_image_write_control;
1586png_write_image_16bit(
png_voidp argument)
1604# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
1619 png_error(
png_ptr,
"png_write_image: internal call error");
1632 while (out_ptr < row_end)
1634 png_uint_16
alpha = in_ptr[aindex];
1638 out_ptr[aindex] =
alpha;
1646 reciprocal = ((0xffff<<15)+(
alpha>>1))/
alpha;
1651 png_uint_16 component = *in_ptr++;
1660 if (component >=
alpha)
1666 else if (component > 0 &&
alpha < 65535)
1670 component = (png_uint_16)(
calc >> 15);
1673 *out_ptr++ = component;
1683 input_row +=
display->row_step / 2;
1697# define UNP_RECIPROCAL(alpha) ((((0xffff*0xff)<<7)+((alpha)>>1))/(alpha))
1719 else if (component > 0)
1728 component *= reciprocal;
1737 return (png_byte)PNG_sRGB_FROM_LINEAR(component);
1764# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
1784 while (out_ptr < row_end)
1786 png_uint_16
alpha = in_ptr[aindex];
1792 out_ptr[aindex] = alphabyte;
1794 if (alphabyte > 0 && alphabyte < 255)
1795 reciprocal = UNP_RECIPROCAL(
alpha);
1799 *out_ptr++ = png_unpremultiply(*in_ptr++,
alpha, reciprocal);
1809 input_row +=
display->row_step / 2;
1825 while (out_ptr < row_end)
1830 *out_ptr++ = (png_byte)PNG_sRGB_FROM_LINEAR(component);
1834 input_row +=
display->row_step / 2;
1842png_image_set_PLTE(png_image_write_control *
display)
1845 const void *cmap =
display->colormap;
1846 int entries =
image->colormap_entries > 256 ? 256 :
1853# if defined(PNG_FORMAT_BGR_SUPPORTED) &&\
1854 defined(PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED)
1861# ifdef PNG_FORMAT_BGR_SUPPORTED
1871 memset(tRNS, 255, (
sizeof tRNS));
1874 for (
i=num_trans=0;
i<entries; ++
i)
1889 palette[
i].blue = (png_byte)PNG_sRGB_FROM_LINEAR(255 *
1891 palette[
i].green = (png_byte)PNG_sRGB_FROM_LINEAR(255 *
1893 palette[
i].red = (png_byte)PNG_sRGB_FROM_LINEAR(255 *
1899 (png_byte)PNG_sRGB_FROM_LINEAR(255 * *
entry);
1912 if (alphabyte > 0 && alphabyte < 255)
1913 reciprocal = (((0xffff*0xff)<<7)+(
alpha>>1))/
alpha;
1915 tRNS[
i] = alphabyte;
1916 if (alphabyte < 255)
1921 palette[
i].blue = png_unpremultiply(
entry[afirst + (2 ^ bgr)],
1931 png_unpremultiply(
entry[afirst],
alpha, reciprocal);
1944 tRNS[
i] =
entry[afirst ? 0 : 3];
1955 tRNS[
i] =
entry[1 ^ afirst];
1981 png_set_tRNS(
image->opaque->png_ptr,
image->opaque->info_ptr, tRNS,
2001 int write_16bit = linear && (
display->convert_to_8bit == 0);
2003# ifdef PNG_BENIGN_ERRORS_SUPPORTED
2005 png_set_benign_errors(
png_ptr, 0);
2020 display->row_stride = (png_int_32)png_row_stride;
2034 if (
image->height > 0xffffffffU/png_row_stride)
2035 png_error(
image->opaque->png_ptr,
"memory image too large");
2039 png_error(
image->opaque->png_ptr,
"supplied row stride too small");
2043 png_error(
image->opaque->png_ptr,
"image row stride too large");
2054 entries > 16 ? 8 : (entries > 4 ? 4 : (entries > 2 ? 2 : 1)),
2062 png_error(
image->opaque->png_ptr,
2063 "no color-map for color-mapped image");
2068 write_16bit ? 16 : 8,
2079 if (write_16bit != 0)
2111 if (write_16bit != 0)
2113 png_uint_16 le = 0x0001;
2119# ifdef PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED
2124 format &= ~PNG_FORMAT_FLAG_BGR;
2128# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
2133 format &= ~PNG_FORMAT_FLAG_AFIRST;
2140 if (colormap != 0 &&
image->colormap_entries <= 16)
2146 png_error(
png_ptr,
"png_write_image: unsupported transformation");
2156 row += (
image->height-1) * (-row_step);
2171# ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
2172 png_set_compression_level(
png_ptr, 3);
2180 if (linear != 0 && (
alpha != 0 ||
display->convert_to_8bit != 0))
2187 if (write_16bit != 0)
2243 png_error(
png_ptr,
"png_image_write_to_memory: PNG too big");
2253png_image_write_memory(
png_voidp argument)
2263 image_memory_write, image_memory_flush);
2265 return png_image_write_main(
display);
2271 const void *
buffer, png_int_32 row_stride,
const void *colormap)
2284 if (png_image_write_init(
image) != 0)
2286 png_image_write_control
display;
2292 display.row_stride = row_stride;
2294 display.convert_to_8bit = convert_to_8bit;
2296 display.memory_bytes = *memory_bytes;
2300 png_image_free(
image);
2311 *memory_bytes =
display.output_bytes;
2322 return png_image_error(
image,
2323 "png_image_write_to_memory: invalid argument");
2327 return png_image_error(
image,
2328 "png_image_write_to_memory: incorrect PNG_IMAGE_VERSION");
2334#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED
2337 const void *
buffer, png_int_32 row_stride,
const void *colormap)
2344 if (png_image_write_init(
image) != 0)
2346 png_image_write_control
display;
2358 display.row_stride = row_stride;
2360 display.convert_to_8bit = convert_to_8bit;
2363 png_image_free(
image);
2372 return png_image_error(
image,
2373 "png_image_write_to_stdio: invalid argument");
2377 return png_image_error(
image,
2378 "png_image_write_to_stdio: incorrect PNG_IMAGE_VERSION");
2386 int convert_to_8bit,
const void *
buffer, png_int_32 row_stride,
2387 const void *colormap)
2398 if (png_image_write_to_stdio(
image, fp, convert_to_8bit,
buffer,
2399 row_stride, colormap) != 0)
2439 return png_image_error(
image,
2440 "png_image_write_to_file: invalid argument");
2444 return png_image_error(
image,
2445 "png_image_write_to_file: incorrect PNG_IMAGE_VERSION");
int deflateEnd(z_streamp strm) DECLSPEC_HIDDEN
char *CDECL strerror(int err)
int CDECL fclose(FILE *file)
FILE *CDECL fopen(const char *path, const char *mode)
int CDECL fflush(FILE *file)
int CDECL ferror(FILE *file)
static struct tm * gmtime(const time_t *t)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define check(expected, result)
GLclampf GLclampf GLclampf alpha
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define memcpy(s1, s2, n)
#define PNG_COLOR_TYPE_RGB
#define PNG_COLOR_TYPE_RGB_ALPHA
#define PNG_COLOR_TYPE_PALETTE
static char memory[1024 *256]
#define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB
#define PNG_FORMAT_FLAG_COLOR
#define PNG_TRANSFORM_SWAP_ENDIAN
#define PNG_IMAGE_VERSION
#define PNG_TEXT_COMPRESSION_zTXt_WR
#define PNG_TRANSFORM_INVERT_ALPHA
#define PNG_INTRAPIXEL_DIFFERENCING
#define PNG_FILLER_BEFORE
#define PNG_TRANSFORM_PACKING
#define PNG_FORMAT_FLAG_AFIRST
#define PNG_MAX_PALETTE_LENGTH
#define PNG_TRANSFORM_SWAP_ALPHA
#define PNG_FORMAT_FLAG_COLORMAP
struct png_control * png_controlp
#define PNG_TRANSFORM_INVERT_MONO
#define PNG_TEXT_COMPRESSION_zTXt
png_set_filter_heuristics_fixed
#define PNG_IMAGE_FLAG_FAST
#define PNG_FLAG_MNG_FILTER_64
png_structrp int int num_weights
#define PNG_TRANSFORM_PACKSWAP
#define PNG_TEXT_COMPRESSION_NONE
#define PNG_TEXT_COMPRESSION_NONE_WR
#define PNG_FORMAT_FLAG_BGR
#define PNG_FILTER_VALUE_AVG
#define PNG_COLOR_MASK_COLOR
png_const_structrp png_const_inforp png_fixed_point *int_file_gamma png_set_gAMA_fixed
#define PNG_TRANSFORM_STRIP_FILLER_AFTER
#define PNG_FILTER_VALUE_UP
#define PNG_TRANSFORM_BGR
#define PNG_TRANSFORM_STRIP_FILLER_BEFORE
#define PNG_FILTER_TYPE_BASE
#define PNG_HANDLE_CHUNK_NEVER
#define PNG_COLOR_MASK_ALPHA
#define PNG_HANDLE_CHUNK_ALWAYS
#define PNG_FORMAT_FLAG_LINEAR
#define PNG_sRGB_INTENT_PERCEPTUAL
png_structrp int heuristic_method
const png_info *PNG_RESTRICT png_const_inforp
#define PNG_FILTER_VALUE_PAETH
#define PNG_LIBPNG_VER_STRING
#define PNG_FORMAT_FLAG_ALPHA
#define PNG_FILTER_VALUE_NONE
png_structrp int int png_const_fixed_point_p filter_weights
#define PNG_INTERLACE_NONE
#define PNG_IMAGE_SAMPLE_CHANNELS(fmt)
png_info *PNG_RESTRICT png_inforp
#define PNG_COMPRESSION_TYPE_BASE
#define PNG_FILTER_VALUE_SUB
#define PNG_IMAGE_PIXEL_CHANNELS(fmt)
#define PNG_HANDLE_CHUNK_AS_DEFAULT
png_struct *PNG_RESTRICT png_structrp
#define PNG_TRANSFORM_SHIFT
png_const_structrp png_const_inforp info_ptr
#define PNG_FUNCTION(type, name, args, attributes)
const png_byte * png_const_bytep
const png_uint_16 * png_const_uint_16p
png_uint_16 * png_uint_16p
const png_fixed_point * png_const_fixed_point_p
const char * png_const_charp
#define png_debug2(l, m, p1, p2)
#define png_debug1(l, m, p1)
#define PNG_Z_DEFAULT_STRATEGY
#define PNG_TEXT_Z_DEFAULT_COMPRESSION
#define PNG_WRITE_INTERLACING_SUPPORTED
#define PNG_Z_DEFAULT_COMPRESSION
#define PNG_TEXT_Z_DEFAULT_STRATEGY
#define PNG_UNUSED(param)
#define PNG_HAVE_PNG_SIGNATURE
#define PNG_ROWBYTES(pixel_bits, width)
#define png_app_error(pp, s)
#define png_app_warning(pp, s)
#define PNG_FLAG_BENIGN_ERRORS_WARN
#define PNG_USER_TRANSFORM
#define PNG_WROTE_INFO_BEFORE_PLTE
#define PNG_FLAG_APP_WARNINGS_WARN
#define PNG_FLAG_ZSTREAM_INITIALIZED
#define PNG_GAMMA_sRGB_INVERSE
#define png_voidcast(type, value)
const png_double * png_const_doublep
#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY