]>
Commit | Line | Data |
---|---|---|
9c0d9ce3 DS |
1 | # scripts/pnglibconf.dfa - library build configuration control |
2 | # | |
3 | @/*- pnglibconf.dfn intermediate file | |
4 | @ * generated from scripts/pnglibconf.dfa | |
5 | @ */ | |
6 | # | |
7 | com pnglibconf.h - library build configuration | |
8 | com | |
72281370 | 9 | version |
9c0d9ce3 DS |
10 | com |
11 | com Copyright (c) 1998-2011 Glenn Randers-Pehrson | |
12 | com | |
13 | com This code is released under the libpng license. | |
14 | com For conditions of distribution and use, see the disclaimer | |
15 | com and license in png.h | |
16 | com | |
17 | ||
18 | file pnglibconf.h scripts/pnglibconf.dfa PNGLCONF_H | |
19 | ||
20 | # This file is preprocessed by scripts/options.awk and the | |
21 | # C compiler to generate 'pnglibconf.h' - a list of all the | |
22 | # configuration options. The file lists the various options | |
23 | # that can *only* be specified during the libpng build; | |
24 | # pnglibconf.h freezes the definitons selected for the specific | |
25 | # build. | |
26 | # | |
27 | # The syntax is detailed in scripts/options.awk, this is a summary | |
28 | # only: | |
29 | # | |
30 | # setting <name> [requires ...] [default] | |
31 | # #define PNG_<name> <value> /* value comes from current setting */ | |
32 | # option <name> [requires ...] [if ...] [enables ...] [disabled] | |
33 | # #define PNG_<name>_SUPPORTED if the requirements are met and | |
34 | # enable the other options listed | |
35 | # chunk <name> [requires ...] [disabled] | |
36 | # Enable chunk processing for the given ancillary chunk | |
37 | # | |
38 | # Note that the 'on' and 'off' keywords, while valid on both option | |
39 | # and chunk, should not be used in this file because they force the | |
40 | # relevant options on or off. | |
41 | ||
42 | #---------------------------------------------------------------------- | |
43 | ||
44 | # The following setting, option and chunk values can all be changed | |
45 | # while building libpng: | |
46 | # | |
47 | # setting: change 'setting' lines to fine tune library performance, | |
48 | # changes to the settings don't affect the libpng API functionally | |
49 | # | |
50 | # option: change 'option' lines to remove or add capabilities from | |
51 | # or to the library; options change the library API | |
52 | # | |
53 | # chunk: change 'chunk' lines to remove capabilities to process | |
54 | # optional ('ancillary') chunks. This does not prevent PNG | |
55 | # decoding but does change the libpng API because some chunks | |
56 | # will be ignored. | |
57 | # | |
58 | # There are three ways of disabling features, in no particular order: | |
59 | # | |
60 | # 1) Create 'pngusr.h', enter the required private build information | |
61 | # detailed below and #define PNG_NO_<option> for each option you | |
62 | # don't want in that file in that file. You can also turn on options | |
63 | # using PNG_<option>_SUPPORTED. When you have finished rerun | |
64 | # configure and rebuild pnglibconf.h file with -DPNG_USER_CONFIG: | |
65 | # | |
66 | # make clean | |
67 | # CPPFLAGS='-DPNG_USER_CONFIG' ./configure | |
68 | # make pnglibconf.h | |
69 | # | |
70 | # pngusr.h is only used during the creation of pnglibconf.h, but it | |
71 | # is safer to ensure that -DPNG_USER_CONFIG is specified throughout | |
72 | # the build by changing the CPPFLAGS passed to the initial ./configure | |
73 | # | |
74 | # 2) Add definitions of the settings you want to change to | |
75 | # CPPFLAGS; for example: | |
76 | # | |
77 | # -DPNG_DEFAULT_READ_MACROS=0 | |
78 | # | |
79 | # (This would change the default to *not* use read macros.) Be | |
80 | # very careful to change only settings that don't alter the API | |
81 | # because this approach bypasses the private build checking. You | |
82 | # can also change settings from pngpriv.h (read pngpriv.h) safely | |
83 | # without API changes. Do that in the same way. | |
84 | # | |
85 | # 3) Write a new '.dfa' file (say 'pngusr.dfa') and in this file | |
86 | # provide override values for setting entries and turn option or | |
87 | # chunk values explicitly 'on' or 'off': | |
88 | # | |
89 | # setting FOO default VALUE | |
90 | # option BAR [on|off] | |
91 | # | |
92 | # Then add this file to the options.awk command line (the *first* | |
93 | # one) after this file. The make macro DFA_XTRA is provided to make | |
94 | # this easier (set it like CPPFLAGS prior to running ./configure). | |
95 | # Look at the builds below contrib/pngminim for some extreme examples | |
96 | # of how this can be used. | |
97 | # | |
98 | # Don't edit this file unless you are contributing a patch to | |
99 | # libpng and need new or modified options/settings. | |
100 | #---------------------------------------------------------------------- | |
101 | ||
102 | # The following causes commented out #undef lines to be written to | |
103 | # pnglibconf.h; this can be stopped by logunsupported=0 in a later | |
104 | # file or on the command line (after pnglibconf.dfa) | |
105 | ||
106 | logunsupported = 1 | |
107 | ||
108 | # PNG_USER_CONFIG has to be defined on the compiler command line | |
109 | # to cause pngusr.h to be read while constructing pnglibconf.h | |
110 | # | |
111 | # If you create a private DLL you need to define the following | |
112 | # macros in the file 'pngusr.h' and set -DPNG_USER_CONFIG for | |
113 | # compilation (i.e. in CFLAGS.) | |
114 | # #define PNG_USER_PRIVATEBUILD \ | |
115 | # <Describes by whom and why this version of the DLL was built> | |
116 | # e.g. #define PNG_USER_PRIVATEBUILD "Build by MyCompany for xyz reasons." | |
117 | # #define PNG_USER_DLLFNAME_POSTFIX <two-letter postfix that serve to | |
118 | # distinguish your DLL from those of the official release. These | |
119 | # correspond to the trailing letters that come after the version | |
120 | # number and must match your private DLL name> | |
121 | # e.g. // private DLL "libpng13gx.dll" | |
122 | # #define PNG_USER_DLLFNAME_POSTFIX "gx" | |
123 | # | |
124 | # The following macros are also at your disposal if you want to complete the | |
125 | # DLL VERSIONINFO structure. | |
126 | # - PNG_USER_VERSIONINFO_COMMENTS | |
127 | # - PNG_USER_VERSIONINFO_COMPANYNAME | |
128 | # - PNG_USER_VERSIONINFO_LEGALTRADEMARKS | |
129 | ||
130 | @#ifdef PNG_USER_CONFIG | |
131 | @# include "pngusr.h" | |
132 | @#endif | |
133 | ||
134 | # This is a special fixup for the Watcom C compiler on Windows, which has | |
135 | # multiple procedure call standards. Unless PNG_API_RULE is set explicitly | |
136 | # (i.e. if it is not defined at this point) it will be forced to '2' here when | |
137 | # using Watcom. This indicates to the other header files that Watcom behaviour | |
138 | # is required where appropriate. | |
139 | ||
140 | @#ifdef __WATCOMC__ | |
141 | @# ifndef PNG_API_RULE | |
142 | @# define PNG_API_RULE 2 /* Use Watcom calling conventions */ | |
143 | @# endif | |
144 | @#endif | |
145 | ||
146 | # Note that PNG_USR_CONFIG only has an effect when building | |
147 | # pnglibconf.h | |
148 | ||
149 | setting USER_CONFIG | |
150 | setting USER_PRIVATEBUILD | |
151 | setting USER_DLLFNAME_POSTFIX | |
152 | setting USER_VERSIONINFO_COMMENTS | |
153 | setting USER_VERSIONINFO_COMPANYNAME | |
154 | setting USER_VERSIONINFO_LEGALTRADEMARKS | |
155 | ||
156 | # Record the 'API rule' used to select calling conventions on | |
157 | # those systems that support such things (see all the comments in | |
158 | # pngconf.h) | |
159 | # Changing this setting has a fundamental affect on the PNG ABI, | |
160 | # do not release shared libraries with this changed. | |
161 | ||
162 | setting API_RULE default 0 | |
163 | ||
164 | # Default to using the read macros | |
165 | ||
166 | setting DEFAULT_READ_MACROS default 1 | |
167 | ||
168 | # The alternative is to call functions to read PNG values, if | |
169 | # the functions are turned *off* the read macros must always | |
170 | # be enabled, so turning this off will actually force the | |
171 | # USE_READ_MACROS option on (see pngconf.h) | |
172 | ||
173 | option READ_INT_FUNCTIONS requires READ | |
174 | ||
175 | # The same for write, but these can only be switched off if | |
176 | # no writing is required at all - hence the use of an 'enables' | |
177 | # not a 'requires' below: | |
178 | ||
179 | option WRITE_INT_FUNCTIONS disabled | |
180 | option WRITE enables WRITE_INT_FUNCTIONS | |
181 | ||
182 | # Generic options - affect both read and write. | |
183 | ||
184 | option WARNINGS | |
185 | option BENIGN_ERRORS | |
186 | option MNG_FEATURES | |
187 | ||
188 | # Arithmetic options, the first is the big switch that chooses between internal | |
189 | # floating and fixed point arithmetic implementations - it does not affect any | |
190 | # APIs. The second two (the _POINT settings) switch off individual APIs. | |
191 | ||
192 | option FLOATING_ARITHMETIC | |
193 | option FLOATING_POINT enables ok_math | |
194 | option FIXED_POINT enables ok_math | |
195 | ||
196 | # Added at libpng version 1.4.0 | |
197 | ||
198 | option ERROR_TEXT | |
199 | ||
200 | # The following is always on (defined empty) | |
201 | ||
202 | setting CALLOC_SUPPORTED default | |
203 | ||
204 | # This protects us against compilers that run on a windowing system | |
205 | # and thus don't have or would rather us not use the stdio types: | |
206 | # stdin, stdout, and stderr. The only one currently used is stderr | |
207 | # in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will | |
208 | # prevent these from being compiled and used. #defining PNG_NO_STDIO | |
209 | # will also prevent these, plus will prevent the entire set of stdio | |
210 | # macros and functions (FILE *, printf, etc.) from being compiled and used, | |
211 | # unless (PNG_DEBUG > 0) has been #defined. | |
212 | ||
213 | option STDIO | |
214 | option CONSOLE_IO requires STDIO | |
215 | ||
216 | # Note: prior to 1.5.0 this option could not be disabled if STDIO | |
217 | # was enabled. Prior to 1.5.3 this option required STDIO | |
218 | ||
219 | option TIME_RFC1123 | |
220 | ||
221 | # PNG_SETJMP_NOT_SUPPORTED is an old equivalent for NO_SETJMP | |
222 | ||
223 | option SETJMP | |
224 | = NO_SETJMP SETJMP_NOT_SUPPORTED | |
225 | ||
226 | # For the moment this is disabled (no code support): | |
227 | ||
228 | option ERROR_NUMBERS disabled | |
229 | ||
230 | # If this is disabled it is not possible for apps to get the | |
231 | # values from the 'info' structure, this effectively removes | |
232 | # quite a lot of the READ API. | |
233 | ||
234 | option EASY_ACCESS | |
235 | ||
236 | # Added at libpng-1.2.0 | |
237 | ||
238 | option USER_MEM | |
239 | ||
240 | # Added at libpng-1.4.0 | |
241 | ||
242 | option IO_STATE | |
243 | ||
244 | # This is only for PowerPC big-endian and 680x0 systems | |
245 | # some testing, not enabled by default. | |
246 | # NO LONGER USED | |
247 | ||
248 | #option READ_BIG_ENDIAN disabled | |
249 | ||
250 | # Allow users to control limits on what the READ code will | |
251 | # read: | |
252 | ||
253 | # Added at libpng-1.2.43; adds limit fields to png_struct, | |
254 | # allows some usages of these fields | |
255 | ||
256 | option USER_LIMITS | |
257 | ||
258 | # Added at libpng-1.2.6; adds setting APIs, allows additional | |
259 | # usage of this field (UTSL) | |
260 | ||
261 | option SET_USER_LIMITS requires USER_LIMITS | |
262 | ||
263 | # Feature added at libpng-1.4.0, this flag added at 1.4.1 | |
264 | option SET_USER_LIMITS enables SET_CHUNK_CACHE_LIMIT | |
265 | # Feature added at libpng-1.4.1, this flag added at 1.4.1 | |
266 | ||
267 | option SET_USER_LIMITS enables SET_CHUNK_MALLOC_LIMIT | |
268 | ||
269 | # Added at libpng-1.0.16 and 1.2.6. To accept all valid PNGs no matter | |
270 | # how large, set these two limits to 0x7fffffff | |
271 | ||
272 | setting USER_WIDTH_MAX default 1000000 | |
273 | setting USER_HEIGHT_MAX default 1000000 | |
274 | ||
275 | # Added at libpng-1.2.43. To accept all valid PNGs no matter | |
276 | # how large, set these two limits to 0. | |
277 | ||
278 | setting USER_CHUNK_CACHE_MAX default 0 | |
279 | ||
280 | # Added at libpng-1.2.43 | |
281 | ||
282 | setting USER_CHUNK_MALLOC_MAX default 0 | |
283 | ||
284 | # All of the following options relate to code capabilities for | |
285 | # processing image data before creating a PNG or after reading one. | |
286 | # You can remove these capabilities safely and still be PNG | |
287 | # conformant, however the library that results is still non-standard. | |
288 | # See the comments above about how to change options and settings. | |
289 | ||
290 | # READ options | |
291 | ||
292 | option READ enables READ_INTERLACING | |
293 | ||
294 | # Disabling READ_16BIT does not disable reading 16-bit PNG files, but it | |
295 | # forces them to be chopped down to 8-bit, and disables any 16-bit | |
296 | # processing after that has happened. You need to be sure to enable | |
297 | # READ_SCALE_16_TO_8 or READ_STRIP_16_TO_8 when you disable READ_16BIT for | |
298 | # this to work properly. You should disable the other option if you need to | |
72281370 | 299 | # ensure a particular conversion (otherwise the app can chose.) |
9c0d9ce3 DS |
300 | |
301 | option READ_16BIT requires READ enables 16BIT | |
302 | ||
303 | option READ_QUANTIZE requires READ | |
304 | ||
305 | option READ_TRANSFORMS requires READ | |
306 | = NO_READ_TRANSFORMS READ_TRANSFORMS_NOT_SUPPORTED | |
307 | ||
308 | option READ_EXPAND requires READ_TRANSFORMS | |
309 | option READ_EXPAND_16 requires READ_TRANSFORMS READ_16BIT enables READ_EXPAND | |
310 | option READ_SHIFT requires READ_TRANSFORMS | |
311 | option READ_PACK requires READ_TRANSFORMS | |
312 | option READ_BGR requires READ_TRANSFORMS | |
313 | option READ_SWAP requires READ_TRANSFORMS READ_16BIT | |
314 | option READ_PACKSWAP requires READ_TRANSFORMS | |
315 | option READ_INVERT requires READ_TRANSFORMS | |
316 | option READ_BACKGROUND requires READ_TRANSFORMS enables READ_STRIP_ALPHA | |
317 | option READ_STRIP_16_TO_8 requires READ_TRANSFORMS | |
318 | option READ_SCALE_16_TO_8 requires READ_TRANSFORMS | |
319 | option READ_FILLER requires READ_TRANSFORMS | |
320 | option READ_GAMMA requires READ_TRANSFORMS enables READ_gAMA | |
321 | option READ_GRAY_TO_RGB requires READ_TRANSFORMS | |
322 | ||
323 | option READ_ALPHA_MODE requires READ_TRANSFORMS enables READ_GAMMA | |
324 | option READ_SWAP_ALPHA requires READ_TRANSFORMS | |
325 | option READ_INVERT_ALPHA requires READ_TRANSFORMS | |
326 | option READ_STRIP_ALPHA requires READ_TRANSFORMS | |
327 | option READ_USER_TRANSFORM requires READ_TRANSFORMS | |
328 | option READ_RGB_TO_GRAY requires READ_TRANSFORMS | |
329 | ||
330 | option PROGRESSIVE_READ requires READ | |
331 | option SEQUENTIAL_READ requires READ | |
332 | ||
333 | # You can define PNG_NO_PROGRESSIVE_READ if you don't do progressive reading. | |
334 | # This is not talking about interlacing capability! You'll still have | |
335 | # interlacing unless you turn off the following which is required | |
336 | # for PNG-compliant decoders. (In other words, do not do this - in | |
337 | # fact it can't be disabled from the command line!) | |
338 | #option READ_INTERLACING requires READ | |
339 | ||
340 | option READ_COMPOSITE_NODIV requires READ | |
341 | = NO_READ_COMPOSITE_NODIV NO_READ_COMPOSITED_NODIV | |
342 | ||
343 | # Inch conversions | |
344 | ||
345 | option INCH_CONVERSIONS | |
346 | = INCH_CONVERSIONS INCH_CONVERSIONS | |
347 | ||
348 | # API to build a grayscale palette | |
349 | ||
350 | option BUILD_GRAYSCALE_PALETTE | |
351 | ||
352 | # IN DEVELOPMENT | |
353 | # These are currently experimental features; define them if you want | |
354 | ||
355 | # NOTHING HERE | |
356 | ||
357 | # WRITE options | |
358 | ||
359 | option WRITE | |
360 | ||
361 | # Disabling WRITE_16BIT prevents 16-bit PNG files from being | |
362 | # generated. | |
363 | option WRITE_16BIT requires WRITE enables 16BIT | |
364 | ||
365 | option WRITE_TRANSFORMS requires WRITE | |
366 | = NO_WRITE_TRANSFORMS WRITE_TRANSFORMS_NOT_SUPPORTED | |
367 | ||
368 | option WRITE_SHIFT requires WRITE_TRANSFORMS | |
369 | option WRITE_PACK requires WRITE_TRANSFORMS | |
370 | option WRITE_BGR requires WRITE_TRANSFORMS | |
371 | option WRITE_SWAP requires WRITE_TRANSFORMS WRITE_16BIT | |
372 | option WRITE_PACKSWAP requires WRITE_TRANSFORMS | |
373 | option WRITE_INVERT requires WRITE_TRANSFORMS | |
374 | option WRITE_FILLER requires WRITE_TRANSFORMS | |
375 | option WRITE_SWAP_ALPHA requires WRITE_TRANSFORMS | |
376 | option WRITE_INVERT_ALPHA requires WRITE_TRANSFORMS | |
377 | option WRITE_USER_TRANSFORM requires WRITE_TRANSFORMS | |
378 | ||
379 | # This is not required for PNG-compliant encoders, but can cause | |
380 | # trouble if left undefined | |
381 | ||
382 | option WRITE_INTERLACING requires WRITE | |
383 | ||
384 | # The following depends, internally, on WEIGHT_SHIFT and COST_SHIFT | |
385 | # where are set below. | |
386 | ||
387 | option WRITE_WEIGHTED_FILTER requires WRITE | |
388 | ||
389 | option WRITE_FLUSH requires WRITE | |
390 | ||
391 | # Note: these can be turned off explicitly if not required by the | |
392 | # apps implementing the user transforms | |
393 | option USER_TRANSFORM_PTR if READ_USER_TRANSFORM WRITE_USER_TRANSFORM | |
394 | option USER_TRANSFORM_INFO if READ_USER_TRANSFORM WRITE_USER_TRANSFORM | |
395 | ||
396 | # This enables API to set compression parameters for compressing | |
397 | # non-IDAT chunks (zTXt, iTXt, iCCP, and unknown chunks). This feature | |
398 | # was added at libpng-1.5.3. | |
399 | option WRITE_CUSTOMIZE_ZTXT_COMPRESSION requires WRITE | |
400 | ||
401 | # Any chunks you are not interested in, you can undef here. The | |
402 | # ones that allocate memory may be expecially important (hIST, | |
403 | # tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info | |
404 | # a bit smaller. | |
405 | ||
406 | # The size of the png_text structure changed in libpng-1.0.6 when | |
407 | # iTXt support was added. iTXt support was turned off by default through | |
408 | # libpng-1.2.x, to support old apps that malloc the png_text structure | |
409 | # instead of calling png_set_text() and letting libpng malloc it. It | |
410 | # was turned on by default in libpng-1.4.0. | |
411 | ||
412 | option READ_ANCILLARY_CHUNKS requires READ | |
413 | # PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED is deprecated. | |
414 | = NO_READ_ANCILLARY_CHUNKS READ_ANCILLARY_CHUNKS_NOT_SUPPORTED | |
415 | ||
416 | option WRITE_ANCILLARY_CHUNKS requires WRITE | |
417 | # PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED is deprecated. | |
418 | = NO_WRITE_ANCILLARY_CHUNKS WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED | |
419 | ||
420 | # These options disable *all* the text chunks if turned off | |
421 | ||
422 | option READ_TEXT requires READ_ANCILLARY_CHUNKS enables TEXT | |
423 | option WRITE_TEXT requires WRITE_ANCILLARY_CHUNKS enables TEXT | |
424 | ||
425 | # Moved to pnglibconf.h at libpng-1.5.0 | |
426 | # Feature support: in 1.4 this was in pngconf.h, but the following | |
427 | # features have no affect on the libpng API. Add library | |
428 | # only features to the end of this list. Add features that | |
429 | # affect the API above. (Note: the list of chunks follows | |
430 | # the library-only settings.) | |
431 | # | |
432 | # BUILD TIME ONLY OPTIONS | |
433 | # These options do not affect the API but rather alter how the | |
434 | # API is implemented, they get recorded in pnglibconf.h, but | |
435 | # can't be changed by the application. | |
436 | ||
437 | # Check the correctness of cHRM chunks | |
438 | ||
439 | option CHECK_cHRM requires cHRM | |
440 | ||
441 | # | |
442 | # Artificially align memory - the code typically aligns to 8 byte | |
443 | # boundaries if this is switched on, it's a small waste of space | |
444 | # but can help (in theory) on some architectures. Only affects | |
445 | # internal structures. Added at libpng 1.4.0 | |
446 | ||
447 | option ALIGN_MEMORY | |
448 | ||
449 | # Buggy compilers (e.g., gcc 2.7.2.2) need PNG_NO_POINTER_INDEXING | |
450 | # See png[wr]util.c, normally this should always be *on* | |
451 | ||
452 | option POINTER_INDEXING | |
453 | ||
454 | # Other defines for things like memory and the like can go here. | |
455 | ||
456 | # BUILD TIME SETTINGS | |
457 | # Like build time options these do not affect the API, but they | |
458 | # may be useful to applications because they record details of | |
459 | # how the API will behave particularly with regard to overall | |
460 | # accuracy. | |
461 | ||
462 | # This controls how fine the quantizing gets. As this allocates | |
463 | # a largish chunk of memory (32K), those who are not as concerned | |
464 | # with quantizing quality can decrease some or all of these. | |
465 | ||
466 | setting QUANTIZE_RED_BITS default 5 | |
467 | setting QUANTIZE_GREEN_BITS default 5 | |
468 | setting QUANTIZE_BLUE_BITS default 5 | |
469 | ||
470 | # This controls how fine the gamma correction becomes when you | |
471 | # are only interested in 8 bits anyway. Increasing this value | |
472 | # results in more memory being used, and more pow() functions | |
473 | # being called to fill in the gamma tables. Don't set this value | |
474 | # less then 8, and even that may not work (I haven't tested it). | |
475 | ||
476 | setting MAX_GAMMA_8 default 11 | |
477 | ||
478 | # This controls how much a difference in gamma we can tolerate before | |
479 | # we actually start doing gamma conversion, it's a fixed point value, | |
480 | # so the default below is 0.05, meaning libpng ignores corrections in | |
481 | # the range 0.95 to 1.05 | |
482 | ||
483 | setting GAMMA_THRESHOLD_FIXED default 5000 | |
484 | ||
485 | # Scaling factor for filter heuristic weighting calculations | |
486 | ||
487 | setting WEIGHT_SHIFT default 8 | |
488 | setting COST_SHIFT default 3 | |
489 | ||
490 | # Precision to use when converting a floating point value to a PNG | |
491 | # extension format string in an sCAL chunk (only relevant if the | |
492 | # floating point API is enabled) | |
493 | ||
494 | setting sCAL_PRECISION default 5 | |
495 | ||
496 | # This is the size of the compression buffer, and thus the size of | |
497 | # an IDAT chunk. Make this whatever size you feel is best for your | |
498 | # machine. One of these will be allocated per png_struct. When this | |
499 | # is full, it writes the data to the disk, and does some other | |
500 | # calculations. Making this an extremely small size may slow | |
501 | # the library down, but you may want to experiment to determine | |
502 | # where it becomes significant, if you are concerned with memory | |
503 | # usage. Note that zlib allocates at least 32Kb also. For readers, | |
504 | # this describes the size of the buffer available to read the data in. | |
505 | # Unless this gets smaller than the size of a row (compressed), | |
506 | # it should not make much difference how big this is. | |
507 | ||
508 | setting ZBUF_SIZE default 8192 | |
509 | ||
510 | # Ancillary chunks | |
511 | chunk bKGD | |
512 | chunk cHRM | |
513 | chunk gAMA | |
514 | chunk hIST | |
515 | chunk iCCP | |
516 | chunk iTXt | |
517 | chunk oFFs | |
518 | chunk pCAL | |
519 | chunk sCAL | |
520 | chunk pHYs | |
521 | chunk sBIT | |
522 | chunk sPLT | |
523 | chunk sRGB | |
524 | chunk tEXt requires TEXT | |
525 | chunk tIME | |
526 | chunk tRNS | |
527 | chunk zTXt | |
528 | ||
529 | # This only affects support of the optional PLTE chunk in RGB and RGBA | |
530 | # images. Notice that READ_ANCILLARY_CHUNKS therefore disables part | |
531 | # of the regular chunk reading too. | |
532 | ||
533 | option READ_OPT_PLTE requires READ_ANCILLARY_CHUNKS | |
534 | ||
535 | option READ_UNKNOWN_CHUNKS requires READ | |
536 | option READ_UNKNOWN_CHUNKS enables UNKNOWN_CHUNKS READ_USER_CHUNKS | |
537 | option READ_USER_CHUNKS requires READ enables USER_CHUNKS | |
538 | ||
539 | option CONVERT_tIME requires WRITE_ANCILLARY_CHUNKS | |
540 | # The "tm" structure is not supported on WindowsCE | |
541 | ||
542 | @#ifdef _WIN32_WCE | |
543 | @# define PNG_NO_CONVERT_tIME | |
544 | @#endif | |
545 | ||
546 | option WRITE_FILTER requires WRITE | |
547 | ||
548 | option WRITE_UNKNOWN_CHUNKS requires WRITE | |
549 | ||
550 | option HANDLE_AS_UNKNOWN | |
551 | ||
552 | option SAVE_INT_32 requires WRITE | |
553 | ||
554 | # png_save_int_32 is required by the ancillary chunks oFFs and pCAL | |
555 | ||
556 | # added at libpng-1.5.4 | |
557 | ||
558 | option WRITE_OPTIMIZE_CMF requires WRITE | |
559 | ||
560 | option READ_COMPRESSED_TEXT disabled | |
561 | option READ_iCCP enables READ_COMPRESSED_TEXT | |
562 | option READ_iTXt enables READ_COMPRESSED_TEXT | |
563 | option READ_zTXt enables READ_COMPRESSED_TEXT | |
564 | option READ_COMPRESSED_TEXT enables READ_TEXT | |
565 | ||
566 | option WRITE_oFFs enables SAVE_INT_32 | |
567 | option WRITE_pCAL enables SAVE_INT_32 | |
568 | ||
569 | option WRITE_COMPRESSED_TEXT disabled | |
570 | option WRITE_iCCP enables WRITE_COMPRESSED_TEXT | |
571 | option WRITE_iTXt enables WRITE_COMPRESSED_TEXT | |
572 | option WRITE_zTXt enables WRITE_COMPRESSED_TEXT | |
573 | option WRITE_COMPRESSED_TEXT enables WRITE_TEXT | |
574 | ||
575 | # Turn this off to disable png_read_png() and png_write_png() and | |
576 | # leave the row_pointers member out of the info structure. | |
577 | ||
578 | option INFO_IMAGE |