gosu 0.7.10.3 → 0.7.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (545) hide show
  1. data/Gosu/AutoLink.hpp +0 -0
  2. data/Gosu/ButtonsMac.hpp +26 -0
  3. data/Gosu/ButtonsWin.hpp +26 -0
  4. data/Gosu/ButtonsX.hpp +26 -0
  5. data/Gosu/Gosu.hpp +1 -0
  6. data/Gosu/Graphics.hpp +1 -1
  7. data/Gosu/Input.hpp +4 -5
  8. data/Gosu/Math.hpp +11 -0
  9. data/Gosu/Text.hpp +59 -47
  10. data/Gosu/Utility.hpp +6 -5
  11. data/GosuImpl/Graphics/DrawOp.hpp +0 -0
  12. data/GosuImpl/Graphics/Font.cpp +45 -4
  13. data/GosuImpl/Graphics/Graphics.cpp +25 -0
  14. data/GosuImpl/Graphics/TexChunk.cpp +0 -0
  15. data/GosuImpl/Graphics/TexChunk.hpp +0 -0
  16. data/GosuImpl/Graphics/Text.cpp +26 -2
  17. data/GosuImpl/Graphics/TextMac.cpp +8 -2
  18. data/GosuImpl/Graphics/TextPangoFT.cpp +0 -0
  19. data/GosuImpl/Graphics/Texture.cpp +0 -0
  20. data/GosuImpl/Graphics/Texture.hpp +0 -0
  21. data/GosuImpl/Iconv.hpp +62 -0
  22. data/GosuImpl/InputMac.mm +3 -0
  23. data/GosuImpl/InputWin.cpp +5 -1
  24. data/GosuImpl/InputX.cpp +50 -8
  25. data/GosuImpl/Math.cpp +1 -1
  26. data/GosuImpl/RubyGosu.swg +24 -5
  27. data/GosuImpl/RubyGosu_wrap.cxx +181 -10
  28. data/GosuImpl/Utility.cpp +32 -75
  29. data/GosuImpl/Utility.cpp~RF6c566.TMP +95 -0
  30. data/GosuImpl/WindowX.cpp +2 -2
  31. data/Rakefile +57 -10
  32. data/examples/Tutorial.cpp +0 -0
  33. data/examples/media/Beep.wav +0 -0
  34. data/examples/media/CptnRuby Map.txt b/data/examples/media/CptnRuby → Map.txt +0 -0
  35. data/examples/media/Explosion.wav +0 -0
  36. data/examples/media/Space.png +0 -0
  37. data/examples/media/Star.png +0 -0
  38. data/examples/media/Starfighter.bmp +0 -0
  39. data/linux/Makefile.in +0 -0
  40. data/linux/configure +0 -0
  41. data/linux/configure.ac +0 -0
  42. data/mac/Gosu.xcodeproj/jlnr.mode1v3 +1421 -0
  43. data/mac/Gosu.xcodeproj/jlnr.mode2v3 +1464 -0
  44. data/mac/Gosu.xcodeproj/jlnr.pbxuser +733 -0
  45. data/mac/Gosu.xcodeproj/project.pbxproj +4 -2
  46. data/reference/Async_8hpp-source.html +1 -1
  47. data/reference/Audio_8hpp-source.html +1 -1
  48. data/reference/Audio_8hpp.html +1 -1
  49. data/reference/AutoLink_8hpp-source.html +1 -1
  50. data/reference/AutoLink_8hpp.html +1 -1
  51. data/reference/Bitmap_8hpp-source.html +1 -1
  52. data/reference/Bitmap_8hpp.html +1 -1
  53. data/reference/ButtonsMac_8hpp-source.html +107 -81
  54. data/reference/ButtonsWin_8hpp-source.html +84 -58
  55. data/reference/ButtonsX_8hpp-source.html +131 -105
  56. data/reference/Color_8hpp-source.html +1 -1
  57. data/reference/Color_8hpp.html +1 -1
  58. data/reference/Directories_8hpp-source.html +1 -1
  59. data/reference/Directories_8hpp.html +1 -1
  60. data/reference/Font_8hpp-source.html +1 -1
  61. data/reference/Font_8hpp.html +1 -1
  62. data/reference/Fwd_8hpp-source.html +1 -1
  63. data/reference/Fwd_8hpp.html +1 -1
  64. data/reference/Gosu_8hpp-source.html +5 -4
  65. data/reference/Gosu_8hpp.html +1 -1
  66. data/reference/GraphicsBase_8hpp-source.html +1 -1
  67. data/reference/GraphicsBase_8hpp.html +1 -1
  68. data/reference/Graphics_8hpp-source.html +2 -2
  69. data/reference/Graphics_8hpp.html +1 -1
  70. data/reference/IO_8hpp-source.html +1 -1
  71. data/reference/IO_8hpp.html +1 -1
  72. data/reference/ImageData_8hpp-source.html +1 -1
  73. data/reference/ImageData_8hpp.html +1 -1
  74. data/reference/Image_8hpp-source.html +1 -1
  75. data/reference/Image_8hpp.html +1 -1
  76. data/reference/Input_8hpp-source.html +43 -43
  77. data/reference/Input_8hpp.html +2 -2
  78. data/reference/Math_8hpp-source.html +51 -42
  79. data/reference/Math_8hpp.html +5 -1
  80. data/reference/Platform_8hpp-source.html +1 -1
  81. data/reference/Platform_8hpp.html +1 -1
  82. data/reference/RotFlip_8hpp-source.html +1 -1
  83. data/reference/RotFlip_8hpp.html +1 -1
  84. data/reference/Sockets_8hpp-source.html +1 -1
  85. data/reference/Sockets_8hpp.html +1 -1
  86. data/reference/TextInput_8hpp-source.html +1 -1
  87. data/reference/TextInput_8hpp.html +1 -1
  88. data/reference/Text_8hpp-source.html +12 -8
  89. data/reference/Text_8hpp.html +3 -1
  90. data/reference/Timing_8hpp-source.html +1 -1
  91. data/reference/Timing_8hpp.html +1 -1
  92. data/reference/Utility_8hpp-source.html +9 -10
  93. data/reference/Utility_8hpp.html +5 -7
  94. data/reference/WinUtility_8hpp-source.html +1 -1
  95. data/reference/WinUtility_8hpp.html +1 -1
  96. data/reference/Window_8hpp-source.html +3 -3
  97. data/reference/Window_8hpp.html +1 -1
  98. data/reference/annotated.html +2 -2
  99. data/reference/classGosu_1_1Audio-members.html +1 -1
  100. data/reference/classGosu_1_1Audio.html +1 -1
  101. data/reference/classGosu_1_1Bitmap-members.html +1 -1
  102. data/reference/classGosu_1_1Bitmap.html +1 -1
  103. data/reference/classGosu_1_1Buffer-members.html +1 -1
  104. data/reference/classGosu_1_1Buffer.html +1 -1
  105. data/reference/classGosu_1_1Button-members.html +1 -1
  106. data/reference/classGosu_1_1Button.html +1 -1
  107. data/reference/classGosu_1_1Color-members.html +1 -1
  108. data/reference/classGosu_1_1Color.html +1 -1
  109. data/reference/classGosu_1_1File-members.html +1 -1
  110. data/reference/classGosu_1_1File.html +1 -1
  111. data/reference/classGosu_1_1Font-members.html +1 -1
  112. data/reference/classGosu_1_1Font.html +1 -1
  113. data/reference/classGosu_1_1Graphics-members.html +1 -1
  114. data/reference/classGosu_1_1Graphics.html +1 -1
  115. data/reference/classGosu_1_1Image-members.html +1 -1
  116. data/reference/classGosu_1_1Image.html +1 -1
  117. data/reference/classGosu_1_1ImageData-members.html +1 -1
  118. data/reference/classGosu_1_1ImageData.html +1 -1
  119. data/reference/classGosu_1_1Input-members.html +1 -1
  120. data/reference/classGosu_1_1Input.html +4 -4
  121. data/reference/classGosu_1_1MessageSocket-members.html +1 -1
  122. data/reference/classGosu_1_1MessageSocket.html +1 -1
  123. data/reference/classGosu_1_1Resource-members.html +1 -1
  124. data/reference/classGosu_1_1Resource.html +1 -1
  125. data/reference/classGosu_1_1Sample-members.html +1 -1
  126. data/reference/classGosu_1_1Sample.html +1 -1
  127. data/reference/classGosu_1_1SampleInstance-members.html +1 -1
  128. data/reference/classGosu_1_1SampleInstance.html +1 -1
  129. data/reference/classGosu_1_1Song-members.html +1 -1
  130. data/reference/classGosu_1_1Song.html +1 -1
  131. data/reference/classGosu_1_1TextInput-members.html +1 -1
  132. data/reference/classGosu_1_1TextInput.html +1 -1
  133. data/reference/classGosu_1_1Window-members.html +1 -1
  134. data/reference/classGosu_1_1Window.html +1 -1
  135. data/reference/files.html +1 -1
  136. data/reference/functions.html +1 -1
  137. data/reference/functions_enum.html +1 -1
  138. data/reference/functions_func.html +1 -1
  139. data/reference/functions_vars.html +1 -1
  140. data/reference/hierarchy.html +1 -1
  141. data/reference/index.html +1 -1
  142. data/reference/namespaceGosu.html +935 -492
  143. data/reference/namespaceGosu_1_1Colors.html +1 -1
  144. data/reference/namespaceGosu_1_1Win.html +1 -1
  145. data/reference/namespacemembers.html +13 -2
  146. data/reference/namespacemembers_enum.html +1 -1
  147. data/reference/namespacemembers_eval.html +1 -1
  148. data/reference/namespacemembers_func.html +13 -2
  149. data/reference/namespacemembers_type.html +1 -1
  150. data/reference/namespacemembers_vars.html +1 -1
  151. data/reference/namespaces.html +1 -1
  152. data/windows/Gosu.vcproj +4 -4
  153. data/windows/RubyGosu.vcproj +2 -1
  154. data/windows/zlib, libpng/libpng/ANNOUNCE +61 -0
  155. data/windows/zlib, libpng/libpng/CHANGES +2173 -0
  156. data/windows/zlib, libpng/libpng/INSTALL +199 -0
  157. data/windows/zlib, libpng/libpng/KNOWNBUG +22 -0
  158. data/windows/zlib, libpng/libpng/LICENSE +109 -0
  159. data/windows/zlib, libpng/libpng/README +264 -0
  160. data/windows/zlib, libpng/libpng/TODO +24 -0
  161. data/windows/zlib, libpng/libpng/Y2KINFO +55 -0
  162. data/windows/zlib, libpng/libpng/configure +13 -0
  163. data/windows/zlib, libpng/libpng/contrib/gregbook/COPYING +340 -0
  164. data/windows/zlib, libpng/libpng/contrib/gregbook/LICENSE +50 -0
  165. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.mingw32 +130 -0
  166. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.sgi +104 -0
  167. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.unx +132 -0
  168. data/windows/zlib, libpng/libpng/contrib/gregbook/Makefile.w32 +113 -0
  169. data/windows/zlib, libpng/libpng/contrib/gregbook/README +186 -0
  170. data/windows/zlib, libpng/libpng/contrib/gregbook/makevms.com +132 -0
  171. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng.c +304 -0
  172. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng.h +88 -0
  173. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng2.c +645 -0
  174. data/windows/zlib, libpng/libpng/contrib/gregbook/readpng2.h +121 -0
  175. data/windows/zlib, libpng/libpng/contrib/gregbook/readppm.c +179 -0
  176. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng-win.c +684 -0
  177. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng-x.c +904 -0
  178. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng2-win.c +1225 -0
  179. data/windows/zlib, libpng/libpng/contrib/gregbook/rpng2-x.c +2127 -0
  180. data/windows/zlib, libpng/libpng/contrib/gregbook/toucan.png +0 -0
  181. data/windows/zlib, libpng/libpng/contrib/gregbook/wpng.c +853 -0
  182. data/windows/zlib, libpng/libpng/contrib/gregbook/writepng.c +392 -0
  183. data/windows/zlib, libpng/libpng/contrib/gregbook/writepng.h +133 -0
  184. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/README +6 -0
  185. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/gather.sh +8 -0
  186. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/makefile.std +44 -0
  187. data/windows/zlib, libpng/libpng/contrib/pngminim/decoder/pngusr.h +67 -0
  188. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/README +6 -0
  189. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/dummy_inflate.c +27 -0
  190. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/gather.sh +9 -0
  191. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/makefile.std +43 -0
  192. data/windows/zlib, libpng/libpng/contrib/pngminim/encoder/pngusr.h +66 -0
  193. data/windows/zlib, libpng/libpng/contrib/pngminus/README +153 -0
  194. data/windows/zlib, libpng/libpng/contrib/pngminus/makefile.std +65 -0
  195. data/windows/zlib, libpng/libpng/contrib/pngminus/makefile.tc3 +38 -0
  196. data/windows/zlib, libpng/libpng/contrib/pngminus/makevms.com +92 -0
  197. data/windows/zlib, libpng/libpng/contrib/pngminus/png2pnm.bat +41 -0
  198. data/windows/zlib, libpng/libpng/contrib/pngminus/png2pnm.c +430 -0
  199. data/windows/zlib, libpng/libpng/contrib/pngminus/png2pnm.sh +42 -0
  200. data/windows/zlib, libpng/libpng/contrib/pngminus/pngminus.bat +4 -0
  201. data/windows/zlib, libpng/libpng/contrib/pngminus/pngminus.sh +5 -0
  202. data/windows/zlib, libpng/libpng/contrib/pngminus/pnm2png.bat +41 -0
  203. data/windows/zlib, libpng/libpng/contrib/pngminus/pnm2png.c +533 -0
  204. data/windows/zlib, libpng/libpng/contrib/pngminus/pnm2png.sh +42 -0
  205. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g01.png +0 -0
  206. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g02.png +0 -0
  207. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g04.png +0 -0
  208. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g08.png +0 -0
  209. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn0g16.png +0 -0
  210. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn2c08.png +0 -0
  211. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn2c16.png +0 -0
  212. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p01.png +0 -0
  213. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p02.png +0 -0
  214. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p04.png +0 -0
  215. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn3p08.png +0 -0
  216. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn4a08.png +0 -0
  217. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn4a16.png +0 -0
  218. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn6a08.png +0 -0
  219. data/windows/zlib, libpng/libpng/contrib/pngsuite/basn6a16.png +0 -0
  220. data/windows/zlib, libpng/libpng/contrib/visupng/PngFile.c +439 -0
  221. data/windows/zlib, libpng/libpng/contrib/visupng/PngFile.h +27 -0
  222. data/windows/zlib, libpng/libpng/contrib/visupng/README.txt +58 -0
  223. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.c +961 -0
  224. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.dsp +147 -0
  225. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.dsw +29 -0
  226. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.ico +0 -0
  227. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.png +0 -0
  228. data/windows/zlib, libpng/libpng/contrib/visupng/VisualPng.rc +152 -0
  229. data/windows/zlib, libpng/libpng/contrib/visupng/cexcept.h +243 -0
  230. data/windows/zlib, libpng/libpng/contrib/visupng/resource.h +23 -0
  231. data/windows/zlib, libpng/libpng/example.c +814 -0
  232. data/windows/zlib, libpng/libpng/libpng-1.2.29.txt +2906 -0
  233. data/windows/zlib, libpng/libpng/libpng.3 +3680 -0
  234. data/windows/zlib, libpng/libpng/libpngpf.3 +274 -0
  235. data/windows/zlib, libpng/libpng/png.5 +74 -0
  236. data/windows/zlib, libpng/libpng/png.c +798 -0
  237. data/windows/zlib, libpng/libpng/png.h +3569 -0
  238. data/windows/zlib, libpng/libpng/pngbar.jpg +0 -0
  239. data/windows/zlib, libpng/libpng/pngbar.png +0 -0
  240. data/windows/zlib, libpng/libpng/pngconf.h +1481 -0
  241. data/windows/zlib, libpng/libpng/pngerror.c +343 -0
  242. data/windows/zlib, libpng/libpng/pnggccrd.c +103 -0
  243. data/windows/zlib, libpng/libpng/pngget.c +901 -0
  244. data/windows/zlib, libpng/libpng/pngmem.c +608 -0
  245. data/windows/zlib, libpng/libpng/pngnow.png +0 -0
  246. data/windows/zlib, libpng/libpng/pngpread.c +1598 -0
  247. data/windows/zlib, libpng/libpng/pngread.c +1479 -0
  248. data/windows/zlib, libpng/libpng/pngrio.c +167 -0
  249. data/windows/zlib, libpng/libpng/pngrtran.c +4292 -0
  250. data/windows/zlib, libpng/libpng/pngrutil.c +3183 -0
  251. data/windows/zlib, libpng/libpng/pngset.c +1268 -0
  252. data/windows/zlib, libpng/libpng/pngtest.c +1563 -0
  253. data/windows/zlib, libpng/libpng/pngtest.png +0 -0
  254. data/windows/zlib, libpng/libpng/pngtrans.c +662 -0
  255. data/windows/zlib, libpng/libpng/pngvcrd.c +1 -0
  256. data/windows/zlib, libpng/libpng/pngwio.c +234 -0
  257. data/windows/zlib, libpng/libpng/pngwrite.c +1532 -0
  258. data/windows/zlib, libpng/libpng/pngwtran.c +572 -0
  259. data/windows/zlib, libpng/libpng/pngwutil.c +2802 -0
  260. data/windows/zlib, libpng/libpng/projects/beos/x86-shared.proj +0 -0
  261. data/windows/zlib, libpng/libpng/projects/beos/x86-shared.txt +22 -0
  262. data/windows/zlib, libpng/libpng/projects/beos/x86-static.proj +0 -0
  263. data/windows/zlib, libpng/libpng/projects/beos/x86-static.txt +22 -0
  264. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.bpf +22 -0
  265. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.bpg +25 -0
  266. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.bpr +157 -0
  267. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.cpp +29 -0
  268. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpng.readme.txt +25 -0
  269. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpngstat.bpf +22 -0
  270. data/windows/zlib, libpng/libpng/projects/cbuilder5/libpngstat.bpr +109 -0
  271. data/windows/zlib, libpng/libpng/projects/cbuilder5/zlib.readme.txt +14 -0
  272. data/windows/zlib, libpng/libpng/projects/netware.txt +6 -0
  273. data/windows/zlib, libpng/libpng/projects/visualc6/README.txt +57 -0
  274. data/windows/zlib, libpng/libpng/projects/visualc6/libpng.dsp +472 -0
  275. data/windows/zlib, libpng/libpng/projects/visualc6/libpng.dsw +59 -0
  276. data/windows/zlib, libpng/libpng/projects/visualc6/pngtest.dsp +314 -0
  277. data/windows/zlib, libpng/libpng/projects/visualc71/PRJ0041.mak +21 -0
  278. data/windows/zlib, libpng/libpng/projects/visualc71/README.txt +57 -0
  279. data/windows/zlib, libpng/libpng/projects/visualc71/README_zlib.txt +44 -0
  280. data/windows/zlib, libpng/libpng/projects/visualc71/libpng.sln +88 -0
  281. data/windows/zlib, libpng/libpng/projects/visualc71/libpng.vcproj +702 -0
  282. data/windows/zlib, libpng/libpng/projects/visualc71/pngtest.vcproj +459 -0
  283. data/windows/zlib, libpng/libpng/projects/visualc71/zlib.vcproj +670 -0
  284. data/windows/zlib, libpng/libpng/projects/wince.txt +6 -0
  285. data/windows/zlib, libpng/libpng/scripts/CMakeLists.txt +210 -0
  286. data/windows/zlib, libpng/libpng/scripts/SCOPTIONS.ppc +7 -0
  287. data/windows/zlib, libpng/libpng/scripts/descrip.mms +52 -0
  288. data/windows/zlib, libpng/libpng/scripts/libpng-config-body.in +96 -0
  289. data/windows/zlib, libpng/libpng/scripts/libpng-config-head.in +21 -0
  290. data/windows/zlib, libpng/libpng/scripts/libpng-config.in +124 -0
  291. data/windows/zlib, libpng/libpng/scripts/libpng.icc +44 -0
  292. data/windows/zlib, libpng/libpng/scripts/libpng.pc-configure.in +10 -0
  293. data/windows/zlib, libpng/libpng/scripts/libpng.pc.in +10 -0
  294. data/windows/zlib, libpng/libpng/scripts/makefile.32sunu +254 -0
  295. data/windows/zlib, libpng/libpng/scripts/makefile.64sunu +254 -0
  296. data/windows/zlib, libpng/libpng/scripts/makefile.acorn +51 -0
  297. data/windows/zlib, libpng/libpng/scripts/makefile.aix +113 -0
  298. data/windows/zlib, libpng/libpng/scripts/makefile.amiga +48 -0
  299. data/windows/zlib, libpng/libpng/scripts/makefile.atari +51 -0
  300. data/windows/zlib, libpng/libpng/scripts/makefile.bc32 +152 -0
  301. data/windows/zlib, libpng/libpng/scripts/makefile.beos +226 -0
  302. data/windows/zlib, libpng/libpng/scripts/makefile.bor +162 -0
  303. data/windows/zlib, libpng/libpng/scripts/makefile.cygwin +299 -0
  304. data/windows/zlib, libpng/libpng/scripts/makefile.darwin +234 -0
  305. data/windows/zlib, libpng/libpng/scripts/makefile.dec +214 -0
  306. data/windows/zlib, libpng/libpng/scripts/makefile.dj2 +55 -0
  307. data/windows/zlib, libpng/libpng/scripts/makefile.elf +275 -0
  308. data/windows/zlib, libpng/libpng/scripts/makefile.freebsd +48 -0
  309. data/windows/zlib, libpng/libpng/scripts/makefile.gcc +79 -0
  310. data/windows/zlib, libpng/libpng/scripts/makefile.gcmmx +271 -0
  311. data/windows/zlib, libpng/libpng/scripts/makefile.hp64 +235 -0
  312. data/windows/zlib, libpng/libpng/scripts/makefile.hpgcc +245 -0
  313. data/windows/zlib, libpng/libpng/scripts/makefile.hpux +232 -0
  314. data/windows/zlib, libpng/libpng/scripts/makefile.ibmc +71 -0
  315. data/windows/zlib, libpng/libpng/scripts/makefile.intel +102 -0
  316. data/windows/zlib, libpng/libpng/scripts/makefile.knr +99 -0
  317. data/windows/zlib, libpng/libpng/scripts/makefile.linux +249 -0
  318. data/windows/zlib, libpng/libpng/scripts/makefile.mingw +289 -0
  319. data/windows/zlib, libpng/libpng/scripts/makefile.mips +83 -0
  320. data/windows/zlib, libpng/libpng/scripts/makefile.msc +86 -0
  321. data/windows/zlib, libpng/libpng/scripts/makefile.ne12bsd +45 -0
  322. data/windows/zlib, libpng/libpng/scripts/makefile.netbsd +45 -0
  323. data/windows/zlib, libpng/libpng/scripts/makefile.nommx +252 -0
  324. data/windows/zlib, libpng/libpng/scripts/makefile.openbsd +73 -0
  325. data/windows/zlib, libpng/libpng/scripts/makefile.os2 +69 -0
  326. data/windows/zlib, libpng/libpng/scripts/makefile.sco +229 -0
  327. data/windows/zlib, libpng/libpng/scripts/makefile.sggcc +242 -0
  328. data/windows/zlib, libpng/libpng/scripts/makefile.sgi +245 -0
  329. data/windows/zlib, libpng/libpng/scripts/makefile.so9 +251 -0
  330. data/windows/zlib, libpng/libpng/scripts/makefile.solaris +249 -0
  331. data/windows/zlib, libpng/libpng/scripts/makefile.solaris-x86 +248 -0
  332. data/windows/zlib, libpng/libpng/scripts/makefile.std +92 -0
  333. data/windows/zlib, libpng/libpng/scripts/makefile.sunos +97 -0
  334. data/windows/zlib, libpng/libpng/scripts/makefile.tc3 +89 -0
  335. data/windows/zlib, libpng/libpng/scripts/makefile.vcawin32 +99 -0
  336. data/windows/zlib, libpng/libpng/scripts/makefile.vcwin32 +99 -0
  337. data/windows/zlib, libpng/libpng/scripts/makefile.watcom +109 -0
  338. data/windows/zlib, libpng/libpng/scripts/makevms.com +144 -0
  339. data/windows/zlib, libpng/libpng/scripts/pngos2.def +257 -0
  340. data/windows/zlib, libpng/libpng/scripts/pngw32.def +238 -0
  341. data/windows/zlib, libpng/libpng/scripts/pngw32.rc +112 -0
  342. data/windows/zlib, libpng/libpng/scripts/smakefile.ppc +30 -0
  343. data/windows/zlib, libpng/zlib/ChangeLog +855 -0
  344. data/windows/zlib, libpng/zlib/FAQ +339 -0
  345. data/windows/zlib, libpng/zlib/INDEX +51 -0
  346. data/windows/zlib, libpng/zlib/Makefile +154 -0
  347. data/windows/zlib, libpng/zlib/Makefile.in +154 -0
  348. data/windows/zlib, libpng/zlib/README +125 -0
  349. data/windows/zlib, libpng/zlib/adler32.c +149 -0
  350. data/windows/zlib, libpng/zlib/algorithm.txt +209 -0
  351. data/windows/zlib, libpng/zlib/amiga/Makefile.pup +66 -0
  352. data/windows/zlib, libpng/zlib/amiga/Makefile.sas +65 -0
  353. data/windows/zlib, libpng/zlib/as400/bndsrc +132 -0
  354. data/windows/zlib, libpng/zlib/as400/compile.clp +123 -0
  355. data/windows/zlib, libpng/zlib/as400/readme.txt +111 -0
  356. data/windows/zlib, libpng/zlib/as400/zlib.inc +331 -0
  357. data/windows/zlib, libpng/zlib/compress.c +79 -0
  358. data/windows/zlib, libpng/zlib/configure +459 -0
  359. data/windows/zlib, libpng/zlib/contrib/README.contrib +71 -0
  360. data/windows/zlib, libpng/zlib/contrib/ada/buffer_demo.adb +106 -0
  361. data/windows/zlib, libpng/zlib/contrib/ada/mtest.adb +156 -0
  362. data/windows/zlib, libpng/zlib/contrib/ada/read.adb +156 -0
  363. data/windows/zlib, libpng/zlib/contrib/ada/readme.txt +65 -0
  364. data/windows/zlib, libpng/zlib/contrib/ada/test.adb +463 -0
  365. data/windows/zlib, libpng/zlib/contrib/ada/zlib-streams.adb +225 -0
  366. data/windows/zlib, libpng/zlib/contrib/ada/zlib-streams.ads +114 -0
  367. data/windows/zlib, libpng/zlib/contrib/ada/zlib-thin.adb +141 -0
  368. data/windows/zlib, libpng/zlib/contrib/ada/zlib-thin.ads +450 -0
  369. data/windows/zlib, libpng/zlib/contrib/ada/zlib.adb +701 -0
  370. data/windows/zlib, libpng/zlib/contrib/ada/zlib.ads +328 -0
  371. data/windows/zlib, libpng/zlib/contrib/ada/zlib.gpr +20 -0
  372. data/windows/zlib, libpng/zlib/contrib/asm586/README.586 +43 -0
  373. data/windows/zlib, libpng/zlib/contrib/asm586/match.S +364 -0
  374. data/windows/zlib, libpng/zlib/contrib/asm686/README.686 +34 -0
  375. data/windows/zlib, libpng/zlib/contrib/asm686/match.S +329 -0
  376. data/windows/zlib, libpng/zlib/contrib/blast/Makefile +8 -0
  377. data/windows/zlib, libpng/zlib/contrib/blast/README +4 -0
  378. data/windows/zlib, libpng/zlib/contrib/blast/blast.c +444 -0
  379. data/windows/zlib, libpng/zlib/contrib/blast/blast.h +71 -0
  380. data/windows/zlib, libpng/zlib/contrib/blast/test.pk +0 -0
  381. data/windows/zlib, libpng/zlib/contrib/blast/test.txt +1 -0
  382. data/windows/zlib, libpng/zlib/contrib/delphi/ZLib.pas +557 -0
  383. data/windows/zlib, libpng/zlib/contrib/delphi/ZLibConst.pas +11 -0
  384. data/windows/zlib, libpng/zlib/contrib/delphi/readme.txt +76 -0
  385. data/windows/zlib, libpng/zlib/contrib/delphi/zlibd32.mak +93 -0
  386. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib.build +33 -0
  387. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib.chm +0 -0
  388. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib.sln +21 -0
  389. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  390. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  391. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  392. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  393. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  394. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  395. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  396. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  397. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  398. data/windows/zlib, libpng/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  399. data/windows/zlib, libpng/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  400. data/windows/zlib, libpng/zlib/contrib/dotzlib/readme.txt +58 -0
  401. data/windows/zlib, libpng/zlib/contrib/infback9/README +1 -0
  402. data/windows/zlib, libpng/zlib/contrib/infback9/infback9.c +608 -0
  403. data/windows/zlib, libpng/zlib/contrib/infback9/infback9.h +37 -0
  404. data/windows/zlib, libpng/zlib/contrib/infback9/inffix9.h +107 -0
  405. data/windows/zlib, libpng/zlib/contrib/infback9/inflate9.h +47 -0
  406. data/windows/zlib, libpng/zlib/contrib/infback9/inftree9.c +323 -0
  407. data/windows/zlib, libpng/zlib/contrib/infback9/inftree9.h +55 -0
  408. data/windows/zlib, libpng/zlib/contrib/inflate86/inffas86.c +1157 -0
  409. data/windows/zlib, libpng/zlib/contrib/inflate86/inffast.S +1368 -0
  410. data/windows/zlib, libpng/zlib/contrib/iostream/test.cpp +24 -0
  411. data/windows/zlib, libpng/zlib/contrib/iostream/zfstream.cpp +329 -0
  412. data/windows/zlib, libpng/zlib/contrib/iostream/zfstream.h +128 -0
  413. data/windows/zlib, libpng/zlib/contrib/iostream2/zstream.h +307 -0
  414. data/windows/zlib, libpng/zlib/contrib/iostream2/zstream_test.cpp +25 -0
  415. data/windows/zlib, libpng/zlib/contrib/iostream3/README +35 -0
  416. data/windows/zlib, libpng/zlib/contrib/iostream3/TODO +17 -0
  417. data/windows/zlib, libpng/zlib/contrib/iostream3/test.cc +50 -0
  418. data/windows/zlib, libpng/zlib/contrib/iostream3/zfstream.cc +479 -0
  419. data/windows/zlib, libpng/zlib/contrib/iostream3/zfstream.h +466 -0
  420. data/windows/zlib, libpng/zlib/contrib/masm686/match.asm +413 -0
  421. data/windows/zlib, libpng/zlib/contrib/masmx64/bld_ml64.bat +2 -0
  422. data/windows/zlib, libpng/zlib/contrib/masmx64/gvmat64.asm +513 -0
  423. data/windows/zlib, libpng/zlib/contrib/masmx64/gvmat64.obj +0 -0
  424. data/windows/zlib, libpng/zlib/contrib/masmx64/inffas8664.c +186 -0
  425. data/windows/zlib, libpng/zlib/contrib/masmx64/inffasx64.asm +392 -0
  426. data/windows/zlib, libpng/zlib/contrib/masmx64/inffasx64.obj +0 -0
  427. data/windows/zlib, libpng/zlib/contrib/masmx64/readme.txt +28 -0
  428. data/windows/zlib, libpng/zlib/contrib/masmx86/bld_ml32.bat +2 -0
  429. data/windows/zlib, libpng/zlib/contrib/masmx86/gvmat32.asm +972 -0
  430. data/windows/zlib, libpng/zlib/contrib/masmx86/gvmat32.obj +0 -0
  431. data/windows/zlib, libpng/zlib/contrib/masmx86/gvmat32c.c +62 -0
  432. data/windows/zlib, libpng/zlib/contrib/masmx86/inffas32.asm +1083 -0
  433. data/windows/zlib, libpng/zlib/contrib/masmx86/inffas32.obj +0 -0
  434. data/windows/zlib, libpng/zlib/contrib/masmx86/mkasm.bat +3 -0
  435. data/windows/zlib, libpng/zlib/contrib/masmx86/readme.txt +21 -0
  436. data/windows/zlib, libpng/zlib/contrib/minizip/ChangeLogUnzip +67 -0
  437. data/windows/zlib, libpng/zlib/contrib/minizip/Makefile +25 -0
  438. data/windows/zlib, libpng/zlib/contrib/minizip/crypt.h +132 -0
  439. data/windows/zlib, libpng/zlib/contrib/minizip/ioapi.c +177 -0
  440. data/windows/zlib, libpng/zlib/contrib/minizip/ioapi.h +75 -0
  441. data/windows/zlib, libpng/zlib/contrib/minizip/iowin32.c +270 -0
  442. data/windows/zlib, libpng/zlib/contrib/minizip/iowin32.h +21 -0
  443. data/windows/zlib, libpng/zlib/contrib/minizip/miniunz.c +585 -0
  444. data/windows/zlib, libpng/zlib/contrib/minizip/minizip.c +420 -0
  445. data/windows/zlib, libpng/zlib/contrib/minizip/mztools.c +281 -0
  446. data/windows/zlib, libpng/zlib/contrib/minizip/mztools.h +31 -0
  447. data/windows/zlib, libpng/zlib/contrib/minizip/unzip.c +1598 -0
  448. data/windows/zlib, libpng/zlib/contrib/minizip/unzip.h +354 -0
  449. data/windows/zlib, libpng/zlib/contrib/minizip/zip.c +1219 -0
  450. data/windows/zlib, libpng/zlib/contrib/minizip/zip.h +235 -0
  451. data/windows/zlib, libpng/zlib/contrib/pascal/example.pas +599 -0
  452. data/windows/zlib, libpng/zlib/contrib/pascal/readme.txt +76 -0
  453. data/windows/zlib, libpng/zlib/contrib/pascal/zlibd32.mak +93 -0
  454. data/windows/zlib, libpng/zlib/contrib/pascal/zlibpas.pas +236 -0
  455. data/windows/zlib, libpng/zlib/contrib/puff/Makefile +8 -0
  456. data/windows/zlib, libpng/zlib/contrib/puff/README +63 -0
  457. data/windows/zlib, libpng/zlib/contrib/puff/puff.c +837 -0
  458. data/windows/zlib, libpng/zlib/contrib/puff/puff.h +31 -0
  459. data/windows/zlib, libpng/zlib/contrib/puff/zeros.raw +0 -0
  460. data/windows/zlib, libpng/zlib/contrib/testzlib/testzlib.c +275 -0
  461. data/windows/zlib, libpng/zlib/contrib/testzlib/testzlib.txt +10 -0
  462. data/windows/zlib, libpng/zlib/contrib/untgz/Makefile +14 -0
  463. data/windows/zlib, libpng/zlib/contrib/untgz/Makefile.msc +17 -0
  464. data/windows/zlib, libpng/zlib/contrib/untgz/untgz.c +674 -0
  465. data/windows/zlib, libpng/zlib/contrib/vstudio/readme.txt +73 -0
  466. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/miniunz.vcproj +126 -0
  467. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/minizip.vcproj +126 -0
  468. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/testzlib.vcproj +126 -0
  469. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlib.rc +32 -0
  470. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
  471. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibvc.def +92 -0
  472. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibvc.sln +78 -0
  473. data/windows/zlib, libpng/zlib/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
  474. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/miniunz.vcproj +566 -0
  475. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/minizip.vcproj +563 -0
  476. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/testzlib.vcproj +948 -0
  477. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
  478. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlib.rc +32 -0
  479. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
  480. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibvc.def +92 -0
  481. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibvc.sln +144 -0
  482. data/windows/zlib, libpng/zlib/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
  483. data/windows/zlib, libpng/zlib/crc32.c +423 -0
  484. data/windows/zlib, libpng/zlib/crc32.h +441 -0
  485. data/windows/zlib, libpng/zlib/deflate.c +1736 -0
  486. data/windows/zlib, libpng/zlib/deflate.h +331 -0
  487. data/windows/zlib, libpng/zlib/example.c +565 -0
  488. data/windows/zlib, libpng/zlib/examples/README.examples +42 -0
  489. data/windows/zlib, libpng/zlib/examples/fitblk.c +233 -0
  490. data/windows/zlib, libpng/zlib/examples/gun.c +693 -0
  491. data/windows/zlib, libpng/zlib/examples/gzappend.c +500 -0
  492. data/windows/zlib, libpng/zlib/examples/gzjoin.c +448 -0
  493. data/windows/zlib, libpng/zlib/examples/gzlog.c +413 -0
  494. data/windows/zlib, libpng/zlib/examples/gzlog.h +58 -0
  495. data/windows/zlib, libpng/zlib/examples/zlib_how.html +523 -0
  496. data/windows/zlib, libpng/zlib/examples/zpipe.c +191 -0
  497. data/windows/zlib, libpng/zlib/examples/zran.c +404 -0
  498. data/windows/zlib, libpng/zlib/gzio.c +1026 -0
  499. data/windows/zlib, libpng/zlib/infback.c +623 -0
  500. data/windows/zlib, libpng/zlib/inffast.c +318 -0
  501. data/windows/zlib, libpng/zlib/inffast.h +11 -0
  502. data/windows/zlib, libpng/zlib/inffixed.h +94 -0
  503. data/windows/zlib, libpng/zlib/inflate.c +1368 -0
  504. data/windows/zlib, libpng/zlib/inflate.h +115 -0
  505. data/windows/zlib, libpng/zlib/inftrees.c +329 -0
  506. data/windows/zlib, libpng/zlib/inftrees.h +55 -0
  507. data/windows/zlib, libpng/zlib/make_vms.com +461 -0
  508. data/windows/zlib, libpng/zlib/minigzip.c +322 -0
  509. data/windows/zlib, libpng/zlib/msdos/Makefile.bor +109 -0
  510. data/windows/zlib, libpng/zlib/msdos/Makefile.dj2 +104 -0
  511. data/windows/zlib, libpng/zlib/msdos/Makefile.emx +69 -0
  512. data/windows/zlib, libpng/zlib/msdos/Makefile.msc +106 -0
  513. data/windows/zlib, libpng/zlib/msdos/Makefile.tc +94 -0
  514. data/windows/zlib, libpng/zlib/old/Makefile.riscos +151 -0
  515. data/windows/zlib, libpng/zlib/old/README +3 -0
  516. data/windows/zlib, libpng/zlib/old/descrip.mms +48 -0
  517. data/windows/zlib, libpng/zlib/old/os2/Makefile.os2 +136 -0
  518. data/windows/zlib, libpng/zlib/old/os2/zlib.def +51 -0
  519. data/windows/zlib, libpng/zlib/old/visual-basic.txt +160 -0
  520. data/windows/zlib, libpng/zlib/old/zlib.html +971 -0
  521. data/windows/zlib, libpng/zlib/projects/README.projects +41 -0
  522. data/windows/zlib, libpng/zlib/projects/visualc6/README.txt +73 -0
  523. data/windows/zlib, libpng/zlib/projects/visualc6/example.dsp +278 -0
  524. data/windows/zlib, libpng/zlib/projects/visualc6/minigzip.dsp +278 -0
  525. data/windows/zlib, libpng/zlib/projects/visualc6/zlib.dsp +609 -0
  526. data/windows/zlib, libpng/zlib/projects/visualc6/zlib.dsw +59 -0
  527. data/windows/zlib, libpng/zlib/qnx/package.qpg +141 -0
  528. data/windows/zlib, libpng/zlib/trees.c +1219 -0
  529. data/windows/zlib, libpng/zlib/trees.h +128 -0
  530. data/windows/zlib, libpng/zlib/uncompr.c +61 -0
  531. data/windows/zlib, libpng/zlib/win32/DLL_FAQ.txt +397 -0
  532. data/windows/zlib, libpng/zlib/win32/Makefile.bor +107 -0
  533. data/windows/zlib, libpng/zlib/win32/Makefile.emx +69 -0
  534. data/windows/zlib, libpng/zlib/win32/Makefile.gcc +141 -0
  535. data/windows/zlib, libpng/zlib/win32/Makefile.msc +126 -0
  536. data/windows/zlib, libpng/zlib/win32/VisualC.txt +3 -0
  537. data/windows/zlib, libpng/zlib/win32/zlib.def +60 -0
  538. data/windows/zlib, libpng/zlib/win32/zlib1.rc +39 -0
  539. data/windows/zlib, libpng/zlib/zconf.h +332 -0
  540. data/windows/zlib, libpng/zlib/zconf.in.h +332 -0
  541. data/windows/zlib, libpng/zlib/zlib.3 +159 -0
  542. data/windows/zlib, libpng/zlib/zlib.h +1357 -0
  543. data/windows/zlib, libpng/zlib/zutil.c +318 -0
  544. data/windows/zlib, libpng/zlib/zutil.h +269 -0
  545. metadata +669 -216
