laag-libpng 1.6.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (452) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +133 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libpng/extconf.rb +13 -0
  6. data/laag-libpng.gemspec +20 -0
  7. data/lib/laag/libpng.rb +29 -0
  8. data/vendor/git.code.sf.net/p/libpng/code/ANNOUNCE +35 -0
  9. data/vendor/git.code.sf.net/p/libpng/code/CHANGES +6051 -0
  10. data/vendor/git.code.sf.net/p/libpng/code/CMakeLists.txt +945 -0
  11. data/vendor/git.code.sf.net/p/libpng/code/INSTALL +465 -0
  12. data/vendor/git.code.sf.net/p/libpng/code/LICENSE +133 -0
  13. data/vendor/git.code.sf.net/p/libpng/code/Makefile.am +392 -0
  14. data/vendor/git.code.sf.net/p/libpng/code/README +222 -0
  15. data/vendor/git.code.sf.net/p/libpng/code/TODO +30 -0
  16. data/vendor/git.code.sf.net/p/libpng/code/arm/arm_init.c +135 -0
  17. data/vendor/git.code.sf.net/p/libpng/code/arm/filter_neon.S +253 -0
  18. data/vendor/git.code.sf.net/p/libpng/code/arm/filter_neon_intrinsics.c +387 -0
  19. data/vendor/git.code.sf.net/p/libpng/code/autogen.sh +225 -0
  20. data/vendor/git.code.sf.net/p/libpng/code/configure.ac +533 -0
  21. data/vendor/git.code.sf.net/p/libpng/code/contrib/README.txt +5 -0
  22. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/README +83 -0
  23. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/android-ndk.c +39 -0
  24. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/linux-auxv.c +120 -0
  25. data/vendor/git.code.sf.net/p/libpng/code/contrib/arm-neon/linux.c +161 -0
  26. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/README +49 -0
  27. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/pngcp.dfa +57 -0
  28. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/read.dfa +58 -0
  29. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/s_read.dfa +35 -0
  30. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/s_write.dfa +33 -0
  31. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/simple.dfa +36 -0
  32. data/vendor/git.code.sf.net/p/libpng/code/contrib/conftest/write.dfa +45 -0
  33. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/README.txt +24 -0
  34. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/iccfrompng.c +185 -0
  35. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/pngpixel.c +371 -0
  36. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/pngtopng.c +98 -0
  37. data/vendor/git.code.sf.net/p/libpng/code/contrib/examples/simpleover.c +648 -0
  38. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/COPYING +340 -0
  39. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/LICENSE +50 -0
  40. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.mingw32 +131 -0
  41. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.sgi +105 -0
  42. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.unx +134 -0
  43. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/Makefile.w32 +114 -0
  44. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/README +186 -0
  45. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/makevms.com +132 -0
  46. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng.c +323 -0
  47. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng.h +88 -0
  48. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng2.c +521 -0
  49. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readpng2.h +116 -0
  50. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/readppm.c +188 -0
  51. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng-win.c +735 -0
  52. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng-x.c +911 -0
  53. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng2-win.c +1261 -0
  54. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/rpng2-x.c +2143 -0
  55. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/toucan.png +0 -0
  56. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/wpng.c +865 -0
  57. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/writepng.c +401 -0
  58. data/vendor/git.code.sf.net/p/libpng/code/contrib/gregbook/writepng.h +133 -0
  59. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/fakepng.c +65 -0
  60. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/gentests.sh +102 -0
  61. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/makepng.c +1941 -0
  62. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngimage.c +1712 -0
  63. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngstest-errors.h +165 -0
  64. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngstest.c +3829 -0
  65. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngunknown.c +1294 -0
  66. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/pngvalid.c +12230 -0
  67. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/readpng.c +115 -0
  68. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/tarith.c +999 -0
  69. data/vendor/git.code.sf.net/p/libpng/code/contrib/libtests/timepng.c +608 -0
  70. data/vendor/git.code.sf.net/p/libpng/code/contrib/mips-msa/README +83 -0
  71. data/vendor/git.code.sf.net/p/libpng/code/contrib/mips-msa/linux.c +64 -0
  72. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/Dockerfile +24 -0
  73. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/README.txt +37 -0
  74. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/build.sh +50 -0
  75. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/libpng_read_fuzzer.cc +180 -0
  76. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/libpng_read_fuzzer.options +2 -0
  77. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/newcc +190 -0
  78. data/vendor/git.code.sf.net/p/libpng/code/contrib/oss-fuzz/png.dict +39 -0
  79. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/README +5 -0
  80. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/README +10 -0
  81. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/makefile +151 -0
  82. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/pngusr.dfa +40 -0
  83. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/decoder/pngusr.h +23 -0
  84. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/README +10 -0
  85. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/makefile +150 -0
  86. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/pngusr.dfa +39 -0
  87. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/encoder/pngusr.h +23 -0
  88. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/README +15 -0
  89. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/makefile +166 -0
  90. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/pngusr.dfa +40 -0
  91. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminim/preader/pngusr.h +23 -0
  92. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/README +153 -0
  93. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/makefile.std +66 -0
  94. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/makefile.tc3 +38 -0
  95. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/makevms.com +92 -0
  96. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/png2pnm.bat +41 -0
  97. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/png2pnm.c +460 -0
  98. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/png2pnm.sh +42 -0
  99. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pngminus.bat +4 -0
  100. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pngminus.sh +5 -0
  101. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pnm2png.bat +41 -0
  102. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pnm2png.c +638 -0
  103. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngminus/pnm2png.sh +42 -0
  104. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/README +105 -0
  105. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g01.png +0 -0
  106. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g02.png +0 -0
  107. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g04.png +0 -0
  108. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g08.png +0 -0
  109. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn0g16.png +0 -0
  110. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn2c08.png +0 -0
  111. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn2c16.png +0 -0
  112. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p01.png +0 -0
  113. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p02.png +0 -0
  114. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p04.png +0 -0
  115. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn3p08.png +0 -0
  116. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn4a08.png +0 -0
  117. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn4a16.png +0 -0
  118. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn6a08.png +0 -0
  119. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/basn6a16.png +0 -0
  120. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn0g01.png +0 -0
  121. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn0g02.png +0 -0
  122. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn0g04.png +0 -0
  123. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn2c16.png +0 -0
  124. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbbn3p08.png +0 -0
  125. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbgn2c16.png +0 -0
  126. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbgn3p08.png +0 -0
  127. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbrn2c08.png +0 -0
  128. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbwn0g16.png +0 -0
  129. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbwn3p08.png +0 -0
  130. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftbyn3p08.png +0 -0
  131. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp0n0g08.png +0 -0
  132. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp0n2c08.png +0 -0
  133. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp0n3p08.png +0 -0
  134. data/vendor/git.code.sf.net/p/libpng/code/contrib/pngsuite/ftp1n3p08.png +0 -0
  135. data/vendor/git.code.sf.net/p/libpng/code/contrib/powerpc-vsx/README +81 -0
  136. data/vendor/git.code.sf.net/p/libpng/code/contrib/powerpc-vsx/linux.c +57 -0
  137. data/vendor/git.code.sf.net/p/libpng/code/contrib/powerpc-vsx/linux_aux.c +36 -0
  138. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/bad_iCCP.png +0 -0
  139. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/badadler.png +0 -0
  140. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/badcrc.png +0 -0
  141. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/empty_ancillary_chunks.png +0 -0
  142. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_IDAT.png +0 -0
  143. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_bKGD_chunk.png +0 -0
  144. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_cHRM_chunk.png +0 -0
  145. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_eXIf_chunk.png +0 -0
  146. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_gAMA_chunk.png +0 -0
  147. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_hIST_chunk.png +0 -0
  148. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_iCCP_chunk.png +0 -0
  149. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_iTXt_chunk.png +0 -0
  150. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_juNK_unsafe_to_copy.png +0 -0
  151. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_juNk_safe_to_copy.png +0 -0
  152. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_pCAL_chunk.png +0 -0
  153. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_pHYs_chunk.png +0 -0
  154. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sCAL_chunk.png +0 -0
  155. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sPLT_chunk.png +0 -0
  156. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sRGB_chunk.png +0 -0
  157. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_sTER_chunk.png +0 -0
  158. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_tEXt_chunk.png +0 -0
  159. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_tIME_chunk.png +0 -0
  160. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/crashers/huge_zTXt_chunk.png +0 -0
  161. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-1.8-tRNS.png +0 -0
  162. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-1.8.png +0 -0
  163. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-linear-tRNS.png +0 -0
  164. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-linear.png +0 -0
  165. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-sRGB-tRNS.png +0 -0
  166. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-sRGB.png +0 -0
  167. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1-tRNS.png +0 -0
  168. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-1.png +0 -0
  169. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-1.8-tRNS.png +0 -0
  170. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-1.8.png +0 -0
  171. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-linear-tRNS.png +0 -0
  172. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-linear.png +0 -0
  173. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-sRGB-tRNS.png +0 -0
  174. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-sRGB.png +0 -0
  175. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16-tRNS.png +0 -0
  176. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-16.png +0 -0
  177. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-1.8-tRNS.png +0 -0
  178. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-1.8.png +0 -0
  179. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-linear-tRNS.png +0 -0
  180. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-linear.png +0 -0
  181. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-sRGB-tRNS.png +0 -0
  182. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-sRGB.png +0 -0
  183. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2-tRNS.png +0 -0
  184. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-2.png +0 -0
  185. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-1.8-tRNS.png +0 -0
  186. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-1.8.png +0 -0
  187. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-linear-tRNS.png +0 -0
  188. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-linear.png +0 -0
  189. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-sRGB-tRNS.png +0 -0
  190. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-sRGB.png +0 -0
  191. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4-tRNS.png +0 -0
  192. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-4.png +0 -0
  193. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-1.8-tRNS.png +0 -0
  194. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-1.8.png +0 -0
  195. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-linear-tRNS.png +0 -0
  196. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-linear.png +0 -0
  197. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-sRGB-tRNS.png +0 -0
  198. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-sRGB.png +0 -0
  199. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8-tRNS.png +0 -0
  200. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-8.png +0 -0
  201. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16-1.8.png +0 -0
  202. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16-linear.png +0 -0
  203. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16-sRGB.png +0 -0
  204. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-16.png +0 -0
  205. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8-1.8.png +0 -0
  206. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8-linear.png +0 -0
  207. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8-sRGB.png +0 -0
  208. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/gray-alpha-8.png +0 -0
  209. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/makepngs.sh +94 -0
  210. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-1.8-tRNS.png +0 -0
  211. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-1.8.png +0 -0
  212. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-linear-tRNS.png +0 -0
  213. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-linear.png +0 -0
  214. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-sRGB-tRNS.png +0 -0
  215. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-sRGB.png +0 -0
  216. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1-tRNS.png +0 -0
  217. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-1.png +0 -0
  218. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-1.8-tRNS.png +0 -0
  219. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-1.8.png +0 -0
  220. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-linear-tRNS.png +0 -0
  221. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-linear.png +0 -0
  222. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-sRGB-tRNS.png +0 -0
  223. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-sRGB.png +0 -0
  224. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2-tRNS.png +0 -0
  225. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-2.png +0 -0
  226. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-1.8-tRNS.png +0 -0
  227. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-1.8.png +0 -0
  228. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-linear-tRNS.png +0 -0
  229. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-linear.png +0 -0
  230. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-sRGB-tRNS.png +0 -0
  231. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-sRGB.png +0 -0
  232. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4-tRNS.png +0 -0
  233. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-4.png +0 -0
  234. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-1.8-tRNS.png +0 -0
  235. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-1.8.png +0 -0
  236. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-linear-tRNS.png +0 -0
  237. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-linear.png +0 -0
  238. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-sRGB-tRNS.png +0 -0
  239. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-sRGB.png +0 -0
  240. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8-tRNS.png +0 -0
  241. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/palette-8.png +0 -0
  242. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-1.8-tRNS.png +0 -0
  243. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-1.8.png +0 -0
  244. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-linear-tRNS.png +0 -0
  245. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-linear.png +0 -0
  246. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-sRGB-tRNS.png +0 -0
  247. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-sRGB.png +0 -0
  248. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16-tRNS.png +0 -0
  249. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-16.png +0 -0
  250. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-1.8-tRNS.png +0 -0
  251. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-1.8.png +0 -0
  252. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-linear-tRNS.png +0 -0
  253. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-linear.png +0 -0
  254. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-sRGB-tRNS.png +0 -0
  255. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-sRGB.png +0 -0
  256. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8-tRNS.png +0 -0
  257. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-8.png +0 -0
  258. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16-1.8.png +0 -0
  259. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16-linear.png +0 -0
  260. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16-sRGB.png +0 -0
  261. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-16.png +0 -0
  262. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8-1.8.png +0 -0
  263. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8-linear.png +0 -0
  264. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8-sRGB.png +0 -0
  265. data/vendor/git.code.sf.net/p/libpng/code/contrib/testpngs/rgb-alpha-8.png +0 -0
  266. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/README.txt +27 -0
  267. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/checksum-icc.c +102 -0
  268. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/chkfmt +144 -0
  269. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/cvtcolor.c +188 -0
  270. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/genpng.c +881 -0
  271. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/intgamma.sh +110 -0
  272. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/makesRGB.c +430 -0
  273. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/png-fix-itxt.c +164 -0
  274. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/pngcp.c +2453 -0
  275. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/pngfix.c +4049 -0
  276. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/reindent +25 -0
  277. data/vendor/git.code.sf.net/p/libpng/code/contrib/tools/sRGB.h +48 -0
  278. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/PngFile.c +455 -0
  279. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/PngFile.h +30 -0
  280. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/README.txt +61 -0
  281. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.c +978 -0
  282. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.dsp +147 -0
  283. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.dsw +29 -0
  284. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.ico +0 -0
  285. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.png +0 -0
  286. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/VisualPng.rc +152 -0
  287. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/cexcept.h +248 -0
  288. data/vendor/git.code.sf.net/p/libpng/code/contrib/visupng/resource.h +23 -0
  289. data/vendor/git.code.sf.net/p/libpng/code/example.c +1066 -0
  290. data/vendor/git.code.sf.net/p/libpng/code/intel/filter_sse2_intrinsics.c +406 -0
  291. data/vendor/git.code.sf.net/p/libpng/code/intel/intel_init.c +53 -0
  292. data/vendor/git.code.sf.net/p/libpng/code/libpng-config.in +127 -0
  293. data/vendor/git.code.sf.net/p/libpng/code/libpng-manual.txt +5464 -0
  294. data/vendor/git.code.sf.net/p/libpng/code/libpng.3 +6249 -0
  295. data/vendor/git.code.sf.net/p/libpng/code/libpng.pc.in +12 -0
  296. data/vendor/git.code.sf.net/p/libpng/code/libpngpf.3 +18 -0
  297. data/vendor/git.code.sf.net/p/libpng/code/mips/filter_msa_intrinsics.c +807 -0
  298. data/vendor/git.code.sf.net/p/libpng/code/mips/mips_init.c +129 -0
  299. data/vendor/git.code.sf.net/p/libpng/code/png.5 +74 -0
  300. data/vendor/git.code.sf.net/p/libpng/code/png.c +4614 -0
  301. data/vendor/git.code.sf.net/p/libpng/code/png.h +3278 -0
  302. data/vendor/git.code.sf.net/p/libpng/code/pngbar.jpg +0 -0
  303. data/vendor/git.code.sf.net/p/libpng/code/pngbar.png +0 -0
  304. data/vendor/git.code.sf.net/p/libpng/code/pngconf.h +622 -0
  305. data/vendor/git.code.sf.net/p/libpng/code/pngdebug.h +153 -0
  306. data/vendor/git.code.sf.net/p/libpng/code/pngerror.c +963 -0
  307. data/vendor/git.code.sf.net/p/libpng/code/pngget.c +1248 -0
  308. data/vendor/git.code.sf.net/p/libpng/code/pnginfo.h +267 -0
  309. data/vendor/git.code.sf.net/p/libpng/code/pngmem.c +284 -0
  310. data/vendor/git.code.sf.net/p/libpng/code/pngnow.png +0 -0
  311. data/vendor/git.code.sf.net/p/libpng/code/pngpread.c +1096 -0
  312. data/vendor/git.code.sf.net/p/libpng/code/pngpriv.h +2120 -0
  313. data/vendor/git.code.sf.net/p/libpng/code/pngread.c +4219 -0
  314. data/vendor/git.code.sf.net/p/libpng/code/pngrio.c +120 -0
  315. data/vendor/git.code.sf.net/p/libpng/code/pngrtran.c +5010 -0
  316. data/vendor/git.code.sf.net/p/libpng/code/pngrutil.c +4661 -0
  317. data/vendor/git.code.sf.net/p/libpng/code/pngset.c +1802 -0
  318. data/vendor/git.code.sf.net/p/libpng/code/pngstruct.h +483 -0
  319. data/vendor/git.code.sf.net/p/libpng/code/pngtest.c +2156 -0
  320. data/vendor/git.code.sf.net/p/libpng/code/pngtest.png +0 -0
  321. data/vendor/git.code.sf.net/p/libpng/code/pngtrans.c +864 -0
  322. data/vendor/git.code.sf.net/p/libpng/code/pngusr.dfa +14 -0
  323. data/vendor/git.code.sf.net/p/libpng/code/pngwio.c +168 -0
  324. data/vendor/git.code.sf.net/p/libpng/code/pngwrite.c +2396 -0
  325. data/vendor/git.code.sf.net/p/libpng/code/pngwtran.c +576 -0
  326. data/vendor/git.code.sf.net/p/libpng/code/pngwutil.c +2784 -0
  327. data/vendor/git.code.sf.net/p/libpng/code/powerpc/filter_vsx_intrinsics.c +767 -0
  328. data/vendor/git.code.sf.net/p/libpng/code/powerpc/powerpc_init.c +125 -0
  329. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/libpng.tgt +383 -0
  330. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/libpng.wpj +112 -0
  331. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngconfig.mak +160 -0
  332. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngstest.tgt +219 -0
  333. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngtest.tgt +179 -0
  334. data/vendor/git.code.sf.net/p/libpng/code/projects/owatcom/pngvalid.tgt +210 -0
  335. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/PRJ0041.mak +21 -0
  336. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/README.txt +58 -0
  337. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/README_zlib.txt +44 -0
  338. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/libpng.sln +60 -0
  339. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/libpng.vcproj +419 -0
  340. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/pngtest.vcproj +267 -0
  341. data/vendor/git.code.sf.net/p/libpng/code/projects/visualc71/zlib.vcproj +391 -0
  342. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/README.txt +97 -0
  343. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/libpng/libpng.vcxproj +234 -0
  344. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pnglibconf/pnglibconf.vcxproj +61 -0
  345. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngstest/pngstest.vcxproj +219 -0
  346. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngtest/pngtest.vcxproj +220 -0
  347. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngunknown/pngunknown.vcxproj +219 -0
  348. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/pngvalid/pngvalid.vcxproj +219 -0
  349. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/vstudio.sln +109 -0
  350. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/zlib/zlib.vcxproj +175 -0
  351. data/vendor/git.code.sf.net/p/libpng/code/projects/vstudio/zlib.props +58 -0
  352. data/vendor/git.code.sf.net/p/libpng/code/scripts/README.txt +86 -0
  353. data/vendor/git.code.sf.net/p/libpng/code/scripts/SCOPTIONS.ppc +7 -0
  354. data/vendor/git.code.sf.net/p/libpng/code/scripts/checksym.awk +173 -0
  355. data/vendor/git.code.sf.net/p/libpng/code/scripts/def.c +29 -0
  356. data/vendor/git.code.sf.net/p/libpng/code/scripts/descrip.mms +52 -0
  357. data/vendor/git.code.sf.net/p/libpng/code/scripts/dfn.awk +203 -0
  358. data/vendor/git.code.sf.net/p/libpng/code/scripts/genchk.cmake.in +37 -0
  359. data/vendor/git.code.sf.net/p/libpng/code/scripts/genout.cmake.in +93 -0
  360. data/vendor/git.code.sf.net/p/libpng/code/scripts/gensrc.cmake.in +138 -0
  361. data/vendor/git.code.sf.net/p/libpng/code/scripts/intprefix.c +22 -0
  362. data/vendor/git.code.sf.net/p/libpng/code/scripts/libpng-config-body.in +96 -0
  363. data/vendor/git.code.sf.net/p/libpng/code/scripts/libpng-config-head.in +24 -0
  364. data/vendor/git.code.sf.net/p/libpng/code/scripts/libpng.pc.in +10 -0
  365. data/vendor/git.code.sf.net/p/libpng/code/scripts/macro.lst +3 -0
  366. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.32sunu +244 -0
  367. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.64sunu +244 -0
  368. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.acorn +57 -0
  369. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.aix +116 -0
  370. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.amiga +58 -0
  371. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.atari +71 -0
  372. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.bc32 +158 -0
  373. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.beos +222 -0
  374. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.bor +170 -0
  375. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.cegcc +116 -0
  376. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.darwin +225 -0
  377. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.dec +210 -0
  378. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.dj2 +72 -0
  379. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.freebsd +69 -0
  380. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.gcc +87 -0
  381. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.hp64 +231 -0
  382. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.hpgcc +234 -0
  383. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.hpux +229 -0
  384. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.ibmc +90 -0
  385. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.intel +115 -0
  386. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.knr +116 -0
  387. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.linux +247 -0
  388. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.linux-opt +265 -0
  389. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.mips +103 -0
  390. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.msc +100 -0
  391. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.msys +201 -0
  392. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.ne12bsd +56 -0
  393. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.netbsd +56 -0
  394. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.openbsd +88 -0
  395. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sco +226 -0
  396. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sggcc +236 -0
  397. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sgi +237 -0
  398. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.so9 +247 -0
  399. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.solaris +244 -0
  400. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.solaris-x86 +243 -0
  401. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.std +134 -0
  402. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.sunos +115 -0
  403. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.tc3 +100 -0
  404. data/vendor/git.code.sf.net/p/libpng/code/scripts/makefile.vcwin32 +113 -0
  405. data/vendor/git.code.sf.net/p/libpng/code/scripts/makevms.com +142 -0
  406. data/vendor/git.code.sf.net/p/libpng/code/scripts/options.awk +898 -0
  407. data/vendor/git.code.sf.net/p/libpng/code/scripts/pnglibconf.dfa +919 -0
  408. data/vendor/git.code.sf.net/p/libpng/code/scripts/pnglibconf.h.prebuilt +220 -0
  409. data/vendor/git.code.sf.net/p/libpng/code/scripts/pnglibconf.mak +55 -0
  410. data/vendor/git.code.sf.net/p/libpng/code/scripts/pngwin.rc +112 -0
  411. data/vendor/git.code.sf.net/p/libpng/code/scripts/prefix.c +24 -0
  412. data/vendor/git.code.sf.net/p/libpng/code/scripts/smakefile.ppc +34 -0
  413. data/vendor/git.code.sf.net/p/libpng/code/scripts/sym.c +15 -0
  414. data/vendor/git.code.sf.net/p/libpng/code/scripts/symbols.c +58 -0
  415. data/vendor/git.code.sf.net/p/libpng/code/scripts/symbols.def +256 -0
  416. data/vendor/git.code.sf.net/p/libpng/code/scripts/test.cmake.in +31 -0
  417. data/vendor/git.code.sf.net/p/libpng/code/scripts/vers.c +19 -0
  418. data/vendor/git.code.sf.net/p/libpng/code/tests/pngimage-full +2 -0
  419. data/vendor/git.code.sf.net/p/libpng/code/tests/pngimage-quick +2 -0
  420. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest +54 -0
  421. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-1.8 +2 -0
  422. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-1.8-alpha +2 -0
  423. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-linear +2 -0
  424. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-linear-alpha +2 -0
  425. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-none +2 -0
  426. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-none-alpha +2 -0
  427. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-sRGB +2 -0
  428. data/vendor/git.code.sf.net/p/libpng/code/tests/pngstest-sRGB-alpha +2 -0
  429. data/vendor/git.code.sf.net/p/libpng/code/tests/pngtest +2 -0
  430. data/vendor/git.code.sf.net/p/libpng/code/tests/pngtest-badpngs +13 -0
  431. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-IDAT +2 -0
  432. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-discard +2 -0
  433. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-if-safe +2 -0
  434. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-sAPI +2 -0
  435. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-sTER +2 -0
  436. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-save +2 -0
  437. data/vendor/git.code.sf.net/p/libpng/code/tests/pngunknown-vpAg +2 -0
  438. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-16-to-8 +2 -0
  439. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-alpha-mode +2 -0
  440. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-background +2 -0
  441. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-expand16-alpha-mode +2 -0
  442. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-expand16-background +2 -0
  443. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-expand16-transform +2 -0
  444. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-sbit +2 -0
  445. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-threshold +2 -0
  446. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-gamma-transform +2 -0
  447. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-progressive-interlace-standard +2 -0
  448. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-progressive-size +2 -0
  449. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-progressive-standard +2 -0
  450. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-standard +2 -0
  451. data/vendor/git.code.sf.net/p/libpng/code/tests/pngvalid-transform +2 -0
  452. metadata +515 -0
