basic.dfa 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. # basic.dfa
  2. # Build time configuration of libpng
  3. #
  4. # Author: John Bowler
  5. # Copyright: (c) John Bowler, 2024
  6. # Usage rights:
  7. # To the extent possible under law, the author has waived all copyright and
  8. # related or neighboring rights to this work. This work is published from:
  9. # United States.
  10. #
  11. # Build libpng with basic read and write support. This enables the lowest
  12. # level libpng read and write APIs - the "row-by-row" ones.
  13. #
  14. # Support is enabled only for those transformations that are observed to be
  15. # required by widely used apps or are in the v3 specification.
  16. #
  17. everything = off
  18. # The sequential read code is enabled here; the progressive code can be used
  19. # instead but there is no point enabling both.
  20. option READ on
  21. option SEQUENTIAL_READ on
  22. option EASY_ACCESS on
  23. option SET_USER_LIMITS on
  24. option INFO_IMAGE on
  25. option READ_16BIT on
  26. # Errors: these can be disabled but then there won't be any error messages
  27. # just failures and the error messages are really needed for apps:
  28. option WARNINGS on
  29. option ERROR_TEXT on
  30. option BENIGN_READ_ERRORS on
  31. # Required for many display programs such as web browsers:
  32. option PROGRESSIVE_READ on
  33. # Switch on the write code - this makes a minimalist encoder but with
  34. # interlace support turned on; otherwise png_read_png..png_write_png will
  35. # fail on an interlaced image.
  36. option WRITE on
  37. option WRITE_INTERLACING on
  38. option WRITE_16BIT on
  39. # Usages of the 'fixed' APIs are relatively rare but they do occur
  40. # one or the other for both the API and the internal math.
  41. #Fixed point:
  42. option FIXED_POINT on
  43. #Floating point:
  44. option FLOATING_POINT on
  45. option FLOATING_ARITHMETIC on
  46. # Basic error handling, IO and user memory support. The latter allows the
  47. # application program to provide its own implementations of 'malloc' and 'free'.
  48. option SETJMP on
  49. option STDIO on
  50. option USER_MEM on
  51. # Gamma handling: this needs to be on for the gamma handling
  52. option READ_GAMMA on
  53. # The supported chunks
  54. chunk bKGD on
  55. chunk cHRM on
  56. chunk eXIf on
  57. chunk gAMA on
  58. chunk iCCP on
  59. chunk iTXt on
  60. chunk pHYs on
  61. chunk sBIT on
  62. chunk sRGB on
  63. chunk tEXt on
  64. chunk tIME on
  65. chunk tRNS on
  66. chunk zTXt on
  67. # These don't seem to be used anywhere:
  68. # chunk pCAL
  69. # chunk sCAL
  70. # chunk sPLT
  71. # The rest of this is app dependent: none of these options are required for
  72. # read/write of the full range of PNG files and the normal chunk handling on
  73. # read.
  74. option WRITE_CUSTOMIZE_ZTXT_COMPRESSION on
  75. option WRITE_CUSTOMIZE_COMPRESSION on
  76. option READ_EXPAND on
  77. option READ_FILLER on
  78. option READ_GRAY_TO_RGB on
  79. option READ_INVERT on
  80. option READ_PACK on
  81. option READ_RGB_TO_GRAY on
  82. option READ_SCALE_16_TO_8 on
  83. option READ_SHIFT on
  84. option READ_STRIP_16_TO_8 on
  85. option READ_STRIP_ALPHA on
  86. option READ_SWAP on
  87. option CONVERT_tIME on
  88. # optipng
  89. option IO_STATE on
  90. option STORE_UNKNOWN_CHUNKS on
  91. option HANDLE_AS_UNKNOWN on
  92. # pngcrush
  93. option READ_USER_TRANSFORM on
  94. option WRITE_FLUSH on
  95. # pnmtopng
  96. chunk hIST on
  97. # cairo
  98. option WRITE_PACKSWAP on
  99. option WRITE_USER_TRANSFORM on
  100. # graphicsmagick
  101. option READ_USER_CHUNKS on
  102. # Qt5.15 qtgui (gentoo package split) Qt6.6 qtbase
  103. option READ_BGR on
  104. option WRITE_BGR on
  105. option READ_SWAP_ALPHA on
  106. option WRITE_SWAP_ALPHA on
  107. chunk oFFs on
  108. # ghostscript-gpl
  109. option WRITE_INVERT_ALPHA on
  110. option WRITE_INVERT on