From b211170f9cf72ec50d1171ba88ed1a8ddac77078 Mon Sep 17 00:00:00 2001 From: Lance Date: Fri, 12 Oct 2007 10:27:51 +0000 Subject: [PATCH] mingw32 crosscompiling: libjpeg, libpng and zlib support added. Speedburst/Speedhack/Z-Fighting/libjpeg/conback etc problems resolved within mingwcross compiled binaries with removal of -O6 and -funroll-loops optimizations. Added static libraries and headers to their own directory: libjpeg, libpng, zlib and libogg (ogg support not ready) git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2740 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/Makefile | 20 +- engine/client/image.c | 171 +- engine/common/bothdefs.h | 15 +- engine/libs/mingw-libs/jconfig.h | 45 + engine/libs/mingw-libs/jerror.h | 291 +++ engine/libs/mingw-libs/jmorecfg.h | 363 +++ engine/libs/mingw-libs/jpeg.lib | Bin 0 -> 229998 bytes engine/libs/mingw-libs/jpeglib.h | 1096 +++++++++ engine/libs/mingw-libs/libjpeg.a | Bin 0 -> 144134 bytes engine/libs/mingw-libs/libogg.a | Bin 0 -> 44726 bytes engine/libs/mingw-libs/libpng.a | Bin 0 -> 248354 bytes engine/libs/mingw-libs/libpng.lib | Bin 0 -> 367138 bytes engine/libs/mingw-libs/libz.a | Bin 0 -> 75124 bytes engine/libs/mingw-libs/png.h | 3450 +++++++++++++++++++++++++++++ engine/libs/mingw-libs/pngconf.h | 1472 ++++++++++++ engine/libs/mingw-libs/zconf.h | 332 +++ engine/libs/mingw-libs/zlib.h | 1357 ++++++++++++ engine/libs/mingw-libs/zlib.lib | Bin 0 -> 90344 bytes 18 files changed, 8515 insertions(+), 97 deletions(-) create mode 100755 engine/libs/mingw-libs/jconfig.h create mode 100755 engine/libs/mingw-libs/jerror.h create mode 100755 engine/libs/mingw-libs/jmorecfg.h create mode 100755 engine/libs/mingw-libs/jpeg.lib create mode 100755 engine/libs/mingw-libs/jpeglib.h create mode 100755 engine/libs/mingw-libs/libjpeg.a create mode 100755 engine/libs/mingw-libs/libogg.a create mode 100755 engine/libs/mingw-libs/libpng.a create mode 100755 engine/libs/mingw-libs/libpng.lib create mode 100755 engine/libs/mingw-libs/libz.a create mode 100755 engine/libs/mingw-libs/png.h create mode 100755 engine/libs/mingw-libs/pngconf.h create mode 100755 engine/libs/mingw-libs/zconf.h create mode 100755 engine/libs/mingw-libs/zlib.h create mode 100755 engine/libs/mingw-libs/zlib.lib diff --git a/engine/Makefile b/engine/Makefile index 1936080b3..a03a35d52 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -116,7 +116,11 @@ ifeq ($(FTE_TARGET),bsd) endif BASELDFLAGS ?= -lm -ldl -lpthread -IMAGELDFLAGS=-lpng -ljpeg +ifeq ($(FTE_TARGET),win32) + IMAGELDFLAGS=$(LIBS_DIR)/mingw-libs/libpng.a $(LIBS_DIR)/mingw-libs/libz.a $(LIBS_DIR)/mingw-libs/libjpeg.a +else + IMAGELDFLAGS=-lpng -ljpeg +endif #BASELDFLAGS=-lm -lz GLXLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext $(IMAGELDFLAGS) @@ -157,7 +161,13 @@ CLIENT_ONLY_CFLAGS=-DCLIENTONLY SERVER_ONLY_CFLAGS=-DSERVERONLY JOINT_CFLAGS= DEBUG_CFLAGS=-ggdb -g -RELEASE_CFLAGS=-O6 -fno-strict-aliasing -ffast-math -funroll-loops -fexpensive-optimizations $(CPUOPTIMIZATIONS) + +ifeq ($(FTE_TARGET),win32) + RELEASE_CFLAGS=-fno-strict-aliasing -ffast-math -fexpensive-optimizations $(CPUOPTIMIZATIONS) +else + RELEASE_CFLAGS=-O6 -fno-strict-aliasing -ffast-math -funroll-loops -fexpensive-optimizations $(CPUOPTIMIZATIONS) +endif + GLCFLAGS=-DGLQUAKE SWCFLAGS=-DSWQUAKE D3DCFLAGS=-DD3DQUAKE @@ -437,7 +447,7 @@ else endif GL_EXE_NAME=../fteglqw.exe GLCL_EXE_NAME=../fteglqwcl.exe - GL_LDFLAGS=$(GLLDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 + GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) GLB_DIR=gl_mgw GLCL_DIR=glcl_mgw @@ -449,7 +459,7 @@ else endif SW_EXE_NAME=../fteswqw.exe SWCL_EXE_NAME=../fteswqwcl.exe - SW_LDFLAGS=$(SWLDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 + SW_LDFLAGS=$(SWLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 SW_CFLAGS=$(SWCFLAGS) $(W32_CFLAGS) SWB_DIR=sw_mgw SWCL_DIR=swcl_mgw @@ -461,7 +471,7 @@ else endif M_EXE_NAME=../fteqw.exe MCL_EXE_NAME=../fteqwcl.exe - M_LDFLAGS=$(GLLDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 + M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lwsock32 -lwinmm -lgdi32 -lole32 M_CFLAGS=$(SWCFLAGS) $(GLCFLAGS) $(W32_CFLAGS) MB_DIR=m_mgw MCL_DIR=mcl_mgw diff --git a/engine/client/image.c b/engine/client/image.c index 076030e08..fefc4b907 100644 --- a/engine/client/image.c +++ b/engine/client/image.c @@ -52,15 +52,15 @@ char *ReadGreyTargaFile (qbyte *data, int flen, tgaheader_t *tgahead, int asgrey qbyte *pixels = BZ_Malloc(tgahead->width * tgahead->height * (asgrey?1:4)); - if (tgahead->version!=1 - && tgahead->version!=3) + if (tgahead->version!=1 + && tgahead->version!=3) { Con_Printf("LoadGrayTGA: Only type 1 and 3 greyscale targa images are understood.\n"); BZ_Free(pixels); return NULL; } - if (tgahead->version==1 && tgahead->bpp != 8 && + if (tgahead->version==1 && tgahead->bpp != 8 && tgahead->cm_size != 24 && tgahead->cm_len != 256) { Con_Printf("LoadGrayTGA: Strange palette type\n"); @@ -91,7 +91,7 @@ char *ReadGreyTargaFile (qbyte *data, int flen, tgaheader_t *tgahead, int asgrey pixbuf = pixels + ((rows-1)-row)*columns; for(column=0; column>2) *8; //red green = (((inrow[1] & 0x03)<<3) + ((inrow[0] & 0xe0)>>5))*8; //green blue = (inrow[0] & 0x1f)*8; //blue - alphabyte = (int)(inrow[1]&0x80)*2-1; //alpha? + alphabyte = (int)(inrow[1]&0x80)*2-1; //alpha? break; case 24: blue = *data++; @@ -256,7 +256,7 @@ qbyte *ReadTargaFile(qbyte *buf, int length, int *width, int *height, int asgrey alphabyte = 127; break; } - + if (!asgrey) //keep colours { for(j=0;j= 8 && colortype == PNG_COLOR_TYPE_RGB) + if (png_get_valid( png, pnginfo, PNG_INFO_tRNS )) + png_set_tRNS_to_alpha(png); + + if (bitdepth >= 8 && colortype == PNG_COLOR_TYPE_RGB) png_set_filler(png, 255, PNG_FILLER_AFTER); - + if (colortype == PNG_COLOR_TYPE_GRAY || colortype == PNG_COLOR_TYPE_GRAY_ALPHA) { png_set_gray_to_rgb( png ); - png_set_filler(png, 255, PNG_FILLER_AFTER); + png_set_filler(png, 255, PNG_FILLER_AFTER); } if (bitdepth < 8) @@ -653,14 +654,14 @@ error: else if (bitdepth == 16) png_set_strip_16(png); - + png_read_update_info( png, pnginfo ); rowbytes = png_get_rowbytes( png, pnginfo ); bytesperpixel = png_get_channels( png, pnginfo ); bitdepth = png_get_bit_depth(png, pnginfo); - if (bitdepth != 8 || bytesperpixel != 4) { - Con_Printf ("Bad PNG color depth and/or bpp (%s)\n", fname); + if (bitdepth != 8 || bytesperpixel != 4) { + Con_Printf ("Bad PNG color depth and/or bpp (%s)\n", fname); png_destroy_read_struct(&png, &pnginfo, NULL); return (png_rgba = NULL); } @@ -678,7 +679,7 @@ error: png_read_end(png, NULL); png_destroy_read_struct(&png, &pnginfo, NULL); - BZ_Free(rowpointers); + BZ_Free(rowpointers); return (png_rgba = data); } @@ -693,7 +694,7 @@ int Image_WritePNG (char *filename, int compression, qbyte *pixels, int width, i png_infop info_ptr; png_byte **row_pointers; snprintf (name, sizeof(name)-1, "%s/%s", com_gamedir, filename); - + if (!(fp = fopen (name, "wb"))) { COM_CreatePath (name); if (!(fp = fopen (name, "wb"))) @@ -721,7 +722,7 @@ int Image_WritePNG (char *filename, int compression, qbyte *pixels, int width, i compression = bound(0, compression, 100); png_set_compression_level(png_ptr, Z_NO_COMPRESSION + (compression*(Z_BEST_COMPRESSION-Z_NO_COMPRESSION))/100); - png_set_IHDR(png_ptr, info_ptr, width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + png_set_IHDR(png_ptr, info_ptr, width, height, 8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); png_write_info(png_ptr, info_ptr); row_pointers = BZ_Malloc (sizeof(png_byte *) * height); @@ -741,15 +742,17 @@ int Image_WritePNG (char *filename, int compression, qbyte *pixels, int width, i #ifdef AVAIL_JPEGLIB #define XMD_H //fix for mingw -#if defined(_WIN32) - +#if defined(MINGW) + #define JPEG_API VARGS + #include "./mingw-libs/jpeglib.h" + #include "./mingw-libs/jerror.h" + #pragma comment(lib, "../libs/jpeg.a") +#elif defined(_WIN32) #define JPEG_API VARGS #include "jpeglib.h" #include "jerror.h" #pragma comment(lib, "../libs/jpeg.lib") - #else - // #include #include #include @@ -759,8 +762,6 @@ int Image_WritePNG (char *filename, int compression, qbyte *pixels, int width, i - - struct my_error_mgr { struct jpeg_error_mgr pub; /* "public" fields */ @@ -826,7 +827,7 @@ fill_input_buffer (j_decompress_ptr cinfo) { my_source_mgr *src = (my_source_mgr*) cinfo->src; size_t nbytes; - + nbytes = src->maxlen - src->currentpos; if (nbytes > INPUT_BUF_SIZE) nbytes = INPUT_BUF_SIZE; @@ -920,7 +921,7 @@ qbyte *ReadJPEGFile(qbyte *infile, int length, int *width, int *height) * struct, to avoid dangling-pointer problems. */ struct my_error_mgr jerr; - /* More stuff */ + /* More stuff */ JSAMPARRAY buffer; /* Output row buffer */ int size_stride; /* physical row width in output buffer */ @@ -936,12 +937,12 @@ qbyte *ReadJPEGFile(qbyte *infile, int length, int *width, int *height) badjpeg: - jpeg_destroy_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); if (mem) BZ_Free(mem); return 0; - } + } jpeg_create_decompress(&cinfo); jpeg_mem_src(&cinfo, infile, length); @@ -965,7 +966,7 @@ badjpeg: memset(out, 0, cinfo.output_height*cinfo.output_width*4); while (cinfo.output_scanline < cinfo.output_height) { - (void) jpeg_read_scanlines(&cinfo, buffer, 1); + (void) jpeg_read_scanlines(&cinfo, buffer, 1); in = buffer[0]; for (i = 0; i < cinfo.output_width; i++) @@ -973,8 +974,8 @@ badjpeg: *out++ = *in++; *out++ = *in++; *out++ = *in++; - *out++ = 255; - } + *out++ = 255; + } } (void) jpeg_finish_decompress(&cinfo); @@ -990,7 +991,7 @@ badjpeg: #define OUTPUT_BUF_SIZE 4096 -typedef struct { +typedef struct { struct jpeg_error_mgr pub; jmp_buf setjmp_buffer; @@ -1056,7 +1057,7 @@ void jpeg_mem_dest (j_compress_ptr cinfo, vfsfile_t *vfs) -METHODDEF(void) jpeg_error_exit (j_common_ptr cinfo) { +METHODDEF(void) jpeg_error_exit (j_common_ptr cinfo) { longjmp(((jpeg_error_mgr_wrapper *) cinfo->err)->setjmp_buffer, 1); } void screenshotJPEG(char *filename, int compression, qbyte *screendata, int screenwidth, int screenheight) //input is rgb NOT rgba @@ -1090,9 +1091,9 @@ void screenshotJPEG(char *filename, int compression, qbyte *screendata, int scre jpeg_create_compress(&cinfo); buffer = screendata; - + jpeg_mem_dest(&cinfo, outfile); - cinfo.image_width = screenwidth; + cinfo.image_width = screenwidth; cinfo.image_height = screenheight; cinfo.input_components = 3; cinfo.in_color_space = JCS_RGB; @@ -1114,25 +1115,25 @@ void screenshotJPEG(char *filename, int compression, qbyte *screendata, int scre #endif -/* -============== -WritePCXfile -============== -*/ +/* +============== +WritePCXfile +============== +*/ void WritePCXfile (char *filename, qbyte *data, int width, int height, int rowbytes, qbyte *palette, qboolean upload) //data is 8bit. { int i, j, length; pcx_t *pcx; qbyte *pack; - + pcx = Hunk_TempAlloc (width*height*2+1000); if (pcx == NULL) { Con_Printf("SCR_ScreenShot_f: not enough memory\n"); return; - } - + } + pcx->manufacturer = 0x0a; // PCX id pcx->version = 5; // 256 color pcx->encoding = 1; // uncompressed @@ -1170,21 +1171,21 @@ void WritePCXfile (char *filename, qbyte *data, int width, int height, data += rowbytes - width; data -= rowbytes * 2; } - + // write the palette *pack++ = 0x0c; // palette ID qbyte for (i=0 ; i<768 ; i++) *pack++ = *palette++; - -// write output file + +// write output file length = pack - (qbyte *)pcx; if (upload) CL_StartUpload((void *)pcx, length); else COM_WriteFile (filename, pcx, length); -} - +} + /* @@ -1209,9 +1210,9 @@ qbyte *ReadPCXFile(qbyte *buf, int length, int *width, int *height) // // parse the PCX file -// +// - pcx = (pcx_t *)buf; + pcx = (pcx_t *)buf; xmin = LittleShort(pcx->xmin); ymin = LittleShort(pcx->ymin); @@ -1224,7 +1225,7 @@ qbyte *ReadPCXFile(qbyte *buf, int length, int *width, int *height) || pcx->bits_per_pixel != 8 || xmax >= 1024 || ymax >= 1024) - { + { return NULL; } @@ -1290,7 +1291,7 @@ qbyte *ReadPCXData(qbyte *buf, int length, int width, int height, qbyte *result) // // parse the PCX file -// +// pcx = (pcx_t *)buf; @@ -1303,7 +1304,7 @@ qbyte *ReadPCXData(qbyte *buf, int length, int width, int height, qbyte *result) || pcx->version != 5 || pcx->encoding != 1 || pcx->bits_per_pixel != 8) - { + { return NULL; } @@ -1353,7 +1354,7 @@ qbyte *ReadPCXPalette(qbyte *buf, int len, qbyte *out) // // parse the PCX file -// +// pcx = (pcx_t *)buf; @@ -1363,7 +1364,7 @@ qbyte *ReadPCXPalette(qbyte *buf, int len, qbyte *out) || pcx->bits_per_pixel != 8 || LittleShort(pcx->xmax) >= 1024 || LittleShort(pcx->ymax) >= 1024) - { + { return NULL; } @@ -1486,7 +1487,7 @@ qbyte *ReadBMPFile(qbyte *buf, int length, int *width, int *height) for (x = 0; x < h.Width/2; x++) { data32[i++] = pal[buf[x]>>4]; - data32[i++] = pal[buf[x]&15]; + data32[i++] = pal[buf[x]&15]; } buf += h.Width>>1; } @@ -1514,7 +1515,7 @@ qbyte *ReadBMPFile(qbyte *buf, int length, int *width, int *height) return data; } - else + else return NULL; return NULL; @@ -1530,7 +1531,7 @@ qbyte *ReadBMPFile(qbyte *buf, int length, int *width, int *height) out = BZ_Malloc(sizeof(bmpheader_t)+width*3*height); - + *(short*)((qbyte *)h-2) = *(short*)"BM"; h->Size = LittleLong(in->Size); h->Reserved1 = LittleShort(in->Reserved1); @@ -1615,7 +1616,7 @@ qbyte *ReadBMPFile(qbyte *buf, int length, int *width, int *height) for (x = 0; x < h.Width/2; x++) { data32[i++] = pal[buf[x]>>4]; - data32[i++] = pal[buf[x]&15]; + data32[i++] = pal[buf[x]&15]; } buf += h.Width>>1; } @@ -1643,7 +1644,7 @@ qbyte *ReadBMPFile(qbyte *buf, int length, int *width, int *height) return data; } - else + else return NULL; return NULL; @@ -1690,7 +1691,7 @@ void SaturateR8G8B8(qbyte *data, int size, float sat) v = NTSC_SUM; else v *= v; - + data[i] = r*v; data[i+1] = g*v; data[i+2] = b*v; @@ -1865,7 +1866,7 @@ qbyte *Read32BitImageFile(qbyte *buf, int len, int *width, int *height, char *fn TRACE(("dbg: Read32BitImageFile: tga\n")); return data; } - + #ifdef AVAIL_PNGLIB if ((buf[0] == 137 && buf[1] == 'P' && buf[2] == 'N' && buf[3] == 'G') && (data = ReadPNGFile(buf, com_filesize, width, height, fname))) { @@ -1907,7 +1908,7 @@ int Mod_LoadHiResTexture(char *name, char *subpath, qboolean mipmap, qboolean al char *buf, *data; int len; // int h; - char fname[MAX_QPATH], nicename[MAX_QPATH]; + char fname[MAX_QPATH], nicename[MAX_QPATH]; static char *extensions[] = {//reverse order of preference - (match commas with optional file types) ".pcx", //pcxes are the original gamedata of q2. So we don't want them to override pngs. @@ -2023,7 +2024,7 @@ int Mod_LoadHiResTexture(char *name, char *subpath, qboolean mipmap, qboolean al data = W_GetTexture(name, &image_width, &image_height, &alphaed); if (data) return R_LoadTexture32 (name, image_width, image_height, (unsigned*)data, mipmap, alphaed); - return 0; + return 0; } int Mod_LoadReplacementTexture(char *name, char *subpath, qboolean mipmap, qboolean alpha, qboolean gammaadjust) { @@ -2038,7 +2039,7 @@ int Mod_LoadBumpmapTexture(char *name, char *subpath) char *buf, *data; int len; // int h; - char fname[MAX_QPATH], nicename[MAX_QPATH]; + char fname[MAX_QPATH], nicename[MAX_QPATH]; static char *extensions[] = {//reverse order of preference - (match commas with optional file types) ".tga", @@ -2177,7 +2178,7 @@ void AddOcranaLEDsIndexed (qbyte *image, int h, int w) r = rd - (x*2); r *= r; g = gd - (y*2); g *= g; idx = (r + g) / b; - + if (idx > 7) *point++ = 0; else diff --git a/engine/common/bothdefs.h b/engine/common/bothdefs.h index ccd8101c2..99ab3f970 100644 --- a/engine/common/bothdefs.h +++ b/engine/common/bothdefs.h @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -46,6 +46,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #define AVAIL_MASM +#ifdef MINGW + #define AVAIL_PNGLIB + #define AVAIL_ZLIB + #define AVAIL_JPEGLIB +#endif + #ifdef NO_PNG #undef AVAIL_PNGLIB @@ -91,7 +97,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define CLIENTONLY #endif #else - #define SIDEVIEWS 4 //enable secondary/reverse views. #define SP2MODELS //quake2 sprite models #define MD2MODELS //quake2 alias models @@ -146,10 +151,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. //fix things a little... -#ifdef MINGW - #undef AVAIL_ZLIB -#endif - #ifndef _WIN32 #undef QTERM //not supported - FIXME: move to native plugin #endif @@ -248,7 +249,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define DISTRIBUTION "FTE" #define DISTRIBUTIONLONG "Forethought Entertainment" #define FULLENGINENAME "FTE QuakeWorld" - #define ENGINEWEBSITE "http://fteqw.sourceforge.net/" + #define ENGINEWEBSITE "http://www.fteqw.com" #endif #ifndef PLATFORM diff --git a/engine/libs/mingw-libs/jconfig.h b/engine/libs/mingw-libs/jconfig.h new file mode 100755 index 000000000..9594ec56b --- /dev/null +++ b/engine/libs/mingw-libs/jconfig.h @@ -0,0 +1,45 @@ +/* jconfig.h. Generated automatically by configure. */ +/* jconfig.cfg --- source file edited by configure script */ +/* see jconfig.doc for explanations */ + +#define HAVE_PROTOTYPES +#define HAVE_UNSIGNED_CHAR +#define HAVE_UNSIGNED_SHORT +#undef void +#undef const +#undef CHAR_IS_UNSIGNED +#define HAVE_STDDEF_H +#define HAVE_STDLIB_H +#undef NEED_BSD_STRINGS +#undef NEED_SYS_TYPES_H +#undef NEED_FAR_POINTERS +#undef NEED_SHORT_EXTERNAL_NAMES +/* Define this if you get warnings about undefined structures. */ +#undef INCOMPLETE_TYPES_BROKEN + +#ifdef JPEG_INTERNALS + +#undef RIGHT_SHIFT_IS_UNSIGNED +#define INLINE __inline__ +/* These are for configuring the JPEG memory manager. */ +#undef DEFAULT_MAX_MEM +#undef NO_MKTEMP + +#endif /* JPEG_INTERNALS */ + +#ifdef JPEG_CJPEG_DJPEG + +#define BMP_SUPPORTED /* BMP image file format */ +#define GIF_SUPPORTED /* GIF image file format */ +#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ +#undef RLE_SUPPORTED /* Utah RLE image file format */ +#define TARGA_SUPPORTED /* Targa image file format */ + +#undef TWO_FILE_COMMANDLINE +#undef NEED_SIGNAL_CATCHER +#undef DONT_USE_B_MODE + +/* Define this if you want percent-done progress reports from cjpeg/djpeg. */ +#undef PROGRESS_REPORT + +#endif /* JPEG_CJPEG_DJPEG */ diff --git a/engine/libs/mingw-libs/jerror.h b/engine/libs/mingw-libs/jerror.h new file mode 100755 index 000000000..fc2fffeac --- /dev/null +++ b/engine/libs/mingw-libs/jerror.h @@ -0,0 +1,291 @@ +/* + * jerror.h + * + * Copyright (C) 1994-1997, Thomas G. Lane. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file defines the error and message codes for the JPEG library. + * Edit this file to add new codes, or to translate the message strings to + * some other language. + * A set of error-reporting macros are defined too. Some applications using + * the JPEG library may wish to include this file to get the error codes + * and/or the macros. + */ + +/* + * To define the enum list of message codes, include this file without + * defining macro JMESSAGE. To create a message string table, include it + * again with a suitable JMESSAGE definition (see jerror.c for an example). + */ +#ifndef JMESSAGE +#ifndef JERROR_H +/* First time through, define the enum list */ +#define JMAKE_ENUM_LIST +#else +/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ +#define JMESSAGE(code,string) +#endif /* JERROR_H */ +#endif /* JMESSAGE */ + +#ifdef JMAKE_ENUM_LIST + +typedef enum { + +#define JMESSAGE(code,string) code , + +#endif /* JMAKE_ENUM_LIST */ + +JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */ + +/* For maintenance convenience, list is alphabetical by message code name */ +JMESSAGE(JERR_ARITH_NOTIMPL, + "Sorry, there are legal restrictions on arithmetic coding") +JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix") +JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") +JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") +JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") +JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") +JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size %d not supported") +JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") +JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace") +JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace") +JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length") +JMESSAGE(JERR_BAD_LIB_VERSION, + "Wrong JPEG library version: library is %d, caller expects %d") +JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan") +JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d") +JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d") +JMESSAGE(JERR_BAD_PROGRESSION, + "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d") +JMESSAGE(JERR_BAD_PROG_SCRIPT, + "Invalid progressive parameters at scan script entry %d") +JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors") +JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d") +JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d") +JMESSAGE(JERR_BAD_STRUCT_SIZE, + "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u") +JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access") +JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small") +JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here") +JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet") +JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d") +JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") +JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d") +JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x") +JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d") +JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d") +JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)") +JMESSAGE(JERR_EMS_READ, "Read from EMS failed") +JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed") +JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan") +JMESSAGE(JERR_FILE_READ, "Input file read error") +JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?") +JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet") +JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow") +JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry") +JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels") +JMESSAGE(JERR_INPUT_EMPTY, "Empty input file") +JMESSAGE(JERR_INPUT_EOF, "Premature end of input file") +JMESSAGE(JERR_MISMATCHED_QUANT_TABLE, + "Cannot transcode due to multiple use of quantization table %d") +JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data") +JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change") +JMESSAGE(JERR_NOTIMPL, "Not implemented yet") +JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time") +JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported") +JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined") +JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image") +JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined") +JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x") +JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)") +JMESSAGE(JERR_QUANT_COMPONENTS, + "Cannot quantize more than %d color components") +JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors") +JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors") +JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers") +JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker") +JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x") +JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers") +JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF") +JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s") +JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file") +JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file") +JMESSAGE(JERR_TFILE_WRITE, + "Write failed on temporary file --- out of disk space?") +JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines") +JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x") +JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up") +JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation") +JMESSAGE(JERR_XMS_READ, "Read from XMS failed") +JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed") +JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT) +JMESSAGE(JMSG_VERSION, JVERSION) +JMESSAGE(JTRC_16BIT_TABLES, + "Caution: quantization tables are too coarse for baseline JPEG") +JMESSAGE(JTRC_ADOBE, + "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d") +JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u") +JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u") +JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x") +JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x") +JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d") +JMESSAGE(JTRC_DRI, "Define Restart Interval %u") +JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u") +JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u") +JMESSAGE(JTRC_EOI, "End Of Image") +JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d") +JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d") +JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE, + "Warning: thumbnail image size does not match data length %u") +JMESSAGE(JTRC_JFIF_EXTENSION, + "JFIF extension marker: type 0x%02x, length %u") +JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image") +JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u") +JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x") +JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u") +JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors") +JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors") +JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization") +JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d") +JMESSAGE(JTRC_RST, "RST%d") +JMESSAGE(JTRC_SMOOTH_NOTIMPL, + "Smoothing not supported with nonstandard sampling ratios") +JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d") +JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d") +JMESSAGE(JTRC_SOI, "Start of Image") +JMESSAGE(JTRC_SOS, "Start Of Scan: %d components") +JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d") +JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d") +JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s") +JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s") +JMESSAGE(JTRC_THUMB_JPEG, + "JFIF extension marker: JPEG-compressed thumbnail image, length %u") +JMESSAGE(JTRC_THUMB_PALETTE, + "JFIF extension marker: palette thumbnail image, length %u") +JMESSAGE(JTRC_THUMB_RGB, + "JFIF extension marker: RGB thumbnail image, length %u") +JMESSAGE(JTRC_UNKNOWN_IDS, + "Unrecognized component IDs %d %d %d, assuming YCbCr") +JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u") +JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u") +JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d") +JMESSAGE(JWRN_BOGUS_PROGRESSION, + "Inconsistent progression sequence for component %d coefficient %d") +JMESSAGE(JWRN_EXTRANEOUS_DATA, + "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x") +JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment") +JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code") +JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d") +JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file") +JMESSAGE(JWRN_MUST_RESYNC, + "Corrupt JPEG data: found marker 0x%02x instead of RST%d") +JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG") +JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines") + +#ifdef JMAKE_ENUM_LIST + + JMSG_LASTMSGCODE +} J_MESSAGE_CODE; + +#undef JMAKE_ENUM_LIST +#endif /* JMAKE_ENUM_LIST */ + +/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ +#undef JMESSAGE + + +#ifndef JERROR_H +#define JERROR_H + +/* Macros to simplify using the error and trace message stuff */ +/* The first parameter is either type of cinfo pointer */ + +/* Fatal errors (print message and exit) */ +#define ERREXIT(cinfo,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT1(cinfo,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT2(cinfo,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT3(cinfo,code,p1,p2,p3) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (cinfo)->err->msg_parm.i[2] = (p3), \ + (cinfo)->err->msg_parm.i[3] = (p4), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) +#define ERREXITS(cinfo,code,str) \ + ((cinfo)->err->msg_code = (code), \ + strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ + (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) + +#define MAKESTMT(stuff) do { stuff } while (0) + +/* Nonfatal errors (we can keep going, but the data is probably corrupt) */ +#define WARNMS(cinfo,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) +#define WARNMS1(cinfo,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) +#define WARNMS2(cinfo,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) + +/* Informational/debugging messages */ +#define TRACEMS(cinfo,lvl,code) \ + ((cinfo)->err->msg_code = (code), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS1(cinfo,lvl,code,p1) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS2(cinfo,lvl,code,p1,p2) \ + ((cinfo)->err->msg_code = (code), \ + (cinfo)->err->msg_parm.i[0] = (p1), \ + (cinfo)->err->msg_parm.i[1] = (p2), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) +#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + _mp[4] = (p5); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \ + MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ + _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ + _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \ + (cinfo)->err->msg_code = (code); \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) +#define TRACEMSS(cinfo,lvl,code,str) \ + ((cinfo)->err->msg_code = (code), \ + strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ + (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) + +#endif /* JERROR_H */ diff --git a/engine/libs/mingw-libs/jmorecfg.h b/engine/libs/mingw-libs/jmorecfg.h new file mode 100755 index 000000000..54a7d1c44 --- /dev/null +++ b/engine/libs/mingw-libs/jmorecfg.h @@ -0,0 +1,363 @@ +/* + * jmorecfg.h + * + * Copyright (C) 1991-1997, Thomas G. Lane. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file contains additional configuration options that customize the + * JPEG software for special applications or support machine-dependent + * optimizations. Most users will not need to touch this file. + */ + + +/* + * Define BITS_IN_JSAMPLE as either + * 8 for 8-bit sample values (the usual setting) + * 12 for 12-bit sample values + * Only 8 and 12 are legal data precisions for lossy JPEG according to the + * JPEG standard, and the IJG code does not support anything else! + * We do not support run-time selection of data precision, sorry. + */ + +#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ + + +/* + * Maximum number of components (color channels) allowed in JPEG image. + * To meet the letter of the JPEG spec, set this to 255. However, darn + * few applications need more than 4 channels (maybe 5 for CMYK + alpha + * mask). We recommend 10 as a reasonable compromise; use 4 if you are + * really short on memory. (Each allowed component costs a hundred or so + * bytes of storage, whether actually used in an image or not.) + */ + +#define MAX_COMPONENTS 10 /* maximum number of image components */ + + +/* + * Basic data types. + * You may need to change these if you have a machine with unusual data + * type sizes; for example, "char" not 8 bits, "short" not 16 bits, + * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, + * but it had better be at least 16. + */ + +/* Representation of a single sample (pixel element value). + * We frequently allocate large arrays of these, so it's important to keep + * them small. But if you have memory to burn and access to char or short + * arrays is very slow on your hardware, you might want to change these. + */ + +#if BITS_IN_JSAMPLE == 8 +/* JSAMPLE should be the smallest type that will hold the values 0..255. + * You can use a signed char by having GETJSAMPLE mask it with 0xFF. + */ + +#ifdef HAVE_UNSIGNED_CHAR + +typedef unsigned char JSAMPLE; +#define GETJSAMPLE(value) ((int) (value)) + +#else /* not HAVE_UNSIGNED_CHAR */ + +typedef char JSAMPLE; +#ifdef CHAR_IS_UNSIGNED +#define GETJSAMPLE(value) ((int) (value)) +#else +#define GETJSAMPLE(value) ((int) (value) & 0xFF) +#endif /* CHAR_IS_UNSIGNED */ + +#endif /* HAVE_UNSIGNED_CHAR */ + +#define MAXJSAMPLE 255 +#define CENTERJSAMPLE 128 + +#endif /* BITS_IN_JSAMPLE == 8 */ + + +#if BITS_IN_JSAMPLE == 12 +/* JSAMPLE should be the smallest type that will hold the values 0..4095. + * On nearly all machines "short" will do nicely. + */ + +typedef short JSAMPLE; +#define GETJSAMPLE(value) ((int) (value)) + +#define MAXJSAMPLE 4095 +#define CENTERJSAMPLE 2048 + +#endif /* BITS_IN_JSAMPLE == 12 */ + + +/* Representation of a DCT frequency coefficient. + * This should be a signed value of at least 16 bits; "short" is usually OK. + * Again, we allocate large arrays of these, but you can change to int + * if you have memory to burn and "short" is really slow. + */ + +typedef short JCOEF; + + +/* Compressed datastreams are represented as arrays of JOCTET. + * These must be EXACTLY 8 bits wide, at least once they are written to + * external storage. Note that when using the stdio data source/destination + * managers, this is also the data type passed to fread/fwrite. + */ + +#ifdef HAVE_UNSIGNED_CHAR + +typedef unsigned char JOCTET; +#define GETJOCTET(value) (value) + +#else /* not HAVE_UNSIGNED_CHAR */ + +typedef char JOCTET; +#ifdef CHAR_IS_UNSIGNED +#define GETJOCTET(value) (value) +#else +#define GETJOCTET(value) ((value) & 0xFF) +#endif /* CHAR_IS_UNSIGNED */ + +#endif /* HAVE_UNSIGNED_CHAR */ + + +/* These typedefs are used for various table entries and so forth. + * They must be at least as wide as specified; but making them too big + * won't cost a huge amount of memory, so we don't provide special + * extraction code like we did for JSAMPLE. (In other words, these + * typedefs live at a different point on the speed/space tradeoff curve.) + */ + +/* UINT8 must hold at least the values 0..255. */ + +#ifdef HAVE_UNSIGNED_CHAR +typedef unsigned char UINT8; +#else /* not HAVE_UNSIGNED_CHAR */ +#ifdef CHAR_IS_UNSIGNED +typedef char UINT8; +#else /* not CHAR_IS_UNSIGNED */ +typedef short UINT8; +#endif /* CHAR_IS_UNSIGNED */ +#endif /* HAVE_UNSIGNED_CHAR */ + +/* UINT16 must hold at least the values 0..65535. */ + +#ifdef HAVE_UNSIGNED_SHORT +typedef unsigned short UINT16; +#else /* not HAVE_UNSIGNED_SHORT */ +typedef unsigned int UINT16; +#endif /* HAVE_UNSIGNED_SHORT */ + +/* INT16 must hold at least the values -32768..32767. */ + +#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ +typedef short INT16; +#endif + +/* INT32 must hold at least signed 32-bit values. */ + +#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ +typedef long INT32; +#endif + +/* Datatype used for image dimensions. The JPEG standard only supports + * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore + * "unsigned int" is sufficient on all machines. However, if you need to + * handle larger images and you don't mind deviating from the spec, you + * can change this datatype. + */ + +typedef unsigned int JDIMENSION; + +#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ + + +/* These macros are used in all function definitions and extern declarations. + * You could modify them if you need to change function linkage conventions; + * in particular, you'll need to do that to make the library a Windows DLL. + * Another application is to make all functions global for use with debuggers + * or code profilers that require it. + */ + +/* a function called through method pointers: */ +#define METHODDEF(type) static type +/* a function used only in its module: */ +#define LOCAL(type) static type +/* a function referenced thru EXTERNs: */ +#define GLOBAL(type) type +/* a reference to a GLOBAL function: */ +#define EXTERN(type) extern type + + +/* This macro is used to declare a "method", that is, a function pointer. + * We want to supply prototype parameters if the compiler can cope. + * Note that the arglist parameter must be parenthesized! + * Again, you can customize this if you need special linkage keywords. + */ + +#ifdef HAVE_PROTOTYPES +#define JMETHOD(type,methodname,arglist) type (*methodname) arglist +#else +#define JMETHOD(type,methodname,arglist) type (*methodname) () +#endif + + +/* Here is the pseudo-keyword for declaring pointers that must be "far" + * on 80x86 machines. Most of the specialized coding for 80x86 is handled + * by just saying "FAR *" where such a pointer is needed. In a few places + * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. + */ + +#ifdef NEED_FAR_POINTERS +#define FAR far +#else +#define FAR +#endif + + +/* + * On a few systems, type boolean and/or its values FALSE, TRUE may appear + * in standard header files. Or you may have conflicts with application- + * specific header files that you want to include together with these files. + * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. + */ + +#ifndef HAVE_BOOLEAN +typedef int boolean; +#endif +#ifndef FALSE /* in case these macros already exist */ +#define FALSE 0 /* values of boolean */ +#endif +#ifndef TRUE +#define TRUE 1 +#endif + + +/* + * The remaining options affect code selection within the JPEG library, + * but they don't need to be visible to most applications using the library. + * To minimize application namespace pollution, the symbols won't be + * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. + */ + +#ifdef JPEG_INTERNALS +#define JPEG_INTERNAL_OPTIONS +#endif + +#ifdef JPEG_INTERNAL_OPTIONS + + +/* + * These defines indicate whether to include various optional functions. + * Undefining some of these symbols will produce a smaller but less capable + * library. Note that you can leave certain source files out of the + * compilation/linking process if you've #undef'd the corresponding symbols. + * (You may HAVE to do that if your compiler doesn't like null source files.) + */ + +/* Arithmetic coding is unsupported for legal reasons. Complaints to IBM. */ + +/* Capability options common to encoder and decoder: */ + +#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ +#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ +#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ + +/* Encoder capability options: */ + +#undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ +#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ +#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ +#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ +/* Note: if you selected 12-bit data precision, it is dangerous to turn off + * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit + * precision, so jchuff.c normally uses entropy optimization to compute + * usable tables for higher precision. If you don't want to do optimization, + * you'll have to supply different default Huffman tables. + * The exact same statements apply for progressive JPEG: the default tables + * don't work for progressive mode. (This may get fixed, however.) + */ +#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ + +/* Decoder capability options: */ + +#undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ +#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ +#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ +#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ +#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ +#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ +#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ +#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ +#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ +#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ + +/* more capability options later, no doubt */ + + +/* + * Ordering of RGB data in scanlines passed to or from the application. + * If your application wants to deal with data in the order B,G,R, just + * change these macros. You can also deal with formats such as R,G,B,X + * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing + * the offsets will also change the order in which colormap data is organized. + * RESTRICTIONS: + * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. + * 2. These macros only affect RGB<=>YCbCr color conversion, so they are not + * useful if you are using JPEG color spaces other than YCbCr or grayscale. + * 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE + * is not 3 (they don't understand about dummy color components!). So you + * can't use color quantization if you change that value. + */ + +#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ +#define RGB_GREEN 1 /* Offset of Green */ +#define RGB_BLUE 2 /* Offset of Blue */ +#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ + + +/* Definitions for speed-related optimizations. */ + + +/* If your compiler supports inline functions, define INLINE + * as the inline keyword; otherwise define it as empty. + */ + +#ifndef INLINE +#ifdef __GNUC__ /* for instance, GNU C knows about inline */ +#define INLINE __inline__ +#endif +#ifndef INLINE +#define INLINE /* default is to define it as empty */ +#endif +#endif + + +/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying + * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER + * as short on such a machine. MULTIPLIER must be at least 16 bits wide. + */ + +#ifndef MULTIPLIER +#define MULTIPLIER int /* type for fastest integer multiply */ +#endif + + +/* FAST_FLOAT should be either float or double, whichever is done faster + * by your compiler. (Note that this type is only used in the floating point + * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) + * Typically, float is faster in ANSI C compilers, while double is faster in + * pre-ANSI compilers (because they insist on converting to double anyway). + * The code below therefore chooses float if we have ANSI-style prototypes. + */ + +#ifndef FAST_FLOAT +#ifdef HAVE_PROTOTYPES +#define FAST_FLOAT float +#else +#define FAST_FLOAT double +#endif +#endif + +#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/engine/libs/mingw-libs/jpeg.lib b/engine/libs/mingw-libs/jpeg.lib new file mode 100755 index 0000000000000000000000000000000000000000..36bd77c655466e602937b447655c177be7ade948 GIT binary patch literal 229998 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%0A4G!tEY?_h;Z6UV;PcFT<;X6zhWIJ;>Qq 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 literal 0 HcmV?d00001 diff --git a/engine/libs/mingw-libs/jpeglib.h b/engine/libs/mingw-libs/jpeglib.h new file mode 100755 index 000000000..d1be8ddef --- /dev/null +++ b/engine/libs/mingw-libs/jpeglib.h @@ -0,0 +1,1096 @@ +/* + * jpeglib.h + * + * Copyright (C) 1991-1998, Thomas G. Lane. + * This file is part of the Independent JPEG Group's software. + * For conditions of distribution and use, see the accompanying README file. + * + * This file defines the application interface for the JPEG library. + * Most applications using the library need only include this file, + * and perhaps jerror.h if they want to know the exact error codes. + */ + +#ifndef JPEGLIB_H +#define JPEGLIB_H + +/* + * First we include the configuration files that record how this + * installation of the JPEG library is set up. jconfig.h can be + * generated automatically for many systems. jmorecfg.h contains + * manual configuration options that most people need not worry about. + */ + +#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ +#include "jconfig.h" /* widely used configuration options */ +#endif +#include "jmorecfg.h" /* seldom changed options */ + + +/* Version ID for the JPEG library. + * Might be useful for tests like "#if JPEG_LIB_VERSION >= 60". + */ + +#define JPEG_LIB_VERSION 62 /* Version 6b */ + + +/* Various constants determining the sizes of things. + * All of these are specified by the JPEG standard, so don't change them + * if you want to be compatible. + */ + +#define DCTSIZE 8 /* The basic DCT block is 8x8 samples */ +#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ +#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ +#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ +#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ +#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ +#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ +/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; + * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. + * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU + * to handle it. We even let you do this from the jconfig.h file. However, + * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe + * sometimes emits noncompliant files doesn't mean you should too. + */ +#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ +#ifndef D_MAX_BLOCKS_IN_MCU +#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ +#endif + + +/* Data structures for images (arrays of samples and of DCT coefficients). + * On 80x86 machines, the image arrays are too big for near pointers, + * but the pointer arrays can fit in near memory. + */ + +typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ +typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ +typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ + +typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ +typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ +typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ +typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ + +typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ + + +/* Types for JPEG compression parameters and working tables. */ + + +/* DCT coefficient quantization tables. */ + +typedef struct { + /* This array gives the coefficient quantizers in natural array order + * (not the zigzag order in which they are stored in a JPEG DQT marker). + * CAUTION: IJG versions prior to v6a kept this array in zigzag order. + */ + UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ + /* This field is used only during compression. It's initialized FALSE when + * the table is created, and set TRUE when it's been output to the file. + * You could suppress output of a table by setting this to TRUE. + * (See jpeg_suppress_tables for an example.) + */ + boolean sent_table; /* TRUE when table has been output */ +} JQUANT_TBL; + + +/* Huffman coding tables. */ + +typedef struct { + /* These two fields directly represent the contents of a JPEG DHT marker */ + UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ + /* length k bits; bits[0] is unused */ + UINT8 huffval[256]; /* The symbols, in order of incr code length */ + /* This field is used only during compression. It's initialized FALSE when + * the table is created, and set TRUE when it's been output to the file. + * You could suppress output of a table by setting this to TRUE. + * (See jpeg_suppress_tables for an example.) + */ + boolean sent_table; /* TRUE when table has been output */ +} JHUFF_TBL; + + +/* Basic info about one component (color channel). */ + +typedef struct { + /* These values are fixed over the whole image. */ + /* For compression, they must be supplied by parameter setup; */ + /* for decompression, they are read from the SOF marker. */ + int component_id; /* identifier for this component (0..255) */ + int component_index; /* its index in SOF or cinfo->comp_info[] */ + int h_samp_factor; /* horizontal sampling factor (1..4) */ + int v_samp_factor; /* vertical sampling factor (1..4) */ + int quant_tbl_no; /* quantization table selector (0..3) */ + /* These values may vary between scans. */ + /* For compression, they must be supplied by parameter setup; */ + /* for decompression, they are read from the SOS marker. */ + /* The decompressor output side may not use these variables. */ + int dc_tbl_no; /* DC entropy table selector (0..3) */ + int ac_tbl_no; /* AC entropy table selector (0..3) */ + + /* Remaining fields should be treated as private by applications. */ + + /* These values are computed during compression or decompression startup: */ + /* Component's size in DCT blocks. + * Any dummy blocks added to complete an MCU are not counted; therefore + * these values do not depend on whether a scan is interleaved or not. + */ + JDIMENSION width_in_blocks; + JDIMENSION height_in_blocks; + /* Size of a DCT block in samples. Always DCTSIZE for compression. + * For decompression this is the size of the output from one DCT block, + * reflecting any scaling we choose to apply during the IDCT step. + * Values of 1,2,4,8 are likely to be supported. Note that different + * components may receive different IDCT scalings. + */ + int DCT_scaled_size; + /* The downsampled dimensions are the component's actual, unpadded number + * of samples at the main buffer (preprocessing/compression interface), thus + * downsampled_width = ceil(image_width * Hi/Hmax) + * and similarly for height. For decompression, IDCT scaling is included, so + * downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE) + */ + JDIMENSION downsampled_width; /* actual width in samples */ + JDIMENSION downsampled_height; /* actual height in samples */ + /* This flag is used only for decompression. In cases where some of the + * components will be ignored (eg grayscale output from YCbCr image), + * we can skip most computations for the unused components. + */ + boolean component_needed; /* do we need the value of this component? */ + + /* These values are computed before starting a scan of the component. */ + /* The decompressor output side may not use these variables. */ + int MCU_width; /* number of blocks per MCU, horizontally */ + int MCU_height; /* number of blocks per MCU, vertically */ + int MCU_blocks; /* MCU_width * MCU_height */ + int MCU_sample_width; /* MCU width in samples, MCU_width*DCT_scaled_size */ + int last_col_width; /* # of non-dummy blocks across in last MCU */ + int last_row_height; /* # of non-dummy blocks down in last MCU */ + + /* Saved quantization table for component; NULL if none yet saved. + * See jdinput.c comments about the need for this information. + * This field is currently used only for decompression. + */ + JQUANT_TBL * quant_table; + + /* Private per-component storage for DCT or IDCT subsystem. */ + void * dct_table; +} jpeg_component_info; + + +/* The script for encoding a multiple-scan file is an array of these: */ + +typedef struct { + int comps_in_scan; /* number of components encoded in this scan */ + int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ + int Ss, Se; /* progressive JPEG spectral selection parms */ + int Ah, Al; /* progressive JPEG successive approx. parms */ +} jpeg_scan_info; + +/* The decompressor can save APPn and COM markers in a list of these: */ + +typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; + +struct jpeg_marker_struct { + jpeg_saved_marker_ptr next; /* next in list, or NULL */ + UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ + unsigned int original_length; /* # bytes of data in the file */ + unsigned int data_length; /* # bytes of data saved at data[] */ + JOCTET FAR * data; /* the data contained in the marker */ + /* the marker length word is not counted in data_length or original_length */ +}; + +/* Known color spaces. */ + +typedef enum { + JCS_UNKNOWN, /* error/unspecified */ + JCS_GRAYSCALE, /* monochrome */ + JCS_RGB, /* red/green/blue */ + JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ + JCS_CMYK, /* C/M/Y/K */ + JCS_YCCK /* Y/Cb/Cr/K */ +} J_COLOR_SPACE; + +/* DCT/IDCT algorithm options. */ + +typedef enum { + JDCT_ISLOW, /* slow but accurate integer algorithm */ + JDCT_IFAST, /* faster, less accurate integer method */ + JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ +} J_DCT_METHOD; + +#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ +#define JDCT_DEFAULT JDCT_ISLOW +#endif +#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ +#define JDCT_FASTEST JDCT_IFAST +#endif + +/* Dithering options for decompression. */ + +typedef enum { + JDITHER_NONE, /* no dithering */ + JDITHER_ORDERED, /* simple ordered dither */ + JDITHER_FS /* Floyd-Steinberg error diffusion dither */ +} J_DITHER_MODE; + + +/* Common fields between JPEG compression and decompression master structs. */ + +#define jpeg_common_fields \ + struct jpeg_error_mgr * err; /* Error handler module */\ + struct jpeg_memory_mgr * mem; /* Memory manager module */\ + struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ + void * client_data; /* Available for use by application */\ + boolean is_decompressor; /* So common code can tell which is which */\ + int global_state /* For checking call sequence validity */ + +/* Routines that are to be used by both halves of the library are declared + * to receive a pointer to this structure. There are no actual instances of + * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. + */ +struct jpeg_common_struct { + jpeg_common_fields; /* Fields common to both master struct types */ + /* Additional fields follow in an actual jpeg_compress_struct or + * jpeg_decompress_struct. All three structs must agree on these + * initial fields! (This would be a lot cleaner in C++.) + */ +}; + +typedef struct jpeg_common_struct * j_common_ptr; +typedef struct jpeg_compress_struct * j_compress_ptr; +typedef struct jpeg_decompress_struct * j_decompress_ptr; + + +/* Master record for a compression instance */ + +struct jpeg_compress_struct { + jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ + + /* Destination for compressed data */ + struct jpeg_destination_mgr * dest; + + /* Description of source image --- these fields must be filled in by + * outer application before starting compression. in_color_space must + * be correct before you can even call jpeg_set_defaults(). + */ + + JDIMENSION image_width; /* input image width */ + JDIMENSION image_height; /* input image height */ + int input_components; /* # of color components in input image */ + J_COLOR_SPACE in_color_space; /* colorspace of input image */ + + double input_gamma; /* image gamma of input image */ + + /* Compression parameters --- these fields must be set before calling + * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to + * initialize everything to reasonable defaults, then changing anything + * the application specifically wants to change. That way you won't get + * burnt when new parameters are added. Also note that there are several + * helper routines to simplify changing parameters. + */ + + int data_precision; /* bits of precision in image data */ + + int num_components; /* # of color components in JPEG image */ + J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ + + jpeg_component_info * comp_info; + /* comp_info[i] describes component that appears i'th in SOF */ + + JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; + /* ptrs to coefficient quantization tables, or NULL if not defined */ + + JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; + JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; + /* ptrs to Huffman coding tables, or NULL if not defined */ + + UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ + UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ + UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ + + int num_scans; /* # of entries in scan_info array */ + const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ + /* The default value of scan_info is NULL, which causes a single-scan + * sequential JPEG file to be emitted. To create a multi-scan file, + * set num_scans and scan_info to point to an array of scan definitions. + */ + + boolean raw_data_in; /* TRUE=caller supplies downsampled data */ + boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ + boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ + boolean CCIR601_sampling; /* TRUE=first samples are cosited */ + int smoothing_factor; /* 1..100, or 0 for no input smoothing */ + J_DCT_METHOD dct_method; /* DCT algorithm selector */ + + /* The restart interval can be specified in absolute MCUs by setting + * restart_interval, or in MCU rows by setting restart_in_rows + * (in which case the correct restart_interval will be figured + * for each scan). + */ + unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ + int restart_in_rows; /* if > 0, MCU rows per restart interval */ + + /* Parameters controlling emission of special markers. */ + + boolean write_JFIF_header; /* should a JFIF marker be written? */ + UINT8 JFIF_major_version; /* What to write for the JFIF version number */ + UINT8 JFIF_minor_version; + /* These three values are not used by the JPEG code, merely copied */ + /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ + /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ + /* ratio is defined by X_density/Y_density even when density_unit=0. */ + UINT8 density_unit; /* JFIF code for pixel size units */ + UINT16 X_density; /* Horizontal pixel density */ + UINT16 Y_density; /* Vertical pixel density */ + boolean write_Adobe_marker; /* should an Adobe marker be written? */ + + /* State variable: index of next scanline to be written to + * jpeg_write_scanlines(). Application may use this to control its + * processing loop, e.g., "while (next_scanline < image_height)". + */ + + JDIMENSION next_scanline; /* 0 .. image_height-1 */ + + /* Remaining fields are known throughout compressor, but generally + * should not be touched by a surrounding application. + */ + + /* + * These fields are computed during compression startup + */ + boolean progressive_mode; /* TRUE if scan script uses progressive mode */ + int max_h_samp_factor; /* largest h_samp_factor */ + int max_v_samp_factor; /* largest v_samp_factor */ + + JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ + /* The coefficient controller receives data in units of MCU rows as defined + * for fully interleaved scans (whether the JPEG file is interleaved or not). + * There are v_samp_factor * DCTSIZE sample rows of each component in an + * "iMCU" (interleaved MCU) row. + */ + + /* + * These fields are valid during any one scan. + * They describe the components and MCUs actually appearing in the scan. + */ + int comps_in_scan; /* # of JPEG components in this scan */ + jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; + /* *cur_comp_info[i] describes component that appears i'th in SOS */ + + JDIMENSION MCUs_per_row; /* # of MCUs across the image */ + JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ + + int blocks_in_MCU; /* # of DCT blocks per MCU */ + int MCU_membership[C_MAX_BLOCKS_IN_MCU]; + /* MCU_membership[i] is index in cur_comp_info of component owning */ + /* i'th block in an MCU */ + + int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ + + /* + * Links to compression subobjects (methods and private variables of modules) + */ + struct jpeg_comp_master * master; + struct jpeg_c_main_controller * main; + struct jpeg_c_prep_controller * prep; + struct jpeg_c_coef_controller * coef; + struct jpeg_marker_writer * marker; + struct jpeg_color_converter * cconvert; + struct jpeg_downsampler * downsample; + struct jpeg_forward_dct * fdct; + struct jpeg_entropy_encoder * entropy; + jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ + int script_space_size; +}; + + +/* Master record for a decompression instance */ + +struct jpeg_decompress_struct { + jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ + + /* Source of compressed data */ + struct jpeg_source_mgr * src; + + /* Basic description of image --- filled in by jpeg_read_header(). */ + /* Application may inspect these values to decide how to process image. */ + + JDIMENSION image_width; /* nominal image width (from SOF marker) */ + JDIMENSION image_height; /* nominal image height */ + int num_components; /* # of color components in JPEG image */ + J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ + + /* Decompression processing parameters --- these fields must be set before + * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes + * them to default values. + */ + + J_COLOR_SPACE out_color_space; /* colorspace for output */ + + unsigned int scale_num, scale_denom; /* fraction by which to scale image */ + + double output_gamma; /* image gamma wanted in output */ + + boolean buffered_image; /* TRUE=multiple output passes */ + boolean raw_data_out; /* TRUE=downsampled data wanted */ + + J_DCT_METHOD dct_method; /* IDCT algorithm selector */ + boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ + boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ + + boolean quantize_colors; /* TRUE=colormapped output wanted */ + /* the following are ignored if not quantize_colors: */ + J_DITHER_MODE dither_mode; /* type of color dithering to use */ + boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ + int desired_number_of_colors; /* max # colors to use in created colormap */ + /* these are significant only in buffered-image mode: */ + boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ + boolean enable_external_quant;/* enable future use of external colormap */ + boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ + + /* Description of actual output image that will be returned to application. + * These fields are computed by jpeg_start_decompress(). + * You can also use jpeg_calc_output_dimensions() to determine these values + * in advance of calling jpeg_start_decompress(). + */ + + JDIMENSION output_width; /* scaled image width */ + JDIMENSION output_height; /* scaled image height */ + int out_color_components; /* # of color components in out_color_space */ + int output_components; /* # of color components returned */ + /* output_components is 1 (a colormap index) when quantizing colors; + * otherwise it equals out_color_components. + */ + int rec_outbuf_height; /* min recommended height of scanline buffer */ + /* If the buffer passed to jpeg_read_scanlines() is less than this many rows + * high, space and time will be wasted due to unnecessary data copying. + * Usually rec_outbuf_height will be 1 or 2, at most 4. + */ + + /* When quantizing colors, the output colormap is described by these fields. + * The application can supply a colormap by setting colormap non-NULL before + * calling jpeg_start_decompress; otherwise a colormap is created during + * jpeg_start_decompress or jpeg_start_output. + * The map has out_color_components rows and actual_number_of_colors columns. + */ + int actual_number_of_colors; /* number of entries in use */ + JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ + + /* State variables: these variables indicate the progress of decompression. + * The application may examine these but must not modify them. + */ + + /* Row index of next scanline to be read from jpeg_read_scanlines(). + * Application may use this to control its processing loop, e.g., + * "while (output_scanline < output_height)". + */ + JDIMENSION output_scanline; /* 0 .. output_height-1 */ + + /* Current input scan number and number of iMCU rows completed in scan. + * These indicate the progress of the decompressor input side. + */ + int input_scan_number; /* Number of SOS markers seen so far */ + JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ + + /* The "output scan number" is the notional scan being displayed by the + * output side. The decompressor will not allow output scan/row number + * to get ahead of input scan/row, but it can fall arbitrarily far behind. + */ + int output_scan_number; /* Nominal scan number being displayed */ + JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ + + /* Current progression status. coef_bits[c][i] indicates the precision + * with which component c's DCT coefficient i (in zigzag order) is known. + * It is -1 when no data has yet been received, otherwise it is the point + * transform (shift) value for the most recent scan of the coefficient + * (thus, 0 at completion of the progression). + * This pointer is NULL when reading a non-progressive file. + */ + int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ + + /* Internal JPEG parameters --- the application usually need not look at + * these fields. Note that the decompressor output side may not use + * any parameters that can change between scans. + */ + + /* Quantization and Huffman tables are carried forward across input + * datastreams when processing abbreviated JPEG datastreams. + */ + + JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; + /* ptrs to coefficient quantization tables, or NULL if not defined */ + + JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; + JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; + /* ptrs to Huffman coding tables, or NULL if not defined */ + + /* These parameters are never carried across datastreams, since they + * are given in SOF/SOS markers or defined to be reset by SOI. + */ + + int data_precision; /* bits of precision in image data */ + + jpeg_component_info * comp_info; + /* comp_info[i] describes component that appears i'th in SOF */ + + boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ + boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ + + UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ + UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ + UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ + + unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ + + /* These fields record data obtained from optional markers recognized by + * the JPEG library. + */ + boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ + /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ + UINT8 JFIF_major_version; /* JFIF version number */ + UINT8 JFIF_minor_version; + UINT8 density_unit; /* JFIF code for pixel size units */ + UINT16 X_density; /* Horizontal pixel density */ + UINT16 Y_density; /* Vertical pixel density */ + boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ + UINT8 Adobe_transform; /* Color transform code from Adobe marker */ + + boolean CCIR601_sampling; /* TRUE=first samples are cosited */ + + /* Aside from the specific data retained from APPn markers known to the + * library, the uninterpreted contents of any or all APPn and COM markers + * can be saved in a list for examination by the application. + */ + jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ + + /* Remaining fields are known throughout decompressor, but generally + * should not be touched by a surrounding application. + */ + + /* + * These fields are computed during decompression startup + */ + int max_h_samp_factor; /* largest h_samp_factor */ + int max_v_samp_factor; /* largest v_samp_factor */ + + int min_DCT_scaled_size; /* smallest DCT_scaled_size of any component */ + + JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ + /* The coefficient controller's input and output progress is measured in + * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows + * in fully interleaved JPEG scans, but are used whether the scan is + * interleaved or not. We define an iMCU row as v_samp_factor DCT block + * rows of each component. Therefore, the IDCT output contains + * v_samp_factor*DCT_scaled_size sample rows of a component per iMCU row. + */ + + JSAMPLE * sample_range_limit; /* table for fast range-limiting */ + + /* + * These fields are valid during any one scan. + * They describe the components and MCUs actually appearing in the scan. + * Note that the decompressor output side must not use these fields. + */ + int comps_in_scan; /* # of JPEG components in this scan */ + jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; + /* *cur_comp_info[i] describes component that appears i'th in SOS */ + + JDIMENSION MCUs_per_row; /* # of MCUs across the image */ + JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ + + int blocks_in_MCU; /* # of DCT blocks per MCU */ + int MCU_membership[D_MAX_BLOCKS_IN_MCU]; + /* MCU_membership[i] is index in cur_comp_info of component owning */ + /* i'th block in an MCU */ + + int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ + + /* This field is shared between entropy decoder and marker parser. + * It is either zero or the code of a JPEG marker that has been + * read from the data source, but has not yet been processed. + */ + int unread_marker; + + /* + * Links to decompression subobjects (methods, private variables of modules) + */ + struct jpeg_decomp_master * master; + struct jpeg_d_main_controller * main; + struct jpeg_d_coef_controller * coef; + struct jpeg_d_post_controller * post; + struct jpeg_input_controller * inputctl; + struct jpeg_marker_reader * marker; + struct jpeg_entropy_decoder * entropy; + struct jpeg_inverse_dct * idct; + struct jpeg_upsampler * upsample; + struct jpeg_color_deconverter * cconvert; + struct jpeg_color_quantizer * cquantize; +}; + + +/* "Object" declarations for JPEG modules that may be supplied or called + * directly by the surrounding application. + * As with all objects in the JPEG library, these structs only define the + * publicly visible methods and state variables of a module. Additional + * private fields may exist after the public ones. + */ + + +/* Error handler object */ + +struct jpeg_error_mgr { + /* Error exit handler: does not return to caller */ + JMETHOD(void, error_exit, (j_common_ptr cinfo)); + /* Conditionally emit a trace or warning message */ + JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); + /* Routine that actually outputs a trace or error message */ + JMETHOD(void, output_message, (j_common_ptr cinfo)); + /* Format a message string for the most recent JPEG error or message */ + JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); +#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ + /* Reset error state variables at start of a new image */ + JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); + + /* The message ID code and any parameters are saved here. + * A message can have one string parameter or up to 8 int parameters. + */ + int msg_code; +#define JMSG_STR_PARM_MAX 80 + union { + int i[8]; + char s[JMSG_STR_PARM_MAX]; + } msg_parm; + + /* Standard state variables for error facility */ + + int trace_level; /* max msg_level that will be displayed */ + + /* For recoverable corrupt-data errors, we emit a warning message, + * but keep going unless emit_message chooses to abort. emit_message + * should count warnings in num_warnings. The surrounding application + * can check for bad data by seeing if num_warnings is nonzero at the + * end of processing. + */ + long num_warnings; /* number of corrupt-data warnings */ + + /* These fields point to the table(s) of error message strings. + * An application can change the table pointer to switch to a different + * message list (typically, to change the language in which errors are + * reported). Some applications may wish to add additional error codes + * that will be handled by the JPEG library error mechanism; the second + * table pointer is used for this purpose. + * + * First table includes all errors generated by JPEG library itself. + * Error code 0 is reserved for a "no such error string" message. + */ + const char * const * jpeg_message_table; /* Library errors */ + int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ + /* Second table can be added by application (see cjpeg/djpeg for example). + * It contains strings numbered first_addon_message..last_addon_message. + */ + const char * const * addon_message_table; /* Non-library errors */ + int first_addon_message; /* code for first string in addon table */ + int last_addon_message; /* code for last string in addon table */ +}; + + +/* Progress monitor object */ + +struct jpeg_progress_mgr { + JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); + + long pass_counter; /* work units completed in this pass */ + long pass_limit; /* total number of work units in this pass */ + int completed_passes; /* passes completed so far */ + int total_passes; /* total number of passes expected */ +}; + + +/* Data destination object for compression */ + +struct jpeg_destination_mgr { + JOCTET * next_output_byte; /* => next byte to write in buffer */ + size_t free_in_buffer; /* # of byte spaces remaining in buffer */ + + JMETHOD(void, init_destination, (j_compress_ptr cinfo)); + JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); + JMETHOD(void, term_destination, (j_compress_ptr cinfo)); +}; + + +/* Data source object for decompression */ + +struct jpeg_source_mgr { + const JOCTET * next_input_byte; /* => next byte to read from buffer */ + size_t bytes_in_buffer; /* # of bytes remaining in buffer */ + + JMETHOD(void, init_source, (j_decompress_ptr cinfo)); + JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); + JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); + JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); + JMETHOD(void, term_source, (j_decompress_ptr cinfo)); +}; + + +/* Memory manager object. + * Allocates "small" objects (a few K total), "large" objects (tens of K), + * and "really big" objects (virtual arrays with backing store if needed). + * The memory manager does not allow individual objects to be freed; rather, + * each created object is assigned to a pool, and whole pools can be freed + * at once. This is faster and more convenient than remembering exactly what + * to free, especially where malloc()/free() are not too speedy. + * NB: alloc routines never return NULL. They exit to error_exit if not + * successful. + */ + +#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ +#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ +#define JPOOL_NUMPOOLS 2 + +typedef struct jvirt_sarray_control * jvirt_sarray_ptr; +typedef struct jvirt_barray_control * jvirt_barray_ptr; + + +struct jpeg_memory_mgr { + /* Method pointers */ + JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, + size_t sizeofobject)); + JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, + size_t sizeofobject)); + JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, + JDIMENSION samplesperrow, + JDIMENSION numrows)); + JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, + JDIMENSION blocksperrow, + JDIMENSION numrows)); + JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, + int pool_id, + boolean pre_zero, + JDIMENSION samplesperrow, + JDIMENSION numrows, + JDIMENSION maxaccess)); + JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, + int pool_id, + boolean pre_zero, + JDIMENSION blocksperrow, + JDIMENSION numrows, + JDIMENSION maxaccess)); + JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); + JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, + jvirt_sarray_ptr ptr, + JDIMENSION start_row, + JDIMENSION num_rows, + boolean writable)); + JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, + jvirt_barray_ptr ptr, + JDIMENSION start_row, + JDIMENSION num_rows, + boolean writable)); + JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); + JMETHOD(void, self_destruct, (j_common_ptr cinfo)); + + /* Limit on memory allocation for this JPEG object. (Note that this is + * merely advisory, not a guaranteed maximum; it only affects the space + * used for virtual-array buffers.) May be changed by outer application + * after creating the JPEG object. + */ + long max_memory_to_use; + + /* Maximum allocation request accepted by alloc_large. */ + long max_alloc_chunk; +}; + + +/* Routine signature for application-supplied marker processing methods. + * Need not pass marker code since it is stored in cinfo->unread_marker. + */ +typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); + + +/* Declarations for routines called by application. + * The JPP macro hides prototype parameters from compilers that can't cope. + * Note JPP requires double parentheses. + */ + +#ifdef HAVE_PROTOTYPES +#define JPP(arglist) arglist +#else +#define JPP(arglist) () +#endif + + +/* Short forms of external names for systems with brain-damaged linkers. + * We shorten external names to be unique in the first six letters, which + * is good enough for all known systems. + * (If your compiler itself needs names to be unique in less than 15 + * characters, you are out of luck. Get a better compiler.) + */ + +#ifdef NEED_SHORT_EXTERNAL_NAMES +#define jpeg_std_error jStdError +#define jpeg_CreateCompress jCreaCompress +#define jpeg_CreateDecompress jCreaDecompress +#define jpeg_destroy_compress jDestCompress +#define jpeg_destroy_decompress jDestDecompress +#define jpeg_stdio_dest jStdDest +#define jpeg_stdio_src jStdSrc +#define jpeg_set_defaults jSetDefaults +#define jpeg_set_colorspace jSetColorspace +#define jpeg_default_colorspace jDefColorspace +#define jpeg_set_quality jSetQuality +#define jpeg_set_linear_quality jSetLQuality +#define jpeg_add_quant_table jAddQuantTable +#define jpeg_quality_scaling jQualityScaling +#define jpeg_simple_progression jSimProgress +#define jpeg_suppress_tables jSuppressTables +#define jpeg_alloc_quant_table jAlcQTable +#define jpeg_alloc_huff_table jAlcHTable +#define jpeg_start_compress jStrtCompress +#define jpeg_write_scanlines jWrtScanlines +#define jpeg_finish_compress jFinCompress +#define jpeg_write_raw_data jWrtRawData +#define jpeg_write_marker jWrtMarker +#define jpeg_write_m_header jWrtMHeader +#define jpeg_write_m_byte jWrtMByte +#define jpeg_write_tables jWrtTables +#define jpeg_read_header jReadHeader +#define jpeg_start_decompress jStrtDecompress +#define jpeg_read_scanlines jReadScanlines +#define jpeg_finish_decompress jFinDecompress +#define jpeg_read_raw_data jReadRawData +#define jpeg_has_multiple_scans jHasMultScn +#define jpeg_start_output jStrtOutput +#define jpeg_finish_output jFinOutput +#define jpeg_input_complete jInComplete +#define jpeg_new_colormap jNewCMap +#define jpeg_consume_input jConsumeInput +#define jpeg_calc_output_dimensions jCalcDimensions +#define jpeg_save_markers jSaveMarkers +#define jpeg_set_marker_processor jSetMarker +#define jpeg_read_coefficients jReadCoefs +#define jpeg_write_coefficients jWrtCoefs +#define jpeg_copy_critical_parameters jCopyCrit +#define jpeg_abort_compress jAbrtCompress +#define jpeg_abort_decompress jAbrtDecompress +#define jpeg_abort jAbort +#define jpeg_destroy jDestroy +#define jpeg_resync_to_restart jResyncRestart +#endif /* NEED_SHORT_EXTERNAL_NAMES */ + + +/* Default error-management setup */ +EXTERN(struct jpeg_error_mgr *) jpeg_std_error + JPP((struct jpeg_error_mgr * err)); + +/* Initialization of JPEG compression objects. + * jpeg_create_compress() and jpeg_create_decompress() are the exported + * names that applications should call. These expand to calls on + * jpeg_CreateCompress and jpeg_CreateDecompress with additional information + * passed for version mismatch checking. + * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. + */ +#define jpeg_create_compress(cinfo) \ + jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ + (size_t) sizeof(struct jpeg_compress_struct)) +#define jpeg_create_decompress(cinfo) \ + jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ + (size_t) sizeof(struct jpeg_decompress_struct)) +EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, + int version, size_t structsize)); +EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, + int version, size_t structsize)); +/* Destruction of JPEG compression objects */ +EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); + +/* Standard data source and destination managers: stdio streams. */ +/* Caller is responsible for opening the file before and closing after. */ +EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); +EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); + +/* Default parameter setup for compression */ +EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); +/* Compression parameter setup aids */ +EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, + J_COLOR_SPACE colorspace)); +EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, + boolean force_baseline)); +EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, + int scale_factor, + boolean force_baseline)); +EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, + const unsigned int *basic_table, + int scale_factor, + boolean force_baseline)); +EXTERN(int) jpeg_quality_scaling JPP((int quality)); +EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, + boolean suppress)); +EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); +EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); + +/* Main entry points for compression */ +EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, + boolean write_all_tables)); +EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, + JSAMPARRAY scanlines, + JDIMENSION num_lines)); +EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); + +/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ +EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, + JSAMPIMAGE data, + JDIMENSION num_lines)); + +/* Write a special marker. See libjpeg.doc concerning safe usage. */ +EXTERN(void) jpeg_write_marker + JPP((j_compress_ptr cinfo, int marker, + const JOCTET * dataptr, unsigned int datalen)); +/* Same, but piecemeal. */ +EXTERN(void) jpeg_write_m_header + JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); +EXTERN(void) jpeg_write_m_byte + JPP((j_compress_ptr cinfo, int val)); + +/* Alternate compression function: just write an abbreviated table file */ +EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); + +/* Decompression startup: read start of JPEG datastream to see what's there */ +EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, + boolean require_image)); +/* Return value is one of: */ +#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ +#define JPEG_HEADER_OK 1 /* Found valid image datastream */ +#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ +/* If you pass require_image = TRUE (normal case), you need not check for + * a TABLES_ONLY return code; an abbreviated file will cause an error exit. + * JPEG_SUSPENDED is only possible if you use a data source module that can + * give a suspension return (the stdio source module doesn't). + */ + +/* Main entry points for decompression */ +EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); +EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, + JSAMPARRAY scanlines, + JDIMENSION max_lines)); +EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); + +/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ +EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, + JSAMPIMAGE data, + JDIMENSION max_lines)); + +/* Additional entry points for buffered-image mode. */ +EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); +EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, + int scan_number)); +EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); +EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); +EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); +/* Return value is one of: */ +/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ +#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ +#define JPEG_REACHED_EOI 2 /* Reached end of image */ +#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ +#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ + +/* Precalculate output dimensions for current decompression parameters. */ +EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); + +/* Control saving of COM and APPn markers into marker_list. */ +EXTERN(void) jpeg_save_markers + JPP((j_decompress_ptr cinfo, int marker_code, + unsigned int length_limit)); + +/* Install a special processing method for COM or APPn markers. */ +EXTERN(void) jpeg_set_marker_processor + JPP((j_decompress_ptr cinfo, int marker_code, + jpeg_marker_parser_method routine)); + +/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ +EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); +EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, + jvirt_barray_ptr * coef_arrays)); +EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, + j_compress_ptr dstinfo)); + +/* If you choose to abort compression or decompression before completing + * jpeg_finish_(de)compress, then you need to clean up to release memory, + * temporary files, etc. You can just call jpeg_destroy_(de)compress + * if you're done with the JPEG object, but if you want to clean it up and + * reuse it, call this: + */ +EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); +EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); + +/* Generic versions of jpeg_abort and jpeg_destroy that work on either + * flavor of JPEG object. These may be more convenient in some places. + */ +EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); +EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); + +/* Default restart-marker-resync procedure for use by data source modules */ +EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, + int desired)); + + +/* These marker codes are exported since applications and data source modules + * are likely to want to use them. + */ + +#define JPEG_RST0 0xD0 /* RST0 marker code */ +#define JPEG_EOI 0xD9 /* EOI marker code */ +#define JPEG_APP0 0xE0 /* APP0 marker code */ +#define JPEG_COM 0xFE /* COM marker code */ + + +/* If we have a brain-damaged compiler that emits warnings (or worse, errors) + * for structure definitions that are never filled in, keep it quiet by + * supplying dummy definitions for the various substructures. + */ + +#ifdef INCOMPLETE_TYPES_BROKEN +#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ +struct jvirt_sarray_control { long dummy; }; +struct jvirt_barray_control { long dummy; }; +struct jpeg_comp_master { long dummy; }; +struct jpeg_c_main_controller { long dummy; }; +struct jpeg_c_prep_controller { long dummy; }; +struct jpeg_c_coef_controller { long dummy; }; +struct jpeg_marker_writer { long dummy; }; +struct jpeg_color_converter { long dummy; }; +struct jpeg_downsampler { long dummy; }; +struct jpeg_forward_dct { long dummy; }; +struct jpeg_entropy_encoder { long dummy; }; +struct jpeg_decomp_master { long dummy; }; +struct jpeg_d_main_controller { long dummy; }; +struct jpeg_d_coef_controller { long dummy; }; +struct jpeg_d_post_controller { long dummy; }; +struct jpeg_input_controller { long dummy; }; +struct jpeg_marker_reader { long dummy; }; +struct jpeg_entropy_decoder { long dummy; }; +struct jpeg_inverse_dct { long dummy; }; +struct jpeg_upsampler { long dummy; }; +struct jpeg_color_deconverter { long dummy; }; +struct jpeg_color_quantizer { long dummy; }; +#endif /* JPEG_INTERNALS */ +#endif /* INCOMPLETE_TYPES_BROKEN */ + + +/* + * The JPEG library modules define JPEG_INTERNALS before including this file. + * The internal structure declarations are read only when that is true. + * Applications using the library should not include jpegint.h, but may wish + * to include jerror.h. + */ + +#ifdef JPEG_INTERNALS +#include "jpegint.h" /* fetch private declarations */ +#include "jerror.h" /* fetch error codes too */ +#endif + +#endif /* JPEGLIB_H */ diff --git a/engine/libs/mingw-libs/libjpeg.a b/engine/libs/mingw-libs/libjpeg.a new file mode 100755 index 0000000000000000000000000000000000000000..4c042fa1b72474e778cd055693920654f8f42358 GIT binary patch literal 144134 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 literal 0 HcmV?d00001 diff --git a/engine/libs/mingw-libs/libogg.a b/engine/libs/mingw-libs/libogg.a new file mode 100755 index 0000000000000000000000000000000000000000..72a929899e6866a478faf4a81bb24d1b87e68197 GIT binary patch literal 44726 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ÏL5lF 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