@@ -0,0 +1,343 @@
1
+
2
+ /* pngerror.c - stub functions for i/o and memory allocation
3
+ *
4
+ * Last changed in libpng 1.2.22 [October 13, 2007]
5
+ * For conditions of distribution and use, see copyright notice in png.h
6
+ * Copyright (c) 1998-2007 Glenn Randers-Pehrson
7
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
8
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
9
+ *
10
+ * This file provides a location for all error handling. Users who
11
+ * need special error handling are expected to write replacement functions
12
+ * and use png_set_error_fn() to use those functions. See the instructions
13
+ * at each function.
14
+ */
15
+
16
+ #define PNG_INTERNAL
17
+ #include "png.h"
18
+
19
+ #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
20
+ static void /* PRIVATE */
21
+ png_default_error PNGARG((png_structp png_ptr,
22
+ png_const_charp error_message));
23
+ #ifndef PNG_NO_WARNINGS
24
+ static void /* PRIVATE */
25
+ png_default_warning PNGARG((png_structp png_ptr,
26
+ png_const_charp warning_message));
27
+ #endif /* PNG_NO_WARNINGS */
28
+
29
+ /* This function is called whenever there is a fatal error. This function
30
+ * should not be changed. If there is a need to handle errors differently,
31
+ * you should supply a replacement error function and use png_set_error_fn()
32
+ * to replace the error function at run-time.
33
+ */
34
+ #ifndef PNG_NO_ERROR_TEXT
35
+ void PNGAPI
36
+ png_error(png_structp png_ptr, png_const_charp error_message)
37
+ {
38
+ #ifdef PNG_ERROR_NUMBERS_SUPPORTED
39
+ char msg[16];
40
+ if (png_ptr != NULL)
41
+ {
42
+ if (png_ptr->flags&
43
+ (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
44
+ {
45
+ if (*error_message == '#')
46
+ {
47
+ int offset;
48
+ for (offset=1; offset<15; offset++)
49
+ if (*(error_message+offset) == ' ')
50
+ break;
51
+ if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
52
+ {
53
+ int i;
54
+ for (i=0; i<offset-1; i++)
55
+ msg[i]=error_message[i+1];
56
+ msg[i]='\0';
57
+ error_message=msg;
58
+ }
59
+ else
60
+ error_message+=offset;
61
+ }
62
+ else
63
+ {
64
+ if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT)
65
+ {
66
+ msg[0]='0';
67
+ msg[1]='\0';
68
+ error_message=msg;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ #endif
74
+ if (png_ptr != NULL && png_ptr->error_fn != NULL)
75
+ (*(png_ptr->error_fn))(png_ptr, error_message);
76
+
77
+ /* If the custom handler doesn't exist, or if it returns,
78
+ use the default handler, which will not return. */
79
+ png_default_error(png_ptr, error_message);
80
+ }
81
+ #else
82
+ void PNGAPI
83
+ png_err(png_structp png_ptr)
84
+ {
85
+ if (png_ptr != NULL && png_ptr->error_fn != NULL)
86
+ (*(png_ptr->error_fn))(png_ptr, '\0');
87
+
88
+ /* If the custom handler doesn't exist, or if it returns,
89
+ use the default handler, which will not return. */
90
+ png_default_error(png_ptr, '\0');
91
+ }
92
+ #endif /* PNG_NO_ERROR_TEXT */
93
+
94
+ #ifndef PNG_NO_WARNINGS
95
+ /* This function is called whenever there is a non-fatal error. This function
96
+ * should not be changed. If there is a need to handle warnings differently,
97
+ * you should supply a replacement warning function and use
98
+ * png_set_error_fn() to replace the warning function at run-time.
99
+ */
100
+ void PNGAPI
101
+ png_warning(png_structp png_ptr, png_const_charp warning_message)
102
+ {
103
+ int offset = 0;
104
+ if (png_ptr != NULL)
105
+ {
106
+ #ifdef PNG_ERROR_NUMBERS_SUPPORTED
107
+ if (png_ptr->flags&
108
+ (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))
109
+ #endif
110
+ {
111
+ if (*warning_message == '#')
112
+ {
113
+ for (offset=1; offset<15; offset++)
114
+ if (*(warning_message+offset) == ' ')
115
+ break;
116
+ }
117
+ }
118
+ if (png_ptr != NULL && png_ptr->warning_fn != NULL)
119
+ (*(png_ptr->warning_fn))(png_ptr, warning_message+offset);
120
+ }
121
+ else
122
+ png_default_warning(png_ptr, warning_message+offset);
123
+ }
124
+ #endif /* PNG_NO_WARNINGS */
125
+
126
+
127
+ /* These utilities are used internally to build an error message that relates
128
+ * to the current chunk. The chunk name comes from png_ptr->chunk_name,
129
+ * this is used to prefix the message. The message is limited in length
130
+ * to 63 bytes, the name characters are output as hex digits wrapped in []
131
+ * if the character is invalid.
132
+ */
133
+ #define isnonalpha(c) ((c) < 65 || (c) > 122 || ((c) > 90 && (c) < 97))
134
+ static PNG_CONST char png_digit[16] = {
135
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
136
+ 'A', 'B', 'C', 'D', 'E', 'F'
137
+ };
138
+
139
+ #define PNG_MAX_ERROR_TEXT 64
140
+
141
+ #if !defined(PNG_NO_WARNINGS) || !defined(PNG_NO_ERROR_TEXT)
142
+ static void /* PRIVATE */
143
+ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp
144
+ error_message)
145
+ {
146
+ int iout = 0, iin = 0;
147
+
148
+ while (iin < 4)
149
+ {
150
+ int c = png_ptr->chunk_name[iin++];
151
+ if (isnonalpha(c))
152
+ {
153
+ buffer[iout++] = '[';
154
+ buffer[iout++] = png_digit[(c & 0xf0) >> 4];
155
+ buffer[iout++] = png_digit[c & 0x0f];
156
+ buffer[iout++] = ']';
157
+ }
158
+ else
159
+ {
160
+ buffer[iout++] = (png_byte)c;
161
+ }
162
+ }
163
+
164
+ if (error_message == NULL)
165
+ buffer[iout] = '\0';
166
+ else
167
+ {
168
+ buffer[iout++] = ':';
169
+ buffer[iout++] = ' ';
170
+ png_memcpy(buffer+iout, error_message, PNG_MAX_ERROR_TEXT);
171
+ buffer[iout+PNG_MAX_ERROR_TEXT-1] = '\0';
172
+ }
173
+ }
174
+
175
+ #ifdef PNG_READ_SUPPORTED
176
+ void PNGAPI
177
+ png_chunk_error(png_structp png_ptr, png_const_charp error_message)
178
+ {
179
+ char msg[18+PNG_MAX_ERROR_TEXT];
180
+ if (png_ptr == NULL)
181
+ png_error(png_ptr, error_message);
182
+ else
183
+ {
184
+ png_format_buffer(png_ptr, msg, error_message);
185
+ png_error(png_ptr, msg);
186
+ }
187
+ }
188
+ #endif /* PNG_READ_SUPPORTED */
189
+ #endif /* !defined(PNG_NO_WARNINGS) || !defined(PNG_NO_ERROR_TEXT) */
190
+
191
+ #ifndef PNG_NO_WARNINGS
192
+ void PNGAPI
193
+ png_chunk_warning(png_structp png_ptr, png_const_charp warning_message)
194
+ {
195
+ char msg[18+PNG_MAX_ERROR_TEXT];
196
+ if (png_ptr == NULL)
197
+ png_warning(png_ptr, warning_message);
198
+ else
199
+ {
200
+ png_format_buffer(png_ptr, msg, warning_message);
201
+ png_warning(png_ptr, msg);
202
+ }
203
+ }
204
+ #endif /* PNG_NO_WARNINGS */
205
+
206
+
207
+ /* This is the default error handling function. Note that replacements for
208
+ * this function MUST NOT RETURN, or the program will likely crash. This
209
+ * function is used by default, or if the program supplies NULL for the
210
+ * error function pointer in png_set_error_fn().
211
+ */
212
+ static void /* PRIVATE */
213
+ png_default_error(png_structp png_ptr, png_const_charp error_message)
214
+ {
215
+ #ifndef PNG_NO_CONSOLE_IO
216
+ #ifdef PNG_ERROR_NUMBERS_SUPPORTED
217
+ if (*error_message == '#')
218
+ {
219
+ int offset;
220
+ char error_number[16];
221
+ for (offset=0; offset<15; offset++)
222
+ {
223
+ error_number[offset] = *(error_message+offset+1);
224
+ if (*(error_message+offset) == ' ')
225
+ break;
226
+ }
227
+ if((offset > 1) && (offset < 15))
228
+ {
229
+ error_number[offset-1]='\0';
230
+ fprintf(stderr, "libpng error no. %s: %s\n", error_number,
231
+ error_message+offset);
232
+ }
233
+ else
234
+ fprintf(stderr, "libpng error: %s, offset=%d\n", error_message,offset);
235
+ }
236
+ else
237
+ #endif
238
+ fprintf(stderr, "libpng error: %s\n", error_message);
239
+ #endif
240
+
241
+ #ifdef PNG_SETJMP_SUPPORTED
242
+ if (png_ptr)
243
+ {
244
+ # ifdef USE_FAR_KEYWORD
245
+ {
246
+ jmp_buf jmpbuf;
247
+ png_memcpy(jmpbuf, png_ptr->jmpbuf, png_sizeof(jmp_buf));
248
+ longjmp(jmpbuf, 1);
249
+ }
250
+ # else
251
+ longjmp(png_ptr->jmpbuf, 1);
252
+ # endif
253
+ }
254
+ #else
255
+ PNG_ABORT();
256
+ #endif
257
+ #ifdef PNG_NO_CONSOLE_IO
258
+ error_message = error_message; /* make compiler happy */
259
+ #endif
260
+ }
261
+
262
+ #ifndef PNG_NO_WARNINGS
263
+ /* This function is called when there is a warning, but the library thinks
264
+ * it can continue anyway. Replacement functions don't have to do anything
265
+ * here if you don't want them to. In the default configuration, png_ptr is
266
+ * not used, but it is passed in case it may be useful.
267
+ */
268
+ static void /* PRIVATE */
269
+ png_default_warning(png_structp png_ptr, png_const_charp warning_message)
270
+ {
271
+ #ifndef PNG_NO_CONSOLE_IO
272
+ # ifdef PNG_ERROR_NUMBERS_SUPPORTED
273
+ if (*warning_message == '#')
274
+ {
275
+ int offset;
276
+ char warning_number[16];
277
+ for (offset=0; offset<15; offset++)
278
+ {
279
+ warning_number[offset]=*(warning_message+offset+1);
280
+ if (*(warning_message+offset) == ' ')
281
+ break;
282
+ }
283
+ if((offset > 1) && (offset < 15))
284
+ {
285
+ warning_number[offset-1]='\0';
286
+ fprintf(stderr, "libpng warning no. %s: %s\n", warning_number,
287
+ warning_message+offset);
288
+ }
289
+ else
290
+ fprintf(stderr, "libpng warning: %s\n", warning_message);
291
+ }
292
+ else
293
+ # endif
294
+ fprintf(stderr, "libpng warning: %s\n", warning_message);
295
+ #else
296
+ warning_message = warning_message; /* make compiler happy */
297
+ #endif
298
+ png_ptr = png_ptr; /* make compiler happy */
299
+ }
300
+ #endif /* PNG_NO_WARNINGS */
301
+
302
+ /* This function is called when the application wants to use another method
303
+ * of handling errors and warnings. Note that the error function MUST NOT
304
+ * return to the calling routine or serious problems will occur. The return
305
+ * method used in the default routine calls longjmp(png_ptr->jmpbuf, 1)
306
+ */
307
+ void PNGAPI
308
+ png_set_error_fn(png_structp png_ptr, png_voidp error_ptr,
309
+ png_error_ptr error_fn, png_error_ptr warning_fn)
310
+ {
311
+ if (png_ptr == NULL)
312
+ return;
313
+ png_ptr->error_ptr = error_ptr;
314
+ png_ptr->error_fn = error_fn;
315
+ png_ptr->warning_fn = warning_fn;
316
+ }
317
+
318
+
319
+ /* This function returns a pointer to the error_ptr associated with the user
320
+ * functions. The application should free any memory associated with this
321
+ * pointer before png_write_destroy and png_read_destroy are called.
322
+ */
323
+ png_voidp PNGAPI
324
+ png_get_error_ptr(png_structp png_ptr)
325
+ {
326
+ if (png_ptr == NULL)
327
+ return NULL;
328
+ return ((png_voidp)png_ptr->error_ptr);
329
+ }
330
+
331
+
332
+ #ifdef PNG_ERROR_NUMBERS_SUPPORTED
333
+ void PNGAPI
334
+ png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode)
335
+ {
336
+ if(png_ptr != NULL)
337
+ {
338
+ png_ptr->flags &=
339
+ ((~(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode);
340
+ }
341
+ }
342
+ #endif
343
+ #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */
@@ -0,0 +1,103 @@
1
+ /* pnggccrd.c was removed from libpng-1.2.20. */
2
+
3
+ /* This code snippet is for use by configure's compilation test. */
4
+
5
+ #if (!defined _MSC_VER) && \
6
+ defined(PNG_ASSEMBLER_CODE_SUPPORTED) && \
7
+ defined(PNG_MMX_CODE_SUPPORTED)
8
+
9
+ int PNGAPI png_dummy_mmx_support(void);
10
+
11
+ static int _mmx_supported = 2; // 0: no MMX; 1: MMX supported; 2: not tested
12
+
13
+ int PNGAPI
14
+ png_dummy_mmx_support(void) __attribute__((noinline));
15
+
16
+ int PNGAPI
17
+ png_dummy_mmx_support(void)
18
+ {
19
+ int result;
20
+ #if defined(PNG_MMX_CODE_SUPPORTED) // superfluous, but what the heck
21
+ __asm__ __volatile__ (
22
+ #if defined(__x86_64__)
23
+ "pushq %%rbx \n\t" // rbx gets clobbered by CPUID instruction
24
+ "pushq %%rcx \n\t" // so does rcx...
25
+ "pushq %%rdx \n\t" // ...and rdx (but rcx & rdx safe on Linux)
26
+ "pushfq \n\t" // save Eflag to stack
27
+ "popq %%rax \n\t" // get Eflag from stack into rax
28
+ "movq %%rax, %%rcx \n\t" // make another copy of Eflag in rcx
29
+ "xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21)
30
+ "pushq %%rax \n\t" // save modified Eflag back to stack
31
+ "popfq \n\t" // restore modified value to Eflag reg
32
+ "pushfq \n\t" // save Eflag to stack
33
+ "popq %%rax \n\t" // get Eflag from stack
34
+ "pushq %%rcx \n\t" // save original Eflag to stack
35
+ "popfq \n\t" // restore original Eflag
36
+ #else
37
+ "pushl %%ebx \n\t" // ebx gets clobbered by CPUID instruction
38
+ "pushl %%ecx \n\t" // so does ecx...
39
+ "pushl %%edx \n\t" // ...and edx (but ecx & edx safe on Linux)
40
+ "pushfl \n\t" // save Eflag to stack
41
+ "popl %%eax \n\t" // get Eflag from stack into eax
42
+ "movl %%eax, %%ecx \n\t" // make another copy of Eflag in ecx
43
+ "xorl $0x200000, %%eax \n\t" // toggle ID bit in Eflag (i.e., bit 21)
44
+ "pushl %%eax \n\t" // save modified Eflag back to stack
45
+ "popfl \n\t" // restore modified value to Eflag reg
46
+ "pushfl \n\t" // save Eflag to stack
47
+ "popl %%eax \n\t" // get Eflag from stack
48
+ "pushl %%ecx \n\t" // save original Eflag to stack
49
+ "popfl \n\t" // restore original Eflag
50
+ #endif
51
+ "xorl %%ecx, %%eax \n\t" // compare new Eflag with original Eflag
52
+ "jz 0f \n\t" // if same, CPUID instr. is not supported
53
+
54
+ "xorl %%eax, %%eax \n\t" // set eax to zero
55
+ // ".byte 0x0f, 0xa2 \n\t" // CPUID instruction (two-byte opcode)
56
+ "cpuid \n\t" // get the CPU identification info
57
+ "cmpl $1, %%eax \n\t" // make sure eax return non-zero value
58
+ "jl 0f \n\t" // if eax is zero, MMX is not supported
59
+
60
+ "xorl %%eax, %%eax \n\t" // set eax to zero and...
61
+ "incl %%eax \n\t" // ...increment eax to 1. This pair is
62
+ // faster than the instruction "mov eax, 1"
63
+ "cpuid \n\t" // get the CPU identification info again
64
+ "andl $0x800000, %%edx \n\t" // mask out all bits but MMX bit (23)
65
+ "cmpl $0, %%edx \n\t" // 0 = MMX not supported
66
+ "jz 0f \n\t" // non-zero = yes, MMX IS supported
67
+
68
+ "movl $1, %%eax \n\t" // set return value to 1
69
+ "jmp 1f \n\t" // DONE: have MMX support
70
+
71
+ "0: \n\t" // .NOT_SUPPORTED: target label for jump instructions
72
+ "movl $0, %%eax \n\t" // set return value to 0
73
+ "1: \n\t" // .RETURN: target label for jump instructions
74
+ #if defined(__x86_64__)
75
+ "popq %%rdx \n\t" // restore rdx
76
+ "popq %%rcx \n\t" // restore rcx
77
+ "popq %%rbx \n\t" // restore rbx
78
+ #else
79
+ "popl %%edx \n\t" // restore edx
80
+ "popl %%ecx \n\t" // restore ecx
81
+ "popl %%ebx \n\t" // restore ebx
82
+ #endif
83
+
84
+ // "ret \n\t" // DONE: no MMX support
85
+ // (fall through to standard C "ret")
86
+
87
+ : "=a" (result) // output list
88
+
89
+ : // any variables used on input (none)
90
+
91
+ // no clobber list
92
+ // , "%ebx", "%ecx", "%edx" // GRR: we handle these manually
93
+ // , "memory" // if write to a variable gcc thought was in a reg
94
+ // , "cc" // "condition codes" (flag bits)
95
+ );
96
+ _mmx_supported = result;
97
+ #else
98
+ _mmx_supported = 0;
99
+ #endif /* PNG_MMX_CODE_SUPPORTED */
100
+
101
+ return _mmx_supported;
102
+ }
103
+ #endif
@@ -0,0 +1,901 @@
1
+
2
+ /* pngget.c - retrieval of values from info struct
3
+ *
4
+ * Last changed in libpng 1.2.15 January 5, 2007
5
+ * For conditions of distribution and use, see copyright notice in png.h
6
+ * Copyright (c) 1998-2007 Glenn Randers-Pehrson
7
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
8
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
9
+ */
10
+
11
+ #define PNG_INTERNAL
12
+ #include "png.h"
13
+
14
+ #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED)
15
+
16
+ png_uint_32 PNGAPI
17
+ png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag)
18
+ {
19
+ if (png_ptr != NULL && info_ptr != NULL)
20
+ return(info_ptr->valid & flag);
21
+ else
22
+ return(0);
23
+ }
24
+
25
+ png_uint_32 PNGAPI
26
+ png_get_rowbytes(png_structp png_ptr, png_infop info_ptr)
27
+ {
28
+ if (png_ptr != NULL && info_ptr != NULL)
29
+ return(info_ptr->rowbytes);
30
+ else
31
+ return(0);
32
+ }
33
+
34
+ #if defined(PNG_INFO_IMAGE_SUPPORTED)
35
+ png_bytepp PNGAPI
36
+ png_get_rows(png_structp png_ptr, png_infop info_ptr)
37
+ {
38
+ if (png_ptr != NULL && info_ptr != NULL)
39
+ return(info_ptr->row_pointers);
40
+ else
41
+ return(0);
42
+ }
43
+ #endif
44
+
45
+ #ifdef PNG_EASY_ACCESS_SUPPORTED
46
+ /* easy access to info, added in libpng-0.99 */
47
+ png_uint_32 PNGAPI
48
+ png_get_image_width(png_structp png_ptr, png_infop info_ptr)
49
+ {
50
+ if (png_ptr != NULL && info_ptr != NULL)
51
+ {
52
+ return info_ptr->width;
53
+ }
54
+ return (0);
55
+ }
56
+
57
+ png_uint_32 PNGAPI
58
+ png_get_image_height(png_structp png_ptr, png_infop info_ptr)
59
+ {
60
+ if (png_ptr != NULL && info_ptr != NULL)
61
+ {
62
+ return info_ptr->height;
63
+ }
64
+ return (0);
65
+ }
66
+
67
+ png_byte PNGAPI
68
+ png_get_bit_depth(png_structp png_ptr, png_infop info_ptr)
69
+ {
70
+ if (png_ptr != NULL && info_ptr != NULL)
71
+ {
72
+ return info_ptr->bit_depth;
73
+ }
74
+ return (0);
75
+ }
76
+
77
+ png_byte PNGAPI
78
+ png_get_color_type(png_structp png_ptr, png_infop info_ptr)
79
+ {
80
+ if (png_ptr != NULL && info_ptr != NULL)
81
+ {
82
+ return info_ptr->color_type;
83
+ }
84
+ return (0);
85
+ }
86
+
87
+ png_byte PNGAPI
88
+ png_get_filter_type(png_structp png_ptr, png_infop info_ptr)
89
+ {
90
+ if (png_ptr != NULL && info_ptr != NULL)
91
+ {
92
+ return info_ptr->filter_type;
93
+ }
94
+ return (0);
95
+ }
96
+
97
+ png_byte PNGAPI
98
+ png_get_interlace_type(png_structp png_ptr, png_infop info_ptr)
99
+ {
100
+ if (png_ptr != NULL && info_ptr != NULL)
101
+ {
102
+ return info_ptr->interlace_type;
103
+ }
104
+ return (0);
105
+ }
106
+
107
+ png_byte PNGAPI
108
+ png_get_compression_type(png_structp png_ptr, png_infop info_ptr)
109
+ {
110
+ if (png_ptr != NULL && info_ptr != NULL)
111
+ {
112
+ return info_ptr->compression_type;
113
+ }
114
+ return (0);
115
+ }
116
+
117
+ png_uint_32 PNGAPI
118
+ png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
119
+ {
120
+ if (png_ptr != NULL && info_ptr != NULL)
121
+ #if defined(PNG_pHYs_SUPPORTED)
122
+ if (info_ptr->valid & PNG_INFO_pHYs)
123
+ {
124
+ png_debug1(1, "in %s retrieval function\n", "png_get_x_pixels_per_meter");
125
+ if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
126
+ return (0);
127
+ else return (info_ptr->x_pixels_per_unit);
128
+ }
129
+ #else
130
+ return (0);
131
+ #endif
132
+ return (0);
133
+ }
134
+
135
+ png_uint_32 PNGAPI
136
+ png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
137
+ {
138
+ if (png_ptr != NULL && info_ptr != NULL)
139
+ #if defined(PNG_pHYs_SUPPORTED)
140
+ if (info_ptr->valid & PNG_INFO_pHYs)
141
+ {
142
+ png_debug1(1, "in %s retrieval function\n", "png_get_y_pixels_per_meter");
143
+ if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
144
+ return (0);
145
+ else return (info_ptr->y_pixels_per_unit);
146
+ }
147
+ #else
148
+ return (0);
149
+ #endif
150
+ return (0);
151
+ }
152
+
153
+ png_uint_32 PNGAPI
154
+ png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr)
155
+ {
156
+ if (png_ptr != NULL && info_ptr != NULL)
157
+ #if defined(PNG_pHYs_SUPPORTED)
158
+ if (info_ptr->valid & PNG_INFO_pHYs)
159
+ {
160
+ png_debug1(1, "in %s retrieval function\n", "png_get_pixels_per_meter");
161
+ if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER ||
162
+ info_ptr->x_pixels_per_unit != info_ptr->y_pixels_per_unit)
163
+ return (0);
164
+ else return (info_ptr->x_pixels_per_unit);
165
+ }
166
+ #else
167
+ return (0);
168
+ #endif
169
+ return (0);
170
+ }
171
+
172
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
173
+ float PNGAPI
174
+ png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr)
175
+ {
176
+ if (png_ptr != NULL && info_ptr != NULL)
177
+ #if defined(PNG_pHYs_SUPPORTED)
178
+ if (info_ptr->valid & PNG_INFO_pHYs)
179
+ {
180
+ png_debug1(1, "in %s retrieval function\n", "png_get_aspect_ratio");
181
+ if (info_ptr->x_pixels_per_unit == 0)
182
+ return ((float)0.0);
183
+ else
184
+ return ((float)((float)info_ptr->y_pixels_per_unit
185
+ /(float)info_ptr->x_pixels_per_unit));
186
+ }
187
+ #else
188
+ return (0.0);
189
+ #endif
190
+ return ((float)0.0);
191
+ }
192
+ #endif
193
+
194
+ png_int_32 PNGAPI
195
+ png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr)
196
+ {
197
+ if (png_ptr != NULL && info_ptr != NULL)
198
+ #if defined(PNG_oFFs_SUPPORTED)
199
+ if (info_ptr->valid & PNG_INFO_oFFs)
200
+ {
201
+ png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns");
202
+ if(info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER)
203
+ return (0);
204
+ else return (info_ptr->x_offset);
205
+ }
206
+ #else
207
+ return (0);
208
+ #endif
209
+ return (0);
210
+ }
211
+
212
+ png_int_32 PNGAPI
213
+ png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr)
214
+ {
215
+ if (png_ptr != NULL && info_ptr != NULL)
216
+ #if defined(PNG_oFFs_SUPPORTED)
217
+ if (info_ptr->valid & PNG_INFO_oFFs)
218
+ {
219
+ png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns");
220
+ if(info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER)
221
+ return (0);
222
+ else return (info_ptr->y_offset);
223
+ }
224
+ #else
225
+ return (0);
226
+ #endif
227
+ return (0);
228
+ }
229
+
230
+ png_int_32 PNGAPI
231
+ png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr)
232
+ {
233
+ if (png_ptr != NULL && info_ptr != NULL)
234
+ #if defined(PNG_oFFs_SUPPORTED)
235
+ if (info_ptr->valid & PNG_INFO_oFFs)
236
+ {
237
+ png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns");
238
+ if(info_ptr->offset_unit_type != PNG_OFFSET_PIXEL)
239
+ return (0);
240
+ else return (info_ptr->x_offset);
241
+ }
242
+ #else
243
+ return (0);
244
+ #endif
245
+ return (0);
246
+ }
247
+
248
+ png_int_32 PNGAPI
249
+ png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr)
250
+ {
251
+ if (png_ptr != NULL && info_ptr != NULL)
252
+ #if defined(PNG_oFFs_SUPPORTED)
253
+ if (info_ptr->valid & PNG_INFO_oFFs)
254
+ {
255
+ png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns");
256
+ if(info_ptr->offset_unit_type != PNG_OFFSET_PIXEL)
257
+ return (0);
258
+ else return (info_ptr->y_offset);
259
+ }
260
+ #else
261
+ return (0);
262
+ #endif
263
+ return (0);
264
+ }
265
+
266
+ #if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
267
+ png_uint_32 PNGAPI
268
+ png_get_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
269
+ {
270
+ return ((png_uint_32)((float)png_get_pixels_per_meter(png_ptr, info_ptr)
271
+ *.0254 +.5));
272
+ }
273
+
274
+ png_uint_32 PNGAPI
275
+ png_get_x_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
276
+ {
277
+ return ((png_uint_32)((float)png_get_x_pixels_per_meter(png_ptr, info_ptr)
278
+ *.0254 +.5));
279
+ }
280
+
281
+ png_uint_32 PNGAPI
282
+ png_get_y_pixels_per_inch(png_structp png_ptr, png_infop info_ptr)
283
+ {
284
+ return ((png_uint_32)((float)png_get_y_pixels_per_meter(png_ptr, info_ptr)
285
+ *.0254 +.5));
286
+ }
287
+
288
+ float PNGAPI
289
+ png_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr)
290
+ {
291
+ return ((float)png_get_x_offset_microns(png_ptr, info_ptr)
292
+ *.00003937);
293
+ }
294
+
295
+ float PNGAPI
296
+ png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr)
297
+ {
298
+ return ((float)png_get_y_offset_microns(png_ptr, info_ptr)
299
+ *.00003937);
300
+ }
301
+
302
+ #if defined(PNG_pHYs_SUPPORTED)
303
+ png_uint_32 PNGAPI
304
+ png_get_pHYs_dpi(png_structp png_ptr, png_infop info_ptr,
305
+ png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
306
+ {
307
+ png_uint_32 retval = 0;
308
+
309
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
310
+ {
311
+ png_debug1(1, "in %s retrieval function\n", "pHYs");
312
+ if (res_x != NULL)
313
+ {
314
+ *res_x = info_ptr->x_pixels_per_unit;
315
+ retval |= PNG_INFO_pHYs;
316
+ }
317
+ if (res_y != NULL)
318
+ {
319
+ *res_y = info_ptr->y_pixels_per_unit;
320
+ retval |= PNG_INFO_pHYs;
321
+ }
322
+ if (unit_type != NULL)
323
+ {
324
+ *unit_type = (int)info_ptr->phys_unit_type;
325
+ retval |= PNG_INFO_pHYs;
326
+ if(*unit_type == 1)
327
+ {
328
+ if (res_x != NULL) *res_x = (png_uint_32)(*res_x * .0254 + .50);
329
+ if (res_y != NULL) *res_y = (png_uint_32)(*res_y * .0254 + .50);
330
+ }
331
+ }
332
+ }
333
+ return (retval);
334
+ }
335
+ #endif /* PNG_pHYs_SUPPORTED */
336
+ #endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */
337
+
338
+ /* png_get_channels really belongs in here, too, but it's been around longer */
339
+
340
+ #endif /* PNG_EASY_ACCESS_SUPPORTED */
341
+
342
+ png_byte PNGAPI
343
+ png_get_channels(png_structp png_ptr, png_infop info_ptr)
344
+ {
345
+ if (png_ptr != NULL && info_ptr != NULL)
346
+ return(info_ptr->channels);
347
+ else
348
+ return (0);
349
+ }
350
+
351
+ png_bytep PNGAPI
352
+ png_get_signature(png_structp png_ptr, png_infop info_ptr)
353
+ {
354
+ if (png_ptr != NULL && info_ptr != NULL)
355
+ return(info_ptr->signature);
356
+ else
357
+ return (NULL);
358
+ }
359
+
360
+ #if defined(PNG_bKGD_SUPPORTED)
361
+ png_uint_32 PNGAPI
362
+ png_get_bKGD(png_structp png_ptr, png_infop info_ptr,
363
+ png_color_16p *background)
364
+ {
365
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD)
366
+ && background != NULL)
367
+ {
368
+ png_debug1(1, "in %s retrieval function\n", "bKGD");
369
+ *background = &(info_ptr->background);
370
+ return (PNG_INFO_bKGD);
371
+ }
372
+ return (0);
373
+ }
374
+ #endif
375
+
376
+ #if defined(PNG_cHRM_SUPPORTED)
377
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
378
+ png_uint_32 PNGAPI
379
+ png_get_cHRM(png_structp png_ptr, png_infop info_ptr,
380
+ double *white_x, double *white_y, double *red_x, double *red_y,
381
+ double *green_x, double *green_y, double *blue_x, double *blue_y)
382
+ {
383
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
384
+ {
385
+ png_debug1(1, "in %s retrieval function\n", "cHRM");
386
+ if (white_x != NULL)
387
+ *white_x = (double)info_ptr->x_white;
388
+ if (white_y != NULL)
389
+ *white_y = (double)info_ptr->y_white;
390
+ if (red_x != NULL)
391
+ *red_x = (double)info_ptr->x_red;
392
+ if (red_y != NULL)
393
+ *red_y = (double)info_ptr->y_red;
394
+ if (green_x != NULL)
395
+ *green_x = (double)info_ptr->x_green;
396
+ if (green_y != NULL)
397
+ *green_y = (double)info_ptr->y_green;
398
+ if (blue_x != NULL)
399
+ *blue_x = (double)info_ptr->x_blue;
400
+ if (blue_y != NULL)
401
+ *blue_y = (double)info_ptr->y_blue;
402
+ return (PNG_INFO_cHRM);
403
+ }
404
+ return (0);
405
+ }
406
+ #endif
407
+ #ifdef PNG_FIXED_POINT_SUPPORTED
408
+ png_uint_32 PNGAPI
409
+ png_get_cHRM_fixed(png_structp png_ptr, png_infop info_ptr,
410
+ png_fixed_point *white_x, png_fixed_point *white_y, png_fixed_point *red_x,
411
+ png_fixed_point *red_y, png_fixed_point *green_x, png_fixed_point *green_y,
412
+ png_fixed_point *blue_x, png_fixed_point *blue_y)
413
+ {
414
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
415
+ {
416
+ png_debug1(1, "in %s retrieval function\n", "cHRM");
417
+ if (white_x != NULL)
418
+ *white_x = info_ptr->int_x_white;
419
+ if (white_y != NULL)
420
+ *white_y = info_ptr->int_y_white;
421
+ if (red_x != NULL)
422
+ *red_x = info_ptr->int_x_red;
423
+ if (red_y != NULL)
424
+ *red_y = info_ptr->int_y_red;
425
+ if (green_x != NULL)
426
+ *green_x = info_ptr->int_x_green;
427
+ if (green_y != NULL)
428
+ *green_y = info_ptr->int_y_green;
429
+ if (blue_x != NULL)
430
+ *blue_x = info_ptr->int_x_blue;
431
+ if (blue_y != NULL)
432
+ *blue_y = info_ptr->int_y_blue;
433
+ return (PNG_INFO_cHRM);
434
+ }
435
+ return (0);
436
+ }
437
+ #endif
438
+ #endif
439
+
440
+ #if defined(PNG_gAMA_SUPPORTED)
441
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
442
+ png_uint_32 PNGAPI
443
+ png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma)
444
+ {
445
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
446
+ && file_gamma != NULL)
447
+ {
448
+ png_debug1(1, "in %s retrieval function\n", "gAMA");
449
+ *file_gamma = (double)info_ptr->gamma;
450
+ return (PNG_INFO_gAMA);
451
+ }
452
+ return (0);
453
+ }
454
+ #endif
455
+ #ifdef PNG_FIXED_POINT_SUPPORTED
456
+ png_uint_32 PNGAPI
457
+ png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr,
458
+ png_fixed_point *int_file_gamma)
459
+ {
460
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
461
+ && int_file_gamma != NULL)
462
+ {
463
+ png_debug1(1, "in %s retrieval function\n", "gAMA");
464
+ *int_file_gamma = info_ptr->int_gamma;
465
+ return (PNG_INFO_gAMA);
466
+ }
467
+ return (0);
468
+ }
469
+ #endif
470
+ #endif
471
+
472
+ #if defined(PNG_sRGB_SUPPORTED)
473
+ png_uint_32 PNGAPI
474
+ png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *file_srgb_intent)
475
+ {
476
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB)
477
+ && file_srgb_intent != NULL)
478
+ {
479
+ png_debug1(1, "in %s retrieval function\n", "sRGB");
480
+ *file_srgb_intent = (int)info_ptr->srgb_intent;
481
+ return (PNG_INFO_sRGB);
482
+ }
483
+ return (0);
484
+ }
485
+ #endif
486
+
487
+ #if defined(PNG_iCCP_SUPPORTED)
488
+ png_uint_32 PNGAPI
489
+ png_get_iCCP(png_structp png_ptr, png_infop info_ptr,
490
+ png_charpp name, int *compression_type,
491
+ png_charpp profile, png_uint_32 *proflen)
492
+ {
493
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_iCCP)
494
+ && name != NULL && profile != NULL && proflen != NULL)
495
+ {
496
+ png_debug1(1, "in %s retrieval function\n", "iCCP");
497
+ *name = info_ptr->iccp_name;
498
+ *profile = info_ptr->iccp_profile;
499
+ /* compression_type is a dummy so the API won't have to change
500
+ if we introduce multiple compression types later. */
501
+ *proflen = (int)info_ptr->iccp_proflen;
502
+ *compression_type = (int)info_ptr->iccp_compression;
503
+ return (PNG_INFO_iCCP);
504
+ }
505
+ return (0);
506
+ }
507
+ #endif
508
+
509
+ #if defined(PNG_sPLT_SUPPORTED)
510
+ png_uint_32 PNGAPI
511
+ png_get_sPLT(png_structp png_ptr, png_infop info_ptr,
512
+ png_sPLT_tpp spalettes)
513
+ {
514
+ if (png_ptr != NULL && info_ptr != NULL && spalettes != NULL)
515
+ {
516
+ *spalettes = info_ptr->splt_palettes;
517
+ return ((png_uint_32)info_ptr->splt_palettes_num);
518
+ }
519
+ return (0);
520
+ }
521
+ #endif
522
+
523
+ #if defined(PNG_hIST_SUPPORTED)
524
+ png_uint_32 PNGAPI
525
+ png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist)
526
+ {
527
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST)
528
+ && hist != NULL)
529
+ {
530
+ png_debug1(1, "in %s retrieval function\n", "hIST");
531
+ *hist = info_ptr->hist;
532
+ return (PNG_INFO_hIST);
533
+ }
534
+ return (0);
535
+ }
536
+ #endif
537
+
538
+ png_uint_32 PNGAPI
539
+ png_get_IHDR(png_structp png_ptr, png_infop info_ptr,
540
+ png_uint_32 *width, png_uint_32 *height, int *bit_depth,
541
+ int *color_type, int *interlace_type, int *compression_type,
542
+ int *filter_type)
543
+
544
+ {
545
+ if (png_ptr != NULL && info_ptr != NULL && width != NULL && height != NULL &&
546
+ bit_depth != NULL && color_type != NULL)
547
+ {
548
+ png_debug1(1, "in %s retrieval function\n", "IHDR");
549
+ *width = info_ptr->width;
550
+ *height = info_ptr->height;
551
+ *bit_depth = info_ptr->bit_depth;
552
+ if (info_ptr->bit_depth < 1 || info_ptr->bit_depth > 16)
553
+ png_error(png_ptr, "Invalid bit depth");
554
+ *color_type = info_ptr->color_type;
555
+ if (info_ptr->color_type > 6)
556
+ png_error(png_ptr, "Invalid color type");
557
+ if (compression_type != NULL)
558
+ *compression_type = info_ptr->compression_type;
559
+ if (filter_type != NULL)
560
+ *filter_type = info_ptr->filter_type;
561
+ if (interlace_type != NULL)
562
+ *interlace_type = info_ptr->interlace_type;
563
+
564
+ /* check for potential overflow of rowbytes */
565
+ if (*width == 0 || *width > PNG_UINT_31_MAX)
566
+ png_error(png_ptr, "Invalid image width");
567
+ if (*height == 0 || *height > PNG_UINT_31_MAX)
568
+ png_error(png_ptr, "Invalid image height");
569
+ if (info_ptr->width > (PNG_UINT_32_MAX
570
+ >> 3) /* 8-byte RGBA pixels */
571
+ - 64 /* bigrowbuf hack */
572
+ - 1 /* filter byte */
573
+ - 7*8 /* rounding of width to multiple of 8 pixels */
574
+ - 8) /* extra max_pixel_depth pad */
575
+ {
576
+ png_warning(png_ptr,
577
+ "Width too large for libpng to process image data.");
578
+ }
579
+ return (1);
580
+ }
581
+ return (0);
582
+ }
583
+
584
+ #if defined(PNG_oFFs_SUPPORTED)
585
+ png_uint_32 PNGAPI
586
+ png_get_oFFs(png_structp png_ptr, png_infop info_ptr,
587
+ png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type)
588
+ {
589
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)
590
+ && offset_x != NULL && offset_y != NULL && unit_type != NULL)
591
+ {
592
+ png_debug1(1, "in %s retrieval function\n", "oFFs");
593
+ *offset_x = info_ptr->x_offset;
594
+ *offset_y = info_ptr->y_offset;
595
+ *unit_type = (int)info_ptr->offset_unit_type;
596
+ return (PNG_INFO_oFFs);
597
+ }
598
+ return (0);
599
+ }
600
+ #endif
601
+
602
+ #if defined(PNG_pCAL_SUPPORTED)
603
+ png_uint_32 PNGAPI
604
+ png_get_pCAL(png_structp png_ptr, png_infop info_ptr,
605
+ png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams,
606
+ png_charp *units, png_charpp *params)
607
+ {
608
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pCAL)
609
+ && purpose != NULL && X0 != NULL && X1 != NULL && type != NULL &&
610
+ nparams != NULL && units != NULL && params != NULL)
611
+ {
612
+ png_debug1(1, "in %s retrieval function\n", "pCAL");
613
+ *purpose = info_ptr->pcal_purpose;
614
+ *X0 = info_ptr->pcal_X0;
615
+ *X1 = info_ptr->pcal_X1;
616
+ *type = (int)info_ptr->pcal_type;
617
+ *nparams = (int)info_ptr->pcal_nparams;
618
+ *units = info_ptr->pcal_units;
619
+ *params = info_ptr->pcal_params;
620
+ return (PNG_INFO_pCAL);
621
+ }
622
+ return (0);
623
+ }
624
+ #endif
625
+
626
+ #if defined(PNG_sCAL_SUPPORTED)
627
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
628
+ png_uint_32 PNGAPI
629
+ png_get_sCAL(png_structp png_ptr, png_infop info_ptr,
630
+ int *unit, double *width, double *height)
631
+ {
632
+ if (png_ptr != NULL && info_ptr != NULL &&
633
+ (info_ptr->valid & PNG_INFO_sCAL))
634
+ {
635
+ *unit = info_ptr->scal_unit;
636
+ *width = info_ptr->scal_pixel_width;
637
+ *height = info_ptr->scal_pixel_height;
638
+ return (PNG_INFO_sCAL);
639
+ }
640
+ return(0);
641
+ }
642
+ #else
643
+ #ifdef PNG_FIXED_POINT_SUPPORTED
644
+ png_uint_32 PNGAPI
645
+ png_get_sCAL_s(png_structp png_ptr, png_infop info_ptr,
646
+ int *unit, png_charpp width, png_charpp height)
647
+ {
648
+ if (png_ptr != NULL && info_ptr != NULL &&
649
+ (info_ptr->valid & PNG_INFO_sCAL))
650
+ {
651
+ *unit = info_ptr->scal_unit;
652
+ *width = info_ptr->scal_s_width;
653
+ *height = info_ptr->scal_s_height;
654
+ return (PNG_INFO_sCAL);
655
+ }
656
+ return(0);
657
+ }
658
+ #endif
659
+ #endif
660
+ #endif
661
+
662
+ #if defined(PNG_pHYs_SUPPORTED)
663
+ png_uint_32 PNGAPI
664
+ png_get_pHYs(png_structp png_ptr, png_infop info_ptr,
665
+ png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)
666
+ {
667
+ png_uint_32 retval = 0;
668
+
669
+ if (png_ptr != NULL && info_ptr != NULL &&
670
+ (info_ptr->valid & PNG_INFO_pHYs))
671
+ {
672
+ png_debug1(1, "in %s retrieval function\n", "pHYs");
673
+ if (res_x != NULL)
674
+ {
675
+ *res_x = info_ptr->x_pixels_per_unit;
676
+ retval |= PNG_INFO_pHYs;
677
+ }
678
+ if (res_y != NULL)
679
+ {
680
+ *res_y = info_ptr->y_pixels_per_unit;
681
+ retval |= PNG_INFO_pHYs;
682
+ }
683
+ if (unit_type != NULL)
684
+ {
685
+ *unit_type = (int)info_ptr->phys_unit_type;
686
+ retval |= PNG_INFO_pHYs;
687
+ }
688
+ }
689
+ return (retval);
690
+ }
691
+ #endif
692
+
693
+ png_uint_32 PNGAPI
694
+ png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette,
695
+ int *num_palette)
696
+ {
697
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_PLTE)
698
+ && palette != NULL)
699
+ {
700
+ png_debug1(1, "in %s retrieval function\n", "PLTE");
701
+ *palette = info_ptr->palette;
702
+ *num_palette = info_ptr->num_palette;
703
+ png_debug1(3, "num_palette = %d\n", *num_palette);
704
+ return (PNG_INFO_PLTE);
705
+ }
706
+ return (0);
707
+ }
708
+
709
+ #if defined(PNG_sBIT_SUPPORTED)
710
+ png_uint_32 PNGAPI
711
+ png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit)
712
+ {
713
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sBIT)
714
+ && sig_bit != NULL)
715
+ {
716
+ png_debug1(1, "in %s retrieval function\n", "sBIT");
717
+ *sig_bit = &(info_ptr->sig_bit);
718
+ return (PNG_INFO_sBIT);
719
+ }
720
+ return (0);
721
+ }
722
+ #endif
723
+
724
+ #if defined(PNG_TEXT_SUPPORTED)
725
+ png_uint_32 PNGAPI
726
+ png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr,
727
+ int *num_text)
728
+ {
729
+ if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0)
730
+ {
731
+ png_debug1(1, "in %s retrieval function\n",
732
+ (png_ptr->chunk_name[0] == '\0' ? "text"
733
+ : (png_const_charp)png_ptr->chunk_name));
734
+ if (text_ptr != NULL)
735
+ *text_ptr = info_ptr->text;
736
+ if (num_text != NULL)
737
+ *num_text = info_ptr->num_text;
738
+ return ((png_uint_32)info_ptr->num_text);
739
+ }
740
+ if (num_text != NULL)
741
+ *num_text = 0;
742
+ return(0);
743
+ }
744
+ #endif
745
+
746
+ #if defined(PNG_tIME_SUPPORTED)
747
+ png_uint_32 PNGAPI
748
+ png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time)
749
+ {
750
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tIME)
751
+ && mod_time != NULL)
752
+ {
753
+ png_debug1(1, "in %s retrieval function\n", "tIME");
754
+ *mod_time = &(info_ptr->mod_time);
755
+ return (PNG_INFO_tIME);
756
+ }
757
+ return (0);
758
+ }
759
+ #endif
760
+
761
+ #if defined(PNG_tRNS_SUPPORTED)
762
+ png_uint_32 PNGAPI
763
+ png_get_tRNS(png_structp png_ptr, png_infop info_ptr,
764
+ png_bytep *trans, int *num_trans, png_color_16p *trans_values)
765
+ {
766
+ png_uint_32 retval = 0;
767
+ if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS))
768
+ {
769
+ png_debug1(1, "in %s retrieval function\n", "tRNS");
770
+ if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
771
+ {
772
+ if (trans != NULL)
773
+ {
774
+ *trans = info_ptr->trans;
775
+ retval |= PNG_INFO_tRNS;
776
+ }
777
+ if (trans_values != NULL)
778
+ *trans_values = &(info_ptr->trans_values);
779
+ }
780
+ else /* if (info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) */
781
+ {
782
+ if (trans_values != NULL)
783
+ {
784
+ *trans_values = &(info_ptr->trans_values);
785
+ retval |= PNG_INFO_tRNS;
786
+ }
787
+ if(trans != NULL)
788
+ *trans = NULL;
789
+ }
790
+ if(num_trans != NULL)
791
+ {
792
+ *num_trans = info_ptr->num_trans;
793
+ retval |= PNG_INFO_tRNS;
794
+ }
795
+ }
796
+ return (retval);
797
+ }
798
+ #endif
799
+
800
+ #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
801
+ png_uint_32 PNGAPI
802
+ png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr,
803
+ png_unknown_chunkpp unknowns)
804
+ {
805
+ if (png_ptr != NULL && info_ptr != NULL && unknowns != NULL)
806
+ {
807
+ *unknowns = info_ptr->unknown_chunks;
808
+ return ((png_uint_32)info_ptr->unknown_chunks_num);
809
+ }
810
+ return (0);
811
+ }
812
+ #endif
813
+
814
+ #if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)
815
+ png_byte PNGAPI
816
+ png_get_rgb_to_gray_status (png_structp png_ptr)
817
+ {
818
+ return (png_byte)(png_ptr? png_ptr->rgb_to_gray_status : 0);
819
+ }
820
+ #endif
821
+
822
+ #if defined(PNG_USER_CHUNKS_SUPPORTED)
823
+ png_voidp PNGAPI
824
+ png_get_user_chunk_ptr(png_structp png_ptr)
825
+ {
826
+ return (png_ptr? png_ptr->user_chunk_ptr : NULL);
827
+ }
828
+ #endif
829
+
830
+ #ifdef PNG_WRITE_SUPPORTED
831
+ png_uint_32 PNGAPI
832
+ png_get_compression_buffer_size(png_structp png_ptr)
833
+ {
834
+ return (png_uint_32)(png_ptr? png_ptr->zbuf_size : 0L);
835
+ }
836
+ #endif
837
+
838
+ #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
839
+ #ifndef PNG_1_0_X
840
+ /* this function was added to libpng 1.2.0 and should exist by default */
841
+ png_uint_32 PNGAPI
842
+ png_get_asm_flags (png_structp png_ptr)
843
+ {
844
+ /* obsolete, to be removed from libpng-1.4.0 */
845
+ return (png_ptr? 0L: 0L);
846
+ }
847
+
848
+ /* this function was added to libpng 1.2.0 and should exist by default */
849
+ png_uint_32 PNGAPI
850
+ png_get_asm_flagmask (int flag_select)
851
+ {
852
+ /* obsolete, to be removed from libpng-1.4.0 */
853
+ flag_select=flag_select;
854
+ return 0L;
855
+ }
856
+
857
+ /* GRR: could add this: && defined(PNG_MMX_CODE_SUPPORTED) */
858
+ /* this function was added to libpng 1.2.0 */
859
+ png_uint_32 PNGAPI
860
+ png_get_mmx_flagmask (int flag_select, int *compilerID)
861
+ {
862
+ /* obsolete, to be removed from libpng-1.4.0 */
863
+ flag_select=flag_select;
864
+ *compilerID = -1; /* unknown (i.e., no asm/MMX code compiled) */
865
+ return 0L;
866
+ }
867
+
868
+ /* this function was added to libpng 1.2.0 */
869
+ png_byte PNGAPI
870
+ png_get_mmx_bitdepth_threshold (png_structp png_ptr)
871
+ {
872
+ /* obsolete, to be removed from libpng-1.4.0 */
873
+ return (png_ptr? 0: 0);
874
+ }
875
+
876
+ /* this function was added to libpng 1.2.0 */
877
+ png_uint_32 PNGAPI
878
+ png_get_mmx_rowbytes_threshold (png_structp png_ptr)
879
+ {
880
+ /* obsolete, to be removed from libpng-1.4.0 */
881
+ return (png_ptr? 0L: 0L);
882
+ }
883
+ #endif /* ?PNG_1_0_X */
884
+ #endif /* ?PNG_ASSEMBLER_CODE_SUPPORTED */
885
+
886
+ #ifdef PNG_SET_USER_LIMITS_SUPPORTED
887
+ /* these functions were added to libpng 1.2.6 */
888
+ png_uint_32 PNGAPI
889
+ png_get_user_width_max (png_structp png_ptr)
890
+ {
891
+ return (png_ptr? png_ptr->user_width_max : 0);
892
+ }
893
+ png_uint_32 PNGAPI
894
+ png_get_user_height_max (png_structp png_ptr)
895
+ {
896
+ return (png_ptr? png_ptr->user_height_max : 0);
897
+ }
898
+ #endif /* ?PNG_SET_USER_LIMITS_SUPPORTED */
899
+
900
+
901
+ #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */