| 1 | /* ************************************************************************** */ | 
|---|
| 2 | /* *                                                                        * */ | 
|---|
| 3 | /* * COPYRIGHT NOTICE:                                                      * */ | 
|---|
| 4 | /* *                                                                        * */ | 
|---|
| 5 | /* * Copyright (c) 2000-2007 Gerard Juyn                                    * */ | 
|---|
| 6 | /* * [You may insert additional notices after this sentence if you modify   * */ | 
|---|
| 7 | /* *  this source]                                                          * */ | 
|---|
| 8 | /* *                                                                        * */ | 
|---|
| 9 | /* * For the purposes of this copyright and license, "Contributing Authors" * */ | 
|---|
| 10 | /* * is defined as the following set of individuals:                        * */ | 
|---|
| 11 | /* *                                                                        * */ | 
|---|
| 12 | /* *    Gerard Juyn                 - gjuyn :at: users.sourceforge.net      * */ | 
|---|
| 13 | /* *    Glenn Randers-Pehrson       - glennrp :at: users.sourceforge.net    * */ | 
|---|
| 14 | /* *    Raphael Assenat             - raph :at: raphnet.net                 * */ | 
|---|
| 15 | /* *    John Stiles                 -                                       * */ | 
|---|
| 16 | /* *                                                                        * */ | 
|---|
| 17 | /* * The MNG Library is supplied "AS IS".  The Contributing Authors         * */ | 
|---|
| 18 | /* * disclaim all warranties, expressed or implied, including, without      * */ | 
|---|
| 19 | /* * limitation, the warranties of merchantability and of fitness for any   * */ | 
|---|
| 20 | /* * purpose.  The Contributing Authors assume no liability for direct,     * */ | 
|---|
| 21 | /* * indirect, incidental, special, exemplary, or consequential damages,    * */ | 
|---|
| 22 | /* * which may result from the use of the MNG Library, even if advised of   * */ | 
|---|
| 23 | /* * the possibility of such damage.                                        * */ | 
|---|
| 24 | /* *                                                                        * */ | 
|---|
| 25 | /* * Permission is hereby granted to use, copy, modify, and distribute this * */ | 
|---|
| 26 | /* * source code, or portions hereof, for any purpose, without fee, subject * */ | 
|---|
| 27 | /* * to the following restrictions:                                         * */ | 
|---|
| 28 | /* *                                                                        * */ | 
|---|
| 29 | /* * 1. The origin of this source code must not be misrepresented;          * */ | 
|---|
| 30 | /* *    you must not claim that you wrote the original software.            * */ | 
|---|
| 31 | /* *                                                                        * */ | 
|---|
| 32 | /* * 2. Altered versions must be plainly marked as such and must not be     * */ | 
|---|
| 33 | /* *    misrepresented as being the original source.                        * */ | 
|---|
| 34 | /* *                                                                        * */ | 
|---|
| 35 | /* * 3. This Copyright notice may not be removed or altered from any source * */ | 
|---|
| 36 | /* *    or altered source distribution.                                     * */ | 
|---|
| 37 | /* *                                                                        * */ | 
|---|
| 38 | /* * The Contributing Authors specifically permit, without fee, and         * */ | 
|---|
| 39 | /* * encourage the use of this source code as a component to supporting     * */ | 
|---|
| 40 | /* * the MNG and JNG file format in commercial products.  If you use this   * */ | 
|---|
| 41 | /* * source code in a product, acknowledgment would be highly appreciated.  * */ | 
|---|
| 42 | /* *                                                                        * */ | 
|---|
| 43 | /* ************************************************************************** */ | 
|---|
| 44 | /* *                                                                        * */ | 
|---|
| 45 | /* * Parts of this software have been adapted from the libpng package.      * */ | 
|---|
| 46 | /* * Although this library supports all features from the PNG specification * */ | 
|---|
| 47 | /* * (as MNG descends from it) it does not require the libpng package.      * */ | 
|---|
| 48 | /* * It does require the zlib library and optionally the IJG jpeg library,  * */ | 
|---|
| 49 | /* * and/or the "little-cms" library by Marti Maria (depending on the       * */ | 
|---|
| 50 | /* * inclusion of support for JNG and Full-Color-Management respectively.   * */ | 
|---|
| 51 | /* *                                                                        * */ | 
|---|
| 52 | /* * This library's function is primarily to read and display MNG           * */ | 
|---|
| 53 | /* * animations. It is not meant as a full-featured image-editing           * */ | 
|---|
| 54 | /* * component! It does however offer creation and editing functionality    * */ | 
|---|
| 55 | /* * at the chunk level.                                                    * */ | 
|---|
| 56 | /* * (future modifications may include some more support for creation       * */ | 
|---|
| 57 | /* *  and or editing)                                                       * */ | 
|---|
| 58 | /* *                                                                        * */ | 
|---|
| 59 | /* ************************************************************************** */ | 
|---|
| 60 |  | 
|---|
| 61 | /* ************************************************************************** */ | 
|---|
| 62 | /* *                                                                        * */ | 
|---|
| 63 | /* * Version numbering                                                      * */ | 
|---|
| 64 | /* *                                                                        * */ | 
|---|
| 65 | /* * X.Y.Z : X = release (0 = initial build)                                * */ | 
|---|
| 66 | /* *         Y = major version (uneven = test; even = production)           * */ | 
|---|
| 67 | /* *         Z = minor version (bugfixes; 2 is older than 10)               * */ | 
|---|
| 68 | /* *                                                                        * */ | 
|---|
| 69 | /* * production versions only appear when a test-version is extensively     * */ | 
|---|
| 70 | /* * tested and found stable or for intermediate bug-fixes (recognized by   * */ | 
|---|
| 71 | /* * a change in the Z number)                                              * */ | 
|---|
| 72 | /* *                                                                        * */ | 
|---|
| 73 | /* * x.1.x      = test version                                              * */ | 
|---|
| 74 | /* * x.2.x      = production version                                        * */ | 
|---|
| 75 | /* * x.3.x      = test version                                              * */ | 
|---|
| 76 | /* * x.4.x      = production version                                        * */ | 
|---|
| 77 | /* *  etc.                                                                  * */ | 
|---|
| 78 | /* *                                                                        * */ | 
|---|
| 79 | /* ************************************************************************** */ | 
|---|
| 80 | /* *                                                                        * */ | 
|---|
| 81 | /* * Identifier naming conventions throughout this library                  * */ | 
|---|
| 82 | /* *                                                                        * */ | 
|---|
| 83 | /* * iXxxx      = an integer                                                * */ | 
|---|
| 84 | /* * dXxxx      = a float                                                   * */ | 
|---|
| 85 | /* * pXxxx      = a pointer                                                 * */ | 
|---|
| 86 | /* * bXxxx      = a boolean                                                 * */ | 
|---|
| 87 | /* * eXxxx      = an enumeration                                            * */ | 
|---|
| 88 | /* * hXxxx      = a handle                                                  * */ | 
|---|
| 89 | /* * zXxxx      = a zero-terminated string (pchar)                          * */ | 
|---|
| 90 | /* * fXxxx      = a pointer to a function (callback)                        * */ | 
|---|
| 91 | /* * aXxxx      = an array                                                  * */ | 
|---|
| 92 | /* * sXxxx      = a structure                                               * */ | 
|---|
| 93 | /* *                                                                        * */ | 
|---|
| 94 | /* * Macros & defines are in all uppercase.                                 * */ | 
|---|
| 95 | /* * Functions & typedefs in all lowercase.                                 * */ | 
|---|
| 96 | /* * Exported stuff is prefixed with MNG_ or mng_ respectively.             * */ | 
|---|
| 97 | /* *                                                                        * */ | 
|---|
| 98 | /* * (I may have missed a couple; don't hesitate to let me know!)           * */ | 
|---|
| 99 | /* *                                                                        * */ | 
|---|
| 100 | /* ************************************************************************** */ | 
|---|
| 101 |  | 
|---|
| 102 | /* ************************************************************************** */ | 
|---|
| 103 | /* *                                                                        * */ | 
|---|
| 104 | /* * project   : libmng                                                     * */ | 
|---|
| 105 | /* * file      : libmng.h                  copyright (c) 2000-2007 G.Juyn   * */ | 
|---|
| 106 | /* * version   : 1.0.10                                                     * */ | 
|---|
| 107 | /* *                                                                        * */ | 
|---|
| 108 | /* * purpose   : main application interface                                 * */ | 
|---|
| 109 | /* *                                                                        * */ | 
|---|
| 110 | /* * author    : G.Juyn                                                     * */ | 
|---|
| 111 | /* *                                                                        * */ | 
|---|
| 112 | /* * comment   : The main application interface. An application should not  * */ | 
|---|
| 113 | /* *             need access to any of the other modules!                   * */ | 
|---|
| 114 | /* *                                                                        * */ | 
|---|
| 115 | /* * changes   : 0.5.1 - 05/06/2000 - G.Juyn                                * */ | 
|---|
| 116 | /* *             - changed chunk iteration function                         * */ | 
|---|
| 117 | /* *             0.5.1 - 05/08/2000 - G.Juyn                                * */ | 
|---|
| 118 | /* *             - added chunk access functions                             * */ | 
|---|
| 119 | /* *             - added version control constants & functions              * */ | 
|---|
| 120 | /* *             - changed strict-ANSI stuff                                * */ | 
|---|
| 121 | /* *             0.5.1 - 05/11/2000 - G.Juyn                                * */ | 
|---|
| 122 | /* *             - added set_outputprofile2 & set_srgbprofile2              * */ | 
|---|
| 123 | /* *             - added empty-chunk put-routines                           * */ | 
|---|
| 124 | /* *             0.5.1 - 05/12/2000 - G.Juyn                                * */ | 
|---|
| 125 | /* *             - added version_dll & VERSION_DLL (for consistency)        * */ | 
|---|
| 126 | /* *             - added version control explanatory text & samples         * */ | 
|---|
| 127 | /* *             0.5.1 - 05/15/2000 - G.Juyn                                * */ | 
|---|
| 128 | /* *             - added getimgdata & putimgdata functions                  * */ | 
|---|
| 129 | /* *                                                                        * */ | 
|---|
| 130 | /* *             0.5.2 - 05/16/2000 - G.Juyn                                * */ | 
|---|
| 131 | /* *             - changed the version parameters (obviously)               * */ | 
|---|
| 132 | /* *             0.5.2 - 05/18/2000 - G.Juyn                                * */ | 
|---|
| 133 | /* *             - complimented constants for chunk-property values         * */ | 
|---|
| 134 | /* *             0.5.2 - 05/23/2000 - G.Juyn                                * */ | 
|---|
| 135 | /* *             - fixed MNG_UINT_pHYg value                                * */ | 
|---|
| 136 | /* *             0.5.2 - 05/24/2000 - G.Juyn                                * */ | 
|---|
| 137 | /* *             - added support for get/set default zlib/IJG parms         * */ | 
|---|
| 138 | /* *             0.5.2 - 06/02/2000 - G.Juyn                                * */ | 
|---|
| 139 | /* *             - added MNG_BIGENDIAN_SUPPORT (contributed by Tim Rowley)  * */ | 
|---|
| 140 | /* *             - separated configuration-options into "mng_conf.h"        * */ | 
|---|
| 141 | /* *             - added RGB8_A8 canvasstyle                                * */ | 
|---|
| 142 | /* *             - added getalphaline callback for RGB8_A8 canvasstyle      * */ | 
|---|
| 143 | /* *             0.5.2 - 06/06/2000 - G.Juyn                                * */ | 
|---|
| 144 | /* *             - moved errorcodes from "mng_error.h"                      * */ | 
|---|
| 145 | /* *             - added mng_read_resume function to support                * */ | 
|---|
| 146 | /* *               read-suspension                                          * */ | 
|---|
| 147 | /* *                                                                        * */ | 
|---|
| 148 | /* *             0.5.3 - 06/16/2000 - G.Juyn                                * */ | 
|---|
| 149 | /* *             - changed the version parameters (obviously)               * */ | 
|---|
| 150 | /* *             0.5.3 - 06/21/2000 - G.Juyn                                * */ | 
|---|
| 151 | /* *             - added get/set for speedtype to facilitate testing        * */ | 
|---|
| 152 | /* *             - added get for imagelevel during processtext callback     * */ | 
|---|
| 153 | /* *             0.5.3 - 06/24/2000 - G.Juyn                                * */ | 
|---|
| 154 | /* *             - fixed inclusion of IJG read/write code                   * */ | 
|---|
| 155 | /* *             0.5.3 - 06/26/2000 - G.Juyn                                * */ | 
|---|
| 156 | /* *             - changed userdata variable to mng_ptr                     * */ | 
|---|
| 157 | /* *                                                                        * */ | 
|---|
| 158 | /* *             0.9.0 - 06/30/2000 - G.Juyn                                * */ | 
|---|
| 159 | /* *             - changed refresh parameters to 'x,y,width,height'         * */ | 
|---|
| 160 | /* *                                                                        * */ | 
|---|
| 161 | /* *             0.9.1 - 07/06/2000 - G.Juyn                                * */ | 
|---|
| 162 | /* *             - added MNG_NEEDTIMERWAIT errorcode                        * */ | 
|---|
| 163 | /* *             - changed comments to indicate modified behavior for       * */ | 
|---|
| 164 | /* *               timer & suspension breaks                                * */ | 
|---|
| 165 | /* *             0.9.1 - 07/08/2000 - G.Juyn                                * */ | 
|---|
| 166 | /* *             - added get routines for internal display variables        * */ | 
|---|
| 167 | /* *             - added get/set routines for suspensionmode variable       * */ | 
|---|
| 168 | /* *             0.9.1 - 07/15/2000 - G.Juyn                                * */ | 
|---|
| 169 | /* *             - added callbacks for SAVE/SEEK processing                 * */ | 
|---|
| 170 | /* *             - added get/set routines for sectionbreak variable         * */ | 
|---|
| 171 | /* *             - added NEEDSECTIONWAIT errorcode                          * */ | 
|---|
| 172 | /* *             0.9.1 - 07/19/2000 - G.Juyn                                * */ | 
|---|
| 173 | /* *             - added function to set frame-/layer-count & playtime      * */ | 
|---|
| 174 | /* *             - added errorcode for updatemngheader if not a MNG         * */ | 
|---|
| 175 | /* *                                                                        * */ | 
|---|
| 176 | /* *             0.9.2 - 07/31/2000 - G.Juyn                                * */ | 
|---|
| 177 | /* *             - fixed problem with trace-functions improperly wrapped    * */ | 
|---|
| 178 | /* *             - added status_xxxx functions                              * */ | 
|---|
| 179 | /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */ | 
|---|
| 180 | /* *             - changed file-prefixes                                    * */ | 
|---|
| 181 | /* *             - added function to set simplicity field                   * */ | 
|---|
| 182 | /* *                                                                        * */ | 
|---|
| 183 | /* *             0.9.3 - 08/09/2000 - G.Juyn                                * */ | 
|---|
| 184 | /* *             - added check for simplicity-bits in MHDR                  * */ | 
|---|
| 185 | /* *             0.9.3 - 08/12/2000 - G.Juyn                                * */ | 
|---|
| 186 | /* *             - added workaround for faulty PhotoShop iCCP chunk         * */ | 
|---|
| 187 | /* *             0.9.3 - 08/26/2000 - G.Juyn                                * */ | 
|---|
| 188 | /* *             - added MAGN chunk                                         * */ | 
|---|
| 189 | /* *             0.9.3 - 09/07/2000 - G.Juyn                                * */ | 
|---|
| 190 | /* *             - added support for new filter_types                       * */ | 
|---|
| 191 | /* *             0.9.3 - 10/10/2000 - G.Juyn                                * */ | 
|---|
| 192 | /* *             - added support for alpha-depth prediction                 * */ | 
|---|
| 193 | /* *             0.9.3 - 10/11/2000 - G.Juyn                                * */ | 
|---|
| 194 | /* *             - fixed processing of unknown critical chunks              * */ | 
|---|
| 195 | /* *             - removed test-MaGN                                        * */ | 
|---|
| 196 | /* *             - added PNG/MNG spec version indicators                    * */ | 
|---|
| 197 | /* *             - added support for nEED                                   * */ | 
|---|
| 198 | /* *             0.9.3 - 10/16/2000 - G.Juyn                                * */ | 
|---|
| 199 | /* *             - added functions to retrieve PNG/JNG specific header-info * */ | 
|---|
| 200 | /* *             - added JDAA chunk                                         * */ | 
|---|
| 201 | /* *             0.9.3 - 10/17/2000 - G.Juyn                                * */ | 
|---|
| 202 | /* *             - added callback to process non-critical unknown chunks    * */ | 
|---|
| 203 | /* *             0.9.3 - 10/20/2000 - G.Juyn                                * */ | 
|---|
| 204 | /* *             - added errocode for delayed delta-processing              * */ | 
|---|
| 205 | /* *             - added get/set for bKGD preference setting                * */ | 
|---|
| 206 | /* *             0.9.3 - 10/21/2000 - G.Juyn                                * */ | 
|---|
| 207 | /* *             - added get function for interlace/progressive display     * */ | 
|---|
| 208 | /* *                                                                        * */ | 
|---|
| 209 | /* *             0.9.4 - 01/18/2001 - G.Juyn                                * */ | 
|---|
| 210 | /* *             - added errorcode for MAGN methods                         * */ | 
|---|
| 211 | /* *             - removed test filter-methods 1 & 65                       * */ | 
|---|
| 212 | /* *                                                                        * */ | 
|---|
| 213 | /* *             1.0.0 - 02/05/2001 - G.Juyn                                * */ | 
|---|
| 214 | /* *             - version numbers (obviously)                              * */ | 
|---|
| 215 | /* *                                                                        * */ | 
|---|
| 216 | /* *             1.0.1 - 02/08/2001 - G.Juyn                                * */ | 
|---|
| 217 | /* *             - added MEND processing callback                           * */ | 
|---|
| 218 | /* *             1.0.1 - 04/21/2001 - G.Juyn (code by G.Kelly)              * */ | 
|---|
| 219 | /* *             - added BGRA8 canvas with premultiplied alpha              * */ | 
|---|
| 220 | /* *             1.0.1 - 05/02/2001 - G.Juyn                                * */ | 
|---|
| 221 | /* *             - added "default" sRGB generation (Thanks Marti!)          * */ | 
|---|
| 222 | /* *                                                                        * */ | 
|---|
| 223 | /* *             1.0.2 - 06/23/2001 - G.Juyn                                * */ | 
|---|
| 224 | /* *             - added optimization option for MNG-video playback         * */ | 
|---|
| 225 | /* *             - added processterm callback                               * */ | 
|---|
| 226 | /* *             1.0.2 - 06/25/2001 - G.Juyn                                * */ | 
|---|
| 227 | /* *             - added late binding errorcode (not used internally)       * */ | 
|---|
| 228 | /* *             - added option to turn off progressive refresh             * */ | 
|---|
| 229 | /* *                                                                        * */ | 
|---|
| 230 | /* *             1.0.3 - 08/06/2001 - G.Juyn                                * */ | 
|---|
| 231 | /* *             - added get function for last processed BACK chunk         * */ | 
|---|
| 232 | /* *                                                                        * */ | 
|---|
| 233 | /* *             1.0.5 - 07/04/2002 - G.Juyn                                * */ | 
|---|
| 234 | /* *             - added errorcode for extreme chunk-sizes                  * */ | 
|---|
| 235 | /* *             1.0.5 - 08/07/2002 - G.Juyn                                * */ | 
|---|
| 236 | /* *             - added test-option for PNG filter method 193 (=no filter) * */ | 
|---|
| 237 | /* *             1.0.5 - 08/15/2002 - G.Juyn                                * */ | 
|---|
| 238 | /* *             - completed PROM support                                   * */ | 
|---|
| 239 | /* *             - completed delta-image support                            * */ | 
|---|
| 240 | /* *             1.0.5 - 08/19/2002 - G.Juyn                                * */ | 
|---|
| 241 | /* *             - added HLAPI function to copy chunks                      * */ | 
|---|
| 242 | /* *             1.0.5 - 09/14/2002 - G.Juyn                                * */ | 
|---|
| 243 | /* *             - added event handling for dynamic MNG                     * */ | 
|---|
| 244 | /* *             - added 'supports' call to check function availability     * */ | 
|---|
| 245 | /* *             1.0.5 - 09/15/2002 - G.Juyn                                * */ | 
|---|
| 246 | /* *             - fixed LOOP iteration=0 special case                      * */ | 
|---|
| 247 | /* *             1.0.5 - 09/20/2002 - G.Juyn                                * */ | 
|---|
| 248 | /* *             - added support for PAST                                   * */ | 
|---|
| 249 | /* *             1.0.5 - 09/22/2002 - G.Juyn                                * */ | 
|---|
| 250 | /* *             - added bgrx8 canvas (filler byte)                         * */ | 
|---|
| 251 | /* *             1.0.5 - 10/07/2002 - G.Juyn                                * */ | 
|---|
| 252 | /* *             - added check for TERM placement during create/write       * */ | 
|---|
| 253 | /* *             - added beta version function & constant                   * */ | 
|---|
| 254 | /* *             1.0.5 - 11/07/2002 - G.Juyn                                * */ | 
|---|
| 255 | /* *             - added support to get totals after mng_read()             * */ | 
|---|
| 256 | /* *                                                                        * */ | 
|---|
| 257 | /* *             1.0.6 - 07/07/2003 - G. Randers-Pehrson                    * */ | 
|---|
| 258 | /* *             - added support for reducing the footprint of libmng       * */ | 
|---|
| 259 | /* *               by macros that optionally skip unused chunks, remove     * */ | 
|---|
| 260 | /* *               16-bit sample support, remove Delta support, and         * */ | 
|---|
| 261 | /* *               remove JNG support, to accomodate Mozilla/Firebird.      * */ | 
|---|
| 262 | /* *             1.0.6 - 07/14/2003 - G. Randers-Pehrson                    * */ | 
|---|
| 263 | /* *             - further optional removal of unused functions             * */ | 
|---|
| 264 | /* *                                                                        * */ | 
|---|
| 265 | /* *             1.0.7 - 11/27/2003 - R.A                                   * */ | 
|---|
| 266 | /* *             - added CANVAS_RGB565 and CANVAS_BGR565                    * */ | 
|---|
| 267 | /* *             1.0.7 - 12/06/2003 - R.A                                   * */ | 
|---|
| 268 | /* *             - added CANVAS_RGBA565 and CANVAS_BGRA565                  * */ | 
|---|
| 269 | /* *             1.0.7 - 01/25/2004 - J.S                                   * */ | 
|---|
| 270 | /* *             - added premultiplied alpha canvas' for RGBA, ARGB, ABGR   * */ | 
|---|
| 271 | /* *             1.0.7 - 03/07/2004 - G. Randers-Pehrson                    * */ | 
|---|
| 272 | /* *             - put gamma, cms-related declarations inside #ifdef        * */ | 
|---|
| 273 | /* *             1.0.7 - 03/10/2004 - G.R-P                                 * */ | 
|---|
| 274 | /* *             - added conditionals around openstream/closestream         * */ | 
|---|
| 275 | /* *                                                                        * */ | 
|---|
| 276 | /* *             1.0.8 - 04/02/2004 - G.Juyn                                * */ | 
|---|
| 277 | /* *             - added CRC existence & checking flags                     * */ | 
|---|
| 278 | /* *             1.0.8 - 04/12/2004 - G.Juyn                                * */ | 
|---|
| 279 | /* *             - added data-push mechanisms for specialized decoders      * */ | 
|---|
| 280 | /* *             1.0.8 - 06/05/2004 - G.R-P                                 * */ | 
|---|
| 281 | /* *             - define MNG_INCLUDE_ZLIB when MNG_USE_ZLIB_CRC is defined * */ | 
|---|
| 282 | /* *                                                                        * */ | 
|---|
| 283 | /* *             1.0.9 - 10/03/2004 - G.Juyn                                * */ | 
|---|
| 284 | /* *             - added function to retrieve current FRAM delay            * */ | 
|---|
| 285 | /* *             1.0.9 - 10/14/2004 - G.Juyn                                * */ | 
|---|
| 286 | /* *             - added bgr565_a8 canvas-style (thanks to J. Elvander)     * */ | 
|---|
| 287 | /* *             1.0.9 - 10/17/2004 - G.Juyn                                * */ | 
|---|
| 288 | /* *             - fixed PPLT getchunk/putchunk routines                    * */ | 
|---|
| 289 | /* *                                                                        * */ | 
|---|
| 290 | /* *             1.0.10 - 03/07/2006 - (thanks to W. Manthey)               * */ | 
|---|
| 291 | /* *             - added CANVAS_RGB555 and CANVAS_BGR555                    * */ | 
|---|
| 292 | /* *             1.0.10 - 04/08/2007 - G.Juyn                               * */ | 
|---|
| 293 | /* *             - added support for mPNG proposal                          * */ | 
|---|
| 294 | /* *             1.0.10 - 04/12/2007 - G.Juyn                               * */ | 
|---|
| 295 | /* *             - added support for ANG proposal                           * */ | 
|---|
| 296 | /* *                                                                        * */ | 
|---|
| 297 | /* ************************************************************************** */ | 
|---|
| 298 |  | 
|---|
| 299 | #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) | 
|---|
| 300 | #pragma option -A                      /* force ANSI-C */ | 
|---|
| 301 | #endif | 
|---|
| 302 |  | 
|---|
| 303 | #ifndef _libmng_h_ | 
|---|
| 304 | #define _libmng_h_ | 
|---|
| 305 |  | 
|---|
| 306 | /* ************************************************************************** */ | 
|---|
| 307 |  | 
|---|
| 308 | #include "libmng_conf.h"               /* user-specific configuration options */ | 
|---|
| 309 |  | 
|---|
| 310 | /* ************************************************************************** */ | 
|---|
| 311 |  | 
|---|
| 312 | #define MNG_CHECK_BAD_ICCP             /* let's catch that sucker !!! */ | 
|---|
| 313 |  | 
|---|
| 314 | #ifdef MNG_SUPPORT_READ                /* dependencies based on user-configuration */ | 
|---|
| 315 | #define MNG_INCLUDE_READ_PROCS | 
|---|
| 316 | #endif | 
|---|
| 317 |  | 
|---|
| 318 | #ifdef MNG_SUPPORT_WRITE | 
|---|
| 319 | #define MNG_INCLUDE_WRITE_PROCS | 
|---|
| 320 | #endif | 
|---|
| 321 |  | 
|---|
| 322 | #ifdef MNG_USE_ZLIB_CRC | 
|---|
| 323 | #define MNG_INCLUDE_ZLIB | 
|---|
| 324 | #endif | 
|---|
| 325 |  | 
|---|
| 326 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 327 | #define MNG_INCLUDE_FILTERS | 
|---|
| 328 | #define MNG_INCLUDE_INTERLACE | 
|---|
| 329 | #define MNG_INCLUDE_OBJECTS | 
|---|
| 330 | #define MNG_INCLUDE_DISPLAY_PROCS | 
|---|
| 331 | #define MNG_INCLUDE_TIMING_PROCS | 
|---|
| 332 | #define MNG_INCLUDE_ZLIB | 
|---|
| 333 | #endif | 
|---|
| 334 |  | 
|---|
| 335 | #ifdef MNG_STORE_CHUNKS | 
|---|
| 336 | #define MNG_INCLUDE_ZLIB | 
|---|
| 337 | #endif | 
|---|
| 338 |  | 
|---|
| 339 | #ifdef MNG_SUPPORT_IJG6B | 
|---|
| 340 | #define MNG_INCLUDE_JNG | 
|---|
| 341 | #define MNG_INCLUDE_IJG6B | 
|---|
| 342 | #define MNG_USE_SETJMP | 
|---|
| 343 | #endif | 
|---|
| 344 |  | 
|---|
| 345 | #ifdef MNG_INCLUDE_JNG | 
|---|
| 346 | #if defined(MNG_SUPPORT_DISPLAY) || defined(MNG_ACCESS_CHUNKS) | 
|---|
| 347 | #define MNG_INCLUDE_JNG_READ | 
|---|
| 348 | #endif | 
|---|
| 349 | #if defined(MNG_SUPPORT_WRITE) || defined(MNG_ACCESS_CHUNKS) | 
|---|
| 350 | #define MNG_INCLUDE_JNG_WRITE | 
|---|
| 351 | #endif | 
|---|
| 352 | #endif | 
|---|
| 353 |  | 
|---|
| 354 | #ifdef MNG_FULL_CMS | 
|---|
| 355 | #define MNG_INCLUDE_LCMS | 
|---|
| 356 | #endif | 
|---|
| 357 |  | 
|---|
| 358 | #ifdef MNG_AUTO_DITHER | 
|---|
| 359 | #define MNG_INCLUDE_DITHERING | 
|---|
| 360 | #endif | 
|---|
| 361 |  | 
|---|
| 362 | #ifdef MNG_SUPPORT_TRACE | 
|---|
| 363 | #define MNG_INCLUDE_TRACE_PROCS | 
|---|
| 364 | #ifdef MNG_TRACE_TELLTALE | 
|---|
| 365 | #define MNG_INCLUDE_TRACE_STRINGS | 
|---|
| 366 | #endif | 
|---|
| 367 | #endif | 
|---|
| 368 |  | 
|---|
| 369 | #ifdef MNG_ERROR_TELLTALE | 
|---|
| 370 | #define MNG_INCLUDE_ERROR_STRINGS | 
|---|
| 371 | #endif | 
|---|
| 372 |  | 
|---|
| 373 | #ifdef MNG_OPTIMIZE_CHUNKINITFREE | 
|---|
| 374 | #ifndef MNG_OPTIMIZE_CHUNKACCESS | 
|---|
| 375 | #define MNG_OPTIMIZE_CHUNKACCESS | 
|---|
| 376 | #endif | 
|---|
| 377 | #else | 
|---|
| 378 | #ifdef MNG_OPTIMIZE_CHUNKACCESS | 
|---|
| 379 | #undef MNG_OPTIMIZE_CHUNKACCESS | 
|---|
| 380 | #endif | 
|---|
| 381 | #endif | 
|---|
| 382 |  | 
|---|
| 383 | /* ************************************************************************** */ | 
|---|
| 384 |  | 
|---|
| 385 | #include "libmng_types.h"              /* platform-specific definitions | 
|---|
| 386 | and other assorted stuff */ | 
|---|
| 387 |  | 
|---|
| 388 | /* ************************************************************************** */ | 
|---|
| 389 |  | 
|---|
| 390 | #ifdef __cplusplus | 
|---|
| 391 | extern "C" { | 
|---|
| 392 | #endif | 
|---|
| 393 |  | 
|---|
| 394 | /* ************************************************************************** */ | 
|---|
| 395 | /* *                                                                        * */ | 
|---|
| 396 | /* *  Versioning control                                                    * */ | 
|---|
| 397 | /* *                                                                        * */ | 
|---|
| 398 | /* *  version_so and version_dll will NOT reflect version_major;            * */ | 
|---|
| 399 | /* *  these will only change for binary incompatible changes (which will    * */ | 
|---|
| 400 | /* *  hopefully never occur)                                                * */ | 
|---|
| 401 | /* *  note: they will be set to 1 on the first public release !!!           * */ | 
|---|
| 402 | /* *                                                                        * */ | 
|---|
| 403 | /* *  first public release:                                                 * */ | 
|---|
| 404 | /* *  #define MNG_VERSION_TEXT    "1.0.0"                                   * */ | 
|---|
| 405 | /* *  #define MNG_VERSION_SO      1       eg. libmng.so.1                   * */ | 
|---|
| 406 | /* *  #define MNG_VERSION_DLL     1       eg. libmng.dll                    * */ | 
|---|
| 407 | /* *  #define MNG_VERSION_MAJOR   1                                         * */ | 
|---|
| 408 | /* *  #define MNG_VERSION_MINOR   0                                         * */ | 
|---|
| 409 | /* *  #define MNG_VERSION_RELEASE 0                                         * */ | 
|---|
| 410 | /* *                                                                        * */ | 
|---|
| 411 | /* *  bug fix & cosmetics :                                                 * */ | 
|---|
| 412 | /* *  #define MNG_VERSION_TEXT    "1.0.1"                                   * */ | 
|---|
| 413 | /* *  #define MNG_VERSION_SO      1       eg. libmng.so.1                   * */ | 
|---|
| 414 | /* *  #define MNG_VERSION_DLL     1       eg. libmng.dll                    * */ | 
|---|
| 415 | /* *  #define MNG_VERSION_MAJOR   1                                         * */ | 
|---|
| 416 | /* *  #define MNG_VERSION_MINOR   0                                         * */ | 
|---|
| 417 | /* *  #define MNG_VERSION_RELEASE 1                                         * */ | 
|---|
| 418 | /* *                                                                        * */ | 
|---|
| 419 | /* *  feature change :                                                      * */ | 
|---|
| 420 | /* *  #define MNG_VERSION_TEXT    "1.2.0"                                   * */ | 
|---|
| 421 | /* *  #define MNG_VERSION_SO      1       eg. libmng.so.1                   * */ | 
|---|
| 422 | /* *  #define MNG_VERSION_DLL     1       eg. libmng.dll                    * */ | 
|---|
| 423 | /* *  #define MNG_VERSION_MAJOR   1                                         * */ | 
|---|
| 424 | /* *  #define MNG_VERSION_MINOR   2                                         * */ | 
|---|
| 425 | /* *  #define MNG_VERSION_RELEASE 0                                         * */ | 
|---|
| 426 | /* *                                                                        * */ | 
|---|
| 427 | /* *  major rewrite (still binary compatible) :                             * */ | 
|---|
| 428 | /* *  #define MNG_VERSION_TEXT    "2.0.0"                                   * */ | 
|---|
| 429 | /* *  #define MNG_VERSION_SO      1       eg. libmng.so.1                   * */ | 
|---|
| 430 | /* *  #define MNG_VERSION_DLL     1       eg. libmng.dll                    * */ | 
|---|
| 431 | /* *  #define MNG_VERSION_MAJOR   2                                         * */ | 
|---|
| 432 | /* *  #define MNG_VERSION_MINOR   0                                         * */ | 
|---|
| 433 | /* *  #define MNG_VERSION_RELEASE 0                                         * */ | 
|---|
| 434 | /* *                                                                        * */ | 
|---|
| 435 | /* *  binary incompatible change:                                           * */ | 
|---|
| 436 | /* *  #define MNG_VERSION_TEXT    "13.0.0"                                  * */ | 
|---|
| 437 | /* *  #define MNG_VERSION_SO      2       eg. libmng.so.2                   * */ | 
|---|
| 438 | /* *  #define MNG_VERSION_DLL     2       eg. libmng2.dll                   * */ | 
|---|
| 439 | /* *  #define MNG_VERSION_MAJOR   13                                        * */ | 
|---|
| 440 | /* *  #define MNG_VERSION_MINOR   0                                         * */ | 
|---|
| 441 | /* *  #define MNG_VERSION_RELEASE 0                                         * */ | 
|---|
| 442 | /* *                                                                        * */ | 
|---|
| 443 | /* *  note that version_so & version_dll will always remain equal so it     * */ | 
|---|
| 444 | /* *  doesn't matter which one is called to do version-checking; they are   * */ | 
|---|
| 445 | /* *  just provided for their target platform                               * */ | 
|---|
| 446 | /* *                                                                        * */ | 
|---|
| 447 | /* ************************************************************************** */ | 
|---|
| 448 |  | 
|---|
| 449 | #define MNG_VERSION_TEXT    "1.0.10" | 
|---|
| 450 | #define MNG_VERSION_SO      1          /* eg. libmng.so.1  */ | 
|---|
| 451 | #define MNG_VERSION_DLL     1          /* but: libmng.dll (!) */ | 
|---|
| 452 | #define MNG_VERSION_MAJOR   1 | 
|---|
| 453 | #define MNG_VERSION_MINOR   0 | 
|---|
| 454 | #define MNG_VERSION_RELEASE 10 | 
|---|
| 455 | #define MNG_VERSION_BETA    MNG_FALSE | 
|---|
| 456 |  | 
|---|
| 457 | MNG_EXT mng_pchar MNG_DECL mng_version_text      (void); | 
|---|
| 458 | MNG_EXT mng_uint8 MNG_DECL mng_version_so        (void); | 
|---|
| 459 | MNG_EXT mng_uint8 MNG_DECL mng_version_dll       (void); | 
|---|
| 460 | MNG_EXT mng_uint8 MNG_DECL mng_version_major     (void); | 
|---|
| 461 | MNG_EXT mng_uint8 MNG_DECL mng_version_minor     (void); | 
|---|
| 462 | MNG_EXT mng_uint8 MNG_DECL mng_version_release   (void); | 
|---|
| 463 | MNG_EXT mng_bool  MNG_DECL mng_version_beta      (void); | 
|---|
| 464 |  | 
|---|
| 465 | /* use the following call to check wether the version of libmng your app | 
|---|
| 466 | is using supports the given function; this is useful in apps that dynamically | 
|---|
| 467 | load the library to make sure a certain function will work; the result will | 
|---|
| 468 | be MNG_TRUE if the given function is implemented in this version of the library; | 
|---|
| 469 | Major/Minor/Version indicate the version the function became available; | 
|---|
| 470 | (if these fields are zero the function is not yet implemented!) */ | 
|---|
| 471 | #ifdef MNG_SUPPORT_FUNCQUERY | 
|---|
| 472 | MNG_EXT mng_bool  MNG_DECL mng_supports_func     (mng_pchar  zFunction, | 
|---|
| 473 | mng_uint8* iMajor, | 
|---|
| 474 | mng_uint8* iMinor, | 
|---|
| 475 | mng_uint8* iRelease); | 
|---|
| 476 | #endif | 
|---|
| 477 |  | 
|---|
| 478 | /* ************************************************************************** */ | 
|---|
| 479 | /* *                                                                        * */ | 
|---|
| 480 | /* *  MNG/PNG specification level conformance                               * */ | 
|---|
| 481 | /* *                                                                        * */ | 
|---|
| 482 | /* ************************************************************************** */ | 
|---|
| 483 |  | 
|---|
| 484 | #define MNG_PNG_VERSION     "1.2" | 
|---|
| 485 | #define MNG_PNG_VERSION_MAJ 1 | 
|---|
| 486 | #define MNG_PNG_VERSION_MIN 2 | 
|---|
| 487 |  | 
|---|
| 488 | #define MNG_MNG_VERSION     "1.1" | 
|---|
| 489 | #define MNG_MNG_VERSION_MAJ 1 | 
|---|
| 490 | #define MNG_MNG_VERSION_MIN 1 | 
|---|
| 491 | #define MNG_MNG_DRAFT       99         /* deprecated; | 
|---|
| 492 | only used for nEED "MNG DRAFT nn" */ | 
|---|
| 493 |  | 
|---|
| 494 | /* ************************************************************************** */ | 
|---|
| 495 | /* *                                                                        * */ | 
|---|
| 496 | /* *  High-level application functions                                      * */ | 
|---|
| 497 | /* *                                                                        * */ | 
|---|
| 498 | /* ************************************************************************** */ | 
|---|
| 499 |  | 
|---|
| 500 | /* library initialization function */ | 
|---|
| 501 | /* must be the first called before anything can be done at all */ | 
|---|
| 502 | /* initializes internal datastructure(s) */ | 
|---|
| 503 | MNG_EXT mng_handle  MNG_DECL mng_initialize      (mng_ptr       pUserdata, | 
|---|
| 504 | mng_memalloc  fMemalloc, | 
|---|
| 505 | mng_memfree   fMemfree, | 
|---|
| 506 | mng_traceproc fTraceproc); | 
|---|
| 507 |  | 
|---|
| 508 | /* library reset function */ | 
|---|
| 509 | /* can be used to re-initialize the library, so another image can be | 
|---|
| 510 | processed. there's absolutely no harm in calling it, even when it's not | 
|---|
| 511 | really necessary */ | 
|---|
| 512 | MNG_EXT mng_retcode MNG_DECL mng_reset           (mng_handle    hHandle); | 
|---|
| 513 |  | 
|---|
| 514 | /* library cleanup function */ | 
|---|
| 515 | /* must be the last called to clean up internal datastructure(s) */ | 
|---|
| 516 | MNG_EXT mng_retcode MNG_DECL mng_cleanup         (mng_handle*   hHandle); | 
|---|
| 517 |  | 
|---|
| 518 | /* high-level read functions */ | 
|---|
| 519 | /* use mng_read if you simply want to read a Network Graphic */ | 
|---|
| 520 | /* mng_read_resume is used in I/O-read-suspension scenarios, where the | 
|---|
| 521 | "readdata" callback may return FALSE & length=0 indicating its buffer is | 
|---|
| 522 | depleted or too short to supply the required bytes, and the buffer needs | 
|---|
| 523 | to be refilled; libmng will return the errorcode MNG_NEEDMOREDATA telling | 
|---|
| 524 | the app to refill its read-buffer after which it must call mng_read_resume | 
|---|
| 525 | (or mng_display_resume if it also displaying the image simultaneously) */ | 
|---|
| 526 | #ifdef MNG_SUPPORT_READ | 
|---|
| 527 | MNG_EXT mng_retcode MNG_DECL mng_read            (mng_handle    hHandle); | 
|---|
| 528 | MNG_EXT mng_retcode MNG_DECL mng_read_resume     (mng_handle    hHandle); | 
|---|
| 529 | #endif | 
|---|
| 530 |  | 
|---|
| 531 | /* high-level "data push" functions */ | 
|---|
| 532 | /* these functions can be used in situations where data is streaming into the | 
|---|
| 533 | application and needs to be buffered by libmng before it is actually | 
|---|
| 534 | requested by libmng itself. the pushing complements the normal reading | 
|---|
| 535 | mechanism, but applications can decide to always return "0 bytes read" to | 
|---|
| 536 | make libmng go into suspension mode with the returncode MNG_NEEDMOREDATA */ | 
|---|
| 537 | /* mng_read_pushdata can be used to push blobs of data of arbitrary size; | 
|---|
| 538 | mng_read_pushsig and mng_read_pushchunk can be used if the application | 
|---|
| 539 | has already done some low-level decoding (eg. at the chunk level) */ | 
|---|
| 540 | /* the data being pushed into libmng with mng_read_pushdata *must* contain | 
|---|
| 541 | the regular 4-byte chunklength, but *must not* contain it with | 
|---|
| 542 | mng_read_pushchunk!!! */ | 
|---|
| 543 | /* mng_read_pushsig is used to prevent libmng from trying to parse the regular | 
|---|
| 544 | PNG/JNG/MNG signature bytes; the application must have done this itself | 
|---|
| 545 | and *must* indicate the proper type in the function call or things will | 
|---|
| 546 | go amiss!! | 
|---|
| 547 | also you *must* call this first, so pretty much right after mng_initialize | 
|---|
| 548 | and certainly before any call to mng_read or mng_readdisplay !!!! */ | 
|---|
| 549 | /* IMPORTANT!!! data can only be safely pushed when libmng is in a | 
|---|
| 550 | "wait" state; eg. during MNG_NEEDTIMERWAIT, MNG_NEEDSECTIONWAIT or | 
|---|
| 551 | MNG_NEEDMOREDATA !!! this just means you can't have one thread displaying | 
|---|
| 552 | and another thread pushing data !!! */ | 
|---|
| 553 | /* if bOwnership = MNG_TRUE, libmng will retain the supplied pointer and | 
|---|
| 554 | *will* expect the buffer to remain available until libmng is finished | 
|---|
| 555 | with it; what happens then depends on whether or not you have set the | 
|---|
| 556 | releasedata() callback; if this is set than the supplied buffer will | 
|---|
| 557 | be returned through this callback and your application can take care of | 
|---|
| 558 | cleaning it up, otherwise libmng will use its internal freeing mechanism | 
|---|
| 559 | (which, depending on compile-options, will be the standard C free() call, | 
|---|
| 560 | or the memfree() callback */ | 
|---|
| 561 | /* if bOwnership = MNG_FALSE, libmng will just copy the data into its own | 
|---|
| 562 | buffers and dispose of it in the normal way */ | 
|---|
| 563 | #ifdef MNG_SUPPORT_READ | 
|---|
| 564 | MNG_EXT mng_retcode MNG_DECL mng_read_pushdata   (mng_handle    hHandle, | 
|---|
| 565 | mng_ptr       pData, | 
|---|
| 566 | mng_size_t    iLength, | 
|---|
| 567 | mng_bool      bTakeownership); | 
|---|
| 568 | MNG_EXT mng_retcode MNG_DECL mng_read_pushsig    (mng_handle    hHandle, | 
|---|
| 569 | mng_imgtype   eSigtype); | 
|---|
| 570 | MNG_EXT mng_retcode MNG_DECL mng_read_pushchunk  (mng_handle    hHandle, | 
|---|
| 571 | mng_ptr       pChunk, | 
|---|
| 572 | mng_size_t    iLength, | 
|---|
| 573 | mng_bool      bTakeownership); | 
|---|
| 574 | #endif | 
|---|
| 575 |  | 
|---|
| 576 | /* high-level write & create functions */ | 
|---|
| 577 | /* use this if you want to write a previously read Network Graphic or | 
|---|
| 578 | if you want to create a new graphic and write it */ | 
|---|
| 579 | /* to write a previously read graphic you must have defined MNG_STORE_CHUNKS */ | 
|---|
| 580 | /* to create a new graphic you'll also need access to the chunks | 
|---|
| 581 | (eg. #define MNG_ACCESS_CHUNKS !) */ | 
|---|
| 582 | #ifdef MNG_SUPPORT_WRITE | 
|---|
| 583 | MNG_EXT mng_retcode MNG_DECL mng_write           (mng_handle    hHandle); | 
|---|
| 584 | MNG_EXT mng_retcode MNG_DECL mng_create          (mng_handle    hHandle); | 
|---|
| 585 | #endif | 
|---|
| 586 |  | 
|---|
| 587 | /* high-level display functions */ | 
|---|
| 588 | /* use these to display a previously read or created graphic or | 
|---|
| 589 | to read & display a graphic simultaneously */ | 
|---|
| 590 | /* mng_display_resume should be called after a timer-interval | 
|---|
| 591 | expires that was set through the settimer-callback, after a | 
|---|
| 592 | read suspension-break, or, to resume an animation after a call | 
|---|
| 593 | to mng_display_freeze/mng_display_reset */ | 
|---|
| 594 | /* mng_display_freeze thru mng_display_gotime can be used to influence | 
|---|
| 595 | the display of an image, BUT ONLY if it has been completely read! */ | 
|---|
| 596 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 597 | #ifdef MNG_SUPPORT_READ | 
|---|
| 598 | MNG_EXT mng_retcode MNG_DECL mng_readdisplay     (mng_handle    hHandle); | 
|---|
| 599 | #endif | 
|---|
| 600 | MNG_EXT mng_retcode MNG_DECL mng_display         (mng_handle    hHandle); | 
|---|
| 601 | MNG_EXT mng_retcode MNG_DECL mng_display_resume  (mng_handle    hHandle); | 
|---|
| 602 | MNG_EXT mng_retcode MNG_DECL mng_display_freeze  (mng_handle    hHandle); | 
|---|
| 603 | MNG_EXT mng_retcode MNG_DECL mng_display_reset   (mng_handle    hHandle); | 
|---|
| 604 | #ifndef MNG_NO_DISPLAY_GO_SUPPORTED | 
|---|
| 605 | MNG_EXT mng_retcode MNG_DECL mng_display_goframe (mng_handle    hHandle, | 
|---|
| 606 | mng_uint32    iFramenr); | 
|---|
| 607 | MNG_EXT mng_retcode MNG_DECL mng_display_golayer (mng_handle    hHandle, | 
|---|
| 608 | mng_uint32    iLayernr); | 
|---|
| 609 | MNG_EXT mng_retcode MNG_DECL mng_display_gotime  (mng_handle    hHandle, | 
|---|
| 610 | mng_uint32    iPlaytime); | 
|---|
| 611 | #endif | 
|---|
| 612 | #endif /* MNG_SUPPORT_DISPLAY */ | 
|---|
| 613 |  | 
|---|
| 614 | /* event processing function */ | 
|---|
| 615 | /* this needs to be called by the app when dynamic MNG is enabled and | 
|---|
| 616 | a specific event occurs in the user-interface */ | 
|---|
| 617 | #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_SUPPORT_DYNAMICMNG) | 
|---|
| 618 | MNG_EXT mng_retcode MNG_DECL mng_trapevent       (mng_handle    hHandle, | 
|---|
| 619 | mng_uint8     iEventtype, | 
|---|
| 620 | mng_int32     iX, | 
|---|
| 621 | mng_int32     iY); | 
|---|
| 622 | #endif | 
|---|
| 623 |  | 
|---|
| 624 | /* error reporting function */ | 
|---|
| 625 | /* use this if you need more detailed info on the last error */ | 
|---|
| 626 | /* iExtra1 & iExtra2 may contain errorcodes from zlib, jpeg, etc... */ | 
|---|
| 627 | /* zErrortext will only be filled if you #define MNG_ERROR_TELLTALE */ | 
|---|
| 628 | MNG_EXT mng_retcode MNG_DECL mng_getlasterror    (mng_handle    hHandle, | 
|---|
| 629 | mng_int8*     iSeverity, | 
|---|
| 630 | mng_chunkid*  iChunkname, | 
|---|
| 631 | mng_uint32*   iChunkseq, | 
|---|
| 632 | mng_int32*    iExtra1, | 
|---|
| 633 | mng_int32*    iExtra2, | 
|---|
| 634 | mng_pchar*    zErrortext); | 
|---|
| 635 |  | 
|---|
| 636 | /* ************************************************************************** */ | 
|---|
| 637 | /* *                                                                        * */ | 
|---|
| 638 | /* *  Callback set functions                                                * */ | 
|---|
| 639 | /* *                                                                        * */ | 
|---|
| 640 | /* ************************************************************************** */ | 
|---|
| 641 |  | 
|---|
| 642 | /* memory callbacks */ | 
|---|
| 643 | /* called to allocate and release internal datastructures */ | 
|---|
| 644 | #ifndef MNG_INTERNAL_MEMMNGMT | 
|---|
| 645 | MNG_EXT mng_retcode MNG_DECL mng_setcb_memalloc      (mng_handle        hHandle, | 
|---|
| 646 | mng_memalloc      fProc); | 
|---|
| 647 | MNG_EXT mng_retcode MNG_DECL mng_setcb_memfree       (mng_handle        hHandle, | 
|---|
| 648 | mng_memfree       fProc); | 
|---|
| 649 | #endif /* MNG_INTERNAL_MEMMNGMT */ | 
|---|
| 650 |  | 
|---|
| 651 | /* open- & close-stream callbacks */ | 
|---|
| 652 | /* called to open & close streams for input or output */ | 
|---|
| 653 | #if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE) | 
|---|
| 654 | #ifndef MNG_NO_OPEN_CLOSE_STREAM | 
|---|
| 655 | MNG_EXT mng_retcode MNG_DECL mng_setcb_openstream    (mng_handle        hHandle, | 
|---|
| 656 | mng_openstream    fProc); | 
|---|
| 657 | MNG_EXT mng_retcode MNG_DECL mng_setcb_closestream   (mng_handle        hHandle, | 
|---|
| 658 | mng_closestream   fProc); | 
|---|
| 659 | #endif | 
|---|
| 660 | #endif | 
|---|
| 661 |  | 
|---|
| 662 | /* read callback */ | 
|---|
| 663 | /* called to get data from the inputstream */ | 
|---|
| 664 | #ifdef MNG_SUPPORT_READ | 
|---|
| 665 | MNG_EXT mng_retcode MNG_DECL mng_setcb_readdata      (mng_handle        hHandle, | 
|---|
| 666 | mng_readdata      fProc); | 
|---|
| 667 | #endif | 
|---|
| 668 |  | 
|---|
| 669 | /* write callback */ | 
|---|
| 670 | /* called to put data into the outputstream */ | 
|---|
| 671 | #ifdef MNG_SUPPORT_WRITE | 
|---|
| 672 | MNG_EXT mng_retcode MNG_DECL mng_setcb_writedata     (mng_handle        hHandle, | 
|---|
| 673 | mng_writedata     fProc); | 
|---|
| 674 | #endif | 
|---|
| 675 |  | 
|---|
| 676 | /* error callback */ | 
|---|
| 677 | /* called when an error occurs */ | 
|---|
| 678 | /* the application can determine if the error is recoverable, | 
|---|
| 679 | and may inform the library by setting specific returncodes */ | 
|---|
| 680 | MNG_EXT mng_retcode MNG_DECL mng_setcb_errorproc     (mng_handle        hHandle, | 
|---|
| 681 | mng_errorproc     fProc); | 
|---|
| 682 |  | 
|---|
| 683 | /* trace callback */ | 
|---|
| 684 | /* called to show the currently executing function */ | 
|---|
| 685 | #ifdef MNG_SUPPORT_TRACE | 
|---|
| 686 | MNG_EXT mng_retcode MNG_DECL mng_setcb_traceproc     (mng_handle        hHandle, | 
|---|
| 687 | mng_traceproc     fProc); | 
|---|
| 688 | #endif | 
|---|
| 689 |  | 
|---|
| 690 | /* callbacks for read processing */ | 
|---|
| 691 | /* processheader is called when all header information has been gathered | 
|---|
| 692 | from the inputstream */ | 
|---|
| 693 | /* processtext is called for every tEXt, zTXt and iTXt chunk in the | 
|---|
| 694 | inputstream (iType=0 for tEXt, 1 for zTXt and 2 for iTXt); | 
|---|
| 695 | you can call get_imagelevel to check at what nesting-level the chunk is | 
|---|
| 696 | encountered (eg. tEXt inside an embedded image inside a MNG -> level == 2; | 
|---|
| 697 | in most other case -> level == 1) */ | 
|---|
| 698 | /* processsave & processseek are called for SAVE/SEEK chunks */ | 
|---|
| 699 | /* processneed is called for the nEED chunk; you should specify a callback | 
|---|
| 700 | for this as the default behavior will be to abort processing, unless | 
|---|
| 701 | the requirement is one of: | 
|---|
| 702 | - a supported chunk | 
|---|
| 703 | - the text "draft nn" where nn is a numeric value | 
|---|
| 704 | - the text "MNG-1.0" or "MNG-1.1" | 
|---|
| 705 | - the text "CACHEOFF" */ | 
|---|
| 706 | /* processmend is called at the very end of the animation-stream; | 
|---|
| 707 | note that this may not be the end of the animation though! */ | 
|---|
| 708 | /* processterm is called when a TERM chunk is encountered; there can be only | 
|---|
| 709 | 1 in the stream (or none) */ | 
|---|
| 710 | /* processunknown is called after reading each non-critical unknown chunk */ | 
|---|
| 711 | #ifdef MNG_SUPPORT_READ | 
|---|
| 712 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processheader (mng_handle        hHandle, | 
|---|
| 713 | mng_processheader fProc); | 
|---|
| 714 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processtext   (mng_handle        hHandle, | 
|---|
| 715 | mng_processtext   fProc); | 
|---|
| 716 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processsave   (mng_handle        hHandle, | 
|---|
| 717 | mng_processsave   fProc); | 
|---|
| 718 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processseek   (mng_handle        hHandle, | 
|---|
| 719 | mng_processseek   fProc); | 
|---|
| 720 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processneed   (mng_handle        hHandle, | 
|---|
| 721 | mng_processneed   fProc); | 
|---|
| 722 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processmend   (mng_handle        hHandle, | 
|---|
| 723 | mng_processmend   fProc); | 
|---|
| 724 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processterm   (mng_handle        hHandle, | 
|---|
| 725 | mng_processterm   fProc); | 
|---|
| 726 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processunknown(mng_handle        hHandle, | 
|---|
| 727 | mng_processunknown fProc); | 
|---|
| 728 | #endif | 
|---|
| 729 |  | 
|---|
| 730 | /* callbacks for display processing */ | 
|---|
| 731 | /* getcanvasline is called to get an access-pointer to a line on the | 
|---|
| 732 | drawing-canvas */ | 
|---|
| 733 | /* getbkgdline is called to get an access-pointer to a line from the | 
|---|
| 734 | background-canvas */ | 
|---|
| 735 | /* refresh is called to inform the GUI to redraw the current canvas onto | 
|---|
| 736 | its output device (eg. in Win32 this would mean sending an | 
|---|
| 737 | invalidate message for the specified region */ | 
|---|
| 738 | /* NOTE that the update-region is specified as x,y,width,height; eg. the | 
|---|
| 739 | invalidate message for Windows requires left,top,right,bottom parameters | 
|---|
| 740 | where the bottom-right is exclusive of the region!! | 
|---|
| 741 | to get these correctly is as simple as: | 
|---|
| 742 | left   = x; | 
|---|
| 743 | top    = y; | 
|---|
| 744 | right  = x + width; | 
|---|
| 745 | bottom = y + height; | 
|---|
| 746 | if your implementation requires inclusive points, simply subtract 1 from | 
|---|
| 747 | both the right & bottom values calculated above. | 
|---|
| 748 | */ | 
|---|
| 749 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 750 | MNG_EXT mng_retcode MNG_DECL mng_setcb_getcanvasline (mng_handle        hHandle, | 
|---|
| 751 | mng_getcanvasline fProc); | 
|---|
| 752 | MNG_EXT mng_retcode MNG_DECL mng_setcb_getbkgdline   (mng_handle        hHandle, | 
|---|
| 753 | mng_getbkgdline   fProc); | 
|---|
| 754 | MNG_EXT mng_retcode MNG_DECL mng_setcb_getalphaline  (mng_handle        hHandle, | 
|---|
| 755 | mng_getalphaline  fProc); | 
|---|
| 756 | MNG_EXT mng_retcode MNG_DECL mng_setcb_refresh       (mng_handle        hHandle, | 
|---|
| 757 | mng_refresh       fProc); | 
|---|
| 758 |  | 
|---|
| 759 | /* timing callbacks */ | 
|---|
| 760 | /* gettickcount is called to get the system tickcount (milliseconds); | 
|---|
| 761 | this is used to determine the remaining interval between frames */ | 
|---|
| 762 | /* settimer is called to inform the application that it should set a timer; | 
|---|
| 763 | when the timer is triggered the app must call mng_display_resume */ | 
|---|
| 764 | MNG_EXT mng_retcode MNG_DECL mng_setcb_gettickcount  (mng_handle        hHandle, | 
|---|
| 765 | mng_gettickcount  fProc); | 
|---|
| 766 | MNG_EXT mng_retcode MNG_DECL mng_setcb_settimer      (mng_handle        hHandle, | 
|---|
| 767 | mng_settimer      fProc); | 
|---|
| 768 |  | 
|---|
| 769 | /* color management callbacks */ | 
|---|
| 770 | /* called to transmit color management information to the application */ | 
|---|
| 771 | /* these are only used when you #define MNG_APP_CMS */ | 
|---|
| 772 | #ifdef MNG_APP_CMS | 
|---|
| 773 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processgamma  (mng_handle        hHandle, | 
|---|
| 774 | mng_processgamma  fProc); | 
|---|
| 775 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processchroma (mng_handle        hHandle, | 
|---|
| 776 | mng_processchroma fProc); | 
|---|
| 777 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processsrgb   (mng_handle        hHandle, | 
|---|
| 778 | mng_processsrgb   fProc); | 
|---|
| 779 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processiccp   (mng_handle        hHandle, | 
|---|
| 780 | mng_processiccp   fProc); | 
|---|
| 781 | MNG_EXT mng_retcode MNG_DECL mng_setcb_processarow   (mng_handle        hHandle, | 
|---|
| 782 | mng_processarow   fProc); | 
|---|
| 783 | #endif /* MNG_APP_CMS */ | 
|---|
| 784 | #endif /* MNG_SUPPORT_DISPLAY */ | 
|---|
| 785 |  | 
|---|
| 786 | /* release push data callback */ | 
|---|
| 787 | /* used when the app pushes data into libmng (as opposed to libmng pulling it) | 
|---|
| 788 | and relinquishes ownership of the pushed data-buffer, but *does* want to | 
|---|
| 789 | release (free) the buffer itself once libmng has finished processing it */ | 
|---|
| 790 | #ifdef MNG_SUPPORT_READ | 
|---|
| 791 | MNG_EXT mng_retcode MNG_DECL mng_setcb_releasedata   (mng_handle        hHandle, | 
|---|
| 792 | mng_releasedata   fProc); | 
|---|
| 793 | #endif | 
|---|
| 794 |  | 
|---|
| 795 | /* ************************************************************************** */ | 
|---|
| 796 | /* *                                                                        * */ | 
|---|
| 797 | /* *  Callback get functions                                                * */ | 
|---|
| 798 | /* *                                                                        * */ | 
|---|
| 799 | /* ************************************************************************** */ | 
|---|
| 800 |  | 
|---|
| 801 | /* see _setcb_ */ | 
|---|
| 802 | #ifndef MNG_INTERNAL_MEMMNGMT | 
|---|
| 803 | MNG_EXT mng_memalloc      MNG_DECL mng_getcb_memalloc      (mng_handle hHandle); | 
|---|
| 804 | MNG_EXT mng_memfree       MNG_DECL mng_getcb_memfree       (mng_handle hHandle); | 
|---|
| 805 | #endif | 
|---|
| 806 |  | 
|---|
| 807 | /* see _setcb_ */ | 
|---|
| 808 | #ifdef MNG_SUPPORT_READ | 
|---|
| 809 | MNG_EXT mng_releasedata   MNG_DECL mng_getcb_releasedata   (mng_handle hHandle); | 
|---|
| 810 | #endif | 
|---|
| 811 |  | 
|---|
| 812 | /* see _setcb_ */ | 
|---|
| 813 | #if defined(MNG_SUPPORT_READ) || defined(MNG_WRITE_SUPPORT) | 
|---|
| 814 | #ifndef MNG_NO_OPEN_CLOSE_STREAM | 
|---|
| 815 | MNG_EXT mng_openstream    MNG_DECL mng_getcb_openstream    (mng_handle hHandle); | 
|---|
| 816 | MNG_EXT mng_closestream   MNG_DECL mng_getcb_closestream   (mng_handle hHandle); | 
|---|
| 817 | #endif | 
|---|
| 818 | #endif | 
|---|
| 819 |  | 
|---|
| 820 | /* see _setcb_ */ | 
|---|
| 821 | #ifdef MNG_SUPPORT_READ | 
|---|
| 822 | MNG_EXT mng_readdata      MNG_DECL mng_getcb_readdata      (mng_handle hHandle); | 
|---|
| 823 | #endif | 
|---|
| 824 |  | 
|---|
| 825 | /* see _setcb_ */ | 
|---|
| 826 | #ifdef MNG_SUPPORT_WRITE | 
|---|
| 827 | MNG_EXT mng_writedata     MNG_DECL mng_getcb_writedata     (mng_handle hHandle); | 
|---|
| 828 | #endif | 
|---|
| 829 |  | 
|---|
| 830 | /* see _setcb_ */ | 
|---|
| 831 | MNG_EXT mng_errorproc     MNG_DECL mng_getcb_errorproc     (mng_handle hHandle); | 
|---|
| 832 |  | 
|---|
| 833 | /* see _setcb_ */ | 
|---|
| 834 | #ifdef MNG_SUPPORT_TRACE | 
|---|
| 835 | MNG_EXT mng_traceproc     MNG_DECL mng_getcb_traceproc     (mng_handle hHandle); | 
|---|
| 836 | #endif | 
|---|
| 837 |  | 
|---|
| 838 | /* see _setcb_ */ | 
|---|
| 839 | #ifdef MNG_SUPPORT_READ | 
|---|
| 840 | MNG_EXT mng_processheader MNG_DECL mng_getcb_processheader (mng_handle hHandle); | 
|---|
| 841 | MNG_EXT mng_processtext   MNG_DECL mng_getcb_processtext   (mng_handle hHandle); | 
|---|
| 842 | MNG_EXT mng_processsave   MNG_DECL mng_getcb_processsave   (mng_handle hHandle); | 
|---|
| 843 | MNG_EXT mng_processseek   MNG_DECL mng_getcb_processseek   (mng_handle hHandle); | 
|---|
| 844 | MNG_EXT mng_processneed   MNG_DECL mng_getcb_processneed   (mng_handle hHandle); | 
|---|
| 845 | MNG_EXT mng_processunknown MNG_DECL mng_getcb_processunknown (mng_handle hHandle); | 
|---|
| 846 | MNG_EXT mng_processterm   MNG_DECL mng_getcb_processterm   (mng_handle hHandle); | 
|---|
| 847 | #endif | 
|---|
| 848 |  | 
|---|
| 849 | /* see _setcb_ */ | 
|---|
| 850 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 851 | MNG_EXT mng_getcanvasline MNG_DECL mng_getcb_getcanvasline (mng_handle hHandle); | 
|---|
| 852 | MNG_EXT mng_getbkgdline   MNG_DECL mng_getcb_getbkgdline   (mng_handle hHandle); | 
|---|
| 853 | MNG_EXT mng_getalphaline  MNG_DECL mng_getcb_getalphaline  (mng_handle hHandle); | 
|---|
| 854 | MNG_EXT mng_refresh       MNG_DECL mng_getcb_refresh       (mng_handle hHandle); | 
|---|
| 855 |  | 
|---|
| 856 | /* see _setcb_ */ | 
|---|
| 857 | MNG_EXT mng_gettickcount  MNG_DECL mng_getcb_gettickcount  (mng_handle hHandle); | 
|---|
| 858 | MNG_EXT mng_settimer      MNG_DECL mng_getcb_settimer      (mng_handle hHandle); | 
|---|
| 859 |  | 
|---|
| 860 | /* see _setcb_ */ | 
|---|
| 861 | #ifdef MNG_APP_CMS | 
|---|
| 862 | MNG_EXT mng_processgamma  MNG_DECL mng_getcb_processgamma  (mng_handle hHandle); | 
|---|
| 863 | MNG_EXT mng_processchroma MNG_DECL mng_getcb_processchroma (mng_handle hHandle); | 
|---|
| 864 | MNG_EXT mng_processsrgb   MNG_DECL mng_getcb_processsrgb   (mng_handle hHandle); | 
|---|
| 865 | MNG_EXT mng_processiccp   MNG_DECL mng_getcb_processiccp   (mng_handle hHandle); | 
|---|
| 866 | MNG_EXT mng_processarow   MNG_DECL mng_getcb_processarow   (mng_handle hHandle); | 
|---|
| 867 | #endif /* MNG_APP_CMS */ | 
|---|
| 868 | #endif /* MNG_SUPPORT_DISPLAY */ | 
|---|
| 869 |  | 
|---|
| 870 | /* ************************************************************************** */ | 
|---|
| 871 | /* *                                                                        * */ | 
|---|
| 872 | /* *  Property set functions                                                * */ | 
|---|
| 873 | /* *                                                                        * */ | 
|---|
| 874 | /* ************************************************************************** */ | 
|---|
| 875 |  | 
|---|
| 876 | /* Application data pointer */ | 
|---|
| 877 | /* provided for application use; not used by the library */ | 
|---|
| 878 | MNG_EXT mng_retcode MNG_DECL mng_set_userdata        (mng_handle        hHandle, | 
|---|
| 879 | mng_ptr           pUserdata); | 
|---|
| 880 |  | 
|---|
| 881 | /* The style of the drawing- & background-canvas */ | 
|---|
| 882 | /* only used for displaying images */ | 
|---|
| 883 | /* both are initially set to 24-bit RGB (eg. 8-bit per channel) */ | 
|---|
| 884 | MNG_EXT mng_retcode MNG_DECL mng_set_canvasstyle     (mng_handle        hHandle, | 
|---|
| 885 | mng_uint32        iStyle); | 
|---|
| 886 | MNG_EXT mng_retcode MNG_DECL mng_set_bkgdstyle       (mng_handle        hHandle, | 
|---|
| 887 | mng_uint32        iStyle); | 
|---|
| 888 |  | 
|---|
| 889 | /* The default background color */ | 
|---|
| 890 | /* only used if the getbkgdline callback is not defined */ | 
|---|
| 891 | /* for initially painting the canvas and restoring (part of) the background */ | 
|---|
| 892 | MNG_EXT mng_retcode MNG_DECL mng_set_bgcolor         (mng_handle        hHandle, | 
|---|
| 893 | mng_uint16        iRed, | 
|---|
| 894 | mng_uint16        iGreen, | 
|---|
| 895 | mng_uint16        iBlue); | 
|---|
| 896 |  | 
|---|
| 897 | /* Indicates preferred use of the bKGD chunk for PNG images */ | 
|---|
| 898 | MNG_EXT mng_retcode MNG_DECL mng_set_usebkgd         (mng_handle        hHandle, | 
|---|
| 899 | mng_bool          bUseBKGD); | 
|---|
| 900 |  | 
|---|
| 901 | /* Indicates storage of read chunks */ | 
|---|
| 902 | /* only useful if you #define mng_store_chunks */ | 
|---|
| 903 | /* can be used to dynamically change storage management */ | 
|---|
| 904 | MNG_EXT mng_retcode MNG_DECL mng_set_storechunks     (mng_handle        hHandle, | 
|---|
| 905 | mng_bool          bStorechunks); | 
|---|
| 906 |  | 
|---|
| 907 | /* Indicates breaks requested when processing SAVE/SEEK */ | 
|---|
| 908 | /* set this to let the app handle section breaks; the library will return | 
|---|
| 909 | MNG_NEEDSECTIONWAIT return-codes for each SEEK chunk */ | 
|---|
| 910 | MNG_EXT mng_retcode MNG_DECL mng_set_sectionbreaks   (mng_handle        hHandle, | 
|---|
| 911 | mng_bool          bSectionbreaks); | 
|---|
| 912 |  | 
|---|
| 913 | /* Indicates storage of playback info (ON by default!) */ | 
|---|
| 914 | /* can be used to turn off caching of playback info; this is useful to | 
|---|
| 915 | specifically optimize MNG-video playback; note that if caching is turned off | 
|---|
| 916 | LOOP chunks will be flagged as errors! TERM chunks will be ignored and only | 
|---|
| 917 | passed to the processterm() callback if it is defined by the app; also, this | 
|---|
| 918 | feature can only be used with mng_readdisplay(); mng_read(), | 
|---|
| 919 | mng_display_reset() and mng_display_goxxxx() will return an error; | 
|---|
| 920 | once this option is turned off it can't be turned on for the same stream!!! */ | 
|---|
| 921 | MNG_EXT mng_retcode MNG_DECL mng_set_cacheplayback   (mng_handle        hHandle, | 
|---|
| 922 | mng_bool          bCacheplayback); | 
|---|
| 923 |  | 
|---|
| 924 | /* Indicates automatic progressive refreshes for large images (ON by default!) */ | 
|---|
| 925 | /* turn this off if you do not want intermittent painting while a large image | 
|---|
| 926 | is being read. useful if the input-stream comes from a fast medium, such | 
|---|
| 927 | as a local harddisk */ | 
|---|
| 928 | MNG_EXT mng_retcode MNG_DECL mng_set_doprogressive   (mng_handle        hHandle, | 
|---|
| 929 | mng_bool          bDoProgressive); | 
|---|
| 930 |  | 
|---|
| 931 | /* Indicates existence and required checking of the CRC in input streams, | 
|---|
| 932 | and generation in output streams */ | 
|---|
| 933 | /* !!!! Use this ONLY if you know what you are doing !!!! */ | 
|---|
| 934 | /* The value is a combination of the following flags: | 
|---|
| 935 | 0x0000001 = CRC is present in the input stream | 
|---|
| 936 | 0x0000002 = CRC must be generated in the output stream | 
|---|
| 937 | 0x0000010 = CRC should be checked for ancillary chunks | 
|---|
| 938 | 0x0000020 = a faulty CRC for ancillary chunks generates a warning only | 
|---|
| 939 | 0x0000040 = a faulty CRC for ancillary chunks generates an error | 
|---|
| 940 | 0x0000100 = CRC should be checked for critical chunks | 
|---|
| 941 | 0x0000200 = a faulty CRC for critical chunks generates a warning only | 
|---|
| 942 | 0x0000400 = a faulty CRC for critical chunks generates an error | 
|---|
| 943 |  | 
|---|
| 944 | The default is 0x00000533 = CRC present in input streams; should be checked; | 
|---|
| 945 | warning for ancillary chunks; error for critical | 
|---|
| 946 | chunks; generate CRC for output streams | 
|---|
| 947 |  | 
|---|
| 948 | Note that some combinations are meaningless; eg. if the CRC is not present | 
|---|
| 949 | it won't do any good to turn the checking flags on; if a checking flag | 
|---|
| 950 | is off, it doesn't do any good to ask for generation of warnings or errors. | 
|---|
| 951 | Also libmng will generate either an error or a warning, not both, | 
|---|
| 952 | so if you specify both the default will be to generate an error! | 
|---|
| 953 | The only useful combinations for input are 331, 551, 351, 531, 0, 301, 501 | 
|---|
| 954 | and optionally 031 and 051, but only checking ancillary chunks and not | 
|---|
| 955 | critical chunks is generally not a very good idea!!! | 
|---|
| 956 | If you've also writing these values should be combined with 0x02 if | 
|---|
| 957 | CRC's are required in the output stream | 
|---|
| 958 | */ | 
|---|
| 959 | MNG_EXT mng_retcode MNG_DECL mng_set_crcmode         (mng_handle        hHandle, | 
|---|
| 960 | mng_uint32        iCrcmode); | 
|---|
| 961 |  | 
|---|
| 962 | /* Color-management necessaries */ | 
|---|
| 963 | /* | 
|---|
| 964 | ************************************************************************* | 
|---|
| 965 | !!!!!!!! THIS NEXT BIT IS IMPORTANT !!!!!!!!! | 
|---|
| 966 | ************************************************************************* | 
|---|
| 967 |  | 
|---|
| 968 | If you have defined MNG_FULL_CMS (and are using lcms), you will have to | 
|---|
| 969 | think hard about the following routines. | 
|---|
| 970 |  | 
|---|
| 971 | lcms requires 2 profiles to work off the differences in the input-image | 
|---|
| 972 | and the output-device. The ICC profile for the input-image will be | 
|---|
| 973 | embedded within it to reflect its color-characteristics, but the output | 
|---|
| 974 | profile depends on the output-device, which is something only *YOU* know | 
|---|
| 975 | about. sRGB (standard RGB) is common for x86 compatible environments | 
|---|
| 976 | (eg. Windows, Linux and some others) | 
|---|
| 977 |  | 
|---|
| 978 | If you are compiling for a sRGB compliant system you probably won't have | 
|---|
| 979 | to do anything special. (unless you want to of course) | 
|---|
| 980 |  | 
|---|
| 981 | If you are compiling for a non-sRGB compliant system | 
|---|
| 982 | (eg. SGI, Mac, Next, others...) | 
|---|
| 983 | you *MUST* define a proper ICC profile for the generic output-device | 
|---|
| 984 | associated with that platform. | 
|---|
| 985 |  | 
|---|
| 986 | In either event, you may also want to offer an option to your users to | 
|---|
| 987 | set the profile manually, or, if you know how, set it from a | 
|---|
| 988 | system-defined default. | 
|---|
| 989 |  | 
|---|
| 990 | TO RECAP: for sRGB systems (Windows, Linux) no action required! | 
|---|
| 991 | for non-sRGB systems (SGI, Mac, Next) ACTION REQUIRED! | 
|---|
| 992 |  | 
|---|
| 993 | Please visit http://www.srgb.com, http://www.color.org and | 
|---|
| 994 | http://www.littlecms.com for more info. | 
|---|
| 995 |  | 
|---|
| 996 | ************************************************************************* | 
|---|
| 997 | !!!!!!!! THE BIT ABOVE IS IMPORTANT !!!!!!!!! | 
|---|
| 998 | ************************************************************************* | 
|---|
| 999 | */ | 
|---|
| 1000 | /* mng_set_srgb tells libmng if it's running on a sRGB compliant system or not | 
|---|
| 1001 | the default is already set to MNG_TRUE */ | 
|---|
| 1002 | /* mng_set_outputprofile, mng_set_outputprofile2, mng_set_outputsrgb | 
|---|
| 1003 | are used to set the default profile describing the output-device | 
|---|
| 1004 | by default it is already initialized with an sRGB profile */ | 
|---|
| 1005 | /* mng_set_srgbprofile, mng_set_srgbprofile2, mng_set_srgbimplicit | 
|---|
| 1006 | are used to set the default profile describing a standard sRGB device | 
|---|
| 1007 | this is used when the input-image is tagged only as being sRGB, but the | 
|---|
| 1008 | output-device is defined as not being sRGB compliant | 
|---|
| 1009 | by default it is already initialized with a standard sRGB profile */ | 
|---|
| 1010 | #if defined(MNG_SUPPORT_DISPLAY) | 
|---|
| 1011 | MNG_EXT mng_retcode MNG_DECL mng_set_srgb            (mng_handle        hHandle, | 
|---|
| 1012 | mng_bool          bIssRGB); | 
|---|
| 1013 | MNG_EXT mng_retcode MNG_DECL mng_set_outputprofile   (mng_handle        hHandle, | 
|---|
| 1014 | mng_pchar         zFilename); | 
|---|
| 1015 | MNG_EXT mng_retcode MNG_DECL mng_set_outputprofile2  (mng_handle        hHandle, | 
|---|
| 1016 | mng_uint32        iProfilesize, | 
|---|
| 1017 | mng_ptr           pProfile); | 
|---|
| 1018 | MNG_EXT mng_retcode MNG_DECL mng_set_outputsrgb      (mng_handle        hHandle); | 
|---|
| 1019 | MNG_EXT mng_retcode MNG_DECL mng_set_srgbprofile     (mng_handle        hHandle, | 
|---|
| 1020 | mng_pchar         zFilename); | 
|---|
| 1021 | MNG_EXT mng_retcode MNG_DECL mng_set_srgbprofile2    (mng_handle        hHandle, | 
|---|
| 1022 | mng_uint32        iProfilesize, | 
|---|
| 1023 | mng_ptr           pProfile); | 
|---|
| 1024 | MNG_EXT mng_retcode MNG_DECL mng_set_srgbimplicit    (mng_handle        hHandle); | 
|---|
| 1025 | #endif | 
|---|
| 1026 |  | 
|---|
| 1027 | #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS) | 
|---|
| 1028 | /* Gamma settings */ | 
|---|
| 1029 | /* ... blabla (explain gamma processing a little; eg. formula & stuff) ... */ | 
|---|
| 1030 | MNG_EXT mng_retcode MNG_DECL mng_set_viewgamma       (mng_handle        hHandle, | 
|---|
| 1031 | mng_float         dGamma); | 
|---|
| 1032 | MNG_EXT mng_retcode MNG_DECL mng_set_displaygamma    (mng_handle        hHandle, | 
|---|
| 1033 | mng_float         dGamma); | 
|---|
| 1034 | MNG_EXT mng_retcode MNG_DECL mng_set_dfltimggamma    (mng_handle        hHandle, | 
|---|
| 1035 | mng_float         dGamma); | 
|---|
| 1036 | MNG_EXT mng_retcode MNG_DECL mng_set_viewgammaint    (mng_handle        hHandle, | 
|---|
| 1037 | mng_uint32        iGamma); | 
|---|
| 1038 | MNG_EXT mng_retcode MNG_DECL mng_set_displaygammaint (mng_handle        hHandle, | 
|---|
| 1039 | mng_uint32        iGamma); | 
|---|
| 1040 | MNG_EXT mng_retcode MNG_DECL mng_set_dfltimggammaint (mng_handle        hHandle, | 
|---|
| 1041 | mng_uint32        iGamma); | 
|---|
| 1042 | #endif | 
|---|
| 1043 |  | 
|---|
| 1044 | #ifndef MNG_SKIP_MAXCANVAS | 
|---|
| 1045 | /* Ultimate clipping size */ | 
|---|
| 1046 | /* used to limit extreme graphics from overloading the system */ | 
|---|
| 1047 | /* if a graphic exceeds these limits a warning is issued, which can | 
|---|
| 1048 | be ignored by the app (using the errorproc callback). in that case | 
|---|
| 1049 | the library will use these settings to clip the input graphic, and | 
|---|
| 1050 | the app's canvas must account for this */ | 
|---|
| 1051 | MNG_EXT mng_retcode MNG_DECL mng_set_maxcanvaswidth  (mng_handle        hHandle, | 
|---|
| 1052 | mng_uint32        iMaxwidth); | 
|---|
| 1053 | MNG_EXT mng_retcode MNG_DECL mng_set_maxcanvasheight (mng_handle        hHandle, | 
|---|
| 1054 | mng_uint32        iMaxheight); | 
|---|
| 1055 | MNG_EXT mng_retcode MNG_DECL mng_set_maxcanvassize   (mng_handle        hHandle, | 
|---|
| 1056 | mng_uint32        iMaxwidth, | 
|---|
| 1057 | mng_uint32        iMaxheight); | 
|---|
| 1058 | #endif | 
|---|
| 1059 |  | 
|---|
| 1060 | /* ZLIB default compression parameters */ | 
|---|
| 1061 | /* these are used when writing out chunks */ | 
|---|
| 1062 | /* they are also used when compressing PNG image-data or JNG alpha-data; | 
|---|
| 1063 | in this case you can set them just before calling mng_putimgdata_ihdr */ | 
|---|
| 1064 | /* set to your liking; usually the defaults will suffice though! */ | 
|---|
| 1065 | /* check the documentation for ZLIB for details on these parameters */ | 
|---|
| 1066 | #ifdef MNG_INCLUDE_ZLIB | 
|---|
| 1067 | MNG_EXT mng_retcode MNG_DECL mng_set_zlib_level      (mng_handle        hHandle, | 
|---|
| 1068 | mng_int32         iZlevel); | 
|---|
| 1069 | MNG_EXT mng_retcode MNG_DECL mng_set_zlib_method     (mng_handle        hHandle, | 
|---|
| 1070 | mng_int32         iZmethod); | 
|---|
| 1071 | MNG_EXT mng_retcode MNG_DECL mng_set_zlib_windowbits (mng_handle        hHandle, | 
|---|
| 1072 | mng_int32         iZwindowbits); | 
|---|
| 1073 | MNG_EXT mng_retcode MNG_DECL mng_set_zlib_memlevel   (mng_handle        hHandle, | 
|---|
| 1074 | mng_int32         iZmemlevel); | 
|---|
| 1075 | MNG_EXT mng_retcode MNG_DECL mng_set_zlib_strategy   (mng_handle        hHandle, | 
|---|
| 1076 | mng_int32         iZstrategy); | 
|---|
| 1077 |  | 
|---|
| 1078 | MNG_EXT mng_retcode MNG_DECL mng_set_zlib_maxidat    (mng_handle        hHandle, | 
|---|
| 1079 | mng_uint32        iMaxIDAT); | 
|---|
| 1080 | #endif /* MNG_INCLUDE_ZLIB */ | 
|---|
| 1081 |  | 
|---|
| 1082 | /* JNG default compression parameters (based on IJG code) */ | 
|---|
| 1083 | /* these are used when compressing JNG image-data; so you can set them | 
|---|
| 1084 | just before calling mng_putimgdata_jhdr */ | 
|---|
| 1085 | /* set to your liking; usually the defaults will suffice though! */ | 
|---|
| 1086 | /* check the documentation for IJGSRC6B for details on these parameters */ | 
|---|
| 1087 | #ifdef MNG_INCLUDE_JNG | 
|---|
| 1088 | #ifdef MNG_INCLUDE_IJG6B | 
|---|
| 1089 | MNG_EXT mng_retcode MNG_DECL mng_set_jpeg_dctmethod  (mng_handle        hHandle, | 
|---|
| 1090 | mngjpeg_dctmethod eJPEGdctmethod); | 
|---|
| 1091 | #endif | 
|---|
| 1092 | MNG_EXT mng_retcode MNG_DECL mng_set_jpeg_quality    (mng_handle        hHandle, | 
|---|
| 1093 | mng_int32         iJPEGquality); | 
|---|
| 1094 | MNG_EXT mng_retcode MNG_DECL mng_set_jpeg_smoothing  (mng_handle        hHandle, | 
|---|
| 1095 | mng_int32         iJPEGsmoothing); | 
|---|
| 1096 | MNG_EXT mng_retcode MNG_DECL mng_set_jpeg_progressive(mng_handle        hHandle, | 
|---|
| 1097 | mng_bool          bJPEGprogressive); | 
|---|
| 1098 | MNG_EXT mng_retcode MNG_DECL mng_set_jpeg_optimized  (mng_handle        hHandle, | 
|---|
| 1099 | mng_bool          bJPEGoptimized); | 
|---|
| 1100 |  | 
|---|
| 1101 | MNG_EXT mng_retcode MNG_DECL mng_set_jpeg_maxjdat    (mng_handle        hHandle, | 
|---|
| 1102 | mng_uint32        iMaxJDAT); | 
|---|
| 1103 | #endif /* MNG_INCLUDE_JNG */ | 
|---|
| 1104 |  | 
|---|
| 1105 | /* Suspension-mode setting */ | 
|---|
| 1106 | /* use this to activate the internal suspension-buffer to improve | 
|---|
| 1107 | read-suspension processing */ | 
|---|
| 1108 | /* TODO: write-suspension ??? */ | 
|---|
| 1109 | #if defined(MNG_SUPPORT_READ) | 
|---|
| 1110 | MNG_EXT mng_retcode MNG_DECL mng_set_suspensionmode  (mng_handle        hHandle, | 
|---|
| 1111 | mng_bool          bSuspensionmode); | 
|---|
| 1112 | #endif | 
|---|
| 1113 |  | 
|---|
| 1114 | /* Speed setting */ | 
|---|
| 1115 | /* use this to influence the display-speed of animations */ | 
|---|
| 1116 | #if defined(MNG_SUPPORT_DISPLAY) | 
|---|
| 1117 | MNG_EXT mng_retcode MNG_DECL mng_set_speed           (mng_handle        hHandle, | 
|---|
| 1118 | mng_speedtype     iSpeed); | 
|---|
| 1119 | #endif | 
|---|
| 1120 |  | 
|---|
| 1121 | /* ************************************************************************** */ | 
|---|
| 1122 | /* *                                                                        * */ | 
|---|
| 1123 | /* *  Property get functions                                                * */ | 
|---|
| 1124 | /* *                                                                        * */ | 
|---|
| 1125 | /* ************************************************************************** */ | 
|---|
| 1126 |  | 
|---|
| 1127 | /* see _set_ */ | 
|---|
| 1128 | MNG_EXT mng_ptr     MNG_DECL mng_get_userdata        (mng_handle        hHandle); | 
|---|
| 1129 |  | 
|---|
| 1130 | /* Network Graphic header details */ | 
|---|
| 1131 | /* these get filled once the graphics header is processed, | 
|---|
| 1132 | so they are available in the processheader callback; before that | 
|---|
| 1133 | they are zeroed out and imagetype is set to it_unknown */ | 
|---|
| 1134 | /* this might be a good point for the app to initialize the drawing-canvas! */ | 
|---|
| 1135 | /* note that some fields are only set for the first(!) header-chunk: | 
|---|
| 1136 | MNG/MHDR (imagetype = mng_it_mng) - ticks thru simplicity | 
|---|
| 1137 | PNG/IHDR (imagetype = mng_it_png) - bitdepth thru interlace | 
|---|
| 1138 | JNG/JHDR (imagetype = mng_it_jng) - bitdepth thru compression & | 
|---|
| 1139 | interlace thru alphainterlace */ | 
|---|
| 1140 | MNG_EXT mng_imgtype MNG_DECL mng_get_sigtype         (mng_handle        hHandle); | 
|---|
| 1141 | MNG_EXT mng_imgtype MNG_DECL mng_get_imagetype       (mng_handle        hHandle); | 
|---|
| 1142 | MNG_EXT mng_uint32  MNG_DECL mng_get_imagewidth      (mng_handle        hHandle); | 
|---|
| 1143 | MNG_EXT mng_uint32  MNG_DECL mng_get_imageheight     (mng_handle        hHandle); | 
|---|
| 1144 |  | 
|---|
| 1145 | MNG_EXT mng_uint32  MNG_DECL mng_get_ticks           (mng_handle        hHandle); | 
|---|
| 1146 | MNG_EXT mng_uint32  MNG_DECL mng_get_framecount      (mng_handle        hHandle); | 
|---|
| 1147 | MNG_EXT mng_uint32  MNG_DECL mng_get_layercount      (mng_handle        hHandle); | 
|---|
| 1148 | MNG_EXT mng_uint32  MNG_DECL mng_get_playtime        (mng_handle        hHandle); | 
|---|
| 1149 | MNG_EXT mng_uint32  MNG_DECL mng_get_simplicity      (mng_handle        hHandle); | 
|---|
| 1150 |  | 
|---|
| 1151 | MNG_EXT mng_uint8   MNG_DECL mng_get_bitdepth        (mng_handle        hHandle); | 
|---|
| 1152 | MNG_EXT mng_uint8   MNG_DECL mng_get_colortype       (mng_handle        hHandle); | 
|---|
| 1153 | MNG_EXT mng_uint8   MNG_DECL mng_get_compression     (mng_handle        hHandle); | 
|---|
| 1154 | MNG_EXT mng_uint8   MNG_DECL mng_get_filter          (mng_handle        hHandle); | 
|---|
| 1155 | MNG_EXT mng_uint8   MNG_DECL mng_get_interlace       (mng_handle        hHandle); | 
|---|
| 1156 | MNG_EXT mng_uint8   MNG_DECL mng_get_alphabitdepth   (mng_handle        hHandle); | 
|---|
| 1157 | MNG_EXT mng_uint8   MNG_DECL mng_get_alphacompression(mng_handle        hHandle); | 
|---|
| 1158 | MNG_EXT mng_uint8   MNG_DECL mng_get_alphafilter     (mng_handle        hHandle); | 
|---|
| 1159 | MNG_EXT mng_uint8   MNG_DECL mng_get_alphainterlace  (mng_handle        hHandle); | 
|---|
| 1160 |  | 
|---|
| 1161 | /* indicates the predicted alpha-depth required to properly display the image */ | 
|---|
| 1162 | /* gets set once the graphics header is processed and is available in the | 
|---|
| 1163 | processheader callback for any type of input-image (PNG, JNG or MNG) */ | 
|---|
| 1164 | /* possible values are 0,1,2,4,8,16 | 
|---|
| 1165 | 0  = no transparency required | 
|---|
| 1166 | 1  = on/off transparency required (alpha-values are 0 or 2^bit_depth-1) | 
|---|
| 1167 | 2+ = semi-transparency required (values will be scaled to the bitdepth of the | 
|---|
| 1168 | canvasstyle supplied by the application) */ | 
|---|
| 1169 | MNG_EXT mng_uint8   MNG_DECL mng_get_alphadepth      (mng_handle        hHandle); | 
|---|
| 1170 |  | 
|---|
| 1171 | /* defines whether a refresh() callback is called for an interlace pass (PNG) | 
|---|
| 1172 | or progressive scan (JNG) */ | 
|---|
| 1173 | /* returns the interlace pass number for PNG or a fabricated pass number for JNG; | 
|---|
| 1174 | returns 0 in all other cases */ | 
|---|
| 1175 | /* only useful if the image_type = mng_it_png or mng_it_jng and if the image | 
|---|
| 1176 | is actually interlaced (PNG) or progressive (JNG) */ | 
|---|
| 1177 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 1178 | MNG_EXT mng_uint8   MNG_DECL mng_get_refreshpass     (mng_handle        hHandle); | 
|---|
| 1179 | #endif | 
|---|
| 1180 |  | 
|---|
| 1181 | /* see _set_ */ | 
|---|
| 1182 | MNG_EXT mng_uint32  MNG_DECL mng_get_canvasstyle     (mng_handle        hHandle); | 
|---|
| 1183 | MNG_EXT mng_uint32  MNG_DECL mng_get_bkgdstyle       (mng_handle        hHandle); | 
|---|
| 1184 |  | 
|---|
| 1185 | /* see _set_ */ | 
|---|
| 1186 | MNG_EXT mng_retcode MNG_DECL mng_get_bgcolor         (mng_handle        hHandle, | 
|---|
| 1187 | mng_uint16*       iRed, | 
|---|
| 1188 | mng_uint16*       iGreen, | 
|---|
| 1189 | mng_uint16*       iBlue); | 
|---|
| 1190 |  | 
|---|
| 1191 | /* see _set_ */ | 
|---|
| 1192 | MNG_EXT mng_bool    MNG_DECL mng_get_usebkgd         (mng_handle        hHandle); | 
|---|
| 1193 |  | 
|---|
| 1194 | /* see _set_ */ | 
|---|
| 1195 | MNG_EXT mng_bool    MNG_DECL mng_get_storechunks     (mng_handle        hHandle); | 
|---|
| 1196 |  | 
|---|
| 1197 | /* see _set_ */ | 
|---|
| 1198 | MNG_EXT mng_bool    MNG_DECL mng_get_sectionbreaks   (mng_handle        hHandle); | 
|---|
| 1199 |  | 
|---|
| 1200 | /* see _set_ */ | 
|---|
| 1201 | MNG_EXT mng_bool    MNG_DECL mng_get_cacheplayback   (mng_handle        hHandle); | 
|---|
| 1202 |  | 
|---|
| 1203 | /* see _set_ */ | 
|---|
| 1204 | MNG_EXT mng_bool    MNG_DECL mng_get_doprogressive   (mng_handle        hHandle); | 
|---|
| 1205 |  | 
|---|
| 1206 | /* see _set_ */ | 
|---|
| 1207 | MNG_EXT mng_uint32  MNG_DECL mng_get_crcmode         (mng_handle        hHandle); | 
|---|
| 1208 |  | 
|---|
| 1209 | /* see _set_ */ | 
|---|
| 1210 | #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_FULL_CMS) | 
|---|
| 1211 | MNG_EXT mng_bool    MNG_DECL mng_get_srgb            (mng_handle        hHandle); | 
|---|
| 1212 | #endif | 
|---|
| 1213 |  | 
|---|
| 1214 | /* see _set_ */ | 
|---|
| 1215 | MNG_EXT mng_float   MNG_DECL mng_get_viewgamma       (mng_handle        hHandle); | 
|---|
| 1216 | MNG_EXT mng_float   MNG_DECL mng_get_displaygamma    (mng_handle        hHandle); | 
|---|
| 1217 | MNG_EXT mng_float   MNG_DECL mng_get_dfltimggamma    (mng_handle        hHandle); | 
|---|
| 1218 | MNG_EXT mng_uint32  MNG_DECL mng_get_viewgammaint    (mng_handle        hHandle); | 
|---|
| 1219 | MNG_EXT mng_uint32  MNG_DECL mng_get_displaygammaint (mng_handle        hHandle); | 
|---|
| 1220 | MNG_EXT mng_uint32  MNG_DECL mng_get_dfltimggammaint (mng_handle        hHandle); | 
|---|
| 1221 |  | 
|---|
| 1222 | #ifndef MNG_SKIP_MAXCANVAS | 
|---|
| 1223 | /* see _set_ */ | 
|---|
| 1224 | MNG_EXT mng_uint32  MNG_DECL mng_get_maxcanvaswidth  (mng_handle        hHandle); | 
|---|
| 1225 | MNG_EXT mng_uint32  MNG_DECL mng_get_maxcanvasheight (mng_handle        hHandle); | 
|---|
| 1226 | #endif | 
|---|
| 1227 |  | 
|---|
| 1228 | /* see _set_ */ | 
|---|
| 1229 | #ifdef MNG_INCLUDE_ZLIB | 
|---|
| 1230 | MNG_EXT mng_int32   MNG_DECL mng_get_zlib_level      (mng_handle        hHandle); | 
|---|
| 1231 | MNG_EXT mng_int32   MNG_DECL mng_get_zlib_method     (mng_handle        hHandle); | 
|---|
| 1232 | MNG_EXT mng_int32   MNG_DECL mng_get_zlib_windowbits (mng_handle        hHandle); | 
|---|
| 1233 | MNG_EXT mng_int32   MNG_DECL mng_get_zlib_memlevel   (mng_handle        hHandle); | 
|---|
| 1234 | MNG_EXT mng_int32   MNG_DECL mng_get_zlib_strategy   (mng_handle        hHandle); | 
|---|
| 1235 |  | 
|---|
| 1236 | MNG_EXT mng_uint32  MNG_DECL mng_get_zlib_maxidat    (mng_handle        hHandle); | 
|---|
| 1237 | #endif /* MNG_INCLUDE_ZLIB */ | 
|---|
| 1238 |  | 
|---|
| 1239 | /* see _set_ */ | 
|---|
| 1240 | #ifdef MNG_INCLUDE_JNG | 
|---|
| 1241 | #ifdef MNG_INCLUDE_IJG6B | 
|---|
| 1242 | MNG_EXT mngjpeg_dctmethod | 
|---|
| 1243 | MNG_DECL mng_get_jpeg_dctmethod  (mng_handle        hHandle); | 
|---|
| 1244 | #endif | 
|---|
| 1245 | MNG_EXT mng_int32   MNG_DECL mng_get_jpeg_quality    (mng_handle        hHandle); | 
|---|
| 1246 | MNG_EXT mng_int32   MNG_DECL mng_get_jpeg_smoothing  (mng_handle        hHandle); | 
|---|
| 1247 | MNG_EXT mng_bool    MNG_DECL mng_get_jpeg_progressive(mng_handle        hHandle); | 
|---|
| 1248 | MNG_EXT mng_bool    MNG_DECL mng_get_jpeg_optimized  (mng_handle        hHandle); | 
|---|
| 1249 |  | 
|---|
| 1250 | MNG_EXT mng_uint32  MNG_DECL mng_get_jpeg_maxjdat    (mng_handle        hHandle); | 
|---|
| 1251 | #endif /* MNG_INCLUDE_JNG */ | 
|---|
| 1252 |  | 
|---|
| 1253 | /* see _set_  */ | 
|---|
| 1254 | #if defined(MNG_SUPPORT_READ) | 
|---|
| 1255 | MNG_EXT mng_bool    MNG_DECL mng_get_suspensionmode  (mng_handle        hHandle); | 
|---|
| 1256 | #endif | 
|---|
| 1257 |  | 
|---|
| 1258 | /* see _set_  */ | 
|---|
| 1259 | #if defined(MNG_SUPPORT_DISPLAY) | 
|---|
| 1260 | MNG_EXT mng_speedtype | 
|---|
| 1261 | MNG_DECL mng_get_speed           (mng_handle        hHandle); | 
|---|
| 1262 | #endif | 
|---|
| 1263 |  | 
|---|
| 1264 | /* Image-level */ | 
|---|
| 1265 | /* this can be used inside the processtext callback to determine the level of | 
|---|
| 1266 | text of the image being processed; the value 1 is returned for top-level | 
|---|
| 1267 | texts, and the value 2 for a text inside an embedded image inside a MNG */ | 
|---|
| 1268 | MNG_EXT mng_uint32  MNG_DECL mng_get_imagelevel      (mng_handle        hHandle); | 
|---|
| 1269 |  | 
|---|
| 1270 | /* BACK info */ | 
|---|
| 1271 | /* can be used to retrieve the color & mandatory values for the last processed | 
|---|
| 1272 | BACK chunk of a MNG (will fail for other image-types); | 
|---|
| 1273 | if no BACK chunk was processed yet, it will return all zeroes */ | 
|---|
| 1274 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 1275 | MNG_EXT mng_retcode MNG_DECL mng_get_lastbackchunk   (mng_handle        hHandle, | 
|---|
| 1276 | mng_uint16*       iRed, | 
|---|
| 1277 | mng_uint16*       iGreen, | 
|---|
| 1278 | mng_uint16*       iBlue, | 
|---|
| 1279 | mng_uint8*        iMandatory); | 
|---|
| 1280 | #endif | 
|---|
| 1281 |  | 
|---|
| 1282 | /* SEEK info */ | 
|---|
| 1283 | /* can be used to retrieve the segmentname of the last processed SEEK chunk; | 
|---|
| 1284 | if no SEEK chunk was processed or its segmentname was empty, the function | 
|---|
| 1285 | will return an empty string; the provided buffer must be at least 80 bytes!! */ | 
|---|
| 1286 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 1287 | MNG_EXT mng_retcode MNG_DECL mng_get_lastseekname    (mng_handle        hHandle, | 
|---|
| 1288 | mng_pchar         zSegmentname); | 
|---|
| 1289 | #endif | 
|---|
| 1290 |  | 
|---|
| 1291 | /* FRAM info */ | 
|---|
| 1292 | /* can be used to retrieve the current FRAM delay; this may be useful when | 
|---|
| 1293 | retrieving a stream of frames with their corresponding delays by "fake" | 
|---|
| 1294 | reading and displaying the file */ | 
|---|
| 1295 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 1296 | MNG_EXT mng_uint32 MNG_DECL mng_get_currframdelay    (mng_handle        hHandle); | 
|---|
| 1297 | #endif | 
|---|
| 1298 |  | 
|---|
| 1299 | /* Display status variables */ | 
|---|
| 1300 | /* these get filled & updated during display processing */ | 
|---|
| 1301 | /* starttime is the tickcount at the start of displaying the animation */ | 
|---|
| 1302 | /* runtime is the actual number of millisecs since the start of the animation */ | 
|---|
| 1303 | /* currentframe, currentlayer & currentplaytime indicate the current | 
|---|
| 1304 | frame/layer/playtime(msecs) in the animation (these keep increasing; | 
|---|
| 1305 | even after the animation loops back to the TERM chunk) */ | 
|---|
| 1306 | /* totalframes, totallayers & totalplaytime are filled after a complete run | 
|---|
| 1307 | of an animation (eg. at MEND); they are also valid after just reading the MNG */ | 
|---|
| 1308 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 1309 | MNG_EXT mng_uint32  MNG_DECL mng_get_starttime       (mng_handle        hHandle); | 
|---|
| 1310 | MNG_EXT mng_uint32  MNG_DECL mng_get_runtime         (mng_handle        hHandle); | 
|---|
| 1311 | #ifndef MNG_NO_CURRENT_INFO | 
|---|
| 1312 | MNG_EXT mng_uint32  MNG_DECL mng_get_currentframe    (mng_handle        hHandle); | 
|---|
| 1313 | MNG_EXT mng_uint32  MNG_DECL mng_get_currentlayer    (mng_handle        hHandle); | 
|---|
| 1314 | MNG_EXT mng_uint32  MNG_DECL mng_get_currentplaytime (mng_handle        hHandle); | 
|---|
| 1315 | MNG_EXT mng_uint32  MNG_DECL mng_get_totalframes     (mng_handle        hHandle); | 
|---|
| 1316 | MNG_EXT mng_uint32  MNG_DECL mng_get_totallayers     (mng_handle        hHandle); | 
|---|
| 1317 | MNG_EXT mng_uint32  MNG_DECL mng_get_totalplaytime   (mng_handle        hHandle); | 
|---|
| 1318 | #endif | 
|---|
| 1319 | #endif | 
|---|
| 1320 |  | 
|---|
| 1321 | /* Status variables */ | 
|---|
| 1322 | /* these indicate the internal state of the library */ | 
|---|
| 1323 | /* most indicate exactly what you would expect - | 
|---|
| 1324 | status_error:        true if the last function call returned an errorcode | 
|---|
| 1325 | status_reading:      true if the library is (still) reading an image | 
|---|
| 1326 | status_suspendbreak: true if the library has suspended for "I/O" | 
|---|
| 1327 | status_creating:     true if the library is in the middle of creating an image | 
|---|
| 1328 | status_writing:      true if the library is in the middle of writing an image | 
|---|
| 1329 | status_displaying:   true if the library is displaying an image | 
|---|
| 1330 | status_running:      true if display processing is active (eg. not frozen or reset) | 
|---|
| 1331 | status_timerbreak:   true if the library has suspended for a "timer-break" | 
|---|
| 1332 | status_dynamic:      true if the library encountered an evNT chunk in the MNG | 
|---|
| 1333 | status_runningevent: true if the library is processing an external event */ | 
|---|
| 1334 | /* eg. mng_readdisplay() will turn the reading, displaying and running status on; | 
|---|
| 1335 | when EOF is reached the reading status will be turned off */ | 
|---|
| 1336 | MNG_EXT mng_bool    MNG_DECL mng_status_error        (mng_handle        hHandle); | 
|---|
| 1337 | #ifdef MNG_SUPPORT_READ | 
|---|
| 1338 | MNG_EXT mng_bool    MNG_DECL mng_status_reading      (mng_handle        hHandle); | 
|---|
| 1339 | MNG_EXT mng_bool    MNG_DECL mng_status_suspendbreak (mng_handle        hHandle); | 
|---|
| 1340 | #endif | 
|---|
| 1341 | #ifdef MNG_SUPPORT_WRITE | 
|---|
| 1342 | MNG_EXT mng_bool    MNG_DECL mng_status_creating     (mng_handle        hHandle); | 
|---|
| 1343 | MNG_EXT mng_bool    MNG_DECL mng_status_writing      (mng_handle        hHandle); | 
|---|
| 1344 | #endif | 
|---|
| 1345 | #ifdef MNG_SUPPORT_DISPLAY | 
|---|
| 1346 | MNG_EXT mng_bool    MNG_DECL mng_status_displaying   (mng_handle        hHandle); | 
|---|
| 1347 | MNG_EXT mng_bool    MNG_DECL mng_status_running      (mng_handle        hHandle); | 
|---|
| 1348 | MNG_EXT mng_bool    MNG_DECL mng_status_timerbreak   (mng_handle        hHandle); | 
|---|
| 1349 | #endif | 
|---|
| 1350 | #ifdef MNG_SUPPORT_DYNAMICMNG | 
|---|
| 1351 | MNG_EXT mng_bool    MNG_DECL mng_status_dynamic      (mng_handle        hHandle); | 
|---|
| 1352 | MNG_EXT mng_bool    MNG_DECL mng_status_runningevent (mng_handle        hHandle); | 
|---|
| 1353 | #endif | 
|---|
| 1354 |  | 
|---|
| 1355 | /* ************************************************************************** */ | 
|---|
| 1356 | /* *                                                                        * */ | 
|---|
| 1357 | /* *  Chunk access functions                                                * */ | 
|---|
| 1358 | /* *                                                                        * */ | 
|---|
| 1359 | /* ************************************************************************** */ | 
|---|
| 1360 |  | 
|---|
| 1361 | #ifdef MNG_ACCESS_CHUNKS | 
|---|
| 1362 |  | 
|---|
| 1363 | /* ************************************************************************** */ | 
|---|
| 1364 |  | 
|---|
| 1365 | /* use this to iterate the stored chunks */ | 
|---|
| 1366 | /* requires MNG_ACCESS_CHUNKS & MNG_STORE_CHUNKS */ | 
|---|
| 1367 | /* starts from the supplied chunk-index-nr; the first chunk has index 0!! */ | 
|---|
| 1368 | MNG_EXT mng_retcode MNG_DECL mng_iterate_chunks      (mng_handle       hHandle, | 
|---|
| 1369 | mng_uint32       iChunkseq, | 
|---|
| 1370 | mng_iteratechunk fProc); | 
|---|
| 1371 |  | 
|---|
| 1372 | /* use the next function inside your 'iteratechunk' callback to copy | 
|---|
| 1373 | the given chunk to a new mng you are creating */ | 
|---|
| 1374 | /* the 'out' handle should be in 'create' status! */ | 
|---|
| 1375 | #ifdef MNG_SUPPORT_WRITE | 
|---|
| 1376 | MNG_EXT mng_retcode MNG_DECL mng_copy_chunk          (mng_handle       hHandle, | 
|---|
| 1377 | mng_handle       hChunk, | 
|---|
| 1378 | mng_handle       hHandleOut); | 
|---|
| 1379 | #endif | 
|---|
| 1380 |  | 
|---|
| 1381 | /* ************************************************************************** */ | 
|---|
| 1382 |  | 
|---|
| 1383 | /* use these to get chunk data from within the callback in iterate_chunks */ | 
|---|
| 1384 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_ihdr       (mng_handle       hHandle, | 
|---|
| 1385 | mng_handle       hChunk, | 
|---|
| 1386 | mng_uint32       *iWidth, | 
|---|
| 1387 | mng_uint32       *iHeight, | 
|---|
| 1388 | mng_uint8        *iBitdepth, | 
|---|
| 1389 | mng_uint8        *iColortype, | 
|---|
| 1390 | mng_uint8        *iCompression, | 
|---|
| 1391 | mng_uint8        *iFilter, | 
|---|
| 1392 | mng_uint8        *iInterlace); | 
|---|
| 1393 |  | 
|---|
| 1394 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_plte       (mng_handle       hHandle, | 
|---|
| 1395 | mng_handle       hChunk, | 
|---|
| 1396 | mng_uint32       *iCount, | 
|---|
| 1397 | mng_palette8     *aPalette); | 
|---|
| 1398 |  | 
|---|
| 1399 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_idat       (mng_handle       hHandle, | 
|---|
| 1400 | mng_handle       hChunk, | 
|---|
| 1401 | mng_uint32       *iRawlen, | 
|---|
| 1402 | mng_ptr          *pRawdata); | 
|---|
| 1403 |  | 
|---|
| 1404 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_trns       (mng_handle       hHandle, | 
|---|
| 1405 | mng_handle       hChunk, | 
|---|
| 1406 | mng_bool         *bEmpty, | 
|---|
| 1407 | mng_bool         *bGlobal, | 
|---|
| 1408 | mng_uint8        *iType, | 
|---|
| 1409 | mng_uint32       *iCount, | 
|---|
| 1410 | mng_uint8arr     *aAlphas, | 
|---|
| 1411 | mng_uint16       *iGray, | 
|---|
| 1412 | mng_uint16       *iRed, | 
|---|
| 1413 | mng_uint16       *iGreen, | 
|---|
| 1414 | mng_uint16       *iBlue, | 
|---|
| 1415 | mng_uint32       *iRawlen, | 
|---|
| 1416 | mng_uint8arr     *aRawdata); | 
|---|
| 1417 |  | 
|---|
| 1418 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_gama       (mng_handle       hHandle, | 
|---|
| 1419 | mng_handle       hChunk, | 
|---|
| 1420 | mng_bool         *bEmpty, | 
|---|
| 1421 | mng_uint32       *iGamma); | 
|---|
| 1422 |  | 
|---|
| 1423 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_chrm       (mng_handle       hHandle, | 
|---|
| 1424 | mng_handle       hChunk, | 
|---|
| 1425 | mng_bool         *bEmpty, | 
|---|
| 1426 | mng_uint32       *iWhitepointx, | 
|---|
| 1427 | mng_uint32       *iWhitepointy, | 
|---|
| 1428 | mng_uint32       *iRedx, | 
|---|
| 1429 | mng_uint32       *iRedy, | 
|---|
| 1430 | mng_uint32       *iGreenx, | 
|---|
| 1431 | mng_uint32       *iGreeny, | 
|---|
| 1432 | mng_uint32       *iBluex, | 
|---|
| 1433 | mng_uint32       *iBluey); | 
|---|
| 1434 |  | 
|---|
| 1435 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_srgb       (mng_handle       hHandle, | 
|---|
| 1436 | mng_handle       hChunk, | 
|---|
| 1437 | mng_bool         *bEmpty, | 
|---|
| 1438 | mng_uint8        *iRenderingintent); | 
|---|
| 1439 |  | 
|---|
| 1440 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_iccp       (mng_handle       hHandle, | 
|---|
| 1441 | mng_handle       hChunk, | 
|---|
| 1442 | mng_bool         *bEmpty, | 
|---|
| 1443 | mng_uint32       *iNamesize, | 
|---|
| 1444 | mng_pchar        *zName, | 
|---|
| 1445 | mng_uint8        *iCompression, | 
|---|
| 1446 | mng_uint32       *iProfilesize, | 
|---|
| 1447 | mng_ptr          *pProfile); | 
|---|
| 1448 |  | 
|---|
| 1449 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_text       (mng_handle       hHandle, | 
|---|
| 1450 | mng_handle       hChunk, | 
|---|
| 1451 | mng_uint32       *iKeywordsize, | 
|---|
| 1452 | mng_pchar        *zKeyword, | 
|---|
| 1453 | mng_uint32       *iTextsize, | 
|---|
| 1454 | mng_pchar        *zText); | 
|---|
| 1455 |  | 
|---|
| 1456 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_ztxt       (mng_handle       hHandle, | 
|---|
| 1457 | mng_handle       hChunk, | 
|---|
| 1458 | mng_uint32       *iKeywordsize, | 
|---|
| 1459 | mng_pchar        *zKeyword, | 
|---|
| 1460 | mng_uint8        *iCompression, | 
|---|
| 1461 | mng_uint32       *iTextsize, | 
|---|
| 1462 | mng_pchar        *zText); | 
|---|
| 1463 |  | 
|---|
| 1464 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_itxt       (mng_handle       hHandle, | 
|---|
| 1465 | mng_handle       hChunk, | 
|---|
| 1466 | mng_uint32       *iKeywordsize, | 
|---|
| 1467 | mng_pchar        *zKeyword, | 
|---|
| 1468 | mng_uint8        *iCompressionflag, | 
|---|
| 1469 | mng_uint8        *iCompressionmethod, | 
|---|
| 1470 | mng_uint32       *iLanguagesize, | 
|---|
| 1471 | mng_pchar        *zLanguage, | 
|---|
| 1472 | mng_uint32       *iTranslationsize, | 
|---|
| 1473 | mng_pchar        *zTranslation, | 
|---|
| 1474 | mng_uint32       *iTextsize, | 
|---|
| 1475 | mng_pchar        *zText); | 
|---|
| 1476 |  | 
|---|
| 1477 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_bkgd       (mng_handle       hHandle, | 
|---|
| 1478 | mng_handle       hChunk, | 
|---|
| 1479 | mng_bool         *bEmpty, | 
|---|
| 1480 | mng_uint8        *iType, | 
|---|
| 1481 | mng_uint8        *iIndex, | 
|---|
| 1482 | mng_uint16       *iGray, | 
|---|
| 1483 | mng_uint16       *iRed, | 
|---|
| 1484 | mng_uint16       *iGreen, | 
|---|
| 1485 | mng_uint16       *iBlue); | 
|---|
| 1486 |  | 
|---|
| 1487 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_phys       (mng_handle       hHandle, | 
|---|
| 1488 | mng_handle       hChunk, | 
|---|
| 1489 | mng_bool         *bEmpty, | 
|---|
| 1490 | mng_uint32       *iSizex, | 
|---|
| 1491 | mng_uint32       *iSizey, | 
|---|
| 1492 | mng_uint8        *iUnit); | 
|---|
| 1493 |  | 
|---|
| 1494 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_sbit       (mng_handle       hHandle, | 
|---|
| 1495 | mng_handle       hChunk, | 
|---|
| 1496 | mng_bool         *bEmpty, | 
|---|
| 1497 | mng_uint8        *iType, | 
|---|
| 1498 | mng_uint8arr4    *aBits); | 
|---|
| 1499 |  | 
|---|
| 1500 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_splt       (mng_handle       hHandle, | 
|---|
| 1501 | mng_handle       hChunk, | 
|---|
| 1502 | mng_bool         *bEmpty, | 
|---|
| 1503 | mng_uint32       *iNamesize, | 
|---|
| 1504 | mng_pchar        *zName, | 
|---|
| 1505 | mng_uint8        *iSampledepth, | 
|---|
| 1506 | mng_uint32       *iEntrycount, | 
|---|
| 1507 | mng_ptr          *pEntries); | 
|---|
| 1508 |  | 
|---|
| 1509 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_hist       (mng_handle       hHandle, | 
|---|
| 1510 | mng_handle       hChunk, | 
|---|
| 1511 | mng_uint32       *iEntrycount, | 
|---|
| 1512 | mng_uint16arr    *aEntries); | 
|---|
| 1513 |  | 
|---|
| 1514 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_time       (mng_handle       hHandle, | 
|---|
| 1515 | mng_handle       hChunk, | 
|---|
| 1516 | mng_uint16       *iYear, | 
|---|
| 1517 | mng_uint8        *iMonth, | 
|---|
| 1518 | mng_uint8        *iDay, | 
|---|
| 1519 | mng_uint8        *iHour, | 
|---|
| 1520 | mng_uint8        *iMinute, | 
|---|
| 1521 | mng_uint8        *iSecond); | 
|---|
| 1522 |  | 
|---|
| 1523 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_mhdr       (mng_handle       hHandle, | 
|---|
| 1524 | mng_handle       hChunk, | 
|---|
| 1525 | mng_uint32       *iWidth, | 
|---|
| 1526 | mng_uint32       *iHeight, | 
|---|
| 1527 | mng_uint32       *iTicks, | 
|---|
| 1528 | mng_uint32       *iLayercount, | 
|---|
| 1529 | mng_uint32       *iFramecount, | 
|---|
| 1530 | mng_uint32       *iPlaytime, | 
|---|
| 1531 | mng_uint32       *iSimplicity); | 
|---|
| 1532 |  | 
|---|
| 1533 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_loop       (mng_handle       hHandle, | 
|---|
| 1534 | mng_handle       hChunk, | 
|---|
| 1535 | mng_uint8        *iLevel, | 
|---|
| 1536 | mng_uint32       *iRepeat, | 
|---|
| 1537 | mng_uint8        *iTermination, | 
|---|
| 1538 | mng_uint32       *iItermin, | 
|---|
| 1539 | mng_uint32       *iItermax, | 
|---|
| 1540 | mng_uint32       *iCount, | 
|---|
| 1541 | mng_uint32p      *pSignals); | 
|---|
| 1542 |  | 
|---|
| 1543 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_endl       (mng_handle       hHandle, | 
|---|
| 1544 | mng_handle       hChunk, | 
|---|
| 1545 | mng_uint8        *iLevel); | 
|---|
| 1546 |  | 
|---|
| 1547 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_defi       (mng_handle       hHandle, | 
|---|
| 1548 | mng_handle       hChunk, | 
|---|
| 1549 | mng_uint16       *iObjectid, | 
|---|
| 1550 | mng_uint8        *iDonotshow, | 
|---|
| 1551 | mng_uint8        *iConcrete, | 
|---|
| 1552 | mng_bool         *bHasloca, | 
|---|
| 1553 | mng_int32        *iXlocation, | 
|---|
| 1554 | mng_int32        *iYlocation, | 
|---|
| 1555 | mng_bool         *bHasclip, | 
|---|
| 1556 | mng_int32        *iLeftcb, | 
|---|
| 1557 | mng_int32        *iRightcb, | 
|---|
| 1558 | mng_int32        *iTopcb, | 
|---|
| 1559 | mng_int32        *iBottomcb); | 
|---|
| 1560 |  | 
|---|
| 1561 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_basi       (mng_handle       hHandle, | 
|---|
| 1562 | mng_handle       hChunk, | 
|---|
| 1563 | mng_uint32       *iWidth, | 
|---|
| 1564 | mng_uint32       *iHeight, | 
|---|
| 1565 | mng_uint8        *iBitdepth, | 
|---|
| 1566 | mng_uint8        *iColortype, | 
|---|
| 1567 | mng_uint8        *iCompression, | 
|---|
| 1568 | mng_uint8        *iFilter, | 
|---|
| 1569 | mng_uint8        *iInterlace, | 
|---|
| 1570 | mng_uint16       *iRed, | 
|---|
| 1571 | mng_uint16       *iGreen, | 
|---|
| 1572 | mng_uint16       *iBlue, | 
|---|
| 1573 | mng_uint16       *iAlpha, | 
|---|
| 1574 | mng_uint8        *iViewable); | 
|---|
| 1575 |  | 
|---|
| 1576 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_clon       (mng_handle       hHandle, | 
|---|
| 1577 | mng_handle       hChunk, | 
|---|
| 1578 | mng_uint16       *iSourceid, | 
|---|
| 1579 | mng_uint16       *iCloneid, | 
|---|
| 1580 | mng_uint8        *iClonetype, | 
|---|
| 1581 | mng_uint8        *iDonotshow, | 
|---|
| 1582 | mng_uint8        *iConcrete, | 
|---|
| 1583 | mng_bool         *bHasloca, | 
|---|
| 1584 | mng_uint8        *iLocationtype, | 
|---|
| 1585 | mng_int32        *iLocationx, | 
|---|
| 1586 | mng_int32        *iLocationy); | 
|---|
| 1587 |  | 
|---|
| 1588 | #ifndef MNG_SKIPCHUNK_PAST | 
|---|
| 1589 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_past       (mng_handle       hHandle, | 
|---|
| 1590 | mng_handle       hChunk, | 
|---|
| 1591 | mng_uint16       *iDestid, | 
|---|
| 1592 | mng_uint8        *iTargettype, | 
|---|
| 1593 | mng_int32        *iTargetx, | 
|---|
| 1594 | mng_int32        *iTargety, | 
|---|
| 1595 | mng_uint32       *iCount); | 
|---|
| 1596 |  | 
|---|
| 1597 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_past_src   (mng_handle       hHandle, | 
|---|
| 1598 | mng_handle       hChunk, | 
|---|
| 1599 | mng_uint32       iEntry, | 
|---|
| 1600 | mng_uint16       *iSourceid, | 
|---|
| 1601 | mng_uint8        *iComposition, | 
|---|
| 1602 | mng_uint8        *iOrientation, | 
|---|
| 1603 | mng_uint8        *iOffsettype, | 
|---|
| 1604 | mng_int32        *iOffsetx, | 
|---|
| 1605 | mng_int32        *iOffsety, | 
|---|
| 1606 | mng_uint8        *iBoundarytype, | 
|---|
| 1607 | mng_int32        *iBoundaryl, | 
|---|
| 1608 | mng_int32        *iBoundaryr, | 
|---|
| 1609 | mng_int32        *iBoundaryt, | 
|---|
| 1610 | mng_int32        *iBoundaryb); | 
|---|
| 1611 | #endif | 
|---|
| 1612 |  | 
|---|
| 1613 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_disc       (mng_handle       hHandle, | 
|---|
| 1614 | mng_handle       hChunk, | 
|---|
| 1615 | mng_uint32       *iCount, | 
|---|
| 1616 | mng_uint16p      *pObjectids); | 
|---|
| 1617 |  | 
|---|
| 1618 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_back       (mng_handle       hHandle, | 
|---|
| 1619 | mng_handle       hChunk, | 
|---|
| 1620 | mng_uint16       *iRed, | 
|---|
| 1621 | mng_uint16       *iGreen, | 
|---|
| 1622 | mng_uint16       *iBlue, | 
|---|
| 1623 | mng_uint8        *iMandatory, | 
|---|
| 1624 | mng_uint16       *iImageid, | 
|---|
| 1625 | mng_uint8        *iTile); | 
|---|
| 1626 |  | 
|---|
| 1627 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_fram       (mng_handle       hHandle, | 
|---|
| 1628 | mng_handle       hChunk, | 
|---|
| 1629 | mng_bool         *bEmpty, | 
|---|
| 1630 | mng_uint8        *iMode, | 
|---|
| 1631 | mng_uint32       *iNamesize, | 
|---|
| 1632 | mng_pchar        *zName, | 
|---|
| 1633 | mng_uint8        *iChangedelay, | 
|---|
| 1634 | mng_uint8        *iChangetimeout, | 
|---|
| 1635 | mng_uint8        *iChangeclipping, | 
|---|
| 1636 | mng_uint8        *iChangesyncid, | 
|---|
| 1637 | mng_uint32       *iDelay, | 
|---|
| 1638 | mng_uint32       *iTimeout, | 
|---|
| 1639 | mng_uint8        *iBoundarytype, | 
|---|
| 1640 | mng_int32        *iBoundaryl, | 
|---|
| 1641 | mng_int32        *iBoundaryr, | 
|---|
| 1642 | mng_int32        *iBoundaryt, | 
|---|
| 1643 | mng_int32        *iBoundaryb, | 
|---|
| 1644 | mng_uint32       *iCount, | 
|---|
| 1645 | mng_uint32p      *pSyncids); | 
|---|
| 1646 |  | 
|---|
| 1647 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_move       (mng_handle       hHandle, | 
|---|
| 1648 | mng_handle       hChunk, | 
|---|
| 1649 | mng_uint16       *iFirstid, | 
|---|
| 1650 | mng_uint16       *iLastid, | 
|---|
| 1651 | mng_uint8        *iMovetype, | 
|---|
| 1652 | mng_int32        *iMovex, | 
|---|
| 1653 | mng_int32        *iMovey); | 
|---|
| 1654 |  | 
|---|
| 1655 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_clip       (mng_handle       hHandle, | 
|---|
| 1656 | mng_handle       hChunk, | 
|---|
| 1657 | mng_uint16       *iFirstid, | 
|---|
| 1658 | mng_uint16       *iLastid, | 
|---|
| 1659 | mng_uint8        *iCliptype, | 
|---|
| 1660 | mng_int32        *iClipl, | 
|---|
| 1661 | mng_int32        *iClipr, | 
|---|
| 1662 | mng_int32        *iClipt, | 
|---|
| 1663 | mng_int32        *iClipb); | 
|---|
| 1664 |  | 
|---|
| 1665 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_show       (mng_handle       hHandle, | 
|---|
| 1666 | mng_handle       hChunk, | 
|---|
| 1667 | mng_bool         *bEmpty, | 
|---|
| 1668 | mng_uint16       *iFirstid, | 
|---|
| 1669 | mng_uint16       *iLastid, | 
|---|
| 1670 | mng_uint8        *iMode); | 
|---|
| 1671 |  | 
|---|
| 1672 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_term       (mng_handle       hHandle, | 
|---|
| 1673 | mng_handle       hChunk, | 
|---|
| 1674 | mng_uint8        *iTermaction, | 
|---|
| 1675 | mng_uint8        *iIteraction, | 
|---|
| 1676 | mng_uint32       *iDelay, | 
|---|
| 1677 | mng_uint32       *iItermax); | 
|---|
| 1678 |  | 
|---|
| 1679 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_save       (mng_handle       hHandle, | 
|---|
| 1680 | mng_handle       hChunk, | 
|---|
| 1681 | mng_bool         *bEmpty, | 
|---|
| 1682 | mng_uint8        *iOffsettype, | 
|---|
| 1683 | mng_uint32       *iCount); | 
|---|
| 1684 |  | 
|---|
| 1685 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_save_entry (mng_handle       hHandle, | 
|---|
| 1686 | mng_handle       hChunk, | 
|---|
| 1687 | mng_uint32       iEntry, | 
|---|
| 1688 | mng_uint8        *iEntrytype, | 
|---|
| 1689 | mng_uint32arr2   *iOffset, | 
|---|
| 1690 | mng_uint32arr2   *iStarttime, | 
|---|
| 1691 | mng_uint32       *iLayernr, | 
|---|
| 1692 | mng_uint32       *iFramenr, | 
|---|
| 1693 | mng_uint32       *iNamesize, | 
|---|
| 1694 | mng_pchar        *zName); | 
|---|
| 1695 |  | 
|---|
| 1696 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_seek       (mng_handle       hHandle, | 
|---|
| 1697 | mng_handle       hChunk, | 
|---|
| 1698 | mng_uint32       *iNamesize, | 
|---|
| 1699 | mng_pchar        *zName); | 
|---|
| 1700 |  | 
|---|
| 1701 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_expi       (mng_handle       hHandle, | 
|---|
| 1702 | mng_handle       hChunk, | 
|---|
| 1703 | mng_uint16       *iSnapshotid, | 
|---|
| 1704 | mng_uint32       *iNamesize, | 
|---|
| 1705 | mng_pchar        *zName); | 
|---|
| 1706 |  | 
|---|
| 1707 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_fpri       (mng_handle       hHandle, | 
|---|
| 1708 | mng_handle       hChunk, | 
|---|
| 1709 | mng_uint8        *iDeltatype, | 
|---|
| 1710 | mng_uint8        *iPriority); | 
|---|
| 1711 |  | 
|---|
| 1712 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_need       (mng_handle       hHandle, | 
|---|
| 1713 | mng_handle       hChunk, | 
|---|
| 1714 | mng_uint32       *iKeywordssize, | 
|---|
| 1715 | mng_pchar        *zKeywords); | 
|---|
| 1716 |  | 
|---|
| 1717 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_phyg       (mng_handle       hHandle, | 
|---|
| 1718 | mng_handle       hChunk, | 
|---|
| 1719 | mng_bool         *bEmpty, | 
|---|
| 1720 | mng_uint32       *iSizex, | 
|---|
| 1721 | mng_uint32       *iSizey, | 
|---|
| 1722 | mng_uint8        *iUnit); | 
|---|
| 1723 |  | 
|---|
| 1724 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_jhdr       (mng_handle       hHandle, | 
|---|
| 1725 | mng_handle       hChunk, | 
|---|
| 1726 | mng_uint32       *iWidth, | 
|---|
| 1727 | mng_uint32       *iHeight, | 
|---|
| 1728 | mng_uint8        *iColortype, | 
|---|
| 1729 | mng_uint8        *iImagesampledepth, | 
|---|
| 1730 | mng_uint8        *iImagecompression, | 
|---|
| 1731 | mng_uint8        *iImageinterlace, | 
|---|
| 1732 | mng_uint8        *iAlphasampledepth, | 
|---|
| 1733 | mng_uint8        *iAlphacompression, | 
|---|
| 1734 | mng_uint8        *iAlphafilter, | 
|---|
| 1735 | mng_uint8        *iAlphainterlace); | 
|---|
| 1736 |  | 
|---|
| 1737 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_jdat       (mng_handle       hHandle, | 
|---|
| 1738 | mng_handle       hChunk, | 
|---|
| 1739 | mng_uint32       *iRawlen, | 
|---|
| 1740 | mng_ptr          *pRawdata); | 
|---|
| 1741 |  | 
|---|
| 1742 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_jdaa       (mng_handle       hHandle, | 
|---|
| 1743 | mng_handle       hChunk, | 
|---|
| 1744 | mng_uint32       *iRawlen, | 
|---|
| 1745 | mng_ptr          *pRawdata); | 
|---|
| 1746 |  | 
|---|
| 1747 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_dhdr       (mng_handle       hHandle, | 
|---|
| 1748 | mng_handle       hChunk, | 
|---|
| 1749 | mng_uint16       *iObjectid, | 
|---|
| 1750 | mng_uint8        *iImagetype, | 
|---|
| 1751 | mng_uint8        *iDeltatype, | 
|---|
| 1752 | mng_uint32       *iBlockwidth, | 
|---|
| 1753 | mng_uint32       *iBlockheight, | 
|---|
| 1754 | mng_uint32       *iBlockx, | 
|---|
| 1755 | mng_uint32       *iBlocky); | 
|---|
| 1756 |  | 
|---|
| 1757 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_prom       (mng_handle       hHandle, | 
|---|
| 1758 | mng_handle       hChunk, | 
|---|
| 1759 | mng_uint8        *iColortype, | 
|---|
| 1760 | mng_uint8        *iSampledepth, | 
|---|
| 1761 | mng_uint8        *iFilltype); | 
|---|
| 1762 |  | 
|---|
| 1763 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_pplt       (mng_handle       hHandle, | 
|---|
| 1764 | mng_handle       hChunk, | 
|---|
| 1765 | mng_uint8        *iDeltatype, | 
|---|
| 1766 | mng_uint32       *iCount); | 
|---|
| 1767 |  | 
|---|
| 1768 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_pplt_entry (mng_handle       hHandle, | 
|---|
| 1769 | mng_handle       hChunk, | 
|---|
| 1770 | mng_uint32       iEntry, | 
|---|
| 1771 | mng_uint16       *iRed, | 
|---|
| 1772 | mng_uint16       *iGreen, | 
|---|
| 1773 | mng_uint16       *iBlue, | 
|---|
| 1774 | mng_uint16       *iAlpha, | 
|---|
| 1775 | mng_bool         *bUsed); | 
|---|
| 1776 |  | 
|---|
| 1777 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_drop       (mng_handle       hHandle, | 
|---|
| 1778 | mng_handle       hChunk, | 
|---|
| 1779 | mng_uint32       *iCount, | 
|---|
| 1780 | mng_chunkidp     *pChunknames); | 
|---|
| 1781 |  | 
|---|
| 1782 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_dbyk       (mng_handle       hHandle, | 
|---|
| 1783 | mng_handle       hChunk, | 
|---|
| 1784 | mng_chunkid      *iChunkname, | 
|---|
| 1785 | mng_uint8        *iPolarity, | 
|---|
| 1786 | mng_uint32       *iKeywordssize, | 
|---|
| 1787 | mng_pchar        *zKeywords); | 
|---|
| 1788 |  | 
|---|
| 1789 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_ordr       (mng_handle       hHandle, | 
|---|
| 1790 | mng_handle       hChunk, | 
|---|
| 1791 | mng_uint32       *iCount); | 
|---|
| 1792 |  | 
|---|
| 1793 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_ordr_entry (mng_handle       hHandle, | 
|---|
| 1794 | mng_handle       hChunk, | 
|---|
| 1795 | mng_uint32       iEntry, | 
|---|
| 1796 | mng_chunkid      *iChunkname, | 
|---|
| 1797 | mng_uint8        *iOrdertype); | 
|---|
| 1798 |  | 
|---|
| 1799 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_magn       (mng_handle       hHandle, | 
|---|
| 1800 | mng_handle       hChunk, | 
|---|
| 1801 | mng_uint16       *iFirstid, | 
|---|
| 1802 | mng_uint16       *iLastid, | 
|---|
| 1803 | mng_uint16       *iMethodX, | 
|---|
| 1804 | mng_uint16       *iMX, | 
|---|
| 1805 | mng_uint16       *iMY, | 
|---|
| 1806 | mng_uint16       *iML, | 
|---|
| 1807 | mng_uint16       *iMR, | 
|---|
| 1808 | mng_uint16       *iMT, | 
|---|
| 1809 | mng_uint16       *iMB, | 
|---|
| 1810 | mng_uint16       *iMethodY); | 
|---|
| 1811 |  | 
|---|
| 1812 | #ifdef MNG_INCLUDE_MPNG_PROPOSAL | 
|---|
| 1813 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_mpng       (mng_handle       hHandle, | 
|---|
| 1814 | mng_handle       hChunk, | 
|---|
| 1815 | mng_uint32       *iFramewidth, | 
|---|
| 1816 | mng_uint32       *iFrameheight, | 
|---|
| 1817 | mng_uint16       *iNumplays, | 
|---|
| 1818 | mng_uint16       *iTickspersec, | 
|---|
| 1819 | mng_uint8        *iCompressionmethod, | 
|---|
| 1820 | mng_uint32       *iCount); | 
|---|
| 1821 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_mpng_frame (mng_handle       hHandle, | 
|---|
| 1822 | mng_handle       hChunk, | 
|---|
| 1823 | mng_uint32       iEntry, | 
|---|
| 1824 | mng_uint32       *iX, | 
|---|
| 1825 | mng_uint32       *iY, | 
|---|
| 1826 | mng_uint32       *iWidth, | 
|---|
| 1827 | mng_uint32       *iHeight, | 
|---|
| 1828 | mng_int32        *iXoffset, | 
|---|
| 1829 | mng_int32        *iYoffset, | 
|---|
| 1830 | mng_uint16       *iTicks); | 
|---|
| 1831 | #endif | 
|---|
| 1832 |  | 
|---|
| 1833 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_evnt       (mng_handle       hHandle, | 
|---|
| 1834 | mng_handle       hChunk, | 
|---|
| 1835 | mng_uint32       *iCount); | 
|---|
| 1836 |  | 
|---|
| 1837 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_evnt_entry (mng_handle       hHandle, | 
|---|
| 1838 | mng_handle       hChunk, | 
|---|
| 1839 | mng_uint32       iEntry, | 
|---|
| 1840 | mng_uint8        *iEventtype, | 
|---|
| 1841 | mng_uint8        *iMasktype, | 
|---|
| 1842 | mng_int32        *iLeft, | 
|---|
| 1843 | mng_int32        *iRight, | 
|---|
| 1844 | mng_int32        *iTop, | 
|---|
| 1845 | mng_int32        *iBottom, | 
|---|
| 1846 | mng_uint16       *iObjectid, | 
|---|
| 1847 | mng_uint8        *iIndex, | 
|---|
| 1848 | mng_uint32       *iSegmentnamesize, | 
|---|
| 1849 | mng_pchar        *zSegmentname); | 
|---|
| 1850 |  | 
|---|
| 1851 | MNG_EXT mng_retcode MNG_DECL mng_getchunk_unknown    (mng_handle       hHandle, | 
|---|
| 1852 | mng_handle       hChunk, | 
|---|
| 1853 | mng_chunkid      *iChunkname, | 
|---|
| 1854 | mng_uint32       *iRawlen, | 
|---|
| 1855 | mng_ptr          *pRawdata); | 
|---|
| 1856 |  | 
|---|
| 1857 | /* ************************************************************************** */ | 
|---|
| 1858 |  | 
|---|
| 1859 | #ifdef MNG_INCLUDE_WRITE_PROCS | 
|---|
| 1860 |  | 
|---|
| 1861 | /* use these to create new chunks at the end of the chunk-list */ | 
|---|
| 1862 | /* requires at least MNG_ACCESS_CHUNKS (MNG_SUPPORT_WRITE may be nice too) */ | 
|---|
| 1863 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_ihdr       (mng_handle       hHandle, | 
|---|
| 1864 | mng_uint32       iWidth, | 
|---|
| 1865 | mng_uint32       iHeight, | 
|---|
| 1866 | mng_uint8        iBitdepth, | 
|---|
| 1867 | mng_uint8        iColortype, | 
|---|
| 1868 | mng_uint8        iCompression, | 
|---|
| 1869 | mng_uint8        iFilter, | 
|---|
| 1870 | mng_uint8        iInterlace); | 
|---|
| 1871 |  | 
|---|
| 1872 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_plte       (mng_handle       hHandle, | 
|---|
| 1873 | mng_uint32       iCount, | 
|---|
| 1874 | mng_palette8     aPalette); | 
|---|
| 1875 |  | 
|---|
| 1876 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_idat       (mng_handle       hHandle, | 
|---|
| 1877 | mng_uint32       iRawlen, | 
|---|
| 1878 | mng_ptr          pRawdata); | 
|---|
| 1879 |  | 
|---|
| 1880 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_iend       (mng_handle       hHandle); | 
|---|
| 1881 |  | 
|---|
| 1882 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_trns       (mng_handle       hHandle, | 
|---|
| 1883 | mng_bool         bEmpty, | 
|---|
| 1884 | mng_bool         bGlobal, | 
|---|
| 1885 | mng_uint8        iType, | 
|---|
| 1886 | mng_uint32       iCount, | 
|---|
| 1887 | mng_uint8arr     aAlphas, | 
|---|
| 1888 | mng_uint16       iGray, | 
|---|
| 1889 | mng_uint16       iRed, | 
|---|
| 1890 | mng_uint16       iGreen, | 
|---|
| 1891 | mng_uint16       iBlue, | 
|---|
| 1892 | mng_uint32       iRawlen, | 
|---|
| 1893 | mng_uint8arr     aRawdata); | 
|---|
| 1894 |  | 
|---|
| 1895 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_gama       (mng_handle       hHandle, | 
|---|
| 1896 | mng_bool         bEmpty, | 
|---|
| 1897 | mng_uint32       iGamma); | 
|---|
| 1898 |  | 
|---|
| 1899 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_chrm       (mng_handle       hHandle, | 
|---|
| 1900 | mng_bool         bEmpty, | 
|---|
| 1901 | mng_uint32       iWhitepointx, | 
|---|
| 1902 | mng_uint32       iWhitepointy, | 
|---|
| 1903 | mng_uint32       iRedx, | 
|---|
| 1904 | mng_uint32       iRedy, | 
|---|
| 1905 | mng_uint32       iGreenx, | 
|---|
| 1906 | mng_uint32       iGreeny, | 
|---|
| 1907 | mng_uint32       iBluex, | 
|---|
| 1908 | mng_uint32       iBluey); | 
|---|
| 1909 |  | 
|---|
| 1910 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_srgb       (mng_handle       hHandle, | 
|---|
| 1911 | mng_bool         bEmpty, | 
|---|
| 1912 | mng_uint8        iRenderingintent); | 
|---|
| 1913 |  | 
|---|
| 1914 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_iccp       (mng_handle       hHandle, | 
|---|
| 1915 | mng_bool         bEmpty, | 
|---|
| 1916 | mng_uint32       iNamesize, | 
|---|
| 1917 | mng_pchar        zName, | 
|---|
| 1918 | mng_uint8        iCompression, | 
|---|
| 1919 | mng_uint32       iProfilesize, | 
|---|
| 1920 | mng_ptr          pProfile); | 
|---|
| 1921 |  | 
|---|
| 1922 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_text       (mng_handle       hHandle, | 
|---|
| 1923 | mng_uint32       iKeywordsize, | 
|---|
| 1924 | mng_pchar        zKeyword, | 
|---|
| 1925 | mng_uint32       iTextsize, | 
|---|
| 1926 | mng_pchar        zText); | 
|---|
| 1927 |  | 
|---|
| 1928 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_ztxt       (mng_handle       hHandle, | 
|---|
| 1929 | mng_uint32       iKeywordsize, | 
|---|
| 1930 | mng_pchar        zKeyword, | 
|---|
| 1931 | mng_uint8        iCompression, | 
|---|
| 1932 | mng_uint32       iTextsize, | 
|---|
| 1933 | mng_pchar        zText); | 
|---|
| 1934 |  | 
|---|
| 1935 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_itxt       (mng_handle       hHandle, | 
|---|
| 1936 | mng_uint32       iKeywordsize, | 
|---|
| 1937 | mng_pchar        zKeyword, | 
|---|
| 1938 | mng_uint8        iCompressionflag, | 
|---|
| 1939 | mng_uint8        iCompressionmethod, | 
|---|
| 1940 | mng_uint32       iLanguagesize, | 
|---|
| 1941 | mng_pchar        zLanguage, | 
|---|
| 1942 | mng_uint32       iTranslationsize, | 
|---|
| 1943 | mng_pchar        zTranslation, | 
|---|
| 1944 | mng_uint32       iTextsize, | 
|---|
| 1945 | mng_pchar        zText); | 
|---|
| 1946 |  | 
|---|
| 1947 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_bkgd       (mng_handle       hHandle, | 
|---|
| 1948 | mng_bool         bEmpty, | 
|---|
| 1949 | mng_uint8        iType, | 
|---|
| 1950 | mng_uint8        iIndex, | 
|---|
| 1951 | mng_uint16       iGray, | 
|---|
| 1952 | mng_uint16       iRed, | 
|---|
| 1953 | mng_uint16       iGreen, | 
|---|
| 1954 | mng_uint16       iBlue); | 
|---|
| 1955 |  | 
|---|
| 1956 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_phys       (mng_handle       hHandle, | 
|---|
| 1957 | mng_bool         bEmpty, | 
|---|
| 1958 | mng_uint32       iSizex, | 
|---|
| 1959 | mng_uint32       iSizey, | 
|---|
| 1960 | mng_uint8        iUnit); | 
|---|
| 1961 |  | 
|---|
| 1962 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_sbit       (mng_handle       hHandle, | 
|---|
| 1963 | mng_bool         bEmpty, | 
|---|
| 1964 | mng_uint8        iType, | 
|---|
| 1965 | mng_uint8arr4    aBits); | 
|---|
| 1966 |  | 
|---|
| 1967 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_splt       (mng_handle       hHandle, | 
|---|
| 1968 | mng_bool         bEmpty, | 
|---|
| 1969 | mng_uint32       iNamesize, | 
|---|
| 1970 | mng_pchar        zName, | 
|---|
| 1971 | mng_uint8        iSampledepth, | 
|---|
| 1972 | mng_uint32       iEntrycount, | 
|---|
| 1973 | mng_ptr          pEntries); | 
|---|
| 1974 |  | 
|---|
| 1975 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_hist       (mng_handle       hHandle, | 
|---|
| 1976 | mng_uint32       iEntrycount, | 
|---|
| 1977 | mng_uint16arr    aEntries); | 
|---|
| 1978 |  | 
|---|
| 1979 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_time       (mng_handle       hHandle, | 
|---|
| 1980 | mng_uint16       iYear, | 
|---|
| 1981 | mng_uint8        iMonth, | 
|---|
| 1982 | mng_uint8        iDay, | 
|---|
| 1983 | mng_uint8        iHour, | 
|---|
| 1984 | mng_uint8        iMinute, | 
|---|
| 1985 | mng_uint8        iSecond); | 
|---|
| 1986 |  | 
|---|
| 1987 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_mhdr       (mng_handle       hHandle, | 
|---|
| 1988 | mng_uint32       iWidth, | 
|---|
| 1989 | mng_uint32       iHeight, | 
|---|
| 1990 | mng_uint32       iTicks, | 
|---|
| 1991 | mng_uint32       iLayercount, | 
|---|
| 1992 | mng_uint32       iFramecount, | 
|---|
| 1993 | mng_uint32       iPlaytime, | 
|---|
| 1994 | mng_uint32       iSimplicity); | 
|---|
| 1995 |  | 
|---|
| 1996 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_mend       (mng_handle       hHandle); | 
|---|
| 1997 |  | 
|---|
| 1998 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_loop       (mng_handle       hHandle, | 
|---|
| 1999 | mng_uint8        iLevel, | 
|---|
| 2000 | mng_uint32       iRepeat, | 
|---|
| 2001 | mng_uint8        iTermination, | 
|---|
| 2002 | mng_uint32       iItermin, | 
|---|
| 2003 | mng_uint32       iItermax, | 
|---|
| 2004 | mng_uint32       iCount, | 
|---|
| 2005 | mng_uint32p      pSignals); | 
|---|
| 2006 |  | 
|---|
| 2007 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_endl       (mng_handle       hHandle, | 
|---|
| 2008 | mng_uint8        iLevel); | 
|---|
| 2009 |  | 
|---|
| 2010 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_defi       (mng_handle       hHandle, | 
|---|
| 2011 | mng_uint16       iObjectid, | 
|---|
| 2012 | mng_uint8        iDonotshow, | 
|---|
| 2013 | mng_uint8        iConcrete, | 
|---|
| 2014 | mng_bool         bHasloca, | 
|---|
| 2015 | mng_int32        iXlocation, | 
|---|
| 2016 | mng_int32        iYlocation, | 
|---|
| 2017 | mng_bool         bHasclip, | 
|---|
| 2018 | mng_int32        iLeftcb, | 
|---|
| 2019 | mng_int32        iRightcb, | 
|---|
| 2020 | mng_int32        iTopcb, | 
|---|
| 2021 | mng_int32        iBottomcb); | 
|---|
| 2022 |  | 
|---|
| 2023 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_basi       (mng_handle       hHandle, | 
|---|
| 2024 | mng_uint32       iWidth, | 
|---|
| 2025 | mng_uint32       iHeight, | 
|---|
| 2026 | mng_uint8        iBitdepth, | 
|---|
| 2027 | mng_uint8        iColortype, | 
|---|
| 2028 | mng_uint8        iCompression, | 
|---|
| 2029 | mng_uint8        iFilter, | 
|---|
| 2030 | mng_uint8        iInterlace, | 
|---|
| 2031 | mng_uint16       iRed, | 
|---|
| 2032 | mng_uint16       iGreen, | 
|---|
| 2033 | mng_uint16       iBlue, | 
|---|
| 2034 | mng_uint16       iAlpha, | 
|---|
| 2035 | mng_uint8        iViewable); | 
|---|
| 2036 |  | 
|---|
| 2037 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_clon       (mng_handle       hHandle, | 
|---|
| 2038 | mng_uint16       iSourceid, | 
|---|
| 2039 | mng_uint16       iCloneid, | 
|---|
| 2040 | mng_uint8        iClonetype, | 
|---|
| 2041 | mng_uint8        iDonotshow, | 
|---|
| 2042 | mng_uint8        iConcrete, | 
|---|
| 2043 | mng_bool         bHasloca, | 
|---|
| 2044 | mng_uint8        iLocationtype, | 
|---|
| 2045 | mng_int32        iLocationx, | 
|---|
| 2046 | mng_int32        iLocationy); | 
|---|
| 2047 |  | 
|---|
| 2048 | #ifndef MNG_SKIPCHUNK_PAST | 
|---|
| 2049 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_past       (mng_handle       hHandle, | 
|---|
| 2050 | mng_uint16       iDestid, | 
|---|
| 2051 | mng_uint8        iTargettype, | 
|---|
| 2052 | mng_int32        iTargetx, | 
|---|
| 2053 | mng_int32        iTargety, | 
|---|
| 2054 | mng_uint32       iCount); | 
|---|
| 2055 |  | 
|---|
| 2056 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_past_src   (mng_handle       hHandle, | 
|---|
| 2057 | mng_uint32       iEntry, | 
|---|
| 2058 | mng_uint16       iSourceid, | 
|---|
| 2059 | mng_uint8        iComposition, | 
|---|
| 2060 | mng_uint8        iOrientation, | 
|---|
| 2061 | mng_uint8        iOffsettype, | 
|---|
| 2062 | mng_int32        iOffsetx, | 
|---|
| 2063 | mng_int32        iOffsety, | 
|---|
| 2064 | mng_uint8        iBoundarytype, | 
|---|
| 2065 | mng_int32        iBoundaryl, | 
|---|
| 2066 | mng_int32        iBoundaryr, | 
|---|
| 2067 | mng_int32        iBoundaryt, | 
|---|
| 2068 | mng_int32        iBoundaryb); | 
|---|
| 2069 | #endif | 
|---|
| 2070 |  | 
|---|
| 2071 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_disc       (mng_handle       hHandle, | 
|---|
| 2072 | mng_uint32       iCount, | 
|---|
| 2073 | mng_uint16p      pObjectids); | 
|---|
| 2074 |  | 
|---|
| 2075 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_back       (mng_handle       hHandle, | 
|---|
| 2076 | mng_uint16       iRed, | 
|---|
| 2077 | mng_uint16       iGreen, | 
|---|
| 2078 | mng_uint16       iBlue, | 
|---|
| 2079 | mng_uint8        iMandatory, | 
|---|
| 2080 | mng_uint16       iImageid, | 
|---|
| 2081 | mng_uint8        iTile); | 
|---|
| 2082 |  | 
|---|
| 2083 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_fram       (mng_handle       hHandle, | 
|---|
| 2084 | mng_bool         bEmpty, | 
|---|
| 2085 | mng_uint8        iMode, | 
|---|
| 2086 | mng_uint32       iNamesize, | 
|---|
| 2087 | mng_pchar        zName, | 
|---|
| 2088 | mng_uint8        iChangedelay, | 
|---|
| 2089 | mng_uint8        iChangetimeout, | 
|---|
| 2090 | mng_uint8        iChangeclipping, | 
|---|
| 2091 | mng_uint8        iChangesyncid, | 
|---|
| 2092 | mng_uint32       iDelay, | 
|---|
| 2093 | mng_uint32       iTimeout, | 
|---|
| 2094 | mng_uint8        iBoundarytype, | 
|---|
| 2095 | mng_int32        iBoundaryl, | 
|---|
| 2096 | mng_int32        iBoundaryr, | 
|---|
| 2097 | mng_int32        iBoundaryt, | 
|---|
| 2098 | mng_int32        iBoundaryb, | 
|---|
| 2099 | mng_uint32       iCount, | 
|---|
| 2100 | mng_uint32p      pSyncids); | 
|---|
| 2101 |  | 
|---|
| 2102 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_move       (mng_handle       hHandle, | 
|---|
| 2103 | mng_uint16       iFirstid, | 
|---|
| 2104 | mng_uint16       iLastid, | 
|---|
| 2105 | mng_uint8        iMovetype, | 
|---|
| 2106 | mng_int32        iMovex, | 
|---|
| 2107 | mng_int32        iMovey); | 
|---|
| 2108 |  | 
|---|
| 2109 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_clip       (mng_handle       hHandle, | 
|---|
| 2110 | mng_uint16       iFirstid, | 
|---|
| 2111 | mng_uint16       iLastid, | 
|---|
| 2112 | mng_uint8        iCliptype, | 
|---|
| 2113 | mng_int32        iClipl, | 
|---|
| 2114 | mng_int32        iClipr, | 
|---|
| 2115 | mng_int32        iClipt, | 
|---|
| 2116 | mng_int32        iClipb); | 
|---|
| 2117 |  | 
|---|
| 2118 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_show       (mng_handle       hHandle, | 
|---|
| 2119 | mng_bool         bEmpty, | 
|---|
| 2120 | mng_uint16       iFirstid, | 
|---|
| 2121 | mng_uint16       iLastid, | 
|---|
| 2122 | mng_uint8        iMode); | 
|---|
| 2123 |  | 
|---|
| 2124 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_term       (mng_handle       hHandle, | 
|---|
| 2125 | mng_uint8        iTermaction, | 
|---|
| 2126 | mng_uint8        iIteraction, | 
|---|
| 2127 | mng_uint32       iDelay, | 
|---|
| 2128 | mng_uint32       iItermax); | 
|---|
| 2129 |  | 
|---|
| 2130 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_save       (mng_handle       hHandle, | 
|---|
| 2131 | mng_bool         bEmpty, | 
|---|
| 2132 | mng_uint8        iOffsettype, | 
|---|
| 2133 | mng_uint32       iCount); | 
|---|
| 2134 |  | 
|---|
| 2135 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_save_entry (mng_handle       hHandle, | 
|---|
| 2136 | mng_uint32       iEntry, | 
|---|
| 2137 | mng_uint8        iEntrytype, | 
|---|
| 2138 | mng_uint32arr2   iOffset, | 
|---|
| 2139 | mng_uint32arr2   iStarttime, | 
|---|
| 2140 | mng_uint32       iLayernr, | 
|---|
| 2141 | mng_uint32       iFramenr, | 
|---|
| 2142 | mng_uint32       iNamesize, | 
|---|
| 2143 | mng_pchar        zName); | 
|---|
| 2144 |  | 
|---|
| 2145 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_seek       (mng_handle       hHandle, | 
|---|
| 2146 | mng_uint32       iNamesize, | 
|---|
| 2147 | mng_pchar        zName); | 
|---|
| 2148 |  | 
|---|
| 2149 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_expi       (mng_handle       hHandle, | 
|---|
| 2150 | mng_uint16       iSnapshotid, | 
|---|
| 2151 | mng_uint32       iNamesize, | 
|---|
| 2152 | mng_pchar        zName); | 
|---|
| 2153 |  | 
|---|
| 2154 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_fpri       (mng_handle       hHandle, | 
|---|
| 2155 | mng_uint8        iDeltatype, | 
|---|
| 2156 | mng_uint8        iPriority); | 
|---|
| 2157 |  | 
|---|
| 2158 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_need       (mng_handle       hHandle, | 
|---|
| 2159 | mng_uint32       iKeywordssize, | 
|---|
| 2160 | mng_pchar        zKeywords); | 
|---|
| 2161 |  | 
|---|
| 2162 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_phyg       (mng_handle       hHandle, | 
|---|
| 2163 | mng_bool         bEmpty, | 
|---|
| 2164 | mng_uint32       iSizex, | 
|---|
| 2165 | mng_uint32       iSizey, | 
|---|
| 2166 | mng_uint8        iUnit); | 
|---|
| 2167 |  | 
|---|
| 2168 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_jhdr       (mng_handle       hHandle, | 
|---|
| 2169 | mng_uint32       iWidth, | 
|---|
| 2170 | mng_uint32       iHeight, | 
|---|
| 2171 | mng_uint8        iColortype, | 
|---|
| 2172 | mng_uint8        iImagesampledepth, | 
|---|
| 2173 | mng_uint8        iImagecompression, | 
|---|
| 2174 | mng_uint8        iImageinterlace, | 
|---|
| 2175 | mng_uint8        iAlphasampledepth, | 
|---|
| 2176 | mng_uint8        iAlphacompression, | 
|---|
| 2177 | mng_uint8        iAlphafilter, | 
|---|
| 2178 | mng_uint8        iAlphainterlace); | 
|---|
| 2179 |  | 
|---|
| 2180 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_jdat       (mng_handle       hHandle, | 
|---|
| 2181 | mng_uint32       iRawlen, | 
|---|
| 2182 | mng_ptr          pRawdata); | 
|---|
| 2183 |  | 
|---|
| 2184 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_jdaa       (mng_handle       hHandle, | 
|---|
| 2185 | mng_uint32       iRawlen, | 
|---|
| 2186 | mng_ptr          pRawdata); | 
|---|
| 2187 |  | 
|---|
| 2188 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_jsep       (mng_handle       hHandle); | 
|---|
| 2189 |  | 
|---|
| 2190 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_dhdr       (mng_handle       hHandle, | 
|---|
| 2191 | mng_uint16       iObjectid, | 
|---|
| 2192 | mng_uint8        iImagetype, | 
|---|
| 2193 | mng_uint8        iDeltatype, | 
|---|
| 2194 | mng_uint32       iBlockwidth, | 
|---|
| 2195 | mng_uint32       iBlockheight, | 
|---|
| 2196 | mng_uint32       iBlockx, | 
|---|
| 2197 | mng_uint32       iBlocky); | 
|---|
| 2198 |  | 
|---|
| 2199 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_prom       (mng_handle       hHandle, | 
|---|
| 2200 | mng_uint8        iColortype, | 
|---|
| 2201 | mng_uint8        iSampledepth, | 
|---|
| 2202 | mng_uint8        iFilltype); | 
|---|
| 2203 |  | 
|---|
| 2204 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_ipng       (mng_handle       hHandle); | 
|---|
| 2205 |  | 
|---|
| 2206 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_pplt       (mng_handle       hHandle, | 
|---|
| 2207 | mng_uint8        iDeltatype, | 
|---|
| 2208 | mng_uint32       iCount); | 
|---|
| 2209 |  | 
|---|
| 2210 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_pplt_entry (mng_handle       hHandle, | 
|---|
| 2211 | mng_uint32       iEntry, | 
|---|
| 2212 | mng_uint16       iRed, | 
|---|
| 2213 | mng_uint16       iGreen, | 
|---|
| 2214 | mng_uint16       iBlue, | 
|---|
| 2215 | mng_uint16       iAlpha); | 
|---|
| 2216 |  | 
|---|
| 2217 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_jpng       (mng_handle       hHandle); | 
|---|
| 2218 |  | 
|---|
| 2219 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_drop       (mng_handle       hHandle, | 
|---|
| 2220 | mng_uint32       iCount, | 
|---|
| 2221 | mng_chunkidp     pChunknames); | 
|---|
| 2222 |  | 
|---|
| 2223 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_dbyk       (mng_handle       hHandle, | 
|---|
| 2224 | mng_chunkid      iChunkname, | 
|---|
| 2225 | mng_uint8        iPolarity, | 
|---|
| 2226 | mng_uint32       iKeywordssize, | 
|---|
| 2227 | mng_pchar        zKeywords); | 
|---|
| 2228 |  | 
|---|
| 2229 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_ordr       (mng_handle       hHandle, | 
|---|
| 2230 | mng_uint32       iCount); | 
|---|
| 2231 |  | 
|---|
| 2232 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_ordr_entry (mng_handle       hHandle, | 
|---|
| 2233 | mng_uint32       iEntry, | 
|---|
| 2234 | mng_chunkid      iChunkname, | 
|---|
| 2235 | mng_uint8        iOrdertype); | 
|---|
| 2236 |  | 
|---|
| 2237 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_magn       (mng_handle       hHandle, | 
|---|
| 2238 | mng_uint16       iFirstid, | 
|---|
| 2239 | mng_uint16       iLastid, | 
|---|
| 2240 | mng_uint16       iMethodX, | 
|---|
| 2241 | mng_uint16       iMX, | 
|---|
| 2242 | mng_uint16       iMY, | 
|---|
| 2243 | mng_uint16       iML, | 
|---|
| 2244 | mng_uint16       iMR, | 
|---|
| 2245 | mng_uint16       iMT, | 
|---|
| 2246 | mng_uint16       iMB, | 
|---|
| 2247 | mng_uint16       iMethodY); | 
|---|
| 2248 |  | 
|---|
| 2249 | #ifdef MNG_INCLUDE_MPNG_PROPOSAL | 
|---|
| 2250 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_mpng       (mng_handle       hHandle, | 
|---|
| 2251 | mng_uint32       iFramewidth, | 
|---|
| 2252 | mng_uint32       iFrameheight, | 
|---|
| 2253 | mng_uint16       iNumplays, | 
|---|
| 2254 | mng_uint16       iTickspersec, | 
|---|
| 2255 | mng_uint8        iCompressionmethod, | 
|---|
| 2256 | mng_uint32       iCount); | 
|---|
| 2257 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_mpng_frame (mng_handle       hHandle, | 
|---|
| 2258 | mng_uint32       iEntry, | 
|---|
| 2259 | mng_uint32       iX, | 
|---|
| 2260 | mng_uint32       iY, | 
|---|
| 2261 | mng_uint32       iWidth, | 
|---|
| 2262 | mng_uint32       iHeight, | 
|---|
| 2263 | mng_int32        iXoffset, | 
|---|
| 2264 | mng_int32        iYoffset, | 
|---|
| 2265 | mng_uint16       iTicks); | 
|---|
| 2266 | #endif | 
|---|
| 2267 |  | 
|---|
| 2268 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_evnt       (mng_handle       hHandle, | 
|---|
| 2269 | mng_uint32       iCount); | 
|---|
| 2270 |  | 
|---|
| 2271 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_evnt_entry (mng_handle       hHandle, | 
|---|
| 2272 | mng_uint32       iEntry, | 
|---|
| 2273 | mng_uint8        iEventtype, | 
|---|
| 2274 | mng_uint8        iMasktype, | 
|---|
| 2275 | mng_int32        iLeft, | 
|---|
| 2276 | mng_int32        iRight, | 
|---|
| 2277 | mng_int32        iTop, | 
|---|
| 2278 | mng_int32        iBottom, | 
|---|
| 2279 | mng_uint16       iObjectid, | 
|---|
| 2280 | mng_uint8        iIndex, | 
|---|
| 2281 | mng_uint32       iSegmentnamesize, | 
|---|
| 2282 | mng_pchar        zSegmentname); | 
|---|
| 2283 |  | 
|---|
| 2284 | MNG_EXT mng_retcode MNG_DECL mng_putchunk_unknown    (mng_handle       hHandle, | 
|---|
| 2285 | mng_chunkid      iChunkname, | 
|---|
| 2286 | mng_uint32       iRawlen, | 
|---|
| 2287 | mng_ptr          pRawdata); | 
|---|
| 2288 |  | 
|---|
| 2289 | #endif /* MNG_INCLUDE_WRITE_PROCS */ | 
|---|
| 2290 |  | 
|---|
| 2291 | /* ************************************************************************** */ | 
|---|
| 2292 |  | 
|---|
| 2293 | /* use these functions to access the actual image-data in stored chunks, | 
|---|
| 2294 | as opposed to the IDAT/JDAT data */ | 
|---|
| 2295 | /* to get accurate pixel-data the canvasstyle should seriously reflect the | 
|---|
| 2296 | bitdepth/colortype combination of the preceding IHDR/JHDR/BASI/DHDR; | 
|---|
| 2297 | all input can be converted to rgb(a)8 (rgb(a)16 for 16-bit images), but | 
|---|
| 2298 | there are only limited conversions back (see below for putimgdata)  */ | 
|---|
| 2299 |  | 
|---|
| 2300 | /* call this function if you want to extract the nth image from the list; | 
|---|
| 2301 | the first image is designated seqnr 0! */ | 
|---|
| 2302 | /* this function finds the IHDR/JHDR/BASI/DHDR with the appropriate seqnr, | 
|---|
| 2303 | starting from the beginning of the chunk-list; this may tend to get a little | 
|---|
| 2304 | slow for animations with a large number of chunks for images near the end */ | 
|---|
| 2305 | /* supplying a seqnr past the last image in the animation will return with | 
|---|
| 2306 | an errorcode */ | 
|---|
| 2307 | MNG_EXT mng_retcode MNG_DECL mng_getimgdata_seq      (mng_handle        hHandle, | 
|---|
| 2308 | mng_uint32        iSeqnr, | 
|---|
| 2309 | mng_uint32        iCanvasstyle, | 
|---|
| 2310 | mng_getcanvasline fGetcanvasline); | 
|---|
| 2311 |  | 
|---|
| 2312 | /* both the following functions will search forward to find the first IDAT/JDAT, | 
|---|
| 2313 | and then traverse back to find the start of the image (IHDR,JHDR,DHDR,BASI); | 
|---|
| 2314 | note that this is very fast compared to decoding the IDAT/JDAT, so there's | 
|---|
| 2315 | not really a need for optimization; either can be called from the | 
|---|
| 2316 | iterate_chunks callback when a IHDR/JHDR is encountered; for BASI/DHDR there | 
|---|
| 2317 | may not be real image-data so it's wisest to keep iterating till the IEND, | 
|---|
| 2318 | and then call either of these functions if necessary (remember the correct seqnr!) */ | 
|---|
| 2319 |  | 
|---|
| 2320 | /* call this function if you want to extract the image starting at or after the nth | 
|---|
| 2321 | position in the chunk-list; this number is returned in the iterate_chunks callback */ | 
|---|
| 2322 | MNG_EXT mng_retcode MNG_DECL mng_getimgdata_chunkseq (mng_handle        hHandle, | 
|---|
| 2323 | mng_uint32        iSeqnr, | 
|---|
| 2324 | mng_uint32        iCanvasstyle, | 
|---|
| 2325 | mng_getcanvasline fGetcanvasline); | 
|---|
| 2326 |  | 
|---|
| 2327 | /* call this function if you want to extract the image starting at or after the | 
|---|
| 2328 | indicated chunk; the handle of a chunk is returned in the iterate_chunks callback */ | 
|---|
| 2329 | MNG_EXT mng_retcode MNG_DECL mng_getimgdata_chunk    (mng_handle        hHandle, | 
|---|
| 2330 | mng_handle        hChunk, | 
|---|
| 2331 | mng_uint32        iCanvasstyle, | 
|---|
| 2332 | mng_getcanvasline fGetcanvasline); | 
|---|
| 2333 |  | 
|---|
| 2334 | /* ************************************************************************** */ | 
|---|
| 2335 |  | 
|---|
| 2336 | #ifdef MNG_INCLUDE_WRITE_PROCS | 
|---|
| 2337 |  | 
|---|
| 2338 | /* use the following functions to add image-data to the list of stored chunks */ | 
|---|
| 2339 | /* note that this only adds the IDAT or JDAT chunks and no others; you must call | 
|---|
| 2340 | one of these functions after you 'put' the initial chunks of the image and | 
|---|
| 2341 | before you 'put' the closing chunks */ | 
|---|
| 2342 | /* the canvasstyle should seriously reflect the bitdepth/colortype combination; | 
|---|
| 2343 | eg. bitdepth=16 would expect a 16-bit canvasstyle, | 
|---|
| 2344 | colortype=g or ga would expect a gray or gray+alpha style respectively | 
|---|
| 2345 | and so on, and so forth ... | 
|---|
| 2346 | (nb. the number of conversions will be extremely limited for the moment!) */ | 
|---|
| 2347 |  | 
|---|
| 2348 | MNG_EXT mng_retcode MNG_DECL mng_putimgdata_ihdr     (mng_handle        hHandle, | 
|---|
| 2349 | mng_uint32        iWidth, | 
|---|
| 2350 | mng_uint32        iHeight, | 
|---|
| 2351 | mng_uint8         iColortype, | 
|---|
| 2352 | mng_uint8         iBitdepth, | 
|---|
| 2353 | mng_uint8         iCompression, | 
|---|
| 2354 | mng_uint8         iFilter, | 
|---|
| 2355 | mng_uint8         iInterlace, | 
|---|
| 2356 | mng_uint32        iCanvasstyle, | 
|---|
| 2357 | mng_getcanvasline fGetcanvasline); | 
|---|
| 2358 |  | 
|---|
| 2359 | MNG_EXT mng_retcode MNG_DECL mng_putimgdata_jhdr     (mng_handle        hHandle, | 
|---|
| 2360 | mng_uint32        iWidth, | 
|---|
| 2361 | mng_uint32        iHeight, | 
|---|
| 2362 | mng_uint8         iColortype, | 
|---|
| 2363 | mng_uint8         iBitdepth, | 
|---|
| 2364 | mng_uint8         iCompression, | 
|---|
| 2365 | mng_uint8         iInterlace, | 
|---|
| 2366 | mng_uint8         iAlphaBitdepth, | 
|---|
| 2367 | mng_uint8         iAlphaCompression, | 
|---|
| 2368 | mng_uint8         iAlphaFilter, | 
|---|
| 2369 | mng_uint8         iAlphaInterlace, | 
|---|
| 2370 | mng_uint32        iCanvasstyle, | 
|---|
| 2371 | mng_getcanvasline fGetcanvasline); | 
|---|
| 2372 |  | 
|---|
| 2373 | /* ************************************************************************** */ | 
|---|
| 2374 |  | 
|---|
| 2375 | /* use the following functions to set the framecount/layercount/playtime or | 
|---|
| 2376 | simplicity of an animation you are creating; this may be useful if these | 
|---|
| 2377 | variables are calculated during the creation-process */ | 
|---|
| 2378 |  | 
|---|
| 2379 | MNG_EXT mng_retcode MNG_DECL mng_updatemngheader     (mng_handle        hHandle, | 
|---|
| 2380 | mng_uint32        iFramecount, | 
|---|
| 2381 | mng_uint32        iLayercount, | 
|---|
| 2382 | mng_uint32        iPlaytime); | 
|---|
| 2383 |  | 
|---|
| 2384 | MNG_EXT mng_retcode MNG_DECL mng_updatemngsimplicity (mng_handle        hHandle, | 
|---|
| 2385 | mng_uint32        iSimplicity); | 
|---|
| 2386 |  | 
|---|
| 2387 | /* ************************************************************************** */ | 
|---|
| 2388 |  | 
|---|
| 2389 | #endif /* MNG_INCLUDE_WRITE_PROCS */ | 
|---|
| 2390 |  | 
|---|
| 2391 | #endif /* MNG_ACCESS_CHUNKS */ | 
|---|
| 2392 |  | 
|---|
| 2393 | /* ************************************************************************** */ | 
|---|
| 2394 | /* *                                                                        * */ | 
|---|
| 2395 | /* * Error-code structure                                                   * */ | 
|---|
| 2396 | /* *                                                                        * */ | 
|---|
| 2397 | /* * 0b0000 00xx xxxx xxxx - basic errors; severity 9 (environment)         * */ | 
|---|
| 2398 | /* * 0b0000 01xx xxxx xxxx - chunk errors; severity 9 (image induced)       * */ | 
|---|
| 2399 | /* * 0b0000 10xx xxxx xxxx - severity 5 errors (application induced)        * */ | 
|---|
| 2400 | /* * 0b0001 00xx xxxx xxxx - severity 2 warnings (recoverable)              * */ | 
|---|
| 2401 | /* * 0b0010 00xx xxxx xxxx - severity 1 warnings (recoverable)              * */ | 
|---|
| 2402 | /* *                                                                        * */ | 
|---|
| 2403 | /* ************************************************************************** */ | 
|---|
| 2404 |  | 
|---|
| 2405 | #define MNG_NOERROR          (mng_retcode)0    /* er.. indicates all's well   */ | 
|---|
| 2406 |  | 
|---|
| 2407 | #define MNG_OUTOFMEMORY      (mng_retcode)1    /* oops, buy some megabytes!   */ | 
|---|
| 2408 | #define MNG_INVALIDHANDLE    (mng_retcode)2    /* call mng_initialize first   */ | 
|---|
| 2409 | #define MNG_NOCALLBACK       (mng_retcode)3    /* set the callbacks please    */ | 
|---|
| 2410 | #define MNG_UNEXPECTEDEOF    (mng_retcode)4    /* what'd ya do with the data? */ | 
|---|
| 2411 | #define MNG_ZLIBERROR        (mng_retcode)5    /* zlib burped                 */ | 
|---|
| 2412 | #define MNG_JPEGERROR        (mng_retcode)6    /* jpglib complained           */ | 
|---|
| 2413 | #define MNG_LCMSERROR        (mng_retcode)7    /* little cms stressed out     */ | 
|---|
| 2414 | #define MNG_NOOUTPUTPROFILE  (mng_retcode)8    /* no output-profile defined   */ | 
|---|
| 2415 | #define MNG_NOSRGBPROFILE    (mng_retcode)9    /* no sRGB-profile defined     */ | 
|---|
| 2416 | #define MNG_BUFOVERFLOW      (mng_retcode)10   /* zlib output-buffer overflow */ | 
|---|
| 2417 | #define MNG_FUNCTIONINVALID  (mng_retcode)11   /* ay, totally inappropriate   */ | 
|---|
| 2418 | #define MNG_OUTPUTERROR      (mng_retcode)12   /* disk full ?                 */ | 
|---|
| 2419 | #define MNG_JPEGBUFTOOSMALL  (mng_retcode)13   /* can't handle buffer overflow*/ | 
|---|
| 2420 | #define MNG_NEEDMOREDATA     (mng_retcode)14   /* I'm hungry, give me more    */ | 
|---|
| 2421 | #define MNG_NEEDTIMERWAIT    (mng_retcode)15   /* Sleep a while then wake me  */ | 
|---|
| 2422 | #define MNG_NEEDSECTIONWAIT  (mng_retcode)16   /* just processed a SEEK       */ | 
|---|
| 2423 | #define MNG_LOOPWITHCACHEOFF (mng_retcode)17   /* LOOP when playback info off */ | 
|---|
| 2424 |  | 
|---|
| 2425 | #define MNG_DLLNOTLOADED     (mng_retcode)99   /* late binding failed         */ | 
|---|
| 2426 |  | 
|---|
| 2427 | #define MNG_APPIOERROR       (mng_retcode)901  /* application I/O error       */ | 
|---|
| 2428 | #define MNG_APPTIMERERROR    (mng_retcode)902  /* application timing error    */ | 
|---|
| 2429 | #define MNG_APPCMSERROR      (mng_retcode)903  /* application CMS error       */ | 
|---|
| 2430 | #define MNG_APPMISCERROR     (mng_retcode)904  /* application other error     */ | 
|---|
| 2431 | #define MNG_APPTRACEABORT    (mng_retcode)905  /* application aborts on trace */ | 
|---|
| 2432 |  | 
|---|
| 2433 | #define MNG_INTERNALERROR    (mng_retcode)999  /* internal inconsistancy      */ | 
|---|
| 2434 |  | 
|---|
| 2435 | #define MNG_INVALIDSIG       (mng_retcode)1025 /* invalid graphics file       */ | 
|---|
| 2436 | #define MNG_INVALIDCRC       (mng_retcode)1027 /* crc check failed            */ | 
|---|
| 2437 | #define MNG_INVALIDLENGTH    (mng_retcode)1028 /* chunklength mystifies me    */ | 
|---|
| 2438 | #define MNG_SEQUENCEERROR    (mng_retcode)1029 /* invalid chunk sequence      */ | 
|---|
| 2439 | #define MNG_CHUNKNOTALLOWED  (mng_retcode)1030 /* completely out-of-place     */ | 
|---|
| 2440 | #define MNG_MULTIPLEERROR    (mng_retcode)1031 /* only one occurence allowed  */ | 
|---|
| 2441 | #define MNG_PLTEMISSING      (mng_retcode)1032 /* indexed-color requires PLTE */ | 
|---|
| 2442 | #define MNG_IDATMISSING      (mng_retcode)1033 /* IHDR-block requires IDAT    */ | 
|---|
| 2443 | #define MNG_CANNOTBEEMPTY    (mng_retcode)1034 /* must contain some data      */ | 
|---|
| 2444 | #define MNG_GLOBALLENGTHERR  (mng_retcode)1035 /* global data incorrect       */ | 
|---|
| 2445 | #define MNG_INVALIDBITDEPTH  (mng_retcode)1036 /* bitdepth out-of-range       */ | 
|---|
| 2446 | #define MNG_INVALIDCOLORTYPE (mng_retcode)1037 /* colortype out-of-range      */ | 
|---|
| 2447 | #define MNG_INVALIDCOMPRESS  (mng_retcode)1038 /* compression method invalid  */ | 
|---|
| 2448 | #define MNG_INVALIDFILTER    (mng_retcode)1039 /* filter method invalid       */ | 
|---|
| 2449 | #define MNG_INVALIDINTERLACE (mng_retcode)1040 /* interlace method invalid    */ | 
|---|
| 2450 | #define MNG_NOTENOUGHIDAT    (mng_retcode)1041 /* ran out of compressed data  */ | 
|---|
| 2451 | #define MNG_PLTEINDEXERROR   (mng_retcode)1042 /* palette-index out-of-range  */ | 
|---|
| 2452 | #define MNG_NULLNOTFOUND     (mng_retcode)1043 /* couldn't find null-separator*/ | 
|---|
| 2453 | #define MNG_KEYWORDNULL      (mng_retcode)1044 /* keyword cannot be empty     */ | 
|---|
| 2454 | #define MNG_OBJECTUNKNOWN    (mng_retcode)1045 /* the object can't be found   */ | 
|---|
| 2455 | #define MNG_OBJECTEXISTS     (mng_retcode)1046 /* the object already exists   */ | 
|---|
| 2456 | #define MNG_TOOMUCHIDAT      (mng_retcode)1047 /* got too much compressed data*/ | 
|---|
| 2457 | #define MNG_INVSAMPLEDEPTH   (mng_retcode)1048 /* sampledepth out-of-range    */ | 
|---|
| 2458 | #define MNG_INVOFFSETSIZE    (mng_retcode)1049 /* invalid offset-size         */ | 
|---|
| 2459 | #define MNG_INVENTRYTYPE     (mng_retcode)1050 /* invalid entry-type          */ | 
|---|
| 2460 | #define MNG_ENDWITHNULL      (mng_retcode)1051 /* may not end with NULL       */ | 
|---|
| 2461 | #define MNG_INVIMAGETYPE     (mng_retcode)1052 /* invalid image_type          */ | 
|---|
| 2462 | #define MNG_INVDELTATYPE     (mng_retcode)1053 /* invalid delta_type          */ | 
|---|
| 2463 | #define MNG_INVALIDINDEX     (mng_retcode)1054 /* index-value invalid         */ | 
|---|
| 2464 | #define MNG_TOOMUCHJDAT      (mng_retcode)1055 /* got too much compressed data*/ | 
|---|
| 2465 | #define MNG_JPEGPARMSERR     (mng_retcode)1056 /* JHDR/JPEG parms do not match*/ | 
|---|
| 2466 | #define MNG_INVFILLMETHOD    (mng_retcode)1057 /* invalid fill_method         */ | 
|---|
| 2467 | #define MNG_OBJNOTCONCRETE   (mng_retcode)1058 /* object must be concrete     */ | 
|---|
| 2468 | #define MNG_TARGETNOALPHA    (mng_retcode)1059 /* object has no alpha-channel */ | 
|---|
| 2469 | #define MNG_MNGTOOCOMPLEX    (mng_retcode)1060 /* can't handle complexity     */ | 
|---|
| 2470 | #define MNG_UNKNOWNCRITICAL  (mng_retcode)1061 /* unknown critical chunk found*/ | 
|---|
| 2471 | #define MNG_UNSUPPORTEDNEED  (mng_retcode)1062 /* nEED requirement unsupported*/ | 
|---|
| 2472 | #define MNG_INVALIDDELTA     (mng_retcode)1063 /* Delta operation illegal     */ | 
|---|
| 2473 | #define MNG_INVALIDMETHOD    (mng_retcode)1064 /* invalid MAGN method         */ | 
|---|
| 2474 | #define MNG_IMPROBABLELENGTH (mng_retcode)1065 /* impropable chunk length     */ | 
|---|
| 2475 | #define MNG_INVALIDBLOCK     (mng_retcode)1066 /* invalid delta block         */ | 
|---|
| 2476 | #define MNG_INVALIDEVENT     (mng_retcode)1067 /* invalid event_type          */ | 
|---|
| 2477 | #define MNG_INVALIDMASK      (mng_retcode)1068 /* invalid mask_type           */ | 
|---|
| 2478 | #define MNG_NOMATCHINGLOOP   (mng_retcode)1069 /* ENDL without matching LOOP  */ | 
|---|
| 2479 | #define MNG_SEEKNOTFOUND     (mng_retcode)1070 /* EvNT points to unknown SEEK */ | 
|---|
| 2480 | #define MNG_OBJNOTABSTRACT   (mng_retcode)1071 /* object must be abstract     */ | 
|---|
| 2481 | #define MNG_TERMSEQERROR     (mng_retcode)1072 /* TERM in wrong place         */ | 
|---|
| 2482 | #define MNG_INVALIDFIELDVAL  (mng_retcode)1073 /* invalid fieldvalue (generic)*/ | 
|---|
| 2483 | #define MNG_INVALIDWIDTH     (mng_retcode)1074 /* invalid frame/image width   */ | 
|---|
| 2484 | #define MNG_INVALIDHEIGHT    (mng_retcode)1075 /* invalid frame/image height  */ | 
|---|
| 2485 |  | 
|---|
| 2486 | #define MNG_INVALIDCNVSTYLE  (mng_retcode)2049 /* can't make anything of this */ | 
|---|
| 2487 | #define MNG_WRONGCHUNK       (mng_retcode)2050 /* accessing the wrong chunk   */ | 
|---|
| 2488 | #define MNG_INVALIDENTRYIX   (mng_retcode)2051 /* accessing the wrong entry   */ | 
|---|
| 2489 | #define MNG_NOHEADER         (mng_retcode)2052 /* must have had header first  */ | 
|---|
| 2490 | #define MNG_NOCORRCHUNK      (mng_retcode)2053 /* can't find parent chunk     */ | 
|---|
| 2491 | #define MNG_NOMHDR           (mng_retcode)2054 /* no MNG header available     */ | 
|---|
| 2492 |  | 
|---|
| 2493 | #define MNG_IMAGETOOLARGE    (mng_retcode)4097 /* input-image way too big     */ | 
|---|
| 2494 | #define MNG_NOTANANIMATION   (mng_retcode)4098 /* file not a MNG              */ | 
|---|
| 2495 | #define MNG_FRAMENRTOOHIGH   (mng_retcode)4099 /* frame-nr out-of-range       */ | 
|---|
| 2496 | #define MNG_LAYERNRTOOHIGH   (mng_retcode)4100 /* layer-nr out-of-range       */ | 
|---|
| 2497 | #define MNG_PLAYTIMETOOHIGH  (mng_retcode)4101 /* playtime out-of-range       */ | 
|---|
| 2498 | #define MNG_FNNOTIMPLEMENTED (mng_retcode)4102 /* function not yet available  */ | 
|---|
| 2499 |  | 
|---|
| 2500 | #define MNG_IMAGEFROZEN      (mng_retcode)8193 /* stopped displaying          */ | 
|---|
| 2501 |  | 
|---|
| 2502 | #define MNG_LCMS_NOHANDLE    1                 /* LCMS returned NULL handle   */ | 
|---|
| 2503 | #define MNG_LCMS_NOMEM       2                 /* LCMS returned NULL gammatab */ | 
|---|
| 2504 | #define MNG_LCMS_NOTRANS     3                 /* LCMS returned NULL transform*/ | 
|---|
| 2505 |  | 
|---|
| 2506 | /* ************************************************************************** */ | 
|---|
| 2507 | /* *                                                                        * */ | 
|---|
| 2508 | /* *  Canvas styles                                                         * */ | 
|---|
| 2509 | /* *                                                                        * */ | 
|---|
| 2510 | /* *  Note that the intentions are pretty darn good, but that the focus     * */ | 
|---|
| 2511 | /* *  is currently on 8-bit color support                                   * */ | 
|---|
| 2512 | /* *                                                                        * */ | 
|---|
| 2513 | /* *  The RGB8_A8 style is defined for apps that require a separate         * */ | 
|---|
| 2514 | /* *  canvas for the color-planes and the alpha-plane (eg. mozilla)         * */ | 
|---|
| 2515 | /* *  This requires for the app to supply the "getalphaline" callback!!!    * */ | 
|---|
| 2516 | /* *                                                                        * */ | 
|---|
| 2517 | /* ************************************************************************** */ | 
|---|
| 2518 |  | 
|---|
| 2519 | #define MNG_CANVAS_RGB8      0x00000000L | 
|---|
| 2520 | #define MNG_CANVAS_RGBA8     0x00001000L | 
|---|
| 2521 | #define MNG_CANVAS_RGBA8_PM  0x00009000L | 
|---|
| 2522 | #define MNG_CANVAS_ARGB8     0x00003000L | 
|---|
| 2523 | #define MNG_CANVAS_ARGB8_PM  0x0000B000L | 
|---|
| 2524 | #define MNG_CANVAS_RGB8_A8   0x00005000L | 
|---|
| 2525 | #define MNG_CANVAS_BGR8      0x00000001L | 
|---|
| 2526 | #define MNG_CANVAS_BGRX8     0x00010001L | 
|---|
| 2527 | #define MNG_CANVAS_BGRA8     0x00001001L | 
|---|
| 2528 | #define MNG_CANVAS_BGRA8PM   0x00009001L         /* backward compatibility */ | 
|---|
| 2529 | #define MNG_CANVAS_BGRA8_PM  0x00009001L | 
|---|
| 2530 | #define MNG_CANVAS_ABGR8     0x00003001L | 
|---|
| 2531 | #define MNG_CANVAS_ABGR8_PM  0x0000B001L | 
|---|
| 2532 | #define MNG_CANVAS_RGB16     0x00000100L         /* not supported yet */ | 
|---|
| 2533 | #define MNG_CANVAS_RGBA16    0x00001100L         /* not supported yet */ | 
|---|
| 2534 | #define MNG_CANVAS_ARGB16    0x00003100L         /* not supported yet */ | 
|---|
| 2535 | #define MNG_CANVAS_BGR16     0x00000101L         /* not supported yet */ | 
|---|
| 2536 | #define MNG_CANVAS_BGRA16    0x00001101L         /* not supported yet */ | 
|---|
| 2537 | #define MNG_CANVAS_ABGR16    0x00003101L         /* not supported yet */ | 
|---|
| 2538 | #define MNG_CANVAS_GRAY8     0x00000002L         /* not supported yet */ | 
|---|
| 2539 | #define MNG_CANVAS_GRAY16    0x00000102L         /* not supported yet */ | 
|---|
| 2540 | #define MNG_CANVAS_GRAYA8    0x00001002L         /* not supported yet */ | 
|---|
| 2541 | #define MNG_CANVAS_GRAYA16   0x00001102L         /* not supported yet */ | 
|---|
| 2542 | #define MNG_CANVAS_AGRAY8    0x00003002L         /* not supported yet */ | 
|---|
| 2543 | #define MNG_CANVAS_AGRAY16   0x00003102L         /* not supported yet */ | 
|---|
| 2544 | #define MNG_CANVAS_DX15      0x00000003L         /* not supported yet */ | 
|---|
| 2545 | #define MNG_CANVAS_DX16      0x00000004L         /* not supported yet */ | 
|---|
| 2546 |  | 
|---|
| 2547 | #define MNG_CANVAS_RGB565    0x00000005L | 
|---|
| 2548 | #define MNG_CANVAS_RGBA565   0x00001005L | 
|---|
| 2549 | #define MNG_CANVAS_BGR565    0x00000006L | 
|---|
| 2550 | #define MNG_CANVAS_BGRA565   0x00001006L | 
|---|
| 2551 | #define MNG_CANVAS_BGR565_A8 0x00004006L | 
|---|
| 2552 |  | 
|---|
| 2553 | #define MNG_CANVAS_RGB555    0x00000007L | 
|---|
| 2554 | #define MNG_CANVAS_BGR555    0x00000008L | 
|---|
| 2555 |  | 
|---|
| 2556 | #define MNG_CANVAS_PIXELTYPE(C)  (C & 0x000000FFL) | 
|---|
| 2557 | #define MNG_CANVAS_BITDEPTH(C)   (C & 0x00000100L) | 
|---|
| 2558 | #define MNG_CANVAS_HASALPHA(C)   (C & 0x00001000L) | 
|---|
| 2559 | #define MNG_CANVAS_ALPHAFIRST(C) (C & 0x00002000L) | 
|---|
| 2560 | #define MNG_CANVAS_ALPHASEPD(C)  (C & 0x00004000L) | 
|---|
| 2561 | #define MNG_CANVAS_ALPHAPM(C)    (C & 0x00008000L) | 
|---|
| 2562 | #define MNG_CANVAS_HASFILLER(C)  (C & 0x00010000L) | 
|---|
| 2563 |  | 
|---|
| 2564 | #define MNG_CANVAS_RGB(C)        (MNG_CANVAS_PIXELTYPE (C) == 0) | 
|---|
| 2565 | #define MNG_CANVAS_BGR(C)        (MNG_CANVAS_PIXELTYPE (C) == 1) | 
|---|
| 2566 | #define MNG_CANVAS_GRAY(C)       (MNG_CANVAS_PIXELTYPE (C) == 2) | 
|---|
| 2567 | #define MNG_CANVAS_DIRECTX15(C)  (MNG_CANVAS_PIXELTYPE (C) == 3) | 
|---|
| 2568 | #define MNG_CANVAS_DIRECTX16(C)  (MNG_CANVAS_PIXELTYPE (C) == 4) | 
|---|
| 2569 | #define MNG_CANVAS_RGB_565(C)    (MNG_CANVAS_PIXELTYPE (C) == 5) | 
|---|
| 2570 | #define MNG_CANVAS_BGR_565(C)    (MNG_CANVAS_PIXELTYPE (C) == 6) | 
|---|
| 2571 | #define MNG_CANVAS_8BIT(C)       (!MNG_CANVAS_BITDEPTH (C)) | 
|---|
| 2572 | #define MNG_CANVAS_16BIT(C)      (MNG_CANVAS_BITDEPTH (C)) | 
|---|
| 2573 | #define MNG_CANVAS_PIXELFIRST(C) (!MNG_CANVAS_ALPHAFIRST (C)) | 
|---|
| 2574 |  | 
|---|
| 2575 | /* ************************************************************************** */ | 
|---|
| 2576 | /* *                                                                        * */ | 
|---|
| 2577 | /* *  Chunk names (idea adapted from libpng 1.1.0 - png.h)                  * */ | 
|---|
| 2578 | /* *                                                                        * */ | 
|---|
| 2579 | /* ************************************************************************** */ | 
|---|
| 2580 |  | 
|---|
| 2581 | #define MNG_UINT_HUH  0x40404040L | 
|---|
| 2582 |  | 
|---|
| 2583 | #define MNG_UINT_BACK 0x4241434bL | 
|---|
| 2584 | #define MNG_UINT_BASI 0x42415349L | 
|---|
| 2585 | #define MNG_UINT_CLIP 0x434c4950L | 
|---|
| 2586 | #define MNG_UINT_CLON 0x434c4f4eL | 
|---|
| 2587 | #define MNG_UINT_DBYK 0x4442594bL | 
|---|
| 2588 | #define MNG_UINT_DEFI 0x44454649L | 
|---|
| 2589 | #define MNG_UINT_DHDR 0x44484452L | 
|---|
| 2590 | #define MNG_UINT_DISC 0x44495343L | 
|---|
| 2591 | #define MNG_UINT_DROP 0x44524f50L | 
|---|
| 2592 | #define MNG_UINT_ENDL 0x454e444cL | 
|---|
| 2593 | #define MNG_UINT_FRAM 0x4652414dL | 
|---|
| 2594 | #define MNG_UINT_IDAT 0x49444154L | 
|---|
| 2595 | #define MNG_UINT_IEND 0x49454e44L | 
|---|
| 2596 | #define MNG_UINT_IHDR 0x49484452L | 
|---|
| 2597 | #define MNG_UINT_IJNG 0x494a4e47L | 
|---|
| 2598 | #define MNG_UINT_IPNG 0x49504e47L | 
|---|
| 2599 | #define MNG_UINT_JDAA 0x4a444141L | 
|---|
| 2600 | #define MNG_UINT_JDAT 0x4a444154L | 
|---|
| 2601 | #define MNG_UINT_JHDR 0x4a484452L | 
|---|
| 2602 | #define MNG_UINT_JSEP 0x4a534550L | 
|---|
| 2603 | #define MNG_UINT_JdAA 0x4a644141L | 
|---|
| 2604 | #define MNG_UINT_LOOP 0x4c4f4f50L | 
|---|
| 2605 | #define MNG_UINT_MAGN 0x4d41474eL | 
|---|
| 2606 | #define MNG_UINT_MEND 0x4d454e44L | 
|---|
| 2607 | #define MNG_UINT_MHDR 0x4d484452L | 
|---|
| 2608 | #define MNG_UINT_MOVE 0x4d4f5645L | 
|---|
| 2609 | #define MNG_UINT_ORDR 0x4f524452L | 
|---|
| 2610 | #define MNG_UINT_PAST 0x50415354L | 
|---|
| 2611 | #define MNG_UINT_PLTE 0x504c5445L | 
|---|
| 2612 | #define MNG_UINT_PPLT 0x50504c54L | 
|---|
| 2613 | #define MNG_UINT_PROM 0x50524f4dL | 
|---|
| 2614 | #define MNG_UINT_SAVE 0x53415645L | 
|---|
| 2615 | #define MNG_UINT_SEEK 0x5345454bL | 
|---|
| 2616 | #define MNG_UINT_SHOW 0x53484f57L | 
|---|
| 2617 | #define MNG_UINT_TERM 0x5445524dL | 
|---|
| 2618 | #define MNG_UINT_adAT 0x61644154L | 
|---|
| 2619 | #define MNG_UINT_ahDR 0x61684452L | 
|---|
| 2620 | #define MNG_UINT_bKGD 0x624b4744L | 
|---|
| 2621 | #define MNG_UINT_cHRM 0x6348524dL | 
|---|
| 2622 | #define MNG_UINT_eXPI 0x65585049L | 
|---|
| 2623 | #define MNG_UINT_evNT 0x65764e54L | 
|---|
| 2624 | #define MNG_UINT_fPRI 0x66505249L | 
|---|
| 2625 | #define MNG_UINT_gAMA 0x67414d41L | 
|---|
| 2626 | #define MNG_UINT_hIST 0x68495354L | 
|---|
| 2627 | #define MNG_UINT_iCCP 0x69434350L | 
|---|
| 2628 | #define MNG_UINT_iTXt 0x69545874L | 
|---|
| 2629 | #define MNG_UINT_mpNG 0x6d704e47L | 
|---|
| 2630 | #define MNG_UINT_nEED 0x6e454544L | 
|---|
| 2631 | #define MNG_UINT_oFFs 0x6f464673L | 
|---|
| 2632 | #define MNG_UINT_pCAL 0x7043414cL | 
|---|
| 2633 | #define MNG_UINT_pHYg 0x70444167L | 
|---|
| 2634 | #define MNG_UINT_pHYs 0x70485973L | 
|---|
| 2635 | #define MNG_UINT_sBIT 0x73424954L | 
|---|
| 2636 | #define MNG_UINT_sCAL 0x7343414cL | 
|---|
| 2637 | #define MNG_UINT_sPLT 0x73504c54L | 
|---|
| 2638 | #define MNG_UINT_sRGB 0x73524742L | 
|---|
| 2639 | #define MNG_UINT_tEXt 0x74455874L | 
|---|
| 2640 | #define MNG_UINT_tIME 0x74494d45L | 
|---|
| 2641 | #define MNG_UINT_tRNS 0x74524e53L | 
|---|
| 2642 | #define MNG_UINT_zTXt 0x7a545874L | 
|---|
| 2643 |  | 
|---|
| 2644 | /* ************************************************************************** */ | 
|---|
| 2645 | /* *                                                                        * */ | 
|---|
| 2646 | /* *  Chunk property values                                                 * */ | 
|---|
| 2647 | /* *                                                                        * */ | 
|---|
| 2648 | /* ************************************************************************** */ | 
|---|
| 2649 |  | 
|---|
| 2650 | #define MNG_BITDEPTH_1                   1       /* IHDR, BASI, JHDR, PROM */ | 
|---|
| 2651 | #define MNG_BITDEPTH_2                   2 | 
|---|
| 2652 | #define MNG_BITDEPTH_4                   4 | 
|---|
| 2653 | #define MNG_BITDEPTH_8                   8       /* sPLT */ | 
|---|
| 2654 | #define MNG_BITDEPTH_16                 16 | 
|---|
| 2655 |  | 
|---|
| 2656 | #define MNG_COLORTYPE_GRAY               0       /* IHDR, BASI, PROM */ | 
|---|
| 2657 | #define MNG_COLORTYPE_RGB                2 | 
|---|
| 2658 | #define MNG_COLORTYPE_INDEXED            3 | 
|---|
| 2659 | #define MNG_COLORTYPE_GRAYA              4 | 
|---|
| 2660 | #define MNG_COLORTYPE_RGBA               6 | 
|---|
| 2661 |  | 
|---|
| 2662 | #define MNG_COMPRESSION_DEFLATE          0       /* IHDR, zTXt, iTXt, iCCP, | 
|---|
| 2663 | BASI, JHDR */ | 
|---|
| 2664 |  | 
|---|
| 2665 | #define MNG_FILTER_ADAPTIVE              0       /* IHDR, BASI, JHDR */ | 
|---|
| 2666 | /* #define MNG_FILTER_NO_ADAPTIVE           1 | 
|---|
| 2667 | #define MNG_FILTER_NO_DIFFERING          0 | 
|---|
| 2668 | #define MNG_FILTER_DIFFERING             0x40 | 
|---|
| 2669 | #define MNG_FILTER_MASK                  (MNG_FILTER_NO_ADAPTIVE | MNG_FILTER_DIFFERING) */ | 
|---|
| 2670 | #ifdef FILTER192 | 
|---|
| 2671 | #define MNG_FILTER_DIFFERING             0xC0 | 
|---|
| 2672 | #endif | 
|---|
| 2673 | #ifdef FILTER193 | 
|---|
| 2674 | #define MNG_FILTER_NOFILTER              0xC1 | 
|---|
| 2675 | #endif | 
|---|
| 2676 |  | 
|---|
| 2677 | #define MNG_INTERLACE_NONE               0       /* IHDR, BASI, JHDR */ | 
|---|
| 2678 | #define MNG_INTERLACE_ADAM7              1 | 
|---|
| 2679 |  | 
|---|
| 2680 | #define MNG_FILTER_NONE                  0       /* IDAT */ | 
|---|
| 2681 | #define MNG_FILTER_SUB                   1 | 
|---|
| 2682 | #define MNG_FILTER_UP                    2 | 
|---|
| 2683 | #define MNG_FILTER_AVERAGE               3 | 
|---|
| 2684 | #define MNG_FILTER_PAETH                 4 | 
|---|
| 2685 |  | 
|---|
| 2686 | #define MNG_INTENT_PERCEPTUAL            0       /* sRGB */ | 
|---|
| 2687 | #define MNG_INTENT_RELATIVECOLORIMETRIC  1 | 
|---|
| 2688 | #define MNG_INTENT_SATURATION            2 | 
|---|
| 2689 | #define MNG_INTENT_ABSOLUTECOLORIMETRIC  3 | 
|---|
| 2690 | /* tEXt, zTXt, iTXt */ | 
|---|
| 2691 | #define MNG_TEXT_TITLE                   "Title" | 
|---|
| 2692 | #define MNG_TEXT_AUTHOR                  "Author" | 
|---|
| 2693 | #define MNG_TEXT_DESCRIPTION             "Description" | 
|---|
| 2694 | #define MNG_TEXT_COPYRIGHT               "Copyright" | 
|---|
| 2695 | #define MNG_TEXT_CREATIONTIME            "Creation Time" | 
|---|
| 2696 | #define MNG_TEXT_SOFTWARE                "Software" | 
|---|
| 2697 | #define MNG_TEXT_DISCLAIMER              "Disclaimer" | 
|---|
| 2698 | #define MNG_TEXT_WARNING                 "Warning" | 
|---|
| 2699 | #define MNG_TEXT_SOURCE                  "Source" | 
|---|
| 2700 | #define MNG_TEXT_COMMENT                 "Comment" | 
|---|
| 2701 |  | 
|---|
| 2702 | #define MNG_FLAG_UNCOMPRESSED            0       /* iTXt */ | 
|---|
| 2703 | #define MNG_FLAG_COMPRESSED              1 | 
|---|
| 2704 |  | 
|---|
| 2705 | #define MNG_UNIT_UNKNOWN                 0       /* pHYs, pHYg */ | 
|---|
| 2706 | #define MNG_UNIT_METER                   1 | 
|---|
| 2707 | /* MHDR */ | 
|---|
| 2708 | #define MNG_SIMPLICITY_VALID             0x00000001 | 
|---|
| 2709 | #define MNG_SIMPLICITY_SIMPLEFEATURES    0x00000002 | 
|---|
| 2710 | #define MNG_SIMPLICITY_COMPLEXFEATURES   0x00000004 | 
|---|
| 2711 | #define MNG_SIMPLICITY_TRANSPARENCY      0x00000008 | 
|---|
| 2712 | #define MNG_SIMPLICITY_JNG               0x00000010 | 
|---|
| 2713 | #define MNG_SIMPLICITY_DELTAPNG          0x00000020 | 
|---|
| 2714 |  | 
|---|
| 2715 | #define MNG_TERMINATION_DECODER_NC       0       /* LOOP */ | 
|---|
| 2716 | #define MNG_TERMINATION_USER_NC          1 | 
|---|
| 2717 | #define MNG_TERMINATION_EXTERNAL_NC      2 | 
|---|
| 2718 | #define MNG_TERMINATION_DETERMINISTIC_NC 3 | 
|---|
| 2719 | #define MNG_TERMINATION_DECODER_C        4 | 
|---|
| 2720 | #define MNG_TERMINATION_USER_C           5 | 
|---|
| 2721 | #define MNG_TERMINATION_EXTERNAL_C       6 | 
|---|
| 2722 | #define MNG_TERMINATION_DETERMINISTIC_C  7 | 
|---|
| 2723 |  | 
|---|
| 2724 | #define MNG_DONOTSHOW_VISIBLE            0       /* DEFI */ | 
|---|
| 2725 | #define MNG_DONOTSHOW_NOTVISIBLE         1 | 
|---|
| 2726 |  | 
|---|
| 2727 | #define MNG_ABSTRACT                     0       /* DEFI */ | 
|---|
| 2728 | #define MNG_CONCRETE                     1 | 
|---|
| 2729 |  | 
|---|
| 2730 | #define MNG_NOTVIEWABLE                  0       /* BASI */ | 
|---|
| 2731 | #define MNG_VIEWABLE                     1 | 
|---|
| 2732 |  | 
|---|
| 2733 | #define MNG_FULL_CLONE                   0       /* CLON */ | 
|---|
| 2734 | #define MNG_PARTIAL_CLONE                1 | 
|---|
| 2735 | #define MNG_RENUMBER                     2 | 
|---|
| 2736 |  | 
|---|
| 2737 | #define MNG_CONCRETE_ASPARENT            0       /* CLON */ | 
|---|
| 2738 | #define MNG_CONCRETE_MAKEABSTRACT        1 | 
|---|
| 2739 |  | 
|---|
| 2740 | #define MNG_LOCATION_ABSOLUTE            0       /* CLON, MOVE */ | 
|---|
| 2741 | #define MNG_LOCATION_RELATIVE            1 | 
|---|
| 2742 |  | 
|---|
| 2743 | #ifndef MNG_SKIPCHUNK_PAST | 
|---|
| 2744 | #define MNG_TARGET_ABSOLUTE              0       /* PAST */ | 
|---|
| 2745 | #define MNG_TARGET_RELATIVE_SAMEPAST     1 | 
|---|
| 2746 | #define MNG_TARGET_RELATIVE_PREVPAST     2 | 
|---|
| 2747 |  | 
|---|
| 2748 | #define MNG_COMPOSITE_OVER               0       /* PAST */ | 
|---|
| 2749 | #define MNG_COMPOSITE_REPLACE            1 | 
|---|
| 2750 | #define MNG_COMPOSITE_UNDER              2 | 
|---|
| 2751 |  | 
|---|
| 2752 | #define MNG_ORIENTATION_SAME             0       /* PAST */ | 
|---|
| 2753 | #define MNG_ORIENTATION_180DEG           2 | 
|---|
| 2754 | #define MNG_ORIENTATION_FLIPHORZ         4 | 
|---|
| 2755 | #define MNG_ORIENTATION_FLIPVERT         6 | 
|---|
| 2756 | #define MNG_ORIENTATION_TILED            8 | 
|---|
| 2757 |  | 
|---|
| 2758 | #define MNG_OFFSET_ABSOLUTE              0       /* PAST */ | 
|---|
| 2759 | #define MNG_OFFSET_RELATIVE              1 | 
|---|
| 2760 | #endif | 
|---|
| 2761 |  | 
|---|
| 2762 | #define MNG_BOUNDARY_ABSOLUTE            0       /* PAST, FRAM */ | 
|---|
| 2763 | #define MNG_BOUNDARY_RELATIVE            1 | 
|---|
| 2764 |  | 
|---|
| 2765 | #define MNG_BACKGROUNDCOLOR_MANDATORY    0x01    /* BACK */ | 
|---|
| 2766 | #define MNG_BACKGROUNDIMAGE_MANDATORY    0x02    /* BACK */ | 
|---|
| 2767 |  | 
|---|
| 2768 | #define MNG_BACKGROUNDIMAGE_NOTILE       0       /* BACK */ | 
|---|
| 2769 | #define MNG_BACKGROUNDIMAGE_TILE         1 | 
|---|
| 2770 |  | 
|---|
| 2771 | #define MNG_FRAMINGMODE_NOCHANGE         0       /* FRAM */ | 
|---|
| 2772 | #define MNG_FRAMINGMODE_1                1 | 
|---|
| 2773 | #define MNG_FRAMINGMODE_2                2 | 
|---|
| 2774 | #define MNG_FRAMINGMODE_3                3 | 
|---|
| 2775 | #define MNG_FRAMINGMODE_4                4 | 
|---|
| 2776 |  | 
|---|
| 2777 | #define MNG_CHANGEDELAY_NO               0       /* FRAM */ | 
|---|
| 2778 | #define MNG_CHANGEDELAY_NEXTSUBFRAME     1 | 
|---|
| 2779 | #define MNG_CHANGEDELAY_DEFAULT          2 | 
|---|
| 2780 |  | 
|---|
| 2781 | #define MNG_CHANGETIMOUT_NO              0       /* FRAM */ | 
|---|
| 2782 | #define MNG_CHANGETIMOUT_DETERMINISTIC_1 1 | 
|---|
| 2783 | #define MNG_CHANGETIMOUT_DETERMINISTIC_2 2 | 
|---|
| 2784 | #define MNG_CHANGETIMOUT_DECODER_1       3 | 
|---|
| 2785 | #define MNG_CHANGETIMOUT_DECODER_2       4 | 
|---|
| 2786 | #define MNG_CHANGETIMOUT_USER_1          5 | 
|---|
| 2787 | #define MNG_CHANGETIMOUT_USER_2          6 | 
|---|
| 2788 | #define MNG_CHANGETIMOUT_EXTERNAL_1      7 | 
|---|
| 2789 | #define MNG_CHANGETIMOUT_EXTERNAL_2      8 | 
|---|
| 2790 |  | 
|---|
| 2791 | #define MNG_CHANGECLIPPING_NO            0       /* FRAM */ | 
|---|
| 2792 | #define MNG_CHANGECLIPPING_NEXTSUBFRAME  1 | 
|---|
| 2793 | #define MNG_CHANGECLIPPING_DEFAULT       2 | 
|---|
| 2794 |  | 
|---|
| 2795 | #define MNG_CHANGESYNCID_NO              0       /* FRAM */ | 
|---|
| 2796 | #define MNG_CHANGESYNCID_NEXTSUBFRAME    1 | 
|---|
| 2797 | #define MNG_CHANGESYNCID_DEFAULT         2 | 
|---|
| 2798 |  | 
|---|
| 2799 | #define MNG_CLIPPING_ABSOLUTE            0       /* CLIP */ | 
|---|
| 2800 | #define MNG_CLIPPING_RELATIVE            1 | 
|---|
| 2801 |  | 
|---|
| 2802 | #define MNG_SHOWMODE_0                   0       /* SHOW */ | 
|---|
| 2803 | #define MNG_SHOWMODE_1                   1 | 
|---|
| 2804 | #define MNG_SHOWMODE_2                   2 | 
|---|
| 2805 | #define MNG_SHOWMODE_3                   3 | 
|---|
| 2806 | #define MNG_SHOWMODE_4                   4 | 
|---|
| 2807 | #define MNG_SHOWMODE_5                   5 | 
|---|
| 2808 | #define MNG_SHOWMODE_6                   6 | 
|---|
| 2809 | #define MNG_SHOWMODE_7                   7 | 
|---|
| 2810 |  | 
|---|
| 2811 | #define MNG_TERMACTION_LASTFRAME         0       /* TERM */ | 
|---|
| 2812 | #define MNG_TERMACTION_CLEAR             1 | 
|---|
| 2813 | #define MNG_TERMACTION_FIRSTFRAME        2 | 
|---|
| 2814 | #define MNG_TERMACTION_REPEAT            3 | 
|---|
| 2815 |  | 
|---|
| 2816 | #define MNG_ITERACTION_LASTFRAME         0       /* TERM */ | 
|---|
| 2817 | #define MNG_ITERACTION_CLEAR             1 | 
|---|
| 2818 | #define MNG_ITERACTION_FIRSTFRAME        2 | 
|---|
| 2819 |  | 
|---|
| 2820 | #define MNG_SAVEOFFSET_4BYTE             4       /* SAVE */ | 
|---|
| 2821 | #define MNG_SAVEOFFSET_8BYTE             8 | 
|---|
| 2822 |  | 
|---|
| 2823 | #define MNG_SAVEENTRY_SEGMENTFULL        0       /* SAVE */ | 
|---|
| 2824 | #define MNG_SAVEENTRY_SEGMENT            1 | 
|---|
| 2825 | #define MNG_SAVEENTRY_SUBFRAME           2 | 
|---|
| 2826 | #define MNG_SAVEENTRY_EXPORTEDIMAGE      3 | 
|---|
| 2827 |  | 
|---|
| 2828 | #define MNG_PRIORITY_ABSOLUTE            0       /* fPRI */ | 
|---|
| 2829 | #define MNG_PRIORITY_RELATIVE            1 | 
|---|
| 2830 |  | 
|---|
| 2831 | #ifdef MNG_INCLUDE_JNG | 
|---|
| 2832 | #define MNG_COLORTYPE_JPEGGRAY           8       /* JHDR */ | 
|---|
| 2833 | #define MNG_COLORTYPE_JPEGCOLOR         10 | 
|---|
| 2834 | #define MNG_COLORTYPE_JPEGGRAYA         12 | 
|---|
| 2835 | #define MNG_COLORTYPE_JPEGCOLORA        14 | 
|---|
| 2836 |  | 
|---|
| 2837 | #define MNG_BITDEPTH_JPEG8               8       /* JHDR */ | 
|---|
| 2838 | #define MNG_BITDEPTH_JPEG12             12 | 
|---|
| 2839 | #define MNG_BITDEPTH_JPEG8AND12         20 | 
|---|
| 2840 |  | 
|---|
| 2841 | #define MNG_COMPRESSION_BASELINEJPEG     8       /* JHDR */ | 
|---|
| 2842 |  | 
|---|
| 2843 | #define MNG_INTERLACE_SEQUENTIAL         0       /* JHDR */ | 
|---|
| 2844 | #define MNG_INTERLACE_PROGRESSIVE        8 | 
|---|
| 2845 | #endif /* MNG_INCLUDE_JNG */ | 
|---|
| 2846 |  | 
|---|
| 2847 | #define MNG_IMAGETYPE_UNKNOWN            0       /* DHDR */ | 
|---|
| 2848 | #define MNG_IMAGETYPE_PNG                1 | 
|---|
| 2849 | #define MNG_IMAGETYPE_JNG                2 | 
|---|
| 2850 |  | 
|---|
| 2851 | #define MNG_DELTATYPE_REPLACE            0       /* DHDR */ | 
|---|
| 2852 | #define MNG_DELTATYPE_BLOCKPIXELADD      1 | 
|---|
| 2853 | #define MNG_DELTATYPE_BLOCKALPHAADD      2 | 
|---|
| 2854 | #define MNG_DELTATYPE_BLOCKCOLORADD      3 | 
|---|
| 2855 | #define MNG_DELTATYPE_BLOCKPIXELREPLACE  4 | 
|---|
| 2856 | #define MNG_DELTATYPE_BLOCKALPHAREPLACE  5 | 
|---|
| 2857 | #define MNG_DELTATYPE_BLOCKCOLORREPLACE  6 | 
|---|
| 2858 | #define MNG_DELTATYPE_NOCHANGE           7 | 
|---|
| 2859 |  | 
|---|
| 2860 | #define MNG_FILLMETHOD_LEFTBITREPLICATE  0       /* PROM */ | 
|---|
| 2861 | #define MNG_FILLMETHOD_ZEROFILL          1 | 
|---|
| 2862 |  | 
|---|
| 2863 | #define MNG_DELTATYPE_REPLACERGB         0       /* PPLT */ | 
|---|
| 2864 | #define MNG_DELTATYPE_DELTARGB           1 | 
|---|
| 2865 | #define MNG_DELTATYPE_REPLACEALPHA       2 | 
|---|
| 2866 | #define MNG_DELTATYPE_DELTAALPHA         3 | 
|---|
| 2867 | #define MNG_DELTATYPE_REPLACERGBA        4 | 
|---|
| 2868 | #define MNG_DELTATYPE_DELTARGBA          5 | 
|---|
| 2869 |  | 
|---|
| 2870 | #define MNG_POLARITY_ONLY                0       /* DBYK */ | 
|---|
| 2871 | #define MNG_POLARITY_ALLBUT              1 | 
|---|
| 2872 |  | 
|---|
| 2873 | #define MNG_EVENT_NONE                   0       /* evNT */ | 
|---|
| 2874 | #define MNG_EVENT_MOUSEENTER             1 | 
|---|
| 2875 | #define MNG_EVENT_MOUSEMOVE              2 | 
|---|
| 2876 | #define MNG_EVENT_MOUSEEXIT              3 | 
|---|
| 2877 | #define MNG_EVENT_MOUSEDOWN              4 | 
|---|
| 2878 | #define MNG_EVENT_MOUSEUP                5 | 
|---|
| 2879 |  | 
|---|
| 2880 | #define MNG_MASK_NONE                    0       /* evNT */ | 
|---|
| 2881 | #define MNG_MASK_BOX                     1 | 
|---|
| 2882 | #define MNG_MASK_OBJECT                  2 | 
|---|
| 2883 | #define MNG_MASK_OBJECTIX                3 | 
|---|
| 2884 | #define MNG_MASK_BOXOBJECT               4 | 
|---|
| 2885 | #define MNG_MASK_BOXOBJECTIX             5 | 
|---|
| 2886 |  | 
|---|
| 2887 | /* ************************************************************************** */ | 
|---|
| 2888 | /* *                                                                        * */ | 
|---|
| 2889 | /* *  Processtext callback types                                            * */ | 
|---|
| 2890 | /* *                                                                        * */ | 
|---|
| 2891 | /* ************************************************************************** */ | 
|---|
| 2892 |  | 
|---|
| 2893 | #define MNG_TYPE_TEXT 0 | 
|---|
| 2894 | #define MNG_TYPE_ZTXT 1 | 
|---|
| 2895 | #define MNG_TYPE_ITXT 2 | 
|---|
| 2896 |  | 
|---|
| 2897 | /* ************************************************************************** */ | 
|---|
| 2898 | /* *                                                                        * */ | 
|---|
| 2899 | /* *  CRC processing masks                                                  * */ | 
|---|
| 2900 | /* *                                                                        * */ | 
|---|
| 2901 | /* ************************************************************************** */ | 
|---|
| 2902 |  | 
|---|
| 2903 | #define MNG_CRC_INPUT              0x0000000f | 
|---|
| 2904 | #define MNG_CRC_INPUT_NONE         0x00000000 | 
|---|
| 2905 | #define MNG_CRC_INPUT_PRESENT      0x00000001 | 
|---|
| 2906 | #define MNG_CRC_OUTPUT             0x000000f0 | 
|---|
| 2907 | #define MNG_CRC_OUTPUT_NONE        0x00000000 | 
|---|
| 2908 | #define MNG_CRC_OUTPUT_GENERATE    0x00000020 | 
|---|
| 2909 | #define MNG_CRC_OUTPUT_DUMMY       0x00000040 | 
|---|
| 2910 | #define MNG_CRC_ANCILLARY          0x00000f00 | 
|---|
| 2911 | #define MNG_CRC_ANCILLARY_IGNORE   0x00000000 | 
|---|
| 2912 | #define MNG_CRC_ANCILLARY_DISCARD  0x00000100 | 
|---|
| 2913 | #define MNG_CRC_ANCILLARY_WARNING  0x00000200 | 
|---|
| 2914 | #define MNG_CRC_ANCILLARY_ERROR    0x00000300 | 
|---|
| 2915 | #define MNG_CRC_CRITICAL           0x0000f000 | 
|---|
| 2916 | #define MNG_CRC_CRITICAL_IGNORE    0x00000000 | 
|---|
| 2917 | #define MNG_CRC_CRITICAL_WARNING   0x00002000 | 
|---|
| 2918 | #define MNG_CRC_CRITICAL_ERROR     0x00003000 | 
|---|
| 2919 | #define MNG_CRC_DEFAULT            0x00002121 | 
|---|
| 2920 |  | 
|---|
| 2921 | /* ************************************************************************** */ | 
|---|
| 2922 |  | 
|---|
| 2923 | #ifdef __cplusplus | 
|---|
| 2924 | } | 
|---|
| 2925 | #endif | 
|---|
| 2926 |  | 
|---|
| 2927 | #endif /* _libmng_h_ */ | 
|---|
| 2928 |  | 
|---|
| 2929 | /* ************************************************************************** */ | 
|---|
| 2930 | /* * end of file                                                            * */ | 
|---|
| 2931 | /* ************************************************************************** */ | 
|---|
| 2932 |  | 
|---|