src/3rdparty/libmng/libmng_trace.c
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     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
       
   176 MNG_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"},
       
   943     {MNG_FN_FREE_ANI_MOVE,             "free_ani_move"},
       
   944     {MNG_FN_FREE_ANI_CLIP,             "free_ani_clip"},
       
   945     {MNG_FN_FREE_ANI_SHOW,             "free_ani_show"},
       
   946     {MNG_FN_FREE_ANI_TERM,             "free_ani_term"},
       
   947     {MNG_FN_FREE_ANI_SAVE,             "free_ani_save"},
       
   948     {MNG_FN_FREE_ANI_SEEK,             "free_ani_seek"},
       
   949     {MNG_FN_FREE_ANI_GAMA,             "free_ani_gama"},
       
   950     {MNG_FN_FREE_ANI_CHRM,             "free_ani_chrm"},
       
   951     {MNG_FN_FREE_ANI_SRGB,             "free_ani_srgb"},
       
   952     {MNG_FN_FREE_ANI_ICCP,             "free_ani_iccp"},
       
   953     {MNG_FN_FREE_ANI_PLTE,             "free_ani_plte"},
       
   954     {MNG_FN_FREE_ANI_TRNS,             "free_ani_trns"},
       
   955     {MNG_FN_FREE_ANI_BKGD,             "free_ani_bkgd"},
       
   956 #ifndef MNG_NO_DELTA_PNG
       
   957     {MNG_FN_FREE_ANI_DHDR,             "free_ani_dhdr"},
       
   958     {MNG_FN_FREE_ANI_PROM,             "free_ani_prom"},
       
   959 #ifdef MNG_INCLUDE_JNG
       
   960     {MNG_FN_FREE_ANI_IPNG,             "free_ani_ipng"},
       
   961 #endif
       
   962     {MNG_FN_FREE_ANI_IJNG,             "free_ani_ijng"},
       
   963     {MNG_FN_FREE_ANI_PPLT,             "free_ani_pplt"},
       
   964 #endif
       
   965     {MNG_FN_FREE_ANI_MAGN,             "free_ani_magn"},
       
   966 
       
   967     {MNG_FN_FREE_ANI_IMAGE,            "free_ani_image"},
       
   968     {MNG_FN_FREE_EVENT,                "free_event"},
       
   969 
       
   970     {MNG_FN_PROCESS_ANI_LOOP,          "process_ani_loop"},
       
   971     {MNG_FN_PROCESS_ANI_ENDL,          "process_ani_endl"},
       
   972     {MNG_FN_PROCESS_ANI_DEFI,          "process_ani_defi"},
       
   973     {MNG_FN_PROCESS_ANI_BASI,          "process_ani_basi"},
       
   974     {MNG_FN_PROCESS_ANI_CLON,          "process_ani_clon"},
       
   975 #ifndef MNG_SKIPCHUNK_PAST
       
   976     {MNG_FN_PROCESS_ANI_PAST,          "process_ani_past"},
       
   977 #endif
       
   978     {MNG_FN_PROCESS_ANI_DISC,          "process_ani_disc"},
       
   979     {MNG_FN_PROCESS_ANI_BACK,          "process_ani_back"},
       
   980     {MNG_FN_PROCESS_ANI_FRAM,          "process_ani_fram"},
       
   981     {MNG_FN_PROCESS_ANI_MOVE,          "process_ani_move"},
       
   982     {MNG_FN_PROCESS_ANI_CLIP,          "process_ani_clip"},
       
   983     {MNG_FN_PROCESS_ANI_SHOW,          "process_ani_show"},
       
   984     {MNG_FN_PROCESS_ANI_TERM,          "process_ani_term"},
       
   985     {MNG_FN_PROCESS_ANI_SAVE,          "process_ani_save"},
       
   986     {MNG_FN_PROCESS_ANI_SEEK,          "process_ani_seek"},
       
   987     {MNG_FN_PROCESS_ANI_GAMA,          "process_ani_gama"},
       
   988     {MNG_FN_PROCESS_ANI_CHRM,          "process_ani_chrm"},
       
   989     {MNG_FN_PROCESS_ANI_SRGB,          "process_ani_srgb"},
       
   990     {MNG_FN_PROCESS_ANI_ICCP,          "process_ani_iccp"},
       
   991     {MNG_FN_PROCESS_ANI_PLTE,          "process_ani_plte"},
       
   992     {MNG_FN_PROCESS_ANI_TRNS,          "process_ani_trns"},
       
   993     {MNG_FN_PROCESS_ANI_BKGD,          "process_ani_bkgd"},
       
   994 #ifndef MNG_NO_DELTA_PNG
       
   995     {MNG_FN_PROCESS_ANI_DHDR,          "process_ani_dhdr"},
       
   996     {MNG_FN_PROCESS_ANI_PROM,          "process_ani_prom"},
       
   997 #ifdef MNG_INCLUDE_JNG
       
   998     {MNG_FN_PROCESS_ANI_IPNG,          "process_ani_ipng"},
       
   999 #endif
       
  1000     {MNG_FN_PROCESS_ANI_IJNG,          "process_ani_ijng"},
       
  1001     {MNG_FN_PROCESS_ANI_PPLT,          "process_ani_pplt"},
       
  1002 #endif
       
  1003     {MNG_FN_PROCESS_ANI_MAGN,          "process_ani_magn"},
       
  1004 
       
  1005     {MNG_FN_PROCESS_ANI_IMAGE,         "process_ani_image"},
       
  1006     {MNG_FN_PROCESS_EVENT,             "process_event"},
       
  1007 
       
  1008     {MNG_FN_RESTORE_BACKIMAGE,         "restore_backimage"},
       
  1009     {MNG_FN_RESTORE_BACKCOLOR,         "restore_backcolor"},
       
  1010     {MNG_FN_RESTORE_BGCOLOR,           "restore_bgcolor"},
       
  1011     {MNG_FN_RESTORE_RGB8,              "restore_rgb8"},
       
  1012     {MNG_FN_RESTORE_BGR8,              "restore_bgr8"},
       
  1013     {MNG_FN_RESTORE_BKGD,              "restore_bkgd"},
       
  1014     {MNG_FN_RESTORE_BGRX8,             "restore_bgrx8"},
       
  1015     {MNG_FN_RESTORE_RGB565,            "restore_rgb565"},
       
  1016 
       
  1017     {MNG_FN_INIT_IHDR,                 "init_ihdr"},
       
  1018     {MNG_FN_INIT_PLTE,                 "init_plte"},
       
  1019     {MNG_FN_INIT_IDAT,                 "init_idat"},
       
  1020     {MNG_FN_INIT_IEND,                 "init_iend"},
       
  1021     {MNG_FN_INIT_TRNS,                 "init_trns"},
       
  1022     {MNG_FN_INIT_GAMA,                 "init_gama"},
       
  1023     {MNG_FN_INIT_CHRM,                 "init_chrm"},
       
  1024     {MNG_FN_INIT_SRGB,                 "init_srgb"},
       
  1025     {MNG_FN_INIT_ICCP,                 "init_iccp"},
       
  1026     {MNG_FN_INIT_TEXT,                 "init_text"},
       
  1027     {MNG_FN_INIT_ZTXT,                 "init_ztxt"},
       
  1028     {MNG_FN_INIT_ITXT,                 "init_itxt"},
       
  1029     {MNG_FN_INIT_BKGD,                 "init_bkgd"},
       
  1030     {MNG_FN_INIT_PHYS,                 "init_phys"},
       
  1031     {MNG_FN_INIT_SBIT,                 "init_sbit"},
       
  1032     {MNG_FN_INIT_SPLT,                 "init_splt"},
       
  1033     {MNG_FN_INIT_HIST,                 "init_hist"},
       
  1034     {MNG_FN_INIT_TIME,                 "init_time"},
       
  1035     {MNG_FN_INIT_MHDR,                 "init_mhdr"},
       
  1036     {MNG_FN_INIT_MEND,                 "init_mend"},
       
  1037     {MNG_FN_INIT_LOOP,                 "init_loop"},
       
  1038     {MNG_FN_INIT_ENDL,                 "init_endl"},
       
  1039     {MNG_FN_INIT_DEFI,                 "init_defi"},
       
  1040     {MNG_FN_INIT_BASI,                 "init_basi"},
       
  1041     {MNG_FN_INIT_CLON,                 "init_clon"},
       
  1042 #ifndef MNG_SKIPCHUNK_PAST
       
  1043     {MNG_FN_INIT_PAST,                 "init_past"},
       
  1044 #endif
       
  1045     {MNG_FN_INIT_DISC,                 "init_disc"},
       
  1046     {MNG_FN_INIT_BACK,                 "init_back"},
       
  1047     {MNG_FN_INIT_FRAM,                 "init_fram"},
       
  1048     {MNG_FN_INIT_MOVE,                 "init_move"},
       
  1049     {MNG_FN_INIT_CLIP,                 "init_clip"},
       
  1050     {MNG_FN_INIT_SHOW,                 "init_show"},
       
  1051     {MNG_FN_INIT_TERM,                 "init_term"},
       
  1052     {MNG_FN_INIT_SAVE,                 "init_save"},
       
  1053     {MNG_FN_INIT_SEEK,                 "init_seek"},
       
  1054     {MNG_FN_INIT_EXPI,                 "init_expi"},
       
  1055     {MNG_FN_INIT_FPRI,                 "init_fpri"},
       
  1056     {MNG_FN_INIT_NEED,                 "init_need"},
       
  1057     {MNG_FN_INIT_PHYG,                 "init_phyg"},
       
  1058 #ifndef MNG_NO_DELTA_PNG
       
  1059     {MNG_FN_INIT_JHDR,                 "init_jhdr"},
       
  1060     {MNG_FN_INIT_JDAT,                 "init_jdat"},
       
  1061     {MNG_FN_INIT_JSEP,                 "init_jsep"},
       
  1062 #endif
       
  1063 #ifndef MNG_NO_DELTA_PNG
       
  1064     {MNG_FN_INIT_DHDR,                 "init_dhdr"},
       
  1065     {MNG_FN_INIT_PROM,                 "init_prom"},
       
  1066 #ifdef MNG_INCLUDE_JNG
       
  1067     {MNG_FN_INIT_IPNG,                 "init_ipng"},
       
  1068 #endif
       
  1069     {MNG_FN_INIT_PPLT,                 "init_pplt"},
       
  1070     {MNG_FN_INIT_IJNG,                 "init_ijng"},
       
  1071     {MNG_FN_INIT_DROP,                 "init_drop"},
       
  1072     {MNG_FN_INIT_DBYK,                 "init_dbyk"},
       
  1073     {MNG_FN_INIT_ORDR,                 "init_ordr"},
       
  1074 #endif
       
  1075     {MNG_FN_INIT_UNKNOWN,              "init_unknown"},
       
  1076     {MNG_FN_INIT_MAGN,                 "init_magn"},
       
  1077     {MNG_FN_INIT_JDAA,                 "init_jdaa"},
       
  1078     {MNG_FN_INIT_EVNT,                 "init_evnt"},
       
  1079 #ifdef MNG_INCLUDE_MPNG_PROPOSAL
       
  1080     {MNG_FN_INIT_MPNG,                 "init_mpng"},
       
  1081 #endif
       
  1082 
       
  1083     {MNG_FN_ASSIGN_IHDR,               "assign_ihdr"},
       
  1084     {MNG_FN_ASSIGN_PLTE,               "assign_plte"},
       
  1085     {MNG_FN_ASSIGN_IDAT,               "assign_idat"},
       
  1086     {MNG_FN_ASSIGN_IEND,               "assign_iend"},
       
  1087     {MNG_FN_ASSIGN_TRNS,               "assign_trns"},
       
  1088     {MNG_FN_ASSIGN_GAMA,               "assign_gama"},
       
  1089     {MNG_FN_ASSIGN_CHRM,               "assign_chrm"},
       
  1090     {MNG_FN_ASSIGN_SRGB,               "assign_srgb"},
       
  1091     {MNG_FN_ASSIGN_ICCP,               "assign_iccp"},
       
  1092     {MNG_FN_ASSIGN_TEXT,               "assign_text"},
       
  1093     {MNG_FN_ASSIGN_ZTXT,               "assign_ztxt"},
       
  1094     {MNG_FN_ASSIGN_ITXT,               "assign_itxt"},
       
  1095     {MNG_FN_ASSIGN_BKGD,               "assign_bkgd"},
       
  1096     {MNG_FN_ASSIGN_PHYS,               "assign_phys"},
       
  1097     {MNG_FN_ASSIGN_SBIT,               "assign_sbit"},
       
  1098     {MNG_FN_ASSIGN_SPLT,               "assign_splt"},
       
  1099     {MNG_FN_ASSIGN_HIST,               "assign_hist"},
       
  1100     {MNG_FN_ASSIGN_TIME,               "assign_time"},
       
  1101     {MNG_FN_ASSIGN_MHDR,               "assign_mhdr"},
       
  1102     {MNG_FN_ASSIGN_MEND,               "assign_mend"},
       
  1103     {MNG_FN_ASSIGN_LOOP,               "assign_loop"},
       
  1104     {MNG_FN_ASSIGN_ENDL,               "assign_endl"},
       
  1105     {MNG_FN_ASSIGN_DEFI,               "assign_defi"},
       
  1106     {MNG_FN_ASSIGN_BASI,               "assign_basi"},
       
  1107     {MNG_FN_ASSIGN_CLON,               "assign_clon"},
       
  1108 #ifndef MNG_SKIPCHUNK_PAST
       
  1109     {MNG_FN_ASSIGN_PAST,               "assign_past"},
       
  1110 #endif
       
  1111     {MNG_FN_ASSIGN_DISC,               "assign_disc"},
       
  1112     {MNG_FN_ASSIGN_BACK,               "assign_back"},
       
  1113     {MNG_FN_ASSIGN_FRAM,               "assign_fram"},
       
  1114     {MNG_FN_ASSIGN_MOVE,               "assign_move"},
       
  1115     {MNG_FN_ASSIGN_CLIP,               "assign_clip"},
       
  1116     {MNG_FN_ASSIGN_SHOW,               "assign_show"},
       
  1117     {MNG_FN_ASSIGN_TERM,               "assign_term"},
       
  1118     {MNG_FN_ASSIGN_SAVE,               "assign_save"},
       
  1119     {MNG_FN_ASSIGN_SEEK,               "assign_seek"},
       
  1120     {MNG_FN_ASSIGN_EXPI,               "assign_expi"},
       
  1121     {MNG_FN_ASSIGN_FPRI,               "assign_fpri"},
       
  1122     {MNG_FN_ASSIGN_NEED,               "assign_need"},
       
  1123     {MNG_FN_ASSIGN_PHYG,               "assign_phyg"},
       
  1124 #ifdef MNG_INCLUDE_JNG
       
  1125     {MNG_FN_ASSIGN_JHDR,               "assign_jhdr"},
       
  1126     {MNG_FN_ASSIGN_JDAT,               "assign_jdat"},
       
  1127     {MNG_FN_ASSIGN_JSEP,               "assign_jsep"},
       
  1128 #endif
       
  1129 #ifndef MNG_NO_DELTA_PNG
       
  1130     {MNG_FN_ASSIGN_DHDR,               "assign_dhdr"},
       
  1131     {MNG_FN_ASSIGN_PROM,               "assign_prom"},
       
  1132 #ifdef MNG_INCLUDE_JNG
       
  1133     {MNG_FN_ASSIGN_IPNG,               "assign_ipng"},
       
  1134 #endif
       
  1135     {MNG_FN_ASSIGN_PPLT,               "assign_pplt"},
       
  1136     {MNG_FN_ASSIGN_IJNG,               "assign_ijng"},
       
  1137     {MNG_FN_ASSIGN_DROP,               "assign_drop"},
       
  1138     {MNG_FN_ASSIGN_DBYK,               "assign_dbyk"},
       
  1139     {MNG_FN_ASSIGN_ORDR,               "assign_ordr"},
       
  1140 #endif
       
  1141     {MNG_FN_ASSIGN_UNKNOWN,            "assign_unknown"},
       
  1142     {MNG_FN_ASSIGN_MAGN,               "assign_magn"},
       
  1143     {MNG_FN_ASSIGN_JDAA,               "assign_jdaa"},
       
  1144     {MNG_FN_ASSIGN_EVNT,               "assign_evnt"},
       
  1145 #ifdef MNG_INCLUDE_MPNG_PROPOSAL
       
  1146     {MNG_FN_ASSIGN_MPNG,               "assign_mpng"},
       
  1147 #endif
       
  1148 
       
  1149     {MNG_FN_FREE_IHDR,                 "free_ihdr"},
       
  1150     {MNG_FN_FREE_PLTE,                 "free_plte"},
       
  1151     {MNG_FN_FREE_IDAT,                 "free_idat"},
       
  1152     {MNG_FN_FREE_IEND,                 "free_iend"},
       
  1153     {MNG_FN_FREE_TRNS,                 "free_trns"},
       
  1154     {MNG_FN_FREE_GAMA,                 "free_gama"},
       
  1155     {MNG_FN_FREE_CHRM,                 "free_chrm"},
       
  1156     {MNG_FN_FREE_SRGB,                 "free_srgb"},
       
  1157     {MNG_FN_FREE_ICCP,                 "free_iccp"},
       
  1158     {MNG_FN_FREE_TEXT,                 "free_text"},
       
  1159     {MNG_FN_FREE_ZTXT,                 "free_ztxt"},
       
  1160     {MNG_FN_FREE_ITXT,                 "free_itxt"},
       
  1161     {MNG_FN_FREE_BKGD,                 "free_bkgd"},
       
  1162     {MNG_FN_FREE_PHYS,                 "free_phys"},
       
  1163     {MNG_FN_FREE_SBIT,                 "free_sbit"},
       
  1164     {MNG_FN_FREE_SPLT,                 "free_splt"},
       
  1165     {MNG_FN_FREE_HIST,                 "free_hist"},
       
  1166     {MNG_FN_FREE_TIME,                 "free_time"},
       
  1167     {MNG_FN_FREE_MHDR,                 "free_mhdr"},
       
  1168     {MNG_FN_FREE_MEND,                 "free_mend"},
       
  1169     {MNG_FN_FREE_LOOP,                 "free_loop"},
       
  1170     {MNG_FN_FREE_ENDL,                 "free_endl"},
       
  1171     {MNG_FN_FREE_DEFI,                 "free_defi"},
       
  1172     {MNG_FN_FREE_BASI,                 "free_basi"},
       
  1173     {MNG_FN_FREE_CLON,                 "free_clon"},
       
  1174 #ifndef MNG_SKIPCHUNK_PAST
       
  1175     {MNG_FN_FREE_PAST,                 "free_past"},
       
  1176 #endif
       
  1177     {MNG_FN_FREE_DISC,                 "free_disc"},
       
  1178     {MNG_FN_FREE_BACK,                 "free_back"},
       
  1179     {MNG_FN_FREE_FRAM,                 "free_fram"},
       
  1180     {MNG_FN_FREE_MOVE,                 "free_move"},
       
  1181     {MNG_FN_FREE_CLIP,                 "free_clip"},
       
  1182     {MNG_FN_FREE_SHOW,                 "free_show"},
       
  1183     {MNG_FN_FREE_TERM,                 "free_term"},
       
  1184     {MNG_FN_FREE_SAVE,                 "free_save"},
       
  1185     {MNG_FN_FREE_SEEK,                 "free_seek"},
       
  1186     {MNG_FN_FREE_EXPI,                 "free_expi"},
       
  1187     {MNG_FN_FREE_FPRI,                 "free_fpri"},
       
  1188     {MNG_FN_FREE_NEED,                 "free_need"},
       
  1189     {MNG_FN_FREE_PHYG,                 "free_phyg"},
       
  1190 #ifdef MNG_INCLUDE_JNG
       
  1191     {MNG_FN_FREE_JHDR,                 "free_jhdr"},
       
  1192     {MNG_FN_FREE_JDAT,                 "free_jdat"},
       
  1193     {MNG_FN_FREE_JSEP,                 "free_jsep"},
       
  1194 #endif
       
  1195 #ifndef MNG_NO_DELTA_PNG
       
  1196     {MNG_FN_FREE_DHDR,                 "free_dhdr"},
       
  1197     {MNG_FN_FREE_PROM,                 "free_prom"},
       
  1198 #ifdef MNG_INCLUDE_JNG
       
  1199     {MNG_FN_FREE_IPNG,                 "free_ipng"},
       
  1200 #endif
       
  1201     {MNG_FN_FREE_PPLT,                 "free_pplt"},
       
  1202     {MNG_FN_FREE_IJNG,                 "free_ijng"},
       
  1203     {MNG_FN_FREE_DROP,                 "free_drop"},
       
  1204     {MNG_FN_FREE_DBYK,                 "free_dbyk"},
       
  1205     {MNG_FN_FREE_ORDR,                 "free_ordr"},
       
  1206 #endif
       
  1207     {MNG_FN_FREE_UNKNOWN,              "free_unknown"},
       
  1208     {MNG_FN_FREE_MAGN,                 "free_magn"},
       
  1209     {MNG_FN_FREE_JDAA,                 "free_jdaa"},
       
  1210     {MNG_FN_FREE_EVNT,                 "free_evnt"},
       
  1211 #ifdef MNG_INCLUDE_MPNG_PROPOSAL
       
  1212     {MNG_FN_FREE_MPNG,                 "free_mpng"},
       
  1213 #endif
       
  1214 
       
  1215     {MNG_FN_READ_IHDR,                 "read_ihdr"},
       
  1216     {MNG_FN_READ_PLTE,                 "read_plte"},
       
  1217     {MNG_FN_READ_IDAT,                 "read_idat"},
       
  1218     {MNG_FN_READ_IEND,                 "read_iend"},
       
  1219     {MNG_FN_READ_TRNS,                 "read_trns"},
       
  1220     {MNG_FN_READ_GAMA,                 "read_gama"},
       
  1221     {MNG_FN_READ_CHRM,                 "read_chrm"},
       
  1222     {MNG_FN_READ_SRGB,                 "read_srgb"},
       
  1223     {MNG_FN_READ_ICCP,                 "read_iccp"},
       
  1224     {MNG_FN_READ_TEXT,                 "read_text"},
       
  1225     {MNG_FN_READ_ZTXT,                 "read_ztxt"},
       
  1226     {MNG_FN_READ_ITXT,                 "read_itxt"},
       
  1227     {MNG_FN_READ_BKGD,                 "read_bkgd"},
       
  1228     {MNG_FN_READ_PHYS,                 "read_phys"},
       
  1229     {MNG_FN_READ_SBIT,                 "read_sbit"},
       
  1230     {MNG_FN_READ_SPLT,                 "read_splt"},
       
  1231     {MNG_FN_READ_HIST,                 "read_hist"},
       
  1232     {MNG_FN_READ_TIME,                 "read_time"},
       
  1233     {MNG_FN_READ_MHDR,                 "read_mhdr"},
       
  1234     {MNG_FN_READ_MEND,                 "read_mend"},
       
  1235     {MNG_FN_READ_LOOP,                 "read_loop"},
       
  1236     {MNG_FN_READ_ENDL,                 "read_endl"},
       
  1237     {MNG_FN_READ_DEFI,                 "read_defi"},
       
  1238     {MNG_FN_READ_BASI,                 "read_basi"},
       
  1239     {MNG_FN_READ_CLON,                 "read_clon"},
       
  1240 #ifndef MNG_SKIPCHUNK_PAST
       
  1241     {MNG_FN_READ_PAST,                 "read_past"},
       
  1242 #endif
       
  1243     {MNG_FN_READ_DISC,                 "read_disc"},
       
  1244     {MNG_FN_READ_BACK,                 "read_back"},
       
  1245     {MNG_FN_READ_FRAM,                 "read_fram"},
       
  1246     {MNG_FN_READ_MOVE,                 "read_move"},
       
  1247     {MNG_FN_READ_CLIP,                 "read_clip"},
       
  1248     {MNG_FN_READ_SHOW,                 "read_show"},
       
  1249     {MNG_FN_READ_TERM,                 "read_term"},
       
  1250     {MNG_FN_READ_SAVE,                 "read_save"},
       
  1251     {MNG_FN_READ_SEEK,                 "read_seek"},
       
  1252     {MNG_FN_READ_EXPI,                 "read_expi"},
       
  1253     {MNG_FN_READ_FPRI,                 "read_fpri"},
       
  1254     {MNG_FN_READ_NEED,                 "read_need"},
       
  1255     {MNG_FN_READ_PHYG,                 "read_phyg"},
       
  1256 #ifdef MNG_INCLUDE_JNG
       
  1257     {MNG_FN_READ_JHDR,                 "read_jhdr"},
       
  1258     {MNG_FN_READ_JDAT,                 "read_jdat"},
       
  1259     {MNG_FN_READ_JSEP,                 "read_jsep"},
       
  1260 #endif
       
  1261 #ifndef MNG_NO_DELTA_PNG
       
  1262     {MNG_FN_READ_DHDR,                 "read_dhdr"},
       
  1263     {MNG_FN_READ_PROM,                 "read_prom"},
       
  1264     {MNG_FN_READ_IPNG,                 "read_ipng"},
       
  1265     {MNG_FN_READ_PPLT,                 "read_pplt"},
       
  1266 #ifdef MNG_INCLUDE_JNG
       
  1267     {MNG_FN_READ_IJNG,                 "read_ijng"},
       
  1268 #endif
       
  1269     {MNG_FN_READ_DROP,                 "read_drop"},
       
  1270     {MNG_FN_READ_DBYK,                 "read_dbyk"},
       
  1271     {MNG_FN_READ_ORDR,                 "read_ordr"},
       
  1272 #endif
       
  1273     {MNG_FN_READ_UNKNOWN,              "read_unknown"},
       
  1274     {MNG_FN_READ_MAGN,                 "read_magn"},
       
  1275     {MNG_FN_READ_JDAA,                 "read_jdaa"},
       
  1276     {MNG_FN_READ_EVNT,                 "read_evnt"},
       
  1277 #ifdef MNG_INCLUDE_MPNG_PROPOSAL
       
  1278     {MNG_FN_READ_MPNG,                 "read_mpng"},
       
  1279 #endif
       
  1280 
       
  1281     {MNG_FN_WRITE_IHDR,                "write_ihdr"},
       
  1282     {MNG_FN_WRITE_PLTE,                "write_plte"},
       
  1283     {MNG_FN_WRITE_IDAT,                "write_idat"},
       
  1284     {MNG_FN_WRITE_IEND,                "write_iend"},
       
  1285     {MNG_FN_WRITE_TRNS,                "write_trns"},
       
  1286     {MNG_FN_WRITE_GAMA,                "write_gama"},
       
  1287     {MNG_FN_WRITE_CHRM,                "write_chrm"},
       
  1288     {MNG_FN_WRITE_SRGB,                "write_srgb"},
       
  1289     {MNG_FN_WRITE_ICCP,                "write_iccp"},
       
  1290     {MNG_FN_WRITE_TEXT,                "write_text"},
       
  1291     {MNG_FN_WRITE_ZTXT,                "write_ztxt"},
       
  1292     {MNG_FN_WRITE_ITXT,                "write_itxt"},
       
  1293     {MNG_FN_WRITE_BKGD,                "write_bkgd"},
       
  1294     {MNG_FN_WRITE_PHYS,                "write_phys"},
       
  1295     {MNG_FN_WRITE_SBIT,                "write_sbit"},
       
  1296     {MNG_FN_WRITE_SPLT,                "write_splt"},
       
  1297     {MNG_FN_WRITE_HIST,                "write_hist"},
       
  1298     {MNG_FN_WRITE_TIME,                "write_time"},
       
  1299     {MNG_FN_WRITE_MHDR,                "write_mhdr"},
       
  1300     {MNG_FN_WRITE_MEND,                "write_mend"},
       
  1301     {MNG_FN_WRITE_LOOP,                "write_loop"},
       
  1302     {MNG_FN_WRITE_ENDL,                "write_endl"},
       
  1303     {MNG_FN_WRITE_DEFI,                "write_defi"},
       
  1304     {MNG_FN_WRITE_BASI,                "write_basi"},
       
  1305     {MNG_FN_WRITE_CLON,                "write_clon"},
       
  1306 #ifndef MNG_SKIPCHUNK_PAST
       
  1307     {MNG_FN_WRITE_PAST,                "write_past"},
       
  1308 #endif
       
  1309     {MNG_FN_WRITE_DISC,                "write_disc"},
       
  1310     {MNG_FN_WRITE_BACK,                "write_back"},
       
  1311     {MNG_FN_WRITE_FRAM,                "write_fram"},
       
  1312     {MNG_FN_WRITE_MOVE,                "write_move"},
       
  1313     {MNG_FN_WRITE_CLIP,                "write_clip"},
       
  1314     {MNG_FN_WRITE_SHOW,                "write_show"},
       
  1315     {MNG_FN_WRITE_TERM,                "write_term"},
       
  1316     {MNG_FN_WRITE_SAVE,                "write_save"},
       
  1317     {MNG_FN_WRITE_SEEK,                "write_seek"},
       
  1318     {MNG_FN_WRITE_EXPI,                "write_expi"},
       
  1319     {MNG_FN_WRITE_FPRI,                "write_fpri"},
       
  1320     {MNG_FN_WRITE_NEED,                "write_need"},
       
  1321     {MNG_FN_WRITE_PHYG,                "write_phyg"},
       
  1322 #ifdef MNG_INCLUDE_JNG
       
  1323     {MNG_FN_WRITE_JHDR,                "write_jhdr"},
       
  1324     {MNG_FN_WRITE_JDAT,                "write_jdat"},
       
  1325     {MNG_FN_WRITE_JSEP,                "write_jsep"},
       
  1326 #endif
       
  1327 #ifndef MNG_NO_DELTA_PNG
       
  1328     {MNG_FN_WRITE_DHDR,                "write_dhdr"},
       
  1329     {MNG_FN_WRITE_PROM,                "write_prom"},
       
  1330 #ifdef MNG_INCLUDE_JNG
       
  1331     {MNG_FN_WRITE_IPNG,                "write_ipng"},
       
  1332 #endif
       
  1333     {MNG_FN_WRITE_PPLT,                "write_pplt"},
       
  1334     {MNG_FN_WRITE_IJNG,                "write_ijng"},
       
  1335     {MNG_FN_WRITE_DROP,                "write_drop"},
       
  1336     {MNG_FN_WRITE_DBYK,                "write_dbyk"},
       
  1337     {MNG_FN_WRITE_ORDR,                "write_ordr"},
       
  1338 #endif
       
  1339     {MNG_FN_WRITE_UNKNOWN,             "write_unknown"},
       
  1340     {MNG_FN_WRITE_MAGN,                "write_magn"},
       
  1341     {MNG_FN_WRITE_JDAA,                "write_jdaa"},
       
  1342     {MNG_FN_WRITE_EVNT,                "write_evnt"},
       
  1343 #ifdef MNG_INCLUDE_MPNG_PROPOSAL
       
  1344     {MNG_FN_WRITE_MPNG,                "write_mpng"},
       
  1345 #endif
       
  1346 
       
  1347     {MNG_FN_ZLIB_INITIALIZE,           "zlib_initialize"},
       
  1348     {MNG_FN_ZLIB_CLEANUP,              "zlib_cleanup"},
       
  1349     {MNG_FN_ZLIB_INFLATEINIT,          "zlib_inflateinit"},
       
  1350     {MNG_FN_ZLIB_INFLATEROWS,          "zlib_inflaterows"},
       
  1351     {MNG_FN_ZLIB_INFLATEDATA,          "zlib_inflatedata"},
       
  1352     {MNG_FN_ZLIB_INFLATEFREE,          "zlib_inflatefree"},
       
  1353     {MNG_FN_ZLIB_DEFLATEINIT,          "zlib_deflateinit"},
       
  1354     {MNG_FN_ZLIB_DEFLATEROWS,          "zlib_deflaterows"},
       
  1355     {MNG_FN_ZLIB_DEFLATEDATA,          "zlib_deflatedata"},
       
  1356     {MNG_FN_ZLIB_DEFLATEFREE,          "zlib_deflatefree"},
       
  1357 
       
  1358     {MNG_FN_PROCESS_DISPLAY_IHDR,      "process_display_ihdr"},
       
  1359     {MNG_FN_PROCESS_DISPLAY_PLTE,      "process_display_plte"},
       
  1360     {MNG_FN_PROCESS_DISPLAY_IDAT,      "process_display_idat"},
       
  1361     {MNG_FN_PROCESS_DISPLAY_IEND,      "process_display_iend"},
       
  1362     {MNG_FN_PROCESS_DISPLAY_TRNS,      "process_display_trns"},
       
  1363     {MNG_FN_PROCESS_DISPLAY_GAMA,      "process_display_gama"},
       
  1364     {MNG_FN_PROCESS_DISPLAY_CHRM,      "process_display_chrm"},
       
  1365     {MNG_FN_PROCESS_DISPLAY_SRGB,      "process_display_srgb"},
       
  1366     {MNG_FN_PROCESS_DISPLAY_ICCP,      "process_display_iccp"},
       
  1367     {MNG_FN_PROCESS_DISPLAY_BKGD,      "process_display_bkgd"},
       
  1368     {MNG_FN_PROCESS_DISPLAY_PHYS,      "process_display_phys"},
       
  1369     {MNG_FN_PROCESS_DISPLAY_SBIT,      "process_display_sbit"},
       
  1370     {MNG_FN_PROCESS_DISPLAY_SPLT,      "process_display_splt"},
       
  1371     {MNG_FN_PROCESS_DISPLAY_HIST,      "process_display_hist"},
       
  1372     {MNG_FN_PROCESS_DISPLAY_MHDR,      "process_display_mhdr"},
       
  1373     {MNG_FN_PROCESS_DISPLAY_MEND,      "process_display_mend"},
       
  1374     {MNG_FN_PROCESS_DISPLAY_LOOP,      "process_display_loop"},
       
  1375     {MNG_FN_PROCESS_DISPLAY_ENDL,      "process_display_endl"},
       
  1376     {MNG_FN_PROCESS_DISPLAY_DEFI,      "process_display_defi"},
       
  1377     {MNG_FN_PROCESS_DISPLAY_BASI,      "process_display_basi"},
       
  1378     {MNG_FN_PROCESS_DISPLAY_CLON,      "process_display_clon"},
       
  1379 #ifndef MNG_SKIPCHUNK_PAST
       
  1380     {MNG_FN_PROCESS_DISPLAY_PAST,      "process_display_past"},
       
  1381 #endif
       
  1382     {MNG_FN_PROCESS_DISPLAY_DISC,      "process_display_disc"},
       
  1383     {MNG_FN_PROCESS_DISPLAY_BACK,      "process_display_back"},
       
  1384     {MNG_FN_PROCESS_DISPLAY_FRAM,      "process_display_fram"},
       
  1385     {MNG_FN_PROCESS_DISPLAY_MOVE,      "process_display_move"},
       
  1386     {MNG_FN_PROCESS_DISPLAY_CLIP,      "process_display_clip"},
       
  1387     {MNG_FN_PROCESS_DISPLAY_SHOW,      "process_display_show"},
       
  1388     {MNG_FN_PROCESS_DISPLAY_TERM,      "process_display_term"},
       
  1389     {MNG_FN_PROCESS_DISPLAY_SAVE,      "process_display_save"},
       
  1390     {MNG_FN_PROCESS_DISPLAY_SEEK,      "process_display_seek"},
       
  1391     {MNG_FN_PROCESS_DISPLAY_EXPI,      "process_display_expi"},
       
  1392     {MNG_FN_PROCESS_DISPLAY_FPRI,      "process_display_fpri"},
       
  1393     {MNG_FN_PROCESS_DISPLAY_NEED,      "process_display_need"},
       
  1394     {MNG_FN_PROCESS_DISPLAY_PHYG,      "process_display_phyg"},
       
  1395 #ifdef MNG_INCLUDE_JNG
       
  1396     {MNG_FN_PROCESS_DISPLAY_JHDR,      "process_display_jhdr"},
       
  1397     {MNG_FN_PROCESS_DISPLAY_JDAT,      "process_display_jdat"},
       
  1398     {MNG_FN_PROCESS_DISPLAY_JSEP,      "process_display_jsep"},
       
  1399 #endif
       
  1400 #ifndef MNG_NO_DELTA_PNG
       
  1401     {MNG_FN_PROCESS_DISPLAY_DHDR,      "process_display_dhdr"},
       
  1402     {MNG_FN_PROCESS_DISPLAY_PROM,      "process_display_prom"},
       
  1403 #ifdef MNG_INCLUDE_JNG
       
  1404     {MNG_FN_PROCESS_DISPLAY_IPNG,      "process_display_ipng"},
       
  1405 #endif
       
  1406     {MNG_FN_PROCESS_DISPLAY_PPLT,      "process_display_pplt"},
       
  1407     {MNG_FN_PROCESS_DISPLAY_IJNG,      "process_display_ijng"},
       
  1408     {MNG_FN_PROCESS_DISPLAY_DROP,      "process_display_drop"},
       
  1409     {MNG_FN_PROCESS_DISPLAY_DBYK,      "process_display_dbyk"},
       
  1410     {MNG_FN_PROCESS_DISPLAY_ORDR,      "process_display_ordr"},
       
  1411 #endif
       
  1412     {MNG_FN_PROCESS_DISPLAY_MAGN,      "process_display_magn"},
       
  1413     {MNG_FN_PROCESS_DISPLAY_JDAA,      "process_display_jdaa"},
       
  1414 
       
  1415     {MNG_FN_JPEG_INITIALIZE,           "jpeg_initialize"},
       
  1416     {MNG_FN_JPEG_CLEANUP,              "jpeg_cleanup"},
       
  1417     {MNG_FN_JPEG_DECOMPRESSINIT,       "jpeg_decompressinit"},
       
  1418     {MNG_FN_JPEG_DECOMPRESSDATA,       "jpeg_decompressdata"},
       
  1419     {MNG_FN_JPEG_DECOMPRESSFREE,       "jpeg_decompressfree"},
       
  1420 
       
  1421     {MNG_FN_STORE_JPEG_G8,             "store_jpeg_g8"},
       
  1422     {MNG_FN_STORE_JPEG_RGB8,           "store_jpeg_rgb8"},
       
  1423     {MNG_FN_STORE_JPEG_G12,            "store_jpeg_g12"},
       
  1424     {MNG_FN_STORE_JPEG_RGB12,          "store_jpeg_rgb12"},
       
  1425     {MNG_FN_STORE_JPEG_GA8,            "store_jpeg_ga8"},
       
  1426     {MNG_FN_STORE_JPEG_RGBA8,          "store_jpeg_rgba8"},
       
  1427     {MNG_FN_STORE_JPEG_GA12,           "store_jpeg_ga12"},
       
  1428     {MNG_FN_STORE_JPEG_RGBA12,         "store_jpeg_rgba12"},
       
  1429     {MNG_FN_STORE_JPEG_G8_ALPHA,       "store_jpeg_g8_alpha"},
       
  1430     {MNG_FN_STORE_JPEG_RGB8_ALPHA,     "store_jpeg_rgb8_alpha"},
       
  1431 
       
  1432     {MNG_FN_INIT_JPEG_A1_NI,           "init_jpeg_a1_ni"},
       
  1433     {MNG_FN_INIT_JPEG_A2_NI,           "init_jpeg_a2_ni"},
       
  1434     {MNG_FN_INIT_JPEG_A4_NI,           "init_jpeg_a4_ni"},
       
  1435     {MNG_FN_INIT_JPEG_A8_NI,           "init_jpeg_a8_ni"},
       
  1436     {MNG_FN_INIT_JPEG_A16_NI,          "init_jpeg_a16_ni"},
       
  1437 
       
  1438     {MNG_FN_STORE_JPEG_G8_A1,          "store_jpeg_g8_a1"},
       
  1439     {MNG_FN_STORE_JPEG_G8_A2,          "store_jpeg_g8_a2"},
       
  1440     {MNG_FN_STORE_JPEG_G8_A4,          "store_jpeg_g8_a4"},
       
  1441     {MNG_FN_STORE_JPEG_G8_A8,          "store_jpeg_g8_a8"},
       
  1442     {MNG_FN_STORE_JPEG_G8_A16,         "store_jpeg_g8_a16"},
       
  1443 
       
  1444     {MNG_FN_STORE_JPEG_RGB8_A1,        "store_jpeg_rgb8_a1"},
       
  1445     {MNG_FN_STORE_JPEG_RGB8_A2,        "store_jpeg_rgb8_a2"},
       
  1446     {MNG_FN_STORE_JPEG_RGB8_A4,        "store_jpeg_rgb8_a4"},
       
  1447     {MNG_FN_STORE_JPEG_RGB8_A8,        "store_jpeg_rgb8_a8"},
       
  1448     {MNG_FN_STORE_JPEG_RGB8_A16,       "store_jpeg_rgb8_a16"},
       
  1449 
       
  1450     {MNG_FN_STORE_JPEG_G12_A1,         "store_jpeg_g12_a1"},
       
  1451     {MNG_FN_STORE_JPEG_G12_A2,         "store_jpeg_g12_a2"},
       
  1452     {MNG_FN_STORE_JPEG_G12_A4,         "store_jpeg_g12_a4"},
       
  1453     {MNG_FN_STORE_JPEG_G12_A8,         "store_jpeg_g12_a8"},
       
  1454     {MNG_FN_STORE_JPEG_G12_A16,        "store_jpeg_g12_a16"},
       
  1455 
       
  1456     {MNG_FN_STORE_JPEG_RGB12_A1,       "store_jpeg_rgb12_a1"},
       
  1457     {MNG_FN_STORE_JPEG_RGB12_A2,       "store_jpeg_rgb12_a2"},
       
  1458     {MNG_FN_STORE_JPEG_RGB12_A4,       "store_jpeg_rgb12_a4"},
       
  1459     {MNG_FN_STORE_JPEG_RGB12_A8,       "store_jpeg_rgb12_a8"},
       
  1460     {MNG_FN_STORE_JPEG_RGB12_A16,      "store_jpeg_rgb12_a16"},
       
  1461 
       
  1462     {MNG_FN_NEXT_JPEG_ALPHAROW,        "next_jpeg_alpharow"},
       
  1463     {MNG_FN_NEXT_JPEG_ROW,             "next_jpeg_row"},
       
  1464     {MNG_FN_DISPLAY_JPEG_ROWS,         "display_jpeg_rows"},
       
  1465 
       
  1466     {MNG_FN_MAGNIFY_G8_X1,             "magnify_g8_x1"},
       
  1467     {MNG_FN_MAGNIFY_G8_X2,             "magnify_g8_x2"},
       
  1468     {MNG_FN_MAGNIFY_RGB8_X1,           "magnify_rgb8_x1"},
       
  1469     {MNG_FN_MAGNIFY_RGB8_X2,           "magnify_rgb8_x2"},
       
  1470     {MNG_FN_MAGNIFY_GA8_X1,            "magnify_ga8_x1"},
       
  1471     {MNG_FN_MAGNIFY_GA8_X2,            "magnify_ga8_x2"},
       
  1472     {MNG_FN_MAGNIFY_GA8_X3,            "magnify_ga8_x3"},
       
  1473     {MNG_FN_MAGNIFY_GA8_X4,            "magnify_ga8_x4"},
       
  1474     {MNG_FN_MAGNIFY_RGBA8_X1,          "magnify_rgba8_x1"},
       
  1475     {MNG_FN_MAGNIFY_RGBA8_X2,          "magnify_rgba8_x2"},
       
  1476     {MNG_FN_MAGNIFY_RGBA8_X3,          "magnify_rgba8_x3"},
       
  1477     {MNG_FN_MAGNIFY_RGBA8_X4,          "magnify_rgba8_x4"},
       
  1478     {MNG_FN_MAGNIFY_G8_X3,             "magnify_g8_x3"},
       
  1479     {MNG_FN_MAGNIFY_RGB8_X3,           "magnify_rgb8_x3"},
       
  1480     {MNG_FN_MAGNIFY_GA8_X5,            "magnify_ga8_x5"},
       
  1481     {MNG_FN_MAGNIFY_RGBA8_X5,          "magnify_rgba8_x5"},
       
  1482 
       
  1483     {MNG_FN_MAGNIFY_G8_Y1,             "magnify_g8_y1"},
       
  1484     {MNG_FN_MAGNIFY_G8_Y2,             "magnify_g8_y2"},
       
  1485     {MNG_FN_MAGNIFY_RGB8_Y1,           "magnify_rgb8_y1"},
       
  1486     {MNG_FN_MAGNIFY_RGB8_Y2,           "magnify_rgb8_y2"},
       
  1487     {MNG_FN_MAGNIFY_GA8_Y1,            "magnify_ga8_y1"},
       
  1488     {MNG_FN_MAGNIFY_GA8_Y2,            "magnify_ga8_y2"},
       
  1489     {MNG_FN_MAGNIFY_GA8_Y3,            "magnify_ga8_y3"},
       
  1490     {MNG_FN_MAGNIFY_GA8_Y4,            "magnify_ga8_y4"},
       
  1491     {MNG_FN_MAGNIFY_RGBA8_Y1,          "magnify_rgba8_y1"},
       
  1492     {MNG_FN_MAGNIFY_RGBA8_Y2,          "magnify_rgba8_y2"},
       
  1493     {MNG_FN_MAGNIFY_RGBA8_Y3,          "magnify_rgba8_y3"},
       
  1494     {MNG_FN_MAGNIFY_RGBA8_Y4,          "magnify_rgba8_y4"},
       
  1495     {MNG_FN_MAGNIFY_G8_Y3,             "magnify_g8_y3"},
       
  1496     {MNG_FN_MAGNIFY_RGB8_Y3,           "magnify_rgb8_y3"},
       
  1497     {MNG_FN_MAGNIFY_GA8_Y5,            "magnify_ga8_y5"},
       
  1498     {MNG_FN_MAGNIFY_RGBA8_Y5,          "magnify_rgba8_y5"},
       
  1499 
       
  1500     {MNG_FN_MAGNIFY_G8_X1,             "magnify_g8_x1"},
       
  1501     {MNG_FN_MAGNIFY_G8_X2,             "magnify_g8_x2"},
       
  1502     {MNG_FN_MAGNIFY_RGB8_X1,           "magnify_rgb8_x1"},
       
  1503     {MNG_FN_MAGNIFY_RGB8_X2,           "magnify_rgb8_x2"},
       
  1504     {MNG_FN_MAGNIFY_GA8_X1,            "magnify_ga8_x1"},
       
  1505     {MNG_FN_MAGNIFY_GA8_X2,            "magnify_ga8_x2"},
       
  1506     {MNG_FN_MAGNIFY_GA8_X3,            "magnify_ga8_x3"},
       
  1507     {MNG_FN_MAGNIFY_GA8_X4,            "magnify_ga8_x4"},
       
  1508     {MNG_FN_MAGNIFY_RGBA8_X1,          "magnify_rgba8_x1"},
       
  1509     {MNG_FN_MAGNIFY_RGBA8_X2,          "magnify_rgba8_x2"},
       
  1510     {MNG_FN_MAGNIFY_RGBA8_X3,          "magnify_rgba8_x3"},
       
  1511     {MNG_FN_MAGNIFY_RGBA8_X4,          "magnify_rgba8_x4"},
       
  1512     {MNG_FN_MAGNIFY_G8_X3,             "magnify_g8_x3"},
       
  1513     {MNG_FN_MAGNIFY_RGB8_X3,           "magnify_rgb8_x3"},
       
  1514     {MNG_FN_MAGNIFY_GA8_X5,            "magnify_ga8_x5"},
       
  1515     {MNG_FN_MAGNIFY_RGBA8_X5,          "magnify_rgba8_x5"},
       
  1516 
       
  1517     {MNG_FN_MAGNIFY_G8_Y1,             "magnify_g8_y1"},
       
  1518     {MNG_FN_MAGNIFY_G8_Y2,             "magnify_g8_y2"},
       
  1519     {MNG_FN_MAGNIFY_RGB8_Y1,           "magnify_rgb8_y1"},
       
  1520     {MNG_FN_MAGNIFY_RGB8_Y2,           "magnify_rgb8_y2"},
       
  1521     {MNG_FN_MAGNIFY_GA8_Y1,            "magnify_ga8_y1"},
       
  1522     {MNG_FN_MAGNIFY_GA8_Y2,            "magnify_ga8_y2"},
       
  1523     {MNG_FN_MAGNIFY_GA8_Y3,            "magnify_ga8_y3"},
       
  1524     {MNG_FN_MAGNIFY_GA8_Y4,            "magnify_ga8_y4"},
       
  1525     {MNG_FN_MAGNIFY_RGBA8_Y1,          "magnify_rgba8_y1"},
       
  1526     {MNG_FN_MAGNIFY_RGBA8_Y2,          "magnify_rgba8_y2"},
       
  1527     {MNG_FN_MAGNIFY_RGBA8_Y3,          "magnify_rgba8_y3"},
       
  1528     {MNG_FN_MAGNIFY_RGBA8_Y4,          "magnify_rgba8_y4"},
       
  1529     {MNG_FN_MAGNIFY_G8_Y3,             "magnify_g8_y3"},
       
  1530     {MNG_FN_MAGNIFY_RGB8_Y3,           "magnify_rgb8_y3"},
       
  1531     {MNG_FN_MAGNIFY_GA8_Y5,            "magnify_ga8_y5"},
       
  1532     {MNG_FN_MAGNIFY_RGBA8_Y5,          "magnify_rgba8_y5"},
       
  1533 
       
  1534     {MNG_FN_DELTA_G1_G1,               "delta_g1_g1"},
       
  1535     {MNG_FN_DELTA_G2_G2,               "delta_g2_g2"},
       
  1536     {MNG_FN_DELTA_G4_G4,               "delta_g4_g4"},
       
  1537     {MNG_FN_DELTA_G8_G8,               "delta_g8_g8"},
       
  1538     {MNG_FN_DELTA_G16_G16,             "delta_g16_g16"},
       
  1539     {MNG_FN_DELTA_RGB8_RGB8,           "delta_rgb8_rgb8"},
       
  1540     {MNG_FN_DELTA_RGB16_RGB16,         "delta_rgb16_rgb16"},
       
  1541     {MNG_FN_DELTA_GA8_GA8,             "delta_ga8_ga8"},
       
  1542     {MNG_FN_DELTA_GA8_G8,              "delta_ga8_g8"},
       
  1543     {MNG_FN_DELTA_GA8_A8,              "delta_ga8_a8"},
       
  1544     {MNG_FN_DELTA_GA16_GA16,           "delta_ga16_ga16"},
       
  1545     {MNG_FN_DELTA_GA16_G16,            "delta_ga16_g16"},
       
  1546     {MNG_FN_DELTA_GA16_A16,            "delta_ga16_a16"},
       
  1547     {MNG_FN_DELTA_RGBA8_RGBA8,         "delta_rgba8_rgba8"},
       
  1548     {MNG_FN_DELTA_RGBA8_RGB8,          "delta_rgba8_rgb8"},
       
  1549     {MNG_FN_DELTA_RGBA8_A8,            "delta_rgba8_a8"},
       
  1550     {MNG_FN_DELTA_RGBA16_RGBA16,       "delta_rgba16_rgba16"},
       
  1551     {MNG_FN_DELTA_RGBA16_RGB16,        "delta_rgba16_rgb16"},
       
  1552     {MNG_FN_DELTA_RGBA16_A16,          "delta_rgba16_a16"},
       
  1553 
       
  1554     {MNG_FN_PROMOTE_G8_G8,             "promote_g8_g8"},
       
  1555     {MNG_FN_PROMOTE_G8_G16,            "promote_g8_g16"},
       
  1556     {MNG_FN_PROMOTE_G16_G16,           "promote_g8_g16"},
       
  1557     {MNG_FN_PROMOTE_G8_GA8,            "promote_g8_ga8"},
       
  1558     {MNG_FN_PROMOTE_G8_GA16,           "promote_g8_ga16"},
       
  1559     {MNG_FN_PROMOTE_G16_GA16,          "promote_g16_ga16"},
       
  1560     {MNG_FN_PROMOTE_G8_RGB8,           "promote_g8_rgb8"},
       
  1561     {MNG_FN_PROMOTE_G8_RGB16,          "promote_g8_rgb16"},
       
  1562     {MNG_FN_PROMOTE_G16_RGB16,         "promote_g16_rgb16"},
       
  1563     {MNG_FN_PROMOTE_G8_RGBA8,          "promote_g8_rgba8"},
       
  1564     {MNG_FN_PROMOTE_G8_RGBA16,         "promote_g8_rgba16"},
       
  1565     {MNG_FN_PROMOTE_G16_RGBA16,        "promote_g16_rgba16"},
       
  1566     {MNG_FN_PROMOTE_GA8_GA16,          "promote_ga8_ga16"},
       
  1567     {MNG_FN_PROMOTE_GA8_RGBA8,         "promote_ga8_rgba8"},
       
  1568     {MNG_FN_PROMOTE_GA8_RGBA16,        "promote_ga8_rgba16"},
       
  1569     {MNG_FN_PROMOTE_GA16_RGBA16,       "promote_ga16_rgba16"},
       
  1570     {MNG_FN_PROMOTE_RGB8_RGB16,        "promote_rgb8_rgb16"},
       
  1571     {MNG_FN_PROMOTE_RGB8_RGBA8,        "promote_rgb8_rgba8"},
       
  1572     {MNG_FN_PROMOTE_RGB8_RGBA16,       "promote_rgb8_rgba16"},
       
  1573     {MNG_FN_PROMOTE_RGB16_RGBA16,      "promote_rgb16_rgba16"},
       
  1574     {MNG_FN_PROMOTE_RGBA8_RGBA16,      "promote_rgba8_rgba16"},
       
  1575     {MNG_FN_PROMOTE_IDX8_RGB8,         "promote_idx8_rgb8"},
       
  1576     {MNG_FN_PROMOTE_IDX8_RGB16,        "promote_idx8_rgb16"},
       
  1577     {MNG_FN_PROMOTE_IDX8_RGBA8,        "promote_idx8_rgba8"},
       
  1578     {MNG_FN_PROMOTE_IDX8_RGBA16,       "promote_idx8_rgba16"},
       
  1579 
       
  1580     {MNG_FN_SCALE_G1_G2,               "scale_g1_g2"},
       
  1581     {MNG_FN_SCALE_G1_G4,               "scale_g1_g4"},
       
  1582     {MNG_FN_SCALE_G1_G8,               "scale_g1_g8"},
       
  1583     {MNG_FN_SCALE_G1_G16,              "scale_g1_g16"},
       
  1584     {MNG_FN_SCALE_G2_G4,               "scale_g2_g4"},
       
  1585     {MNG_FN_SCALE_G2_G8,               "scale_g2_g8"},
       
  1586     {MNG_FN_SCALE_G2_G16,              "scale_g2_g16"},
       
  1587     {MNG_FN_SCALE_G4_G8,               "scale_g4_g8"},
       
  1588     {MNG_FN_SCALE_G4_G16,              "scale_g4_g16"},
       
  1589     {MNG_FN_SCALE_G8_G16,              "scale_g8_g16"},
       
  1590     {MNG_FN_SCALE_GA8_GA16,            "scale_ga8_ga16"},
       
  1591     {MNG_FN_SCALE_RGB8_RGB16,          "scale_rgb8_rgb16"},
       
  1592     {MNG_FN_SCALE_RGBA8_RGBA16,        "scale_rgba8_rgba16"},
       
  1593 
       
  1594     {MNG_FN_SCALE_G2_G1,               "scale_g2_g1"},
       
  1595     {MNG_FN_SCALE_G4_G1,               "scale_g4_g1"},
       
  1596     {MNG_FN_SCALE_G8_G1,               "scale_g8_g1"},
       
  1597     {MNG_FN_SCALE_G16_G1,              "scale_g16_g1"},
       
  1598     {MNG_FN_SCALE_G4_G2,               "scale_g4_g2"},
       
  1599     {MNG_FN_SCALE_G8_G2,               "scale_g8_g2"},
       
  1600     {MNG_FN_SCALE_G16_G2,              "scale_g16_g2"},
       
  1601     {MNG_FN_SCALE_G8_G4,               "scale_g8_g4"},
       
  1602     {MNG_FN_SCALE_G16_G4,              "scale_g16_g4"},
       
  1603     {MNG_FN_SCALE_G16_G8,              "scale_g16_g8"},
       
  1604     {MNG_FN_SCALE_GA16_GA8,            "scale_ga16_ga8"},
       
  1605     {MNG_FN_SCALE_RGB16_RGB8,          "scale_rgb16_rgb8"},
       
  1606     {MNG_FN_SCALE_RGBA16_RGBA8,        "scale_rgba16_rgba8"},
       
  1607 
       
  1608     {MNG_FN_COMPOSEOVER_RGBA8,         "composeover_rgba8"},
       
  1609     {MNG_FN_COMPOSEOVER_RGBA16,        "composeover_rgba16"},
       
  1610     {MNG_FN_COMPOSEUNDER_RGBA8,        "composeunder_rgba8"},
       
  1611     {MNG_FN_COMPOSEUNDER_RGBA16,       "composeunder_rgba16"},
       
  1612 
       
  1613     {MNG_FN_FLIP_RGBA8,                "flip_rgba8"},
       
  1614     {MNG_FN_FLIP_RGBA16,               "flip_rgba16"},
       
  1615     {MNG_FN_TILE_RGBA8,                "tile_rgba8"},
       
  1616     {MNG_FN_TILE_RGBA16,               "tile_rgba16"}
       
  1617 
       
  1618   };
       
  1619 #endif /* MNG_INCLUDE_TRACE_STINGS */
       
  1620 
       
  1621 /* ************************************************************************** */
       
  1622 
       
  1623 mng_retcode mng_trace (mng_datap  pData,
       
  1624                        mng_uint32 iFunction,
       
  1625                        mng_uint32 iLocation)
       
  1626 {
       
  1627   mng_pchar zName = 0;                 /* bufferptr for tracestring */
       
  1628 
       
  1629   if ((pData == 0) || (pData->iMagic != MNG_MAGIC))
       
  1630     return MNG_INVALIDHANDLE;          /* no good if the handle is corrupt */
       
  1631 
       
  1632   if (pData->fTraceproc)               /* report back to user ? */
       
  1633   {
       
  1634 #ifdef MNG_INCLUDE_TRACE_STRINGS
       
  1635     {                                  /* binary search variables */
       
  1636       mng_int32        iTop, iLower, iUpper, iMiddle;
       
  1637       mng_trace_entryp pEntry;         /* pointer to found entry */
       
  1638                                        /* determine max index of table */
       
  1639       iTop = (sizeof (trace_table) / sizeof (trace_table [0])) - 1;
       
  1640 
       
  1641       iLower  = 0;                     /* initialize binary search */
       
  1642       iMiddle = iTop >> 1;             /* start in the middle */
       
  1643       iUpper  = iTop;
       
  1644       pEntry  = 0;                     /* no goods yet! */
       
  1645 
       
  1646       do                               /* the binary search itself */
       
  1647         {
       
  1648           if (trace_table [iMiddle].iFunction < iFunction)
       
  1649             iLower = iMiddle + 1;
       
  1650           else if (trace_table [iMiddle].iFunction > iFunction)
       
  1651             iUpper = iMiddle - 1;
       
  1652           else
       
  1653           {
       
  1654             pEntry = &trace_table [iMiddle];
       
  1655             break;
       
  1656           };
       
  1657 
       
  1658           iMiddle = (iLower + iUpper) >> 1;
       
  1659         }
       
  1660       while (iLower <= iUpper);
       
  1661 
       
  1662       if (pEntry)                      /* found it ? */
       
  1663         zName = pEntry->zTracetext;
       
  1664 
       
  1665     }
       
  1666 #endif
       
  1667                                        /* oke, now tell */
       
  1668     if (!pData->fTraceproc (((mng_handle)pData), iFunction, iLocation, zName))
       
  1669       return MNG_APPTRACEABORT;
       
  1670 
       
  1671   }
       
  1672 
       
  1673   return MNG_NOERROR;
       
  1674 }
       
  1675 
       
  1676 /* ************************************************************************** */
       
  1677 
       
  1678 #endif /* MNG_INCLUDE_TRACE_PROCS */
       
  1679 
       
  1680 /* ************************************************************************** */
       
  1681 /* * end of file                                                            * */
       
  1682 /* ************************************************************************** */
       
  1683