| # basic.dfa |
| # Build time configuration of libpng |
| # |
| # Author: John Bowler |
| # Copyright: (c) John Bowler, 2024 |
| # Usage rights: |
| # To the extent possible under law, the author has waived all copyright and |
| # related or neighboring rights to this work. This work is published from: |
| # United States. |
| # |
| # Build libpng with basic read and write support. This enables the lowest |
| # level libpng read and write APIs - the "row-by-row" ones. |
| # |
| # Support is enabled only for those transformations that are observed to be |
| # required by widely used apps or are in the v3 specification. |
| # |
| |
| everything = off |
| |
| # The sequential read code is enabled here; the progressive code can be used |
| # instead but there is no point enabling both. |
| |
| option READ on |
| option SEQUENTIAL_READ on |
| option EASY_ACCESS on |
| option SET_USER_LIMITS on |
| option INFO_IMAGE on |
| option READ_16BIT on |
| |
| # Errors: these can be disabled but then there won't be any error messages |
| # just failures and the error messages are really needed for apps: |
| option WARNINGS on |
| option ERROR_TEXT on |
| option BENIGN_READ_ERRORS on |
| |
| # Required for many display programs such as web browsers: |
| option PROGRESSIVE_READ on |
| |
| # Switch on the write code - this makes a minimalist encoder but with |
| # interlace support turned on; otherwise png_read_png..png_write_png will |
| # fail on an interlaced image. |
| option WRITE on |
| option WRITE_INTERLACING on |
| option WRITE_16BIT on |
| |
| # Usages of the 'fixed' APIs are relatively rare but they do occur |
| # one or the other for both the API and the internal math. |
| |
| #Fixed point: |
| option FIXED_POINT on |
| |
| #Floating point: |
| option FLOATING_POINT on |
| option FLOATING_ARITHMETIC on |
| |
| # Basic error handling, IO and user memory support. The latter allows the |
| # application program to provide its own implementations of 'malloc' and 'free'. |
| option SETJMP on |
| option STDIO on |
| option USER_MEM on |
| |
| # Gamma handling: this needs to be on for the gamma handling |
| option READ_GAMMA on |
| |
| # The supported chunks |
| chunk bKGD on |
| chunk cHRM on |
| chunk eXIf on |
| chunk gAMA on |
| chunk iCCP on |
| chunk iTXt on |
| chunk pHYs on |
| chunk sBIT on |
| chunk sRGB on |
| chunk tEXt on |
| chunk tIME on |
| chunk tRNS on |
| chunk zTXt on |
| |
| # These don't seem to be used anywhere: |
| # chunk pCAL |
| # chunk sCAL |
| # chunk sPLT |
| |
| # The rest of this is app dependent: none of these options are required for |
| # read/write of the full range of PNG files and the normal chunk handling on |
| # read. |
| option WRITE_CUSTOMIZE_ZTXT_COMPRESSION on |
| option WRITE_CUSTOMIZE_COMPRESSION on |
| |
| option READ_EXPAND on |
| option READ_FILLER on |
| option READ_GRAY_TO_RGB on |
| option READ_INVERT on |
| option READ_PACK on |
| option READ_RGB_TO_GRAY on |
| option READ_SCALE_16_TO_8 on |
| option READ_SHIFT on |
| option READ_STRIP_16_TO_8 on |
| option READ_STRIP_ALPHA on |
| option READ_SWAP on |
| |
| option CONVERT_tIME on |
| |
| # optipng |
| option IO_STATE on |
| option STORE_UNKNOWN_CHUNKS on |
| option HANDLE_AS_UNKNOWN on |
| |
| # pngcrush |
| option READ_USER_TRANSFORM on |
| option WRITE_FLUSH on |
| |
| # pnmtopng |
| chunk hIST on |
| |
| # cairo |
| option WRITE_PACKSWAP on |
| option WRITE_USER_TRANSFORM on |
| |
| # graphicsmagick |
| option READ_USER_CHUNKS on |
| |
| # Qt5.15 qtgui (gentoo package split) Qt6.6 qtbase |
| option READ_BGR on |
| option WRITE_BGR on |
| option READ_SWAP_ALPHA on |
| option WRITE_SWAP_ALPHA on |
| chunk oFFs on |
| |
| # ghostscript-gpl |
| option WRITE_INVERT_ALPHA on |
| option WRITE_INVERT on |