15#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED
19#ifdef PNG_WRITE_SUPPORTED
21#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
27 if (
info_ptr->unknown_chunks_num != 0)
34 up < info_ptr->unknown_chunks +
info_ptr->unknown_chunks_num;
36 if ((
up->location & where) != 0)
41#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
65 png_warning(
png_ptr,
"Writing zero-length unknown chunk");
86 png_debug(1,
"in png_write_info_before_PLTE");
96#ifdef PNG_MNG_FEATURES_SUPPORTED
98 png_ptr->mng_features_permitted != 0)
101 "MNG features are not allowed in a PNG datastream");
102 png_ptr->mng_features_permitted = 0;
131#ifdef PNG_GAMMA_SUPPORTED
132# ifdef PNG_WRITE_gAMA_SUPPORTED
133 if ((
info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 &&
134 (
info_ptr->colorspace.flags & PNG_COLORSPACE_FROM_gAMA) != 0 &&
140#ifdef PNG_COLORSPACE_SUPPORTED
144# ifdef PNG_WRITE_iCCP_SUPPORTED
145 if ((
info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 &&
148# ifdef PNG_WRITE_sRGB_SUPPORTED
151 "profile matches sRGB but writing iCCP instead");
157# ifdef PNG_WRITE_sRGB_SUPPORTED
162# ifdef PNG_WRITE_sRGB_SUPPORTED
163 if ((
info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 &&
169#ifdef PNG_WRITE_sBIT_SUPPORTED
174#ifdef PNG_COLORSPACE_SUPPORTED
175# ifdef PNG_WRITE_cHRM_SUPPORTED
176 if ((
info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 &&
177 (
info_ptr->colorspace.flags & PNG_COLORSPACE_FROM_cHRM) != 0 &&
183#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
194#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
210 png_error(
png_ptr,
"Valid palette required for paletted images");
212#ifdef PNG_WRITE_tRNS_SUPPORTED
215#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
226 for (
j = 0;
j<jend; ++
j)
228 (png_byte)(255 -
info_ptr->trans_alpha[
j]);
235#ifdef PNG_WRITE_bKGD_SUPPORTED
240#ifdef PNG_WRITE_eXIf_SUPPORTED
245#ifdef PNG_WRITE_hIST_SUPPORTED
250#ifdef PNG_WRITE_oFFs_SUPPORTED
256#ifdef PNG_WRITE_pCAL_SUPPORTED
263#ifdef PNG_WRITE_sCAL_SUPPORTED
269#ifdef PNG_WRITE_pHYs_SUPPORTED
275#ifdef PNG_WRITE_tIME_SUPPORTED
283#ifdef PNG_WRITE_sPLT_SUPPORTED
289#ifdef PNG_WRITE_TEXT_SUPPORTED
293 png_debug2(2,
"Writing header text chunk %d, type %d",
i,
298#ifdef PNG_WRITE_iTXt_SUPPORTED
312 png_warning(
png_ptr,
"Unable to write international text");
319#ifdef PNG_WRITE_zTXt_SUPPORTED
326 png_warning(
png_ptr,
"Unable to write compressed text");
332#ifdef PNG_WRITE_tEXt_SUPPORTED
341 png_warning(
png_ptr,
"Unable to write uncompressed text");
347#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
366 png_error(
png_ptr,
"No IDATs written into file");
368#ifdef PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED
370 png_benign_error(
png_ptr,
"Wrote palette index exceeding num_palette");
376#ifdef PNG_WRITE_TEXT_SUPPORTED
379#ifdef PNG_WRITE_tIME_SUPPORTED
386#ifdef PNG_WRITE_TEXT_SUPPORTED
390 png_debug2(2,
"Writing trailer text chunk %d, type %d",
i,
395#ifdef PNG_WRITE_iTXt_SUPPORTED
409 png_warning(
png_ptr,
"Unable to write international text");
415#ifdef PNG_WRITE_zTXt_SUPPORTED
422 png_warning(
png_ptr,
"Unable to write compressed text");
428#ifdef PNG_WRITE_tEXt_SUPPORTED
435 png_warning(
png_ptr,
"Unable to write uncompressed text");
441#ifdef PNG_WRITE_eXIf_SUPPORTED
446#ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
463#ifdef PNG_WRITE_FLUSH_SUPPORTED
464# ifdef PNG_WRITE_FLUSH_AFTER_IEND_SUPPORTED
470#ifdef PNG_CONVERT_tIME_SUPPORTED
472png_convert_from_struct_tm(
png_timep ptime,
const struct tm * ttime)
474 png_debug(1,
"in png_convert_from_struct_tm");
476 ptime->
year = (png_uint_16)(1900 + ttime->
tm_year);
489 png_debug(1,
"in png_convert_from_time_t");
498 memset(ptime, 0,
sizeof(*ptime));
502 png_convert_from_struct_tm(ptime, tbuf);
509 png_error_ptr error_fn, png_error_ptr warn_fn),
PNG_ALLOCATED)
511#ifndef PNG_USER_MEM_SUPPORTED
515 return png_create_write_struct_2(user_png_ver, error_ptr, error_fn,
522 png_error_ptr error_fn, png_error_ptr warn_fn,
png_voidp mem_ptr,
523 png_malloc_ptr malloc_fn, png_free_ptr free_fn),
PNG_ALLOCATED)
526 error_fn, warn_fn, mem_ptr, malloc_fn, free_fn);
542 png_ptr->zlib_window_bits = 15;
545#ifdef PNG_WRITE_COMPRESSED_TEXT_SUPPORTED
548 png_ptr->zlib_text_mem_level = 8;
549 png_ptr->zlib_text_window_bits = 15;
558#ifdef PNG_BENIGN_WRITE_ERRORS_SUPPORTED
622#ifdef PNG_WRITE_INTERLACING_SUPPORTED
626 num_pass = png_set_interlace_handling(
png_ptr);
641#ifdef PNG_MNG_FEATURES_SUPPORTED
646 png_debug(1,
"in png_do_write_intrapixel");
666 for (
i = 0, rp =
row;
i < row_width;
i++, rp += bytes_per_pixel)
668 *(rp) = (png_byte)(*rp - *(rp + 1));
669 *(rp + 2) = (png_byte)(*(rp + 2) - *(rp + 1));
673#ifdef PNG_WRITE_16BIT_SUPPORTED
688 for (
i = 0, rp =
row;
i < row_width;
i++, rp += bytes_per_pixel)
695 *(rp ) = (png_byte)(
red >> 8);
696 *(rp + 1) = (png_byte)
red;
697 *(rp + 4) = (png_byte)(
blue >> 8);
698 *(rp + 5) = (png_byte)
blue;
716 png_debug2(1,
"in png_write_row (row %u, pass %d)",
725 "png_write_info was never called before png_write_row");
728#if !defined(PNG_WRITE_INVERT_SUPPORTED) && defined(PNG_READ_INVERT_SUPPORTED)
730 png_warning(
png_ptr,
"PNG_WRITE_INVERT_SUPPORTED is not defined");
733#if !defined(PNG_WRITE_FILLER_SUPPORTED) && defined(PNG_READ_FILLER_SUPPORTED)
735 png_warning(
png_ptr,
"PNG_WRITE_FILLER_SUPPORTED is not defined");
737#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && \
738 defined(PNG_READ_PACKSWAP_SUPPORTED)
741 "PNG_WRITE_PACKSWAP_SUPPORTED is not defined");
744#if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED)
746 png_warning(
png_ptr,
"PNG_WRITE_PACK_SUPPORTED is not defined");
749#if !defined(PNG_WRITE_SHIFT_SUPPORTED) && defined(PNG_READ_SHIFT_SUPPORTED)
751 png_warning(
png_ptr,
"PNG_WRITE_SHIFT_SUPPORTED is not defined");
754#if !defined(PNG_WRITE_BGR_SUPPORTED) && defined(PNG_READ_BGR_SUPPORTED)
756 png_warning(
png_ptr,
"PNG_WRITE_BGR_SUPPORTED is not defined");
759#if !defined(PNG_WRITE_SWAP_SUPPORTED) && defined(PNG_READ_SWAP_SUPPORTED)
761 png_warning(
png_ptr,
"PNG_WRITE_SWAP_SUPPORTED is not defined");
767#ifdef PNG_WRITE_INTERLACING_SUPPORTED
769 if (
png_ptr->interlaced != 0 &&
775 if ((
png_ptr->row_number & 0x07) != 0)
791 if ((
png_ptr->row_number & 0x07) != 4)
807 if ((
png_ptr->row_number & 0x03) != 2)
823 if ((
png_ptr->row_number & 0x01) == 0)
854#ifdef PNG_WRITE_INTERLACING_SUPPORTED
859 png_do_write_interlace(&row_info,
png_ptr->row_buf + 1,
png_ptr->pass);
861 if (row_info.
width == 0)
869#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED
871 if (
png_ptr->transformations != 0)
872 png_do_write_transformations(
png_ptr, &row_info);
880 png_error(
png_ptr,
"internal write transform logic error");
882#ifdef PNG_MNG_FEATURES_SUPPORTED
896 png_do_write_intrapixel(&row_info,
png_ptr->row_buf + 1);
901#ifdef PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED
905 png_do_check_palette_indexes(
png_ptr, &row_info);
909 png_write_find_filter(
png_ptr, &row_info);
915#ifdef PNG_WRITE_FLUSH_SUPPORTED
961#ifdef PNG_WRITE_FILTER_SUPPORTED
970#ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED
991 png_debug(1,
"in png_destroy_write_struct");
993 if (png_ptr_ptr !=
NULL)
999 png_destroy_info_struct(
png_ptr, info_ptr_ptr);
1001 *png_ptr_ptr =
NULL;
1003 png_destroy_png_struct(
png_ptr);
1017#ifdef PNG_MNG_FEATURES_SUPPORTED
1027#ifdef PNG_WRITE_FILTER_SUPPORTED
1036#ifdef PNG_WRITE_FILTER_SUPPORTED
1050 png_ptr->do_filter = (png_byte)filters;
break;
1057#ifdef PNG_WRITE_FILTER_SUPPORTED
1093 "png_set_filter: UP/AVG/PAETH cannot be added after start");
1119 png_malloc(
png_ptr, buf_size));
1121 if (num_filters > 1)
1125 png_malloc(
png_ptr, buf_size));
1128 png_ptr->do_filter = (png_byte)filters;
1132 png_error(
png_ptr,
"Unknown custom filter method");
1135#ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
1137#ifdef PNG_FLOATING_POINT_SUPPORTED
1151#ifdef PNG_FIXED_POINT_SUPPORTED
1166#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
1170 png_debug(1,
"in png_set_compression_level");
1181 png_debug(1,
"in png_set_compression_mem_level");
1186 png_ptr->zlib_mem_level = mem_level;
1192 png_debug(1,
"in png_set_compression_strategy");
1200 png_ptr->zlib_strategy = strategy;
1218 if (window_bits > 15)
1220 png_warning(
png_ptr,
"Only compression windows <= 32k supported by PNG");
1224 else if (window_bits < 8)
1226 png_warning(
png_ptr,
"Only compression windows >= 256 supported by PNG");
1230 png_ptr->zlib_window_bits = window_bits;
1236 png_debug(1,
"in png_set_compression_method");
1245 png_warning(
png_ptr,
"Only compression method 8 is supported by PNG");
1252#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
1256 png_debug(1,
"in png_set_text_compression_level");
1267 png_debug(1,
"in png_set_text_compression_mem_level");
1272 png_ptr->zlib_text_mem_level = mem_level;
1278 png_debug(1,
"in png_set_text_compression_strategy");
1283 png_ptr->zlib_text_strategy = strategy;
1295 if (window_bits > 15)
1297 png_warning(
png_ptr,
"Only compression windows <= 32k supported by PNG");
1301 else if (window_bits < 8)
1303 png_warning(
png_ptr,
"Only compression windows >= 256 supported by PNG");
1307 png_ptr->zlib_text_window_bits = window_bits;
1313 png_debug(1,
"in png_set_text_compression_method");
1319 png_warning(
png_ptr,
"Only compression method 8 is supported by PNG");
1332 png_ptr->write_row_fn = write_row_fn;
1335#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
1338 write_user_transform_fn)
1340 png_debug(1,
"in png_set_write_user_transform_fn");
1346 png_ptr->write_user_transform_fn = write_user_transform_fn;
1351#ifdef PNG_INFO_IMAGE_SUPPORTED
1372#ifdef PNG_WRITE_INVERT_SUPPORTED
1382#ifdef PNG_WRITE_SHIFT_SUPPORTED
1391#ifdef PNG_WRITE_PACK_SUPPORTED
1399#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
1412#ifdef PNG_WRITE_FILLER_SUPPORTED
1417 "PNG_TRANSFORM_STRIP_FILLER: BEFORE+AFTER not supported");
1432#ifdef PNG_WRITE_BGR_SUPPORTED
1440#ifdef PNG_WRITE_SWAP_SUPPORTED
1448#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
1456#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
1457 png_set_invert_alpha(
png_ptr);
1475#ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED
1481 png_safe_error, png_safe_warning);
1490 png_malloc_warn(
png_ptr, (
sizeof *control)));
1492 if (control !=
NULL)
1494 memset(control, 0, (
sizeof *control));
1498 control->for_write = 1;
1500 image->opaque = control;
1511 return png_image_error(
image,
"png_image_write_: out of memory");
1520 png_int_32 row_stride;
1522 int convert_to_8bit;
1531} png_image_write_control;
1538png_write_image_16bit(
png_voidp argument)
1556# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
1571 png_error(
png_ptr,
"png_write_image: internal call error");
1584 while (out_ptr < row_end)
1586 png_uint_16
alpha = in_ptr[aindex];
1590 out_ptr[aindex] =
alpha;
1598 reciprocal = ((0xffff<<15)+(
alpha>>1))/
alpha;
1603 png_uint_16 component = *in_ptr++;
1612 if (component >=
alpha)
1618 else if (component > 0 &&
alpha < 65535)
1622 component = (png_uint_16)(
calc >> 15);
1625 *out_ptr++ = component;
1635 input_row += (png_uint_16)
display->row_bytes/(
sizeof (png_uint_16));
1649# define UNP_RECIPROCAL(alpha) ((((0xffff*0xff)<<7)+((alpha)>>1))/(alpha))
1671 else if (component > 0)
1680 component *= reciprocal;
1689 return (png_byte)PNG_sRGB_FROM_LINEAR(component);
1716# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
1736 while (out_ptr < row_end)
1738 png_uint_16
alpha = in_ptr[aindex];
1744 out_ptr[aindex] = alphabyte;
1746 if (alphabyte > 0 && alphabyte < 255)
1747 reciprocal = UNP_RECIPROCAL(
alpha);
1751 *out_ptr++ = png_unpremultiply(*in_ptr++,
alpha, reciprocal);
1761 input_row += (png_uint_16)
display->row_bytes/(
sizeof (png_uint_16));
1777 while (out_ptr < row_end)
1782 *out_ptr++ = (png_byte)PNG_sRGB_FROM_LINEAR(component);
1786 input_row += (png_uint_16)
display->row_bytes/(
sizeof (png_uint_16));
1794png_image_set_PLTE(png_image_write_control *
display)
1797 const void *cmap =
display->colormap;
1798 int entries =
image->colormap_entries > 256 ? 256 :
1805# if defined(PNG_FORMAT_BGR_SUPPORTED) &&\
1806 defined(PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED)
1813# ifdef PNG_FORMAT_BGR_SUPPORTED
1823 memset(tRNS, 255, (
sizeof tRNS));
1826 for (
i=num_trans=0;
i<entries; ++
i)
1841 palette[
i].blue = (png_byte)PNG_sRGB_FROM_LINEAR(255 *
1843 palette[
i].green = (png_byte)PNG_sRGB_FROM_LINEAR(255 *
1845 palette[
i].red = (png_byte)PNG_sRGB_FROM_LINEAR(255 *
1851 (png_byte)PNG_sRGB_FROM_LINEAR(255 * *
entry);
1864 if (alphabyte > 0 && alphabyte < 255)
1865 reciprocal = (((0xffff*0xff)<<7)+(
alpha>>1))/
alpha;
1867 tRNS[
i] = alphabyte;
1868 if (alphabyte < 255)
1873 palette[
i].blue = png_unpremultiply(
entry[afirst + (2 ^ bgr)],
1883 png_unpremultiply(
entry[afirst],
alpha, reciprocal);
1896 tRNS[
i] =
entry[afirst ? 0 : 3];
1907 tRNS[
i] =
entry[1 ^ afirst];
1933 png_set_tRNS(
image->opaque->png_ptr,
image->opaque->info_ptr, tRNS,
1953 int write_16bit = linear && (
display->convert_to_8bit == 0);
1955# ifdef PNG_BENIGN_ERRORS_SUPPORTED
1957 png_set_benign_errors(
png_ptr, 0);
1972 display->row_stride = (png_int_32)png_row_stride;
1986 if (
image->height > 0xffffffffU/png_row_stride)
1987 png_error(
image->opaque->png_ptr,
"memory image too large");
1991 png_error(
image->opaque->png_ptr,
"supplied row stride too small");
1995 png_error(
image->opaque->png_ptr,
"image row stride too large");
2006 entries > 16 ? 8 : (entries > 4 ? 4 : (entries > 2 ? 2 : 1)),
2014 png_error(
image->opaque->png_ptr,
2015 "no color-map for color-mapped image");
2020 write_16bit ? 16 : 8,
2031 if (write_16bit != 0)
2063 if (write_16bit != 0)
2065 png_uint_16 le = 0x0001;
2071# ifdef PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED
2076 format &= ~PNG_FORMAT_FLAG_BGR;
2080# ifdef PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED
2085 format &= ~PNG_FORMAT_FLAG_AFIRST;
2092 if (colormap != 0 &&
image->colormap_entries <= 16)
2098 png_error(
png_ptr,
"png_write_image: unsupported transformation");
2105 row_bytes *= (
sizeof (png_uint_16));
2108 row += (
image->height-1) * (-row_bytes);
2111 display->row_bytes = row_bytes;
2123# ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
2124 png_set_compression_level(
png_ptr, 3);
2132 if ((linear != 0 &&
alpha != 0 ) ||
2133 (colormap == 0 &&
display->convert_to_8bit != 0))
2140 if (write_16bit != 0)
2196 png_error(
png_ptr,
"png_image_write_to_memory: PNG too big");
2206png_image_write_memory(
png_voidp argument)
2216 image_memory_write, image_memory_flush);
2218 return png_image_write_main(
display);
2224 const void *
buffer, png_int_32 row_stride,
const void *colormap)
2237 if (png_image_write_init(
image) != 0)
2239 png_image_write_control
display;
2245 display.row_stride = row_stride;
2247 display.convert_to_8bit = convert_to_8bit;
2249 display.memory_bytes = *memory_bytes;
2253 png_image_free(
image);
2264 *memory_bytes =
display.output_bytes;
2275 return png_image_error(
image,
2276 "png_image_write_to_memory: invalid argument");
2280 return png_image_error(
image,
2281 "png_image_write_to_memory: incorrect PNG_IMAGE_VERSION");
2287#ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED
2290 const void *
buffer, png_int_32 row_stride,
const void *colormap)
2297 if (png_image_write_init(
image) != 0)
2299 png_image_write_control
display;
2311 display.row_stride = row_stride;
2313 display.convert_to_8bit = convert_to_8bit;
2316 png_image_free(
image);
2325 return png_image_error(
image,
2326 "png_image_write_to_stdio: invalid argument");
2330 return png_image_error(
image,
2331 "png_image_write_to_stdio: incorrect PNG_IMAGE_VERSION");
2339 int convert_to_8bit,
const void *
buffer, png_int_32 row_stride,
2340 const void *colormap)
2351 if (png_image_write_to_stdio(
image, fp, convert_to_8bit,
buffer,
2352 row_stride, colormap) != 0)
2392 return png_image_error(
image,
2393 "png_image_write_to_file: invalid argument");
2397 return png_image_error(
image,
2398 "png_image_write_to_file: incorrect PNG_IMAGE_VERSION");
int deflateEnd(z_streamp strm) DECLSPEC_HIDDEN
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)
__kernel_ptrdiff_t ptrdiff_t
GLclampf GLclampf GLclampf alpha
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
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
_Check_return_ _CRTIMP int __cdecl ferror(_In_ FILE *_File)
_Check_return_opt_ _CRTIMP int __cdecl fflush(_Inout_opt_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
int JSAMPARRAY int int num_rows
#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]
const char * strerror(int err)
#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
_CRTIMP struct tm *__cdecl gmtime(const time_t *_Time)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList