source: trunk/src/3rdparty/libmng/libmng_trace.c@ 632

Last change on this file since 632 was 2, checked in by Dmitry A. Kuminov, 17 years ago

Initially imported qt-all-opensource-src-4.5.1 from Trolltech.

File size: 82.5 KB
Line 
1/* ************************************************************************** */
2/* * For conditions of distribution and use, * */
3/* * see copyright notice in libmng.h * */
4/* ************************************************************************** */
5/* * * */
6/* * project : libmng * */
7/* * file : libmng_trace.c copyright (c) 2000-2007 G.Juyn * */
8/* * version : 1.0.10 * */
9/* * * */
10/* * purpose : Trace functions (implementation) * */
11/* * * */
12/* * author : G.Juyn * */
13/* * * */
14/* * comment : implementation of the trace functions * */
15/* * * */
16/* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */
17/* * - changed strict-ANSI stuff * */
18/* * 0.5.1 - 05/12/2000 - G.Juyn * */
19/* * - added callback error-reporting support * */
20/* * * */
21/* * 0.5.2 - 05/23/2000 - G.Juyn * */
22/* * - added trace telltale reporting * */
23/* * 0.5.2 - 05/24/2000 - G.Juyn * */
24/* * - added tracestrings for global animation color-chunks * */
25/* * - added tracestrings for get/set of default ZLIB/IJG parms * */
26/* * - added tracestrings for global PLTE,tRNS,bKGD * */
27/* * 0.5.2 - 05/30/2000 - G.Juyn * */
28/* * - added tracestrings for image-object promotion * */
29/* * - added tracestrings for delta-image processing * */
30/* * 0.5.2 - 06/02/2000 - G.Juyn * */
31/* * - added tracestrings for getalphaline callback * */
32/* * 0.5.2 - 06/05/2000 - G.Juyn * */
33/* * - added tracestring for RGB8_A8 canvasstyle * */
34/* * 0.5.2 - 06/06/2000 - G.Juyn * */
35/* * - added tracestring for mng_read_resume HLAPI function * */
36/* * * */
37/* * 0.5.3 - 06/21/2000 - G.Juyn * */
38/* * - added tracestrings for get/set speedtype * */
39/* * - added tracestring for get imagelevel * */
40/* * 0.5.3 - 06/22/2000 - G.Juyn * */
41/* * - added tracestring for delta-image processing * */
42/* * - added tracestrings for PPLT chunk processing * */
43/* * * */
44/* * 0.9.1 - 07/07/2000 - G.Juyn * */
45/* * - added tracecodes for special display processing * */
46/* * 0.9.1 - 07/08/2000 - G.Juyn * */
47/* * - added tracestring for get/set suspensionmode * */
48/* * - added tracestrings for get/set display variables * */
49/* * - added tracecode for read_databuffer (I/O-suspension) * */
50/* * 0.9.1 - 07/15/2000 - G.Juyn * */
51/* * - added tracestrings for SAVE/SEEK callbacks * */
52/* * - added tracestrings for get/set sectionbreaks * */
53/* * - added tracestring for special error routine * */
54/* * 0.9.1 - 07/19/2000 - G.Juyn * */
55/* * - added tracestring for updatemngheader * */
56/* * * */
57/* * 0.9.2 - 07/31/2000 - G.Juyn * */
58/* * - added tracestrings for status_xxxxx functions * */
59/* * 0.9.2 - 08/05/2000 - G.Juyn * */
60/* * - changed file-prefixes * */
61/* * - added tracestring for updatemngsimplicity * */
62/* * * */
63/* * 0.9.3 - 08/26/2000 - G.Juyn * */
64/* * - added MAGN chunk * */
65/* * 0.9.3 - 09/07/2000 - G.Juyn * */
66/* * - added support for new filter_types * */
67/* * 0.9.3 - 10/10/2000 - G.Juyn * */
68/* * - added support for alpha-depth prediction * */
69/* * 0.9.3 - 10/11/2000 - G.Juyn * */
70/* * - added JDAA chunk * */
71/* * - added support for nEED * */
72/* * 0.9.3 - 10/16/2000 - G.Juyn * */
73/* * - added functions to retrieve PNG/JNG specific header-info * */
74/* * - added optional support for bKGD for PNG images * */
75/* * 0.9.3 - 10/17/2000 - G.Juyn * */
76/* * - added callback to process non-critical unknown chunks * */
77/* * - added routine to discard "invalid" objects * */
78/* * 0.9.3 - 10/19/2000 - G.Juyn * */
79/* * - implemented delayed delta-processing * */
80/* * 0.9.3 - 10/20/2000 - G.Juyn * */
81/* * - added get/set for bKGD preference setting * */
82/* * 0.9.3 - 10/21/2000 - G.Juyn * */
83/* * - added get function for interlace/progressive display * */
84/* * * */
85/* * 0.9.4 - 1/18/2001 - G.Juyn * */
86/* * - added "new" MAGN methods 3, 4 & 5 * */
87/* * * */
88/* * 1.0.1 - 02/08/2001 - G.Juyn * */
89/* * - added MEND processing callback * */
90/* * 1.0.1 - 04/21/2001 - G.Juyn (code by G.Kelly) * */
91/* * - added BGRA8 canvas with premultiplied alpha * */
92/* * 1.0.1 - 05/02/2001 - G.Juyn * */
93/* * - added "default" sRGB generation (Thanks Marti!) * */
94/* * * */
95/* * 1.0.2 - 06/23/2001 - G.Juyn * */
96/* * - added optimization option for MNG-video playback * */
97/* * - added processterm callback * */
98/* * 1.0.2 - 06/25/2001 - G.Juyn * */
99/* * - added option to turn off progressive refresh * */
100/* * * */
101/* * 1.0.3 - 08/06/2001 - G.Juyn * */
102/* * - added get function for last processed BACK chunk * */
103/* * * */
104/* * 1.0.5 - 08/15/2002 - G.Juyn * */
105/* * - completed PROM support * */
106/* * - completed delta-image support * */
107/* * 1.0.5 - 08/19/2002 - G.Juyn * */
108/* * - B597134 - libmng pollutes the linker namespace * */
109/* * - added HLAPI function to copy chunks * */
110/* * 1.0.5 - 09/14/2002 - G.Juyn * */
111/* * - added event handling for dynamic MNG * */
112/* * 1.0.5 - 09/20/2002 - G.Juyn * */
113/* * - added support for PAST * */
114/* * 1.0.5 - 09/22/2002 - G.Juyn * */
115/* * - added bgrx8 canvas (filler byte) * */
116/* * 1.0.5 - 09/23/2002 - G.Juyn * */
117/* * - added in-memory color-correction of abstract images * */
118/* * - added compose over/under routines for PAST processing * */
119/* * - added flip & tile routines for PAST processing * */
120/* * 1.0.5 - 10/09/2002 - G.Juyn * */
121/* * - fixed trace-constants for PAST chunk * */
122/* * 1.0.5 - 11/07/2002 - G.Juyn * */
123/* * - added support to get totals after mng_read() * */
124/* * * */
125/* * 1.0.6 - 07/07/2003 - G.R-P * */
126/* * - added conditionals around JNG and Delta-PNG code * */
127/* * 1.0.6 - 07/14/2003 - G.R-P * */
128/* * - added conditionals around various unused functions * */
129/* * 1.0.6 - 07/29/2003 - G.R-P * */
130/* * - added conditionals around PAST chunk support * */
131/* * * */
132/* * 1.0.7 - 11/27/2003 - R.A * */
133/* * - added CANVAS_RGB565 and CANVAS_BGR565 * */
134/* * 1.0.7 - 01/25/2004 - J.S * */
135/* * - added premultiplied alpha canvas' for RGBA, ARGB, ABGR * */
136/* * 1.0.7 - 03/07/2004 - G. Randers-Pehrson * */
137/* * - put gamma, cms-related declarations inside #ifdef * */
138/* * 1.0.7 - 03/10/2004 - G.R-P * */
139/* * - added conditionals around openstream/closestream * */
140/* * * */
141/* * 1.0.8 - 04/02/2004 - G.Juyn * */
142/* * - added CRC existence & checking flags * */
143/* * 1.0.8 - 04/11/2004 - G.Juyn * */
144/* * - added data-push mechanisms for specialized decoders * */
145/* * * */
146/* * 1.0.9 - 10/03/2004 - G.Juyn * */
147/* * - added function to retrieve current FRAM delay * */
148/* * 1.0.9 - 10/14/2004 - G.Juyn * */
149/* * - added bgr565_a8 canvas-style (thanks to J. Elvander) * */
150/* * * */
151/* * 1.0.10 - 04/08/2007 - G.Juyn * */
152/* * - added support for mPNG proposal * */
153/* * 1.0.10 - 07/06/2007 - G.R-P bugfix by Lucas Quintana * */
154/* * * */
155/* ************************************************************************** */
156
157#include "libmng.h"
158#include "libmng_data.h"
159#include "libmng_error.h"
160#include "libmng_trace.h"
161#ifdef __BORLANDC__
162#pragma hdrstop
163#endif
164
165#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
166#pragma option -A /* force ANSI-C */
167#endif
168
169/* ************************************************************************** */
170
171#ifdef MNG_INCLUDE_TRACE_PROCS
172
173/* ************************************************************************** */
174
175#ifdef MNG_INCLUDE_TRACE_STRINGS
176MNG_LOCAL mng_trace_entry const trace_table [] =
177 {
178 {MNG_FN_INITIALIZE, "initialize"},
179 {MNG_FN_RESET, "reset"},
180 {MNG_FN_CLEANUP, "cleanup"},
181 {MNG_FN_READ, "read"},
182 {MNG_FN_WRITE, "write"},
183 {MNG_FN_CREATE, "create"},
184 {MNG_FN_READDISPLAY, "readdisplay"},
185 {MNG_FN_DISPLAY, "display"},
186 {MNG_FN_DISPLAY_RESUME, "display_resume"},
187 {MNG_FN_DISPLAY_FREEZE, "display_freeze"},
188 {MNG_FN_DISPLAY_RESET, "display_reset"},
189#ifndef MNG_NO_DISPLAY_GO_SUPPORTED
190 {MNG_FN_DISPLAY_GOFRAME, "display_goframe"},
191 {MNG_FN_DISPLAY_GOLAYER, "display_golayer"},
192 {MNG_FN_DISPLAY_GOTIME, "display_gotime"},
193#endif
194 {MNG_FN_GETLASTERROR, "getlasterror"},
195 {MNG_FN_READ_RESUME, "read_resume"},
196 {MNG_FN_TRAPEVENT, "trapevent"},
197 {MNG_FN_READ_PUSHDATA, "read_pushdata"},
198 {MNG_FN_READ_PUSHSIG, "read_pushsig"},
199 {MNG_FN_READ_PUSHCHUNK, "read_pushchunk"},
200
201 {MNG_FN_SETCB_MEMALLOC, "setcb_memalloc"},
202 {MNG_FN_SETCB_MEMFREE, "setcb_memfree"},
203 {MNG_FN_SETCB_READDATA, "setcb_readdata"},
204 {MNG_FN_SETCB_WRITEDATA, "setcb_writedata"},
205 {MNG_FN_SETCB_ERRORPROC, "setcb_errorproc"},
206 {MNG_FN_SETCB_TRACEPROC, "setcb_traceproc"},
207 {MNG_FN_SETCB_PROCESSHEADER, "setcb_processheader"},
208 {MNG_FN_SETCB_PROCESSTEXT, "setcb_processtext"},
209 {MNG_FN_SETCB_GETCANVASLINE, "setcb_getcanvasline"},
210 {MNG_FN_SETCB_GETBKGDLINE, "setcb_getbkgdline"},
211 {MNG_FN_SETCB_REFRESH, "setcb_refresh"},
212 {MNG_FN_SETCB_GETTICKCOUNT, "setcb_gettickcount"},
213 {MNG_FN_SETCB_SETTIMER, "setcb_settimer"},
214 {MNG_FN_SETCB_PROCESSGAMMA, "setcb_processgamma"},
215 {MNG_FN_SETCB_PROCESSCHROMA, "setcb_processchroma"},
216 {MNG_FN_SETCB_PROCESSSRGB, "setcb_processsrgb"},
217 {MNG_FN_SETCB_PROCESSICCP, "setcb_processiccp"},
218 {MNG_FN_SETCB_PROCESSAROW, "setcb_processarow"},
219#ifndef MNG_NO_OPEN_CLOSE_STREAM
220 {MNG_FN_SETCB_OPENSTREAM, "setcb_openstream"},
221 {MNG_FN_SETCB_CLOSESTREAM, "setcb_closestream"},
222#endif
223 {MNG_FN_SETCB_GETALPHALINE, "setcb_getalphaline"},
224 {MNG_FN_SETCB_PROCESSSAVE, "setcb_processsave"},
225 {MNG_FN_SETCB_PROCESSSEEK, "setcb_processseek"},
226 {MNG_FN_SETCB_PROCESSNEED, "setcb_processneed"},
227 {MNG_FN_SETCB_PROCESSUNKNOWN, "setcb_processunknown"},
228 {MNG_FN_SETCB_PROCESSMEND, "setcb_processmend"},
229 {MNG_FN_SETCB_PROCESSTERM, "setcb_processterm"},
230 {MNG_FN_SETCB_RELEASEDATA, "setcb_releasedata"},
231
232 {MNG_FN_GETCB_MEMALLOC, "getcb_memalloc"},
233 {MNG_FN_GETCB_MEMFREE, "getcb_memfree"},
234 {MNG_FN_GETCB_READDATA, "getcb_readdata,"},
235 {MNG_FN_GETCB_WRITEDATA, "getcb_writedata"},
236 {MNG_FN_GETCB_ERRORPROC, "getcb_errorproc"},
237 {MNG_FN_GETCB_TRACEPROC, "getcb_traceproc"},
238 {MNG_FN_GETCB_PROCESSHEADER, "getcb_processheader"},
239 {MNG_FN_GETCB_PROCESSTEXT, "getcb_processtext"},
240 {MNG_FN_GETCB_GETCANVASLINE, "getcb_getcanvasline"},
241 {MNG_FN_GETCB_GETBKGDLINE, "getcb_getbkgdline"},
242 {MNG_FN_GETCB_REFRESH, "getcb_refresh"},
243 {MNG_FN_GETCB_GETTICKCOUNT, "getcb_gettickcount"},
244 {MNG_FN_GETCB_SETTIMER, "getcb_settimer"},
245 {MNG_FN_GETCB_PROCESSGAMMA, "getcb_processgamma"},
246 {MNG_FN_GETCB_PROCESSCHROMA, "getcb_processchroma"},
247 {MNG_FN_GETCB_PROCESSSRGB, "getcb_processsrgb"},
248 {MNG_FN_GETCB_PROCESSICCP, "getcb_processiccp"},
249 {MNG_FN_GETCB_PROCESSAROW, "getcb_processarow"},
250#ifndef MNG_NO_OPEN_CLOSE_STREAM
251 {MNG_FN_GETCB_OPENSTREAM, "getcb_openstream"},
252 {MNG_FN_GETCB_CLOSESTREAM, "getcb_closestream"},
253#endif
254 {MNG_FN_GETCB_GETALPHALINE, "getcb_getalphaline"},
255 {MNG_FN_GETCB_PROCESSSAVE, "getcb_processsave"},
256 {MNG_FN_GETCB_PROCESSSEEK, "getcb_processseek"},
257 {MNG_FN_GETCB_PROCESSNEED, "getcb_processneed"},
258 {MNG_FN_GETCB_PROCESSUNKNOWN, "getcb_processunknown"},
259 {MNG_FN_GETCB_PROCESSMEND, "getcb_processmend"},
260 {MNG_FN_GETCB_PROCESSTERM, "getcb_processterm"},
261 {MNG_FN_GETCB_RELEASEDATA, "getcb_releasedata"},
262
263 {MNG_FN_SET_USERDATA, "set_userdata"},
264 {MNG_FN_SET_CANVASSTYLE, "set_canvasstyle"},
265 {MNG_FN_SET_BKGDSTYLE, "set_bkgdstyle"},
266 {MNG_FN_SET_BGCOLOR, "set_bgcolor"},
267 {MNG_FN_SET_STORECHUNKS, "set_storechunks"},
268#if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
269 {MNG_FN_SET_VIEWGAMMA, "set_viewgamma"},
270#ifndef MNG_NO_DFLT_INFO
271 {MNG_FN_SET_DISPLAYGAMMA, "set_displaygamma"},
272#endif
273 {MNG_FN_SET_DFLTIMGGAMMA, "set_dfltimggamma"},
274#endif
275 {MNG_FN_SET_SRGB, "set_srgb"},
276 {MNG_FN_SET_OUTPUTPROFILE, "set_outputprofile"},
277 {MNG_FN_SET_SRGBPROFILE, "set_srgbprofile"},
278#ifndef MNG_SKIP_MAXCANVAS
279 {MNG_FN_SET_MAXCANVASWIDTH, "set_maxcanvaswidth"},
280 {MNG_FN_SET_MAXCANVASHEIGHT, "set_maxcanvasheight"},
281 {MNG_FN_SET_MAXCANVASSIZE, "set_maxcanvassize"},
282#endif
283#ifndef MNG_NO_ACCESS_ZLIB
284 {MNG_FN_SET_ZLIB_LEVEL, "set_zlib_level"},
285 {MNG_FN_SET_ZLIB_METHOD, "set_zlib_method"},
286 {MNG_FN_SET_ZLIB_WINDOWBITS, "set_zlib_windowbits"},
287 {MNG_FN_SET_ZLIB_MEMLEVEL, "set_zlib_memlevel"},
288 {MNG_FN_SET_ZLIB_STRATEGY, "set_zlib_strategy"},
289 {MNG_FN_SET_ZLIB_MAXIDAT, "set_zlib_maxidat"},
290#endif
291#ifndef MNG_NO_ACCESS_JPEG
292 {MNG_FN_SET_JPEG_DCTMETHOD, "set_jpeg_dctmethod"},
293 {MNG_FN_SET_JPEG_QUALITY, "set_jpeg_quality"},
294 {MNG_FN_SET_JPEG_SMOOTHING, "set_jpeg_smoothing"},
295 {MNG_FN_SET_JPEG_PROGRESSIVE, "set_jpeg_progressive"},
296 {MNG_FN_SET_JPEG_OPTIMIZED, "set_jpeg_optimized"},
297 {MNG_FN_SET_JPEG_MAXJDAT, "set_jpeg_maxjdat"},
298#endif
299 {MNG_FN_SET_SPEED, "set_speed"},
300 {MNG_FN_SET_SUSPENSIONMODE, "set_suspensionmode"},
301 {MNG_FN_SET_SECTIONBREAKS, "set_sectionbreaks"},
302 {MNG_FN_SET_USEBKGD, "set_usebkgd"},
303 {MNG_FN_SET_OUTPUTPROFILE2, "set_outputprofile2"},
304 {MNG_FN_SET_SRGBPROFILE2, "set_srgbprofile2"},
305 {MNG_FN_SET_OUTPUTSRGB, "set_outputsrgb"},
306 {MNG_FN_SET_SRGBIMPLICIT, "set_srgbimplicit"},
307 {MNG_FN_SET_CACHEPLAYBACK, "set_cacheplayback"},
308 {MNG_FN_SET_DOPROGRESSIVE, "set_doprogressive"},
309 {MNG_FN_SET_CRCMODE, "set_crcmode"},
310
311 {MNG_FN_GET_USERDATA, "get_userdata"},
312 {MNG_FN_GET_SIGTYPE, "get_sigtype"},
313 {MNG_FN_GET_IMAGETYPE, "get_imagetype"},
314 {MNG_FN_GET_IMAGEWIDTH, "get_imagewidth"},
315 {MNG_FN_GET_IMAGEHEIGHT, "get_imageheight"},
316 {MNG_FN_GET_TICKS, "get_ticks"},
317 {MNG_FN_GET_FRAMECOUNT, "get_framecount"},
318 {MNG_FN_GET_LAYERCOUNT, "get_layercount"},
319 {MNG_FN_GET_PLAYTIME, "get_playtime"},
320 {MNG_FN_GET_SIMPLICITY, "get_simplicity"},
321 {MNG_FN_GET_CANVASSTYLE, "get_canvasstyle"},
322 {MNG_FN_GET_BKGDSTYLE, "get_bkgdstyle"},
323 {MNG_FN_GET_BGCOLOR, "get_bgcolor"},
324 {MNG_FN_GET_STORECHUNKS, "get_storechunks"},
325#if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
326 {MNG_FN_GET_VIEWGAMMA, "get_viewgamma"},
327 {MNG_FN_GET_DISPLAYGAMMA, "get_displaygamma"},
328#ifndef MNG_NO_DFLT_INFO
329 {MNG_FN_GET_DFLTIMGGAMMA, "get_dfltimggamma"},
330#endif
331#endif
332 {MNG_FN_GET_SRGB, "get_srgb"},
333#ifndef MNG_SKIP_MAXCANVAS
334 {MNG_FN_GET_MAXCANVASWIDTH, "get_maxcanvaswidth"},
335 {MNG_FN_GET_MAXCANVASHEIGHT, "get_maxcanvasheight"},
336#endif
337#ifndef MNG_NO_ACCESS_ZLIB
338 {MNG_FN_GET_ZLIB_LEVEL, "get_zlib_level"},
339 {MNG_FN_GET_ZLIB_METHOD, "get_zlib_method"},
340 {MNG_FN_GET_ZLIB_WINDOWBITS, "get_zlib_windowbits"},
341 {MNG_FN_GET_ZLIB_MEMLEVEL, "get_zlib_memlevel"},
342 {MNG_FN_GET_ZLIB_STRATEGY, "get_zlib_strategy"},
343 {MNG_FN_GET_ZLIB_MAXIDAT, "get_zlib_maxidat"},
344#endif
345#ifndef MNG_NO_ACCESS_JPEG
346 {MNG_FN_GET_JPEG_DCTMETHOD, "get_jpeg_dctmethod"},
347 {MNG_FN_GET_JPEG_QUALITY, "get_jpeg_quality"},
348 {MNG_FN_GET_JPEG_SMOOTHING, "get_jpeg_smoothing"},
349 {MNG_FN_GET_JPEG_PROGRESSIVE, "get_jpeg_progressive"},
350 {MNG_FN_GET_JPEG_OPTIMIZED, "get_jpeg_optimized"},
351 {MNG_FN_GET_JPEG_MAXJDAT, "get_jpeg_maxjdat"},
352#endif
353 {MNG_FN_GET_SPEED, "get_speed"},
354 {MNG_FN_GET_IMAGELEVEL, "get_imagelevel"},
355 {MNG_FN_GET_SUSPENSIONMODE, "get_speed"},
356 {MNG_FN_GET_STARTTIME, "get_starttime"},
357 {MNG_FN_GET_RUNTIME, "get_runtime"},
358#ifndef MNG_NO_CURRENT_INFO
359 {MNG_FN_GET_CURRENTFRAME, "get_currentframe"},
360 {MNG_FN_GET_CURRENTLAYER, "get_currentlayer"},
361 {MNG_FN_GET_CURRENTPLAYTIME, "get_currentplaytime"},
362#endif
363 {MNG_FN_GET_SECTIONBREAKS, "get_sectionbreaks"},
364 {MNG_FN_GET_ALPHADEPTH, "get_alphadepth"},
365 {MNG_FN_GET_BITDEPTH, "get_bitdepth"},
366 {MNG_FN_GET_COLORTYPE, "get_colortype"},
367 {MNG_FN_GET_COMPRESSION, "get_compression"},
368 {MNG_FN_GET_FILTER, "get_filter"},
369 {MNG_FN_GET_INTERLACE, "get_interlace"},
370 {MNG_FN_GET_ALPHABITDEPTH, "get_alphabitdepth"},
371 {MNG_FN_GET_ALPHACOMPRESSION, "get_alphacompression"},
372 {MNG_FN_GET_ALPHAFILTER, "get_alphafilter"},
373 {MNG_FN_GET_ALPHAINTERLACE, "get_alphainterlace"},
374 {MNG_FN_GET_USEBKGD, "get_usebkgd"},
375 {MNG_FN_GET_REFRESHPASS, "get_refreshpass"},
376 {MNG_FN_GET_CACHEPLAYBACK, "get_cacheplayback"},
377 {MNG_FN_GET_DOPROGRESSIVE, "get_doprogressive"},
378 {MNG_FN_GET_LASTBACKCHUNK, "get_lastbackchunk"},
379 {MNG_FN_GET_LASTSEEKNAME, "get_lastseekname"},
380#ifndef MNG_NO_CURRENT_INFO
381 {MNG_FN_GET_TOTALFRAMES, "get_totalframes"},
382 {MNG_FN_GET_TOTALLAYERS, "get_totallayers"},
383 {MNG_FN_GET_TOTALPLAYTIME, "get_totalplaytime"},
384#endif
385 {MNG_FN_GET_CRCMODE, "get_crcmode"},
386 {MNG_FN_GET_CURRFRAMDELAY, "get_currframdelay"},
387
388 {MNG_FN_STATUS_ERROR, "status_error"},
389 {MNG_FN_STATUS_READING, "status_reading"},
390 {MNG_FN_STATUS_SUSPENDBREAK, "status_suspendbreak"},
391 {MNG_FN_STATUS_CREATING, "status_creating"},
392 {MNG_FN_STATUS_WRITING, "status_writing"},
393 {MNG_FN_STATUS_DISPLAYING, "status_displaying"},
394 {MNG_FN_STATUS_RUNNING, "status_running"},
395 {MNG_FN_STATUS_TIMERBREAK, "status_timerbreak"},
396 {MNG_FN_STATUS_DYNAMIC, "status_dynamic"},
397 {MNG_FN_STATUS_RUNNINGEVENT, "status_runningevent"},
398
399 {MNG_FN_ITERATE_CHUNKS, "iterate_chunks"},
400 {MNG_FN_COPY_CHUNK, "copy_chunk"},
401
402 {MNG_FN_GETCHUNK_IHDR, "getchunk_ihdr"},
403 {MNG_FN_GETCHUNK_PLTE, "getchunk_plte"},
404 {MNG_FN_GETCHUNK_IDAT, "getchunk_idat"},
405 {MNG_FN_GETCHUNK_IEND, "getchunk_iend"},
406 {MNG_FN_GETCHUNK_TRNS, "getchunk_trns"},
407#ifndef MNG_SKIPCHUNK_gAMA
408 {MNG_FN_GETCHUNK_GAMA, "getchunk_gama"},
409#endif
410#ifndef MNG_SKIPCHUNK_cHRM
411 {MNG_FN_GETCHUNK_CHRM, "getchunk_chrm"},
412#endif
413#ifndef MNG_SKIPCHUNK_sRGB
414 {MNG_FN_GETCHUNK_SRGB, "getchunk_srgb"},
415#endif
416#ifndef MNG_SKIPCHUNK_iCCP
417 {MNG_FN_GETCHUNK_ICCP, "getchunk_iccp"},
418#endif
419#ifndef MNG_SKIPCHUNK_tEXt
420 {MNG_FN_GETCHUNK_TEXT, "getchunk_text"},
421#endif
422#ifndef MNG_SKIPCHUNK_zTXt
423 {MNG_FN_GETCHUNK_ZTXT, "getchunk_ztxt"},
424#endif
425#ifndef MNG_SKIPCHUNK_iTXt
426 {MNG_FN_GETCHUNK_ITXT, "getchunk_itxt"},
427#endif
428#ifndef MNG_SKIPCHUNK_bKGD
429 {MNG_FN_GETCHUNK_BKGD, "getchunk_bkgd"},
430#endif
431#ifndef MNG_SKIPCHUNK_pHYs
432 {MNG_FN_GETCHUNK_PHYS, "getchunk_phys"},
433#endif
434#ifndef MNG_SKIPCHUNK_sBIT
435 {MNG_FN_GETCHUNK_SBIT, "getchunk_sbit"},
436#endif
437#ifndef MNG_SKIPCHUNK_sPLT
438 {MNG_FN_GETCHUNK_SPLT, "getchunk_splt"},
439#endif
440#ifndef MNG_SKIPCHUNK_hIST
441 {MNG_FN_GETCHUNK_HIST, "getchunk_hist"},
442#endif
443#ifndef MNG_SKIPCHUNK_tIME
444 {MNG_FN_GETCHUNK_TIME, "getchunk_time"},
445#endif
446 {MNG_FN_GETCHUNK_MHDR, "getchunk_mhdr"},
447 {MNG_FN_GETCHUNK_MEND, "getchunk_mend"},
448#ifndef MNG_SKIPCHUNK_LOOP
449 {MNG_FN_GETCHUNK_LOOP, "getchunk_loop"},
450 {MNG_FN_GETCHUNK_ENDL, "getchunk_endl"},
451#endif
452 {MNG_FN_GETCHUNK_DEFI, "getchunk_defi"},
453#ifndef MNG_SKIPCHUNK_BASI
454 {MNG_FN_GETCHUNK_BASI, "getchunk_basi"},
455#endif
456 {MNG_FN_GETCHUNK_CLON, "getchunk_clon"},
457#ifndef MNG_SKIPCHUNK_PAST
458 {MNG_FN_GETCHUNK_PAST, "getchunk_past"},
459#endif
460 {MNG_FN_GETCHUNK_DISC, "getchunk_disc"},
461 {MNG_FN_GETCHUNK_BACK, "getchunk_back"},
462 {MNG_FN_GETCHUNK_FRAM, "getchunk_fram"},
463 {MNG_FN_GETCHUNK_MOVE, "getchunk_move"},
464 {MNG_FN_GETCHUNK_CLIP, "getchunk_clip"},
465 {MNG_FN_GETCHUNK_SHOW, "getchunk_show"},
466 {MNG_FN_GETCHUNK_TERM, "getchunk_term"},
467#ifndef MNG_SKIPCHUNK_SAVE
468 {MNG_FN_GETCHUNK_SAVE, "getchunk_save"},
469#endif
470#ifndef MNG_SKIPCHUNK_SEEK
471 {MNG_FN_GETCHUNK_SEEK, "getchunk_seek"},
472#endif
473#ifndef MNG_SKIPCHUNK_eXPI
474 {MNG_FN_GETCHUNK_EXPI, "getchunk_expi"},
475#endif
476#ifndef MNG_SKIPCHUNK_fPRI
477 {MNG_FN_GETCHUNK_FPRI, "getchunk_fpri"},
478#endif
479#ifndef MNG_SKIPCHUNK_nEED
480 {MNG_FN_GETCHUNK_NEED, "getchunk_need"},
481#endif
482#ifndef MNG_SKIPCHUNK_pHYg
483 {MNG_FN_GETCHUNK_PHYG, "getchunk_phyg"},
484#endif
485#ifdef MNG_INCLUDE_JNG
486 {MNG_FN_GETCHUNK_JHDR, "getchunk_jhdr"},
487 {MNG_FN_GETCHUNK_JDAT, "getchunk_jdat"},
488 {MNG_FN_GETCHUNK_JSEP, "getchunk_jsep"},
489#endif
490#ifndef MNG_NO_DELTA_PNG
491 {MNG_FN_GETCHUNK_DHDR, "getchunk_dhdr"},
492 {MNG_FN_GETCHUNK_PROM, "getchunk_prom"},
493 {MNG_FN_GETCHUNK_IPNG, "getchunk_ipng"},
494 {MNG_FN_GETCHUNK_PPLT, "getchunk_pplt"},
495#ifdef MNG_INCLUDE_JNG
496 {MNG_FN_GETCHUNK_IJNG, "getchunk_ijng"},
497#endif
498#ifndef MNG_SKIPCHUNK_DROP
499 {MNG_FN_GETCHUNK_DROP, "getchunk_drop"},
500#endif
501#ifndef MNG_SKIPCHUNK_DBYK
502 {MNG_FN_GETCHUNK_DBYK, "getchunk_dbyk"},
503#endif
504#ifndef MNG_SKIPCHUNK_ORDR
505 {MNG_FN_GETCHUNK_ORDR, "getchunk_ordr"},
506#endif
507#endif
508 {MNG_FN_GETCHUNK_UNKNOWN, "getchunk_unknown"},
509 {MNG_FN_GETCHUNK_MAGN, "getchunk_magn"},
510#ifdef MNG_INCLUDE_JNG
511 {MNG_FN_GETCHUNK_JDAA, "getchunk_jdaa"},
512#endif
513#ifndef MNG_SKIPCHUNK_evNT
514 {MNG_FN_GETCHUNK_EVNT, "getchunk_evnt"},
515#endif
516#ifdef MNG_INCLUDE_MPNG_PROPOSAL
517 {MNG_FN_GETCHUNK_MPNG, "getchunk_mpng"},
518#endif
519
520#ifndef MNG_SKIPCHUNK_PAST
521 {MNG_FN_GETCHUNK_PAST_SRC, "getchunk_past_src"},
522#endif
523#ifndef MNG_SKIPCHUNK_SAVE
524 {MNG_FN_GETCHUNK_SAVE_ENTRY, "getchunk_save_entry"},
525#endif
526#ifndef MNG_NO_DELTA_PNG
527 {MNG_FN_GETCHUNK_PPLT_ENTRY, "getchunk_pplt_entry"},
528 {MNG_FN_GETCHUNK_ORDR_ENTRY, "getchunk_ordr_entry"},
529#endif
530#ifndef MNG_SKIPCHUNK_evNT
531 {MNG_FN_GETCHUNK_EVNT_ENTRY, "getchunk_evnt_entry"},
532#endif
533#ifdef MNG_INCLUDE_MPNG_PROPOSAL
534 {MNG_FN_GETCHUNK_MPNG_FRAME, "getchunk_mpng_frame"},
535#endif
536
537 {MNG_FN_PUTCHUNK_IHDR, "putchunk_ihdr"},
538 {MNG_FN_PUTCHUNK_PLTE, "putchunk_plte"},
539 {MNG_FN_PUTCHUNK_IDAT, "putchunk_idat"},
540 {MNG_FN_PUTCHUNK_IEND, "putchunk_iend"},
541 {MNG_FN_PUTCHUNK_TRNS, "putchunk_trns"},
542#ifndef MNG_SKIPCHUNK_gAMA
543 {MNG_FN_PUTCHUNK_GAMA, "putchunk_gama"},
544#endif
545#ifndef MNG_SKIPCHUNK_cHRM
546 {MNG_FN_PUTCHUNK_CHRM, "putchunk_chrm"},
547#endif
548#ifndef MNG_SKIPCHUNK_sRGB
549 {MNG_FN_PUTCHUNK_SRGB, "putchunk_srgb"},
550#endif
551#ifndef MNG_SKIPCHUNK_iCCP
552 {MNG_FN_PUTCHUNK_ICCP, "putchunk_iccp"},
553#endif
554#ifndef MNG_SKIPCHUNK_tEXt
555 {MNG_FN_PUTCHUNK_TEXT, "putchunk_text"},
556#endif
557#ifndef MNG_SKIPCHUNK_zTXt
558 {MNG_FN_PUTCHUNK_ZTXT, "putchunk_ztxt"},
559#endif
560#ifndef MNG_SKIPCHUNK_iTXt
561 {MNG_FN_PUTCHUNK_ITXT, "putchunk_itxt"},
562#endif
563#ifndef MNG_SKIPCHUNK_bKGD
564 {MNG_FN_PUTCHUNK_BKGD, "putchunk_bkgd"},
565#endif
566#ifndef MNG_SKIPCHUNK_pHYs
567 {MNG_FN_PUTCHUNK_PHYS, "putchunk_phys"},
568#endif
569#ifndef MNG_SKIPCHUNK_sBIT
570 {MNG_FN_PUTCHUNK_SBIT, "putchunk_sbit"},
571#endif
572#ifndef MNG_SKIPCHUNK_sPLT
573 {MNG_FN_PUTCHUNK_SPLT, "putchunk_splt"},
574#endif
575#ifndef MNG_SKIPCHUNK_hIST
576 {MNG_FN_PUTCHUNK_HIST, "putchunk_hist"},
577#endif
578#ifndef MNG_SKIPCHUNK_tIME
579 {MNG_FN_PUTCHUNK_TIME, "putchunk_time"},
580#endif
581 {MNG_FN_PUTCHUNK_MHDR, "putchunk_mhdr"},
582 {MNG_FN_PUTCHUNK_MEND, "putchunk_mend"},
583 {MNG_FN_PUTCHUNK_LOOP, "putchunk_loop"},
584 {MNG_FN_PUTCHUNK_ENDL, "putchunk_endl"},
585 {MNG_FN_PUTCHUNK_DEFI, "putchunk_defi"},
586 {MNG_FN_PUTCHUNK_BASI, "putchunk_basi"},
587 {MNG_FN_PUTCHUNK_CLON, "putchunk_clon"},
588#ifndef MNG_SKIPCHUNK_PAST
589 {MNG_FN_PUTCHUNK_PAST, "putchunk_past"},
590#endif
591 {MNG_FN_PUTCHUNK_DISC, "putchunk_disc"},
592 {MNG_FN_PUTCHUNK_BACK, "putchunk_back"},
593 {MNG_FN_PUTCHUNK_FRAM, "putchunk_fram"},
594 {MNG_FN_PUTCHUNK_MOVE, "putchunk_move"},
595 {MNG_FN_PUTCHUNK_CLIP, "putchunk_clip"},
596 {MNG_FN_PUTCHUNK_SHOW, "putchunk_show"},
597 {MNG_FN_PUTCHUNK_TERM, "putchunk_term"},
598#ifndef MNG_SKIPCHUNK_SAVE
599 {MNG_FN_PUTCHUNK_SAVE, "putchunk_save"},
600#endif
601#ifndef MNG_SKIPCHUNK_SEEK
602 {MNG_FN_PUTCHUNK_SEEK, "putchunk_seek"},
603#endif
604#ifndef MNG_SKIPCHUNK_eXPI
605 {MNG_FN_PUTCHUNK_EXPI, "putchunk_expi"},
606#endif
607#ifndef MNG_SKIPCHUNK_fPRI
608 {MNG_FN_PUTCHUNK_FPRI, "putchunk_fpri"},
609#endif
610#ifndef MNG_SKIPCHUNK_nEED
611 {MNG_FN_PUTCHUNK_NEED, "putchunk_need"},
612#endif
613#ifndef MNG_SKIPCHUNK_pHYg
614 {MNG_FN_PUTCHUNK_PHYG, "putchunk_phyg"},
615#endif
616#ifdef MNG_INCLUDE_JNG
617 {MNG_FN_PUTCHUNK_JHDR, "putchunk_jhdr"},
618 {MNG_FN_PUTCHUNK_JDAT, "putchunk_jdat"},
619 {MNG_FN_PUTCHUNK_JSEP, "putchunk_jsep"},
620#endif
621#ifndef MNG_NO_DELTA_PNG
622 {MNG_FN_PUTCHUNK_DHDR, "putchunk_dhdr"},
623 {MNG_FN_PUTCHUNK_PROM, "putchunk_prom"},
624#ifdef MNG_INCLUDE_JNG
625 {MNG_FN_PUTCHUNK_IPNG, "putchunk_ipng"},
626#endif
627 {MNG_FN_PUTCHUNK_PPLT, "putchunk_pplt"},
628 {MNG_FN_PUTCHUNK_IJNG, "putchunk_ijng"},
629#ifndef MNG_SKIPCHUNK_DROP
630 {MNG_FN_PUTCHUNK_DROP, "putchunk_drop"},
631#endif
632#ifndef MNG_SKIPCHUNK_DBYK
633 {MNG_FN_PUTCHUNK_DBYK, "putchunk_dbyk"},
634#endif
635#ifndef MNG_SKIPCHUNK_ORDR
636 {MNG_FN_PUTCHUNK_ORDR, "putchunk_ordr"},
637#endif
638#endif
639 {MNG_FN_PUTCHUNK_UNKNOWN, "putchunk_unknown"},
640 {MNG_FN_PUTCHUNK_MAGN, "putchunk_magn"},
641 {MNG_FN_PUTCHUNK_JDAA, "putchunk_jdaa"},
642#ifndef MNG_SKIPCHUNK_evNT
643 {MNG_FN_PUTCHUNK_EVNT, "putchunk_evnt"},
644#endif
645#ifdef MNG_INCLUDE_MPNG_PROPOSAL
646 {MNG_FN_PUTCHUNK_MPNG, "putchunk_mpng"},
647#endif
648
649#ifndef MNG_SKIPCHUNK_PAST
650 {MNG_FN_PUTCHUNK_PAST_SRC, "putchunk_past_src"},
651#endif
652#ifndef MNG_SKIPCHUNK_SAVE
653 {MNG_FN_PUTCHUNK_SAVE_ENTRY, "putchunk_save_entry"},
654#endif
655#ifndef MNG_NO_DELTA_PNG
656 {MNG_FN_PUTCHUNK_PPLT_ENTRY, "putchunk_pplt_entry"},
657#ifndef MNG_SKIPCHUNK_ORDR
658 {MNG_FN_PUTCHUNK_ORDR_ENTRY, "putchunk_ordr_entry"},
659#endif
660#endif
661#ifndef MNG_SKIPCHUNK_evNT
662 {MNG_FN_PUTCHUNK_EVNT_ENTRY, "putchunk_evnt_entry"},
663#endif
664#ifdef MNG_INCLUDE_MPNG_PROPOSAL
665 {MNG_FN_PUTCHUNK_MPNG_FRAME, "putchunk_mpng_frame"},
666#endif
667
668 {MNG_FN_GETIMGDATA_SEQ, "getimgdata_seq"},
669 {MNG_FN_GETIMGDATA_CHUNKSEQ, "getimgdata_chunkseq"},
670 {MNG_FN_GETIMGDATA_CHUNK, "getimgdata_chunk"},
671
672 {MNG_FN_PUTIMGDATA_IHDR, "putimgdata_ihdr"},
673#ifdef MNG_INCLUDE_JNG
674 {MNG_FN_PUTIMGDATA_JHDR, "putimgdata_jhdr"},
675 {MNG_FN_PUTIMGDATA_BASI, "putimgdata_basi"},
676 {MNG_FN_PUTIMGDATA_DHDR, "putimgdata_dhdr"},
677#endif
678
679 {MNG_FN_UPDATEMNGHEADER, "updatemngheader"},
680 {MNG_FN_UPDATEMNGSIMPLICITY, "updatemngsimplicity"},
681
682 {MNG_FN_PROCESS_RAW_CHUNK, "process_raw_chunk"},
683 {MNG_FN_READ_GRAPHIC, "read_graphic"},
684 {MNG_FN_DROP_CHUNKS, "drop_chunks"},
685 {MNG_FN_PROCESS_ERROR, "process_error"},
686 {MNG_FN_CLEAR_CMS, "clear_cms"},
687 {MNG_FN_DROP_OBJECTS, "drop_objects"},
688 {MNG_FN_READ_CHUNK, "read_chunk"},
689 {MNG_FN_LOAD_BKGDLAYER, "load_bkgdlayer"},
690 {MNG_FN_NEXT_FRAME, "next_frame"},
691 {MNG_FN_NEXT_LAYER, "next_layer"},
692 {MNG_FN_INTERFRAME_DELAY, "interframe_delay"},
693 {MNG_FN_DISPLAY_IMAGE, "display_image"},
694 {MNG_FN_DROP_IMGOBJECTS, "drop_imgobjects"},
695 {MNG_FN_DROP_ANIOBJECTS, "drop_aniobjects"},
696 {MNG_FN_INFLATE_BUFFER, "inflate_buffer"},
697 {MNG_FN_DEFLATE_BUFFER, "deflate_buffer"},
698 {MNG_FN_WRITE_RAW_CHUNK, "write_raw_chunk"},
699 {MNG_FN_WRITE_GRAPHIC, "write_graphic"},
700 {MNG_FN_SAVE_STATE, "save_state"},
701 {MNG_FN_RESTORE_STATE, "restore_state"},
702 {MNG_FN_DROP_SAVEDATA, "drop_savedata"},
703#ifndef MNG_NO_DELTA_PNG
704 {MNG_FN_EXECUTE_DELTA_IMAGE, "execute_delta_image"},
705#endif
706 {MNG_FN_PROCESS_DISPLAY, "process_display"},
707 {MNG_FN_CLEAR_CANVAS, "clear_canvas"},
708 {MNG_FN_READ_DATABUFFER, "read_databuffer"},
709 {MNG_FN_STORE_ERROR, "store_error"},
710 {MNG_FN_DROP_INVALID_OBJECTS, "drop_invalid_objects"},
711 {MNG_FN_RELEASE_PUSHDATA, "release_pushdata"},
712 {MNG_FN_READ_DATA, "read_data"},
713 {MNG_FN_READ_CHUNK_CRC, "read_chunk_crc"},
714 {MNG_FN_RELEASE_PUSHCHUNK, "release_pushchunk"},
715
716 {MNG_FN_DISPLAY_RGB8, "display_rgb8"},
717 {MNG_FN_DISPLAY_RGBA8, "display_rgba8"},
718 {MNG_FN_DISPLAY_ARGB8, "display_argb8"},
719 {MNG_FN_DISPLAY_BGR8, "display_bgr8"},
720 {MNG_FN_DISPLAY_BGRA8, "display_bgra8"},
721 {MNG_FN_DISPLAY_ABGR8, "display_abgr8"},
722 {MNG_FN_DISPLAY_RGB16, "display_rgb16"},
723 {MNG_FN_DISPLAY_RGBA16, "display_rgba16"},
724 {MNG_FN_DISPLAY_ARGB16, "display_argb16"},
725 {MNG_FN_DISPLAY_BGR16, "display_bgr16"},
726 {MNG_FN_DISPLAY_BGRA16, "display_bgra16"},
727 {MNG_FN_DISPLAY_ABGR16, "display_abgr16"},
728 {MNG_FN_DISPLAY_INDEX8, "display_index8"},
729 {MNG_FN_DISPLAY_INDEXA8, "display_indexa8"},
730 {MNG_FN_DISPLAY_AINDEX8, "display_aindex8"},
731 {MNG_FN_DISPLAY_GRAY8, "display_gray8"},
732 {MNG_FN_DISPLAY_GRAY16, "display_gray16"},
733 {MNG_FN_DISPLAY_GRAYA8, "display_graya8"},
734 {MNG_FN_DISPLAY_GRAYA16, "display_graya16"},
735 {MNG_FN_DISPLAY_AGRAY8, "display_agray8"},
736 {MNG_FN_DISPLAY_AGRAY16, "display_agray16"},
737 {MNG_FN_DISPLAY_DX15, "display_dx15"},
738 {MNG_FN_DISPLAY_DX16, "display_dx16"},
739 {MNG_FN_DISPLAY_RGB8_A8, "display_rgb8_a8"},
740 {MNG_FN_DISPLAY_BGRA8PM, "display_bgra8_pm"},
741 {MNG_FN_DISPLAY_BGRX8, "display_bgrx8"},
742 {MNG_FN_DISPLAY_RGB565, "display_rgb565"},
743 {MNG_FN_DISPLAY_RGBA565, "display_rgba565"},
744 {MNG_FN_DISPLAY_BGR565, "display_bgr565"},
745 {MNG_FN_DISPLAY_BGRA565, "display_bgra565"},
746 {MNG_FN_DISPLAY_RGBA8_PM, "display_rgba8_pm"},
747 {MNG_FN_DISPLAY_ARGB8_PM, "display_argb8_pm"},
748 {MNG_FN_DISPLAY_ABGR8_PM, "display_abgr8_pm"},
749 {MNG_FN_DISPLAY_BGR565_A8, "display_bgr565_a8"},
750
751 {MNG_FN_INIT_FULL_CMS, "init_full_cms"},
752 {MNG_FN_CORRECT_FULL_CMS, "correct_full_cms"},
753 {MNG_FN_INIT_GAMMA_ONLY, "init_gamma_only"},
754 {MNG_FN_CORRECT_GAMMA_ONLY, "correct_gamma_only"},
755 {MNG_FN_CORRECT_APP_CMS, "correct_app_cms"},
756 {MNG_FN_INIT_FULL_CMS_OBJ, "init_full_cms_obj"},
757 {MNG_FN_INIT_GAMMA_ONLY_OBJ, "init_gamma_only_obj"},
758 {MNG_FN_INIT_APP_CMS, "init_app_cms"},
759 {MNG_FN_INIT_APP_CMS_OBJ, "init_app_cms_obj"},
760
761 {MNG_FN_PROCESS_G1, "process_g1"},
762 {MNG_FN_PROCESS_G2, "process_g2"},
763 {MNG_FN_PROCESS_G4, "process_g4"},
764 {MNG_FN_PROCESS_G8, "process_g8"},
765 {MNG_FN_PROCESS_G16, "process_g16"},
766 {MNG_FN_PROCESS_RGB8, "process_rgb8"},
767 {MNG_FN_PROCESS_RGB16, "process_rgb16"},
768 {MNG_FN_PROCESS_IDX1, "process_idx1"},
769 {MNG_FN_PROCESS_IDX2, "process_idx2"},
770 {MNG_FN_PROCESS_IDX4, "process_idx4"},
771 {MNG_FN_PROCESS_IDX8, "process_idx8"},
772 {MNG_FN_PROCESS_GA8, "process_ga8"},
773 {MNG_FN_PROCESS_GA16, "process_ga16"},
774 {MNG_FN_PROCESS_RGBA8, "process_rgba8"},
775 {MNG_FN_PROCESS_RGBA16, "process_rgba16"},
776
777 {MNG_FN_INIT_G1_I, "init_g1_i"},
778 {MNG_FN_INIT_G2_I, "init_g2_i"},
779 {MNG_FN_INIT_G4_I, "init_g4_i"},
780 {MNG_FN_INIT_G8_I, "init_g8_i"},
781 {MNG_FN_INIT_G16_I, "init_g16_i"},
782 {MNG_FN_INIT_RGB8_I, "init_rgb8_i"},
783 {MNG_FN_INIT_RGB16_I, "init_rgb16_i"},
784 {MNG_FN_INIT_IDX1_I, "init_idx1_i"},
785 {MNG_FN_INIT_IDX2_I, "init_idx2_i"},
786 {MNG_FN_INIT_IDX4_I, "init_idx4_i"},
787 {MNG_FN_INIT_IDX8_I, "init_idx8_i"},
788 {MNG_FN_INIT_GA8_I, "init_ga8_i"},
789 {MNG_FN_INIT_GA16_I, "init_ga16_i"},
790 {MNG_FN_INIT_RGBA8_I, "init_rgba8_i"},
791 {MNG_FN_INIT_RGBA16_I, "init_rgba16_i"},
792#ifndef MNG_OPTIMIZE_FOOTPRINT_INIT
793 {MNG_FN_INIT_G1_NI, "init_g1_ni"},
794 {MNG_FN_INIT_G2_NI, "init_g2_ni"},
795 {MNG_FN_INIT_G4_NI, "init_g4_ni"},
796 {MNG_FN_INIT_G8_NI, "init_g8_ni"},
797 {MNG_FN_INIT_G16_NI, "init_g16_ni"},
798 {MNG_FN_INIT_RGB8_NI, "init_rgb8_ni"},
799 {MNG_FN_INIT_RGB16_NI, "init_rgb16_ni"},
800 {MNG_FN_INIT_IDX1_NI, "init_idx1_ni"},
801 {MNG_FN_INIT_IDX2_NI, "init_idx2_ni"},
802 {MNG_FN_INIT_IDX4_NI, "init_idx4_ni"},
803 {MNG_FN_INIT_IDX8_NI, "init_idx8_ni"},
804 {MNG_FN_INIT_GA8_NI, "init_ga8_ni"},
805 {MNG_FN_INIT_GA16_NI, "init_ga16_ni"},
806 {MNG_FN_INIT_RGBA8_NI, "init_rgba8_ni"},
807 {MNG_FN_INIT_RGBA16_NI, "init_rgba16_ni"},
808#endif
809
810 {MNG_FN_INIT_ROWPROC, "init_rowproc"},
811 {MNG_FN_NEXT_ROW, "next_row"},
812 {MNG_FN_CLEANUP_ROWPROC, "cleanup_rowproc"},
813
814 {MNG_FN_FILTER_A_ROW, "filter_a_row"},
815 {MNG_FN_FILTER_SUB, "filter_sub"},
816 {MNG_FN_FILTER_UP, "filter_up"},
817 {MNG_FN_FILTER_AVERAGE, "filter_average"},
818 {MNG_FN_FILTER_PAETH, "filter_paeth"},
819
820 {MNG_FN_INIT_ROWDIFFERING, "init_rowdiffering"},
821 {MNG_FN_DIFFER_G1, "differ_g1"},
822 {MNG_FN_DIFFER_G2, "differ_g2"},
823 {MNG_FN_DIFFER_G4, "differ_g4"},
824 {MNG_FN_DIFFER_G8, "differ_g8"},
825 {MNG_FN_DIFFER_G16, "differ_g16"},
826 {MNG_FN_DIFFER_RGB8, "differ_rgb8"},
827 {MNG_FN_DIFFER_RGB16, "differ_rgb16"},
828 {MNG_FN_DIFFER_IDX1, "differ_idx1"},
829 {MNG_FN_DIFFER_IDX2, "differ_idx2"},
830 {MNG_FN_DIFFER_IDX4, "differ_idx4"},
831 {MNG_FN_DIFFER_IDX8, "differ_idx8"},
832 {MNG_FN_DIFFER_GA8, "differ_ga8"},
833 {MNG_FN_DIFFER_GA16, "differ_ga16"},
834 {MNG_FN_DIFFER_RGBA8, "differ_rgba8"},
835 {MNG_FN_DIFFER_RGBA16, "differ_rgba16"},
836
837 {MNG_FN_CREATE_IMGDATAOBJECT, "create_imgdataobject"},
838 {MNG_FN_FREE_IMGDATAOBJECT, "free_imgdataobject"},
839 {MNG_FN_CLONE_IMGDATAOBJECT, "clone_imgdataobject"},
840 {MNG_FN_CREATE_IMGOBJECT, "create_imgobject"},
841 {MNG_FN_FREE_IMGOBJECT, "free_imgobject"},
842 {MNG_FN_FIND_IMGOBJECT, "find_imgobject"},
843 {MNG_FN_CLONE_IMGOBJECT, "clone_imgobject"},
844 {MNG_FN_RESET_OBJECTDETAILS, "reset_objectdetails"},
845 {MNG_FN_RENUM_IMGOBJECT, "renum_imgobject"},
846 {MNG_FN_PROMOTE_IMGOBJECT, "promote_imgobject"},
847 {MNG_FN_MAGNIFY_IMGOBJECT, "magnify_imgobject"},
848 {MNG_FN_COLORCORRECT_OBJECT, "colorcorrect_object"},
849
850 {MNG_FN_STORE_G1, "store_g1"},
851 {MNG_FN_STORE_G2, "store_g2"},
852 {MNG_FN_STORE_G4, "store_g4"},
853 {MNG_FN_STORE_G8, "store_g8"},
854 {MNG_FN_STORE_G16, "store_g16"},
855 {MNG_FN_STORE_RGB8, "store_rgb8"},
856 {MNG_FN_STORE_RGB16, "store_rgb16"},
857 {MNG_FN_STORE_IDX1, "store_idx1"},
858 {MNG_FN_STORE_IDX2, "store_idx2"},
859 {MNG_FN_STORE_IDX4, "store_idx4"},
860 {MNG_FN_STORE_IDX8, "store_idx8"},
861 {MNG_FN_STORE_GA8, "store_ga8"},
862 {MNG_FN_STORE_GA16, "store_ga16"},
863 {MNG_FN_STORE_RGBA8, "store_rgba8"},
864 {MNG_FN_STORE_RGBA16, "store_rgba16"},
865
866 {MNG_FN_RETRIEVE_G8, "retrieve_g8"},
867 {MNG_FN_RETRIEVE_G16, "retrieve_g16"},
868 {MNG_FN_RETRIEVE_RGB8, "retrieve_rgb8"},
869 {MNG_FN_RETRIEVE_RGB16, "retrieve_rgb16"},
870 {MNG_FN_RETRIEVE_IDX8, "retrieve_idx8"},
871 {MNG_FN_RETRIEVE_GA8, "retrieve_ga8"},
872 {MNG_FN_RETRIEVE_GA16, "retrieve_ga16"},
873 {MNG_FN_RETRIEVE_RGBA8, "retrieve_rgba8"},
874 {MNG_FN_RETRIEVE_RGBA16, "retrieve_rgba16"},
875
876#ifndef MNG_NO_DELTA_PNG
877 {MNG_FN_DELTA_G1, "delta_g1"},
878 {MNG_FN_DELTA_G2, "delta_g2"},
879 {MNG_FN_DELTA_G4, "delta_g4"},
880 {MNG_FN_DELTA_G8, "delta_g8"},
881 {MNG_FN_DELTA_G16, "delta_g16"},
882 {MNG_FN_DELTA_RGB8, "delta_rgb8"},
883 {MNG_FN_DELTA_RGB16, "delta_rgb16"},
884 {MNG_FN_DELTA_IDX1, "delta_idx1"},
885 {MNG_FN_DELTA_IDX2, "delta_idx2"},
886 {MNG_FN_DELTA_IDX4, "delta_idx4"},
887 {MNG_FN_DELTA_IDX8, "delta_idx8"},
888 {MNG_FN_DELTA_GA8, "delta_ga8"},
889 {MNG_FN_DELTA_GA16, "delta_ga16"},
890 {MNG_FN_DELTA_RGBA8, "delta_rgba8"},
891 {MNG_FN_DELTA_RGBA16, "delta_rgba16"},
892#endif
893
894 {MNG_FN_CREATE_ANI_LOOP, "create_ani_loop"},
895 {MNG_FN_CREATE_ANI_ENDL, "create_ani_endl"},
896 {MNG_FN_CREATE_ANI_DEFI, "create_ani_defi"},
897 {MNG_FN_CREATE_ANI_BASI, "create_ani_basi"},
898 {MNG_FN_CREATE_ANI_CLON, "create_ani_clon"},
899#ifndef MNG_SKIPCHUNK_PAST
900 {MNG_FN_CREATE_ANI_PAST, "create_ani_past"},
901#endif
902 {MNG_FN_CREATE_ANI_DISC, "create_ani_disc"},
903 {MNG_FN_CREATE_ANI_BACK, "create_ani_back"},
904 {MNG_FN_CREATE_ANI_FRAM, "create_ani_fram"},
905 {MNG_FN_CREATE_ANI_MOVE, "create_ani_move"},
906 {MNG_FN_CREATE_ANI_CLIP, "create_ani_clip"},
907 {MNG_FN_CREATE_ANI_SHOW, "create_ani_show"},
908 {MNG_FN_CREATE_ANI_TERM, "create_ani_term"},
909 {MNG_FN_CREATE_ANI_SAVE, "create_ani_save"},
910 {MNG_FN_CREATE_ANI_SEEK, "create_ani_seek"},
911 {MNG_FN_CREATE_ANI_GAMA, "create_ani_gama"},
912 {MNG_FN_CREATE_ANI_CHRM, "create_ani_chrm"},
913 {MNG_FN_CREATE_ANI_SRGB, "create_ani_srgb"},
914 {MNG_FN_CREATE_ANI_ICCP, "create_ani_iccp"},
915 {MNG_FN_CREATE_ANI_PLTE, "create_ani_plte"},
916 {MNG_FN_CREATE_ANI_TRNS, "create_ani_trns"},
917 {MNG_FN_CREATE_ANI_BKGD, "create_ani_bkgd"},
918#ifndef MNG_NO_DELTA_PNG
919 {MNG_FN_CREATE_ANI_DHDR, "create_ani_dhdr"},
920 {MNG_FN_CREATE_ANI_PROM, "create_ani_prom"},
921#ifdef MNG_INCLUDE_JNG
922 {MNG_FN_CREATE_ANI_IPNG, "create_ani_ipng"},
923#endif
924 {MNG_FN_CREATE_ANI_IJNG, "create_ani_ijng"},
925 {MNG_FN_CREATE_ANI_PPLT, "create_ani_pplt"},
926#endif
927 {MNG_FN_CREATE_ANI_MAGN, "create_ani_magn"},
928
929 {MNG_FN_CREATE_ANI_IMAGE, "create_ani_image"},
930 {MNG_FN_CREATE_EVENT, "create_event"},
931
932 {MNG_FN_FREE_ANI_LOOP, "free_ani_loop"},
933 {MNG_FN_FREE_ANI_ENDL, "free_ani_endl"},
934 {MNG_FN_FREE_ANI_DEFI, "free_ani_defi"},
935 {MNG_FN_FREE_ANI_BASI, "free_ani_basi"},
936 {MNG_FN_FREE_ANI_CLON, "free_ani_clon"},
937#ifndef MNG_SKIPCHUNK_PAST
938 {MNG_FN_FREE_ANI_PAST, "free_ani_past"},
939#endif
940 {MNG_FN_FREE_ANI_DISC, "free_ani_disc"},
941 {MNG_FN_FREE_ANI_BACK, "free_ani_back"},
942 {MNG_FN_FREE_ANI_FRAM, "free_ani_fram"},