c%m_gOq*YXNz@0DPn+0r-K|u-)PFd~)}L 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 D<5+mm literal 0 HcmV?d00001 diff --git a/engine/libs/mingw-libs/libpng.lib b/engine/libs/mingw-libs/libpng.lib new file mode 100755 index 0000000000000000000000000000000000000000..14a4de768b081ac553f9d530b75981f3ccc47c7e GIT binary patch literal 367138 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 literal 0 HcmV?d00001

+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 z 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 At^fc4 literal 0 HcmV?d00001 diff --git a/engine/libs/mingw-libs/libz.a b/engine/libs/mingw-libs/libz.a new file mode 100755 index 0000000000000000000000000000000000000000..5869182375571baf984e6941b14f5e101741d9f8 GIT binary patch literal 75124 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 D{lN4q literal 0 HcmV?d00001 diff --git a/engine/libs/mingw-libs/png.h b/engine/libs/mingw-libs/png.h new file mode 100755 index 000000000..5e41c3238 --- /dev/null +++ b/engine/libs/mingw-libs/png.h @@ -0,0 +1,3450 @@ + +/* png.h - header file for PNG reference library + * + * libpng version 1.2.10 - April 23, 2006 + * Copyright (c) 1998-2006 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + * + * Authors and maintainers: + * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat + * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger + * libpng versions 0.97, January 1998, through 1.2.10 - April 23, 2006: Glenn + * See also "Contributing Authors", below. + * + * Note about libpng version numbers: + * + * Due to various miscommunications, unforeseen code incompatibilities + * and occasional factors outside the authors' control, version numbering + * on the library has not always been consistent and straightforward. + * The following table summarizes matters since version 0.89c, which was + * the first widely used release: + * + * source png.h png.h shared-lib + * version string int version + * ------- ------ ----- ---------- + * 0.89c "1.0 beta 3" 0.89 89 1.0.89 + * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90] + * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95] + * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96] + * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97] + * 0.97c 0.97 97 2.0.97 + * 0.98 0.98 98 2.0.98 + * 0.99 0.99 98 2.0.99 + * 0.99a-m 0.99 99 2.0.99 + * 1.00 1.00 100 2.1.0 [100 should be 10000] + * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000] + * 1.0.1 png.h string is 10001 2.1.0 + * 1.0.1a-e identical to the 10002 from here on, the shared library + * 1.0.2 source version) 10002 is 2.V where V is the source code + * 1.0.2a-b 10003 version, except as noted. + * 1.0.3 10003 + * 1.0.3a-d 10004 + * 1.0.4 10004 + * 1.0.4a-f 10005 + * 1.0.5 (+ 2 patches) 10005 + * 1.0.5a-d 10006 + * 1.0.5e-r 10100 (not source compatible) + * 1.0.5s-v 10006 (not binary compatible) + * 1.0.6 (+ 3 patches) 10006 (still binary incompatible) + * 1.0.6d-f 10007 (still binary incompatible) + * 1.0.6g 10007 + * 1.0.6h 10007 10.6h (testing xy.z so-numbering) + * 1.0.6i 10007 10.6i + * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0) + * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible) + * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible) + * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible) + * 1.0.7 1 10007 (still compatible) + * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4 + * 1.0.8rc1 1 10008 2.1.0.8rc1 + * 1.0.8 1 10008 2.1.0.8 + * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6 + * 1.0.9rc1 1 10009 2.1.0.9rc1 + * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10 + * 1.0.9rc2 1 10009 2.1.0.9rc2 + * 1.0.9 1 10009 2.1.0.9 + * 1.0.10beta1 1 10010 2.1.0.10beta1 + * 1.0.10rc1 1 10010 2.1.0.10rc1 + * 1.0.10 1 10010 2.1.0.10 + * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3 + * 1.0.11rc1 1 10011 2.1.0.11rc1 + * 1.0.11 1 10011 2.1.0.11 + * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2 + * 1.0.12rc1 2 10012 2.1.0.12rc1 + * 1.0.12 2 10012 2.1.0.12 + * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned) + * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2 + * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5 + * 1.2.0rc1 3 10200 3.1.2.0rc1 + * 1.2.0 3 10200 3.1.2.0 + * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4 + * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2 + * 1.2.1 3 10201 3.1.2.1 + * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6 + * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1 + * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1 + * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1 + * 1.0.13 10 10013 10.so.0.1.0.13 + * 1.2.2 12 10202 12.so.0.1.2.2 + * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6 + * 1.2.3 12 10203 12.so.0.1.2.3 + * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3 + * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1 + * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1 + * 1.0.14 10 10014 10.so.0.1.0.14 + * 1.2.4 13 10204 12.so.0.1.2.4 + * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2 + * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3 + * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3 + * 1.0.15 10 10015 10.so.0.1.0.15 + * 1.2.5 13 10205 12.so.0.1.2.5 + * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4 + * 1.0.16 10 10016 10.so.0.1.0.16 + * 1.2.6 13 10206 12.so.0.1.2.6 + * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 + * 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 + * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 + * 1.0.17 10 10017 12.so.0.1.0.17 + * 1.2.7 13 10207 12.so.0.1.2.7 + * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 + * 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 + * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 + * 1.0.18 10 10018 12.so.0.1.0.18 + * 1.2.8 13 10208 12.so.0.1.2.8 + * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 + * 1.2.9beta4-11 13 10209 12.so.0.9[.0] + * 1.2.9rc1 13 10209 12.so.0.9[.0] + * 1.2.9 13 10209 12.so.0.9[.0] + * 1.2.10beta1-8 13 10210 12.so.0.10[.0] + * 1.2.10rc1-3 13 10210 12.so.0.10[.0] + * 1.2.10 13 10210 12.so.0.10[.0] + * + * Henceforth the source version will match the shared-library major + * and minor numbers; the shared-library major version number will be + * used for changes in backward compatibility, as it is intended. The + * PNG_LIBPNG_VER macro, which is not used within libpng but is available + * for applications, is an unsigned integer of the form xyyzz corresponding + * to the source version x.y.z (leading zeros in y and z). Beta versions + * were given the previous public release number plus a letter, until + * version 1.0.6j; from then on they were given the upcoming public + * release number plus "betaNN" or "rcN". + * + * Binary incompatibility exists only when applications make direct access + * to the info_ptr or png_ptr members through png.h, and the compiled + * application is loaded with a different version of the library. + * + * DLLNUM will change each time there are forward or backward changes + * in binary compatibility (e.g., when a new feature is added). + * + * See libpng.txt or libpng.3 for more information. The PNG specification + * is available as a W3C Recommendation and as an ISO Specification, + * defines should NOT be changed. + */ +#define PNG_INFO_gAMA 0x0001 +#define PNG_INFO_sBIT 0x0002 +#define PNG_INFO_cHRM 0x0004 +#define PNG_INFO_PLTE 0x0008 +#define PNG_INFO_tRNS 0x0010 +#define PNG_INFO_bKGD 0x0020 +#define PNG_INFO_hIST 0x0040 +#define PNG_INFO_pHYs 0x0080 +#define PNG_INFO_oFFs 0x0100 +#define PNG_INFO_tIME 0x0200 +#define PNG_INFO_pCAL 0x0400 +#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ +#define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */ +#define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */ +#define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */ +#define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */ + +/* This is used for the transformation routines, as some of them + * change these values for the row. It also should enable using + * the routines for other purposes. + */ +typedef struct png_row_info_struct +{ + png_uint_32 width; /* width of row */ + png_uint_32 rowbytes; /* number of bytes in row */ + png_byte color_type; /* color type of row */ + png_byte bit_depth; /* bit depth of row */ + png_byte channels; /* number of channels (1, 2, 3, or 4) */ + png_byte pixel_depth; /* bits per pixel (depth * channels) */ +} png_row_info; + +typedef png_row_info FAR * png_row_infop; +typedef png_row_info FAR * FAR * png_row_infopp; + +/* These are the function types for the I/O functions and for the functions + * that allow the user to override the default I/O functions with his or her + * own. The png_error_ptr type should match that of user-supplied warning + * and error functions, while the png_rw_ptr type should match that of the + * user read/write data functions. + */ +typedef struct png_struct_def png_struct; +typedef png_struct FAR * png_structp; + +typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp)); +typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t)); +typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp)); +typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32, + int)); +typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32, + int)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, png_infop)); +typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop)); +typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep, + png_uint_32, int)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_LEGACY_SUPPORTED) +typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp, + png_row_infop, png_bytep)); +#endif + +#if defined(PNG_USER_CHUNKS_SUPPORTED) +typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp)); +#endif +#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) +typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp)); +#endif + +/* Transform masks for the high-level interface */ +#define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */ +#define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */ +#define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */ +#define PNG_TRANSFORM_PACKING 0x0004 /* read and write */ +#define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */ +#define PNG_TRANSFORM_EXPAND 0x0010 /* read only */ +#define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */ +#define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */ +#define PNG_TRANSFORM_BGR 0x0080 /* read and write */ +#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */ +#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */ +#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */ +#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* WRITE only */ + +/* Flags for MNG supported features */ +#define PNG_FLAG_MNG_EMPTY_PLTE 0x01 +#define PNG_FLAG_MNG_FILTER_64 0x04 +#define PNG_ALL_MNG_FEATURES 0x05 + +typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t)); +typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp)); + +/* The structure that holds the information to read and write PNG files. + * The only people who need to care about what is inside of this are the + * people who will be modifying the library for their own special needs. + * It should NOT be accessed directly by an application, except to store + * the jmp_buf. + */ + +struct png_struct_def +{ +#ifdef PNG_SETJMP_SUPPORTED + jmp_buf jmpbuf; /* used in png_error */ +#endif + png_error_ptr error_fn; /* function for printing errors and aborting */ + png_error_ptr warning_fn; /* function for printing warnings */ + png_voidp error_ptr; /* user supplied struct for error functions */ + png_rw_ptr write_data_fn; /* function for writing output data */ + png_rw_ptr read_data_fn; /* function for reading input data */ + png_voidp io_ptr; /* ptr to application struct for I/O functions */ + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) + png_user_transform_ptr read_user_transform_fn; /* user read transform */ +#endif + +#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) + png_user_transform_ptr write_user_transform_fn; /* user write transform */ +#endif + +/* These were added in libpng-1.0.2 */ +#if defined(PNG_USER_TRANSFORM_PTR_SUPPORTED) +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) + png_voidp user_transform_ptr; /* user supplied struct for user transform */ + png_byte user_transform_depth; /* bit depth of user transformed pixels */ + png_byte user_transform_channels; /* channels in user transformed pixels */ +#endif +#endif + + png_uint_32 mode; /* tells us where we are in the PNG file */ + png_uint_32 flags; /* flags indicating various things to libpng */ + png_uint_32 transformations; /* which transformations to perform */ + + z_stream zstream; /* pointer to decompression structure (below) */ + png_bytep zbuf; /* buffer for zlib */ + png_size_t zbuf_size; /* size of zbuf */ + int zlib_level; /* holds zlib compression level */ + int zlib_method; /* holds zlib compression method */ + int zlib_window_bits; /* holds zlib compression window bits */ + int zlib_mem_level; /* holds zlib compression memory level */ + int zlib_strategy; /* holds zlib compression strategy */ + + png_uint_32 width; /* width of image in pixels */ + png_uint_32 height; /* height of image in pixels */ + png_uint_32 num_rows; /* number of rows in current pass */ + png_uint_32 usr_width; /* width of row at start of write */ + png_uint_32 rowbytes; /* size of row in bytes */ + png_uint_32 irowbytes; /* size of current interlaced row in bytes */ + png_uint_32 iwidth; /* width of current interlaced row in pixels */ + png_uint_32 row_number; /* current row in interlace pass */ + png_bytep prev_row; /* buffer to save previous (unfiltered) row */ + png_bytep row_buf; /* buffer to save current (unfiltered) row */ + png_bytep sub_row; /* buffer to save "sub" row when filtering */ + png_bytep up_row; /* buffer to save "up" row when filtering */ + png_bytep avg_row; /* buffer to save "avg" row when filtering */ + png_bytep paeth_row; /* buffer to save "Paeth" row when filtering */ + png_row_info row_info; /* used for transformation routines */ + + png_uint_32 idat_size; /* current IDAT size for read */ + png_uint_32 crc; /* current chunk CRC value */ + png_colorp palette; /* palette from the input file */ + png_uint_16 num_palette; /* number of color entries in palette */ + png_uint_16 num_trans; /* number of transparency values */ + png_byte chunk_name[5]; /* null-terminated name of current chunk */ + png_byte compression; /* file compression type (always 0) */ + png_byte filter; /* file filter type (always 0) */ + png_byte interlaced; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ + png_byte pass; /* current interlace pass (0 - 6) */ + png_byte do_filter; /* row filter flags (see PNG_FILTER_ below ) */ + png_byte color_type; /* color type of file */ + png_byte bit_depth; /* bit depth of file */ + png_byte usr_bit_depth; /* bit depth of users row */ + png_byte pixel_depth; /* number of bits per pixel */ + png_byte channels; /* number of channels in file */ + png_byte usr_channels; /* channels at start of write */ + png_byte sig_bytes; /* magic bytes read/written from start of file */ + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +#ifdef PNG_LEGACY_SUPPORTED + png_byte filler; /* filler byte for pixel expansion */ +#else + png_uint_16 filler; /* filler bytes for pixel expansion */ +#endif +#endif + +#if defined(PNG_bKGD_SUPPORTED) + png_byte background_gamma_type; +# ifdef PNG_FLOATING_POINT_SUPPORTED + float background_gamma; +# endif + png_color_16 background; /* background color in screen gamma space */ +#if defined(PNG_READ_GAMMA_SUPPORTED) + png_color_16 background_1; /* background normalized to gamma 1.0 */ +#endif +#endif /* PNG_bKGD_SUPPORTED */ + +#if defined(PNG_WRITE_FLUSH_SUPPORTED) + png_flush_ptr output_flush_fn;/* Function for flushing output */ + png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */ + png_uint_32 flush_rows; /* number of rows written since last flush */ +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + int gamma_shift; /* number of "insignificant" bits 16-bit gamma */ +#ifdef PNG_FLOATING_POINT_SUPPORTED + float gamma; /* file gamma value */ + float screen_gamma; /* screen gamma value (display_exponent) */ +#endif +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + png_bytep gamma_table; /* gamma table for 8-bit depth files */ + png_bytep gamma_from_1; /* converts from 1.0 to screen */ + png_bytep gamma_to_1; /* converts from file to 1.0 */ + png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */ + png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */ + png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */ +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) + png_color_8 sig_bit; /* significant bits in each available channel */ +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) + png_color_8 shift; /* shift for significant bit tranformation */ +#endif + +#if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ + || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + png_bytep trans; /* transparency values for paletted files */ + png_color_16 trans_values; /* transparency values for non-paletted files */ +#endif + + png_read_status_ptr read_row_fn; /* called after each row is decoded */ + png_write_status_ptr write_row_fn; /* called after each row is encoded */ +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED + png_progressive_info_ptr info_fn; /* called after header data fully read */ + png_progressive_row_ptr row_fn; /* called after each prog. row is decoded */ + png_progressive_end_ptr end_fn; /* called after image is complete */ + png_bytep save_buffer_ptr; /* current location in save_buffer */ + png_bytep save_buffer; /* buffer for previously read data */ + png_bytep current_buffer_ptr; /* current location in current_buffer */ + png_bytep current_buffer; /* buffer for recently used data */ + png_uint_32 push_length; /* size of current input chunk */ + png_uint_32 skip_length; /* bytes to skip in input data */ + png_size_t save_buffer_size; /* amount of data now in save_buffer */ + png_size_t save_buffer_max; /* total size of save_buffer */ + png_size_t buffer_size; /* total amount of available input data */ + png_size_t current_buffer_size; /* amount of data now in current_buffer */ + int process_mode; /* what push library is currently doing */ + int cur_palette; /* current push library palette index */ + +# if defined(PNG_TEXT_SUPPORTED) + png_size_t current_text_size; /* current size of text input data */ + png_size_t current_text_left; /* how much text left to read in input */ + png_charp current_text; /* current text chunk buffer */ + png_charp current_text_ptr; /* current location in current_text */ +# endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */ + +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) +/* for the Borland special 64K segment handler */ + png_bytepp offset_table_ptr; + png_bytep offset_table; + png_uint_16 offset_table_number; + png_uint_16 offset_table_count; + png_uint_16 offset_table_count_free; +#endif + +#if defined(PNG_READ_DITHER_SUPPORTED) + png_bytep palette_lookup; /* lookup table for dithering */ + png_bytep dither_index; /* index translation for palette files */ +#endif + +#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED) + png_uint_16p hist; /* histogram */ +#endif + +#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) + png_byte heuristic_method; /* heuristic for row filter selection */ + png_byte num_prev_filters; /* number of weights for previous rows */ + png_bytep prev_filters; /* filter type(s) of previous row(s) */ + png_uint_16p filter_weights; /* weight(s) for previous line(s) */ + png_uint_16p inv_filter_weights; /* 1/weight(s) for previous line(s) */ + png_uint_16p filter_costs; /* relative filter calculation cost */ + png_uint_16p inv_filter_costs; /* 1/relative filter calculation cost */ +#endif + +#if defined(PNG_TIME_RFC1123_SUPPORTED) + png_charp time_buffer; /* String to hold RFC 1123 time text */ +#endif + +/* New members added in libpng-1.0.6 */ + +#ifdef PNG_FREE_ME_SUPPORTED + png_uint_32 free_me; /* flags items libpng is responsible for freeing */ +#endif + +#if defined(PNG_USER_CHUNKS_SUPPORTED) + png_voidp user_chunk_ptr; + png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */ +#endif + +#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) + int num_chunk_list; + png_bytep chunk_list; +#endif + +/* New members added in libpng-1.0.3 */ +#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) + png_byte rgb_to_gray_status; + /* These were changed from png_byte in libpng-1.0.6 */ + png_uint_16 rgb_to_gray_red_coeff; + png_uint_16 rgb_to_gray_green_coeff; + png_uint_16 rgb_to_gray_blue_coeff; +#endif + +/* New member added in libpng-1.0.4 (renamed in 1.0.9) */ +#if defined(PNG_MNG_FEATURES_SUPPORTED) || \ + defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ + defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) +/* changed from png_byte to png_uint_32 at version 1.2.0 */ +#ifdef PNG_1_0_X + png_byte mng_features_permitted; +#else + png_uint_32 mng_features_permitted; +#endif /* PNG_1_0_X */ +#endif + +/* New member added in libpng-1.0.7 */ +#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) + png_fixed_point int_gamma; +#endif + +/* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ +#if defined(PNG_MNG_FEATURES_SUPPORTED) + png_byte filter_type; +#endif + +#if defined(PNG_1_0_X) || (defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)) +/* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */ + png_uint_32 row_buf_size; +#endif + +/* New members added in libpng-1.2.0 */ +#if !defined(PNG_1_0_X) && defined(PNG_ASSEMBLER_CODE_SUPPORTED) + png_byte mmx_bitdepth_threshold; + png_uint_32 mmx_rowbytes_threshold; + png_uint_32 asm_flags; +#endif + +/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ +#ifdef PNG_USER_MEM_SUPPORTED + png_voidp mem_ptr; /* user supplied struct for mem functions */ + png_malloc_ptr malloc_fn; /* function for allocating memory */ + png_free_ptr free_fn; /* function for freeing memory */ +#endif + +/* New member added in libpng-1.0.13 and 1.2.0 */ + png_bytep big_row_buf; /* buffer to save current (unfiltered) row */ + +#if defined(PNG_READ_DITHER_SUPPORTED) +/* The following three members were added at version 1.0.14 and 1.2.4 */ + png_bytep dither_sort; /* working sort array */ + png_bytep index_to_palette; /* where the original index currently is */ + /* in the palette */ + png_bytep palette_to_index; /* which original index points to this */ + /* palette color */ +#endif + +/* New members added in libpng-1.0.16 and 1.2.6 */ + png_byte compression_type; + +#ifdef PNG_SET_USER_LIMITS_SUPPORTED + png_uint_32 user_width_max; + png_uint_32 user_height_max; +#endif + +}; + + +/* This triggers a compiler error in png.c, if png.c and png.h + * do not agree upon the version number. + */ +typedef png_structp version_1_2_10; + +typedef png_struct FAR * FAR * png_structpp; + +/* Here are the function definitions most commonly used. This is not + * the place to find out how to use libpng. See libpng.txt for the + * full explanation, see example.c for the summary. This just provides + * a simple one line description of the use of each function. + */ + +/* Returns the version number of the library */ +extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void)); + +/* Tell lib we have already handled the first magic bytes. + * Handling more than 8 bytes from the beginning of the file is an error. + */ +extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, + int num_bytes)); + +/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a + * PNG file. Returns zero if the supplied bytes match the 8-byte PNG + * signature, and non-zero otherwise. Having num_to_check == 0 or + * start > 7 will always fail (ie return non-zero). + */ +extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, + png_size_t num_to_check)); + +/* Simple signature checking function. This is the same as calling + * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). + */ +extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)); + +/* Allocate and initialize png_ptr struct for reading, and any other memory. */ +extern PNG_EXPORT(png_structp,png_create_read_struct) + PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn)); + +/* Allocate and initialize png_ptr struct for writing, and any other memory */ +extern PNG_EXPORT(png_structp,png_create_write_struct) + PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, + png_error_ptr error_fn, png_error_ptr warn_fn)); + +#ifdef PNG_WRITE_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size) + PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_WRITE_SUPPORTED +extern PNG_EXPORT(void,png_set_compression_buffer_size) + PNGARG((png_structp png_ptr, png_uint_32 size)); +#endif + +/* Reset the compression stream */ +extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr)); + +/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */ +#ifdef PNG_USER_MEM_SUPPORTED +extern PNG_EXPORT(png_structp,png_create_read_struct_2) + PNGARG((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)); +extern PNG_EXPORT(png_structp,png_create_write_struct_2) + PNGARG((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)); +#endif + +/* Write a PNG chunk - size, type, (optional) data, CRC. */ +extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, + png_bytep chunk_name, png_bytep data, png_size_t length)); + +/* Write the start of a PNG chunk - length and chunk name. */ +extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, + png_bytep chunk_name, png_uint_32 length)); + +/* Write the data of a PNG chunk started with png_write_chunk_start(). */ +extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, + png_bytep data, png_size_t length)); + +/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ +extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr)); + +/* Allocate and initialize the info structure */ +extern PNG_EXPORT(png_infop,png_create_info_struct) + PNGARG((png_structp png_ptr)); + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +/* Initialize the info structure (old interface - DEPRECATED) */ +extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr)); +#undef png_info_init +#define png_info_init(info_ptr) png_info_init_3(&info_ptr,\ + png_sizeof(png_info)); +#endif + +extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, + png_size_t png_info_struct_size)); + +/* Writes all the PNG information before the image. */ +extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED +/* read the information before the actual image data. */ +extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + +#if defined(PNG_TIME_RFC1123_SUPPORTED) +extern PNG_EXPORT(png_charp,png_convert_to_rfc1123) + PNGARG((png_structp png_ptr, png_timep ptime)); +#endif + +#if !defined(_WIN32_WCE) +/* "time.h" functions are not supported on WindowsCE */ +#if defined(PNG_WRITE_tIME_SUPPORTED) +/* convert from a struct tm to png_time */ +extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, + struct tm FAR * ttime)); + +/* convert from time_t to png_time. Uses gmtime() */ +extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, + time_t ttime)); +#endif /* PNG_WRITE_tIME_SUPPORTED */ +#endif /* _WIN32_WCE */ + +#if defined(PNG_READ_EXPAND_SUPPORTED) +/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */ +extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); +#if !defined(PNG_1_0_X) +extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp + png_ptr)); +#endif +extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr)); +extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr)); +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +/* Deprecated */ +extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp png_ptr)); +#endif +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +/* Use blue, green, red order for pixels. */ +extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) +/* Expand the grayscale to 24-bit RGB if necessary. */ +extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) +/* Reduce RGB to grayscale. */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, + int error_action, double red, double green )); +#endif +extern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr, + int error_action, png_fixed_point red, png_fixed_point green )); +extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp + png_ptr)); +#endif + +extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, + png_colorp palette)); + +#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED) +extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ + defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) +/* Add a filler byte to 8-bit Gray or 24-bit RGB images. */ +extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, + png_uint_32 filler, int flags)); +/* The values of the PNG_FILLER_ defines should NOT be changed */ +#define PNG_FILLER_BEFORE 0 +#define PNG_FILLER_AFTER 1 +/* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */ +#if !defined(PNG_1_0_X) +extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr, + png_uint_32 filler, int flags)); +#endif +#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +/* Swap bytes in 16-bit depth files. */ +extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) +/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */ +extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) +/* Swap packing order of pixels in bytes. */ +extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) +/* Converts files to legal bit depths. */ +extern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr, + png_color_8p true_bits)); +#endif + +#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ + defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* Have the code handle the interlacing. Returns the number of passes. */ +extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +/* Invert monochrome files */ +extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_BACKGROUND_SUPPORTED) +/* Handle alpha and tRNS by replacing with a background color. */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, + png_color_16p background_color, int background_gamma_code, + int need_expand, double background_gamma)); +#endif +#define PNG_BACKGROUND_GAMMA_UNKNOWN 0 +#define PNG_BACKGROUND_GAMMA_SCREEN 1 +#define PNG_BACKGROUND_GAMMA_FILE 2 +#define PNG_BACKGROUND_GAMMA_UNIQUE 3 +#endif + +#if defined(PNG_READ_16_TO_8_SUPPORTED) +/* strip the second byte of information from a 16-bit depth file. */ +extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_DITHER_SUPPORTED) +/* Turn on dithering, and reduce the palette to the number of colors available. */ +extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, + png_colorp palette, int num_palette, int maximum_colors, + png_uint_16p histogram, int full_dither)); +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) +/* Handle gamma correction. Screen_gamma=(display_exponent) */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, + double screen_gamma, double default_file_gamma)); +#endif +#endif + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ + defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED) +/* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */ +/* Deprecated and will be removed. Use png_permit_mng_features() instead. */ +extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr, + int empty_plte_permitted)); +#endif +#endif + +#if defined(PNG_WRITE_FLUSH_SUPPORTED) +/* Set how many lines between output flushes - 0 for no flushing */ +extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); +/* Flush the current PNG output buffer */ +extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr)); +#endif + +/* optional update palette with requested transformations */ +extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr)); + +/* optional call to update the users info structure */ +extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED +/* read one or more rows of image data. */ +extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, + png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); +#endif + +#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED +/* read a row of data. */ +extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, + png_bytep row, + png_bytep display_row)); +#endif + +#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED +/* read the whole image into memory at once. */ +extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, + png_bytepp image)); +#endif + +/* write a row of image data */ +extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, + png_bytep row)); + +/* write a few rows of image data */ +extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, + png_bytepp row, png_uint_32 num_rows)); + +/* write the image data */ +extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, + png_bytepp image)); + +/* writes the end of the PNG file. */ +extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED +/* read the end of the PNG file. */ +extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + +/* free any memory associated with the png_info_struct */ +extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, + png_infopp info_ptr_ptr)); + +/* free any memory associated with the png_struct and the png_info_structs */ +extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp + png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); + +/* free all memory used by the read (old method - NOT DLL EXPORTED) */ +extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr, + png_infop end_info_ptr)); + +/* free any memory associated with the png_struct and the png_info_structs */ +extern PNG_EXPORT(void,png_destroy_write_struct) + PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); + +/* free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ +extern void png_write_destroy PNGARG((png_structp png_ptr)); + +/* set the libpng method of handling chunk CRC errors */ +extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr, + int crit_action, int ancil_action)); + +/* Values for png_set_crc_action() to say how to handle CRC errors in + * ancillary and critical chunks, and whether to use the data contained + * therein. Note that it is impossible to "discard" data in a critical + * chunk. For versions prior to 0.90, the action was always error/quit, + * whereas in version 0.90 and later, the action for CRC errors in ancillary + * chunks is warn/discard. These values should NOT be changed. + * + * value action:critical action:ancillary + */ +#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ +#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ +#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ +#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ +#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ +#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ + +/* These functions give the user control over the scan-line filtering in + * libpng and the compression methods used by zlib. These functions are + * mainly useful for testing, as the defaults should work with most users. + * Those users who are tight on memory or want faster performance at the + * expense of compression can modify them. See the compression library + * header file (zlib.h) for an explination of the compression functions. + */ + +/* set the filtering method(s) used by libpng. Currently, the only valid + * value for "method" is 0. + */ +extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method, + int filters)); + +/* Flags for png_set_filter() to say which filters to use. The flags + * are chosen so that they don't conflict with real filter types + * below, in case they are supplied instead of the #defined constants. + * These values should NOT be changed. + */ +#define PNG_NO_FILTERS 0x00 +#define PNG_FILTER_NONE 0x08 +#define PNG_FILTER_SUB 0x10 +#define PNG_FILTER_UP 0x20 +#define PNG_FILTER_AVG 0x40 +#define PNG_FILTER_PAETH 0x80 +#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ + PNG_FILTER_AVG | PNG_FILTER_PAETH) + +/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. + * These defines should NOT be changed. + */ +#define PNG_FILTER_VALUE_NONE 0 +#define PNG_FILTER_VALUE_SUB 1 +#define PNG_FILTER_VALUE_UP 2 +#define PNG_FILTER_VALUE_AVG 3 +#define PNG_FILTER_VALUE_PAETH 4 +#define PNG_FILTER_VALUE_LAST 5 + +#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* EXPERIMENTAL */ +/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ + * defines, either the default (minimum-sum-of-absolute-differences), or + * the experimental method (weighted-minimum-sum-of-absolute-differences). + * + * Weights are factors >= 1.0, indicating how important it is to keep the + * filter type consistent between rows. Larger numbers mean the current + * filter is that many times as likely to be the same as the "num_weights" + * previous filters. This is cumulative for each previous row with a weight. + * There needs to be "num_weights" values in "filter_weights", or it can be + * NULL if the weights aren't being specified. Weights have no influence on + * the selection of the first row filter. Well chosen weights can (in theory) + * improve the compression for a given image. + * + * Costs are factors >= 1.0 indicating the relative decoding costs of a + * filter type. Higher costs indicate more decoding expense, and are + * therefore less likely to be selected over a filter with lower computational + * costs. There needs to be a value in "filter_costs" for each valid filter + * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't + * setting the costs. Costs try to improve the speed of decompression without + * unduly increasing the compressed image size. + * + * A negative weight or cost indicates the default value is to be used, and + * values in the range [0.0, 1.0) indicate the value is to remain unchanged. + * The default values for both weights and costs are currently 1.0, but may + * change if good general weighting/cost heuristics can be found. If both + * the weights and costs are set to 1.0, this degenerates the WEIGHTED method + * to the UNWEIGHTED method, but with added encoding time/computation. + */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr, + int heuristic_method, int num_weights, png_doublep filter_weights, + png_doublep filter_costs)); +#endif +#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ + +/* Heuristic used for row filter selection. These defines should NOT be + * changed. + */ +#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ +#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ +#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ +#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ + +/* Set the library compression level. Currently, valid values range from + * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 + * (0 - no compression, 9 - "maximal" compression). Note that tests have + * shown that zlib compression levels 3-6 usually perform as well as level 9 + * for PNG images, and do considerably fewer caclulations. In the future, + * these values may not correspond directly to the zlib compression levels. + */ +extern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr, + int level)); + +extern PNG_EXPORT(void,png_set_compression_mem_level) + PNGARG((png_structp png_ptr, int mem_level)); + +extern PNG_EXPORT(void,png_set_compression_strategy) + PNGARG((png_structp png_ptr, int strategy)); + +extern PNG_EXPORT(void,png_set_compression_window_bits) + PNGARG((png_structp png_ptr, int window_bits)); + +extern PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr, + int method)); + +/* These next functions are called for input/output, memory, and error + * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, + * and call standard C I/O routines such as fread(), fwrite(), and + * fprintf(). These functions can be made to use other I/O routines + * at run time for those applications that need to handle I/O in a + * different manner by calling png_set_???_fn(). See libpng.txt for + * more information. + */ + +#if !defined(PNG_NO_STDIO) +/* Initialize the input/output for the PNG file to the default functions. */ +extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp)); +#endif + +/* Replace the (error and abort), and warning functions with user + * supplied functions. If no messages are to be printed you must still + * write and use replacement functions. The replacement error_fn should + * still do a longjmp to the last setjmp location if you are using this + * method of error handling. If error_fn or warning_fn is NULL, the + * default function will be used. + */ + +extern PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr, + png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); + +/* Return the user pointer associated with the error functions */ +extern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr)); + +/* Replace the default data output functions with a user supplied one(s). + * If buffered output is not used, then output_flush_fn can be set to NULL. + * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time + * output_flush_fn will be ignored (and thus can be NULL). + */ +extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr, + png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); + +/* Replace the default data input function with a user supplied one. */ +extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr, + png_voidp io_ptr, png_rw_ptr read_data_fn)); + +/* Return the user pointer associated with the I/O functions */ +extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr)); + +extern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr, + png_read_status_ptr read_row_fn)); + +extern PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr, + png_write_status_ptr write_row_fn)); + +#ifdef PNG_USER_MEM_SUPPORTED +/* Replace the default memory allocation functions with user supplied one(s). */ +extern PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr, + png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)); +/* Return the user pointer associated with the memory functions */ +extern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_LEGACY_SUPPORTED) +extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp + png_ptr, png_user_transform_ptr read_user_transform_fn)); +#endif + +#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_LEGACY_SUPPORTED) +extern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp + png_ptr, png_user_transform_ptr write_user_transform_fn)); +#endif + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_LEGACY_SUPPORTED) +extern PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp + png_ptr, png_voidp user_transform_ptr, int user_transform_depth, + int user_transform_channels)); +/* Return the user pointer associated with the user transform functions */ +extern PNG_EXPORT(png_voidp,png_get_user_transform_ptr) + PNGARG((png_structp png_ptr)); +#endif + +#ifdef PNG_USER_CHUNKS_SUPPORTED +extern PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr, + png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn)); +extern PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp + png_ptr)); +#endif + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +/* Sets the function callbacks for the push reader, and a pointer to a + * user-defined structure available to the callback functions. + */ +extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((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)); + +/* returns the user pointer associated with the push read functions */ +extern PNG_EXPORT(png_voidp,png_get_progressive_ptr) + PNGARG((png_structp png_ptr)); + +/* function to be called when data becomes available */ +extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)); + +/* function that combines rows. Not very much different than the + * png_combine_row() call. Is this even used????? + */ +extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr, + png_bytep old_row, png_bytep new_row)); +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, + png_uint_32 size)); + +#if defined(PNG_1_0_X) +# define png_malloc_warn png_malloc +#else +/* Added at libpng version 1.2.4 */ +extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr, + png_uint_32 size)); +#endif + +/* frees a pointer allocated by png_malloc() */ +extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); + +#if defined(PNG_1_0_X) +/* Function to allocate memory for zlib. */ +extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items, + uInt size)); + +/* Function to free memory for zlib */ +extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr)); +#endif + +/* Free data that was allocated internally */ +extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 free_me, int num)); +#ifdef PNG_FREE_ME_SUPPORTED +/* Reassign responsibility for freeing existing data, whether allocated + * by libpng or by the application */ +extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr, + png_infop info_ptr, int freer, png_uint_32 mask)); +#endif +/* assignments for png_data_freer */ +#define PNG_DESTROY_WILL_FREE_DATA 1 +#define PNG_SET_WILL_FREE_DATA 1 +#define PNG_USER_WILL_FREE_DATA 2 +/* Flags for png_ptr->free_me and info_ptr->free_me */ +#define PNG_FREE_HIST 0x0008 +#define PNG_FREE_ICCP 0x0010 +#define PNG_FREE_SPLT 0x0020 +#define PNG_FREE_ROWS 0x0040 +#define PNG_FREE_PCAL 0x0080 +#define PNG_FREE_SCAL 0x0100 +#define PNG_FREE_UNKN 0x0200 +#define PNG_FREE_LIST 0x0400 +#define PNG_FREE_PLTE 0x1000 +#define PNG_FREE_TRNS 0x2000 +#define PNG_FREE_TEXT 0x4000 +#define PNG_FREE_ALL 0x7fff +#define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */ + +#ifdef PNG_USER_MEM_SUPPORTED +extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, + png_uint_32 size)); +extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, + png_voidp ptr)); +#endif + +extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr, + png_voidp s1, png_voidp s2, png_uint_32 size)); + +extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr, + png_voidp s1, int value, png_uint_32 size)); + +#if defined(USE_FAR_KEYWORD) /* memory model conversion function */ +extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr, + int check)); +#endif /* USE_FAR_KEYWORD */ + +/* Fatal error in PNG image of libpng - can't continue */ +extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, + png_const_charp error_message)); + +/* The same, but the chunk name is prepended to the error string. */ +extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, + png_const_charp error_message)); + +/* Non-fatal error in libpng. Can continue, but may have a problem. */ +extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, + png_const_charp warning_message)); + +/* Non-fatal error in libpng, chunk name is prepended to message. */ +extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, + png_const_charp warning_message)); + +/* The png_set_ functions are for storing values in the png_info_struct. + * Similarly, the png_get_ calls are used to read values from the + * png_info_struct, either storing the parameters in the passed variables, or + * setting pointers into the png_info_struct where the data is stored. The + * png_get_ functions return a non-zero value if the data was available + * in info_ptr, or return zero and do not change any of the parameters if the + * data was not available. + * + * These functions should be used instead of directly accessing png_info + * to avoid problems with future changes in the size and internal layout of + * png_info_struct. + */ +/* Returns "flag" if chunk data is valid in info_ptr. */ +extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr, +png_infop info_ptr, png_uint_32 flag)); + +/* Returns number of bytes needed to hold a transformed row. */ +extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#if defined(PNG_INFO_IMAGE_SUPPORTED) +/* Returns row_pointers, which is an array of pointers to scanlines that was +returned from png_read_png(). */ +extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr, +png_infop info_ptr)); +/* Set row_pointers, which is an array of pointers to scanlines for use +by png_write_png(). */ +extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytepp row_pointers)); +#endif + +/* Returns number of color channels in image. */ +extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#ifdef PNG_EASY_ACCESS_SUPPORTED +/* Returns image width in pixels. */ +extern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image height in pixels. */ +extern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image bit_depth. */ +extern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image color_type. */ +extern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image filter_type. */ +extern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image interlace_type. */ +extern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image compression_type. */ +extern PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns image resolution in pixels per meter, from pHYs chunk data. */ +extern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +extern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +extern PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +/* Returns pixel aspect ratio, computed from pHYs chunk data. */ +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +#endif + +/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ +extern PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +extern PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +extern PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp +png_ptr, png_infop info_ptr)); +extern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp +png_ptr, png_infop info_ptr)); + +#endif /* PNG_EASY_ACCESS_SUPPORTED */ + +/* Returns pointer to signature string read from PNG header */ +extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr, +png_infop info_ptr)); + +#if defined(PNG_bKGD_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_16p *background)); +#endif + +#if defined(PNG_bKGD_SUPPORTED) +extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_16p background)); +#endif + +#if defined(PNG_cHRM_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((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)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((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)); +#endif +#endif + +#if defined(PNG_cHRM_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_cHRM) PNGARG((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)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((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)); +#endif +#endif + +#if defined(PNG_gAMA_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, + png_infop info_ptr, double *file_gamma)); +#endif +extern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_fixed_point *int_file_gamma)); +#endif + +#if defined(PNG_gAMA_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, + png_infop info_ptr, double file_gamma)); +#endif +extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_fixed_point int_file_gamma)); +#endif + +#if defined(PNG_hIST_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_16p *hist)); +#endif + +#if defined(PNG_hIST_SUPPORTED) +extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_16p hist)); +#endif + +extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((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)); + +extern PNG_EXPORT(void,png_set_IHDR) PNGARG((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)); + +#if defined(PNG_oFFs_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, + int *unit_type)); +#endif + +#if defined(PNG_oFFs_SUPPORTED) +extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, + int unit_type)); +#endif + +#if defined(PNG_pCAL_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((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)); +#endif + +#if defined(PNG_pCAL_SUPPORTED) +extern PNG_EXPORT(void,png_set_pCAL) PNGARG((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)); +#endif + +#if defined(PNG_pHYs_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); +#endif + +#if defined(PNG_pHYs_SUPPORTED) +extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); +#endif + +extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_colorp *palette, int *num_palette)); + +extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_colorp palette, int num_palette)); + +#if defined(PNG_sBIT_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_8p *sig_bit)); +#endif + +#if defined(PNG_sBIT_SUPPORTED) +extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_color_8p sig_bit)); +#endif + +#if defined(PNG_sRGB_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, + png_infop info_ptr, int *intent)); +#endif + +#if defined(PNG_sRGB_SUPPORTED) +extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, + png_infop info_ptr, int intent)); +extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr, + png_infop info_ptr, int intent)); +#endif + +#if defined(PNG_iCCP_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_charpp name, int *compression_type, + png_charpp profile, png_uint_32 *proflen)); + /* Note to maintainer: profile should be png_bytepp */ +#endif + +#if defined(PNG_iCCP_SUPPORTED) +extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_charp name, int compression_type, + png_charp profile, png_uint_32 proflen)); + /* Note to maintainer: profile should be png_bytep */ +#endif + +#if defined(PNG_sPLT_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_sPLT_tpp entries)); +#endif + +#if defined(PNG_sPLT_SUPPORTED) +extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_sPLT_tp entries, int nentries)); +#endif + +#if defined(PNG_TEXT_SUPPORTED) +/* png_get_text also returns the number of text chunks in *num_text */ +extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_textp *text_ptr, int *num_text)); +#endif + +/* + * Note while png_set_text() will accept a structure whose text, + * language, and translated keywords are NULL pointers, the structure + * returned by png_get_text will always contain regular + * zero-terminated C strings. They might be empty strings but + * they will never be NULL pointers. + */ + +#if defined(PNG_TEXT_SUPPORTED) +extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_textp text_ptr, int num_text)); +#endif + +#if defined(PNG_tIME_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_timep *mod_time)); +#endif + +#if defined(PNG_tIME_SUPPORTED) +extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_timep mod_time)); +#endif + +#if defined(PNG_tRNS_SUPPORTED) +extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytep *trans, int *num_trans, + png_color_16p *trans_values)); +#endif + +#if defined(PNG_tRNS_SUPPORTED) +extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_bytep trans, int num_trans, + png_color_16p trans_values)); +#endif + +#if defined(PNG_tRNS_SUPPORTED) +#endif + +#if defined(PNG_sCAL_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr, + png_infop info_ptr, int *unit, double *width, double *height)); +#else +#ifdef PNG_FIXED_POINT_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr, + png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight)); +#endif +#endif +#endif /* PNG_sCAL_SUPPORTED */ + +#if defined(PNG_sCAL_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr, + png_infop info_ptr, int unit, double width, double height)); +#else +#ifdef PNG_FIXED_POINT_SUPPORTED +extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr, + png_infop info_ptr, int unit, png_charp swidth, png_charp sheight)); +#endif +#endif +#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */ + +#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) +/* provide a list of chunks and how they are to be handled, if the built-in + handling or default unknown chunk handling is not desired. Any chunks not + listed will be handled in the default manner. The IHDR and IEND chunks + must not be listed. + keep = 0: follow default behavour + = 1: do not keep + = 2: keep only if safe-to-copy + = 3: keep even if unsafe-to-copy +*/ +extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp + png_ptr, int keep, png_bytep chunk_list, int num_chunks)); +extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr, + png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns)); +extern PNG_EXPORT(void, png_set_unknown_chunk_location) + PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location)); +extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp + png_ptr, png_infop info_ptr, png_unknown_chunkpp entries)); +#endif +#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep + chunk_name)); +#endif + +/* Png_free_data() will turn off the "valid" flag for anything it frees. + If you need to turn it off for a chunk that your application has freed, + you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK); */ +extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr, + png_infop info_ptr, int mask)); + +#if defined(PNG_INFO_IMAGE_SUPPORTED) +/* The "params" pointer is currently not used and is for future expansion. */ +extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr, + png_infop info_ptr, + int transforms, + png_voidp params)); +extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr, + png_infop info_ptr, + int transforms, + png_voidp params)); +#endif + +/* Define PNG_DEBUG at compile time for debugging information. Higher + * numbers for PNG_DEBUG mean more debugging information. This has + * only been added since version 0.95 so it is not implemented throughout + * libpng yet, but more support will be added as needed. + */ +#ifdef PNG_DEBUG +#if (PNG_DEBUG > 0) +#if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER) +#include +#if (PNG_DEBUG > 1) +#define png_debug(l,m) _RPT0(_CRT_WARN,m) +#define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m,p1) +#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m,p1,p2) +#endif +#else /* PNG_DEBUG_FILE || !_MSC_VER */ +#ifndef PNG_DEBUG_FILE +#define PNG_DEBUG_FILE stderr +#endif /* PNG_DEBUG_FILE */ +#if (PNG_DEBUG > 1) +#define png_debug(l,m) \ +{ \ + int num_tabs=l; \ + fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \ +} +#define png_debug1(l,m,p1) \ +{ \ + int num_tabs=l; \ + fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \ +} +#define png_debug2(l,m,p1,p2) \ +{ \ + int num_tabs=l; \ + fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \ + (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \ +} +#endif /* (PNG_DEBUG > 1) */ +#endif /* _MSC_VER */ +#endif /* (PNG_DEBUG > 0) */ +#endif /* PNG_DEBUG */ +#ifndef png_debug +#define png_debug(l, m) +#endif +#ifndef png_debug1 +#define png_debug1(l, m, p1) +#endif +#ifndef png_debug2 +#define png_debug2(l, m, p1, p2) +#endif + +#if 0 +extern PNG_EXPORT(png_bytep,png_sig_bytes) PNGARG((void)); +#endif + +extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr)); +extern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr)); +extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr)); +extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr)); + +#ifdef PNG_MNG_FEATURES_SUPPORTED +extern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp + png_ptr, png_uint_32 mng_features_permitted)); +#endif + +/* For use in png_set_keep_unknown, added to version 1.2.6 */ +#define PNG_HANDLE_CHUNK_AS_DEFAULT 0 +#define PNG_HANDLE_CHUNK_NEVER 1 +#define PNG_HANDLE_CHUNK_IF_SAFE 2 +#define PNG_HANDLE_CHUNK_ALWAYS 3 + +/* Added to version 1.2.0 */ +#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) +#define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */ +#define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */ +#define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x04 +#define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x08 +#define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x10 +#define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x20 +#define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x40 +#define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80 +#define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */ + +#define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \ + | PNG_ASM_FLAG_MMX_READ_INTERLACE \ + | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \ + | PNG_ASM_FLAG_MMX_READ_FILTER_UP \ + | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \ + | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH ) +#define PNG_MMX_WRITE_FLAGS ( 0 ) + +#define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \ + | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \ + | PNG_MMX_READ_FLAGS \ + | PNG_MMX_WRITE_FLAGS ) + +#define PNG_SELECT_READ 1 +#define PNG_SELECT_WRITE 2 + +#if !defined(PNG_1_0_X) +/* pngget.c */ +extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask) + PNGARG((int flag_select, int *compilerID)); + +/* pngget.c */ +extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask) + PNGARG((int flag_select)); + +/* pngget.c */ +extern PNG_EXPORT(png_uint_32,png_get_asm_flags) + PNGARG((png_structp png_ptr)); + +/* pngget.c */ +extern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold) + PNGARG((png_structp png_ptr)); + +/* pngget.c */ +extern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold) + PNGARG((png_structp png_ptr)); + +/* pngset.c */ +extern PNG_EXPORT(void,png_set_asm_flags) + PNGARG((png_structp png_ptr, png_uint_32 asm_flags)); + +/* pngset.c */ +extern PNG_EXPORT(void,png_set_mmx_thresholds) + PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold, + png_uint_32 mmx_rowbytes_threshold)); + +#endif /* PNG_1_0_X */ +#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */ + +#if !defined(PNG_1_0_X) +/* png.c, pnggccrd.c, or pngvcrd.c */ +extern PNG_EXPORT(int,png_mmx_support) PNGARG((void)); + +/* Strip the prepended error numbers ("#nnn ") from error and warning + * messages before passing them to the error or warning handler. */ +#ifdef PNG_ERROR_NUMBERS_SUPPORTED +extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp + png_ptr, png_uint_32 strip_mode)); +#endif + +#endif /* PNG_1_0_X */ + +/* Added at libpng-1.2.6 */ +#ifdef PNG_SET_USER_LIMITS_SUPPORTED +extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp + png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max)); +extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp + png_ptr)); +extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp + png_ptr)); +#endif + +/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */ + +#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED +/* With these routines we avoid an integer divide, which will be slower on + * most machines. However, it does take more operations than the corresponding + * divide method, so it may be slower on a few RISC systems. There are two + * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. + * + * Note that the rounding factors are NOT supposed to be the same! 128 and + * 32768 are correct for the NODIV code; 127 and 32767 are correct for the + * standard method. + * + * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] + */ + + /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ + +# define png_composite(composite, fg, alpha, bg) \ + { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \ + + (png_uint_16)(bg)*(png_uint_16)(255 - \ + (png_uint_16)(alpha)) + (png_uint_16)128); \ + (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } + +# define png_composite_16(composite, fg, alpha, bg) \ + { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \ + + (png_uint_32)(bg)*(png_uint_32)(65535L - \ + (png_uint_32)(alpha)) + (png_uint_32)32768L); \ + (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } + +#else /* standard method using integer division */ + +# define png_composite(composite, fg, alpha, bg) \ + (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ + (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ + (png_uint_16)127) / 255) + +# define png_composite_16(composite, fg, alpha, bg) \ + (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ + (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ + (png_uint_32)32767) / (png_uint_32)65535L) + +#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ + +/* Inline macros to do direct reads of bytes from the input buffer. These + * require that you are using an architecture that uses PNG byte ordering + * (MSB first) and supports unaligned data storage. I think that PowerPC + * in big-endian mode and 680x0 are the only ones that will support this. + * The x86 line of processors definitely do not. The png_get_int_32() + * routine also assumes we are using two's complement format for negative + * values, which is almost certainly true. + */ +#if defined(PNG_READ_BIG_ENDIAN_SUPPORTED) +# define png_get_uint_32(buf) ( *((png_uint_32p) (buf))) +# define png_get_uint_16(buf) ( *((png_uint_16p) (buf))) +# define png_get_int_32(buf) ( *((png_int_32p) (buf))) +#else +extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf)); +extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf)); +extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf)); +#endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */ +extern PNG_EXPORT(png_uint_32,png_get_uint_31) + PNGARG((png_structp png_ptr, png_bytep buf)); +/* No png_get_int_16 -- may be added if there's a real need for it. */ + +/* Place a 32-bit number into a buffer in PNG byte order (big-endian). + */ +extern PNG_EXPORT(void,png_save_uint_32) + PNGARG((png_bytep buf, png_uint_32 i)); +extern PNG_EXPORT(void,png_save_int_32) + PNGARG((png_bytep buf, png_int_32 i)); + +/* Place a 16-bit number into a buffer in PNG byte order. + * The parameter is declared unsigned int, not png_uint_16, + * just to avoid potential problems on pre-ANSI C compilers. + */ +extern PNG_EXPORT(void,png_save_uint_16) + PNGARG((png_bytep buf, unsigned int i)); +/* No png_save_int_16 -- may be added if there's a real need for it. */ + +/* ************************************************************************* */ + +/* These next functions are used internally in the code. They generally + * shouldn't be used unless you are writing code to add or replace some + * functionality in libpng. More information about most functions can + * be found in the files where the functions are located. + */ + +#if defined(PNG_INTERNAL) + +/* Various modes of operation. Note that after an init, mode is set to + * zero automatically when the structure is created. + */ +#define PNG_HAVE_IHDR 0x01 +#define PNG_HAVE_PLTE 0x02 +#define PNG_HAVE_IDAT 0x04 +#define PNG_AFTER_IDAT 0x08 +#define PNG_HAVE_IEND 0x10 +#define PNG_HAVE_gAMA 0x20 +#define PNG_HAVE_cHRM 0x40 +#define PNG_HAVE_sRGB 0x80 +#define PNG_HAVE_CHUNK_HEADER 0x100 +#define PNG_WROTE_tIME 0x200 +#define PNG_WROTE_INFO_BEFORE_PLTE 0x400 +#define PNG_BACKGROUND_IS_GRAY 0x800 +#define PNG_HAVE_PNG_SIGNATURE 0x1000 + +/* flags for the transformations the PNG library does on the image data */ +#define PNG_BGR 0x0001 +#define PNG_INTERLACE 0x0002 +#define PNG_PACK 0x0004 +#define PNG_SHIFT 0x0008 +#define PNG_SWAP_BYTES 0x0010 +#define PNG_INVERT_MONO 0x0020 +#define PNG_DITHER 0x0040 +#define PNG_BACKGROUND 0x0080 +#define PNG_BACKGROUND_EXPAND 0x0100 + /* 0x0200 unused */ +#define PNG_16_TO_8 0x0400 +#define PNG_RGBA 0x0800 +#define PNG_EXPAND 0x1000 +#define PNG_GAMMA 0x2000 +#define PNG_GRAY_TO_RGB 0x4000 +#define PNG_FILLER 0x8000L +#define PNG_PACKSWAP 0x10000L +#define PNG_SWAP_ALPHA 0x20000L +#define PNG_STRIP_ALPHA 0x40000L +#define PNG_INVERT_ALPHA 0x80000L +#define PNG_USER_TRANSFORM 0x100000L +#define PNG_RGB_TO_GRAY_ERR 0x200000L +#define PNG_RGB_TO_GRAY_WARN 0x400000L +#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ + /* 0x800000L Unused */ +#define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */ +#define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */ + /* 0x4000000L unused */ + /* 0x8000000L unused */ + /* 0x10000000L unused */ + /* 0x20000000L unused */ + /* 0x40000000L unused */ + +/* flags for png_create_struct */ +#define PNG_STRUCT_PNG 0x0001 +#define PNG_STRUCT_INFO 0x0002 + +/* Scaling factor for filter heuristic weighting calculations */ +#define PNG_WEIGHT_SHIFT 8 +#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) +#define PNG_COST_SHIFT 3 +#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) + +/* flags for the png_ptr->flags rather than declaring a byte for each one */ +#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 +#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 +#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 +#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 +#define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 +#define PNG_FLAG_ZLIB_FINISHED 0x0020 +#define PNG_FLAG_ROW_INIT 0x0040 +#define PNG_FLAG_FILLER_AFTER 0x0080 +#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 +#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 +#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 +#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 +#define PNG_FLAG_FREE_PLTE 0x1000 +#define PNG_FLAG_FREE_TRNS 0x2000 +#define PNG_FLAG_FREE_HIST 0x4000 +#define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L +#define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L +#define PNG_FLAG_LIBRARY_MISMATCH 0x20000L +#define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L +#define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L +#define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L +#define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */ +#define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */ + /* 0x800000L unused */ + /* 0x1000000L unused */ + /* 0x2000000L unused */ + /* 0x4000000L unused */ + /* 0x8000000L unused */ + /* 0x10000000L unused */ + /* 0x20000000L unused */ + /* 0x40000000L unused */ + +#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ + PNG_FLAG_CRC_ANCILLARY_NOWARN) + +#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ + PNG_FLAG_CRC_CRITICAL_IGNORE) + +#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ + PNG_FLAG_CRC_CRITICAL_MASK) + +/* save typing and make code easier to understand */ + +#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ + abs((int)((c1).green) - (int)((c2).green)) + \ + abs((int)((c1).blue) - (int)((c2).blue))) + +/* Added to libpng-1.2.6 JB */ +#define PNG_ROWBYTES(pixel_bits, width) \ + ((pixel_bits) >= 8 ? \ + ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \ + (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) ) + +/* PNG_OUT_OF_RANGE returns true if value is outside the range + ideal-delta..ideal+delta. Each argument is evaluated twice. + "ideal" and "delta" should be constants, normally simple + integers, "value" a variable. Added to libpng-1.2.6 JB */ +#define PNG_OUT_OF_RANGE(value, ideal, delta) \ + ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) ) + +/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */ +#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) +/* place to hold the signature string for a PNG file. */ +#ifdef PNG_USE_GLOBAL_ARRAYS + PNG_EXPORT_VAR (const png_byte FARDATA) png_sig[8]; +#else +#if 0 +#define png_sig png_sig_bytes(NULL) +#endif +#endif +#endif /* PNG_NO_EXTERN */ + +/* Constant strings for known chunk types. If you need to add a chunk, + * define the name here, and add an invocation of the macro in png.c and + * wherever it's needed. + */ +#define PNG_IHDR const png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'} +#define PNG_IDAT const png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'} +#define PNG_IEND const png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'} +#define PNG_PLTE const png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'} +#define PNG_bKGD const png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'} +#define PNG_cHRM const png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'} +#define PNG_gAMA const png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'} +#define PNG_hIST const png_byte png_hIST[5] = {104, 73, 83, 84, '\0'} +#define PNG_iCCP const png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'} +#define PNG_iTXt const png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'} +#define PNG_oFFs const png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'} +#define PNG_pCAL const png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'} +#define PNG_sCAL const png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'} +#define PNG_pHYs const png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'} +#define PNG_sBIT const png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'} +#define PNG_sPLT const png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'} +#define PNG_sRGB const png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'} +#define PNG_tEXt const png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'} +#define PNG_tIME const png_byte png_tIME[5] = {116, 73, 77, 69, '\0'} +#define PNG_tRNS const png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'} +#define PNG_zTXt const png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'} + +#ifdef PNG_USE_GLOBAL_ARRAYS +PNG_EXPORT_VAR (const png_byte FARDATA) png_IHDR[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_IDAT[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_IEND[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_PLTE[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_bKGD[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_cHRM[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_gAMA[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_hIST[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_iCCP[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_iTXt[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_oFFs[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_pCAL[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_sCAL[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_pHYs[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_sBIT[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_sPLT[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_sRGB[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_tEXt[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_tIME[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_tRNS[5]; +PNG_EXPORT_VAR (const png_byte FARDATA) png_zTXt[5]; +#endif /* PNG_USE_GLOBAL_ARRAYS */ + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +/* Initialize png_ptr struct for reading, and allocate any other memory. + * (old interface - DEPRECATED - use png_create_read_struct instead). + */ +extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr)); +#undef png_read_init +#define png_read_init(png_ptr) png_read_init_3(&png_ptr, \ + PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); +#endif + +extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr, + png_const_charp user_png_ver, png_size_t png_struct_size)); +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr, + png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t + png_info_size)); +#endif + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +/* Initialize png_ptr struct for writing, and allocate any other memory. + * (old interface - DEPRECATED - use png_create_write_struct instead). + */ +extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr)); +#undef png_write_init +#define png_write_init(png_ptr) png_write_init_3(&png_ptr, \ + PNG_LIBPNG_VER_STRING, png_sizeof(png_struct)); +#endif + +extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr, + png_const_charp user_png_ver, png_size_t png_struct_size)); +extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr, + png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t + png_info_size)); + +/* Allocate memory for an internal libpng struct */ +PNG_EXTERN png_voidp png_create_struct PNGARG((int type)); + +/* Free memory from internal libpng struct */ +PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)); + +PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr + malloc_fn, png_voidp mem_ptr)); +PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, + png_free_ptr free_fn, png_voidp mem_ptr)); + +/* Free any memory that info_ptr points to and reset struct. */ +PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +#ifndef PNG_1_0_X +/* Function to allocate memory for zlib. */ +PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size)); + +/* Function to free memory for zlib */ +PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); + +#ifdef PNG_SIZE_T +/* Function to convert a sizeof an item to png_sizeof item */ + PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size)); +#endif + +/* Next four functions are used internally as callbacks. PNGAPI is required + * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. */ + +PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr, + png_bytep data, png_size_t length)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t length)); +#endif + +PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr, + png_bytep data, png_size_t length)); + +#if defined(PNG_WRITE_FLUSH_SUPPORTED) +#if !defined(PNG_NO_STDIO) +PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr)); +#endif +#endif +#else /* PNG_1_0_X */ +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t length)); +#endif +#endif /* PNG_1_0_X */ + +/* Reset the CRC variable */ +PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)); + +/* Write the "data" buffer to whatever output you are using. */ +PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data, + png_size_t length)); + +/* Read data from whatever input you are using into the "data" buffer */ +PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, + png_size_t length)); + +/* Read bytes into buf, and update png_ptr->crc */ +PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, + png_size_t length)); + +/* Decompress data in a chunk that uses compression */ +#if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \ + defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED) +PNG_EXTERN png_charp png_decompress_chunk PNGARG((png_structp png_ptr, + int comp_type, png_charp chunkdata, png_size_t chunklength, + png_size_t prefix_length, png_size_t *data_length)); +#endif + +/* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ +PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)); + +/* Read the CRC from the file and compare it to the libpng calculated CRC */ +PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)); + +/* Calculate the CRC over a section of data. Note that we are only + * passing a maximum of 64K on systems that have this as a memory limit, + * since this is the maximum buffer size we can specify. + */ +PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr, + png_size_t length)); + +#if defined(PNG_WRITE_FLUSH_SUPPORTED) +PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)); +#endif + +/* simple function to write the signature */ +PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)); + +/* write various chunks */ + +/* Write the IHDR chunk, and update the png_struct with the necessary + * information. + */ +PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, + png_uint_32 height, + int bit_depth, int color_type, int compression_method, int filter_method, + int interlace_method)); + +PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette, + png_uint_32 num_pal)); + +PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, + png_size_t length)); + +PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)); + +#if defined(PNG_WRITE_gAMA_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr, png_fixed_point + file_gamma)); +#endif +#endif + +#if defined(PNG_WRITE_sBIT_SUPPORTED) +PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit, + int color_type)); +#endif + +#if defined(PNG_WRITE_cHRM_SUPPORTED) +#ifdef PNG_FLOATING_POINT_SUPPORTED +PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_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)); +#endif +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_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)); +#endif +#endif + +#if defined(PNG_WRITE_sRGB_SUPPORTED) +PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, + int intent)); +#endif + +#if defined(PNG_WRITE_iCCP_SUPPORTED) +PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr, + png_charp name, int compression_type, + png_charp profile, int proflen)); + /* Note to maintainer: profile should be png_bytep */ +#endif + +#if defined(PNG_WRITE_sPLT_SUPPORTED) +PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr, + png_sPLT_tp palette)); +#endif + +#if defined(PNG_WRITE_tRNS_SUPPORTED) +PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans, + png_color_16p values, int number, int color_type)); +#endif + +#if defined(PNG_WRITE_bKGD_SUPPORTED) +PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, + png_color_16p values, int color_type)); +#endif + +#if defined(PNG_WRITE_hIST_SUPPORTED) +PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist, + int num_hist)); +#endif + +#if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \ + defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED) +PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, + png_charp key, png_charpp new_key)); +#endif + +#if defined(PNG_WRITE_tEXt_SUPPORTED) +PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key, + png_charp text, png_size_t text_len)); +#endif + +#if defined(PNG_WRITE_zTXt_SUPPORTED) +PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key, + png_charp text, png_size_t text_len, int compression)); +#endif + +#if defined(PNG_WRITE_iTXt_SUPPORTED) +PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr, + int compression, png_charp key, png_charp lang, png_charp lang_key, + png_charp text)); +#endif + +#if defined(PNG_TEXT_SUPPORTED) /* Added at version 1.0.14 and 1.2.4 */ +PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr, + png_infop info_ptr, png_textp text_ptr, int num_text)); +#endif + +#if defined(PNG_WRITE_oFFs_SUPPORTED) +PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, + png_int_32 x_offset, png_int_32 y_offset, int unit_type)); +#endif + +#if defined(PNG_WRITE_pCAL_SUPPORTED) +PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, + png_int_32 X0, png_int_32 X1, int type, int nparams, + png_charp units, png_charpp params)); +#endif + +#if defined(PNG_WRITE_pHYs_SUPPORTED) +PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, + png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, + int unit_type)); +#endif + +#if defined(PNG_WRITE_tIME_SUPPORTED) +PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, + png_timep mod_time)); +#endif + +#if defined(PNG_WRITE_sCAL_SUPPORTED) +#if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO) +PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr, + int unit, double width, double height)); +#else +#ifdef PNG_FIXED_POINT_SUPPORTED +PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr, + int unit, png_charp width, png_charp height)); +#endif +#endif +#endif + +/* Called when finished processing a row of data */ +PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); + +/* Internal use only. Called before first row of data */ +PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)); + +#if defined(PNG_READ_GAMMA_SUPPORTED) +PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)); +#endif + +/* combine a row of data, dealing with alpha, etc. if requested */ +PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, + int mask)); + +#if defined(PNG_READ_INTERLACING_SUPPORTED) +/* expand an interlaced row */ +/* OLD pre-1.0.9 interface: +PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, + png_bytep row, int pass, png_uint_32 transformations)); + */ +PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)); +#endif + +/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */ + +#if defined(PNG_WRITE_INTERLACING_SUPPORTED) +/* grab pixels out of a row for an interlaced pass */ +PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, + png_bytep row, int pass)); +#endif + +/* unfilter a row */ +PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, + png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter)); + +/* Choose the best filter to use and filter the row data */ +PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, + png_row_infop row_info)); + +/* Write out the filtered row. */ +PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, + png_bytep filtered_row)); +/* finish a row while reading, dealing with interlacing passes, etc. */ +PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); + +/* initialize the row buffers, etc. */ +PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)); +/* optional call to update the users info structure */ +PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, + png_infop info_ptr)); + +/* these are the functions that do the transformations */ +#if defined(PNG_READ_FILLER_SUPPORTED) +PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, + png_bytep row, png_uint_32 filler, png_uint_32 flags)); +#endif + +#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) +PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) +PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) +PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) +PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ + defined(PNG_READ_STRIP_ALPHA_SUPPORTED) +PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info, + png_bytep row, png_uint_32 flags)); +#endif + +#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) +PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) +PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) +PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop + row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) +PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_READ_PACK_SUPPORTED) +PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_SHIFT_SUPPORTED) +PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row, + png_color_8p sig_bits)); +#endif + +#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) +PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_16_TO_8_SUPPORTED) +PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_READ_DITHER_SUPPORTED) +PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info, + png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup)); + +# if defined(PNG_CORRECT_PALETTE_SUPPORTED) +PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, + png_colorp palette, int num_palette)); +# endif +#endif + +#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) +PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, png_bytep row)); +#endif + +#if defined(PNG_WRITE_PACK_SUPPORTED) +PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, + png_bytep row, png_uint_32 bit_depth)); +#endif + +#if defined(PNG_WRITE_SHIFT_SUPPORTED) +PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row, + png_color_8p bit_depth)); +#endif + +#if defined(PNG_READ_BACKGROUND_SUPPORTED) +#if defined(PNG_READ_GAMMA_SUPPORTED) +PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, + png_color_16p trans_values, png_color_16p background, + png_color_16p background_1, + png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, + png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, + png_uint_16pp gamma_16_to_1, int gamma_shift)); +#else +PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, + png_color_16p trans_values, png_color_16p background)); +#endif +#endif + +#if defined(PNG_READ_GAMMA_SUPPORTED) +PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row, + png_bytep gamma_table, png_uint_16pp gamma_16_table, + int gamma_shift)); +#endif + +#if defined(PNG_READ_EXPAND_SUPPORTED) +PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, + png_bytep row, png_colorp palette, png_bytep trans, int num_trans)); +PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, + png_bytep row, png_color_16p trans_value)); +#endif + +/* The following decodes the appropriate chunks, and does error correction, + * then calls the appropriate callback for the chunk if it is valid. + */ + +/* decode the IHDR chunk */ +PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); + +#if defined(PNG_READ_bKGD_SUPPORTED) +PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_cHRM_SUPPORTED) +PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_gAMA_SUPPORTED) +PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_hIST_SUPPORTED) +PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_iCCP_SUPPORTED) +extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif /* PNG_READ_iCCP_SUPPORTED */ + +#if defined(PNG_READ_iTXt_SUPPORTED) +PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_oFFs_SUPPORTED) +PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_pCAL_SUPPORTED) +PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_pHYs_SUPPORTED) +PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_sBIT_SUPPORTED) +PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_sCAL_SUPPORTED) +PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_sPLT_SUPPORTED) +extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif /* PNG_READ_sPLT_SUPPORTED */ + +#if defined(PNG_READ_sRGB_SUPPORTED) +PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_tEXt_SUPPORTED) +PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_tIME_SUPPORTED) +PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_tRNS_SUPPORTED) +PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +#if defined(PNG_READ_zTXt_SUPPORTED) +PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, + png_uint_32 length)); +#endif + +PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); + +PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, + png_bytep chunk_name)); + +/* handle the transformations for reading and writing */ +PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr)); + +PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr)); + +#ifdef PNG_PROGRESSIVE_READ_SUPPORTED +PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, + png_uint_32 length)); +PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t buffer_length)); +PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, + png_bytep buffer, png_size_t buffer_length)); +PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)); +PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row)); +PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, + png_infop info_ptr)); +PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr)); +#if defined(PNG_READ_tEXt_SUPPORTED) +PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif +#if defined(PNG_READ_zTXt_SUPPORTED) +PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif +#if defined(PNG_READ_iTXt_SUPPORTED) +PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr, + png_infop info_ptr, png_uint_32 length)); +PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr, + png_infop info_ptr)); +#endif + +#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ + +#ifdef PNG_MNG_FEATURES_SUPPORTED +PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info, + png_bytep row)); +PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info, + png_bytep row)); +#endif + +#if defined(PNG_ASSEMBLER_CODE_SUPPORTED) +/* png.c */ /* PRIVATE */ +PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr)); +#endif +/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */ + +#endif /* PNG_INTERNAL */ + +#ifdef __cplusplus +} +#endif + +#endif /* PNG_VERSION_INFO_ONLY */ +/* do not put anything past this line */ +#endif /* PNG_H */ diff --git a/engine/libs/mingw-libs/pngconf.h b/engine/libs/mingw-libs/pngconf.h new file mode 100755 index 000000000..c12d1825c --- /dev/null +++ b/engine/libs/mingw-libs/pngconf.h @@ -0,0 +1,1472 @@ + +/* pngconf.h - machine configurable file for libpng + * + * libpng version 1.2.10 - April 23, 2006 + * For conditions of distribution and use, see copyright notice in png.h + * Copyright (c) 1998-2005 Glenn Randers-Pehrson + * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) + * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) + */ + +/* Any machine specific code is near the front of this file, so if you + * are configuring libpng for a machine, you may want to read the section + * starting here down to where it starts to typedef png_color, png_text, + * and png_info. + */ + +#ifndef PNGCONF_H +#define PNGCONF_H + +#define PNG_1_2_X + +/* + * PNG_USER_CONFIG has to be defined on the compiler command line. This + * includes the resource compiler for Windows DLL configurations. + */ +#ifdef PNG_USER_CONFIG +# ifndef PNG_USER_PRIVATEBUILD +# define PNG_USER_PRIVATEBUILD +# endif +#include "pngusr.h" +#endif + +/* PNG_CONFIGURE_LIBPNG is set by the "configure" script. */ +#ifdef PNG_CONFIGURE_LIBPNG +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#endif + +/* + * Added at libpng-1.2.8 + * + * If you create a private DLL you need to define in "pngusr.h" the followings: + * #define PNG_USER_PRIVATEBUILD + * e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons." + * #define PNG_USER_DLLFNAME_POSTFIX + * e.g. // private DLL "libpng13gx.dll" + * #define PNG_USER_DLLFNAME_POSTFIX "gx" + * + * The following macros are also at your disposal if you want to complete the + * DLL VERSIONINFO structure. + * - PNG_USER_VERSIONINFO_COMMENTS + * - PNG_USER_VERSIONINFO_COMPANYNAME + * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS + */ + +#ifdef __STDC__ +#ifdef SPECIALBUILD +# pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\ + are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.") +#endif + +#ifdef PRIVATEBUILD +# pragma message("PRIVATEBUILD is deprecated.\ + Use PNG_USER_PRIVATEBUILD instead.") +# define PNG_USER_PRIVATEBUILD PRIVATEBUILD +#endif +#endif /* __STDC__ */ + +#ifndef PNG_VERSION_INFO_ONLY + +/* End of material added to libpng-1.2.8 */ + +/* This is the size of the compression buffer, and thus the size of + * an IDAT chunk. Make this whatever size you feel is best for your + * machine. One of these will be allocated per png_struct. When this + * is full, it writes the data to the disk, and does some other + * calculations. Making this an extremely small size will slow + * the library down, but you may want to experiment to determine + * where it becomes significant, if you are concerned with memory + * usage. Note that zlib allocates at least 32Kb also. For readers, + * this describes the size of the buffer available to read the data in. + * Unless this gets smaller than the size of a row (compressed), + * it should not make much difference how big this is. + */ + +#ifndef PNG_ZBUF_SIZE +# define PNG_ZBUF_SIZE 8192 +#endif + +/* Enable if you want a write-only libpng */ + +#ifndef PNG_NO_READ_SUPPORTED +# define PNG_READ_SUPPORTED +#endif + +/* Enable if you want a read-only libpng */ + +#ifndef PNG_NO_WRITE_SUPPORTED +# define PNG_WRITE_SUPPORTED +#endif + +/* Enabled by default in 1.2.0. You can disable this if you don't need to + support PNGs that are embedded in MNG datastreams */ +#if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES) +# ifndef PNG_MNG_FEATURES_SUPPORTED +# define PNG_MNG_FEATURES_SUPPORTED +# endif +#endif + +#ifndef PNG_NO_FLOATING_POINT_SUPPORTED +# ifndef PNG_FLOATING_POINT_SUPPORTED +# define PNG_FLOATING_POINT_SUPPORTED +# endif +#endif + +/* If you are running on a machine where you cannot allocate more + * than 64K of memory at once, uncomment this. While libpng will not + * normally need that much memory in a chunk (unless you load up a very + * large file), zlib needs to know how big of a chunk it can use, and + * libpng thus makes sure to check any memory allocation to verify it + * will fit into memory. +#define PNG_MAX_MALLOC_64K + */ +#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) +# define PNG_MAX_MALLOC_64K +#endif + +/* Special munging to support doing things the 'cygwin' way: + * 'Normal' png-on-win32 defines/defaults: + * PNG_BUILD_DLL -- building dll + * PNG_USE_DLL -- building an application, linking to dll + * (no define) -- building static library, or building an + * application and linking to the static lib + * 'Cygwin' defines/defaults: + * PNG_BUILD_DLL -- (ignored) building the dll + * (no define) -- (ignored) building an application, linking to the dll + * PNG_STATIC -- (ignored) building the static lib, or building an + * application that links to the static lib. + * ALL_STATIC -- (ignored) building various static libs, or building an + * application that links to the static libs. + * Thus, + * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and + * this bit of #ifdefs will define the 'correct' config variables based on + * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but + * unnecessary. + * + * Also, the precedence order is: + * ALL_STATIC (since we can't #undef something outside our namespace) + * PNG_BUILD_DLL + * PNG_STATIC + * (nothing) == PNG_USE_DLL + * + * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent + * of auto-import in binutils, we no longer need to worry about + * __declspec(dllexport) / __declspec(dllimport) and friends. Therefore, + * we don't need to worry about PNG_STATIC or ALL_STATIC when it comes + * to __declspec() stuff. However, we DO need to worry about + * PNG_BUILD_DLL and PNG_STATIC because those change some defaults + * such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed. + */ +#if defined(__CYGWIN__) +# if defined(ALL_STATIC) +# if defined(PNG_BUILD_DLL) +# undef PNG_BUILD_DLL +# endif +# if defined(PNG_USE_DLL) +# undef PNG_USE_DLL +# endif +# if defined(PNG_DLL) +# undef PNG_DLL +# endif +# if !defined(PNG_STATIC) +# define PNG_STATIC +# endif +# else +# if defined (PNG_BUILD_DLL) +# if defined(PNG_STATIC) +# undef PNG_STATIC +# endif +# if defined(PNG_USE_DLL) +# undef PNG_USE_DLL +# endif +# if !defined(PNG_DLL) +# define PNG_DLL +# endif +# else +# if defined(PNG_STATIC) +# if defined(PNG_USE_DLL) +# undef PNG_USE_DLL +# endif +# if defined(PNG_DLL) +# undef PNG_DLL +# endif +# else +# if !defined(PNG_USE_DLL) +# define PNG_USE_DLL +# endif +# if !defined(PNG_DLL) +# define PNG_DLL +# endif +# endif +# endif +# endif +#endif + +/* This protects us against compilers that run on a windowing system + * and thus don't have or would rather us not use the stdio types: + * stdin, stdout, and stderr. The only one currently used is stderr + * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will + * prevent these from being compiled and used. #defining PNG_NO_STDIO + * will also prevent these, plus will prevent the entire set of stdio + * macros and functions (FILE *, printf, etc.) from being compiled and used, + * unless (PNG_DEBUG > 0) has been #defined. + * + * #define PNG_NO_CONSOLE_IO + * #define PNG_NO_STDIO + */ + +#if defined(_WIN32_WCE) +# include + /* Console I/O functions are not supported on WindowsCE */ +# define PNG_NO_CONSOLE_IO +# ifdef PNG_DEBUG +# undef PNG_DEBUG +# endif +#endif + +#ifdef PNG_BUILD_DLL +# ifndef PNG_CONSOLE_IO_SUPPORTED +# ifndef PNG_NO_CONSOLE_IO +# define PNG_NO_CONSOLE_IO +# endif +# endif +#endif + +# ifdef PNG_NO_STDIO +# ifndef PNG_NO_CONSOLE_IO +# define PNG_NO_CONSOLE_IO +# endif +# ifdef PNG_DEBUG +# if (PNG_DEBUG > 0) +# include +# endif +# endif +# else +# if !defined(_WIN32_WCE) +/* "stdio.h" functions are not supported on WindowsCE */ +# include +# endif +# endif + +/* This macro protects us against machines that don't have function + * prototypes (ie K&R style headers). If your compiler does not handle + * function prototypes, define this macro and use the included ansi2knr. + * I've always been able to use _NO_PROTO as the indicator, but you may + * need to drag the empty declaration out in front of here, or change the + * ifdef to suit your own needs. + */ +#ifndef PNGARG + +#ifdef OF /* zlib prototype munger */ +# define PNGARG(arglist) OF(arglist) +#else + +#ifdef _NO_PROTO +# define PNGARG(arglist) () +# ifndef PNG_TYPECAST_NULL +# define PNG_TYPECAST_NULL +# endif +#else +# define PNGARG(arglist) arglist +#endif /* _NO_PROTO */ + +#endif /* OF */ + +#endif /* PNGARG */ + +/* Try to determine if we are compiling on a Mac. Note that testing for + * just __MWERKS__ is not good enough, because the Codewarrior is now used + * on non-Mac platforms. + */ +#ifndef MACOS +# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ + defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) +# define MACOS +# endif +#endif + +/* enough people need this for various reasons to include it here */ +#if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE) +# include +#endif + +#if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED) +# define PNG_SETJMP_SUPPORTED +#endif + +#ifdef PNG_SETJMP_SUPPORTED +/* This is an attempt to force a single setjmp behaviour on Linux. If + * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. + */ + +# ifdef __linux__ +# ifdef _BSD_SOURCE +# define PNG_SAVE_BSD_SOURCE +# undef _BSD_SOURCE +# endif +# ifdef _SETJMP_H + /* If you encounter a compiler error here, see the explanation + * near the end of INSTALL. + */ + __png.h__ already includes setjmp.h; + __dont__ include it again.; +# endif +# endif /* __linux__ */ + + /* include setjmp.h for error handling */ +# include + +# ifdef __linux__ +# ifdef PNG_SAVE_BSD_SOURCE +# define _BSD_SOURCE +# undef PNG_SAVE_BSD_SOURCE +# endif +# endif /* __linux__ */ +#endif /* PNG_SETJMP_SUPPORTED */ + +#ifdef BSD +# include +#else +# include +#endif + +/* Other defines for things like memory and the like can go here. */ +#ifdef PNG_INTERNAL + +#include + +/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which + * aren't usually used outside the library (as far as I know), so it is + * debatable if they should be exported at all. In the future, when it is + * possible to have run-time registry of chunk-handling functions, some of + * these will be made available again. +#define PNG_EXTERN extern + */ +#define PNG_EXTERN + +/* Other defines specific to compilers can go here. Try to keep + * them inside an appropriate ifdef/endif pair for portability. + */ + +#if defined(PNG_FLOATING_POINT_SUPPORTED) +# if defined(MACOS) + /* We need to check that hasn't already been included earlier + * as it seems it doesn't agree with , yet we should really use + * if possible. + */ +# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) +# include +# endif +# else +# include +# endif +# if defined(_AMIGA) && defined(__SASC) && defined(_M68881) + /* Amiga SAS/C: We must include builtin FPU functions when compiling using + * MATH=68881 + */ +# include +# endif +#endif + +/* Codewarrior on NT has linking problems without this. */ +#if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__) +# define PNG_ALWAYS_EXTERN +#endif + +/* This provides the non-ANSI (far) memory allocation routines. */ +#if defined(__TURBOC__) && defined(__MSDOS__) +# include +# include +#endif + +/* I have no idea why is this necessary... */ +#if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \ + defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__)) +# include +#endif + +/* This controls how fine the dithering gets. As this allocates + * a largish chunk of memory (32K), those who are not as concerned + * with dithering quality can decrease some or all of these. + */ +#ifndef PNG_DITHER_RED_BITS +# define PNG_DITHER_RED_BITS 5 +#endif +#ifndef PNG_DITHER_GREEN_BITS +# define PNG_DITHER_GREEN_BITS 5 +#endif +#ifndef PNG_DITHER_BLUE_BITS +# define PNG_DITHER_BLUE_BITS 5 +#endif + +/* This controls how fine the gamma correction becomes when you + * are only interested in 8 bits anyway. Increasing this value + * results in more memory being used, and more pow() functions + * being called to fill in the gamma tables. Don't set this value + * less then 8, and even that may not work (I haven't tested it). + */ + +#ifndef PNG_MAX_GAMMA_8 +# define PNG_MAX_GAMMA_8 11 +#endif + +/* This controls how much a difference in gamma we can tolerate before + * we actually start doing gamma conversion. + */ +#ifndef PNG_GAMMA_THRESHOLD +# define PNG_GAMMA_THRESHOLD 0.05 +#endif + +#endif /* PNG_INTERNAL */ + +/* The following uses const char * instead of char * for error + * and warning message functions, so some compilers won't complain. + * If you do not want to use const, define PNG_NO_CONST here. + */ + +#ifndef PNG_NO_CONST +# define PNG_CONST const +#else +# define PNG_CONST +#endif + +/* The following defines give you the ability to remove code from the + * library that you will not be using. I wish I could figure out how to + * automate this, but I can't do that without making it seriously hard + * on the users. So if you are not using an ability, change the #define + * to and #undef, and that part of the library will not be compiled. If + * your linker can't find a function, you may want to make sure the + * ability is defined here. Some of these depend upon some others being + * defined. I haven't figured out all the interactions here, so you may + * have to experiment awhile to get everything to compile. If you are + * creating or using a shared library, you probably shouldn't touch this, + * as it will affect the size of the structures, and this will cause bad + * things to happen if the library and/or application ever change. + */ + +/* Any features you will not be using can be undef'ed here */ + +/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user + * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS + * on the compile line, then pick and choose which ones to define without + * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED + * if you only want to have a png-compliant reader/writer but don't need + * any of the extra transformations. This saves about 80 kbytes in a + * typical installation of the library. (PNG_NO_* form added in version + * 1.0.1c, for consistency) + */ + +/* The size of the png_text structure changed in libpng-1.0.6 when + * iTXt support was added. iTXt support was turned off by default through + * libpng-1.2.x, to support old apps that malloc the png_text structure + * instead of calling png_set_text() and letting libpng malloc it. It + * was turned on by default in libpng-1.3.0. + */ + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +# ifndef PNG_NO_iTXt_SUPPORTED +# define PNG_NO_iTXt_SUPPORTED +# endif +# ifndef PNG_NO_READ_iTXt +# define PNG_NO_READ_iTXt +# endif +# ifndef PNG_NO_WRITE_iTXt +# define PNG_NO_WRITE_iTXt +# endif +#endif + +#if !defined(PNG_NO_iTXt_SUPPORTED) +# if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt) +# define PNG_READ_iTXt +# endif +# if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt) +# define PNG_WRITE_iTXt +# endif +#endif + +/* The following support, added after version 1.0.0, can be turned off here en + * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility + * with old applications that require the length of png_struct and png_info + * to remain unchanged. + */ + +#ifdef PNG_LEGACY_SUPPORTED +# define PNG_NO_FREE_ME +# define PNG_NO_READ_UNKNOWN_CHUNKS +# define PNG_NO_WRITE_UNKNOWN_CHUNKS +# define PNG_NO_READ_USER_CHUNKS +# define PNG_NO_READ_iCCP +# define PNG_NO_WRITE_iCCP +# define PNG_NO_READ_iTXt +# define PNG_NO_WRITE_iTXt +# define PNG_NO_READ_sCAL +# define PNG_NO_WRITE_sCAL +# define PNG_NO_READ_sPLT +# define PNG_NO_WRITE_sPLT +# define PNG_NO_INFO_IMAGE +# define PNG_NO_READ_RGB_TO_GRAY +# define PNG_NO_READ_USER_TRANSFORM +# define PNG_NO_WRITE_USER_TRANSFORM +# define PNG_NO_USER_MEM +# define PNG_NO_READ_EMPTY_PLTE +# define PNG_NO_MNG_FEATURES +# define PNG_NO_FIXED_POINT_SUPPORTED +#endif + +/* Ignore attempt to turn off both floating and fixed point support */ +#if !defined(PNG_FLOATING_POINT_SUPPORTED) || \ + !defined(PNG_NO_FIXED_POINT_SUPPORTED) +# define PNG_FIXED_POINT_SUPPORTED +#endif + +#ifndef PNG_NO_FREE_ME +# define PNG_FREE_ME_SUPPORTED +#endif + +#if defined(PNG_READ_SUPPORTED) + +#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \ + !defined(PNG_NO_READ_TRANSFORMS) +# define PNG_READ_TRANSFORMS_SUPPORTED +#endif + +#ifdef PNG_READ_TRANSFORMS_SUPPORTED +# ifndef PNG_NO_READ_EXPAND +# define PNG_READ_EXPAND_SUPPORTED +# endif +# ifndef PNG_NO_READ_SHIFT +# define PNG_READ_SHIFT_SUPPORTED +# endif +# ifndef PNG_NO_READ_PACK +# define PNG_READ_PACK_SUPPORTED +# endif +# ifndef PNG_NO_READ_BGR +# define PNG_READ_BGR_SUPPORTED +# endif +# ifndef PNG_NO_READ_SWAP +# define PNG_READ_SWAP_SUPPORTED +# endif +# ifndef PNG_NO_READ_PACKSWAP +# define PNG_READ_PACKSWAP_SUPPORTED +# endif +# ifndef PNG_NO_READ_INVERT +# define PNG_READ_INVERT_SUPPORTED +# endif +# ifndef PNG_NO_READ_DITHER +# define PNG_READ_DITHER_SUPPORTED +# endif +# ifndef PNG_NO_READ_BACKGROUND +# define PNG_READ_BACKGROUND_SUPPORTED +# endif +# ifndef PNG_NO_READ_16_TO_8 +# define PNG_READ_16_TO_8_SUPPORTED +# endif +# ifndef PNG_NO_READ_FILLER +# define PNG_READ_FILLER_SUPPORTED +# endif +# ifndef PNG_NO_READ_GAMMA +# define PNG_READ_GAMMA_SUPPORTED +# endif +# ifndef PNG_NO_READ_GRAY_TO_RGB +# define PNG_READ_GRAY_TO_RGB_SUPPORTED +# endif +# ifndef PNG_NO_READ_SWAP_ALPHA +# define PNG_READ_SWAP_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_READ_INVERT_ALPHA +# define PNG_READ_INVERT_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_READ_STRIP_ALPHA +# define PNG_READ_STRIP_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_READ_USER_TRANSFORM +# define PNG_READ_USER_TRANSFORM_SUPPORTED +# endif +# ifndef PNG_NO_READ_RGB_TO_GRAY +# define PNG_READ_RGB_TO_GRAY_SUPPORTED +# endif +#endif /* PNG_READ_TRANSFORMS_SUPPORTED */ + +#if !defined(PNG_NO_PROGRESSIVE_READ) && \ + !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */ +# define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */ +#endif /* about interlacing capability! You'll */ + /* still have interlacing unless you change the following line: */ + +#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */ + +#ifndef PNG_NO_READ_COMPOSITE_NODIV +# ifndef PNG_NO_READ_COMPOSITED_NODIV /* libpng-1.0.x misspelling */ +# define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel, SGI */ +# endif +#endif + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +/* Deprecated, will be removed from version 2.0.0. + Use PNG_MNG_FEATURES_SUPPORTED instead. */ +#ifndef PNG_NO_READ_EMPTY_PLTE +# define PNG_READ_EMPTY_PLTE_SUPPORTED +#endif +#endif + +#endif /* PNG_READ_SUPPORTED */ + +#if defined(PNG_WRITE_SUPPORTED) + +# if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \ + !defined(PNG_NO_WRITE_TRANSFORMS) +# define PNG_WRITE_TRANSFORMS_SUPPORTED +#endif + +#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED +# ifndef PNG_NO_WRITE_SHIFT +# define PNG_WRITE_SHIFT_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_PACK +# define PNG_WRITE_PACK_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_BGR +# define PNG_WRITE_BGR_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_SWAP +# define PNG_WRITE_SWAP_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_PACKSWAP +# define PNG_WRITE_PACKSWAP_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_INVERT +# define PNG_WRITE_INVERT_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_FILLER +# define PNG_WRITE_FILLER_SUPPORTED /* same as WRITE_STRIP_ALPHA */ +# endif +# ifndef PNG_NO_WRITE_SWAP_ALPHA +# define PNG_WRITE_SWAP_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_INVERT_ALPHA +# define PNG_WRITE_INVERT_ALPHA_SUPPORTED +# endif +# ifndef PNG_NO_WRITE_USER_TRANSFORM +# define PNG_WRITE_USER_TRANSFORM_SUPPORTED +# endif +#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ + +#if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \ + !defined(PNG_WRITE_INTERLACING_SUPPORTED) +#define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant + encoders, but can cause trouble + if left undefined */ +#endif + +#if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \ + !defined(PNG_WRITE_WEIGHTED_FILTER) && \ + defined(PNG_FLOATING_POINT_SUPPORTED) +# define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#endif + +#ifndef PNG_NO_WRITE_FLUSH +# define PNG_WRITE_FLUSH_SUPPORTED +#endif + +#if defined(PNG_1_0_X) || defined (PNG_1_2_X) +/* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */ +#ifndef PNG_NO_WRITE_EMPTY_PLTE +# define PNG_WRITE_EMPTY_PLTE_SUPPORTED +#endif +#endif + +#endif /* PNG_WRITE_SUPPORTED */ + +#ifndef PNG_1_0_X +# ifndef PNG_NO_ERROR_NUMBERS +# define PNG_ERROR_NUMBERS_SUPPORTED +# endif +#endif /* PNG_1_0_X */ + +#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ + defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) +# ifndef PNG_NO_USER_TRANSFORM_PTR +# define PNG_USER_TRANSFORM_PTR_SUPPORTED +# endif +#endif + +#ifndef PNG_NO_STDIO +# define PNG_TIME_RFC1123_SUPPORTED +#endif + +/* This adds extra functions in pngget.c for accessing data from the + * info pointer (added in version 0.99) + * png_get_image_width() + * png_get_image_height() + * png_get_bit_depth() + * png_get_color_type() + * png_get_compression_type() + * png_get_filter_type() + * png_get_interlace_type() + * png_get_pixel_aspect_ratio() + * png_get_pixels_per_meter() + * png_get_x_offset_pixels() + * png_get_y_offset_pixels() + * png_get_x_offset_microns() + * png_get_y_offset_microns() + */ +#if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED) +# define PNG_EASY_ACCESS_SUPPORTED +#endif + +/* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0 + even when PNG_USE_PNGVCRD or PNG_USE_PNGGCCRD is not defined */ +#if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE) +# ifndef PNG_ASSEMBLER_CODE_SUPPORTED +# define PNG_ASSEMBLER_CODE_SUPPORTED +# endif +# if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) && \ + defined(__MMX__) +# define PNG_MMX_CODE_SUPPORTED +# endif +# if !defined(PNG_USE_PNGGCCRD) && !defined(PNG_NO_MMX_CODE) && \ + !defined(PNG_USE_PNGVCRD) && defined(__MMX__) +# define PNG_USE_PNGGCCRD +# endif +#endif + +/* If you are sure that you don't need thread safety and you are compiling + with PNG_USE_PNGCCRD for an MMX application, you can define this for + faster execution. See pnggccrd.c. +#define PNG_THREAD_UNSAFE_OK +*/ + +#if !defined(PNG_1_0_X) +#if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED) +# define PNG_USER_MEM_SUPPORTED +#endif +#endif /* PNG_1_0_X */ + +/* Added at libpng-1.2.6 */ +#if !defined(PNG_1_0_X) +#ifndef PNG_SET_USER_LIMITS_SUPPORTED +#if !defined(PNG_NO_SET_USER_LIMITS) && !defined(PNG_SET_USER_LIMITS_SUPPORTED) +# define PNG_SET_USER_LIMITS_SUPPORTED +#endif +#endif +#endif /* PNG_1_0_X */ + +/* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGS no matter + * how large, set these limits to 0x7fffffffL + */ +#ifndef PNG_USER_WIDTH_MAX +# define PNG_USER_WIDTH_MAX 1000000L +#endif +#ifndef PNG_USER_HEIGHT_MAX +# define PNG_USER_HEIGHT_MAX 1000000L +#endif + +/* These are currently experimental features, define them if you want */ + +/* very little testing */ +/* +#ifdef PNG_READ_SUPPORTED +# ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED +# define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED +# endif +#endif +*/ + +/* This is only for PowerPC big-endian and 680x0 systems */ +/* some testing */ +/* +#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED +# define PNG_READ_BIG_ENDIAN_SUPPORTED +#endif +*/ + +/* Buggy compilers (e.g., gcc 2.7.2.2) need this */ +/* +#define PNG_NO_POINTER_INDEXING +*/ + +/* These functions are turned off by default, as they will be phased out. */ +/* +#define PNG_USELESS_TESTS_SUPPORTED +#define PNG_CORRECT_PALETTE_SUPPORTED +*/ + +/* Any chunks you are not interested in, you can undef here. The + * ones that allocate memory may be expecially important (hIST, + * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info + * a bit smaller. + */ + +#if defined(PNG_READ_SUPPORTED) && \ + !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ + !defined(PNG_NO_READ_ANCILLARY_CHUNKS) +# define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#endif + +#if defined(PNG_WRITE_SUPPORTED) && \ + !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ + !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS) +# define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#endif + +#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED + +#ifdef PNG_NO_READ_TEXT +# define PNG_NO_READ_iTXt +# define PNG_NO_READ_tEXt +# define PNG_NO_READ_zTXt +#endif +#ifndef PNG_NO_READ_bKGD +# define PNG_READ_bKGD_SUPPORTED +# define PNG_bKGD_SUPPORTED +#endif +#ifndef PNG_NO_READ_cHRM +# define PNG_READ_cHRM_SUPPORTED +# define PNG_cHRM_SUPPORTED +#endif +#ifndef PNG_NO_READ_gAMA +# define PNG_READ_gAMA_SUPPORTED +# define PNG_gAMA_SUPPORTED +#endif +#ifndef PNG_NO_READ_hIST +# define PNG_READ_hIST_SUPPORTED +# define PNG_hIST_SUPPORTED +#endif +#ifndef PNG_NO_READ_iCCP +# define PNG_READ_iCCP_SUPPORTED +# define PNG_iCCP_SUPPORTED +#endif +#ifndef PNG_NO_READ_iTXt +# ifndef PNG_READ_iTXt_SUPPORTED +# define PNG_READ_iTXt_SUPPORTED +# endif +# ifndef PNG_iTXt_SUPPORTED +# define PNG_iTXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_READ_oFFs +# define PNG_READ_oFFs_SUPPORTED +# define PNG_oFFs_SUPPORTED +#endif +#ifndef PNG_NO_READ_pCAL +# define PNG_READ_pCAL_SUPPORTED +# define PNG_pCAL_SUPPORTED +#endif +#ifndef PNG_NO_READ_sCAL +# define PNG_READ_sCAL_SUPPORTED +# define PNG_sCAL_SUPPORTED +#endif +#ifndef PNG_NO_READ_pHYs +# define PNG_READ_pHYs_SUPPORTED +# define PNG_pHYs_SUPPORTED +#endif +#ifndef PNG_NO_READ_sBIT +# define PNG_READ_sBIT_SUPPORTED +# define PNG_sBIT_SUPPORTED +#endif +#ifndef PNG_NO_READ_sPLT +# define PNG_READ_sPLT_SUPPORTED +# define PNG_sPLT_SUPPORTED +#endif +#ifndef PNG_NO_READ_sRGB +# define PNG_READ_sRGB_SUPPORTED +# define PNG_sRGB_SUPPORTED +#endif +#ifndef PNG_NO_READ_tEXt +# define PNG_READ_tEXt_SUPPORTED +# define PNG_tEXt_SUPPORTED +#endif +#ifndef PNG_NO_READ_tIME +# define PNG_READ_tIME_SUPPORTED +# define PNG_tIME_SUPPORTED +#endif +#ifndef PNG_NO_READ_tRNS +# define PNG_READ_tRNS_SUPPORTED +# define PNG_tRNS_SUPPORTED +#endif +#ifndef PNG_NO_READ_zTXt +# define PNG_READ_zTXt_SUPPORTED +# define PNG_zTXt_SUPPORTED +#endif +#ifndef PNG_NO_READ_UNKNOWN_CHUNKS +# define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_UNKNOWN_CHUNKS_SUPPORTED +# endif +# ifndef PNG_NO_HANDLE_AS_UNKNOWN +# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# endif +#endif +#if !defined(PNG_NO_READ_USER_CHUNKS) && \ + defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) +# define PNG_READ_USER_CHUNKS_SUPPORTED +# define PNG_USER_CHUNKS_SUPPORTED +# ifdef PNG_NO_READ_UNKNOWN_CHUNKS +# undef PNG_NO_READ_UNKNOWN_CHUNKS +# endif +# ifdef PNG_NO_HANDLE_AS_UNKNOWN +# undef PNG_NO_HANDLE_AS_UNKNOWN +# endif +#endif +#ifndef PNG_NO_READ_OPT_PLTE +# define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */ +#endif /* optional PLTE chunk in RGB and RGBA images */ +#if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \ + defined(PNG_READ_zTXt_SUPPORTED) +# define PNG_READ_TEXT_SUPPORTED +# define PNG_TEXT_SUPPORTED +#endif + +#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */ + +#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED + +#ifdef PNG_NO_WRITE_TEXT +# define PNG_NO_WRITE_iTXt +# define PNG_NO_WRITE_tEXt +# define PNG_NO_WRITE_zTXt +#endif +#ifndef PNG_NO_WRITE_bKGD +# define PNG_WRITE_bKGD_SUPPORTED +# ifndef PNG_bKGD_SUPPORTED +# define PNG_bKGD_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_cHRM +# define PNG_WRITE_cHRM_SUPPORTED +# ifndef PNG_cHRM_SUPPORTED +# define PNG_cHRM_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_gAMA +# define PNG_WRITE_gAMA_SUPPORTED +# ifndef PNG_gAMA_SUPPORTED +# define PNG_gAMA_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_hIST +# define PNG_WRITE_hIST_SUPPORTED +# ifndef PNG_hIST_SUPPORTED +# define PNG_hIST_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_iCCP +# define PNG_WRITE_iCCP_SUPPORTED +# ifndef PNG_iCCP_SUPPORTED +# define PNG_iCCP_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_iTXt +# ifndef PNG_WRITE_iTXt_SUPPORTED +# define PNG_WRITE_iTXt_SUPPORTED +# endif +# ifndef PNG_iTXt_SUPPORTED +# define PNG_iTXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_oFFs +# define PNG_WRITE_oFFs_SUPPORTED +# ifndef PNG_oFFs_SUPPORTED +# define PNG_oFFs_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_pCAL +# define PNG_WRITE_pCAL_SUPPORTED +# ifndef PNG_pCAL_SUPPORTED +# define PNG_pCAL_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sCAL +# define PNG_WRITE_sCAL_SUPPORTED +# ifndef PNG_sCAL_SUPPORTED +# define PNG_sCAL_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_pHYs +# define PNG_WRITE_pHYs_SUPPORTED +# ifndef PNG_pHYs_SUPPORTED +# define PNG_pHYs_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sBIT +# define PNG_WRITE_sBIT_SUPPORTED +# ifndef PNG_sBIT_SUPPORTED +# define PNG_sBIT_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sPLT +# define PNG_WRITE_sPLT_SUPPORTED +# ifndef PNG_sPLT_SUPPORTED +# define PNG_sPLT_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_sRGB +# define PNG_WRITE_sRGB_SUPPORTED +# ifndef PNG_sRGB_SUPPORTED +# define PNG_sRGB_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_tEXt +# define PNG_WRITE_tEXt_SUPPORTED +# ifndef PNG_tEXt_SUPPORTED +# define PNG_tEXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_tIME +# define PNG_WRITE_tIME_SUPPORTED +# ifndef PNG_tIME_SUPPORTED +# define PNG_tIME_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_tRNS +# define PNG_WRITE_tRNS_SUPPORTED +# ifndef PNG_tRNS_SUPPORTED +# define PNG_tRNS_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_zTXt +# define PNG_WRITE_zTXt_SUPPORTED +# ifndef PNG_zTXt_SUPPORTED +# define PNG_zTXt_SUPPORTED +# endif +#endif +#ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS +# define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +# ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED +# define PNG_UNKNOWN_CHUNKS_SUPPORTED +# endif +# ifndef PNG_NO_HANDLE_AS_UNKNOWN +# ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +# endif +# endif +#endif +#if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ + defined(PNG_WRITE_zTXt_SUPPORTED) +# define PNG_WRITE_TEXT_SUPPORTED +# ifndef PNG_TEXT_SUPPORTED +# define PNG_TEXT_SUPPORTED +# endif +#endif + +#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */ + +/* Turn this off to disable png_read_png() and + * png_write_png() and leave the row_pointers member + * out of the info structure. + */ +#ifndef PNG_NO_INFO_IMAGE +# define PNG_INFO_IMAGE_SUPPORTED +#endif + +/* need the time information for reading tIME chunks */ +#if defined(PNG_tIME_SUPPORTED) +# if !defined(_WIN32_WCE) + /* "time.h" functions are not supported on WindowsCE */ +# include +# endif +#endif + +/* Some typedefs to get us started. These should be safe on most of the + * common platforms. The typedefs should be at least as large as the + * numbers suggest (a png_uint_32 must be at least 32 bits long), but they + * don't have to be exactly that size. Some compilers dislike passing + * unsigned shorts as function parameters, so you may be better off using + * unsigned int for png_uint_16. Likewise, for 64-bit systems, you may + * want to have unsigned int for png_uint_32 instead of unsigned long. + */ + +typedef unsigned long png_uint_32; +typedef long png_int_32; +typedef unsigned short png_uint_16; +typedef short png_int_16; +typedef unsigned char png_byte; + +/* This is usually size_t. It is typedef'ed just in case you need it to + change (I'm not sure if you will or not, so I thought I'd be safe) */ +#ifdef PNG_SIZE_T + typedef PNG_SIZE_T png_size_t; +# define png_sizeof(x) png_convert_size(sizeof (x)) +#else + typedef size_t png_size_t; +# define png_sizeof(x) sizeof (x) +#endif + +/* The following is needed for medium model support. It cannot be in the + * PNG_INTERNAL section. Needs modification for other compilers besides + * MSC. Model independent support declares all arrays and pointers to be + * large using the far keyword. The zlib version used must also support + * model independent data. As of version zlib 1.0.4, the necessary changes + * have been made in zlib. The USE_FAR_KEYWORD define triggers other + * changes that are needed. (Tim Wegner) + */ + +/* Separate compiler dependencies (problem here is that zlib.h always + defines FAR. (SJT) */ +#ifdef __BORLANDC__ +# if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) +# define LDATA 1 +# else +# define LDATA 0 +# endif + /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ +# if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) +# define PNG_MAX_MALLOC_64K +# if (LDATA != 1) +# ifndef FAR +# define FAR __far +# endif +# define USE_FAR_KEYWORD +# endif /* LDATA != 1 */ + /* Possibly useful for moving data out of default segment. + * Uncomment it if you want. Could also define FARDATA as + * const if your compiler supports it. (SJT) +# define FARDATA FAR + */ +# endif /* __WIN32__, __FLAT__, __CYGWIN__ */ +#endif /* __BORLANDC__ */ + + +/* Suggest testing for specific compiler first before testing for + * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, + * making reliance oncertain keywords suspect. (SJT) + */ + +/* MSC Medium model */ +#if defined(FAR) +# if defined(M_I86MM) +# define USE_FAR_KEYWORD +# define FARDATA FAR +# include +# endif +#endif + +/* SJT: default case */ +#ifndef FAR +# define FAR +#endif + +/* At this point FAR is always defined */ +#ifndef FARDATA +# define FARDATA +#endif + +/* Typedef for floating-point numbers that are converted + to fixed-point with a multiple of 100,000, e.g., int_gamma */ +typedef png_int_32 png_fixed_point; + +/* Add typedefs for pointers */ +typedef void FAR * png_voidp; +typedef png_byte FAR * png_bytep; +typedef png_uint_32 FAR * png_uint_32p; +typedef png_int_32 FAR * png_int_32p; +typedef png_uint_16 FAR * png_uint_16p; +typedef png_int_16 FAR * png_int_16p; +typedef PNG_CONST char FAR * png_const_charp; +typedef char FAR * png_charp; +typedef png_fixed_point FAR * png_fixed_point_p; + +#ifndef PNG_NO_STDIO +#if defined(_WIN32_WCE) +typedef HANDLE png_FILE_p; +#else +typedef FILE * png_FILE_p; +#endif +#endif + +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double FAR * png_doublep; +#endif + +/* Pointers to pointers; i.e. arrays */ +typedef png_byte FAR * FAR * png_bytepp; +typedef png_uint_32 FAR * FAR * png_uint_32pp; +typedef png_int_32 FAR * FAR * png_int_32pp; +typedef png_uint_16 FAR * FAR * png_uint_16pp; +typedef png_int_16 FAR * FAR * png_int_16pp; +typedef PNG_CONST char FAR * FAR * png_const_charpp; +typedef char FAR * FAR * png_charpp; +typedef png_fixed_point FAR * FAR * png_fixed_point_pp; +#ifdef PNG_FLOATING_POINT_SUPPORTED +typedef double FAR * FAR * png_doublepp; +#endif + +/* Pointers to pointers to pointers; i.e., pointer to array */ +typedef char FAR * FAR * FAR * png_charppp; + +#if defined(PNG_1_0_X) || defined(PNG_1_2_X) +/* SPC - Is this stuff deprecated? */ +/* It'll be removed as of libpng-1.3.0 - GR-P */ +/* libpng typedefs for types in zlib. If zlib changes + * or another compression library is used, then change these. + * Eliminates need to change all the source files. + */ +typedef charf * png_zcharp; +typedef charf * FAR * png_zcharpp; +typedef z_stream FAR * png_zstreamp; +#endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */ + +/* + * Define PNG_BUILD_DLL if the module being built is a Windows + * LIBPNG DLL. + * + * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL. + * It is equivalent to Microsoft predefined macro _DLL that is + * automatically defined when you compile using the share + * version of the CRT (C Run-Time library) + * + * The cygwin mods make this behavior a little different: + * Define PNG_BUILD_DLL if you are building a dll for use with cygwin + * Define PNG_STATIC if you are building a static library for use with cygwin, + * -or- if you are building an application that you want to link to the + * static library. + * PNG_USE_DLL is defined by default (no user action needed) unless one of + * the other flags is defined. + */ + +#if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL)) +# define PNG_DLL +#endif +/* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib. + * When building a static lib, default to no GLOBAL ARRAYS, but allow + * command-line override + */ +#if defined(__CYGWIN__) +# if !defined(PNG_STATIC) +# if defined(PNG_USE_GLOBAL_ARRAYS) +# undef PNG_USE_GLOBAL_ARRAYS +# endif +# if !defined(PNG_USE_LOCAL_ARRAYS) +# define PNG_USE_LOCAL_ARRAYS +# endif +# else +# if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS) +# if defined(PNG_USE_GLOBAL_ARRAYS) +# undef PNG_USE_GLOBAL_ARRAYS +# endif +# endif +# endif +# if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) +# define PNG_USE_LOCAL_ARRAYS +# endif +#endif + +/* Do not use global arrays (helps with building DLL's) + * They are no longer used in libpng itself, since version 1.0.5c, + * but might be required for some pre-1.0.5c applications. + */ +#if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) +# if defined(PNG_NO_GLOBAL_ARRAYS) || (defined(__GNUC__) && defined(PNG_DLL)) +# define PNG_USE_LOCAL_ARRAYS +# else +# define PNG_USE_GLOBAL_ARRAYS +# endif +#endif + +#if defined(__CYGWIN__) +# undef PNGAPI +# define PNGAPI __cdecl +# undef PNG_IMPEXP +# define PNG_IMPEXP +#endif + +/* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall", + * you may get warnings regarding the linkage of png_zalloc and png_zfree. + * Don't ignore those warnings; you must also reset the default calling + * convention in your compiler to match your PNGAPI, and you must build + * zlib and your applications the same way you build libpng. + */ + +#if defined(__MINGW32__) && !defined(PNG_MODULEDEF) +# ifndef PNG_NO_MODULEDEF +# define PNG_NO_MODULEDEF +# endif +#endif + +#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) +# define PNG_IMPEXP +#endif + +#if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \ + (( defined(_Windows) || defined(_WINDOWS) || \ + defined(WIN32) || defined(_WIN32) || defined(__WIN32__) )) + +# ifndef PNGAPI +# if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) +# define PNGAPI __cdecl +# else +# define PNGAPI _cdecl +# endif +# endif + +# if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \ + 0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */) +# define PNG_IMPEXP +# endif + +# if !defined(PNG_IMPEXP) + +# define PNG_EXPORT_TYPE1(type,symbol) PNG_IMPEXP type PNGAPI symbol +# define PNG_EXPORT_TYPE2(type,symbol) type PNG_IMPEXP PNGAPI symbol + + /* Borland/Microsoft */ +# if defined(_MSC_VER) || defined(__BORLANDC__) +# if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500) +# define PNG_EXPORT PNG_EXPORT_TYPE1 +# else +# define PNG_EXPORT PNG_EXPORT_TYPE2 +# if defined(PNG_BUILD_DLL) +# define PNG_IMPEXP __export +# else +# define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in + VC++ */ +# endif /* Exists in Borland C++ for + C++ classes (== huge) */ +# endif +# endif + +# if !defined(PNG_IMPEXP) +# if defined(PNG_BUILD_DLL) +# define PNG_IMPEXP __declspec(dllexport) +# else +# define PNG_IMPEXP __declspec(dllimport) +# endif +# endif +# endif /* PNG_IMPEXP */ +#else /* !(DLL || non-cygwin WINDOWS) */ +# if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) +# ifndef PNGAPI +# define PNGAPI _System +# endif +# else +# if 0 /* ... other platforms, with other meanings */ +# endif +# endif +#endif + +#ifndef PNGAPI +# define PNGAPI +#endif +#ifndef PNG_IMPEXP +# define PNG_IMPEXP +#endif + +#ifdef PNG_BUILDSYMS +# ifndef PNG_EXPORT +# define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END +# endif +# ifdef PNG_USE_GLOBAL_ARRAYS +# ifndef PNG_EXPORT_VAR +# define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT +# endif +# endif +#endif + +#ifndef PNG_EXPORT +# define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol +#endif + +#ifdef PNG_USE_GLOBAL_ARRAYS +# ifndef PNG_EXPORT_VAR +# define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type +# endif +#endif + +/* User may want to use these so they are not in PNG_INTERNAL. Any library + * functions that are passed far data must be model independent. + */ + +#ifndef PNG_ABORT +# define PNG_ABORT() abort() +#endif + +#ifdef PNG_SETJMP_SUPPORTED +# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) +#else +# define png_jmpbuf(png_ptr) \ + (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED) +#endif + +#if defined(USE_FAR_KEYWORD) /* memory model independent fns */ +/* use this to make far-to-near assignments */ +# define CHECK 1 +# define NOCHECK 0 +# define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) +# define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) +# define png_strcpy _fstrcpy +# define png_strncpy _fstrncpy /* Added to v 1.2.6 */ +# define png_strlen _fstrlen +# define png_memcmp _fmemcmp /* SJT: added */ +# define png_memcpy _fmemcpy +# define png_memset _fmemset +#else /* use the usual functions */ +# define CVT_PTR(ptr) (ptr) +# define CVT_PTR_NOCHECK(ptr) (ptr) +# define png_strcpy strcpy +# define png_strncpy strncpy /* Added to v 1.2.6 */ +# define png_strlen strlen +# define png_memcmp memcmp /* SJT: added */ +# define png_memcpy memcpy +# define png_memset memset +#endif +/* End of memory model independent support */ + +/* Just a little check that someone hasn't tried to define something + * contradictory. + */ +#if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) +# undef PNG_ZBUF_SIZE +# define PNG_ZBUF_SIZE 65536L +#endif + +#ifdef PNG_READ_SUPPORTED +/* Prior to libpng-1.0.9, this block was in pngasmrd.h */ +#if defined(PNG_INTERNAL) + +/* These are the default thresholds before the MMX code kicks in; if either + * rowbytes or bitdepth is below the threshold, plain C code is used. These + * can be overridden at runtime via the png_set_mmx_thresholds() call in + * libpng 1.2.0 and later. The values below were chosen by Intel. + */ + +#ifndef PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT +# define PNG_MMX_ROWBYTES_THRESHOLD_DEFAULT 128 /* >= */ +#endif +#ifndef PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT +# define PNG_MMX_BITDEPTH_THRESHOLD_DEFAULT 9 /* >= */ +#endif + +/* Set this in the makefile for VC++ on Pentium, not here. */ +/* Platform must be Pentium. Makefile must assemble and load pngvcrd.c . + * MMX will be detected at run time and used if present. + */ +#ifdef PNG_USE_PNGVCRD +# define PNG_HAVE_ASSEMBLER_COMBINE_ROW +# define PNG_HAVE_ASSEMBLER_READ_INTERLACE +# define PNG_HAVE_ASSEMBLER_READ_FILTER_ROW +#endif + +/* Set this in the makefile for gcc/as on Pentium, not here. */ +/* Platform must be Pentium. Makefile must assemble and load pnggccrd.c . + * MMX will be detected at run time and used if present. + */ +#ifdef PNG_USE_PNGGCCRD +# define PNG_HAVE_ASSEMBLER_COMBINE_ROW +# define PNG_HAVE_ASSEMBLER_READ_INTERLACE +# define PNG_HAVE_ASSEMBLER_READ_FILTER_ROW +#endif +/* - see pnggccrd.c for info about what is currently enabled */ + +#endif /* PNG_INTERNAL */ +#endif /* PNG_READ_SUPPORTED */ + +/* Added at libpng-1.2.8 */ +#endif /* PNG_VERSION_INFO_ONLY */ + +#endif /* PNGCONF_H */ diff --git a/engine/libs/mingw-libs/zconf.h b/engine/libs/mingw-libs/zconf.h new file mode 100755 index 000000000..8abfd177d --- /dev/null +++ b/engine/libs/mingw-libs/zconf.h @@ -0,0 +1,332 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-2005 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: zconf.h 2318 2006-06-07 22:27:05Z timeserv $ */ + +#ifndef ZCONF_H +#define ZCONF_H + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + */ +#ifdef Z_PREFIX +# define deflateInit_ z_deflateInit_ +# define deflate z_deflate +# define deflateEnd z_deflateEnd +# define inflateInit_ z_inflateInit_ +# define inflate z_inflate +# define inflateEnd z_inflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateSetDictionary z_deflateSetDictionary +# define deflateCopy z_deflateCopy +# define deflateReset z_deflateReset +# define deflateParams z_deflateParams +# define deflateBound z_deflateBound +# define deflatePrime z_deflatePrime +# define inflateInit2_ z_inflateInit2_ +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateCopy z_inflateCopy +# define inflateReset z_inflateReset +# define inflateBack z_inflateBack +# define inflateBackEnd z_inflateBackEnd +# define compress z_compress +# define compress2 z_compress2 +# define compressBound z_compressBound +# define uncompress z_uncompress +# define adler32 z_adler32 +# define crc32 z_crc32 +# define get_crc_table z_get_crc_table +# define zError z_zError + +# define alloc_func z_alloc_func +# define free_func z_free_func +# define in_func z_in_func +# define out_func z_out_func +# define Byte z_Byte +# define uInt z_uInt +# define uLong z_uLong +# define Bytef z_Bytef +# define charf z_charf +# define intf z_intf +# define uIntf z_uIntf +# define uLongf z_uLongf +# define voidpf z_voidpf +# define voidp z_voidp +#endif + +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif +#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2) +# define OS2 +#endif +#if defined(_WINDOWS) && !defined(WINDOWS) +# define WINDOWS +#endif +#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__) +# ifndef WIN32 +# define WIN32 +# endif +#endif +#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32) +# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__) +# ifndef SYS16BIT +# define SYS16BIT +# endif +# endif +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#ifdef SYS16BIT +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#ifdef __STDC_VERSION__ +# ifndef STDC +# define STDC +# endif +# if __STDC_VERSION__ >= 199901L +# ifndef STDC99 +# define STDC99 +# endif +# endif +#endif +#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus)) +# define STDC +#endif +#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__)) +# define STDC +#endif +#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32)) +# define STDC +#endif +#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__)) +# define STDC +#endif + +#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */ +# define STDC +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const /* note: need a more gentle solution here */ +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#ifdef SYS16BIT +# if defined(M_I86SM) || defined(M_I86MM) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +# endif +# if (defined(__SMALL__) || defined(__MEDIUM__)) + /* Turbo C small or medium model */ +# define SMALL_MEDIUM +# ifdef __BORLANDC__ +# define FAR _far +# else +# define FAR far +# endif +# endif +#endif + +#if defined(WINDOWS) || defined(WIN32) + /* If building or using zlib as a DLL, define ZLIB_DLL. + * This is not mandatory, but it offers a little performance increase. + */ +# ifdef ZLIB_DLL +# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500)) +# ifdef ZLIB_INTERNAL +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +# endif +# endif /* ZLIB_DLL */ + /* If building or using zlib with the WINAPI/WINAPIV calling convention, + * define ZLIB_WINAPI. + * Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI. + */ +# ifdef ZLIB_WINAPI +# ifdef FAR +# undef FAR +# endif +# include + /* No need for _export, use ZLIB.DEF instead. */ + /* For complete Windows compatibility, use WINAPI, not __stdcall. */ +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR CDECL +# endif +# endif +#endif + +#if defined (__BEOS__) +# ifdef ZLIB_DLL +# ifdef ZLIB_INTERNAL +# define ZEXPORT __declspec(dllexport) +# define ZEXPORTVA __declspec(dllexport) +# else +# define ZEXPORT __declspec(dllimport) +# define ZEXPORTVA __declspec(dllimport) +# endif +# endif +#endif + +#ifndef ZEXTERN +# define ZEXTERN extern +#endif +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(__MACTYPES__) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void const *voidpc; + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte const *voidpc; + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */ +# include /* for off_t */ +# include /* for SEEK_* and off_t */ +# ifdef VMS +# include /* for off_t */ +# endif +# define z_off_t off_t +#endif +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif +#ifndef z_off_t +# define z_off_t long +#endif + +#if defined(__OS400__) +# define NO_vsnprintf +#endif + +#if defined(__MVS__) +# define NO_vsnprintf +# ifdef FAR +# undef FAR +# endif +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) +# pragma map(deflateInit_,"DEIN") +# pragma map(deflateInit2_,"DEIN2") +# pragma map(deflateEnd,"DEEND") +# pragma map(deflateBound,"DEBND") +# pragma map(inflateInit_,"ININ") +# pragma map(inflateInit2_,"ININ2") +# pragma map(inflateEnd,"INEND") +# pragma map(inflateSync,"INSY") +# pragma map(inflateSetDictionary,"INSEDI") +# pragma map(compressBound,"CMBND") +# pragma map(inflate_table,"INTABL") +# pragma map(inflate_fast,"INFA") +# pragma map(inflate_copyright,"INCOPY") +#endif + +#endif /* ZCONF_H */ diff --git a/engine/libs/mingw-libs/zlib.h b/engine/libs/mingw-libs/zlib.h new file mode 100755 index 000000000..022817927 --- /dev/null +++ b/engine/libs/mingw-libs/zlib.h @@ -0,0 +1,1357 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.3, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files http://www.ietf.org/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef ZLIB_H +#define ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.2.3" +#define ZLIB_VERNUM 0x1230 + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms will be added later and will have the same + stream interface. + + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. + + The compressed data format used by default by the in-memory functions is + the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped + around a deflate stream, which is itself documented in RFC 1951. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio using the functions that start + with "gz". The gzip format is different from the zlib format. gzip is a + gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. + + This library can optionally read and write gzip streams in memory as well. + + The zlib format was designed to be compact and fast for use in memory + and on communications channels. The gzip format was designed for single- + file compression on file systems, has a larger header than zlib to maintain + directory information, and uses a different, slower check method than zlib. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never + crash even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: binary or text */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + gzip header information passed to and from zlib routines. See RFC 1952 + for more details on the meanings of these fields. +*/ +typedef struct gz_header_s { + int text; /* true if compressed data believed to be text */ + uLong time; /* modification time */ + int xflags; /* extra flags (not used when writing a gzip file) */ + int os; /* operating system */ + Bytef *extra; /* pointer to extra field or Z_NULL if none */ + uInt extra_len; /* extra field length (valid if extra != Z_NULL) */ + uInt extra_max; /* space at extra (only when reading header) */ + Bytef *name; /* pointer to zero-terminated file name or Z_NULL */ + uInt name_max; /* space at name (only when reading header) */ + Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */ + uInt comm_max; /* space at comment (only when reading header) */ + int hcrc; /* true if there was or will be a header crc */ + int done; /* true when done reading gzip header (not used + when writing a gzip file) */ +} gz_header; + +typedef gz_header FAR *gz_headerp; + +/* + The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +#define Z_BLOCK 5 +/* Allowed flush values; see deflate() and inflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative + * values are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_RLE 3 +#define Z_FIXED 4 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_TEXT 1 +#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */ +#define Z_UNKNOWN 2 +/* Possible values of the data_type field (though see inflate()) */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + This check is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. + If zalloc and zfree are set to Z_NULL, deflateInit updates them to + use default allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at + all (the input data is simply copied a block at a time). + Z_DEFAULT_COMPRESSION requests a default compromise between speed and + compression (currently equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if level is not a valid compression level, + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). + msg is set to null if there is no error message. deflateInit does not + perform any compression: this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce some + output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). + Some output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating avail_in or avail_out accordingly; avail_out + should never be zero before the call. The application can consume the + compressed output when it wants, for example when the output buffer is full + (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK + and with zero avail_out, it must be called again after making room in the + output buffer because there might be more output pending. + + Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to + decide how much data to accumualte before producing output, in order to + maximize compression. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In particular + avail_in is zero after the call if enough output space has been provided + before the call.) Flushing may degrade compression for some compression + algorithms and so it should be used only when necessary. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that + avail_out is greater than six to avoid repeated flush markers due to + avail_out == 0 on return. + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there + was enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the + stream are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least + the value returned by deflateBound (see below). If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update strm->data_type if it can make a good guess about + the input data type (Z_BINARY or Z_TEXT). In doubt, the data is considered + binary. This field is only for information purposes and does not affect + the compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). Note that Z_BUF_ERROR is not + fatal, and deflate() can be called again with more input and more output + space to continue compressing. +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, + msg may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the exact + value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller. msg is set to null if there is no error + message. inflateInit does not perform any decompression apart from reading + the zlib header if present: this will be done by inflate(). (So next_in and + avail_in may be modified, but next_out and avail_out are unchanged.) +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce + some output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there + is no more input data or no more space in the output buffer (see below + about the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). If inflate returns Z_OK and with zero avail_out, it + must be called again after making room in the output buffer because there + might be more output pending. + + The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, + Z_FINISH, or Z_BLOCK. Z_SYNC_FLUSH requests that inflate() flush as much + output as possible to the output buffer. Z_BLOCK requests that inflate() stop + if and when it gets to the next deflate block boundary. When decoding the + zlib or gzip format, this will cause inflate() to return immediately after + the header and before the first block. When doing a raw inflate, inflate() + will go ahead and process the first block, and will return when it gets to + the end of that block, or when it runs out of data. + + The Z_BLOCK option assists in appending to or combining deflate streams. + Also to assist in this, on return inflate() will set strm->data_type to the + number of unused bits in the last byte taken from strm->next_in, plus 64 + if inflate() is currently decoding the last block in the deflate stream, + plus 128 if inflate() returned immediately after decoding an end-of-block + code or decoding the complete header up to just before the first byte of the + deflate stream. The end-of-block will not be indicated until all of the + uncompressed data from that block has been written to strm->next_out. The + number of unused bits may in general be greater than seven, except when + bit 7 of data_type is set, in which case the number of unused bits will be + less than eight. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster approach + may be used for the single inflate() call. + + In this implementation, inflate() always flushes as much output as + possible to the output buffer, and always uses the faster approach on the + first call. So the only effect of the flush parameter in this implementation + is on the return value of inflate(), as noted below, or when it returns early + because Z_BLOCK is used. + + If a preset dictionary is needed after this call (see inflateSetDictionary + below), inflate sets strm->adler to the adler32 checksum of the dictionary + chosen by the compressor and returns Z_NEED_DICT; otherwise it sets + strm->adler to the adler32 checksum of all output produced so far (that is, + total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described + below. At the end of the stream, inflate() checks that its computed adler32 + checksum is equal to that saved by the compressor and returns Z_STREAM_END + only if the checksum is correct. + + inflate() will decompress and check either zlib-wrapped or gzip-wrapped + deflate data. The header type is detected automatically. Any information + contained in the gzip header is not retained, so applications that need that + information should instead use raw inflate, see inflateInit2() below, or + inflateBack() and perform their own processing of the gzip header and + trailer. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect check + value), Z_STREAM_ERROR if the stream structure was inconsistent (for example + if next_in or next_out was NULL), Z_MEM_ERROR if there was not enough memory, + Z_BUF_ERROR if no progress is possible or if there was not enough room in the + output buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and + inflate() can be called again with more input and more output space to + continue decompressing. If Z_DATA_ERROR is returned, the application may then + call inflateSync() to look for a good compression block if a partial recovery + of the data is desired. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by + the caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + windowBits can also be -8..-15 for raw deflate. In this case, -windowBits + determines the window size. deflate() will then generate raw deflate data + with no zlib header or trailer, and will not compute an adler32 check value. + + windowBits can also be greater than 15 for optional gzip encoding. Add + 16 to windowBits to write a simple gzip header and trailer around the + compressed data instead of a zlib wrapper. The gzip header will have no + file name, no extra data, no comment, no modification time (set to zero), + no header crc, and the operating system will be set to 255 (unknown). If a + gzip stream is being written, strm->adler is a crc32 instead of an adler32. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but + is slow and reduces compression ratio; memLevel=9 uses maximum memory + for optimal speed. The default value is 8. See zconf.h for total memory + usage as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match), or Z_RLE to limit match distances to one (run-length + encoding). Filtered data consists mostly of small values with a somewhat + random distribution. In this case, the compression algorithm is tuned to + compress them better. The effect of Z_FILTERED is to force more Huffman + coding and less string matching; it is somewhat intermediate between + Z_DEFAULT and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as fast as + Z_HUFFMAN_ONLY, but give better compression for PNG image data. The strategy + parameter only affects the compression ratio but not the correctness of the + compressed output even if it is not set appropriately. Z_FIXED prevents the + use of dynamic Huffman codes, allowing for a simpler decoder for special + applications. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid + method). msg is set to null if there is no error message. deflateInit2 does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any + call of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size in + deflate or deflate2. Thus the strings most likely to be useful should be + put at the end of the dictionary, not at the front. In addition, the + current implementation of deflate will use at most the window size minus + 262 bytes of the provided dictionary. + + Upon return of this function, strm->adler is set to the adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) If a raw deflate was requested, then the + adler32 value is not computed and strm->adler is not set. + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and + can consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. + The stream will keep the same compression level and any other attributes + that may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different + strategy. If the compression level is changed, the input available so far + is compressed with the old level (and may be flushed); the new level will + take effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to + be compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR + if strm->avail_out was zero. +*/ + +ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain)); +/* + Fine tune deflate's internal compression parameters. This should only be + used by someone who understands the algorithm used by zlib's deflate for + searching for the best matching string, and even then only by the most + fanatic optimizer trying to squeeze out the last compressed bit for their + specific input data. Read the deflate.c source code for the meaning of the + max_lazy, good_length, nice_length, and max_chain parameters. + + deflateTune() can be called after deflateInit() or deflateInit2(), and + returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. + */ + +ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, + uLong sourceLen)); +/* + deflateBound() returns an upper bound on the compressed size after + deflation of sourceLen bytes. It must be called after deflateInit() + or deflateInit2(). This would be used to allocate an output buffer + for deflation in a single pass, and so would be called before deflate(). +*/ + +ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + deflatePrime() inserts bits in the deflate output stream. The intent + is that this function is used to start off the deflate output with the + bits leftover from a previous deflate stream when appending to it. As such, + this function can only be used for raw deflate, and must be used before the + first deflate() call after a deflateInit2() or deflateReset(). bits must be + less than or equal to 16, and that many of the least significant bits of + value will be inserted in the output. + + deflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, + gz_headerp head)); +/* + deflateSetHeader() provides gzip header information for when a gzip + stream is requested by deflateInit2(). deflateSetHeader() may be called + after deflateInit2() or deflateReset() and before the first call of + deflate(). The text, time, os, extra field, name, and comment information + in the provided gz_header structure are written to the gzip header (xflag is + ignored -- the extra flags are set according to the compression level). The + caller must assure that, if not Z_NULL, name and comment are terminated with + a zero byte, and that if extra is not Z_NULL, that extra_len bytes are + available there. If hcrc is true, a gzip header crc is included. Note that + the current versions of the command-line version of gzip (up through version + 1.3.x) do not support header crc's, and will report that it is a "multi-part + gzip file" and give up. + + If deflateSetHeader is not used, the default gzip header has text false, + the time set to zero, and os set to 255, with no extra, name, or comment + fields. The gzip header is returned to the default state by deflateReset(). + + deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. windowBits must be greater than or equal to the windowBits value + provided to deflateInit2() while compressing, or it must be equal to 15 if + deflateInit2() was not used. If a compressed stream with a larger window + size is given as input, inflate() will return with the error code + Z_DATA_ERROR instead of trying to allocate a larger window. + + windowBits can also be -8..-15 for raw inflate. In this case, -windowBits + determines the window size. inflate() will then process raw deflate data, + not looking for a zlib or gzip header, not generating a check value, and not + looking for any check values for comparison at the end of the stream. This + is for use with other formats that use the deflate compressed data format + such as zip. Those formats provide their own check values. If a custom + format is developed using the raw deflate format for compressed data, it is + recommended that a check value such as an adler32 or a crc32 be applied to + the uncompressed data as is done in the zlib, gzip, and zip formats. For + most applications, the zlib format should be used as is. Note that comments + above on the use in deflateInit2() applies to the magnitude of windowBits. + + windowBits can also be greater than 15 for optional gzip decoding. Add + 32 to windowBits to enable zlib and gzip decoding with automatic header + detection, or add 16 to decode only the gzip format (the zlib format will + return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is + a crc32 instead of an adler32. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as a null strm). msg + is set to null if there is no error message. inflateInit2 does not perform + any decompression apart from reading the zlib header if present: this will + be done by inflate(). (So next_in and avail_in may be modified, but next_out + and avail_out are unchanged.) +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate, + if that call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the adler32 value returned by that call of inflate. + The compressor and decompressor must use exactly the same dictionary (see + deflateSetDictionary). For raw inflate, this function can be called + immediately after inflateInit2() or inflateReset() and before any call of + inflate() to set the dictionary. The application must insure that the + dictionary that was used for compression is provided. + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when randomly accessing a large stream. The + first pass through the stream can periodically record the inflate state, + allowing restarting inflate at those points when randomly accessing the + stream. + + inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, + int bits, + int value)); +/* + This function inserts bits in the inflate input stream. The intent is + that this function is used to start inflating at a bit position in the + middle of a byte. The provided bits will be used before any bytes are used + from next_in. This function should only be used with raw inflate, and + should be used before the first inflate() call after inflateInit2() or + inflateReset(). bits must be less than or equal to 16, and that many of the + least significant bits of value will be inserted in the input. + + inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, + gz_headerp head)); +/* + inflateGetHeader() requests that gzip header information be stored in the + provided gz_header structure. inflateGetHeader() may be called after + inflateInit2() or inflateReset(), and before the first call of inflate(). + As inflate() processes the gzip stream, head->done is zero until the header + is completed, at which time head->done is set to one. If a zlib stream is + being decoded, then head->done is set to -1 to indicate that there will be + no gzip header information forthcoming. Note that Z_BLOCK can be used to + force inflate() to return immediately after header processing is complete + and before any actual data is decompressed. + + The text, time, xflags, and os fields are filled in with the gzip header + contents. hcrc is set to true if there is a header CRC. (The header CRC + was valid if done is set to one.) If extra is not Z_NULL, then extra_max + contains the maximum number of bytes to write to extra. Once done is true, + extra_len contains the actual extra field length, and extra contains the + extra field, or that field truncated if extra_max is less than extra_len. + If name is not Z_NULL, then up to name_max characters are written there, + terminated with a zero unless the length is greater than name_max. If + comment is not Z_NULL, then up to comm_max characters are written there, + terminated with a zero unless the length is greater than comm_max. When + any of extra, name, or comment are not Z_NULL and the respective field is + not present in the header, then that field is set to Z_NULL to signal its + absence. This allows the use of deflateSetHeader() with the returned + structure to duplicate the header. However if those fields are set to + allocated memory, then the application will need to save those pointers + elsewhere so that they can be eventually freed. + + If inflateGetHeader is not used, then the header information is simply + discarded. The header is always checked for validity, including the header + CRC if present. inflateReset() will reset the process to discard the header + information. The application would need to call inflateGetHeader() again to + retrieve the header from the next gzip stream. + + inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent. +*/ + +/* +ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, + unsigned char FAR *window)); + + Initialize the internal stream state for decompression using inflateBack() + calls. The fields zalloc, zfree and opaque in strm must be initialized + before the call. If zalloc and zfree are Z_NULL, then the default library- + derived memory allocation routines are used. windowBits is the base two + logarithm of the window size, in the range 8..15. window is a caller + supplied buffer of that size. Except for special applications where it is + assured that deflate was used with small window sizes, windowBits must be 15 + and a 32K byte window must be supplied to be able to decompress general + deflate streams. + + See inflateBack() for the usage of these routines. + + inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of + the paramaters are invalid, Z_MEM_ERROR if the internal state could not + be allocated, or Z_VERSION_ERROR if the version of the library does not + match the version of the header file. +*/ + +typedef unsigned (*in_func) OF((void FAR *, unsigned char FAR * FAR *)); +typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); + +ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc)); +/* + inflateBack() does a raw inflate with a single call using a call-back + interface for input and output. This is more efficient than inflate() for + file i/o applications in that it avoids copying between the output and the + sliding window by simply making the window itself the output buffer. This + function trusts the application to not change the output buffer passed by + the output function, at least until inflateBack() returns. + + inflateBackInit() must be called first to allocate the internal state + and to initialize the state with the user-provided window buffer. + inflateBack() may then be used multiple times to inflate a complete, raw + deflate stream with each call. inflateBackEnd() is then called to free + the allocated state. + + A raw deflate stream is one with no zlib or gzip header or trailer. + This routine would normally be used in a utility that reads zip or gzip + files and writes out uncompressed files. The utility would decode the + header and process the trailer on its own, hence this routine expects + only the raw deflate stream to decompress. This is different from the + normal behavior of inflate(), which expects either a zlib or gzip header and + trailer around the deflate stream. + + inflateBack() uses two subroutines supplied by the caller that are then + called by inflateBack() for input and output. inflateBack() calls those + routines until it reads a complete deflate stream and writes out all of the + uncompressed data, or until it encounters an error. The function's + parameters and return types are defined above in the in_func and out_func + typedefs. inflateBack() will call in(in_desc, &buf) which should return the + number of bytes of provided input, and a pointer to that input in buf. If + there is no input available, in() must return zero--buf is ignored in that + case--and inflateBack() will return a buffer error. inflateBack() will call + out(out_desc, buf, len) to write the uncompressed data buf[0..len-1]. out() + should return zero on success, or non-zero on failure. If out() returns + non-zero, inflateBack() will return with an error. Neither in() nor out() + are permitted to change the contents of the window provided to + inflateBackInit(), which is also the buffer that out() uses to write from. + The length written by out() will be at most the window size. Any non-zero + amount of input may be provided by in(). + + For convenience, inflateBack() can be provided input on the first call by + setting strm->next_in and strm->avail_in. If that input is exhausted, then + in() will be called. Therefore strm->next_in must be initialized before + calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called + immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in + must also be initialized, and then if strm->avail_in is not zero, input will + initially be taken from strm->next_in[0 .. strm->avail_in - 1]. + + The in_desc and out_desc parameters of inflateBack() is passed as the + first parameter of in() and out() respectively when they are called. These + descriptors can be optionally used to pass any information that the caller- + supplied in() and out() functions need to do their job. + + On return, inflateBack() will set strm->next_in and strm->avail_in to + pass back any unused input that was provided by the last in() call. The + return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR + if in() or out() returned an error, Z_DATA_ERROR if there was a format + error in the deflate stream (in which case strm->msg is set to indicate the + nature of the error), or Z_STREAM_ERROR if the stream was not properly + initialized. In the case of Z_BUF_ERROR, an input or output error can be + distinguished using strm->next_in which will be Z_NULL only if in() returned + an error. If strm->next is not Z_NULL, then the Z_BUF_ERROR was due to + out() returning non-zero. (in() will always be called before out(), so + strm->next_in is assured to be defined if out() returns non-zero.) Note + that inflateBack() cannot return Z_OK. +*/ + +ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +/* + All memory allocated by inflateBackInit() is freed. + + inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream + state was inconsistent. +*/ + +ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +/* Return flags indicating compile-time options. + + Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: + 1.0: size of uInt + 3.2: size of uLong + 5.4: size of voidpf (pointer) + 7.6: size of z_off_t + + Compiler, assembler, and debug options: + 8: DEBUG + 9: ASMV or ASMINF -- use ASM code + 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention + 11: 0 (reserved) + + One-time table building (smaller code, but not thread-safe if true): + 12: BUILDFIXED -- build static block decoding tables when needed + 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed + 14,15: 0 (reserved) + + Library content (indicates missing functionality): + 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking + deflate code when not needed) + 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect + and decode gzip streams (to avoid linking crc code) + 18-19: 0 (reserved) + + Operation variations (changes in library functionality): + 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate + 21: FASTEST -- deflate algorithm with only one, lowest compression level + 22,23: 0 (reserved) + + The sprintf variant used by gzprintf (zero is best): + 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format + 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure! + 26: 0 = returns value, 1 = void -- 1 means inferred string length returned + + Remainder: + 27-31: 0 (reserved) + */ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the + basic stream-oriented functions. To simplify the interface, some + default options are assumed (compression level and memory usage, + standard memory allocation functions). The source code of these + utility functions can easily be modified if you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be at least the value returned + by compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + This function can be used to compress a whole file at once if the + input file is mmap'ed. + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least the value returned by + compressBound(sourceLen). Upon exit, destLen is the actual size of the + compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +/* + compressBound() returns an upper bound on the compressed size after + compress() or compress2() on sourceLen bytes. It would be used before + a compress() or compress2() call to allocate the destination buffer. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. +*/ + + +typedef voidp gzFile; + +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +/* + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb") but can also include a compression level + ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for + Huffman only compression as in "wb1h", or 'R' for run-length encoding + as in "wb1R". (See the description of deflateInit2 for more information + about the strategy parameter.) + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). */ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen() associates a gzFile with the file descriptor fd. File + descriptors are obtained from calls like open, dup, creat, pipe or + fileno (in the file has been previously opened with fopen). + The mode parameter is as in gzopen. + The next call of gzclose on the returned gzFile will also close the + file descriptor fd, just like fclose(fdopen(fd), mode) closes the file + descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). + gzdopen returns NULL if there was insufficient memory to allocate + the (de)compression state. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. + If the input file was not in gzip format, gzread copies the given number + of bytes into the buffer. + gzread returns the number of uncompressed bytes actually read (0 for + end of file, -1 for error). */ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + voidpc buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes actually written + (0 in case of error). +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). The number of + uncompressed bytes written is limited to 4095. The caller should assure that + this limit is not exceeded. If it is exceeded, then gzprintf() will return + return an error (0) with nothing written. In this case, there may also be a + buffer overflow with unpredictable consequences, which is possible only if + zlib was compiled with the insecure functions sprintf() or vsprintf() + because the secure snprintf() or vsnprintf() functions were not available. +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or + a newline character is read and transferred to buf, or an end-of-file + condition is encountered. The string is then terminated with a null + character. + gzgets returns buf, or Z_NULL in case of error. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +/* + Push one character back onto the stream to be read again later. + Only one character of push-back is allowed. gzungetc() returns the + character pushed, or -1 on failure. gzungetc() will fail if a + character has been pushed but not read yet, or if c is -1. The pushed + character will be discarded if the stream is repositioned with gzseek() + or gzrewind(). +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. The return value is the zlib + error number (see function gzerror below). gzflush returns Z_OK if + the flush parameter is Z_FINISH and all output could be flushed. + gzflush should be called only when strictly necessary because it can + degrade compression. +*/ + +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); +/* + Sets the starting position for the next gzread or gzwrite on the + given compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +/* + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ + +ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +/* + Returns 1 if file is being read directly without decompression, otherwise + zero. +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. The return value is the zlib + error number (see function gzerror below). +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ + +ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +/* + Clears the error and end-of-file flags for file. This is analogous to the + clearerr() function in stdio. This is useful for continuing to read a gzip + file that is being written concurrently. +*/ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the + compression library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, + z_off_t len2)); +/* + Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 + and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for + each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of + seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running CRC-32 with the bytes buf[0..len-1] and return the + updated CRC-32. If buf is NULL, this function returns the required initial + value for the for the crc. Pre- and post-conditioning (one's complement) is + performed within this function so it shouldn't be done by the application. + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + +/* + Combine two CRC-32 check values into one. For two sequences of bytes, + seq1 and seq2 with lengths len1 and len2, CRC-32 check values were + calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 + check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and + len2. +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) +#define inflateBackInit(strm, windowBits, window) \ + inflateBackInit_((strm), (windowBits), (window), \ + ZLIB_VERSION, sizeof(z_stream)) + + +#if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char * ZEXPORT zError OF((int)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); + +#ifdef __cplusplus +} +#endif + +#endif /* ZLIB_H */ diff --git a/engine/libs/mingw-libs/zlib.lib b/engine/libs/mingw-libs/zlib.lib new file mode 100755 index 0000000000000000000000000000000000000000..e732c71a4c234e13c2a4f6f30310df656f2cb5c2 GIT binary patch literal 90344 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