@@ -0,0 +1,735 @@
1
+ /*---------------------------------------------------------------------------
2
+
3
+ rpng - simple PNG display program rpng-win.c
4
+
5
+ This program decodes and displays PNG images, with gamma correction and
6
+ optionally with a user-specified background color (in case the image has
7
+ transparency). It is very nearly the most basic PNG viewer possible.
8
+ This version is for 32-bit Windows; it may compile under 16-bit Windows
9
+ with a little tweaking (or maybe not).
10
+
11
+ to do:
12
+ - handle quoted command-line args (especially filenames with spaces)
13
+ - have minimum window width: oh well
14
+ - use %.1023s to simplify truncation of title-bar string?
15
+
16
+ ---------------------------------------------------------------------------
17
+
18
+ Changelog:
19
+ - 1.00: initial public release
20
+ - 1.01: modified to allow abbreviated options; fixed long/ulong mis-
21
+ match; switched to png_jmpbuf() macro
22
+ - 1.02: added extra set of parentheses to png_jmpbuf() macro; fixed
23
+ command-line parsing bug
24
+ - 1.10: enabled "message window"/console (thanks to David Geldreich)
25
+ - 2.00: dual-licensed (added GNU GPL)
26
+ - 2.01: fixed improper display of usage screen on PNG error(s)
27
+ - 2.02: check for integer overflow (Glenn R-P)
28
+
29
+ ---------------------------------------------------------------------------
30
+
31
+ Copyright (c) 1998-2008, 2017 Greg Roelofs. All rights reserved.
32
+
33
+ This software is provided "as is," without warranty of any kind,
34
+ express or implied. In no event shall the author or contributors
35
+ be held liable for any damages arising in any way from the use of
36
+ this software.
37
+
38
+ The contents of this file are DUAL-LICENSED. You may modify and/or
39
+ redistribute this software according to the terms of one of the
40
+ following two licenses (at your option):
41
+
42
+
43
+ LICENSE 1 ("BSD-like with advertising clause"):
44
+
45
+ Permission is granted to anyone to use this software for any purpose,
46
+ including commercial applications, and to alter it and redistribute
47
+ it freely, subject to the following restrictions:
48
+
49
+ 1. Redistributions of source code must retain the above copyright
50
+ notice, disclaimer, and this list of conditions.
51
+ 2. Redistributions in binary form must reproduce the above copyright
52
+ notice, disclaimer, and this list of conditions in the documenta-
53
+ tion and/or other materials provided with the distribution.
54
+ 3. All advertising materials mentioning features or use of this
55
+ software must display the following acknowledgment:
56
+
57
+ This product includes software developed by Greg Roelofs
58
+ and contributors for the book, "PNG: The Definitive Guide,"
59
+ published by O'Reilly and Associates.
60
+
61
+
62
+ LICENSE 2 (GNU GPL v2 or later):
63
+
64
+ This program is free software; you can redistribute it and/or modify
65
+ it under the terms of the GNU General Public License as published by
66
+ the Free Software Foundation; either version 2 of the License, or
67
+ (at your option) any later version.
68
+
69
+ This program is distributed in the hope that it will be useful,
70
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
71
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72
+ GNU General Public License for more details.
73
+
74
+ You should have received a copy of the GNU General Public License
75
+ along with this program; if not, write to the Free Software Foundation,
76
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
77
+
78
+ ---------------------------------------------------------------------------*/
79
+
80
+ #define PROGNAME "rpng-win"
81
+ #define LONGNAME "Simple PNG Viewer for Windows"
82
+ #define VERSION "2.01 of 16 March 2008"
83
+
84
+ #include <stdio.h>
85
+ #include <stdlib.h>
86
+ #include <string.h>
87
+ #include <time.h>
88
+ #include <windows.h>
89
+ #ifdef __CYGWIN__
90
+ /* getch replacement. Turns out, we don't really need this,
91
+ * but leave it here if we ever enable any of the uses of
92
+ * _getch in the main code
93
+ */
94
+ #include <unistd.h>
95
+ #include <termio.h>
96
+ #include <sys/ioctl.h>
97
+ int repl_getch( void )
98
+ {
99
+ char ch;
100
+ int fd = fileno(stdin);
101
+ struct termio old_tty, new_tty;
102
+
103
+ ioctl(fd, TCGETA, &old_tty);
104
+ new_tty = old_tty;
105
+ new_tty.c_lflag &= ~(ICANON | ECHO | ISIG);
106
+ ioctl(fd, TCSETA, &new_tty);
107
+ fread(&ch, 1, sizeof(ch), stdin);
108
+ ioctl(fd, TCSETA, &old_tty);
109
+
110
+ return ch;
111
+ }
112
+ #define _getch repl_getch
113
+ #else
114
+ #include <conio.h> /* only for _getch() */
115
+ #endif
116
+
117
+ /* #define DEBUG : this enables the Trace() macros */
118
+
119
+ #include "readpng.h" /* typedefs, common macros, readpng prototypes */
120
+
121
+
122
+ /* could just include png.h, but this macro is the only thing we need
123
+ * (name and typedefs changed to local versions); note that side effects
124
+ * only happen with alpha (which could easily be avoided with
125
+ * "ush acopy = (alpha);") */
126
+
127
+ #define alpha_composite(composite, fg, alpha, bg) { \
128
+ ush temp = ((ush)(fg)*(ush)(alpha) + \
129
+ (ush)(bg)*(ush)(255 - (ush)(alpha)) + (ush)128); \
130
+ (composite) = (uch)((temp + (temp >> 8)) >> 8); \
131
+ }
132
+
133
+
134
+ /* local prototypes */
135
+ static int rpng_win_create_window(HINSTANCE hInst, int showmode);
136
+ static int rpng_win_display_image(void);
137
+ static void rpng_win_cleanup(void);
138
+ LRESULT CALLBACK rpng_win_wndproc(HWND, UINT, WPARAM, LPARAM);
139
+
140
+
141
+ static char titlebar[1024];
142
+ static char *progname = PROGNAME;
143
+ static char *appname = LONGNAME;
144
+ static char *filename;
145
+ static FILE *infile;
146
+
147
+ static char *bgstr;
148
+ static uch bg_red=0, bg_green=0, bg_blue=0;
149
+
150
+ static double display_exponent;
151
+
152
+ static ulg image_width, image_height, image_rowbytes;
153
+ static int image_channels;
154
+ static uch *image_data;
155
+
156
+ /* Windows-specific variables */
157
+ static ulg wimage_rowbytes;
158
+ static uch *dib;
159
+ static uch *wimage_data;
160
+ static BITMAPINFOHEADER *bmih;
161
+
162
+ static HWND global_hwnd;
163
+
164
+
165
+
166
+
167
+ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode)
168
+ {
169
+ char *args[1024]; /* arbitrary limit, but should suffice */
170
+ char *p, *q, **argv = args;
171
+ int argc = 0;
172
+ int rc, alen, flen;
173
+ int error = 0;
174
+ int have_bg = FALSE;
175
+ double LUT_exponent; /* just the lookup table */
176
+ double CRT_exponent = 2.2; /* just the monitor */
177
+ double default_display_exponent; /* whole display system */
178
+ MSG msg;
179
+
180
+
181
+ filename = (char *)NULL;
182
+
183
+ #ifndef __CYGWIN__
184
+ /* First reenable console output, which normally goes to the bit bucket
185
+ * for windowed apps. Closing the console window will terminate the
186
+ * app. Thanks to David.Geldreich at realviz.com for supplying the magical
187
+ * incantation. */
188
+
189
+ AllocConsole();
190
+ freopen("CONOUT$", "a", stderr);
191
+ freopen("CONOUT$", "a", stdout);
192
+ #endif
193
+
194
+
195
+ /* Next set the default value for our display-system exponent, i.e.,
196
+ * the product of the CRT exponent and the exponent corresponding to
197
+ * the frame-buffer's lookup table (LUT), if any. This is not an
198
+ * exhaustive list of LUT values (e.g., OpenStep has a lot of weird
199
+ * ones), but it should cover 99% of the current possibilities. And
200
+ * yes, these ifdefs are completely wasted in a Windows program... */
201
+
202
+ #if defined(NeXT)
203
+ LUT_exponent = 1.0 / 2.2;
204
+ /*
205
+ if (some_next_function_that_returns_gamma(&next_gamma))
206
+ LUT_exponent = 1.0 / next_gamma;
207
+ */
208
+ #elif defined(sgi)
209
+ LUT_exponent = 1.0 / 1.7;
210
+ /* there doesn't seem to be any documented function to get the
211
+ * "gamma" value, so we do it the hard way */
212
+ infile = fopen("/etc/config/system.glGammaVal", "r");
213
+ if (infile) {
214
+ double sgi_gamma;
215
+
216
+ fgets(tmpline, 80, infile);
217
+ fclose(infile);
218
+ sgi_gamma = atof(tmpline);
219
+ if (sgi_gamma > 0.0)
220
+ LUT_exponent = 1.0 / sgi_gamma;
221
+ }
222
+ #elif defined(Macintosh)
223
+ LUT_exponent = 1.8 / 2.61;
224
+ /*
225
+ if (some_mac_function_that_returns_gamma(&mac_gamma))
226
+ LUT_exponent = mac_gamma / 2.61;
227
+ */
228
+ #else
229
+ LUT_exponent = 1.0; /* assume no LUT: most PCs */
230
+ #endif
231
+
232
+ /* the defaults above give 1.0, 1.3, 1.5 and 2.2, respectively: */
233
+ default_display_exponent = LUT_exponent * CRT_exponent;
234
+
235
+
236
+ /* If the user has set the SCREEN_GAMMA environment variable as suggested
237
+ * (somewhat imprecisely) in the libpng documentation, use that; otherwise
238
+ * use the default value we just calculated. Either way, the user may
239
+ * override this via a command-line option. */
240
+
241
+ if ((p = getenv("SCREEN_GAMMA")) != NULL)
242
+ display_exponent = atof(p);
243
+ else
244
+ display_exponent = default_display_exponent;
245
+
246
+
247
+ /* Windows really hates command lines, so we have to set up our own argv.
248
+ * Note that we do NOT bother with quoted arguments here, so don't use
249
+ * filenames with spaces in 'em! */
250
+
251
+ argv[argc++] = PROGNAME;
252
+ p = cmd;
253
+ for (;;) {
254
+ if (*p == ' ')
255
+ while (*++p == ' ')
256
+ ;
257
+ /* now p points at the first non-space after some spaces */
258
+ if (*p == '\0')
259
+ break; /* nothing after the spaces: done */
260
+ argv[argc++] = q = p;
261
+ while (*q && *q != ' ')
262
+ ++q;
263
+ /* now q points at a space or the end of the string */
264
+ if (*q == '\0')
265
+ break; /* last argv already terminated; quit */
266
+ *q = '\0'; /* change space to terminator */
267
+ p = q + 1;
268
+ }
269
+ argv[argc] = NULL; /* terminate the argv array itself */
270
+
271
+
272
+ /* Now parse the command line for options and the PNG filename. */
273
+
274
+ while (*++argv && !error) {
275
+ if (!strncmp(*argv, "-gamma", 2)) {
276
+ if (!*++argv)
277
+ ++error;
278
+ else {
279
+ display_exponent = atof(*argv);
280
+ if (display_exponent <= 0.0)
281
+ ++error;
282
+ }
283
+ } else if (!strncmp(*argv, "-bgcolor", 2)) {
284
+ if (!*++argv)
285
+ ++error;
286
+ else {
287
+ bgstr = *argv;
288
+ if (strlen(bgstr) != 7 || bgstr[0] != '#')
289
+ ++error;
290
+ else
291
+ have_bg = TRUE;
292
+ }
293
+ } else {
294
+ if (**argv != '-') {
295
+ filename = *argv;
296
+ if (argv[1]) /* shouldn't be any more args after filename */
297
+ ++error;
298
+ } else
299
+ ++error; /* not expecting any other options */
300
+ }
301
+ }
302
+
303
+ if (!filename)
304
+ ++error;
305
+
306
+
307
+ /* print usage screen if any errors up to this point */
308
+
309
+ if (error) {
310
+ #ifndef __CYGWIN__
311
+ int ch;
312
+ #endif
313
+
314
+ fprintf(stderr, "\n%s %s: %s\n\n", PROGNAME, VERSION, appname);
315
+ readpng_version_info();
316
+ fprintf(stderr, "\n"
317
+ "Usage: %s [-gamma exp] [-bgcolor bg] file.png\n"
318
+ " exp \ttransfer-function exponent (``gamma'') of the display\n"
319
+ "\t\t system in floating-point format (e.g., ``%.1f''); equal\n"
320
+ "\t\t to the product of the lookup-table exponent (varies)\n"
321
+ "\t\t and the CRT exponent (usually 2.2); must be positive\n"
322
+ " bg \tdesired background color in 7-character hex RGB format\n"
323
+ "\t\t (e.g., ``#ff7700'' for orange: same as HTML colors);\n"
324
+ "\t\t used with transparent images\n"
325
+ "\nPress Q, Esc or mouse button 1 after image is displayed to quit.\n"
326
+ #ifndef __CYGWIN__
327
+ "Press Q or Esc to quit this usage screen.\n"
328
+ #endif
329
+ "\n", PROGNAME, default_display_exponent);
330
+ #ifndef __CYGWIN__
331
+ do
332
+ ch = _getch();
333
+ while (ch != 'q' && ch != 'Q' && ch != 0x1B);
334
+ #endif
335
+ exit(1);
336
+ }
337
+
338
+
339
+ if (!(infile = fopen(filename, "rb"))) {
340
+ fprintf(stderr, PROGNAME ": can't open PNG file [%s]\n", filename);
341
+ ++error;
342
+ } else {
343
+ if ((rc = readpng_init(infile, &image_width, &image_height)) != 0) {
344
+ switch (rc) {
345
+ case 1:
346
+ fprintf(stderr, PROGNAME
347
+ ": [%s] is not a PNG file: incorrect signature\n",
348
+ filename);
349
+ break;
350
+ case 2:
351
+ fprintf(stderr, PROGNAME
352
+ ": [%s] has bad IHDR (libpng longjmp)\n", filename);
353
+ break;
354
+ case 4:
355
+ fprintf(stderr, PROGNAME ": insufficient memory\n");
356
+ break;
357
+ default:
358
+ fprintf(stderr, PROGNAME
359
+ ": unknown readpng_init() error\n");
360
+ break;
361
+ }
362
+ ++error;
363
+ }
364
+ if (error)
365
+ fclose(infile);
366
+ }
367
+
368
+
369
+ if (error) {
370
+ #ifndef __CYGWIN__
371
+ int ch;
372
+ #endif
373
+
374
+ fprintf(stderr, PROGNAME ": aborting.\n");
375
+ #ifndef __CYGWIN__
376
+ do
377
+ ch = _getch();
378
+ while (ch != 'q' && ch != 'Q' && ch != 0x1B);
379
+ #endif
380
+ exit(2);
381
+ } else {
382
+ fprintf(stderr, "\n%s %s: %s\n", PROGNAME, VERSION, appname);
383
+ #ifndef __CYGWIN__
384
+ fprintf(stderr,
385
+ "\n [console window: closing this window will terminate %s]\n\n",
386
+ PROGNAME);
387
+ #endif
388
+ }
389
+
390
+
391
+ /* set the title-bar string, but make sure buffer doesn't overflow */
392
+
393
+ alen = strlen(appname);
394
+ flen = strlen(filename);
395
+ if (alen + flen + 3 > 1023)
396
+ sprintf(titlebar, "%s: ...%s", appname, filename+(alen+flen+6-1023));
397
+ else
398
+ sprintf(titlebar, "%s: %s", appname, filename);
399
+
400
+
401
+ /* if the user didn't specify a background color on the command line,
402
+ * check for one in the PNG file--if not, the initialized values of 0
403
+ * (black) will be used */
404
+
405
+ if (have_bg) {
406
+ unsigned r, g, b; /* this approach quiets compiler warnings */
407
+
408
+ sscanf(bgstr+1, "%2x%2x%2x", &r, &g, &b);
409
+ bg_red = (uch)r;
410
+ bg_green = (uch)g;
411
+ bg_blue = (uch)b;
412
+ } else if (readpng_get_bgcolor(&bg_red, &bg_green, &bg_blue) > 1) {
413
+ readpng_cleanup(TRUE);
414
+ fprintf(stderr, PROGNAME
415
+ ": libpng error while checking for background color\n");
416
+ exit(2);
417
+ }
418
+
419
+
420
+ /* do the basic Windows initialization stuff, make the window and fill it
421
+ * with the background color */
422
+
423
+ if (rpng_win_create_window(hInst, showmode))
424
+ exit(2);
425
+
426
+
427
+ /* decode the image, all at once */
428
+
429
+ Trace((stderr, "calling readpng_get_image()\n"))
430
+ image_data = readpng_get_image(display_exponent, &image_channels,
431
+ &image_rowbytes);
432
+ Trace((stderr, "done with readpng_get_image()\n"))
433
+
434
+
435
+ /* done with PNG file, so clean up to minimize memory usage (but do NOT
436
+ * nuke image_data!) */
437
+
438
+ readpng_cleanup(FALSE);
439
+ fclose(infile);
440
+
441
+ if (!image_data) {
442
+ fprintf(stderr, PROGNAME ": unable to decode PNG image\n");
443
+ exit(3);
444
+ }
445
+
446
+
447
+ /* display image (composite with background if requested) */
448
+
449
+ Trace((stderr, "calling rpng_win_display_image()\n"))
450
+ if (rpng_win_display_image()) {
451
+ free(image_data);
452
+ exit(4);
453
+ }
454
+ Trace((stderr, "done with rpng_win_display_image()\n"))
455
+
456
+
457
+ /* wait for the user to tell us when to quit */
458
+
459
+ printf(
460
+ #ifndef __CYGWIN__
461
+ "Done. Press Q, Esc or mouse button 1 (within image window) to quit.\n"
462
+ #else
463
+ "Done. Press mouse button 1 (within image window) to quit.\n"
464
+ #endif
465
+ );
466
+ fflush(stdout);
467
+
468
+ while (GetMessage(&msg, NULL, 0, 0)) {
469
+ TranslateMessage(&msg);
470
+ DispatchMessage(&msg);
471
+ }
472
+
473
+
474
+ /* OK, we're done: clean up all image and Windows resources and go away */
475
+
476
+ rpng_win_cleanup();
477
+
478
+ return msg.wParam;
479
+ }
480
+
481
+
482
+
483
+
484
+
485
+ static int rpng_win_create_window(HINSTANCE hInst, int showmode)
486
+ {
487
+ uch *dest;
488
+ int extra_width, extra_height;
489
+ ulg i, j;
490
+ WNDCLASSEX wndclass;
491
+
492
+
493
+ /*---------------------------------------------------------------------------
494
+ Allocate memory for the display-specific version of the image (round up
495
+ to multiple of 4 for Windows DIB).
496
+ ---------------------------------------------------------------------------*/
497
+
498
+ wimage_rowbytes = ((3*image_width + 3L) >> 2) << 2;
499
+
500
+ /* Guard against integer overflow */
501
+ if (image_height > ((size_t)(-1))/wimage_rowbytes) {
502
+ fprintf(stderr, PROGNAME ": image_data buffer would be too large\n");
503
+ return 4; /* fail */
504
+ }
505
+
506
+ if (!(dib = (uch *)malloc(sizeof(BITMAPINFOHEADER) +
507
+ wimage_rowbytes*image_height)))
508
+ {
509
+ return 4; /* fail */
510
+ }
511
+
512
+ /*---------------------------------------------------------------------------
513
+ Initialize the DIB. Negative height means to use top-down BMP ordering
514
+ (must be uncompressed, but that's what we want). Bit count of 1, 4 or 8
515
+ implies a colormap of RGBX quads, but 24-bit BMPs just use B,G,R values
516
+ directly => wimage_data begins immediately after BMP header.
517
+ ---------------------------------------------------------------------------*/
518
+
519
+ memset(dib, 0, sizeof(BITMAPINFOHEADER));
520
+ bmih = (BITMAPINFOHEADER *)dib;
521
+ bmih->biSize = sizeof(BITMAPINFOHEADER);
522
+ bmih->biWidth = image_width;
523
+ bmih->biHeight = -((long)image_height);
524
+ bmih->biPlanes = 1;
525
+ bmih->biBitCount = 24;
526
+ bmih->biCompression = 0;
527
+ wimage_data = dib + sizeof(BITMAPINFOHEADER);
528
+
529
+ /*---------------------------------------------------------------------------
530
+ Fill in background color (black by default); data are in BGR order.
531
+ ---------------------------------------------------------------------------*/
532
+
533
+ for (j = 0; j < image_height; ++j) {
534
+ dest = wimage_data + j*wimage_rowbytes;
535
+ for (i = image_width; i > 0; --i) {
536
+ *dest++ = bg_blue;
537
+ *dest++ = bg_green;
538
+ *dest++ = bg_red;
539
+ }
540
+ }
541
+
542
+ /*---------------------------------------------------------------------------
543
+ Set the window parameters.
544
+ ---------------------------------------------------------------------------*/
545
+
546
+ memset(&wndclass, 0, sizeof(wndclass));
547
+
548
+ wndclass.cbSize = sizeof(wndclass);
549
+ wndclass.style = CS_HREDRAW | CS_VREDRAW;
550
+ wndclass.lpfnWndProc = rpng_win_wndproc;
551
+ wndclass.hInstance = hInst;
552
+ wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
553
+ wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
554
+ wndclass.hbrBackground = (HBRUSH)GetStockObject(DKGRAY_BRUSH);
555
+ wndclass.lpszMenuName = NULL;
556
+ wndclass.lpszClassName = progname;
557
+ wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
558
+
559
+ RegisterClassEx(&wndclass);
560
+
561
+ /*---------------------------------------------------------------------------
562
+ Finally, create the window.
563
+ ---------------------------------------------------------------------------*/
564
+
565
+ extra_width = 2*(GetSystemMetrics(SM_CXBORDER) +
566
+ GetSystemMetrics(SM_CXDLGFRAME));
567
+ extra_height = 2*(GetSystemMetrics(SM_CYBORDER) +
568
+ GetSystemMetrics(SM_CYDLGFRAME)) +
569
+ GetSystemMetrics(SM_CYCAPTION);
570
+
571
+ global_hwnd = CreateWindow(progname, titlebar, WS_OVERLAPPEDWINDOW,
572
+ CW_USEDEFAULT, CW_USEDEFAULT, image_width+extra_width,
573
+ image_height+extra_height, NULL, NULL, hInst, NULL);
574
+
575
+ ShowWindow(global_hwnd, showmode);
576
+ UpdateWindow(global_hwnd);
577
+
578
+ return 0;
579
+
580
+ } /* end function rpng_win_create_window() */
581
+
582
+
583
+
584
+
585
+
586
+ static int rpng_win_display_image()
587
+ {
588
+ uch *src, *dest;
589
+ uch r, g, b, a;
590
+ ulg i, row, lastrow;
591
+ RECT rect;
592
+
593
+
594
+ Trace((stderr, "beginning display loop (image_channels == %d)\n",
595
+ image_channels))
596
+ Trace((stderr, "(width = %ld, rowbytes = %ld, wimage_rowbytes = %d)\n",
597
+ image_width, image_rowbytes, wimage_rowbytes))
598
+
599
+
600
+ /*---------------------------------------------------------------------------
601
+ Blast image data to buffer. This whole routine takes place before the
602
+ message loop begins, so there's no real point in any pseudo-progressive
603
+ display...
604
+ ---------------------------------------------------------------------------*/
605
+
606
+ for (lastrow = row = 0; row < image_height; ++row) {
607
+ src = image_data + row*image_rowbytes;
608
+ dest = wimage_data + row*wimage_rowbytes;
609
+ if (image_channels == 3) {
610
+ for (i = image_width; i > 0; --i) {
611
+ r = *src++;
612
+ g = *src++;
613
+ b = *src++;
614
+ *dest++ = b;
615
+ *dest++ = g; /* note reverse order */
616
+ *dest++ = r;
617
+ }
618
+ } else /* if (image_channels == 4) */ {
619
+ for (i = image_width; i > 0; --i) {
620
+ r = *src++;
621
+ g = *src++;
622
+ b = *src++;
623
+ a = *src++;
624
+ if (a == 255) {
625
+ *dest++ = b;
626
+ *dest++ = g;
627
+ *dest++ = r;
628
+ } else if (a == 0) {
629
+ *dest++ = bg_blue;
630
+ *dest++ = bg_green;
631
+ *dest++ = bg_red;
632
+ } else {
633
+ /* this macro (copied from png.h) composites the
634
+ * foreground and background values and puts the
635
+ * result into the first argument; there are no
636
+ * side effects with the first argument */
637
+ alpha_composite(*dest++, b, a, bg_blue);
638
+ alpha_composite(*dest++, g, a, bg_green);
639
+ alpha_composite(*dest++, r, a, bg_red);
640
+ }
641
+ }
642
+ }
643
+ /* display after every 16 lines */
644
+ if (((row+1) & 0xf) == 0) {
645
+ rect.left = 0L;
646
+ rect.top = (LONG)lastrow;
647
+ rect.right = (LONG)image_width; /* possibly off by one? */
648
+ rect.bottom = (LONG)lastrow + 16L; /* possibly off by one? */
649
+ InvalidateRect(global_hwnd, &rect, FALSE);
650
+ UpdateWindow(global_hwnd); /* similar to XFlush() */
651
+ lastrow = row + 1;
652
+ }
653
+ }
654
+
655
+ Trace((stderr, "calling final image-flush routine\n"))
656
+ if (lastrow < image_height) {
657
+ rect.left = 0L;
658
+ rect.top = (LONG)lastrow;
659
+ rect.right = (LONG)image_width; /* possibly off by one? */
660
+ rect.bottom = (LONG)image_height; /* possibly off by one? */
661
+ InvalidateRect(global_hwnd, &rect, FALSE);
662
+ UpdateWindow(global_hwnd); /* similar to XFlush() */
663
+ }
664
+
665
+ /*
666
+ last param determines whether or not background is wiped before paint
667
+ InvalidateRect(global_hwnd, NULL, TRUE);
668
+ UpdateWindow(global_hwnd);
669
+ */
670
+
671
+ return 0;
672
+ }
673
+
674
+
675
+
676
+
677
+
678
+ static void rpng_win_cleanup()
679
+ {
680
+ if (image_data) {
681
+ free(image_data);
682
+ image_data = NULL;
683
+ }
684
+
685
+ if (dib) {
686
+ free(dib);
687
+ dib = NULL;
688
+ }
689
+ }
690
+
691
+
692
+
693
+
694
+
695
+ LRESULT CALLBACK rpng_win_wndproc(HWND hwnd, UINT iMsg, WPARAM wP, LPARAM lP)
696
+ {
697
+ HDC hdc;
698
+ PAINTSTRUCT ps;
699
+ int rc;
700
+
701
+ switch (iMsg) {
702
+ case WM_CREATE:
703
+ /* one-time processing here, if any */
704
+ return 0;
705
+
706
+ case WM_PAINT:
707
+ hdc = BeginPaint(hwnd, &ps);
708
+ /* dest */
709
+ rc = StretchDIBits(hdc, 0, 0, image_width, image_height,
710
+ /* source */
711
+ 0, 0, image_width, image_height,
712
+ wimage_data, (BITMAPINFO *)bmih,
713
+ /* iUsage: no clue */
714
+ 0, SRCCOPY);
715
+ EndPaint(hwnd, &ps);
716
+ return 0;
717
+
718
+ /* wait for the user to tell us when to quit */
719
+ case WM_CHAR:
720
+ switch (wP) { /* only need one, so ignore repeat count */
721
+ case 'q':
722
+ case 'Q':
723
+ case 0x1B: /* Esc key */
724
+ PostQuitMessage(0);
725
+ }
726
+ return 0;
727
+
728
+ case WM_LBUTTONDOWN: /* another way of quitting */
729
+ case WM_DESTROY:
730
+ PostQuitMessage(0);
731
+ return 0;
732
+ }
733
+
734
+ return DefWindowProc(hwnd, iMsg, wP, lP);
735
+ }