|
1 |
|
2 /* pngconf.h - machine configurable file for libpng |
|
3 * |
|
4 * libpng version 1.2.40 - September 10, 2009 |
|
5 * Copyright (c) 1998-2009 Glenn Randers-Pehrson |
|
6 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) |
|
7 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) |
|
8 * |
|
9 * This code is released under the libpng license. |
|
10 * For conditions of distribution and use, see the disclaimer |
|
11 * and license in png.h |
|
12 */ |
|
13 |
|
14 /* Any machine specific code is near the front of this file, so if you |
|
15 * are configuring libpng for a machine, you may want to read the section |
|
16 * starting here down to where it starts to typedef png_color, png_text, |
|
17 * and png_info. |
|
18 */ |
|
19 |
|
20 #ifndef PNGCONF_H |
|
21 #define PNGCONF_H |
|
22 |
|
23 #define PNG_1_2_X |
|
24 |
|
25 /* |
|
26 * PNG_USER_CONFIG has to be defined on the compiler command line. This |
|
27 * includes the resource compiler for Windows DLL configurations. |
|
28 */ |
|
29 #ifdef PNG_USER_CONFIG |
|
30 # ifndef PNG_USER_PRIVATEBUILD |
|
31 # define PNG_USER_PRIVATEBUILD |
|
32 # endif |
|
33 #include "pngusr.h" |
|
34 #endif |
|
35 |
|
36 /* PNG_CONFIGURE_LIBPNG is set by the "configure" script. */ |
|
37 #ifdef PNG_CONFIGURE_LIBPNG |
|
38 #ifdef HAVE_CONFIG_H |
|
39 #include "config.h" |
|
40 #endif |
|
41 #endif |
|
42 |
|
43 /* |
|
44 * Added at libpng-1.2.8 |
|
45 * |
|
46 * If you create a private DLL you need to define in "pngusr.h" the followings: |
|
47 * #define PNG_USER_PRIVATEBUILD <Describes by whom and why this version of |
|
48 * the DLL was built> |
|
49 * e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons." |
|
50 * #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to |
|
51 * distinguish your DLL from those of the official release. These |
|
52 * correspond to the trailing letters that come after the version |
|
53 * number and must match your private DLL name> |
|
54 * e.g. // private DLL "libpng13gx.dll" |
|
55 * #define PNG_USER_DLLFNAME_POSTFIX "gx" |
|
56 * |
|
57 * The following macros are also at your disposal if you want to complete the |
|
58 * DLL VERSIONINFO structure. |
|
59 * - PNG_USER_VERSIONINFO_COMMENTS |
|
60 * - PNG_USER_VERSIONINFO_COMPANYNAME |
|
61 * - PNG_USER_VERSIONINFO_LEGALTRADEMARKS |
|
62 */ |
|
63 |
|
64 #ifdef __STDC__ |
|
65 #ifdef SPECIALBUILD |
|
66 # pragma message("PNG_LIBPNG_SPECIALBUILD (and deprecated SPECIALBUILD)\ |
|
67 are now LIBPNG reserved macros. Use PNG_USER_PRIVATEBUILD instead.") |
|
68 #endif |
|
69 |
|
70 #ifdef PRIVATEBUILD |
|
71 # pragma message("PRIVATEBUILD is deprecated.\ |
|
72 Use PNG_USER_PRIVATEBUILD instead.") |
|
73 # define PNG_USER_PRIVATEBUILD PRIVATEBUILD |
|
74 #endif |
|
75 #endif /* __STDC__ */ |
|
76 |
|
77 #ifndef PNG_VERSION_INFO_ONLY |
|
78 |
|
79 /* End of material added to libpng-1.2.8 */ |
|
80 |
|
81 /* Added at libpng-1.2.19, removed at libpng-1.2.20 because it caused trouble |
|
82 Restored at libpng-1.2.21 */ |
|
83 #if !defined(PNG_NO_WARN_UNINITIALIZED_ROW) && \ |
|
84 !defined(PNG_WARN_UNINITIALIZED_ROW) |
|
85 # define PNG_WARN_UNINITIALIZED_ROW 1 |
|
86 #endif |
|
87 /* End of material added at libpng-1.2.19/1.2.21 */ |
|
88 |
|
89 /* This is the size of the compression buffer, and thus the size of |
|
90 * an IDAT chunk. Make this whatever size you feel is best for your |
|
91 * machine. One of these will be allocated per png_struct. When this |
|
92 * is full, it writes the data to the disk, and does some other |
|
93 * calculations. Making this an extremely small size will slow |
|
94 * the library down, but you may want to experiment to determine |
|
95 * where it becomes significant, if you are concerned with memory |
|
96 * usage. Note that zlib allocates at least 32Kb also. For readers, |
|
97 * this describes the size of the buffer available to read the data in. |
|
98 * Unless this gets smaller than the size of a row (compressed), |
|
99 * it should not make much difference how big this is. |
|
100 */ |
|
101 |
|
102 #ifndef PNG_ZBUF_SIZE |
|
103 # define PNG_ZBUF_SIZE 8192 |
|
104 #endif |
|
105 |
|
106 /* Enable if you want a write-only libpng */ |
|
107 |
|
108 #ifndef PNG_NO_READ_SUPPORTED |
|
109 # define PNG_READ_SUPPORTED |
|
110 #endif |
|
111 |
|
112 /* Enable if you want a read-only libpng */ |
|
113 |
|
114 #ifndef PNG_NO_WRITE_SUPPORTED |
|
115 # define PNG_WRITE_SUPPORTED |
|
116 #endif |
|
117 |
|
118 /* Enabled by default in 1.2.0. You can disable this if you don't need to |
|
119 support PNGs that are embedded in MNG datastreams */ |
|
120 #if !defined(PNG_1_0_X) && !defined(PNG_NO_MNG_FEATURES) |
|
121 # ifndef PNG_MNG_FEATURES_SUPPORTED |
|
122 # define PNG_MNG_FEATURES_SUPPORTED |
|
123 # endif |
|
124 #endif |
|
125 |
|
126 #ifndef PNG_NO_FLOATING_POINT_SUPPORTED |
|
127 # ifndef PNG_FLOATING_POINT_SUPPORTED |
|
128 # define PNG_FLOATING_POINT_SUPPORTED |
|
129 # endif |
|
130 #endif |
|
131 |
|
132 /* If you are running on a machine where you cannot allocate more |
|
133 * than 64K of memory at once, uncomment this. While libpng will not |
|
134 * normally need that much memory in a chunk (unless you load up a very |
|
135 * large file), zlib needs to know how big of a chunk it can use, and |
|
136 * libpng thus makes sure to check any memory allocation to verify it |
|
137 * will fit into memory. |
|
138 #define PNG_MAX_MALLOC_64K |
|
139 */ |
|
140 #if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) |
|
141 # define PNG_MAX_MALLOC_64K |
|
142 #endif |
|
143 |
|
144 /* Special munging to support doing things the 'cygwin' way: |
|
145 * 'Normal' png-on-win32 defines/defaults: |
|
146 * PNG_BUILD_DLL -- building dll |
|
147 * PNG_USE_DLL -- building an application, linking to dll |
|
148 * (no define) -- building static library, or building an |
|
149 * application and linking to the static lib |
|
150 * 'Cygwin' defines/defaults: |
|
151 * PNG_BUILD_DLL -- (ignored) building the dll |
|
152 * (no define) -- (ignored) building an application, linking to the dll |
|
153 * PNG_STATIC -- (ignored) building the static lib, or building an |
|
154 * application that links to the static lib. |
|
155 * ALL_STATIC -- (ignored) building various static libs, or building an |
|
156 * application that links to the static libs. |
|
157 * Thus, |
|
158 * a cygwin user should define either PNG_BUILD_DLL or PNG_STATIC, and |
|
159 * this bit of #ifdefs will define the 'correct' config variables based on |
|
160 * that. If a cygwin user *wants* to define 'PNG_USE_DLL' that's okay, but |
|
161 * unnecessary. |
|
162 * |
|
163 * Also, the precedence order is: |
|
164 * ALL_STATIC (since we can't #undef something outside our namespace) |
|
165 * PNG_BUILD_DLL |
|
166 * PNG_STATIC |
|
167 * (nothing) == PNG_USE_DLL |
|
168 * |
|
169 * CYGWIN (2002-01-20): The preceding is now obsolete. With the advent |
|
170 * of auto-import in binutils, we no longer need to worry about |
|
171 * __declspec(dllexport) / __declspec(dllimport) and friends. Therefore, |
|
172 * we don't need to worry about PNG_STATIC or ALL_STATIC when it comes |
|
173 * to __declspec() stuff. However, we DO need to worry about |
|
174 * PNG_BUILD_DLL and PNG_STATIC because those change some defaults |
|
175 * such as CONSOLE_IO and whether GLOBAL_ARRAYS are allowed. |
|
176 */ |
|
177 #if defined(__CYGWIN__) |
|
178 # if defined(ALL_STATIC) |
|
179 # if defined(PNG_BUILD_DLL) |
|
180 # undef PNG_BUILD_DLL |
|
181 # endif |
|
182 # if defined(PNG_USE_DLL) |
|
183 # undef PNG_USE_DLL |
|
184 # endif |
|
185 # if defined(PNG_DLL) |
|
186 # undef PNG_DLL |
|
187 # endif |
|
188 # if !defined(PNG_STATIC) |
|
189 # define PNG_STATIC |
|
190 # endif |
|
191 # else |
|
192 # if defined (PNG_BUILD_DLL) |
|
193 # if defined(PNG_STATIC) |
|
194 # undef PNG_STATIC |
|
195 # endif |
|
196 # if defined(PNG_USE_DLL) |
|
197 # undef PNG_USE_DLL |
|
198 # endif |
|
199 # if !defined(PNG_DLL) |
|
200 # define PNG_DLL |
|
201 # endif |
|
202 # else |
|
203 # if defined(PNG_STATIC) |
|
204 # if defined(PNG_USE_DLL) |
|
205 # undef PNG_USE_DLL |
|
206 # endif |
|
207 # if defined(PNG_DLL) |
|
208 # undef PNG_DLL |
|
209 # endif |
|
210 # else |
|
211 # if !defined(PNG_USE_DLL) |
|
212 # define PNG_USE_DLL |
|
213 # endif |
|
214 # if !defined(PNG_DLL) |
|
215 # define PNG_DLL |
|
216 # endif |
|
217 # endif |
|
218 # endif |
|
219 # endif |
|
220 #endif |
|
221 |
|
222 /* This protects us against compilers that run on a windowing system |
|
223 * and thus don't have or would rather us not use the stdio types: |
|
224 * stdin, stdout, and stderr. The only one currently used is stderr |
|
225 * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will |
|
226 * prevent these from being compiled and used. #defining PNG_NO_STDIO |
|
227 * will also prevent these, plus will prevent the entire set of stdio |
|
228 * macros and functions (FILE *, printf, etc.) from being compiled and used, |
|
229 * unless (PNG_DEBUG > 0) has been #defined. |
|
230 * |
|
231 * #define PNG_NO_CONSOLE_IO |
|
232 * #define PNG_NO_STDIO |
|
233 */ |
|
234 |
|
235 #if defined(_WIN32_WCE) |
|
236 # include <windows.h> |
|
237 /* Console I/O functions are not supported on WindowsCE */ |
|
238 # define PNG_NO_CONSOLE_IO |
|
239 /* abort() may not be supported on some/all Windows CE platforms */ |
|
240 # define PNG_ABORT() exit(-1) |
|
241 # ifdef PNG_DEBUG |
|
242 # undef PNG_DEBUG |
|
243 # endif |
|
244 #endif |
|
245 |
|
246 #ifdef PNG_BUILD_DLL |
|
247 # ifndef PNG_CONSOLE_IO_SUPPORTED |
|
248 # ifndef PNG_NO_CONSOLE_IO |
|
249 # define PNG_NO_CONSOLE_IO |
|
250 # endif |
|
251 # endif |
|
252 #endif |
|
253 |
|
254 # ifdef PNG_NO_STDIO |
|
255 # ifndef PNG_NO_CONSOLE_IO |
|
256 # define PNG_NO_CONSOLE_IO |
|
257 # endif |
|
258 # ifdef PNG_DEBUG |
|
259 # if (PNG_DEBUG > 0) |
|
260 # include <stdio.h> |
|
261 # endif |
|
262 # endif |
|
263 # else |
|
264 # if !defined(_WIN32_WCE) |
|
265 /* "stdio.h" functions are not supported on WindowsCE */ |
|
266 # include <stdio.h> |
|
267 # endif |
|
268 # endif |
|
269 |
|
270 /* This macro protects us against machines that don't have function |
|
271 * prototypes (ie K&R style headers). If your compiler does not handle |
|
272 * function prototypes, define this macro and use the included ansi2knr. |
|
273 * I've always been able to use _NO_PROTO as the indicator, but you may |
|
274 * need to drag the empty declaration out in front of here, or change the |
|
275 * ifdef to suit your own needs. |
|
276 */ |
|
277 #ifndef PNGARG |
|
278 |
|
279 #ifdef OF /* zlib prototype munger */ |
|
280 # define PNGARG(arglist) OF(arglist) |
|
281 #else |
|
282 |
|
283 #ifdef _NO_PROTO |
|
284 # define PNGARG(arglist) () |
|
285 # ifndef PNG_TYPECAST_NULL |
|
286 # define PNG_TYPECAST_NULL |
|
287 # endif |
|
288 #else |
|
289 # define PNGARG(arglist) arglist |
|
290 #endif /* _NO_PROTO */ |
|
291 |
|
292 |
|
293 #endif /* OF */ |
|
294 |
|
295 #endif /* PNGARG */ |
|
296 |
|
297 /* Try to determine if we are compiling on a Mac. Note that testing for |
|
298 * just __MWERKS__ is not good enough, because the Codewarrior is now used |
|
299 * on non-Mac platforms. |
|
300 */ |
|
301 #ifndef MACOS |
|
302 # if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ |
|
303 defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) |
|
304 # define MACOS |
|
305 # endif |
|
306 #endif |
|
307 |
|
308 /* enough people need this for various reasons to include it here */ |
|
309 #if !defined(MACOS) && !defined(RISCOS) && !defined(_WIN32_WCE) |
|
310 # include <sys/types.h> |
|
311 #endif |
|
312 |
|
313 #if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED) |
|
314 # define PNG_SETJMP_SUPPORTED |
|
315 #endif |
|
316 |
|
317 #ifdef PNG_SETJMP_SUPPORTED |
|
318 /* This is an attempt to force a single setjmp behaviour on Linux. If |
|
319 * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. |
|
320 * |
|
321 * You can bypass this test if you know that your application uses exactly |
|
322 * the same setjmp.h that was included when libpng was built. Only define |
|
323 * PNG_SKIP_SETJMP_CHECK while building your application, prior to the |
|
324 * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK |
|
325 * while building a separate libpng library for general use. |
|
326 */ |
|
327 |
|
328 # ifndef PNG_SKIP_SETJMP_CHECK |
|
329 # ifdef __linux__ |
|
330 # ifdef _BSD_SOURCE |
|
331 # define PNG_SAVE_BSD_SOURCE |
|
332 # undef _BSD_SOURCE |
|
333 # endif |
|
334 # ifdef _SETJMP_H |
|
335 /* If you encounter a compiler error here, see the explanation |
|
336 * near the end of INSTALL. |
|
337 */ |
|
338 __pngconf.h__ in libpng already includes setjmp.h; |
|
339 __dont__ include it again.; |
|
340 # endif |
|
341 # endif /* __linux__ */ |
|
342 # endif /* PNG_SKIP_SETJMP_CHECK */ |
|
343 |
|
344 /* include setjmp.h for error handling */ |
|
345 # include <setjmp.h> |
|
346 |
|
347 # ifdef __linux__ |
|
348 # ifdef PNG_SAVE_BSD_SOURCE |
|
349 # ifndef _BSD_SOURCE |
|
350 # define _BSD_SOURCE |
|
351 # endif |
|
352 # undef PNG_SAVE_BSD_SOURCE |
|
353 # endif |
|
354 # endif /* __linux__ */ |
|
355 #endif /* PNG_SETJMP_SUPPORTED */ |
|
356 |
|
357 #if defined(BSD) && !defined(VXWORKS) |
|
358 # include <strings.h> |
|
359 #else |
|
360 # include <string.h> |
|
361 #endif |
|
362 |
|
363 /* Other defines for things like memory and the like can go here. */ |
|
364 #ifdef PNG_INTERNAL |
|
365 |
|
366 #include <stdlib.h> |
|
367 |
|
368 /* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which |
|
369 * aren't usually used outside the library (as far as I know), so it is |
|
370 * debatable if they should be exported at all. In the future, when it is |
|
371 * possible to have run-time registry of chunk-handling functions, some of |
|
372 * these will be made available again. |
|
373 #define PNG_EXTERN extern |
|
374 */ |
|
375 #define PNG_EXTERN |
|
376 |
|
377 /* Other defines specific to compilers can go here. Try to keep |
|
378 * them inside an appropriate ifdef/endif pair for portability. |
|
379 */ |
|
380 |
|
381 #if defined(PNG_FLOATING_POINT_SUPPORTED) |
|
382 # if defined(MACOS) |
|
383 /* We need to check that <math.h> hasn't already been included earlier |
|
384 * as it seems it doesn't agree with <fp.h>, yet we should really use |
|
385 * <fp.h> if possible. |
|
386 */ |
|
387 # if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) |
|
388 # include <fp.h> |
|
389 # endif |
|
390 # else |
|
391 # include <math.h> |
|
392 # endif |
|
393 # if defined(_AMIGA) && defined(__SASC) && defined(_M68881) |
|
394 /* Amiga SAS/C: We must include builtin FPU functions when compiling using |
|
395 * MATH=68881 |
|
396 */ |
|
397 # include <m68881.h> |
|
398 # endif |
|
399 #endif |
|
400 |
|
401 /* Codewarrior on NT has linking problems without this. */ |
|
402 #if (defined(__MWERKS__) && defined(WIN32)) || defined(__STDC__) |
|
403 # define PNG_ALWAYS_EXTERN |
|
404 #endif |
|
405 |
|
406 /* This provides the non-ANSI (far) memory allocation routines. */ |
|
407 #if defined(__TURBOC__) && defined(__MSDOS__) |
|
408 # include <mem.h> |
|
409 # include <alloc.h> |
|
410 #endif |
|
411 |
|
412 /* I have no idea why is this necessary... */ |
|
413 #if defined(_MSC_VER) && (defined(WIN32) || defined(_Windows) || \ |
|
414 defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__)) |
|
415 # include <malloc.h> |
|
416 #endif |
|
417 |
|
418 /* This controls how fine the dithering gets. As this allocates |
|
419 * a largish chunk of memory (32K), those who are not as concerned |
|
420 * with dithering quality can decrease some or all of these. |
|
421 */ |
|
422 #ifndef PNG_DITHER_RED_BITS |
|
423 # define PNG_DITHER_RED_BITS 5 |
|
424 #endif |
|
425 #ifndef PNG_DITHER_GREEN_BITS |
|
426 # define PNG_DITHER_GREEN_BITS 5 |
|
427 #endif |
|
428 #ifndef PNG_DITHER_BLUE_BITS |
|
429 # define PNG_DITHER_BLUE_BITS 5 |
|
430 #endif |
|
431 |
|
432 /* This controls how fine the gamma correction becomes when you |
|
433 * are only interested in 8 bits anyway. Increasing this value |
|
434 * results in more memory being used, and more pow() functions |
|
435 * being called to fill in the gamma tables. Don't set this value |
|
436 * less then 8, and even that may not work (I haven't tested it). |
|
437 */ |
|
438 |
|
439 #ifndef PNG_MAX_GAMMA_8 |
|
440 # define PNG_MAX_GAMMA_8 11 |
|
441 #endif |
|
442 |
|
443 /* This controls how much a difference in gamma we can tolerate before |
|
444 * we actually start doing gamma conversion. |
|
445 */ |
|
446 #ifndef PNG_GAMMA_THRESHOLD |
|
447 # define PNG_GAMMA_THRESHOLD 0.05 |
|
448 #endif |
|
449 |
|
450 #endif /* PNG_INTERNAL */ |
|
451 |
|
452 /* The following uses const char * instead of char * for error |
|
453 * and warning message functions, so some compilers won't complain. |
|
454 * If you do not want to use const, define PNG_NO_CONST here. |
|
455 */ |
|
456 |
|
457 #ifndef PNG_NO_CONST |
|
458 # define PNG_CONST const |
|
459 #else |
|
460 # define PNG_CONST |
|
461 #endif |
|
462 |
|
463 /* The following defines give you the ability to remove code from the |
|
464 * library that you will not be using. I wish I could figure out how to |
|
465 * automate this, but I can't do that without making it seriously hard |
|
466 * on the users. So if you are not using an ability, change the #define |
|
467 * to and #undef, and that part of the library will not be compiled. If |
|
468 * your linker can't find a function, you may want to make sure the |
|
469 * ability is defined here. Some of these depend upon some others being |
|
470 * defined. I haven't figured out all the interactions here, so you may |
|
471 * have to experiment awhile to get everything to compile. If you are |
|
472 * creating or using a shared library, you probably shouldn't touch this, |
|
473 * as it will affect the size of the structures, and this will cause bad |
|
474 * things to happen if the library and/or application ever change. |
|
475 */ |
|
476 |
|
477 /* Any features you will not be using can be undef'ed here */ |
|
478 |
|
479 /* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user |
|
480 * to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS |
|
481 * on the compile line, then pick and choose which ones to define without |
|
482 * having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED |
|
483 * if you only want to have a png-compliant reader/writer but don't need |
|
484 * any of the extra transformations. This saves about 80 kbytes in a |
|
485 * typical installation of the library. (PNG_NO_* form added in version |
|
486 * 1.0.1c, for consistency) |
|
487 */ |
|
488 |
|
489 /* The size of the png_text structure changed in libpng-1.0.6 when |
|
490 * iTXt support was added. iTXt support was turned off by default through |
|
491 * libpng-1.2.x, to support old apps that malloc the png_text structure |
|
492 * instead of calling png_set_text() and letting libpng malloc it. It |
|
493 * will be turned on by default in libpng-1.4.0. |
|
494 */ |
|
495 |
|
496 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) |
|
497 # ifndef PNG_NO_iTXt_SUPPORTED |
|
498 # define PNG_NO_iTXt_SUPPORTED |
|
499 # endif |
|
500 # ifndef PNG_NO_READ_iTXt |
|
501 # define PNG_NO_READ_iTXt |
|
502 # endif |
|
503 # ifndef PNG_NO_WRITE_iTXt |
|
504 # define PNG_NO_WRITE_iTXt |
|
505 # endif |
|
506 #endif |
|
507 |
|
508 #if !defined(PNG_NO_iTXt_SUPPORTED) |
|
509 # if !defined(PNG_READ_iTXt_SUPPORTED) && !defined(PNG_NO_READ_iTXt) |
|
510 # define PNG_READ_iTXt |
|
511 # endif |
|
512 # if !defined(PNG_WRITE_iTXt_SUPPORTED) && !defined(PNG_NO_WRITE_iTXt) |
|
513 # define PNG_WRITE_iTXt |
|
514 # endif |
|
515 #endif |
|
516 |
|
517 /* The following support, added after version 1.0.0, can be turned off here en |
|
518 * masse by defining PNG_LEGACY_SUPPORTED in case you need binary compatibility |
|
519 * with old applications that require the length of png_struct and png_info |
|
520 * to remain unchanged. |
|
521 */ |
|
522 |
|
523 #ifdef PNG_LEGACY_SUPPORTED |
|
524 # define PNG_NO_FREE_ME |
|
525 # define PNG_NO_READ_UNKNOWN_CHUNKS |
|
526 # define PNG_NO_WRITE_UNKNOWN_CHUNKS |
|
527 # define PNG_NO_HANDLE_AS_UNKNOWN |
|
528 # define PNG_NO_READ_USER_CHUNKS |
|
529 # define PNG_NO_READ_iCCP |
|
530 # define PNG_NO_WRITE_iCCP |
|
531 # define PNG_NO_READ_iTXt |
|
532 # define PNG_NO_WRITE_iTXt |
|
533 # define PNG_NO_READ_sCAL |
|
534 # define PNG_NO_WRITE_sCAL |
|
535 # define PNG_NO_READ_sPLT |
|
536 # define PNG_NO_WRITE_sPLT |
|
537 # define PNG_NO_INFO_IMAGE |
|
538 # define PNG_NO_READ_RGB_TO_GRAY |
|
539 # define PNG_NO_READ_USER_TRANSFORM |
|
540 # define PNG_NO_WRITE_USER_TRANSFORM |
|
541 # define PNG_NO_USER_MEM |
|
542 # define PNG_NO_READ_EMPTY_PLTE |
|
543 # define PNG_NO_MNG_FEATURES |
|
544 # define PNG_NO_FIXED_POINT_SUPPORTED |
|
545 #endif |
|
546 |
|
547 /* Ignore attempt to turn off both floating and fixed point support */ |
|
548 #if !defined(PNG_FLOATING_POINT_SUPPORTED) || \ |
|
549 !defined(PNG_NO_FIXED_POINT_SUPPORTED) |
|
550 # define PNG_FIXED_POINT_SUPPORTED |
|
551 #endif |
|
552 |
|
553 #ifndef PNG_NO_FREE_ME |
|
554 # define PNG_FREE_ME_SUPPORTED |
|
555 #endif |
|
556 |
|
557 #ifdef PNG_READ_SUPPORTED |
|
558 |
|
559 #if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \ |
|
560 !defined(PNG_NO_READ_TRANSFORMS) |
|
561 # define PNG_READ_TRANSFORMS_SUPPORTED |
|
562 #endif |
|
563 |
|
564 #ifdef PNG_READ_TRANSFORMS_SUPPORTED |
|
565 # ifndef PNG_NO_READ_EXPAND |
|
566 # define PNG_READ_EXPAND_SUPPORTED |
|
567 # endif |
|
568 # ifndef PNG_NO_READ_SHIFT |
|
569 # define PNG_READ_SHIFT_SUPPORTED |
|
570 # endif |
|
571 # ifndef PNG_NO_READ_PACK |
|
572 # define PNG_READ_PACK_SUPPORTED |
|
573 # endif |
|
574 # ifndef PNG_NO_READ_BGR |
|
575 # define PNG_READ_BGR_SUPPORTED |
|
576 # endif |
|
577 # ifndef PNG_NO_READ_SWAP |
|
578 # define PNG_READ_SWAP_SUPPORTED |
|
579 # endif |
|
580 # ifndef PNG_NO_READ_PACKSWAP |
|
581 # define PNG_READ_PACKSWAP_SUPPORTED |
|
582 # endif |
|
583 # ifndef PNG_NO_READ_INVERT |
|
584 # define PNG_READ_INVERT_SUPPORTED |
|
585 # endif |
|
586 # ifndef PNG_NO_READ_DITHER |
|
587 # define PNG_READ_DITHER_SUPPORTED |
|
588 # endif |
|
589 # ifndef PNG_NO_READ_BACKGROUND |
|
590 # define PNG_READ_BACKGROUND_SUPPORTED |
|
591 # endif |
|
592 # ifndef PNG_NO_READ_16_TO_8 |
|
593 # define PNG_READ_16_TO_8_SUPPORTED |
|
594 # endif |
|
595 # ifndef PNG_NO_READ_FILLER |
|
596 # define PNG_READ_FILLER_SUPPORTED |
|
597 # endif |
|
598 # ifndef PNG_NO_READ_GAMMA |
|
599 # define PNG_READ_GAMMA_SUPPORTED |
|
600 # endif |
|
601 # ifndef PNG_NO_READ_GRAY_TO_RGB |
|
602 # define PNG_READ_GRAY_TO_RGB_SUPPORTED |
|
603 # endif |
|
604 # ifndef PNG_NO_READ_SWAP_ALPHA |
|
605 # define PNG_READ_SWAP_ALPHA_SUPPORTED |
|
606 # endif |
|
607 # ifndef PNG_NO_READ_INVERT_ALPHA |
|
608 # define PNG_READ_INVERT_ALPHA_SUPPORTED |
|
609 # endif |
|
610 # ifndef PNG_NO_READ_STRIP_ALPHA |
|
611 # define PNG_READ_STRIP_ALPHA_SUPPORTED |
|
612 # endif |
|
613 # ifndef PNG_NO_READ_USER_TRANSFORM |
|
614 # define PNG_READ_USER_TRANSFORM_SUPPORTED |
|
615 # endif |
|
616 # ifndef PNG_NO_READ_RGB_TO_GRAY |
|
617 # define PNG_READ_RGB_TO_GRAY_SUPPORTED |
|
618 # endif |
|
619 #endif /* PNG_READ_TRANSFORMS_SUPPORTED */ |
|
620 |
|
621 #if !defined(PNG_NO_PROGRESSIVE_READ) && \ |
|
622 !defined(PNG_PROGRESSIVE_READ_SUPPORTED) /* if you don't do progressive */ |
|
623 # define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */ |
|
624 #endif /* about interlacing capability! You'll */ |
|
625 /* still have interlacing unless you change the following line: */ |
|
626 |
|
627 #define PNG_READ_INTERLACING_SUPPORTED /* required in PNG-compliant decoders */ |
|
628 |
|
629 #ifndef PNG_NO_READ_COMPOSITE_NODIV |
|
630 # ifndef PNG_NO_READ_COMPOSITED_NODIV /* libpng-1.0.x misspelling */ |
|
631 # define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel, SGI */ |
|
632 # endif |
|
633 #endif |
|
634 |
|
635 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) |
|
636 /* Deprecated, will be removed from version 2.0.0. |
|
637 Use PNG_MNG_FEATURES_SUPPORTED instead. */ |
|
638 #ifndef PNG_NO_READ_EMPTY_PLTE |
|
639 # define PNG_READ_EMPTY_PLTE_SUPPORTED |
|
640 #endif |
|
641 #endif |
|
642 |
|
643 #endif /* PNG_READ_SUPPORTED */ |
|
644 |
|
645 #ifdef PNG_WRITE_SUPPORTED |
|
646 |
|
647 # if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \ |
|
648 !defined(PNG_NO_WRITE_TRANSFORMS) |
|
649 # define PNG_WRITE_TRANSFORMS_SUPPORTED |
|
650 #endif |
|
651 |
|
652 #ifdef PNG_WRITE_TRANSFORMS_SUPPORTED |
|
653 # ifndef PNG_NO_WRITE_SHIFT |
|
654 # define PNG_WRITE_SHIFT_SUPPORTED |
|
655 # endif |
|
656 # ifndef PNG_NO_WRITE_PACK |
|
657 # define PNG_WRITE_PACK_SUPPORTED |
|
658 # endif |
|
659 # ifndef PNG_NO_WRITE_BGR |
|
660 # define PNG_WRITE_BGR_SUPPORTED |
|
661 # endif |
|
662 # ifndef PNG_NO_WRITE_SWAP |
|
663 # define PNG_WRITE_SWAP_SUPPORTED |
|
664 # endif |
|
665 # ifndef PNG_NO_WRITE_PACKSWAP |
|
666 # define PNG_WRITE_PACKSWAP_SUPPORTED |
|
667 # endif |
|
668 # ifndef PNG_NO_WRITE_INVERT |
|
669 # define PNG_WRITE_INVERT_SUPPORTED |
|
670 # endif |
|
671 # ifndef PNG_NO_WRITE_FILLER |
|
672 # define PNG_WRITE_FILLER_SUPPORTED /* same as WRITE_STRIP_ALPHA */ |
|
673 # endif |
|
674 # ifndef PNG_NO_WRITE_SWAP_ALPHA |
|
675 # define PNG_WRITE_SWAP_ALPHA_SUPPORTED |
|
676 # endif |
|
677 # ifndef PNG_NO_WRITE_INVERT_ALPHA |
|
678 # define PNG_WRITE_INVERT_ALPHA_SUPPORTED |
|
679 # endif |
|
680 # ifndef PNG_NO_WRITE_USER_TRANSFORM |
|
681 # define PNG_WRITE_USER_TRANSFORM_SUPPORTED |
|
682 # endif |
|
683 #endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ |
|
684 |
|
685 #if !defined(PNG_NO_WRITE_INTERLACING_SUPPORTED) && \ |
|
686 !defined(PNG_WRITE_INTERLACING_SUPPORTED) |
|
687 #define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant |
|
688 encoders, but can cause trouble |
|
689 if left undefined */ |
|
690 #endif |
|
691 |
|
692 #if !defined(PNG_NO_WRITE_WEIGHTED_FILTER) && \ |
|
693 !defined(PNG_WRITE_WEIGHTED_FILTER) && \ |
|
694 defined(PNG_FLOATING_POINT_SUPPORTED) |
|
695 # define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED |
|
696 #endif |
|
697 |
|
698 #ifndef PNG_NO_WRITE_FLUSH |
|
699 # define PNG_WRITE_FLUSH_SUPPORTED |
|
700 #endif |
|
701 |
|
702 #if defined(PNG_1_0_X) || defined (PNG_1_2_X) |
|
703 /* Deprecated, see PNG_MNG_FEATURES_SUPPORTED, above */ |
|
704 #ifndef PNG_NO_WRITE_EMPTY_PLTE |
|
705 # define PNG_WRITE_EMPTY_PLTE_SUPPORTED |
|
706 #endif |
|
707 #endif |
|
708 |
|
709 #endif /* PNG_WRITE_SUPPORTED */ |
|
710 |
|
711 #ifndef PNG_1_0_X |
|
712 # ifndef PNG_NO_ERROR_NUMBERS |
|
713 # define PNG_ERROR_NUMBERS_SUPPORTED |
|
714 # endif |
|
715 #endif /* PNG_1_0_X */ |
|
716 |
|
717 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ |
|
718 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) |
|
719 # ifndef PNG_NO_USER_TRANSFORM_PTR |
|
720 # define PNG_USER_TRANSFORM_PTR_SUPPORTED |
|
721 # endif |
|
722 #endif |
|
723 |
|
724 #ifndef PNG_NO_STDIO |
|
725 # define PNG_TIME_RFC1123_SUPPORTED |
|
726 #endif |
|
727 |
|
728 /* This adds extra functions in pngget.c for accessing data from the |
|
729 * info pointer (added in version 0.99) |
|
730 * png_get_image_width() |
|
731 * png_get_image_height() |
|
732 * png_get_bit_depth() |
|
733 * png_get_color_type() |
|
734 * png_get_compression_type() |
|
735 * png_get_filter_type() |
|
736 * png_get_interlace_type() |
|
737 * png_get_pixel_aspect_ratio() |
|
738 * png_get_pixels_per_meter() |
|
739 * png_get_x_offset_pixels() |
|
740 * png_get_y_offset_pixels() |
|
741 * png_get_x_offset_microns() |
|
742 * png_get_y_offset_microns() |
|
743 */ |
|
744 #if !defined(PNG_NO_EASY_ACCESS) && !defined(PNG_EASY_ACCESS_SUPPORTED) |
|
745 # define PNG_EASY_ACCESS_SUPPORTED |
|
746 #endif |
|
747 |
|
748 /* PNG_ASSEMBLER_CODE was enabled by default in version 1.2.0 |
|
749 * and removed from version 1.2.20. The following will be removed |
|
750 * from libpng-1.4.0 |
|
751 */ |
|
752 |
|
753 #if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_OPTIMIZED_CODE) |
|
754 # ifndef PNG_OPTIMIZED_CODE_SUPPORTED |
|
755 # define PNG_OPTIMIZED_CODE_SUPPORTED |
|
756 # endif |
|
757 #endif |
|
758 |
|
759 #if defined(PNG_READ_SUPPORTED) && !defined(PNG_NO_ASSEMBLER_CODE) |
|
760 # ifndef PNG_ASSEMBLER_CODE_SUPPORTED |
|
761 # define PNG_ASSEMBLER_CODE_SUPPORTED |
|
762 # endif |
|
763 |
|
764 # if defined(__GNUC__) && defined(__x86_64__) && (__GNUC__ < 4) |
|
765 /* work around 64-bit gcc compiler bugs in gcc-3.x */ |
|
766 # if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) |
|
767 # define PNG_NO_MMX_CODE |
|
768 # endif |
|
769 # endif |
|
770 |
|
771 # if defined(__APPLE__) |
|
772 # if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) |
|
773 # define PNG_NO_MMX_CODE |
|
774 # endif |
|
775 # endif |
|
776 |
|
777 # if (defined(__MWERKS__) && ((__MWERKS__ < 0x0900) || macintosh)) |
|
778 # if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) |
|
779 # define PNG_NO_MMX_CODE |
|
780 # endif |
|
781 # endif |
|
782 |
|
783 # if !defined(PNG_MMX_CODE_SUPPORTED) && !defined(PNG_NO_MMX_CODE) |
|
784 # define PNG_MMX_CODE_SUPPORTED |
|
785 # endif |
|
786 |
|
787 #endif |
|
788 /* end of obsolete code to be removed from libpng-1.4.0 */ |
|
789 |
|
790 #if !defined(PNG_1_0_X) |
|
791 #if !defined(PNG_NO_USER_MEM) && !defined(PNG_USER_MEM_SUPPORTED) |
|
792 # define PNG_USER_MEM_SUPPORTED |
|
793 #endif |
|
794 #endif /* PNG_1_0_X */ |
|
795 |
|
796 /* Added at libpng-1.2.6 */ |
|
797 #if !defined(PNG_1_0_X) |
|
798 #ifndef PNG_SET_USER_LIMITS_SUPPORTED |
|
799 #if !defined(PNG_NO_SET_USER_LIMITS) && !defined(PNG_SET_USER_LIMITS_SUPPORTED) |
|
800 # define PNG_SET_USER_LIMITS_SUPPORTED |
|
801 #endif |
|
802 #endif |
|
803 #endif /* PNG_1_0_X */ |
|
804 |
|
805 /* Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGS no matter |
|
806 * how large, set these limits to 0x7fffffffL |
|
807 */ |
|
808 #ifndef PNG_USER_WIDTH_MAX |
|
809 # define PNG_USER_WIDTH_MAX 1000000L |
|
810 #endif |
|
811 #ifndef PNG_USER_HEIGHT_MAX |
|
812 # define PNG_USER_HEIGHT_MAX 1000000L |
|
813 #endif |
|
814 |
|
815 /* Added at libpng-1.2.34 and 1.4.0 */ |
|
816 #ifndef PNG_STRING_NEWLINE |
|
817 #define PNG_STRING_NEWLINE "\n" |
|
818 #endif |
|
819 |
|
820 /* These are currently experimental features, define them if you want */ |
|
821 |
|
822 /* very little testing */ |
|
823 /* |
|
824 #ifdef PNG_READ_SUPPORTED |
|
825 # ifndef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED |
|
826 # define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED |
|
827 # endif |
|
828 #endif |
|
829 */ |
|
830 |
|
831 /* This is only for PowerPC big-endian and 680x0 systems */ |
|
832 /* some testing */ |
|
833 /* |
|
834 #ifndef PNG_READ_BIG_ENDIAN_SUPPORTED |
|
835 # define PNG_READ_BIG_ENDIAN_SUPPORTED |
|
836 #endif |
|
837 */ |
|
838 |
|
839 /* Buggy compilers (e.g., gcc 2.7.2.2) need this */ |
|
840 /* |
|
841 #define PNG_NO_POINTER_INDEXING |
|
842 */ |
|
843 |
|
844 /* These functions are turned off by default, as they will be phased out. */ |
|
845 /* |
|
846 #define PNG_USELESS_TESTS_SUPPORTED |
|
847 #define PNG_CORRECT_PALETTE_SUPPORTED |
|
848 */ |
|
849 |
|
850 /* Any chunks you are not interested in, you can undef here. The |
|
851 * ones that allocate memory may be expecially important (hIST, |
|
852 * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info |
|
853 * a bit smaller. |
|
854 */ |
|
855 |
|
856 #if defined(PNG_READ_SUPPORTED) && \ |
|
857 !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ |
|
858 !defined(PNG_NO_READ_ANCILLARY_CHUNKS) |
|
859 # define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED |
|
860 #endif |
|
861 |
|
862 #if defined(PNG_WRITE_SUPPORTED) && \ |
|
863 !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ |
|
864 !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS) |
|
865 # define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED |
|
866 #endif |
|
867 |
|
868 #ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED |
|
869 |
|
870 #ifdef PNG_NO_READ_TEXT |
|
871 # define PNG_NO_READ_iTXt |
|
872 # define PNG_NO_READ_tEXt |
|
873 # define PNG_NO_READ_zTXt |
|
874 #endif |
|
875 #ifndef PNG_NO_READ_bKGD |
|
876 # define PNG_READ_bKGD_SUPPORTED |
|
877 # define PNG_bKGD_SUPPORTED |
|
878 #endif |
|
879 #ifndef PNG_NO_READ_cHRM |
|
880 # define PNG_READ_cHRM_SUPPORTED |
|
881 # define PNG_cHRM_SUPPORTED |
|
882 #endif |
|
883 #ifndef PNG_NO_READ_gAMA |
|
884 # define PNG_READ_gAMA_SUPPORTED |
|
885 # define PNG_gAMA_SUPPORTED |
|
886 #endif |
|
887 #ifndef PNG_NO_READ_hIST |
|
888 # define PNG_READ_hIST_SUPPORTED |
|
889 # define PNG_hIST_SUPPORTED |
|
890 #endif |
|
891 #ifndef PNG_NO_READ_iCCP |
|
892 # define PNG_READ_iCCP_SUPPORTED |
|
893 # define PNG_iCCP_SUPPORTED |
|
894 #endif |
|
895 #ifndef PNG_NO_READ_iTXt |
|
896 # ifndef PNG_READ_iTXt_SUPPORTED |
|
897 # define PNG_READ_iTXt_SUPPORTED |
|
898 # endif |
|
899 # ifndef PNG_iTXt_SUPPORTED |
|
900 # define PNG_iTXt_SUPPORTED |
|
901 # endif |
|
902 #endif |
|
903 #ifndef PNG_NO_READ_oFFs |
|
904 # define PNG_READ_oFFs_SUPPORTED |
|
905 # define PNG_oFFs_SUPPORTED |
|
906 #endif |
|
907 #ifndef PNG_NO_READ_pCAL |
|
908 # define PNG_READ_pCAL_SUPPORTED |
|
909 # define PNG_pCAL_SUPPORTED |
|
910 #endif |
|
911 #ifndef PNG_NO_READ_sCAL |
|
912 # define PNG_READ_sCAL_SUPPORTED |
|
913 # define PNG_sCAL_SUPPORTED |
|
914 #endif |
|
915 #ifndef PNG_NO_READ_pHYs |
|
916 # define PNG_READ_pHYs_SUPPORTED |
|
917 # define PNG_pHYs_SUPPORTED |
|
918 #endif |
|
919 #ifndef PNG_NO_READ_sBIT |
|
920 # define PNG_READ_sBIT_SUPPORTED |
|
921 # define PNG_sBIT_SUPPORTED |
|
922 #endif |
|
923 #ifndef PNG_NO_READ_sPLT |
|
924 # define PNG_READ_sPLT_SUPPORTED |
|
925 # define PNG_sPLT_SUPPORTED |
|
926 #endif |
|
927 #ifndef PNG_NO_READ_sRGB |
|
928 # define PNG_READ_sRGB_SUPPORTED |
|
929 # define PNG_sRGB_SUPPORTED |
|
930 #endif |
|
931 #ifndef PNG_NO_READ_tEXt |
|
932 # define PNG_READ_tEXt_SUPPORTED |
|
933 # define PNG_tEXt_SUPPORTED |
|
934 #endif |
|
935 #ifndef PNG_NO_READ_tIME |
|
936 # define PNG_READ_tIME_SUPPORTED |
|
937 # define PNG_tIME_SUPPORTED |
|
938 #endif |
|
939 #ifndef PNG_NO_READ_tRNS |
|
940 # define PNG_READ_tRNS_SUPPORTED |
|
941 # define PNG_tRNS_SUPPORTED |
|
942 #endif |
|
943 #ifndef PNG_NO_READ_zTXt |
|
944 # define PNG_READ_zTXt_SUPPORTED |
|
945 # define PNG_zTXt_SUPPORTED |
|
946 #endif |
|
947 #ifndef PNG_NO_READ_OPT_PLTE |
|
948 # define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the */ |
|
949 #endif /* optional PLTE chunk in RGB and RGBA images */ |
|
950 #if defined(PNG_READ_iTXt_SUPPORTED) || defined(PNG_READ_tEXt_SUPPORTED) || \ |
|
951 defined(PNG_READ_zTXt_SUPPORTED) |
|
952 # define PNG_READ_TEXT_SUPPORTED |
|
953 # define PNG_TEXT_SUPPORTED |
|
954 #endif |
|
955 |
|
956 #endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */ |
|
957 |
|
958 #ifndef PNG_NO_READ_UNKNOWN_CHUNKS |
|
959 # define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED |
|
960 # ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED |
|
961 # define PNG_UNKNOWN_CHUNKS_SUPPORTED |
|
962 # endif |
|
963 #endif |
|
964 #if !defined(PNG_NO_READ_USER_CHUNKS) && \ |
|
965 defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) |
|
966 # define PNG_READ_USER_CHUNKS_SUPPORTED |
|
967 # define PNG_USER_CHUNKS_SUPPORTED |
|
968 # ifdef PNG_NO_READ_UNKNOWN_CHUNKS |
|
969 # undef PNG_NO_READ_UNKNOWN_CHUNKS |
|
970 # endif |
|
971 # ifdef PNG_NO_HANDLE_AS_UNKNOWN |
|
972 # undef PNG_NO_HANDLE_AS_UNKNOWN |
|
973 # endif |
|
974 #endif |
|
975 |
|
976 #ifndef PNG_NO_HANDLE_AS_UNKNOWN |
|
977 # ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED |
|
978 # define PNG_HANDLE_AS_UNKNOWN_SUPPORTED |
|
979 # endif |
|
980 #endif |
|
981 |
|
982 #ifdef PNG_WRITE_SUPPORTED |
|
983 #ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED |
|
984 |
|
985 #ifdef PNG_NO_WRITE_TEXT |
|
986 # define PNG_NO_WRITE_iTXt |
|
987 # define PNG_NO_WRITE_tEXt |
|
988 # define PNG_NO_WRITE_zTXt |
|
989 #endif |
|
990 #ifndef PNG_NO_WRITE_bKGD |
|
991 # define PNG_WRITE_bKGD_SUPPORTED |
|
992 # ifndef PNG_bKGD_SUPPORTED |
|
993 # define PNG_bKGD_SUPPORTED |
|
994 # endif |
|
995 #endif |
|
996 #ifndef PNG_NO_WRITE_cHRM |
|
997 # define PNG_WRITE_cHRM_SUPPORTED |
|
998 # ifndef PNG_cHRM_SUPPORTED |
|
999 # define PNG_cHRM_SUPPORTED |
|
1000 # endif |
|
1001 #endif |
|
1002 #ifndef PNG_NO_WRITE_gAMA |
|
1003 # define PNG_WRITE_gAMA_SUPPORTED |
|
1004 # ifndef PNG_gAMA_SUPPORTED |
|
1005 # define PNG_gAMA_SUPPORTED |
|
1006 # endif |
|
1007 #endif |
|
1008 #ifndef PNG_NO_WRITE_hIST |
|
1009 # define PNG_WRITE_hIST_SUPPORTED |
|
1010 # ifndef PNG_hIST_SUPPORTED |
|
1011 # define PNG_hIST_SUPPORTED |
|
1012 # endif |
|
1013 #endif |
|
1014 #ifndef PNG_NO_WRITE_iCCP |
|
1015 # define PNG_WRITE_iCCP_SUPPORTED |
|
1016 # ifndef PNG_iCCP_SUPPORTED |
|
1017 # define PNG_iCCP_SUPPORTED |
|
1018 # endif |
|
1019 #endif |
|
1020 #ifndef PNG_NO_WRITE_iTXt |
|
1021 # ifndef PNG_WRITE_iTXt_SUPPORTED |
|
1022 # define PNG_WRITE_iTXt_SUPPORTED |
|
1023 # endif |
|
1024 # ifndef PNG_iTXt_SUPPORTED |
|
1025 # define PNG_iTXt_SUPPORTED |
|
1026 # endif |
|
1027 #endif |
|
1028 #ifndef PNG_NO_WRITE_oFFs |
|
1029 # define PNG_WRITE_oFFs_SUPPORTED |
|
1030 # ifndef PNG_oFFs_SUPPORTED |
|
1031 # define PNG_oFFs_SUPPORTED |
|
1032 # endif |
|
1033 #endif |
|
1034 #ifndef PNG_NO_WRITE_pCAL |
|
1035 # define PNG_WRITE_pCAL_SUPPORTED |
|
1036 # ifndef PNG_pCAL_SUPPORTED |
|
1037 # define PNG_pCAL_SUPPORTED |
|
1038 # endif |
|
1039 #endif |
|
1040 #ifndef PNG_NO_WRITE_sCAL |
|
1041 # define PNG_WRITE_sCAL_SUPPORTED |
|
1042 # ifndef PNG_sCAL_SUPPORTED |
|
1043 # define PNG_sCAL_SUPPORTED |
|
1044 # endif |
|
1045 #endif |
|
1046 #ifndef PNG_NO_WRITE_pHYs |
|
1047 # define PNG_WRITE_pHYs_SUPPORTED |
|
1048 # ifndef PNG_pHYs_SUPPORTED |
|
1049 # define PNG_pHYs_SUPPORTED |
|
1050 # endif |
|
1051 #endif |
|
1052 #ifndef PNG_NO_WRITE_sBIT |
|
1053 # define PNG_WRITE_sBIT_SUPPORTED |
|
1054 # ifndef PNG_sBIT_SUPPORTED |
|
1055 # define PNG_sBIT_SUPPORTED |
|
1056 # endif |
|
1057 #endif |
|
1058 #ifndef PNG_NO_WRITE_sPLT |
|
1059 # define PNG_WRITE_sPLT_SUPPORTED |
|
1060 # ifndef PNG_sPLT_SUPPORTED |
|
1061 # define PNG_sPLT_SUPPORTED |
|
1062 # endif |
|
1063 #endif |
|
1064 #ifndef PNG_NO_WRITE_sRGB |
|
1065 # define PNG_WRITE_sRGB_SUPPORTED |
|
1066 # ifndef PNG_sRGB_SUPPORTED |
|
1067 # define PNG_sRGB_SUPPORTED |
|
1068 # endif |
|
1069 #endif |
|
1070 #ifndef PNG_NO_WRITE_tEXt |
|
1071 # define PNG_WRITE_tEXt_SUPPORTED |
|
1072 # ifndef PNG_tEXt_SUPPORTED |
|
1073 # define PNG_tEXt_SUPPORTED |
|
1074 # endif |
|
1075 #endif |
|
1076 #ifndef PNG_NO_WRITE_tIME |
|
1077 # define PNG_WRITE_tIME_SUPPORTED |
|
1078 # ifndef PNG_tIME_SUPPORTED |
|
1079 # define PNG_tIME_SUPPORTED |
|
1080 # endif |
|
1081 #endif |
|
1082 #ifndef PNG_NO_WRITE_tRNS |
|
1083 # define PNG_WRITE_tRNS_SUPPORTED |
|
1084 # ifndef PNG_tRNS_SUPPORTED |
|
1085 # define PNG_tRNS_SUPPORTED |
|
1086 # endif |
|
1087 #endif |
|
1088 #ifndef PNG_NO_WRITE_zTXt |
|
1089 # define PNG_WRITE_zTXt_SUPPORTED |
|
1090 # ifndef PNG_zTXt_SUPPORTED |
|
1091 # define PNG_zTXt_SUPPORTED |
|
1092 # endif |
|
1093 #endif |
|
1094 #if defined(PNG_WRITE_iTXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ |
|
1095 defined(PNG_WRITE_zTXt_SUPPORTED) |
|
1096 # define PNG_WRITE_TEXT_SUPPORTED |
|
1097 # ifndef PNG_TEXT_SUPPORTED |
|
1098 # define PNG_TEXT_SUPPORTED |
|
1099 # endif |
|
1100 #endif |
|
1101 |
|
1102 #endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */ |
|
1103 |
|
1104 #ifndef PNG_NO_WRITE_UNKNOWN_CHUNKS |
|
1105 # define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED |
|
1106 # ifndef PNG_UNKNOWN_CHUNKS_SUPPORTED |
|
1107 # define PNG_UNKNOWN_CHUNKS_SUPPORTED |
|
1108 # endif |
|
1109 #endif |
|
1110 |
|
1111 #ifndef PNG_NO_HANDLE_AS_UNKNOWN |
|
1112 # ifndef PNG_HANDLE_AS_UNKNOWN_SUPPORTED |
|
1113 # define PNG_HANDLE_AS_UNKNOWN_SUPPORTED |
|
1114 # endif |
|
1115 #endif |
|
1116 #endif /* PNG_WRITE_SUPPORTED */ |
|
1117 |
|
1118 /* Turn this off to disable png_read_png() and |
|
1119 * png_write_png() and leave the row_pointers member |
|
1120 * out of the info structure. |
|
1121 */ |
|
1122 #ifndef PNG_NO_INFO_IMAGE |
|
1123 # define PNG_INFO_IMAGE_SUPPORTED |
|
1124 #endif |
|
1125 |
|
1126 /* need the time information for reading tIME chunks */ |
|
1127 #if defined(PNG_tIME_SUPPORTED) |
|
1128 # if !defined(_WIN32_WCE) |
|
1129 /* "time.h" functions are not supported on WindowsCE */ |
|
1130 # include <time.h> |
|
1131 # endif |
|
1132 #endif |
|
1133 |
|
1134 /* Some typedefs to get us started. These should be safe on most of the |
|
1135 * common platforms. The typedefs should be at least as large as the |
|
1136 * numbers suggest (a png_uint_32 must be at least 32 bits long), but they |
|
1137 * don't have to be exactly that size. Some compilers dislike passing |
|
1138 * unsigned shorts as function parameters, so you may be better off using |
|
1139 * unsigned int for png_uint_16. Likewise, for 64-bit systems, you may |
|
1140 * want to have unsigned int for png_uint_32 instead of unsigned long. |
|
1141 */ |
|
1142 |
|
1143 typedef unsigned long png_uint_32; |
|
1144 typedef long png_int_32; |
|
1145 typedef unsigned short png_uint_16; |
|
1146 typedef short png_int_16; |
|
1147 typedef unsigned char png_byte; |
|
1148 |
|
1149 /* This is usually size_t. It is typedef'ed just in case you need it to |
|
1150 change (I'm not sure if you will or not, so I thought I'd be safe) */ |
|
1151 #ifdef PNG_SIZE_T |
|
1152 typedef PNG_SIZE_T png_size_t; |
|
1153 # define png_sizeof(x) png_convert_size(sizeof(x)) |
|
1154 #else |
|
1155 typedef size_t png_size_t; |
|
1156 # define png_sizeof(x) sizeof(x) |
|
1157 #endif |
|
1158 |
|
1159 /* The following is needed for medium model support. It cannot be in the |
|
1160 * PNG_INTERNAL section. Needs modification for other compilers besides |
|
1161 * MSC. Model independent support declares all arrays and pointers to be |
|
1162 * large using the far keyword. The zlib version used must also support |
|
1163 * model independent data. As of version zlib 1.0.4, the necessary changes |
|
1164 * have been made in zlib. The USE_FAR_KEYWORD define triggers other |
|
1165 * changes that are needed. (Tim Wegner) |
|
1166 */ |
|
1167 |
|
1168 /* Separate compiler dependencies (problem here is that zlib.h always |
|
1169 defines FAR. (SJT) */ |
|
1170 #ifdef __BORLANDC__ |
|
1171 # if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) |
|
1172 # define LDATA 1 |
|
1173 # else |
|
1174 # define LDATA 0 |
|
1175 # endif |
|
1176 /* GRR: why is Cygwin in here? Cygwin is not Borland C... */ |
|
1177 # if !defined(__WIN32__) && !defined(__FLAT__) && !defined(__CYGWIN__) |
|
1178 # define PNG_MAX_MALLOC_64K |
|
1179 # if (LDATA != 1) |
|
1180 # ifndef FAR |
|
1181 # define FAR __far |
|
1182 # endif |
|
1183 # define USE_FAR_KEYWORD |
|
1184 # endif /* LDATA != 1 */ |
|
1185 /* Possibly useful for moving data out of default segment. |
|
1186 * Uncomment it if you want. Could also define FARDATA as |
|
1187 * const if your compiler supports it. (SJT) |
|
1188 # define FARDATA FAR |
|
1189 */ |
|
1190 # endif /* __WIN32__, __FLAT__, __CYGWIN__ */ |
|
1191 #endif /* __BORLANDC__ */ |
|
1192 |
|
1193 |
|
1194 /* Suggest testing for specific compiler first before testing for |
|
1195 * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, |
|
1196 * making reliance oncertain keywords suspect. (SJT) |
|
1197 */ |
|
1198 |
|
1199 /* MSC Medium model */ |
|
1200 #if defined(FAR) |
|
1201 # if defined(M_I86MM) |
|
1202 # define USE_FAR_KEYWORD |
|
1203 # define FARDATA FAR |
|
1204 # include <dos.h> |
|
1205 # endif |
|
1206 #endif |
|
1207 |
|
1208 /* SJT: default case */ |
|
1209 #ifndef FAR |
|
1210 # define FAR |
|
1211 #endif |
|
1212 |
|
1213 /* At this point FAR is always defined */ |
|
1214 #ifndef FARDATA |
|
1215 # define FARDATA |
|
1216 #endif |
|
1217 |
|
1218 /* Typedef for floating-point numbers that are converted |
|
1219 to fixed-point with a multiple of 100,000, e.g., int_gamma */ |
|
1220 typedef png_int_32 png_fixed_point; |
|
1221 |
|
1222 /* Add typedefs for pointers */ |
|
1223 typedef void FAR * png_voidp; |
|
1224 typedef png_byte FAR * png_bytep; |
|
1225 typedef png_uint_32 FAR * png_uint_32p; |
|
1226 typedef png_int_32 FAR * png_int_32p; |
|
1227 typedef png_uint_16 FAR * png_uint_16p; |
|
1228 typedef png_int_16 FAR * png_int_16p; |
|
1229 typedef PNG_CONST char FAR * png_const_charp; |
|
1230 typedef char FAR * png_charp; |
|
1231 typedef png_fixed_point FAR * png_fixed_point_p; |
|
1232 |
|
1233 #ifndef PNG_NO_STDIO |
|
1234 #if defined(_WIN32_WCE) |
|
1235 typedef HANDLE png_FILE_p; |
|
1236 #else |
|
1237 typedef FILE * png_FILE_p; |
|
1238 #endif |
|
1239 #endif |
|
1240 |
|
1241 #ifdef PNG_FLOATING_POINT_SUPPORTED |
|
1242 typedef double FAR * png_doublep; |
|
1243 #endif |
|
1244 |
|
1245 /* Pointers to pointers; i.e. arrays */ |
|
1246 typedef png_byte FAR * FAR * png_bytepp; |
|
1247 typedef png_uint_32 FAR * FAR * png_uint_32pp; |
|
1248 typedef png_int_32 FAR * FAR * png_int_32pp; |
|
1249 typedef png_uint_16 FAR * FAR * png_uint_16pp; |
|
1250 typedef png_int_16 FAR * FAR * png_int_16pp; |
|
1251 typedef PNG_CONST char FAR * FAR * png_const_charpp; |
|
1252 typedef char FAR * FAR * png_charpp; |
|
1253 typedef png_fixed_point FAR * FAR * png_fixed_point_pp; |
|
1254 #ifdef PNG_FLOATING_POINT_SUPPORTED |
|
1255 typedef double FAR * FAR * png_doublepp; |
|
1256 #endif |
|
1257 |
|
1258 /* Pointers to pointers to pointers; i.e., pointer to array */ |
|
1259 typedef char FAR * FAR * FAR * png_charppp; |
|
1260 |
|
1261 #if defined(PNG_1_0_X) || defined(PNG_1_2_X) |
|
1262 /* SPC - Is this stuff deprecated? */ |
|
1263 /* It'll be removed as of libpng-1.4.0 - GR-P */ |
|
1264 /* libpng typedefs for types in zlib. If zlib changes |
|
1265 * or another compression library is used, then change these. |
|
1266 * Eliminates need to change all the source files. |
|
1267 */ |
|
1268 typedef charf * png_zcharp; |
|
1269 typedef charf * FAR * png_zcharpp; |
|
1270 typedef z_stream FAR * png_zstreamp; |
|
1271 #endif /* (PNG_1_0_X) || defined(PNG_1_2_X) */ |
|
1272 |
|
1273 /* |
|
1274 * Define PNG_BUILD_DLL if the module being built is a Windows |
|
1275 * LIBPNG DLL. |
|
1276 * |
|
1277 * Define PNG_USE_DLL if you want to *link* to the Windows LIBPNG DLL. |
|
1278 * It is equivalent to Microsoft predefined macro _DLL that is |
|
1279 * automatically defined when you compile using the share |
|
1280 * version of the CRT (C Run-Time library) |
|
1281 * |
|
1282 * The cygwin mods make this behavior a little different: |
|
1283 * Define PNG_BUILD_DLL if you are building a dll for use with cygwin |
|
1284 * Define PNG_STATIC if you are building a static library for use with cygwin, |
|
1285 * -or- if you are building an application that you want to link to the |
|
1286 * static library. |
|
1287 * PNG_USE_DLL is defined by default (no user action needed) unless one of |
|
1288 * the other flags is defined. |
|
1289 */ |
|
1290 |
|
1291 #if !defined(PNG_DLL) && (defined(PNG_BUILD_DLL) || defined(PNG_USE_DLL)) |
|
1292 # define PNG_DLL |
|
1293 #endif |
|
1294 /* If CYGWIN, then disallow GLOBAL ARRAYS unless building a static lib. |
|
1295 * When building a static lib, default to no GLOBAL ARRAYS, but allow |
|
1296 * command-line override |
|
1297 */ |
|
1298 #if defined(__CYGWIN__) |
|
1299 # if !defined(PNG_STATIC) |
|
1300 # if defined(PNG_USE_GLOBAL_ARRAYS) |
|
1301 # undef PNG_USE_GLOBAL_ARRAYS |
|
1302 # endif |
|
1303 # if !defined(PNG_USE_LOCAL_ARRAYS) |
|
1304 # define PNG_USE_LOCAL_ARRAYS |
|
1305 # endif |
|
1306 # else |
|
1307 # if defined(PNG_USE_LOCAL_ARRAYS) || defined(PNG_NO_GLOBAL_ARRAYS) |
|
1308 # if defined(PNG_USE_GLOBAL_ARRAYS) |
|
1309 # undef PNG_USE_GLOBAL_ARRAYS |
|
1310 # endif |
|
1311 # endif |
|
1312 # endif |
|
1313 # if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) |
|
1314 # define PNG_USE_LOCAL_ARRAYS |
|
1315 # endif |
|
1316 #endif |
|
1317 |
|
1318 /* Do not use global arrays (helps with building DLL's) |
|
1319 * They are no longer used in libpng itself, since version 1.0.5c, |
|
1320 * but might be required for some pre-1.0.5c applications. |
|
1321 */ |
|
1322 #if !defined(PNG_USE_LOCAL_ARRAYS) && !defined(PNG_USE_GLOBAL_ARRAYS) |
|
1323 # if defined(PNG_NO_GLOBAL_ARRAYS) || \ |
|
1324 (defined(__GNUC__) && defined(PNG_DLL)) || defined(_MSC_VER) |
|
1325 # define PNG_USE_LOCAL_ARRAYS |
|
1326 # else |
|
1327 # define PNG_USE_GLOBAL_ARRAYS |
|
1328 # endif |
|
1329 #endif |
|
1330 |
|
1331 #if defined(__CYGWIN__) |
|
1332 # undef PNGAPI |
|
1333 # define PNGAPI __cdecl |
|
1334 # undef PNG_IMPEXP |
|
1335 # define PNG_IMPEXP |
|
1336 #endif |
|
1337 |
|
1338 /* If you define PNGAPI, e.g., with compiler option "-DPNGAPI=__stdcall", |
|
1339 * you may get warnings regarding the linkage of png_zalloc and png_zfree. |
|
1340 * Don't ignore those warnings; you must also reset the default calling |
|
1341 * convention in your compiler to match your PNGAPI, and you must build |
|
1342 * zlib and your applications the same way you build libpng. |
|
1343 */ |
|
1344 |
|
1345 #if defined(__MINGW32__) && !defined(PNG_MODULEDEF) |
|
1346 # ifndef PNG_NO_MODULEDEF |
|
1347 # define PNG_NO_MODULEDEF |
|
1348 # endif |
|
1349 #endif |
|
1350 |
|
1351 #if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) |
|
1352 # define PNG_IMPEXP |
|
1353 #endif |
|
1354 |
|
1355 #if defined(PNG_DLL) || defined(_DLL) || defined(__DLL__ ) || \ |
|
1356 (( defined(_Windows) || defined(_WINDOWS) || \ |
|
1357 defined(WIN32) || defined(_WIN32) || defined(__WIN32__) )) |
|
1358 |
|
1359 # ifndef PNGAPI |
|
1360 # if (defined(__GNUC__) && defined(__arm__)) || defined (__ARMCC__) |
|
1361 # define PNGAPI |
|
1362 # elif defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) || defined(__WINSCW__) |
|
1363 # define PNGAPI __cdecl |
|
1364 # else |
|
1365 # define PNGAPI _cdecl |
|
1366 # endif |
|
1367 # endif |
|
1368 |
|
1369 # if !defined(PNG_IMPEXP) && (!defined(PNG_DLL) || \ |
|
1370 0 /* WINCOMPILER_WITH_NO_SUPPORT_FOR_DECLIMPEXP */) |
|
1371 # define PNG_IMPEXP |
|
1372 # endif |
|
1373 |
|
1374 # if !defined(PNG_IMPEXP) |
|
1375 |
|
1376 # define PNG_EXPORT_TYPE1(type,symbol) PNG_IMPEXP type PNGAPI symbol |
|
1377 # define PNG_EXPORT_TYPE2(type,symbol) type PNG_IMPEXP PNGAPI symbol |
|
1378 |
|
1379 /* Borland/Microsoft */ |
|
1380 # if defined(_MSC_VER) || defined(__BORLANDC__) |
|
1381 # if (_MSC_VER >= 800) || (__BORLANDC__ >= 0x500) |
|
1382 # define PNG_EXPORT PNG_EXPORT_TYPE1 |
|
1383 # else |
|
1384 # define PNG_EXPORT PNG_EXPORT_TYPE2 |
|
1385 # if defined(PNG_BUILD_DLL) |
|
1386 # define PNG_IMPEXP __export |
|
1387 # else |
|
1388 # define PNG_IMPEXP /*__import */ /* doesn't exist AFAIK in |
|
1389 VC++ */ |
|
1390 # endif /* Exists in Borland C++ for |
|
1391 C++ classes (== huge) */ |
|
1392 # endif |
|
1393 # endif |
|
1394 |
|
1395 # if !defined(PNG_IMPEXP) |
|
1396 # if defined(PNG_BUILD_DLL) |
|
1397 # define PNG_IMPEXP __declspec(dllexport) |
|
1398 # else |
|
1399 # define PNG_IMPEXP __declspec(dllimport) |
|
1400 # endif |
|
1401 # endif |
|
1402 # endif /* PNG_IMPEXP */ |
|
1403 #else /* !(DLL || non-cygwin WINDOWS) */ |
|
1404 # if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__) |
|
1405 # ifndef PNGAPI |
|
1406 # define PNGAPI _System |
|
1407 # endif |
|
1408 # else |
|
1409 # if 0 /* ... other platforms, with other meanings */ |
|
1410 # endif |
|
1411 # endif |
|
1412 |
|
1413 # if !defined(PNG_IMPEXP) |
|
1414 # include <qconfig.h> |
|
1415 # if defined(QT_VISIBILITY_AVAILABLE) |
|
1416 # define PNG_IMPEXP __attribute__((visibility("default"))) |
|
1417 # endif |
|
1418 # endif |
|
1419 |
|
1420 #endif |
|
1421 |
|
1422 #ifndef PNGAPI |
|
1423 # define PNGAPI |
|
1424 #endif |
|
1425 #ifndef PNG_IMPEXP |
|
1426 # define PNG_IMPEXP |
|
1427 #endif |
|
1428 |
|
1429 #ifdef PNG_BUILDSYMS |
|
1430 # ifndef PNG_EXPORT |
|
1431 # define PNG_EXPORT(type,symbol) PNG_FUNCTION_EXPORT symbol END |
|
1432 # endif |
|
1433 # ifdef PNG_USE_GLOBAL_ARRAYS |
|
1434 # ifndef PNG_EXPORT_VAR |
|
1435 # define PNG_EXPORT_VAR(type) PNG_DATA_EXPORT |
|
1436 # endif |
|
1437 # endif |
|
1438 #endif |
|
1439 |
|
1440 #ifndef PNG_EXPORT |
|
1441 # define PNG_EXPORT(type,symbol) PNG_IMPEXP type PNGAPI symbol |
|
1442 #endif |
|
1443 |
|
1444 #ifdef PNG_USE_GLOBAL_ARRAYS |
|
1445 # ifndef PNG_EXPORT_VAR |
|
1446 # define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type |
|
1447 # endif |
|
1448 #endif |
|
1449 |
|
1450 /* User may want to use these so they are not in PNG_INTERNAL. Any library |
|
1451 * functions that are passed far data must be model independent. |
|
1452 */ |
|
1453 |
|
1454 #ifndef PNG_ABORT |
|
1455 # define PNG_ABORT() abort() |
|
1456 #endif |
|
1457 |
|
1458 #ifdef PNG_SETJMP_SUPPORTED |
|
1459 # define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) |
|
1460 #else |
|
1461 # define png_jmpbuf(png_ptr) \ |
|
1462 (LIBPNG_WAS_COMPILED_WITH__PNG_SETJMP_NOT_SUPPORTED) |
|
1463 #endif |
|
1464 |
|
1465 #if defined(USE_FAR_KEYWORD) /* memory model independent fns */ |
|
1466 /* use this to make far-to-near assignments */ |
|
1467 # define CHECK 1 |
|
1468 # define NOCHECK 0 |
|
1469 # define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) |
|
1470 # define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) |
|
1471 # define png_snprintf _fsnprintf /* Added to v 1.2.19 */ |
|
1472 # define png_strlen _fstrlen |
|
1473 # define png_memcmp _fmemcmp /* SJT: added */ |
|
1474 # define png_memcpy _fmemcpy |
|
1475 # define png_memset _fmemset |
|
1476 #else /* use the usual functions */ |
|
1477 # define CVT_PTR(ptr) (ptr) |
|
1478 # define CVT_PTR_NOCHECK(ptr) (ptr) |
|
1479 # ifndef PNG_NO_SNPRINTF |
|
1480 # ifdef _MSC_VER |
|
1481 # define png_snprintf _snprintf /* Added to v 1.2.19 */ |
|
1482 # define png_snprintf2 _snprintf |
|
1483 # define png_snprintf6 _snprintf |
|
1484 # else |
|
1485 # define png_snprintf snprintf /* Added to v 1.2.19 */ |
|
1486 # define png_snprintf2 snprintf |
|
1487 # define png_snprintf6 snprintf |
|
1488 # endif |
|
1489 # else |
|
1490 /* You don't have or don't want to use snprintf(). Caution: Using |
|
1491 * sprintf instead of snprintf exposes your application to accidental |
|
1492 * or malevolent buffer overflows. If you don't have snprintf() |
|
1493 * as a general rule you should provide one (you can get one from |
|
1494 * Portable OpenSSH). */ |
|
1495 # define png_snprintf(s1,n,fmt,x1) sprintf(s1,fmt,x1) |
|
1496 # define png_snprintf2(s1,n,fmt,x1,x2) sprintf(s1,fmt,x1,x2) |
|
1497 # define png_snprintf6(s1,n,fmt,x1,x2,x3,x4,x5,x6) \ |
|
1498 sprintf(s1,fmt,x1,x2,x3,x4,x5,x6) |
|
1499 # endif |
|
1500 # define png_strlen strlen |
|
1501 # define png_memcmp memcmp /* SJT: added */ |
|
1502 # define png_memcpy memcpy |
|
1503 # define png_memset memset |
|
1504 #endif |
|
1505 /* End of memory model independent support */ |
|
1506 |
|
1507 /* Just a little check that someone hasn't tried to define something |
|
1508 * contradictory. |
|
1509 */ |
|
1510 #if (PNG_ZBUF_SIZE > 65536L) && defined(PNG_MAX_MALLOC_64K) |
|
1511 # undef PNG_ZBUF_SIZE |
|
1512 # define PNG_ZBUF_SIZE 65536L |
|
1513 #endif |
|
1514 |
|
1515 /* Added at libpng-1.2.8 */ |
|
1516 #endif /* PNG_VERSION_INFO_ONLY */ |
|
1517 |
|
1518 #endif /* PNGCONF_H */ |