webruby 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1364) hide show
  1. checksums.yaml +7 -0
  2. data/bin/webruby +36 -0
  3. data/driver/driver.c +50 -0
  4. data/driver/main.c +40 -0
  5. data/lib/webruby/app.rb +13 -0
  6. data/lib/webruby/config.rb +61 -0
  7. data/lib/webruby/environment.rb +32 -0
  8. data/lib/webruby/rake/files.rake +66 -0
  9. data/lib/webruby/rake/general.rake +22 -0
  10. data/lib/webruby/rake/mruby.rake +44 -0
  11. data/lib/webruby/utility.rb +132 -0
  12. data/lib/webruby.rb +10 -0
  13. data/modules/emscripten/AUTHORS +89 -0
  14. data/modules/emscripten/LICENSE +68 -0
  15. data/modules/emscripten/README.markdown +14 -0
  16. data/modules/emscripten/cmake/Platform/Emscripten.cmake +61 -0
  17. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +24 -0
  18. data/modules/emscripten/em++ +12 -0
  19. data/modules/emscripten/em++.bat +2 -0
  20. data/modules/emscripten/em-config +24 -0
  21. data/modules/emscripten/em-config.bat +2 -0
  22. data/modules/emscripten/emar +24 -0
  23. data/modules/emscripten/emar.bat +2 -0
  24. data/modules/emscripten/emcc +1744 -0
  25. data/modules/emscripten/emcc.bat +2 -0
  26. data/modules/emscripten/emcc.py +5 -0
  27. data/modules/emscripten/emconfigure +27 -0
  28. data/modules/emscripten/emconfigure.bat +2 -0
  29. data/modules/emscripten/emlibtool +11 -0
  30. data/modules/emscripten/emlibtool.bat +2 -0
  31. data/modules/emscripten/emlink.py +293 -0
  32. data/modules/emscripten/emmake +29 -0
  33. data/modules/emscripten/emmake.bat +2 -0
  34. data/modules/emscripten/emranlib +9 -0
  35. data/modules/emscripten/emranlib.bat +2 -0
  36. data/modules/emscripten/emscons +20 -0
  37. data/modules/emscripten/emscripten.py +835 -0
  38. data/modules/emscripten/patches/README +4 -0
  39. data/modules/emscripten/patches/series +2 -0
  40. data/modules/emscripten/scons-tools/closure.py +28 -0
  41. data/modules/emscripten/scons-tools/emscripten.py +359 -0
  42. data/modules/emscripten/scons-tools/llvm.py +33 -0
  43. data/modules/emscripten/src/analyzer.js +1695 -0
  44. data/modules/emscripten/src/compiler.html +48 -0
  45. data/modules/emscripten/src/compiler.js +298 -0
  46. data/modules/emscripten/src/corruptionCheck.js +98 -0
  47. data/modules/emscripten/src/determinstic.js +20 -0
  48. data/modules/emscripten/src/embind/embind.js +1677 -0
  49. data/modules/emscripten/src/embind/emval.js +283 -0
  50. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +97 -0
  51. data/modules/emscripten/src/experimental/batching.diff +44 -0
  52. data/modules/emscripten/src/experimental/functypeopt.diff +113 -0
  53. data/modules/emscripten/src/experimental/multiple_heaps.diff +175 -0
  54. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +197 -0
  55. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +124 -0
  56. data/modules/emscripten/src/experimental/remove__label__s.diff +140 -0
  57. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +99 -0
  58. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +57 -0
  59. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +336 -0
  60. data/modules/emscripten/src/experimental/stringCache.diff +147 -0
  61. data/modules/emscripten/src/fastLong.js +299 -0
  62. data/modules/emscripten/src/framework.js +257 -0
  63. data/modules/emscripten/src/gl-matrix.js +1952 -0
  64. data/modules/emscripten/src/headless.js +904 -0
  65. data/modules/emscripten/src/intertyper.js +1050 -0
  66. data/modules/emscripten/src/jsifier.js +1827 -0
  67. data/modules/emscripten/src/library.js +8270 -0
  68. data/modules/emscripten/src/library_browser.js +911 -0
  69. data/modules/emscripten/src/library_egl.js +491 -0
  70. data/modules/emscripten/src/library_gc.js +236 -0
  71. data/modules/emscripten/src/library_gl.js +4452 -0
  72. data/modules/emscripten/src/library_glfw.js +576 -0
  73. data/modules/emscripten/src/library_glut.js +449 -0
  74. data/modules/emscripten/src/library_jansson.js +320 -0
  75. data/modules/emscripten/src/library_openal.js +602 -0
  76. data/modules/emscripten/src/library_sdl.js +2024 -0
  77. data/modules/emscripten/src/library_strtok_r.c +97 -0
  78. data/modules/emscripten/src/library_xlib.js +23 -0
  79. data/modules/emscripten/src/long.js +1609 -0
  80. data/modules/emscripten/src/modules.js +491 -0
  81. data/modules/emscripten/src/parseTools.js +2474 -0
  82. data/modules/emscripten/src/postamble.js +170 -0
  83. data/modules/emscripten/src/postamble_sharedlib.js +16 -0
  84. data/modules/emscripten/src/preamble.js +914 -0
  85. data/modules/emscripten/src/preamble_sharedlib.js +25 -0
  86. data/modules/emscripten/src/relooper/README.markdown +14 -0
  87. data/modules/emscripten/src/relooper/Relooper.cpp +1236 -0
  88. data/modules/emscripten/src/relooper/Relooper.h +250 -0
  89. data/modules/emscripten/src/relooper/doit.sh +70 -0
  90. data/modules/emscripten/src/relooper/emscripten/glue.js +57 -0
  91. data/modules/emscripten/src/relooper/emscripten/test.js +44 -0
  92. data/modules/emscripten/src/relooper/fuzzer.py +116 -0
  93. data/modules/emscripten/src/relooper/ministring.h +35 -0
  94. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  95. data/modules/emscripten/src/relooper/test.cpp +262 -0
  96. data/modules/emscripten/src/relooper/test.txt +155 -0
  97. data/modules/emscripten/src/relooper/test2.c +44 -0
  98. data/modules/emscripten/src/relooper/test2.txt +12 -0
  99. data/modules/emscripten/src/relooper/test3.c +42 -0
  100. data/modules/emscripten/src/relooper/test3.txt +27 -0
  101. data/modules/emscripten/src/relooper/test4.cpp +40 -0
  102. data/modules/emscripten/src/relooper/test4.txt +23 -0
  103. data/modules/emscripten/src/relooper/test5.cpp +40 -0
  104. data/modules/emscripten/src/relooper/test5.txt +32 -0
  105. data/modules/emscripten/src/relooper/test6.cpp +31 -0
  106. data/modules/emscripten/src/relooper/test6.txt +12 -0
  107. data/modules/emscripten/src/relooper/test_dead.cpp +28 -0
  108. data/modules/emscripten/src/relooper/test_dead.txt +9 -0
  109. data/modules/emscripten/src/relooper/test_debug.cpp +30 -0
  110. data/modules/emscripten/src/relooper/test_debug.txt +128 -0
  111. data/modules/emscripten/src/relooper/test_fuzz1.cpp +52 -0
  112. data/modules/emscripten/src/relooper/test_fuzz1.txt +32 -0
  113. data/modules/emscripten/src/relooper/test_fuzz2.cpp +34 -0
  114. data/modules/emscripten/src/relooper/test_fuzz2.txt +13 -0
  115. data/modules/emscripten/src/relooper/test_fuzz3.cpp +36 -0
  116. data/modules/emscripten/src/relooper/test_fuzz3.txt +9 -0
  117. data/modules/emscripten/src/relooper/test_fuzz4.cpp +38 -0
  118. data/modules/emscripten/src/relooper/test_fuzz4.txt +19 -0
  119. data/modules/emscripten/src/relooper/test_fuzz5.cpp +57 -0
  120. data/modules/emscripten/src/relooper/test_fuzz5.txt +52 -0
  121. data/modules/emscripten/src/relooper/test_fuzz6.cpp +322 -0
  122. data/modules/emscripten/src/relooper/test_fuzz6.txt +108 -0
  123. data/modules/emscripten/src/relooper/test_inf.cpp +813 -0
  124. data/modules/emscripten/src/relooper/test_inf.txt +385 -0
  125. data/modules/emscripten/src/relooper/testit.sh +62 -0
  126. data/modules/emscripten/src/relooper/updateit.sh +17 -0
  127. data/modules/emscripten/src/relooper.js +11516 -0
  128. data/modules/emscripten/src/relooper.js.raw.js +11511 -0
  129. data/modules/emscripten/src/runtime.js +546 -0
  130. data/modules/emscripten/src/settings.js +1284 -0
  131. data/modules/emscripten/src/shell.html +92 -0
  132. data/modules/emscripten/src/shell.js +153 -0
  133. data/modules/emscripten/src/shell_sharedlib.js +12 -0
  134. data/modules/emscripten/src/socket.io.js +3870 -0
  135. data/modules/emscripten/src/utility.js +379 -0
  136. data/modules/emscripten/src/wrtcp.js +821 -0
  137. data/modules/emscripten/system/include/AL/al.h +172 -0
  138. data/modules/emscripten/system/include/AL/alc.h +84 -0
  139. data/modules/emscripten/system/include/EGL/egl.h +329 -0
  140. data/modules/emscripten/system/include/EGL/eglext.h +398 -0
  141. data/modules/emscripten/system/include/EGL/eglplatform.h +141 -0
  142. data/modules/emscripten/system/include/GL/freeglut_std.h +628 -0
  143. data/modules/emscripten/system/include/GL/gl.h +2241 -0
  144. data/modules/emscripten/system/include/GL/glew.h +6 -0
  145. data/modules/emscripten/system/include/GL/glext.h +11127 -0
  146. data/modules/emscripten/system/include/GL/glfw.h +518 -0
  147. data/modules/emscripten/system/include/GL/glu.h +353 -0
  148. data/modules/emscripten/system/include/GL/glut.h +21 -0
  149. data/modules/emscripten/system/include/GLES/gl.h +770 -0
  150. data/modules/emscripten/system/include/GLES/glext.h +1278 -0
  151. data/modules/emscripten/system/include/GLES/glplatform.h +30 -0
  152. data/modules/emscripten/system/include/GLES2/gl2.h +621 -0
  153. data/modules/emscripten/system/include/GLES2/gl2ext.h +803 -0
  154. data/modules/emscripten/system/include/GLES2/gl2platform.h +30 -0
  155. data/modules/emscripten/system/include/KHR/khrplatform.h +277 -0
  156. data/modules/emscripten/system/include/SDL/COPYING +19 -0
  157. data/modules/emscripten/system/include/SDL/SDL.h +162 -0
  158. data/modules/emscripten/system/include/SDL/SDL_assert.h +241 -0
  159. data/modules/emscripten/system/include/SDL/SDL_atomic.h +318 -0
  160. data/modules/emscripten/system/include/SDL/SDL_audio.h +509 -0
  161. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +60 -0
  162. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +75 -0
  163. data/modules/emscripten/system/include/SDL/SDL_compat.h +365 -0
  164. data/modules/emscripten/system/include/SDL/SDL_config.h +48 -0
  165. data/modules/emscripten/system/include/SDL/SDL_config.h.in +297 -0
  166. data/modules/emscripten/system/include/SDL/SDL_config_android.h +133 -0
  167. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +148 -0
  168. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +172 -0
  169. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +74 -0
  170. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +129 -0
  171. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +125 -0
  172. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +207 -0
  173. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +119 -0
  174. data/modules/emscripten/system/include/SDL/SDL_copying.h +20 -0
  175. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +150 -0
  176. data/modules/emscripten/system/include/SDL/SDL_endian.h +248 -0
  177. data/modules/emscripten/system/include/SDL/SDL_error.h +77 -0
  178. data/modules/emscripten/system/include/SDL/SDL_events.h +639 -0
  179. data/modules/emscripten/system/include/SDL/SDL_gesture.h +91 -0
  180. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +246 -0
  181. data/modules/emscripten/system/include/SDL/SDL_haptic.h +1200 -0
  182. data/modules/emscripten/system/include/SDL/SDL_hints.h +206 -0
  183. data/modules/emscripten/system/include/SDL/SDL_image.h +138 -0
  184. data/modules/emscripten/system/include/SDL/SDL_input.h +87 -0
  185. data/modules/emscripten/system/include/SDL/SDL_joystick.h +208 -0
  186. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +169 -0
  187. data/modules/emscripten/system/include/SDL/SDL_keycode.h +344 -0
  188. data/modules/emscripten/system/include/SDL/SDL_loadso.h +85 -0
  189. data/modules/emscripten/system/include/SDL/SDL_log.h +211 -0
  190. data/modules/emscripten/system/include/SDL/SDL_main.h +98 -0
  191. data/modules/emscripten/system/include/SDL/SDL_mixer.h +634 -0
  192. data/modules/emscripten/system/include/SDL/SDL_mouse.h +213 -0
  193. data/modules/emscripten/system/include/SDL/SDL_mutex.h +248 -0
  194. data/modules/emscripten/system/include/SDL/SDL_name.h +11 -0
  195. data/modules/emscripten/system/include/SDL/SDL_opengl.h +11116 -0
  196. data/modules/emscripten/system/include/SDL/SDL_opengles.h +38 -0
  197. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +38 -0
  198. data/modules/emscripten/system/include/SDL/SDL_pixels.h +423 -0
  199. data/modules/emscripten/system/include/SDL/SDL_platform.h +160 -0
  200. data/modules/emscripten/system/include/SDL/SDL_power.h +79 -0
  201. data/modules/emscripten/system/include/SDL/SDL_quit.h +58 -0
  202. data/modules/emscripten/system/include/SDL/SDL_rect.h +136 -0
  203. data/modules/emscripten/system/include/SDL/SDL_render.h +615 -0
  204. data/modules/emscripten/system/include/SDL/SDL_revision.h +2 -0
  205. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +2 -0
  206. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +123 -0
  207. data/modules/emscripten/system/include/SDL/SDL_rwops.h +220 -0
  208. data/modules/emscripten/system/include/SDL/SDL_scancode.h +398 -0
  209. data/modules/emscripten/system/include/SDL/SDL_shape.h +147 -0
  210. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +764 -0
  211. data/modules/emscripten/system/include/SDL/SDL_surface.h +499 -0
  212. data/modules/emscripten/system/include/SDL/SDL_syswm.h +241 -0
  213. data/modules/emscripten/system/include/SDL/SDL_thread.h +182 -0
  214. data/modules/emscripten/system/include/SDL/SDL_timer.h +108 -0
  215. data/modules/emscripten/system/include/SDL/SDL_touch.h +124 -0
  216. data/modules/emscripten/system/include/SDL/SDL_ttf.h +249 -0
  217. data/modules/emscripten/system/include/SDL/SDL_types.h +29 -0
  218. data/modules/emscripten/system/include/SDL/SDL_version.h +166 -0
  219. data/modules/emscripten/system/include/SDL/SDL_video.h +820 -0
  220. data/modules/emscripten/system/include/SDL/begin_code.h +135 -0
  221. data/modules/emscripten/system/include/SDL/close_code.h +37 -0
  222. data/modules/emscripten/system/include/X11/X.h +717 -0
  223. data/modules/emscripten/system/include/X11/Xatom.h +79 -0
  224. data/modules/emscripten/system/include/X11/Xfuncproto.h +127 -0
  225. data/modules/emscripten/system/include/X11/Xlib.h +4023 -0
  226. data/modules/emscripten/system/include/X11/Xosdefs.h +116 -0
  227. data/modules/emscripten/system/include/X11/Xutil.h +826 -0
  228. data/modules/emscripten/system/include/X11/keysym.h +73 -0
  229. data/modules/emscripten/system/include/X11/keysymdef.h +2389 -0
  230. data/modules/emscripten/system/include/bsd/float.h +91 -0
  231. data/modules/emscripten/system/include/bsd/readme.txt +2 -0
  232. data/modules/emscripten/system/include/bsd/sys/mman.h +180 -0
  233. data/modules/emscripten/system/include/bsd/sys/utsname.h +70 -0
  234. data/modules/emscripten/system/include/dlfcn.h +31 -0
  235. data/modules/emscripten/system/include/emscripten/bind.h +1210 -0
  236. data/modules/emscripten/system/include/emscripten/emscripten.h +388 -0
  237. data/modules/emscripten/system/include/emscripten/val.h +311 -0
  238. data/modules/emscripten/system/include/emscripten/wire.h +393 -0
  239. data/modules/emscripten/system/include/err.h +95 -0
  240. data/modules/emscripten/system/include/execinfo.h +44 -0
  241. data/modules/emscripten/system/include/features.h +3 -0
  242. data/modules/emscripten/system/include/gc.h +70 -0
  243. data/modules/emscripten/system/include/gfx/png.h +3798 -0
  244. data/modules/emscripten/system/include/gfx/pngconf.h +1665 -0
  245. data/modules/emscripten/system/include/gfx/tiff.h +654 -0
  246. data/modules/emscripten/system/include/gfx/tiffconf.h +104 -0
  247. data/modules/emscripten/system/include/gfx/tiffio.h +526 -0
  248. data/modules/emscripten/system/include/gfx/tiffvers.h +9 -0
  249. data/modules/emscripten/system/include/jansson.h +323 -0
  250. data/modules/emscripten/system/include/jansson_config.h +54 -0
  251. data/modules/emscripten/system/include/libc/_ansi.h +135 -0
  252. data/modules/emscripten/system/include/libc/_syslist.h +40 -0
  253. data/modules/emscripten/system/include/libc/alloca.h +21 -0
  254. data/modules/emscripten/system/include/libc/ar.h +69 -0
  255. data/modules/emscripten/system/include/libc/argz.h +33 -0
  256. data/modules/emscripten/system/include/libc/assert.h +46 -0
  257. data/modules/emscripten/system/include/libc/complex.h +124 -0
  258. data/modules/emscripten/system/include/libc/ctype.h +196 -0
  259. data/modules/emscripten/system/include/libc/dirent.h +16 -0
  260. data/modules/emscripten/system/include/libc/endian.h +3 -0
  261. data/modules/emscripten/system/include/libc/envlock.h +15 -0
  262. data/modules/emscripten/system/include/libc/envz.h +16 -0
  263. data/modules/emscripten/system/include/libc/errno.h +11 -0
  264. data/modules/emscripten/system/include/libc/fastmath.h +13 -0
  265. data/modules/emscripten/system/include/libc/fcntl.h +1 -0
  266. data/modules/emscripten/system/include/libc/fnmatch.h +55 -0
  267. data/modules/emscripten/system/include/libc/getopt.h +196 -0
  268. data/modules/emscripten/system/include/libc/glob.h +89 -0
  269. data/modules/emscripten/system/include/libc/grp.h +94 -0
  270. data/modules/emscripten/system/include/libc/iconv.h +62 -0
  271. data/modules/emscripten/system/include/libc/ieeefp.h +256 -0
  272. data/modules/emscripten/system/include/libc/ifaddrs.h +64 -0
  273. data/modules/emscripten/system/include/libc/inttypes.h +290 -0
  274. data/modules/emscripten/system/include/libc/iso646.h +43 -0
  275. data/modules/emscripten/system/include/libc/langinfo.h +316 -0
  276. data/modules/emscripten/system/include/libc/libgen.h +23 -0
  277. data/modules/emscripten/system/include/libc/limits.h +155 -0
  278. data/modules/emscripten/system/include/libc/locale.h +80 -0
  279. data/modules/emscripten/system/include/libc/machine/_default_types.h +121 -0
  280. data/modules/emscripten/system/include/libc/machine/_types.h +8 -0
  281. data/modules/emscripten/system/include/libc/machine/ansi.h +1 -0
  282. data/modules/emscripten/system/include/libc/machine/endian.h +31 -0
  283. data/modules/emscripten/system/include/libc/machine/fastmath.h +100 -0
  284. data/modules/emscripten/system/include/libc/machine/ieeefp.h +376 -0
  285. data/modules/emscripten/system/include/libc/machine/malloc.h +8 -0
  286. data/modules/emscripten/system/include/libc/machine/param.h +1 -0
  287. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +43 -0
  288. data/modules/emscripten/system/include/libc/machine/setjmp.h +361 -0
  289. data/modules/emscripten/system/include/libc/machine/stdlib.h +8 -0
  290. data/modules/emscripten/system/include/libc/machine/termios.h +1 -0
  291. data/modules/emscripten/system/include/libc/machine/time.h +19 -0
  292. data/modules/emscripten/system/include/libc/machine/types.h +30 -0
  293. data/modules/emscripten/system/include/libc/malloc.h +169 -0
  294. data/modules/emscripten/system/include/libc/math.h +594 -0
  295. data/modules/emscripten/system/include/libc/newlib.h +2 -0
  296. data/modules/emscripten/system/include/libc/paths.h +7 -0
  297. data/modules/emscripten/system/include/libc/process.h +44 -0
  298. data/modules/emscripten/system/include/libc/pthread.h +362 -0
  299. data/modules/emscripten/system/include/libc/pwd.h +78 -0
  300. data/modules/emscripten/system/include/libc/readme.txt +3 -0
  301. data/modules/emscripten/system/include/libc/reent.h +183 -0
  302. data/modules/emscripten/system/include/libc/regdef.h +7 -0
  303. data/modules/emscripten/system/include/libc/regex.h +102 -0
  304. data/modules/emscripten/system/include/libc/sched.h +97 -0
  305. data/modules/emscripten/system/include/libc/search.h +59 -0
  306. data/modules/emscripten/system/include/libc/setjmp.h +20 -0
  307. data/modules/emscripten/system/include/libc/signal.h +30 -0
  308. data/modules/emscripten/system/include/libc/stdarg.h +50 -0
  309. data/modules/emscripten/system/include/libc/stddef.h +64 -0
  310. data/modules/emscripten/system/include/libc/stdint.h +493 -0
  311. data/modules/emscripten/system/include/libc/stdio.h +694 -0
  312. data/modules/emscripten/system/include/libc/stdlib.h +230 -0
  313. data/modules/emscripten/system/include/libc/string.h +105 -0
  314. data/modules/emscripten/system/include/libc/strings.h +35 -0
  315. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +223 -0
  316. data/modules/emscripten/system/include/libc/sys/_types.h +93 -0
  317. data/modules/emscripten/system/include/libc/sys/cdefs.h +123 -0
  318. data/modules/emscripten/system/include/libc/sys/config.h +255 -0
  319. data/modules/emscripten/system/include/libc/sys/custom_file.h +2 -0
  320. data/modules/emscripten/system/include/libc/sys/dir.h +10 -0
  321. data/modules/emscripten/system/include/libc/sys/dirent.h +58 -0
  322. data/modules/emscripten/system/include/libc/sys/errno.h +190 -0
  323. data/modules/emscripten/system/include/libc/sys/fcntl.h +4 -0
  324. data/modules/emscripten/system/include/libc/sys/features.h +212 -0
  325. data/modules/emscripten/system/include/libc/sys/file.h +2 -0
  326. data/modules/emscripten/system/include/libc/sys/iconvnls.h +77 -0
  327. data/modules/emscripten/system/include/libc/sys/lock.h +24 -0
  328. data/modules/emscripten/system/include/libc/sys/param.h +25 -0
  329. data/modules/emscripten/system/include/libc/sys/queue.h +471 -0
  330. data/modules/emscripten/system/include/libc/sys/reent.h +843 -0
  331. data/modules/emscripten/system/include/libc/sys/resource.h +59 -0
  332. data/modules/emscripten/system/include/libc/sys/sched.h +67 -0
  333. data/modules/emscripten/system/include/libc/sys/signal.h +314 -0
  334. data/modules/emscripten/system/include/libc/sys/stat.h +222 -0
  335. data/modules/emscripten/system/include/libc/sys/stdio.h +27 -0
  336. data/modules/emscripten/system/include/libc/sys/string.h +2 -0
  337. data/modules/emscripten/system/include/libc/sys/syslimits.h +65 -0
  338. data/modules/emscripten/system/include/libc/sys/termios.h +280 -0
  339. data/modules/emscripten/system/include/libc/sys/time.h +85 -0
  340. data/modules/emscripten/system/include/libc/sys/timeb.h +39 -0
  341. data/modules/emscripten/system/include/libc/sys/times.h +28 -0
  342. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +97 -0
  343. data/modules/emscripten/system/include/libc/sys/types.h +481 -0
  344. data/modules/emscripten/system/include/libc/sys/unistd.h +514 -0
  345. data/modules/emscripten/system/include/libc/sys/utime.h +26 -0
  346. data/modules/emscripten/system/include/libc/sys/wait.h +40 -0
  347. data/modules/emscripten/system/include/libc/tar.h +39 -0
  348. data/modules/emscripten/system/include/libc/termios.h +7 -0
  349. data/modules/emscripten/system/include/libc/time.h +273 -0
  350. data/modules/emscripten/system/include/libc/unctrl.h +46 -0
  351. data/modules/emscripten/system/include/libc/unistd.h +6 -0
  352. data/modules/emscripten/system/include/libc/utime.h +12 -0
  353. data/modules/emscripten/system/include/libc/utmp.h +8 -0
  354. data/modules/emscripten/system/include/libc/wchar.h +194 -0
  355. data/modules/emscripten/system/include/libc/wctype.h +47 -0
  356. data/modules/emscripten/system/include/libc/wordexp.h +53 -0
  357. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +91 -0
  358. data/modules/emscripten/system/include/libcxx/LICENSE.txt +76 -0
  359. data/modules/emscripten/system/include/libcxx/__bit_reference +1268 -0
  360. data/modules/emscripten/system/include/libcxx/__config +485 -0
  361. data/modules/emscripten/system/include/libcxx/__debug +193 -0
  362. data/modules/emscripten/system/include/libcxx/__functional_03 +2130 -0
  363. data/modules/emscripten/system/include/libcxx/__functional_base +437 -0
  364. data/modules/emscripten/system/include/libcxx/__functional_base_03 +1087 -0
  365. data/modules/emscripten/system/include/libcxx/__hash_table +1945 -0
  366. data/modules/emscripten/system/include/libcxx/__locale +1435 -0
  367. data/modules/emscripten/system/include/libcxx/__mutex_base +438 -0
  368. data/modules/emscripten/system/include/libcxx/__split_buffer +654 -0
  369. data/modules/emscripten/system/include/libcxx/__sso_allocator +77 -0
  370. data/modules/emscripten/system/include/libcxx/__std_stream +317 -0
  371. data/modules/emscripten/system/include/libcxx/__tree +2293 -0
  372. data/modules/emscripten/system/include/libcxx/__tuple +305 -0
  373. data/modules/emscripten/system/include/libcxx/__tuple_03 +27 -0
  374. data/modules/emscripten/system/include/libcxx/__undef_min_max +19 -0
  375. data/modules/emscripten/system/include/libcxx/algorithm +5458 -0
  376. data/modules/emscripten/system/include/libcxx/array +341 -0
  377. data/modules/emscripten/system/include/libcxx/atomic +1521 -0
  378. data/modules/emscripten/system/include/libcxx/bitset +1081 -0
  379. data/modules/emscripten/system/include/libcxx/cassert +25 -0
  380. data/modules/emscripten/system/include/libcxx/ccomplex +29 -0
  381. data/modules/emscripten/system/include/libcxx/cctype +164 -0
  382. data/modules/emscripten/system/include/libcxx/cerrno +393 -0
  383. data/modules/emscripten/system/include/libcxx/cfenv +82 -0
  384. data/modules/emscripten/system/include/libcxx/cfloat +78 -0
  385. data/modules/emscripten/system/include/libcxx/chrono +898 -0
  386. data/modules/emscripten/system/include/libcxx/cinttypes +259 -0
  387. data/modules/emscripten/system/include/libcxx/ciso646 +25 -0
  388. data/modules/emscripten/system/include/libcxx/climits +48 -0
  389. data/modules/emscripten/system/include/libcxx/clocale +53 -0
  390. data/modules/emscripten/system/include/libcxx/cmath +1683 -0
  391. data/modules/emscripten/system/include/libcxx/codecvt +547 -0
  392. data/modules/emscripten/system/include/libcxx/complex +1526 -0
  393. data/modules/emscripten/system/include/libcxx/complex.h +35 -0
  394. data/modules/emscripten/system/include/libcxx/condition_variable +256 -0
  395. data/modules/emscripten/system/include/libcxx/csetjmp +52 -0
  396. data/modules/emscripten/system/include/libcxx/csignal +58 -0
  397. data/modules/emscripten/system/include/libcxx/cstdarg +48 -0
  398. data/modules/emscripten/system/include/libcxx/cstdbool +32 -0
  399. data/modules/emscripten/system/include/libcxx/cstddef +103 -0
  400. data/modules/emscripten/system/include/libcxx/cstdint +191 -0
  401. data/modules/emscripten/system/include/libcxx/cstdio +175 -0
  402. data/modules/emscripten/system/include/libcxx/cstdlib +172 -0
  403. data/modules/emscripten/system/include/libcxx/cstring +112 -0
  404. data/modules/emscripten/system/include/libcxx/ctgmath +29 -0
  405. data/modules/emscripten/system/include/libcxx/ctime +72 -0
  406. data/modules/emscripten/system/include/libcxx/cwchar +208 -0
  407. data/modules/emscripten/system/include/libcxx/cwctype +213 -0
  408. data/modules/emscripten/system/include/libcxx/deque +2846 -0
  409. data/modules/emscripten/system/include/libcxx/exception +250 -0
  410. data/modules/emscripten/system/include/libcxx/ext/__hash +46 -0
  411. data/modules/emscripten/system/include/libcxx/ext/hash_map +1003 -0
  412. data/modules/emscripten/system/include/libcxx/ext/hash_set +657 -0
  413. data/modules/emscripten/system/include/libcxx/forward_list +1636 -0
  414. data/modules/emscripten/system/include/libcxx/fstream +1415 -0
  415. data/modules/emscripten/system/include/libcxx/functional +2063 -0
  416. data/modules/emscripten/system/include/libcxx/future +2505 -0
  417. data/modules/emscripten/system/include/libcxx/initializer_list +105 -0
  418. data/modules/emscripten/system/include/libcxx/iomanip +504 -0
  419. data/modules/emscripten/system/include/libcxx/ios +988 -0
  420. data/modules/emscripten/system/include/libcxx/iosfwd +194 -0
  421. data/modules/emscripten/system/include/libcxx/iostream +60 -0
  422. data/modules/emscripten/system/include/libcxx/istream +1713 -0
  423. data/modules/emscripten/system/include/libcxx/iterator +1869 -0
  424. data/modules/emscripten/system/include/libcxx/limits +809 -0
  425. data/modules/emscripten/system/include/libcxx/list +2275 -0
  426. data/modules/emscripten/system/include/libcxx/locale +4591 -0
  427. data/modules/emscripten/system/include/libcxx/map +1924 -0
  428. data/modules/emscripten/system/include/libcxx/memory +5437 -0
  429. data/modules/emscripten/system/include/libcxx/mutex +566 -0
  430. data/modules/emscripten/system/include/libcxx/new +117 -0
  431. data/modules/emscripten/system/include/libcxx/numeric +197 -0
  432. data/modules/emscripten/system/include/libcxx/ostream +1286 -0
  433. data/modules/emscripten/system/include/libcxx/queue +717 -0
  434. data/modules/emscripten/system/include/libcxx/random +6750 -0
  435. data/modules/emscripten/system/include/libcxx/ratio +487 -0
  436. data/modules/emscripten/system/include/libcxx/readme.txt +1 -0
  437. data/modules/emscripten/system/include/libcxx/regex +6439 -0
  438. data/modules/emscripten/system/include/libcxx/scoped_allocator +578 -0
  439. data/modules/emscripten/system/include/libcxx/set +1025 -0
  440. data/modules/emscripten/system/include/libcxx/sstream +888 -0
  441. data/modules/emscripten/system/include/libcxx/stack +292 -0
  442. data/modules/emscripten/system/include/libcxx/stdexcept +162 -0
  443. data/modules/emscripten/system/include/libcxx/streambuf +564 -0
  444. data/modules/emscripten/system/include/libcxx/string +3987 -0
  445. data/modules/emscripten/system/include/libcxx/strstream +400 -0
  446. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +5 -0
  447. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +38 -0
  448. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +146 -0
  449. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +79 -0
  450. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +116 -0
  451. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +113 -0
  452. data/modules/emscripten/system/include/libcxx/support/win32/support.h +115 -0
  453. data/modules/emscripten/system/include/libcxx/system_error +636 -0
  454. data/modules/emscripten/system/include/libcxx/tgmath.h +29 -0
  455. data/modules/emscripten/system/include/libcxx/thread +459 -0
  456. data/modules/emscripten/system/include/libcxx/tuple +1092 -0
  457. data/modules/emscripten/system/include/libcxx/type_traits +3040 -0
  458. data/modules/emscripten/system/include/libcxx/typeindex +103 -0
  459. data/modules/emscripten/system/include/libcxx/typeinfo +124 -0
  460. data/modules/emscripten/system/include/libcxx/unordered_map +1864 -0
  461. data/modules/emscripten/system/include/libcxx/unordered_set +1144 -0
  462. data/modules/emscripten/system/include/libcxx/utility +583 -0
  463. data/modules/emscripten/system/include/libcxx/valarray +4779 -0
  464. data/modules/emscripten/system/include/libcxx/vector +3228 -0
  465. data/modules/emscripten/system/include/memory.h +10 -0
  466. data/modules/emscripten/system/include/mntent.h +23 -0
  467. data/modules/emscripten/system/include/net/arpa/inet.h +32 -0
  468. data/modules/emscripten/system/include/net/arpa/nameser.h +535 -0
  469. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +187 -0
  470. data/modules/emscripten/system/include/net/if.h +87 -0
  471. data/modules/emscripten/system/include/net/netinet/in.h +166 -0
  472. data/modules/emscripten/system/include/net/netinet/tcp.h +246 -0
  473. data/modules/emscripten/system/include/net/resolv.h +389 -0
  474. data/modules/emscripten/system/include/netdb.h +94 -0
  475. data/modules/emscripten/system/include/nl_types.h +19 -0
  476. data/modules/emscripten/system/include/poll.h +3 -0
  477. data/modules/emscripten/system/include/pty.h +6 -0
  478. data/modules/emscripten/system/include/semaphore.h +31 -0
  479. data/modules/emscripten/system/include/spawn.h +105 -0
  480. data/modules/emscripten/system/include/stdbool.h +16 -0
  481. data/modules/emscripten/system/include/sys/bitypes.h +3 -0
  482. data/modules/emscripten/system/include/sys/io.h +14 -0
  483. data/modules/emscripten/system/include/sys/ioctl.h +26 -0
  484. data/modules/emscripten/system/include/sys/poll.h +31 -0
  485. data/modules/emscripten/system/include/sys/select.h +14 -0
  486. data/modules/emscripten/system/include/sys/socket.h +101 -0
  487. data/modules/emscripten/system/include/sys/socketvar.h +3 -0
  488. data/modules/emscripten/system/include/sys/statvfs.h +32 -0
  489. data/modules/emscripten/system/include/sys/sysctl.h +14 -0
  490. data/modules/emscripten/system/include/sys/uio.h +22 -0
  491. data/modules/emscripten/system/include/sys/un.h +66 -0
  492. data/modules/emscripten/system/include/sysexits.h +108 -0
  493. data/modules/emscripten/system/include/unwind.h +154 -0
  494. data/modules/emscripten/system/include/xlocale.h +47 -0
  495. data/modules/emscripten/system/include/zconf.h +428 -0
  496. data/modules/emscripten/system/include/zlib.h +1613 -0
  497. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +97 -0
  498. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +47 -0
  499. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +116 -0
  500. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +46 -0
  501. data/modules/emscripten/system/lib/compiler-rt/int_math.h +67 -0
  502. data/modules/emscripten/system/lib/compiler-rt/int_types.h +140 -0
  503. data/modules/emscripten/system/lib/compiler-rt/int_util.h +29 -0
  504. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +56 -0
  505. data/modules/emscripten/system/lib/compiler-rt/readme.txt +20 -0
  506. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +36 -0
  507. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +251 -0
  508. data/modules/emscripten/system/lib/debugging.cpp +24 -0
  509. data/modules/emscripten/system/lib/dlmalloc.c +6299 -0
  510. data/modules/emscripten/system/lib/embind/bind.cpp +63 -0
  511. data/modules/emscripten/system/lib/libc/gen/err.c +49 -0
  512. data/modules/emscripten/system/lib/libc/gen/errx.c +49 -0
  513. data/modules/emscripten/system/lib/libc/gen/verr.c +58 -0
  514. data/modules/emscripten/system/lib/libc/gen/verrx.c +51 -0
  515. data/modules/emscripten/system/lib/libc/gen/vwarn.c +55 -0
  516. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +48 -0
  517. data/modules/emscripten/system/lib/libc/gen/warn.c +49 -0
  518. data/modules/emscripten/system/lib/libc/gen/warnx.c +49 -0
  519. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +92 -0
  520. data/modules/emscripten/system/lib/libc/musl/readme.txt +1 -0
  521. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +125 -0
  522. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +7 -0
  523. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +14 -0
  524. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +8 -0
  525. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +10 -0
  526. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +63 -0
  527. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +9 -0
  528. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +7 -0
  529. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +6 -0
  530. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +19 -0
  531. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +12 -0
  532. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +19 -0
  533. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +6 -0
  534. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +7 -0
  535. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +62 -0
  536. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +109 -0
  537. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +268 -0
  538. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +8 -0
  539. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +16 -0
  540. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +29 -0
  541. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +42 -0
  542. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +22 -0
  543. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +71 -0
  544. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +7 -0
  545. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +38 -0
  546. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +22 -0
  547. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +17 -0
  548. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +18 -0
  549. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +57 -0
  550. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +17 -0
  551. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +65 -0
  552. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +100 -0
  553. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +7 -0
  554. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +53 -0
  555. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +38 -0
  556. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +52 -0
  557. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +58 -0
  558. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +7 -0
  559. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +8 -0
  560. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +18 -0
  561. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +6 -0
  562. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +6 -0
  563. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +7 -0
  564. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +6 -0
  565. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +7 -0
  566. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +8 -0
  567. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +7 -0
  568. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +8 -0
  569. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +10 -0
  570. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +11 -0
  571. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +8 -0
  572. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +9 -0
  573. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +6 -0
  574. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +10 -0
  575. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +7 -0
  576. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +9 -0
  577. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +8 -0
  578. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +7 -0
  579. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +8 -0
  580. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +8 -0
  581. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +108 -0
  582. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +12 -0
  583. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +6 -0
  584. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +8 -0
  585. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +8 -0
  586. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +9 -0
  587. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +12 -0
  588. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +9 -0
  589. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +511 -0
  590. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +305 -0
  591. data/modules/emscripten/system/lib/libc.symbols +81 -0
  592. data/modules/emscripten/system/lib/libcextra.symbols +61 -0
  593. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +91 -0
  594. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +76 -0
  595. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +83 -0
  596. data/modules/emscripten/system/lib/libcxx/bind.cpp +30 -0
  597. data/modules/emscripten/system/lib/libcxx/chrono.cpp +132 -0
  598. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +81 -0
  599. data/modules/emscripten/system/lib/libcxx/debug.cpp +504 -0
  600. data/modules/emscripten/system/lib/libcxx/exception.cpp +226 -0
  601. data/modules/emscripten/system/lib/libcxx/future.cpp +285 -0
  602. data/modules/emscripten/system/lib/libcxx/hash.cpp +564 -0
  603. data/modules/emscripten/system/lib/libcxx/ios.cpp +455 -0
  604. data/modules/emscripten/system/lib/libcxx/iostream.cpp +68 -0
  605. data/modules/emscripten/system/lib/libcxx/locale.cpp +6093 -0
  606. data/modules/emscripten/system/lib/libcxx/memory.cpp +223 -0
  607. data/modules/emscripten/system/lib/libcxx/mutex.cpp +250 -0
  608. data/modules/emscripten/system/lib/libcxx/new.cpp +205 -0
  609. data/modules/emscripten/system/lib/libcxx/random.cpp +48 -0
  610. data/modules/emscripten/system/lib/libcxx/readme.txt +1 -0
  611. data/modules/emscripten/system/lib/libcxx/regex.cpp +325 -0
  612. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +196 -0
  613. data/modules/emscripten/system/lib/libcxx/string.cpp +687 -0
  614. data/modules/emscripten/system/lib/libcxx/strstream.cpp +329 -0
  615. data/modules/emscripten/system/lib/libcxx/support/solaris/README +4 -0
  616. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +76 -0
  617. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +93 -0
  618. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +245 -0
  619. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +94 -0
  620. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +70 -0
  621. data/modules/emscripten/system/lib/libcxx/symbols +2927 -0
  622. data/modules/emscripten/system/lib/libcxx/system_error.cpp +201 -0
  623. data/modules/emscripten/system/lib/libcxx/thread.cpp +208 -0
  624. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +60 -0
  625. data/modules/emscripten/system/lib/libcxx/utility.cpp +17 -0
  626. data/modules/emscripten/system/lib/libcxx/valarray.cpp +54 -0
  627. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +38 -0
  628. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +76 -0
  629. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +167 -0
  630. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +175 -0
  631. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +99 -0
  632. data/modules/emscripten/system/lib/libcxxabi/readme.txt +1 -0
  633. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +50 -0
  634. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +33 -0
  635. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +34 -0
  636. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +11036 -0
  637. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +622 -0
  638. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +123 -0
  639. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +91 -0
  640. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +231 -0
  641. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +125 -0
  642. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +54 -0
  643. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +242 -0
  644. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +1055 -0
  645. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +27 -0
  646. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +367 -0
  647. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +31 -0
  648. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +41 -0
  649. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +174 -0
  650. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +1146 -0
  651. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +248 -0
  652. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +169 -0
  653. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +53 -0
  654. data/modules/emscripten/system/lib/libcxxabi/symbols +236 -0
  655. data/modules/emscripten/system/lib/sdl.cpp +13 -0
  656. data/modules/emscripten/system/lib/sdl.symbols +1 -0
  657. data/modules/emscripten/tests/hello_world.js +92 -0
  658. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +2347 -0
  659. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +4 -0
  660. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +657 -0
  661. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +147 -0
  662. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +74 -0
  663. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +249 -0
  664. data/modules/emscripten/third_party/CppHeaderParser/README.html +544 -0
  665. data/modules/emscripten/third_party/CppHeaderParser/README.txt +226 -0
  666. data/modules/emscripten/third_party/CppHeaderParser/setup.py +43 -0
  667. data/modules/emscripten/third_party/ansidecl.h +371 -0
  668. data/modules/emscripten/third_party/closure-compiler/COPYING +202 -0
  669. data/modules/emscripten/third_party/closure-compiler/README +292 -0
  670. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  671. data/modules/emscripten/third_party/closure-compiler/readme.txt +3 -0
  672. data/modules/emscripten/third_party/cp-demangle.h +161 -0
  673. data/modules/emscripten/third_party/demangle.h +549 -0
  674. data/modules/emscripten/third_party/demangler.py +49 -0
  675. data/modules/emscripten/third_party/gcc_demangler.c +4226 -0
  676. data/modules/emscripten/third_party/gcc_demangler.js +21282 -0
  677. data/modules/emscripten/third_party/jni/emjvm.cpp +133 -0
  678. data/modules/emscripten/third_party/jni/emjvm.h +8 -0
  679. data/modules/emscripten/third_party/jni/emjvm.js +185 -0
  680. data/modules/emscripten/third_party/jni/jni.h +1154 -0
  681. data/modules/emscripten/third_party/libiberty.h +634 -0
  682. data/modules/emscripten/third_party/lzma.js/README.markdown +37 -0
  683. data/modules/emscripten/third_party/lzma.js/doit.sh +37 -0
  684. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +7 -0
  685. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +676 -0
  686. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +201 -0
  687. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +56 -0
  688. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +160 -0
  689. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +138 -0
  690. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +22 -0
  691. data/modules/emscripten/third_party/lzma.js/lzip/README +77 -0
  692. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +204 -0
  693. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +106 -0
  694. data/modules/emscripten/third_party/lzma.js/lzip/configure +192 -0
  695. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +252 -0
  696. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +268 -0
  697. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +643 -0
  698. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +582 -0
  699. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +378 -0
  700. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +171 -0
  701. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +264 -0
  702. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +545 -0
  703. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +27 -0
  704. data/modules/emscripten/third_party/lzma.js/lzma-full.js +27 -0
  705. data/modules/emscripten/third_party/lzma.js/native_test.sh +5 -0
  706. data/modules/emscripten/third_party/lzma.js/post.js +13 -0
  707. data/modules/emscripten/third_party/lzma.js/pre.js +13 -0
  708. data/modules/emscripten/third_party/lzma.js/test-decoder.js +39 -0
  709. data/modules/emscripten/third_party/lzma.js/test-full.html +9 -0
  710. data/modules/emscripten/third_party/lzma.js/test-full.js +78 -0
  711. data/modules/emscripten/third_party/ply/ANNOUNCE +40 -0
  712. data/modules/emscripten/third_party/ply/CHANGES +1093 -0
  713. data/modules/emscripten/third_party/ply/PKG-INFO +22 -0
  714. data/modules/emscripten/third_party/ply/README +271 -0
  715. data/modules/emscripten/third_party/ply/TODO +16 -0
  716. data/modules/emscripten/third_party/ply/doc/internal.html +874 -0
  717. data/modules/emscripten/third_party/ply/doc/makedoc.py +194 -0
  718. data/modules/emscripten/third_party/ply/doc/ply.html +3262 -0
  719. data/modules/emscripten/third_party/ply/example/BASIC/README +79 -0
  720. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +71 -0
  721. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +74 -0
  722. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +79 -0
  723. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +441 -0
  724. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +424 -0
  725. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +14 -0
  726. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +5 -0
  727. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +22 -0
  728. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +13 -0
  729. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +4 -0
  730. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +17 -0
  731. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +12 -0
  732. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +13 -0
  733. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +4 -0
  734. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +20 -0
  735. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +18 -0
  736. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +5 -0
  737. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +4 -0
  738. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +709 -0
  739. data/modules/emscripten/third_party/ply/example/GardenSnake/README +5 -0
  740. data/modules/emscripten/third_party/ply/example/README +10 -0
  741. data/modules/emscripten/third_party/ply/example/ansic/README +2 -0
  742. data/modules/emscripten/third_party/ply/example/ansic/clex.py +164 -0
  743. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +863 -0
  744. data/modules/emscripten/third_party/ply/example/calc/calc.py +107 -0
  745. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +113 -0
  746. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +157 -0
  747. data/modules/emscripten/third_party/ply/example/cleanup.sh +2 -0
  748. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +130 -0
  749. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +48 -0
  750. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +160 -0
  751. data/modules/emscripten/third_party/ply/example/optcalc/README +9 -0
  752. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +119 -0
  753. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +117 -0
  754. data/modules/emscripten/third_party/ply/example/yply/README +41 -0
  755. data/modules/emscripten/third_party/ply/example/yply/ylex.py +112 -0
  756. data/modules/emscripten/third_party/ply/example/yply/yparse.py +217 -0
  757. data/modules/emscripten/third_party/ply/example/yply/yply.py +53 -0
  758. data/modules/emscripten/third_party/ply/ply/__init__.py +4 -0
  759. data/modules/emscripten/third_party/ply/ply/cpp.py +898 -0
  760. data/modules/emscripten/third_party/ply/ply/ctokens.py +133 -0
  761. data/modules/emscripten/third_party/ply/ply/lex.py +1058 -0
  762. data/modules/emscripten/third_party/ply/ply/yacc.py +3276 -0
  763. data/modules/emscripten/third_party/ply/setup.py +31 -0
  764. data/modules/emscripten/third_party/ply/test/README +7 -0
  765. data/modules/emscripten/third_party/ply/test/calclex.py +49 -0
  766. data/modules/emscripten/third_party/ply/test/cleanup.sh +4 -0
  767. data/modules/emscripten/third_party/ply/test/lex_closure.py +54 -0
  768. data/modules/emscripten/third_party/ply/test/lex_doc1.py +26 -0
  769. data/modules/emscripten/third_party/ply/test/lex_dup1.py +29 -0
  770. data/modules/emscripten/third_party/ply/test/lex_dup2.py +33 -0
  771. data/modules/emscripten/third_party/ply/test/lex_dup3.py +31 -0
  772. data/modules/emscripten/third_party/ply/test/lex_empty.py +20 -0
  773. data/modules/emscripten/third_party/ply/test/lex_error1.py +24 -0
  774. data/modules/emscripten/third_party/ply/test/lex_error2.py +26 -0
  775. data/modules/emscripten/third_party/ply/test/lex_error3.py +27 -0
  776. data/modules/emscripten/third_party/ply/test/lex_error4.py +27 -0
  777. data/modules/emscripten/third_party/ply/test/lex_hedit.py +47 -0
  778. data/modules/emscripten/third_party/ply/test/lex_ignore.py +31 -0
  779. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +29 -0
  780. data/modules/emscripten/third_party/ply/test/lex_literal1.py +25 -0
  781. data/modules/emscripten/third_party/ply/test/lex_literal2.py +25 -0
  782. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +27 -0
  783. data/modules/emscripten/third_party/ply/test/lex_module.py +10 -0
  784. data/modules/emscripten/third_party/ply/test/lex_module_import.py +42 -0
  785. data/modules/emscripten/third_party/ply/test/lex_object.py +55 -0
  786. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +54 -0
  787. data/modules/emscripten/third_party/ply/test/lex_optimize.py +50 -0
  788. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +50 -0
  789. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +52 -0
  790. data/modules/emscripten/third_party/ply/test/lex_re1.py +27 -0
  791. data/modules/emscripten/third_party/ply/test/lex_re2.py +27 -0
  792. data/modules/emscripten/third_party/ply/test/lex_re3.py +29 -0
  793. data/modules/emscripten/third_party/ply/test/lex_rule1.py +27 -0
  794. data/modules/emscripten/third_party/ply/test/lex_rule2.py +29 -0
  795. data/modules/emscripten/third_party/ply/test/lex_rule3.py +27 -0
  796. data/modules/emscripten/third_party/ply/test/lex_state1.py +40 -0
  797. data/modules/emscripten/third_party/ply/test/lex_state2.py +40 -0
  798. data/modules/emscripten/third_party/ply/test/lex_state3.py +42 -0
  799. data/modules/emscripten/third_party/ply/test/lex_state4.py +41 -0
  800. data/modules/emscripten/third_party/ply/test/lex_state5.py +40 -0
  801. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +39 -0
  802. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +40 -0
  803. data/modules/emscripten/third_party/ply/test/lex_state_try.py +45 -0
  804. data/modules/emscripten/third_party/ply/test/lex_token1.py +19 -0
  805. data/modules/emscripten/third_party/ply/test/lex_token2.py +22 -0
  806. data/modules/emscripten/third_party/ply/test/lex_token3.py +24 -0
  807. data/modules/emscripten/third_party/ply/test/lex_token4.py +26 -0
  808. data/modules/emscripten/third_party/ply/test/lex_token5.py +31 -0
  809. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +29 -0
  810. data/modules/emscripten/third_party/ply/test/testlex.py +606 -0
  811. data/modules/emscripten/third_party/ply/test/testyacc.py +347 -0
  812. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +68 -0
  813. data/modules/emscripten/third_party/ply/test/yacc_badid.py +77 -0
  814. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +64 -0
  815. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +68 -0
  816. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +68 -0
  817. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +68 -0
  818. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +68 -0
  819. data/modules/emscripten/third_party/ply/test/yacc_dup.py +68 -0
  820. data/modules/emscripten/third_party/ply/test/yacc_error1.py +68 -0
  821. data/modules/emscripten/third_party/ply/test/yacc_error2.py +68 -0
  822. data/modules/emscripten/third_party/ply/test/yacc_error3.py +67 -0
  823. data/modules/emscripten/third_party/ply/test/yacc_error4.py +72 -0
  824. data/modules/emscripten/third_party/ply/test/yacc_inf.py +56 -0
  825. data/modules/emscripten/third_party/ply/test/yacc_literal.py +69 -0
  826. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +68 -0
  827. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +68 -0
  828. data/modules/emscripten/third_party/ply/test/yacc_nested.py +33 -0
  829. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +67 -0
  830. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +66 -0
  831. data/modules/emscripten/third_party/ply/test/yacc_nop.py +68 -0
  832. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +66 -0
  833. data/modules/emscripten/third_party/ply/test/yacc_notok.py +67 -0
  834. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +68 -0
  835. data/modules/emscripten/third_party/ply/test/yacc_rr.py +72 -0
  836. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +30 -0
  837. data/modules/emscripten/third_party/ply/test/yacc_simple.py +68 -0
  838. data/modules/emscripten/third_party/ply/test/yacc_sr.py +63 -0
  839. data/modules/emscripten/third_party/ply/test/yacc_term1.py +68 -0
  840. data/modules/emscripten/third_party/ply/test/yacc_unused.py +77 -0
  841. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +72 -0
  842. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +63 -0
  843. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +63 -0
  844. data/modules/emscripten/third_party/readme.txt +7 -0
  845. data/modules/emscripten/third_party/websockify/CHANGES.txt +23 -0
  846. data/modules/emscripten/third_party/websockify/LICENSE.txt +16 -0
  847. data/modules/emscripten/third_party/websockify/MANIFEST.in +1 -0
  848. data/modules/emscripten/third_party/websockify/Makefile +11 -0
  849. data/modules/emscripten/third_party/websockify/README.md +168 -0
  850. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +39 -0
  851. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +24 -0
  852. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +61 -0
  853. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +19 -0
  854. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +129 -0
  855. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +36 -0
  856. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +37 -0
  857. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +41 -0
  858. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +75 -0
  859. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +20 -0
  860. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +621 -0
  861. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +165 -0
  862. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +373 -0
  863. data/modules/emscripten/third_party/websockify/docs/TODO +9 -0
  864. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +4 -0
  865. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +114 -0
  866. data/modules/emscripten/third_party/websockify/docs/notes +17 -0
  867. data/modules/emscripten/third_party/websockify/docs/release.txt +9 -0
  868. data/modules/emscripten/third_party/websockify/docs/websockify.1 +110 -0
  869. data/modules/emscripten/third_party/websockify/include/VT100.js +919 -0
  870. data/modules/emscripten/third_party/websockify/include/base64.js +114 -0
  871. data/modules/emscripten/third_party/websockify/include/keysym.js +99 -0
  872. data/modules/emscripten/third_party/websockify/include/util.js +359 -0
  873. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +109 -0
  874. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  875. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +4 -0
  876. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +391 -0
  877. data/modules/emscripten/third_party/websockify/include/websock.js +422 -0
  878. data/modules/emscripten/third_party/websockify/include/webutil.js +216 -0
  879. data/modules/emscripten/third_party/websockify/include/wsirc.js +235 -0
  880. data/modules/emscripten/third_party/websockify/include/wstelnet.js +335 -0
  881. data/modules/emscripten/third_party/websockify/other/Makefile +14 -0
  882. data/modules/emscripten/third_party/websockify/other/README.md +51 -0
  883. data/modules/emscripten/third_party/websockify/other/launch.sh +108 -0
  884. data/modules/emscripten/third_party/websockify/other/project.clj +13 -0
  885. data/modules/emscripten/third_party/websockify/other/websocket.c +802 -0
  886. data/modules/emscripten/third_party/websockify/other/websocket.h +84 -0
  887. data/modules/emscripten/third_party/websockify/other/websocket.rb +456 -0
  888. data/modules/emscripten/third_party/websockify/other/websockify.c +385 -0
  889. data/modules/emscripten/third_party/websockify/other/websockify.clj +233 -0
  890. data/modules/emscripten/third_party/websockify/other/websockify.js +196 -0
  891. data/modules/emscripten/third_party/websockify/other/websockify.rb +171 -0
  892. data/modules/emscripten/third_party/websockify/other/wswrap +22 -0
  893. data/modules/emscripten/third_party/websockify/rebind +18 -0
  894. data/modules/emscripten/third_party/websockify/rebind.c +94 -0
  895. data/modules/emscripten/third_party/websockify/run +5 -0
  896. data/modules/emscripten/third_party/websockify/setup.py +30 -0
  897. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +29 -0
  898. data/modules/emscripten/third_party/websockify/tests/base64.html +91 -0
  899. data/modules/emscripten/third_party/websockify/tests/base64.js +12 -0
  900. data/modules/emscripten/third_party/websockify/tests/echo.html +148 -0
  901. data/modules/emscripten/third_party/websockify/tests/echo.py +75 -0
  902. data/modules/emscripten/third_party/websockify/tests/echo.rb +62 -0
  903. data/modules/emscripten/third_party/websockify/tests/latency.html +290 -0
  904. data/modules/emscripten/third_party/websockify/tests/latency.py +75 -0
  905. data/modules/emscripten/third_party/websockify/tests/load.html +250 -0
  906. data/modules/emscripten/third_party/websockify/tests/load.py +167 -0
  907. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +168 -0
  908. data/modules/emscripten/third_party/websockify/tests/simple.html +68 -0
  909. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +22 -0
  910. data/modules/emscripten/third_party/websockify/websockify/__init__.py +2 -0
  911. data/modules/emscripten/third_party/websockify/websockify/websocket.py +982 -0
  912. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +393 -0
  913. data/modules/emscripten/third_party/websockify/websockify.py +5 -0
  914. data/modules/emscripten/third_party/websockify/wsirc.html +99 -0
  915. data/modules/emscripten/third_party/websockify/wstelnet.html +74 -0
  916. data/modules/emscripten/tools/__init__.py +0 -0
  917. data/modules/emscripten/tools/__init__.pyc +0 -0
  918. data/modules/emscripten/tools/autodebugger.py +289 -0
  919. data/modules/emscripten/tools/autodebugger_c.py +37 -0
  920. data/modules/emscripten/tools/autodebugger_indenter.py +18 -0
  921. data/modules/emscripten/tools/autodebugger_js.py +47 -0
  922. data/modules/emscripten/tools/autodediffer.py +60 -0
  923. data/modules/emscripten/tools/bindings_generator.py +832 -0
  924. data/modules/emscripten/tools/bisect_pair.py +88 -0
  925. data/modules/emscripten/tools/cache.py +198 -0
  926. data/modules/emscripten/tools/cache.pyc +0 -0
  927. data/modules/emscripten/tools/clean_webconsole.py +34 -0
  928. data/modules/emscripten/tools/crunch-worker.js +124 -0
  929. data/modules/emscripten/tools/diff_autodebugger.py +15 -0
  930. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +5129 -0
  931. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +6861 -0
  932. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +6122 -0
  933. data/modules/emscripten/tools/eliminator/eliminator-test.js +8856 -0
  934. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +888 -0
  935. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +463 -0
  936. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +317 -0
  937. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +75 -0
  938. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +75 -0
  939. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +1363 -0
  940. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +2005 -0
  941. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  942. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +22 -0
  943. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +28 -0
  944. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +402 -0
  945. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  946. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  947. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  948. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  949. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  950. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  951. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  952. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  953. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  954. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  955. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  956. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  957. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  958. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  959. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  960. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  961. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  962. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  963. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  964. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  965. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  966. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  967. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  968. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  969. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  970. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  971. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  972. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  973. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  974. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  975. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  976. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  977. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  978. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  979. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  980. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  981. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  982. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  983. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  984. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  985. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  986. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  987. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  988. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  989. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  990. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  991. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  992. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  993. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  994. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  995. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  996. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  997. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  998. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  999. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1000. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1001. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1002. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1003. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1004. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1005. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1006. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1007. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1008. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1009. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1010. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1011. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1012. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1013. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1014. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1015. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1016. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1017. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1018. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1019. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1020. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1021. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1022. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +33 -0
  1023. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +97 -0
  1024. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +138 -0
  1025. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +16 -0
  1026. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +17 -0
  1027. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +85 -0
  1028. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +103 -0
  1029. data/modules/emscripten/tools/emconfiguren.py +19 -0
  1030. data/modules/emscripten/tools/emmaken.py +230 -0
  1031. data/modules/emscripten/tools/emmakenxx.py +18 -0
  1032. data/modules/emscripten/tools/exec_llvm.py +50 -0
  1033. data/modules/emscripten/tools/file2json.py +49 -0
  1034. data/modules/emscripten/tools/file_packager.py +649 -0
  1035. data/modules/emscripten/tools/find_bigfuncs.py +23 -0
  1036. data/modules/emscripten/tools/find_bigis.py +18 -0
  1037. data/modules/emscripten/tools/fix_closure.py +88 -0
  1038. data/modules/emscripten/tools/ie7_fix.py +14 -0
  1039. data/modules/emscripten/tools/js-optimizer.js +3440 -0
  1040. data/modules/emscripten/tools/js_optimizer.py +341 -0
  1041. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  1042. data/modules/emscripten/tools/jsrun.py +27 -0
  1043. data/modules/emscripten/tools/jsrun.pyc +0 -0
  1044. data/modules/emscripten/tools/ll-strip.py +56 -0
  1045. data/modules/emscripten/tools/make_file.py +19 -0
  1046. data/modules/emscripten/tools/make_minigzip.py +13 -0
  1047. data/modules/emscripten/tools/namespacer.py +95 -0
  1048. data/modules/emscripten/tools/nativize_llvm.py +34 -0
  1049. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +58 -0
  1050. data/modules/emscripten/tools/node_modules/source-map/LICENSE +28 -0
  1051. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +166 -0
  1052. data/modules/emscripten/tools/node_modules/source-map/README.md +347 -0
  1053. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +56 -0
  1054. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +152 -0
  1055. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1056. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1057. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +8 -0
  1058. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1059. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1060. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +8 -0
  1061. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +3 -0
  1062. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +96 -0
  1063. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  1064. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +42 -0
  1065. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  1066. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +430 -0
  1067. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  1068. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +353 -0
  1069. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +117 -0
  1070. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +8 -0
  1071. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  1072. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  1073. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  1074. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  1075. data/modules/emscripten/tools/node_modules/source-map/package.json +74 -0
  1076. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +73 -0
  1077. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +26 -0
  1078. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  1079. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  1080. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1081. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1082. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  1083. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +306 -0
  1084. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  1085. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  1086. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +152 -0
  1087. data/modules/emscripten/tools/reproduceriter.js +216 -0
  1088. data/modules/emscripten/tools/reproduceriter.py +160 -0
  1089. data/modules/emscripten/tools/response_file.py +28 -0
  1090. data/modules/emscripten/tools/response_file.pyc +0 -0
  1091. data/modules/emscripten/tools/scan_js.py +20 -0
  1092. data/modules/emscripten/tools/scan_ll.py +18 -0
  1093. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +3 -0
  1094. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +46 -0
  1095. data/modules/emscripten/tools/settings_template_readonly.py +47 -0
  1096. data/modules/emscripten/tools/shared.py +1437 -0
  1097. data/modules/emscripten/tools/shared.pyc +0 -0
  1098. data/modules/emscripten/tools/source-maps/sourcemap2json.js +15 -0
  1099. data/modules/emscripten/tools/source-maps/sourcemapper.js +177 -0
  1100. data/modules/emscripten/tools/split.py +97 -0
  1101. data/modules/emscripten/tools/tempfiles.py +40 -0
  1102. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  1103. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +75 -0
  1104. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +91 -0
  1105. data/modules/emscripten/tools/test-js-optimizer-asm-outline-output.js +570 -0
  1106. data/modules/emscripten/tools/test-js-optimizer-asm-outline.js +606 -0
  1107. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +540 -0
  1108. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +550 -0
  1109. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +36 -0
  1110. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +37 -0
  1111. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +106 -0
  1112. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +110 -0
  1113. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +9 -0
  1114. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +12 -0
  1115. data/modules/emscripten/tools/test-js-optimizer-output.js +291 -0
  1116. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +232 -0
  1117. data/modules/emscripten/tools/test-js-optimizer-regs.js +237 -0
  1118. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +91 -0
  1119. data/modules/emscripten/tools/test-js-optimizer-t2.js +92 -0
  1120. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +17 -0
  1121. data/modules/emscripten/tools/test-js-optimizer-t2c.js +18 -0
  1122. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +49 -0
  1123. data/modules/emscripten/tools/test-js-optimizer-t3.js +50 -0
  1124. data/modules/emscripten/tools/test-js-optimizer.js +401 -0
  1125. data/modules/mruby/AUTHORS +18 -0
  1126. data/modules/mruby/CONTRIBUTING.md +65 -0
  1127. data/modules/mruby/ChangeLog +15 -0
  1128. data/modules/mruby/INSTALL +29 -0
  1129. data/modules/mruby/LEGAL +6 -0
  1130. data/modules/mruby/MITL +20 -0
  1131. data/modules/mruby/Makefile +18 -0
  1132. data/modules/mruby/NEWS +13 -0
  1133. data/modules/mruby/README.md +116 -0
  1134. data/modules/mruby/Rakefile +114 -0
  1135. data/modules/mruby/TODO +11 -0
  1136. data/modules/mruby/benchmark/ao-render.rb +315 -0
  1137. data/modules/mruby/benchmark/bm_so_lists.rb +47 -0
  1138. data/modules/mruby/benchmark/fib39.rb +8 -0
  1139. data/modules/mruby/build_config.rb +88 -0
  1140. data/modules/mruby/doc/compile/README.md +376 -0
  1141. data/modules/mruby/doc/mrbgems/README.md +254 -0
  1142. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md +4 -0
  1143. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +23 -0
  1144. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  1145. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +20 -0
  1146. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  1147. data/modules/mruby/examples/mrbgems/c_extension_example/README.md +4 -0
  1148. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +23 -0
  1149. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +20 -0
  1150. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  1151. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  1152. data/modules/mruby/examples/mrbgems/ruby_extension_example/README.md +4 -0
  1153. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +23 -0
  1154. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  1155. data/modules/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  1156. data/modules/mruby/examples/targets/ArduinoDue.rb +65 -0
  1157. data/modules/mruby/examples/targets/chipKitMax32.rb +68 -0
  1158. data/modules/mruby/include/mrbconf.h +87 -0
  1159. data/modules/mruby/include/mruby/array.h +63 -0
  1160. data/modules/mruby/include/mruby/class.h +75 -0
  1161. data/modules/mruby/include/mruby/compile.h +176 -0
  1162. data/modules/mruby/include/mruby/data.h +53 -0
  1163. data/modules/mruby/include/mruby/dump.h +151 -0
  1164. data/modules/mruby/include/mruby/gc.h +17 -0
  1165. data/modules/mruby/include/mruby/hash.h +54 -0
  1166. data/modules/mruby/include/mruby/irep.h +40 -0
  1167. data/modules/mruby/include/mruby/khash.h +257 -0
  1168. data/modules/mruby/include/mruby/numeric.h +32 -0
  1169. data/modules/mruby/include/mruby/proc.h +62 -0
  1170. data/modules/mruby/include/mruby/range.h +35 -0
  1171. data/modules/mruby/include/mruby/string.h +78 -0
  1172. data/modules/mruby/include/mruby/value.h +483 -0
  1173. data/modules/mruby/include/mruby/variable.h +78 -0
  1174. data/modules/mruby/include/mruby.h +388 -0
  1175. data/modules/mruby/minirake +477 -0
  1176. data/modules/mruby/mrbgems/default.gembox +61 -0
  1177. data/modules/mruby/mrbgems/full-core.gembox +9 -0
  1178. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +4 -0
  1179. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +204 -0
  1180. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +140 -0
  1181. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +109 -0
  1182. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +5 -0
  1183. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +365 -0
  1184. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +5 -0
  1185. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +243 -0
  1186. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +4 -0
  1187. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +164 -0
  1188. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +44 -0
  1189. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +4 -0
  1190. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +23 -0
  1191. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +4 -0
  1192. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +251 -0
  1193. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +64 -0
  1194. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +4 -0
  1195. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +13 -0
  1196. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +62 -0
  1197. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +26 -0
  1198. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +4 -0
  1199. data/modules/mruby/mrbgems/mruby-math/src/math.c +685 -0
  1200. data/modules/mruby/mrbgems/mruby-math/test/math.rb +136 -0
  1201. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +4 -0
  1202. data/modules/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +31 -0
  1203. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +10 -0
  1204. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +4 -0
  1205. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +108 -0
  1206. data/modules/mruby/mrbgems/mruby-object-ext/test/nil.rb +11 -0
  1207. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +9 -0
  1208. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +4 -0
  1209. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +117 -0
  1210. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +38 -0
  1211. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +4 -0
  1212. data/modules/mruby/mrbgems/mruby-print/mrblib/print.rb +64 -0
  1213. data/modules/mruby/mrbgems/mruby-print/src/print.c +44 -0
  1214. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +4 -0
  1215. data/modules/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +40 -0
  1216. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +97 -0
  1217. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +41 -0
  1218. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +4 -0
  1219. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +193 -0
  1220. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +48 -0
  1221. data/modules/mruby/mrbgems/mruby-random/src/random.c +231 -0
  1222. data/modules/mruby/mrbgems/mruby-random/src/random.h +12 -0
  1223. data/modules/mruby/mrbgems/mruby-random/test/random.rb +32 -0
  1224. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +4 -0
  1225. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +141 -0
  1226. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +20 -0
  1227. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +4 -0
  1228. data/modules/mruby/mrbgems/mruby-sprintf/src/kernel.c +30 -0
  1229. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1102 -0
  1230. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +3 -0
  1231. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +4 -0
  1232. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +52 -0
  1233. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +175 -0
  1234. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +112 -0
  1235. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +4 -0
  1236. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +50 -0
  1237. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +818 -0
  1238. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +77 -0
  1239. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +4 -0
  1240. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +9 -0
  1241. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +55 -0
  1242. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +12 -0
  1243. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +4 -0
  1244. data/modules/mruby/mrbgems/mruby-time/src/time.c +749 -0
  1245. data/modules/mruby/mrbgems/mruby-time/test/time.rb +201 -0
  1246. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +4 -0
  1247. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +11 -0
  1248. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +24 -0
  1249. data/modules/mruby/mrblib/array.rb +111 -0
  1250. data/modules/mruby/mrblib/class.rb +26 -0
  1251. data/modules/mruby/mrblib/compar.rb +104 -0
  1252. data/modules/mruby/mrblib/enum.rb +398 -0
  1253. data/modules/mruby/mrblib/error.rb +66 -0
  1254. data/modules/mruby/mrblib/hash.rb +193 -0
  1255. data/modules/mruby/mrblib/init_mrblib.c +14 -0
  1256. data/modules/mruby/mrblib/kernel.rb +46 -0
  1257. data/modules/mruby/mrblib/mrblib.rake +18 -0
  1258. data/modules/mruby/mrblib/numeric.rb +101 -0
  1259. data/modules/mruby/mrblib/print.rb +18 -0
  1260. data/modules/mruby/mrblib/range.rb +40 -0
  1261. data/modules/mruby/mrblib/string.rb +145 -0
  1262. data/modules/mruby/src/array.c +1150 -0
  1263. data/modules/mruby/src/backtrace.c +73 -0
  1264. data/modules/mruby/src/class.c +1942 -0
  1265. data/modules/mruby/src/codegen.c +2864 -0
  1266. data/modules/mruby/src/compar.c +13 -0
  1267. data/modules/mruby/src/crc.c +38 -0
  1268. data/modules/mruby/src/dump.c +542 -0
  1269. data/modules/mruby/src/enum.c +14 -0
  1270. data/modules/mruby/src/error.c +454 -0
  1271. data/modules/mruby/src/error.h +18 -0
  1272. data/modules/mruby/src/etc.c +204 -0
  1273. data/modules/mruby/src/gc.c +1542 -0
  1274. data/modules/mruby/src/hash.c +1261 -0
  1275. data/modules/mruby/src/init.c +62 -0
  1276. data/modules/mruby/src/kernel.c +1105 -0
  1277. data/modules/mruby/src/keywords +50 -0
  1278. data/modules/mruby/src/lex.def +212 -0
  1279. data/modules/mruby/src/load.c +629 -0
  1280. data/modules/mruby/src/mruby_core.rake +28 -0
  1281. data/modules/mruby/src/node.h +117 -0
  1282. data/modules/mruby/src/numeric.c +1418 -0
  1283. data/modules/mruby/src/object.c +593 -0
  1284. data/modules/mruby/src/opcode.h +160 -0
  1285. data/modules/mruby/src/parse.y +6050 -0
  1286. data/modules/mruby/src/pool.c +190 -0
  1287. data/modules/mruby/src/print.c +71 -0
  1288. data/modules/mruby/src/proc.c +209 -0
  1289. data/modules/mruby/src/range.c +442 -0
  1290. data/modules/mruby/src/re.h +13 -0
  1291. data/modules/mruby/src/state.c +200 -0
  1292. data/modules/mruby/src/string.c +2580 -0
  1293. data/modules/mruby/src/symbol.c +456 -0
  1294. data/modules/mruby/src/value_array.h +27 -0
  1295. data/modules/mruby/src/variable.c +1147 -0
  1296. data/modules/mruby/src/vm.c +2129 -0
  1297. data/modules/mruby/tasks/libmruby.rake +18 -0
  1298. data/modules/mruby/tasks/mrbgem_spec.rake +297 -0
  1299. data/modules/mruby/tasks/mrbgems.rake +85 -0
  1300. data/modules/mruby/tasks/mrbgems_test.rake +88 -0
  1301. data/modules/mruby/tasks/mruby_build.rake +211 -0
  1302. data/modules/mruby/tasks/mruby_build_commands.rake +287 -0
  1303. data/modules/mruby/tasks/mruby_build_gem.rake +67 -0
  1304. data/modules/mruby/tasks/ruby_ext.rake +70 -0
  1305. data/modules/mruby/tasks/toolchains/androideabi.rake +126 -0
  1306. data/modules/mruby/tasks/toolchains/clang.rake +8 -0
  1307. data/modules/mruby/tasks/toolchains/gcc.rake +21 -0
  1308. data/modules/mruby/tasks/toolchains/vs2010.rake +3 -0
  1309. data/modules/mruby/tasks/toolchains/vs2012.rake +44 -0
  1310. data/modules/mruby/test/README.md +7 -0
  1311. data/modules/mruby/test/assert.rb +238 -0
  1312. data/modules/mruby/test/driver.c +118 -0
  1313. data/modules/mruby/test/init_mrbtest.c +24 -0
  1314. data/modules/mruby/test/mrbtest.rake +47 -0
  1315. data/modules/mruby/test/report.rb +4 -0
  1316. data/modules/mruby/test/t/argumenterror.rb +21 -0
  1317. data/modules/mruby/test/t/array.rb +309 -0
  1318. data/modules/mruby/test/t/basicobject.rb +11 -0
  1319. data/modules/mruby/test/t/bs_block.rb +489 -0
  1320. data/modules/mruby/test/t/bs_literal.rb +38 -0
  1321. data/modules/mruby/test/t/class.rb +219 -0
  1322. data/modules/mruby/test/t/comparable.rb +72 -0
  1323. data/modules/mruby/test/t/enumerable.rb +108 -0
  1324. data/modules/mruby/test/t/exception.rb +337 -0
  1325. data/modules/mruby/test/t/false.rb +33 -0
  1326. data/modules/mruby/test/t/float.rb +145 -0
  1327. data/modules/mruby/test/t/gc.rb +45 -0
  1328. data/modules/mruby/test/t/hash.rb +310 -0
  1329. data/modules/mruby/test/t/indexerror.rb +10 -0
  1330. data/modules/mruby/test/t/integer.rb +222 -0
  1331. data/modules/mruby/test/t/kernel.rb +425 -0
  1332. data/modules/mruby/test/t/literals.rb +287 -0
  1333. data/modules/mruby/test/t/localjumperror.rb +13 -0
  1334. data/modules/mruby/test/t/methods.rb +109 -0
  1335. data/modules/mruby/test/t/module.rb +344 -0
  1336. data/modules/mruby/test/t/nameerror.rb +32 -0
  1337. data/modules/mruby/test/t/nil.rb +29 -0
  1338. data/modules/mruby/test/t/nomethoderror.rb +13 -0
  1339. data/modules/mruby/test/t/numeric.rb +29 -0
  1340. data/modules/mruby/test/t/object.rb +11 -0
  1341. data/modules/mruby/test/t/proc.rb +56 -0
  1342. data/modules/mruby/test/t/range.rb +82 -0
  1343. data/modules/mruby/test/t/rangeerror.rb +10 -0
  1344. data/modules/mruby/test/t/regexperror.rb +4 -0
  1345. data/modules/mruby/test/t/runtimeerror.rb +6 -0
  1346. data/modules/mruby/test/t/standarderror.rb +10 -0
  1347. data/modules/mruby/test/t/string.rb +483 -0
  1348. data/modules/mruby/test/t/symbol.rb +27 -0
  1349. data/modules/mruby/test/t/syntax.rb +67 -0
  1350. data/modules/mruby/test/t/true.rb +33 -0
  1351. data/modules/mruby/test/t/typeerror.rb +11 -0
  1352. data/modules/mruby/tools/mrbc/mrbc.c +318 -0
  1353. data/modules/mruby/tools/mrbc/mrbc.rake +14 -0
  1354. data/modules/mruby/travis_config.rb +6 -0
  1355. data/modules/mrubymix/LICENSE +21 -0
  1356. data/modules/mrubymix/README.md +6 -0
  1357. data/modules/mrubymix/bin/mrubymix +29 -0
  1358. data/modules/mrubymix/lib/mrubymix.rb +93 -0
  1359. data/modules/mrubymix/mrubymix.gemspec +13 -0
  1360. data/scripts/gen_gems_config.rb +185 -0
  1361. data/scripts/gen_post.rb +104 -0
  1362. data/templates/minimal/Rakefile +36 -0
  1363. data/templates/minimal/app/app.rb +3 -0
  1364. metadata +1408 -0
@@ -0,0 +1,3798 @@
1
+ /* png.h - header file for PNG reference library
2
+ *
3
+ * libpng version 1.2.46 - July 9, 2011
4
+ * Copyright (c) 1998-2011 Glenn Randers-Pehrson
5
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
6
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
7
+ *
8
+ * This code is released under the libpng license (See LICENSE, below)
9
+ *
10
+ * Authors and maintainers:
11
+ * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
12
+ * libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
13
+ * libpng versions 0.97, January 1998, through 1.2.46 - July 9, 2011: Glenn
14
+ * See also "Contributing Authors", below.
15
+ *
16
+ * Note about libpng version numbers:
17
+ *
18
+ * Due to various miscommunications, unforeseen code incompatibilities
19
+ * and occasional factors outside the authors' control, version numbering
20
+ * on the library has not always been consistent and straightforward.
21
+ * The following table summarizes matters since version 0.89c, which was
22
+ * the first widely used release:
23
+ *
24
+ * source png.h png.h shared-lib
25
+ * version string int version
26
+ * ------- ------ ----- ----------
27
+ * 0.89c "1.0 beta 3" 0.89 89 1.0.89
28
+ * 0.90 "1.0 beta 4" 0.90 90 0.90 [should have been 2.0.90]
29
+ * 0.95 "1.0 beta 5" 0.95 95 0.95 [should have been 2.0.95]
30
+ * 0.96 "1.0 beta 6" 0.96 96 0.96 [should have been 2.0.96]
31
+ * 0.97b "1.00.97 beta 7" 1.00.97 97 1.0.1 [should have been 2.0.97]
32
+ * 0.97c 0.97 97 2.0.97
33
+ * 0.98 0.98 98 2.0.98
34
+ * 0.99 0.99 98 2.0.99
35
+ * 0.99a-m 0.99 99 2.0.99
36
+ * 1.00 1.00 100 2.1.0 [100 should be 10000]
37
+ * 1.0.0 (from here on, the 100 2.1.0 [100 should be 10000]
38
+ * 1.0.1 png.h string is 10001 2.1.0
39
+ * 1.0.1a-e identical to the 10002 from here on, the shared library
40
+ * 1.0.2 source version) 10002 is 2.V where V is the source code
41
+ * 1.0.2a-b 10003 version, except as noted.
42
+ * 1.0.3 10003
43
+ * 1.0.3a-d 10004
44
+ * 1.0.4 10004
45
+ * 1.0.4a-f 10005
46
+ * 1.0.5 (+ 2 patches) 10005
47
+ * 1.0.5a-d 10006
48
+ * 1.0.5e-r 10100 (not source compatible)
49
+ * 1.0.5s-v 10006 (not binary compatible)
50
+ * 1.0.6 (+ 3 patches) 10006 (still binary incompatible)
51
+ * 1.0.6d-f 10007 (still binary incompatible)
52
+ * 1.0.6g 10007
53
+ * 1.0.6h 10007 10.6h (testing xy.z so-numbering)
54
+ * 1.0.6i 10007 10.6i
55
+ * 1.0.6j 10007 2.1.0.6j (incompatible with 1.0.0)
56
+ * 1.0.7beta11-14 DLLNUM 10007 2.1.0.7beta11-14 (binary compatible)
57
+ * 1.0.7beta15-18 1 10007 2.1.0.7beta15-18 (binary compatible)
58
+ * 1.0.7rc1-2 1 10007 2.1.0.7rc1-2 (binary compatible)
59
+ * 1.0.7 1 10007 (still compatible)
60
+ * 1.0.8beta1-4 1 10008 2.1.0.8beta1-4
61
+ * 1.0.8rc1 1 10008 2.1.0.8rc1
62
+ * 1.0.8 1 10008 2.1.0.8
63
+ * 1.0.9beta1-6 1 10009 2.1.0.9beta1-6
64
+ * 1.0.9rc1 1 10009 2.1.0.9rc1
65
+ * 1.0.9beta7-10 1 10009 2.1.0.9beta7-10
66
+ * 1.0.9rc2 1 10009 2.1.0.9rc2
67
+ * 1.0.9 1 10009 2.1.0.9
68
+ * 1.0.10beta1 1 10010 2.1.0.10beta1
69
+ * 1.0.10rc1 1 10010 2.1.0.10rc1
70
+ * 1.0.10 1 10010 2.1.0.10
71
+ * 1.0.11beta1-3 1 10011 2.1.0.11beta1-3
72
+ * 1.0.11rc1 1 10011 2.1.0.11rc1
73
+ * 1.0.11 1 10011 2.1.0.11
74
+ * 1.0.12beta1-2 2 10012 2.1.0.12beta1-2
75
+ * 1.0.12rc1 2 10012 2.1.0.12rc1
76
+ * 1.0.12 2 10012 2.1.0.12
77
+ * 1.1.0a-f - 10100 2.1.1.0a-f (branch abandoned)
78
+ * 1.2.0beta1-2 2 10200 2.1.2.0beta1-2
79
+ * 1.2.0beta3-5 3 10200 3.1.2.0beta3-5
80
+ * 1.2.0rc1 3 10200 3.1.2.0rc1
81
+ * 1.2.0 3 10200 3.1.2.0
82
+ * 1.2.1beta1-4 3 10201 3.1.2.1beta1-4
83
+ * 1.2.1rc1-2 3 10201 3.1.2.1rc1-2
84
+ * 1.2.1 3 10201 3.1.2.1
85
+ * 1.2.2beta1-6 12 10202 12.so.0.1.2.2beta1-6
86
+ * 1.0.13beta1 10 10013 10.so.0.1.0.13beta1
87
+ * 1.0.13rc1 10 10013 10.so.0.1.0.13rc1
88
+ * 1.2.2rc1 12 10202 12.so.0.1.2.2rc1
89
+ * 1.0.13 10 10013 10.so.0.1.0.13
90
+ * 1.2.2 12 10202 12.so.0.1.2.2
91
+ * 1.2.3rc1-6 12 10203 12.so.0.1.2.3rc1-6
92
+ * 1.2.3 12 10203 12.so.0.1.2.3
93
+ * 1.2.4beta1-3 13 10204 12.so.0.1.2.4beta1-3
94
+ * 1.0.14rc1 13 10014 10.so.0.1.0.14rc1
95
+ * 1.2.4rc1 13 10204 12.so.0.1.2.4rc1
96
+ * 1.0.14 10 10014 10.so.0.1.0.14
97
+ * 1.2.4 13 10204 12.so.0.1.2.4
98
+ * 1.2.5beta1-2 13 10205 12.so.0.1.2.5beta1-2
99
+ * 1.0.15rc1-3 10 10015 10.so.0.1.0.15rc1-3
100
+ * 1.2.5rc1-3 13 10205 12.so.0.1.2.5rc1-3
101
+ * 1.0.15 10 10015 10.so.0.1.0.15
102
+ * 1.2.5 13 10205 12.so.0.1.2.5
103
+ * 1.2.6beta1-4 13 10206 12.so.0.1.2.6beta1-4
104
+ * 1.0.16 10 10016 10.so.0.1.0.16
105
+ * 1.2.6 13 10206 12.so.0.1.2.6
106
+ * 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2
107
+ * 1.0.17rc1 10 10017 10.so.0.1.0.17rc1
108
+ * 1.2.7rc1 13 10207 12.so.0.1.2.7rc1
109
+ * 1.0.17 10 10017 10.so.0.1.0.17
110
+ * 1.2.7 13 10207 12.so.0.1.2.7
111
+ * 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5
112
+ * 1.0.18rc1-5 10 10018 10.so.0.1.0.18rc1-5
113
+ * 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5
114
+ * 1.0.18 10 10018 10.so.0.1.0.18
115
+ * 1.2.8 13 10208 12.so.0.1.2.8
116
+ * 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3
117
+ * 1.2.9beta4-11 13 10209 12.so.0.9[.0]
118
+ * 1.2.9rc1 13 10209 12.so.0.9[.0]
119
+ * 1.2.9 13 10209 12.so.0.9[.0]
120
+ * 1.2.10beta1-8 13 10210 12.so.0.10[.0]
121
+ * 1.2.10rc1-3 13 10210 12.so.0.10[.0]
122
+ * 1.2.10 13 10210 12.so.0.10[.0]
123
+ * 1.2.11beta1-4 13 10211 12.so.0.11[.0]
124
+ * 1.0.19rc1-5 10 10019 10.so.0.19[.0]
125
+ * 1.2.11rc1-5 13 10211 12.so.0.11[.0]
126
+ * 1.0.19 10 10019 10.so.0.19[.0]
127
+ * 1.2.11 13 10211 12.so.0.11[.0]
128
+ * 1.0.20 10 10020 10.so.0.20[.0]
129
+ * 1.2.12 13 10212 12.so.0.12[.0]
130
+ * 1.2.13beta1 13 10213 12.so.0.13[.0]
131
+ * 1.0.21 10 10021 10.so.0.21[.0]
132
+ * 1.2.13 13 10213 12.so.0.13[.0]
133
+ * 1.2.14beta1-2 13 10214 12.so.0.14[.0]
134
+ * 1.0.22rc1 10 10022 10.so.0.22[.0]
135
+ * 1.2.14rc1 13 10214 12.so.0.14[.0]
136
+ * 1.0.22 10 10022 10.so.0.22[.0]
137
+ * 1.2.14 13 10214 12.so.0.14[.0]
138
+ * 1.2.15beta1-6 13 10215 12.so.0.15[.0]
139
+ * 1.0.23rc1-5 10 10023 10.so.0.23[.0]
140
+ * 1.2.15rc1-5 13 10215 12.so.0.15[.0]
141
+ * 1.0.23 10 10023 10.so.0.23[.0]
142
+ * 1.2.15 13 10215 12.so.0.15[.0]
143
+ * 1.2.16beta1-2 13 10216 12.so.0.16[.0]
144
+ * 1.2.16rc1 13 10216 12.so.0.16[.0]
145
+ * 1.0.24 10 10024 10.so.0.24[.0]
146
+ * 1.2.16 13 10216 12.so.0.16[.0]
147
+ * 1.2.17beta1-2 13 10217 12.so.0.17[.0]
148
+ * 1.0.25rc1 10 10025 10.so.0.25[.0]
149
+ * 1.2.17rc1-3 13 10217 12.so.0.17[.0]
150
+ * 1.0.25 10 10025 10.so.0.25[.0]
151
+ * 1.2.17 13 10217 12.so.0.17[.0]
152
+ * 1.0.26 10 10026 10.so.0.26[.0]
153
+ * 1.2.18 13 10218 12.so.0.18[.0]
154
+ * 1.2.19beta1-31 13 10219 12.so.0.19[.0]
155
+ * 1.0.27rc1-6 10 10027 10.so.0.27[.0]
156
+ * 1.2.19rc1-6 13 10219 12.so.0.19[.0]
157
+ * 1.0.27 10 10027 10.so.0.27[.0]
158
+ * 1.2.19 13 10219 12.so.0.19[.0]
159
+ * 1.2.20beta01-04 13 10220 12.so.0.20[.0]
160
+ * 1.0.28rc1-6 10 10028 10.so.0.28[.0]
161
+ * 1.2.20rc1-6 13 10220 12.so.0.20[.0]
162
+ * 1.0.28 10 10028 10.so.0.28[.0]
163
+ * 1.2.20 13 10220 12.so.0.20[.0]
164
+ * 1.2.21beta1-2 13 10221 12.so.0.21[.0]
165
+ * 1.2.21rc1-3 13 10221 12.so.0.21[.0]
166
+ * 1.0.29 10 10029 10.so.0.29[.0]
167
+ * 1.2.21 13 10221 12.so.0.21[.0]
168
+ * 1.2.22beta1-4 13 10222 12.so.0.22[.0]
169
+ * 1.0.30rc1 10 10030 10.so.0.30[.0]
170
+ * 1.2.22rc1 13 10222 12.so.0.22[.0]
171
+ * 1.0.30 10 10030 10.so.0.30[.0]
172
+ * 1.2.22 13 10222 12.so.0.22[.0]
173
+ * 1.2.23beta01-05 13 10223 12.so.0.23[.0]
174
+ * 1.2.23rc01 13 10223 12.so.0.23[.0]
175
+ * 1.2.23 13 10223 12.so.0.23[.0]
176
+ * 1.2.24beta01-02 13 10224 12.so.0.24[.0]
177
+ * 1.2.24rc01 13 10224 12.so.0.24[.0]
178
+ * 1.2.24 13 10224 12.so.0.24[.0]
179
+ * 1.2.25beta01-06 13 10225 12.so.0.25[.0]
180
+ * 1.2.25rc01-02 13 10225 12.so.0.25[.0]
181
+ * 1.0.31 10 10031 10.so.0.31[.0]
182
+ * 1.2.25 13 10225 12.so.0.25[.0]
183
+ * 1.2.26beta01-06 13 10226 12.so.0.26[.0]
184
+ * 1.2.26rc01 13 10226 12.so.0.26[.0]
185
+ * 1.2.26 13 10226 12.so.0.26[.0]
186
+ * 1.0.32 10 10032 10.so.0.32[.0]
187
+ * 1.2.27beta01-06 13 10227 12.so.0.27[.0]
188
+ * 1.2.27rc01 13 10227 12.so.0.27[.0]
189
+ * 1.0.33 10 10033 10.so.0.33[.0]
190
+ * 1.2.27 13 10227 12.so.0.27[.0]
191
+ * 1.0.34 10 10034 10.so.0.34[.0]
192
+ * 1.2.28 13 10228 12.so.0.28[.0]
193
+ * 1.2.29beta01-03 13 10229 12.so.0.29[.0]
194
+ * 1.2.29rc01 13 10229 12.so.0.29[.0]
195
+ * 1.0.35 10 10035 10.so.0.35[.0]
196
+ * 1.2.29 13 10229 12.so.0.29[.0]
197
+ * 1.0.37 10 10037 10.so.0.37[.0]
198
+ * 1.2.30beta01-04 13 10230 12.so.0.30[.0]
199
+ * 1.0.38rc01-08 10 10038 10.so.0.38[.0]
200
+ * 1.2.30rc01-08 13 10230 12.so.0.30[.0]
201
+ * 1.0.38 10 10038 10.so.0.38[.0]
202
+ * 1.2.30 13 10230 12.so.0.30[.0]
203
+ * 1.0.39rc01-03 10 10039 10.so.0.39[.0]
204
+ * 1.2.31rc01-03 13 10231 12.so.0.31[.0]
205
+ * 1.0.39 10 10039 10.so.0.39[.0]
206
+ * 1.2.31 13 10231 12.so.0.31[.0]
207
+ * 1.2.32beta01-02 13 10232 12.so.0.32[.0]
208
+ * 1.0.40rc01 10 10040 10.so.0.40[.0]
209
+ * 1.2.32rc01 13 10232 12.so.0.32[.0]
210
+ * 1.0.40 10 10040 10.so.0.40[.0]
211
+ * 1.2.32 13 10232 12.so.0.32[.0]
212
+ * 1.2.33beta01-02 13 10233 12.so.0.33[.0]
213
+ * 1.2.33rc01-02 13 10233 12.so.0.33[.0]
214
+ * 1.0.41rc01 10 10041 10.so.0.41[.0]
215
+ * 1.2.33 13 10233 12.so.0.33[.0]
216
+ * 1.0.41 10 10041 10.so.0.41[.0]
217
+ * 1.2.34beta01-07 13 10234 12.so.0.34[.0]
218
+ * 1.0.42rc01 10 10042 10.so.0.42[.0]
219
+ * 1.2.34rc01 13 10234 12.so.0.34[.0]
220
+ * 1.0.42 10 10042 10.so.0.42[.0]
221
+ * 1.2.34 13 10234 12.so.0.34[.0]
222
+ * 1.2.35beta01-03 13 10235 12.so.0.35[.0]
223
+ * 1.0.43rc01-02 10 10043 10.so.0.43[.0]
224
+ * 1.2.35rc01-02 13 10235 12.so.0.35[.0]
225
+ * 1.0.43 10 10043 10.so.0.43[.0]
226
+ * 1.2.35 13 10235 12.so.0.35[.0]
227
+ * 1.2.36beta01-05 13 10236 12.so.0.36[.0]
228
+ * 1.2.36rc01 13 10236 12.so.0.36[.0]
229
+ * 1.0.44 10 10044 10.so.0.44[.0]
230
+ * 1.2.36 13 10236 12.so.0.36[.0]
231
+ * 1.2.37beta01-03 13 10237 12.so.0.37[.0]
232
+ * 1.2.37rc01 13 10237 12.so.0.37[.0]
233
+ * 1.2.37 13 10237 12.so.0.37[.0]
234
+ * 1.0.45 10 10045 12.so.0.45[.0]
235
+ * 1.0.46 10 10046 10.so.0.46[.0]
236
+ * 1.2.38beta01 13 10238 12.so.0.38[.0]
237
+ * 1.2.38rc01-03 13 10238 12.so.0.38[.0]
238
+ * 1.0.47 10 10047 10.so.0.47[.0]
239
+ * 1.2.38 13 10238 12.so.0.38[.0]
240
+ * 1.2.39beta01-05 13 10239 12.so.0.39[.0]
241
+ * 1.2.39rc01 13 10239 12.so.0.39[.0]
242
+ * 1.0.48 10 10048 10.so.0.48[.0]
243
+ * 1.2.39 13 10239 12.so.0.39[.0]
244
+ * 1.2.40beta01 13 10240 12.so.0.40[.0]
245
+ * 1.2.40rc01 13 10240 12.so.0.40[.0]
246
+ * 1.0.49 10 10049 10.so.0.49[.0]
247
+ * 1.2.40 13 10240 12.so.0.40[.0]
248
+ * 1.2.41beta01-18 13 10241 12.so.0.41[.0]
249
+ * 1.0.51rc01 10 10051 10.so.0.51[.0]
250
+ * 1.2.41rc01-03 13 10241 12.so.0.41[.0]
251
+ * 1.0.51 10 10051 10.so.0.51[.0]
252
+ * 1.2.41 13 10241 12.so.0.41[.0]
253
+ * 1.2.42beta01-02 13 10242 12.so.0.42[.0]
254
+ * 1.2.42rc01-05 13 10242 12.so.0.42[.0]
255
+ * 1.0.52 10 10052 10.so.0.52[.0]
256
+ * 1.2.42 13 10242 12.so.0.42[.0]
257
+ * 1.2.43beta01-05 13 10243 12.so.0.43[.0]
258
+ * 1.0.53rc01-02 10 10053 10.so.0.53[.0]
259
+ * 1.2.43rc01-02 13 10243 12.so.0.43[.0]
260
+ * 1.0.53 10 10053 10.so.0.53[.0]
261
+ * 1.2.43 13 10243 12.so.0.43[.0]
262
+ * 1.2.44beta01-03 13 10244 12.so.0.44[.0]
263
+ * 1.2.44rc01-03 13 10244 12.so.0.44[.0]
264
+ * 1.2.44 13 10244 12.so.0.44[.0]
265
+ * 1.2.45beta01-03 13 10245 12.so.0.45[.0]
266
+ * 1.0.55rc01 10 10055 10.so.0.55[.0]
267
+ * 1.2.45rc01 13 10245 12.so.0.45[.0]
268
+ * 1.0.55 10 10055 10.so.0.55[.0]
269
+ * 1.2.45 13 10245 12.so.0.45[.0]
270
+ * 1.2.46rc01-02 13 10246 12.so.0.46[.0]
271
+ * 1.0.56 10 10056 10.so.0.56[.0]
272
+ * 1.2.46 13 10246 12.so.0.46[.0]
273
+ *
274
+ * Henceforth the source version will match the shared-library major
275
+ * and minor numbers; the shared-library major version number will be
276
+ * used for changes in backward compatibility, as it is intended. The
277
+ * PNG_LIBPNG_VER macro, which is not used within libpng but is available
278
+ * for applications, is an unsigned integer of the form xyyzz corresponding
279
+ * to the source version x.y.z (leading zeros in y and z). Beta versions
280
+ * were given the previous public release number plus a letter, until
281
+ * version 1.0.6j; from then on they were given the upcoming public
282
+ * release number plus "betaNN" or "rcNN".
283
+ *
284
+ * Binary incompatibility exists only when applications make direct access
285
+ * to the info_ptr or png_ptr members through png.h, and the compiled
286
+ * application is loaded with a different version of the library.
287
+ *
288
+ * DLLNUM will change each time there are forward or backward changes
289
+ * in binary compatibility (e.g., when a new feature is added).
290
+ *
291
+ * See libpng.txt or libpng.3 for more information. The PNG specification
292
+ * is available as a W3C Recommendation and as an ISO Specification,
293
+ * <http://www.w3.org/TR/2003/REC-PNG-20031110/
294
+ */
295
+
296
+ /*
297
+ * COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
298
+ *
299
+ * If you modify libpng you may insert additional notices immediately following
300
+ * this sentence.
301
+ *
302
+ * This code is released under the libpng license.
303
+ *
304
+ * libpng versions 1.2.6, August 15, 2004, through 1.2.46, July 9, 2011, are
305
+ * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
306
+ * distributed according to the same disclaimer and license as libpng-1.2.5
307
+ * with the following individual added to the list of Contributing Authors:
308
+ *
309
+ * Cosmin Truta
310
+ *
311
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.5, October 3, 2002, are
312
+ * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
313
+ * distributed according to the same disclaimer and license as libpng-1.0.6
314
+ * with the following individuals added to the list of Contributing Authors:
315
+ *
316
+ * Simon-Pierre Cadieux
317
+ * Eric S. Raymond
318
+ * Gilles Vollant
319
+ *
320
+ * and with the following additions to the disclaimer:
321
+ *
322
+ * There is no warranty against interference with your enjoyment of the
323
+ * library or against infringement. There is no warranty that our
324
+ * efforts or the library will fulfill any of your particular purposes
325
+ * or needs. This library is provided with all faults, and the entire
326
+ * risk of satisfactory quality, performance, accuracy, and effort is with
327
+ * the user.
328
+ *
329
+ * libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
330
+ * Copyright (c) 1998, 1999, 2000 Glenn Randers-Pehrson, and are
331
+ * distributed according to the same disclaimer and license as libpng-0.96,
332
+ * with the following individuals added to the list of Contributing Authors:
333
+ *
334
+ * Tom Lane
335
+ * Glenn Randers-Pehrson
336
+ * Willem van Schaik
337
+ *
338
+ * libpng versions 0.89, June 1996, through 0.96, May 1997, are
339
+ * Copyright (c) 1996, 1997 Andreas Dilger
340
+ * Distributed according to the same disclaimer and license as libpng-0.88,
341
+ * with the following individuals added to the list of Contributing Authors:
342
+ *
343
+ * John Bowler
344
+ * Kevin Bracey
345
+ * Sam Bushell
346
+ * Magnus Holmgren
347
+ * Greg Roelofs
348
+ * Tom Tanner
349
+ *
350
+ * libpng versions 0.5, May 1995, through 0.88, January 1996, are
351
+ * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
352
+ *
353
+ * For the purposes of this copyright and license, "Contributing Authors"
354
+ * is defined as the following set of individuals:
355
+ *
356
+ * Andreas Dilger
357
+ * Dave Martindale
358
+ * Guy Eric Schalnat
359
+ * Paul Schmidt
360
+ * Tim Wegner
361
+ *
362
+ * The PNG Reference Library is supplied "AS IS". The Contributing Authors
363
+ * and Group 42, Inc. disclaim all warranties, expressed or implied,
364
+ * including, without limitation, the warranties of merchantability and of
365
+ * fitness for any purpose. The Contributing Authors and Group 42, Inc.
366
+ * assume no liability for direct, indirect, incidental, special, exemplary,
367
+ * or consequential damages, which may result from the use of the PNG
368
+ * Reference Library, even if advised of the possibility of such damage.
369
+ *
370
+ * Permission is hereby granted to use, copy, modify, and distribute this
371
+ * source code, or portions hereof, for any purpose, without fee, subject
372
+ * to the following restrictions:
373
+ *
374
+ * 1. The origin of this source code must not be misrepresented.
375
+ *
376
+ * 2. Altered versions must be plainly marked as such and
377
+ * must not be misrepresented as being the original source.
378
+ *
379
+ * 3. This Copyright notice may not be removed or altered from
380
+ * any source or altered source distribution.
381
+ *
382
+ * The Contributing Authors and Group 42, Inc. specifically permit, without
383
+ * fee, and encourage the use of this source code as a component to
384
+ * supporting the PNG file format in commercial products. If you use this
385
+ * source code in a product, acknowledgment is not required but would be
386
+ * appreciated.
387
+ */
388
+
389
+ /*
390
+ * A "png_get_copyright" function is available, for convenient use in "about"
391
+ * boxes and the like:
392
+ *
393
+ * printf("%s",png_get_copyright(NULL));
394
+ *
395
+ * Also, the PNG logo (in PNG format, of course) is supplied in the
396
+ * files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).
397
+ */
398
+
399
+ /*
400
+ * Libpng is OSI Certified Open Source Software. OSI Certified is a
401
+ * certification mark of the Open Source Initiative.
402
+ */
403
+
404
+ /*
405
+ * The contributing authors would like to thank all those who helped
406
+ * with testing, bug fixes, and patience. This wouldn't have been
407
+ * possible without all of you.
408
+ *
409
+ * Thanks to Frank J. T. Wojcik for helping with the documentation.
410
+ */
411
+
412
+ /*
413
+ * Y2K compliance in libpng:
414
+ * =========================
415
+ *
416
+ * July 9, 2011
417
+ *
418
+ * Since the PNG Development group is an ad-hoc body, we can't make
419
+ * an official declaration.
420
+ *
421
+ * This is your unofficial assurance that libpng from version 0.71 and
422
+ * upward through 1.2.46 are Y2K compliant. It is my belief that earlier
423
+ * versions were also Y2K compliant.
424
+ *
425
+ * Libpng only has three year fields. One is a 2-byte unsigned integer
426
+ * that will hold years up to 65535. The other two hold the date in text
427
+ * format, and will hold years up to 9999.
428
+ *
429
+ * The integer is
430
+ * "png_uint_16 year" in png_time_struct.
431
+ *
432
+ * The strings are
433
+ * "png_charp time_buffer" in png_struct and
434
+ * "near_time_buffer", which is a local character string in png.c.
435
+ *
436
+ * There are seven time-related functions:
437
+ * png.c: png_convert_to_rfc_1123() in png.c
438
+ * (formerly png_convert_to_rfc_1152() in error)
439
+ * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c
440
+ * png_convert_from_time_t() in pngwrite.c
441
+ * png_get_tIME() in pngget.c
442
+ * png_handle_tIME() in pngrutil.c, called in pngread.c
443
+ * png_set_tIME() in pngset.c
444
+ * png_write_tIME() in pngwutil.c, called in pngwrite.c
445
+ *
446
+ * All handle dates properly in a Y2K environment. The
447
+ * png_convert_from_time_t() function calls gmtime() to convert from system
448
+ * clock time, which returns (year - 1900), which we properly convert to
449
+ * the full 4-digit year. There is a possibility that applications using
450
+ * libpng are not passing 4-digit years into the png_convert_to_rfc_1123()
451
+ * function, or that they are incorrectly passing only a 2-digit year
452
+ * instead of "year - 1900" into the png_convert_from_struct_tm() function,
453
+ * but this is not under our control. The libpng documentation has always
454
+ * stated that it works with 4-digit years, and the APIs have been
455
+ * documented as such.
456
+ *
457
+ * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned
458
+ * integer to hold the year, and can hold years as large as 65535.
459
+ *
460
+ * zlib, upon which libpng depends, is also Y2K compliant. It contains
461
+ * no date-related code.
462
+ *
463
+ * Glenn Randers-Pehrson
464
+ * libpng maintainer
465
+ * PNG Development Group
466
+ */
467
+
468
+ #ifndef PNG_H
469
+ #define PNG_H
470
+
471
+ /* This is not the place to learn how to use libpng. The file libpng.txt
472
+ * describes how to use libpng, and the file example.c summarizes it
473
+ * with some code on which to build. This file is useful for looking
474
+ * at the actual function definitions and structure components.
475
+ */
476
+
477
+ /* Version information for png.h - this should match the version in png.c */
478
+ #define PNG_LIBPNG_VER_STRING "1.2.46"
479
+ #define PNG_HEADER_VERSION_STRING \
480
+ " libpng version 1.2.46 - July 9, 2011\n"
481
+
482
+ #define PNG_LIBPNG_VER_SONUM 0
483
+ #define PNG_LIBPNG_VER_DLLNUM 13
484
+
485
+ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
486
+ #define PNG_LIBPNG_VER_MAJOR 1
487
+ #define PNG_LIBPNG_VER_MINOR 2
488
+ #define PNG_LIBPNG_VER_RELEASE 46
489
+ /* This should match the numeric part of the final component of
490
+ * PNG_LIBPNG_VER_STRING, omitting any leading zero:
491
+ */
492
+
493
+ #define PNG_LIBPNG_VER_BUILD 0
494
+
495
+ /* Release Status */
496
+ #define PNG_LIBPNG_BUILD_ALPHA 1
497
+ #define PNG_LIBPNG_BUILD_BETA 2
498
+ #define PNG_LIBPNG_BUILD_RC 3
499
+ #define PNG_LIBPNG_BUILD_STABLE 4
500
+ #define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
501
+
502
+ /* Release-Specific Flags */
503
+ #define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with
504
+ PNG_LIBPNG_BUILD_STABLE only */
505
+ #define PNG_LIBPNG_BUILD_PRIVATE 16 /* Cannot be OR'ed with
506
+ PNG_LIBPNG_BUILD_SPECIAL */
507
+ #define PNG_LIBPNG_BUILD_SPECIAL 32 /* Cannot be OR'ed with
508
+ PNG_LIBPNG_BUILD_PRIVATE */
509
+
510
+ #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE
511
+
512
+ /* Careful here. At one time, Guy wanted to use 082, but that would be octal.
513
+ * We must not include leading zeros.
514
+ * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
515
+ * version 1.0.0 was mis-numbered 100 instead of 10000). From
516
+ * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
517
+ */
518
+ #define PNG_LIBPNG_VER 10246 /* 1.2.46 */
519
+
520
+ #ifndef PNG_VERSION_INFO_ONLY
521
+ /* Include the compression library's header */
522
+ #include "zlib.h"
523
+ #endif
524
+
525
+ /* Include all user configurable info, including optional assembler routines */
526
+ #include "pngconf.h"
527
+
528
+ /*
529
+ * Added at libpng-1.2.8 */
530
+ /* Ref MSDN: Private as priority over Special
531
+ * VS_FF_PRIVATEBUILD File *was not* built using standard release
532
+ * procedures. If this value is given, the StringFileInfo block must
533
+ * contain a PrivateBuild string.
534
+ *
535
+ * VS_FF_SPECIALBUILD File *was* built by the original company using
536
+ * standard release procedures but is a variation of the standard
537
+ * file of the same version number. If this value is given, the
538
+ * StringFileInfo block must contain a SpecialBuild string.
539
+ */
540
+
541
+ #ifdef PNG_USER_PRIVATEBUILD
542
+ # define PNG_LIBPNG_BUILD_TYPE \
543
+ (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE)
544
+ #else
545
+ # ifdef PNG_LIBPNG_SPECIALBUILD
546
+ # define PNG_LIBPNG_BUILD_TYPE \
547
+ (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL)
548
+ # else
549
+ # define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE)
550
+ # endif
551
+ #endif
552
+
553
+ #ifndef PNG_VERSION_INFO_ONLY
554
+
555
+ /* Inhibit C++ name-mangling for libpng functions but not for system calls. */
556
+ #ifdef __cplusplus
557
+ extern "C" {
558
+ #endif /* __cplusplus */
559
+
560
+ /* This file is arranged in several sections. The first section contains
561
+ * structure and type definitions. The second section contains the external
562
+ * library functions, while the third has the internal library functions,
563
+ * which applications aren't expected to use directly.
564
+ */
565
+
566
+ #ifndef PNG_NO_TYPECAST_NULL
567
+ #define int_p_NULL (int *)NULL
568
+ #define png_bytep_NULL (png_bytep)NULL
569
+ #define png_bytepp_NULL (png_bytepp)NULL
570
+ #define png_doublep_NULL (png_doublep)NULL
571
+ #define png_error_ptr_NULL (png_error_ptr)NULL
572
+ #define png_flush_ptr_NULL (png_flush_ptr)NULL
573
+ #define png_free_ptr_NULL (png_free_ptr)NULL
574
+ #define png_infopp_NULL (png_infopp)NULL
575
+ #define png_malloc_ptr_NULL (png_malloc_ptr)NULL
576
+ #define png_read_status_ptr_NULL (png_read_status_ptr)NULL
577
+ #define png_rw_ptr_NULL (png_rw_ptr)NULL
578
+ #define png_structp_NULL (png_structp)NULL
579
+ #define png_uint_16p_NULL (png_uint_16p)NULL
580
+ #define png_voidp_NULL (png_voidp)NULL
581
+ #define png_write_status_ptr_NULL (png_write_status_ptr)NULL
582
+ #else
583
+ #define int_p_NULL NULL
584
+ #define png_bytep_NULL NULL
585
+ #define png_bytepp_NULL NULL
586
+ #define png_doublep_NULL NULL
587
+ #define png_error_ptr_NULL NULL
588
+ #define png_flush_ptr_NULL NULL
589
+ #define png_free_ptr_NULL NULL
590
+ #define png_infopp_NULL NULL
591
+ #define png_malloc_ptr_NULL NULL
592
+ #define png_read_status_ptr_NULL NULL
593
+ #define png_rw_ptr_NULL NULL
594
+ #define png_structp_NULL NULL
595
+ #define png_uint_16p_NULL NULL
596
+ #define png_voidp_NULL NULL
597
+ #define png_write_status_ptr_NULL NULL
598
+ #endif
599
+
600
+ /* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
601
+ #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
602
+ /* Version information for C files, stored in png.c. This had better match
603
+ * the version above.
604
+ */
605
+ #ifdef PNG_USE_GLOBAL_ARRAYS
606
+ PNG_EXPORT_VAR (PNG_CONST char) png_libpng_ver[18];
607
+ /* Need room for 99.99.99beta99z */
608
+ #else
609
+ #define png_libpng_ver png_get_header_ver(NULL)
610
+ #endif
611
+
612
+ #ifdef PNG_USE_GLOBAL_ARRAYS
613
+ /* This was removed in version 1.0.5c */
614
+ /* Structures to facilitate easy interlacing. See png.c for more details */
615
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_start[7];
616
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_inc[7];
617
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_ystart[7];
618
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_yinc[7];
619
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_mask[7];
620
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_dsp_mask[7];
621
+ /* This isn't currently used. If you need it, see png.c for more details.
622
+ PNG_EXPORT_VAR (PNG_CONST int FARDATA) png_pass_height[7];
623
+ */
624
+ #endif
625
+
626
+ #endif /* PNG_NO_EXTERN */
627
+
628
+ /* Three color definitions. The order of the red, green, and blue, (and the
629
+ * exact size) is not important, although the size of the fields need to
630
+ * be png_byte or png_uint_16 (as defined below).
631
+ */
632
+ typedef struct png_color_struct
633
+ {
634
+ png_byte red;
635
+ png_byte green;
636
+ png_byte blue;
637
+ } png_color;
638
+ typedef png_color FAR * png_colorp;
639
+ typedef png_color FAR * FAR * png_colorpp;
640
+
641
+ typedef struct png_color_16_struct
642
+ {
643
+ png_byte index; /* used for palette files */
644
+ png_uint_16 red; /* for use in red green blue files */
645
+ png_uint_16 green;
646
+ png_uint_16 blue;
647
+ png_uint_16 gray; /* for use in grayscale files */
648
+ } png_color_16;
649
+ typedef png_color_16 FAR * png_color_16p;
650
+ typedef png_color_16 FAR * FAR * png_color_16pp;
651
+
652
+ typedef struct png_color_8_struct
653
+ {
654
+ png_byte red; /* for use in red green blue files */
655
+ png_byte green;
656
+ png_byte blue;
657
+ png_byte gray; /* for use in grayscale files */
658
+ png_byte alpha; /* for alpha channel files */
659
+ } png_color_8;
660
+ typedef png_color_8 FAR * png_color_8p;
661
+ typedef png_color_8 FAR * FAR * png_color_8pp;
662
+
663
+ /*
664
+ * The following two structures are used for the in-core representation
665
+ * of sPLT chunks.
666
+ */
667
+ typedef struct png_sPLT_entry_struct
668
+ {
669
+ png_uint_16 red;
670
+ png_uint_16 green;
671
+ png_uint_16 blue;
672
+ png_uint_16 alpha;
673
+ png_uint_16 frequency;
674
+ } png_sPLT_entry;
675
+ typedef png_sPLT_entry FAR * png_sPLT_entryp;
676
+ typedef png_sPLT_entry FAR * FAR * png_sPLT_entrypp;
677
+
678
+ /* When the depth of the sPLT palette is 8 bits, the color and alpha samples
679
+ * occupy the LSB of their respective members, and the MSB of each member
680
+ * is zero-filled. The frequency member always occupies the full 16 bits.
681
+ */
682
+
683
+ typedef struct png_sPLT_struct
684
+ {
685
+ png_charp name; /* palette name */
686
+ png_byte depth; /* depth of palette samples */
687
+ png_sPLT_entryp entries; /* palette entries */
688
+ png_int_32 nentries; /* number of palette entries */
689
+ } png_sPLT_t;
690
+ typedef png_sPLT_t FAR * png_sPLT_tp;
691
+ typedef png_sPLT_t FAR * FAR * png_sPLT_tpp;
692
+
693
+ #ifdef PNG_TEXT_SUPPORTED
694
+ /* png_text holds the contents of a text/ztxt/itxt chunk in a PNG file,
695
+ * and whether that contents is compressed or not. The "key" field
696
+ * points to a regular zero-terminated C string. The "text", "lang", and
697
+ * "lang_key" fields can be regular C strings, empty strings, or NULL pointers.
698
+ * However, the * structure returned by png_get_text() will always contain
699
+ * regular zero-terminated C strings (possibly empty), never NULL pointers,
700
+ * so they can be safely used in printf() and other string-handling functions.
701
+ */
702
+ typedef struct png_text_struct
703
+ {
704
+ int compression; /* compression value:
705
+ -1: tEXt, none
706
+ 0: zTXt, deflate
707
+ 1: iTXt, none
708
+ 2: iTXt, deflate */
709
+ png_charp key; /* keyword, 1-79 character description of "text" */
710
+ png_charp text; /* comment, may be an empty string (ie "")
711
+ or a NULL pointer */
712
+ png_size_t text_length; /* length of the text string */
713
+ #ifdef PNG_iTXt_SUPPORTED
714
+ png_size_t itxt_length; /* length of the itxt string */
715
+ png_charp lang; /* language code, 0-79 characters
716
+ or a NULL pointer */
717
+ png_charp lang_key; /* keyword translated UTF-8 string, 0 or more
718
+ chars or a NULL pointer */
719
+ #endif
720
+ } png_text;
721
+ typedef png_text FAR * png_textp;
722
+ typedef png_text FAR * FAR * png_textpp;
723
+ #endif
724
+
725
+ /* Supported compression types for text in PNG files (tEXt, and zTXt).
726
+ * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.
727
+ */
728
+ #define PNG_TEXT_COMPRESSION_NONE_WR -3
729
+ #define PNG_TEXT_COMPRESSION_zTXt_WR -2
730
+ #define PNG_TEXT_COMPRESSION_NONE -1
731
+ #define PNG_TEXT_COMPRESSION_zTXt 0
732
+ #define PNG_ITXT_COMPRESSION_NONE 1
733
+ #define PNG_ITXT_COMPRESSION_zTXt 2
734
+ #define PNG_TEXT_COMPRESSION_LAST 3 /* Not a valid value */
735
+
736
+ /* png_time is a way to hold the time in an machine independent way.
737
+ * Two conversions are provided, both from time_t and struct tm. There
738
+ * is no portable way to convert to either of these structures, as far
739
+ * as I know. If you know of a portable way, send it to me. As a side
740
+ * note - PNG has always been Year 2000 compliant!
741
+ */
742
+ typedef struct png_time_struct
743
+ {
744
+ png_uint_16 year; /* full year, as in, 1995 */
745
+ png_byte month; /* month of year, 1 - 12 */
746
+ png_byte day; /* day of month, 1 - 31 */
747
+ png_byte hour; /* hour of day, 0 - 23 */
748
+ png_byte minute; /* minute of hour, 0 - 59 */
749
+ png_byte second; /* second of minute, 0 - 60 (for leap seconds) */
750
+ } png_time;
751
+ typedef png_time FAR * png_timep;
752
+ typedef png_time FAR * FAR * png_timepp;
753
+
754
+ #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
755
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
756
+ /* png_unknown_chunk is a structure to hold queued chunks for which there is
757
+ * no specific support. The idea is that we can use this to queue
758
+ * up private chunks for output even though the library doesn't actually
759
+ * know about their semantics.
760
+ */
761
+ #define PNG_CHUNK_NAME_LENGTH 5
762
+ typedef struct png_unknown_chunk_t
763
+ {
764
+ png_byte name[PNG_CHUNK_NAME_LENGTH];
765
+ png_byte *data;
766
+ png_size_t size;
767
+
768
+ /* libpng-using applications should NOT directly modify this byte. */
769
+ png_byte location; /* mode of operation at read time */
770
+ }
771
+ png_unknown_chunk;
772
+ typedef png_unknown_chunk FAR * png_unknown_chunkp;
773
+ typedef png_unknown_chunk FAR * FAR * png_unknown_chunkpp;
774
+ #endif
775
+
776
+ /* png_info is a structure that holds the information in a PNG file so
777
+ * that the application can find out the characteristics of the image.
778
+ * If you are reading the file, this structure will tell you what is
779
+ * in the PNG file. If you are writing the file, fill in the information
780
+ * you want to put into the PNG file, then call png_write_info().
781
+ * The names chosen should be very close to the PNG specification, so
782
+ * consult that document for information about the meaning of each field.
783
+ *
784
+ * With libpng < 0.95, it was only possible to directly set and read the
785
+ * the values in the png_info_struct, which meant that the contents and
786
+ * order of the values had to remain fixed. With libpng 0.95 and later,
787
+ * however, there are now functions that abstract the contents of
788
+ * png_info_struct from the application, so this makes it easier to use
789
+ * libpng with dynamic libraries, and even makes it possible to use
790
+ * libraries that don't have all of the libpng ancillary chunk-handing
791
+ * functionality.
792
+ *
793
+ * In any case, the order of the parameters in png_info_struct should NOT
794
+ * be changed for as long as possible to keep compatibility with applications
795
+ * that use the old direct-access method with png_info_struct.
796
+ *
797
+ * The following members may have allocated storage attached that should be
798
+ * cleaned up before the structure is discarded: palette, trans, text,
799
+ * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile,
800
+ * splt_palettes, scal_unit, row_pointers, and unknowns. By default, these
801
+ * are automatically freed when the info structure is deallocated, if they were
802
+ * allocated internally by libpng. This behavior can be changed by means
803
+ * of the png_data_freer() function.
804
+ *
805
+ * More allocation details: all the chunk-reading functions that
806
+ * change these members go through the corresponding png_set_*
807
+ * functions. A function to clear these members is available: see
808
+ * png_free_data(). The png_set_* functions do not depend on being
809
+ * able to point info structure members to any of the storage they are
810
+ * passed (they make their own copies), EXCEPT that the png_set_text
811
+ * functions use the same storage passed to them in the text_ptr or
812
+ * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns
813
+ * functions do not make their own copies.
814
+ */
815
+ typedef struct png_info_struct
816
+ {
817
+ /* The following are necessary for every PNG file */
818
+ png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels (from IHDR) */
819
+ png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels (from IHDR) */
820
+ png_uint_32 valid PNG_DEPSTRUCT; /* valid chunk data (see PNG_INFO_ below) */
821
+ png_uint_32 rowbytes PNG_DEPSTRUCT; /* bytes needed to hold an untransformed row */
822
+ png_colorp palette PNG_DEPSTRUCT; /* array of color values (valid & PNG_INFO_PLTE) */
823
+ png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in "palette" (PLTE) */
824
+ png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparent palette color (tRNS) */
825
+ png_byte bit_depth PNG_DEPSTRUCT; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */
826
+ png_byte color_type PNG_DEPSTRUCT; /* see PNG_COLOR_TYPE_ below (from IHDR) */
827
+ /* The following three should have been named *_method not *_type */
828
+ png_byte compression_type PNG_DEPSTRUCT; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
829
+ png_byte filter_type PNG_DEPSTRUCT; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
830
+ png_byte interlace_type PNG_DEPSTRUCT; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
831
+
832
+ /* The following is informational only on read, and not used on writes. */
833
+ png_byte channels PNG_DEPSTRUCT; /* number of data channels per pixel (1, 2, 3, 4) */
834
+ png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */
835
+ png_byte spare_byte PNG_DEPSTRUCT; /* to align the data, and for future use */
836
+ png_byte signature[8] PNG_DEPSTRUCT; /* magic bytes read by libpng from start of file */
837
+
838
+ /* The rest of the data is optional. If you are reading, check the
839
+ * valid field to see if the information in these are valid. If you
840
+ * are writing, set the valid field to those chunks you want written,
841
+ * and initialize the appropriate fields below.
842
+ */
843
+
844
+ #if defined(PNG_gAMA_SUPPORTED) && defined(PNG_FLOATING_POINT_SUPPORTED)
845
+ /* The gAMA chunk describes the gamma characteristics of the system
846
+ * on which the image was created, normally in the range [1.0, 2.5].
847
+ * Data is valid if (valid & PNG_INFO_gAMA) is non-zero.
848
+ */
849
+ float gamma PNG_DEPSTRUCT; /* gamma value of image, if (valid & PNG_INFO_gAMA) */
850
+ #endif
851
+
852
+ #ifdef PNG_sRGB_SUPPORTED
853
+ /* GR-P, 0.96a */
854
+ /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */
855
+ png_byte srgb_intent PNG_DEPSTRUCT; /* sRGB rendering intent [0, 1, 2, or 3] */
856
+ #endif
857
+
858
+ #ifdef PNG_TEXT_SUPPORTED
859
+ /* The tEXt, and zTXt chunks contain human-readable textual data in
860
+ * uncompressed, compressed, and optionally compressed forms, respectively.
861
+ * The data in "text" is an array of pointers to uncompressed,
862
+ * null-terminated C strings. Each chunk has a keyword that describes the
863
+ * textual data contained in that chunk. Keywords are not required to be
864
+ * unique, and the text string may be empty. Any number of text chunks may
865
+ * be in an image.
866
+ */
867
+ int num_text PNG_DEPSTRUCT; /* number of comments read/to write */
868
+ int max_text PNG_DEPSTRUCT; /* current size of text array */
869
+ png_textp text PNG_DEPSTRUCT; /* array of comments read/to write */
870
+ #endif /* PNG_TEXT_SUPPORTED */
871
+
872
+ #ifdef PNG_tIME_SUPPORTED
873
+ /* The tIME chunk holds the last time the displayed image data was
874
+ * modified. See the png_time struct for the contents of this struct.
875
+ */
876
+ png_time mod_time PNG_DEPSTRUCT;
877
+ #endif
878
+
879
+ #ifdef PNG_sBIT_SUPPORTED
880
+ /* The sBIT chunk specifies the number of significant high-order bits
881
+ * in the pixel data. Values are in the range [1, bit_depth], and are
882
+ * only specified for the channels in the pixel data. The contents of
883
+ * the low-order bits is not specified. Data is valid if
884
+ * (valid & PNG_INFO_sBIT) is non-zero.
885
+ */
886
+ png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in color channels */
887
+ #endif
888
+
889
+ #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \
890
+ defined(PNG_READ_BACKGROUND_SUPPORTED)
891
+ /* The tRNS chunk supplies transparency data for paletted images and
892
+ * other image types that don't need a full alpha channel. There are
893
+ * "num_trans" transparency values for a paletted image, stored in the
894
+ * same order as the palette colors, starting from index 0. Values
895
+ * for the data are in the range [0, 255], ranging from fully transparent
896
+ * to fully opaque, respectively. For non-paletted images, there is a
897
+ * single color specified that should be treated as fully transparent.
898
+ * Data is valid if (valid & PNG_INFO_tRNS) is non-zero.
899
+ */
900
+ png_bytep trans PNG_DEPSTRUCT; /* transparent values for paletted image */
901
+ png_color_16 trans_values PNG_DEPSTRUCT; /* transparent color for non-palette image */
902
+ #endif
903
+
904
+ #if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
905
+ /* The bKGD chunk gives the suggested image background color if the
906
+ * display program does not have its own background color and the image
907
+ * is needs to composited onto a background before display. The colors
908
+ * in "background" are normally in the same color space/depth as the
909
+ * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero.
910
+ */
911
+ png_color_16 background PNG_DEPSTRUCT;
912
+ #endif
913
+
914
+ #ifdef PNG_oFFs_SUPPORTED
915
+ /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
916
+ * and downwards from the top-left corner of the display, page, or other
917
+ * application-specific co-ordinate space. See the PNG_OFFSET_ defines
918
+ * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero.
919
+ */
920
+ png_int_32 x_offset PNG_DEPSTRUCT; /* x offset on page */
921
+ png_int_32 y_offset PNG_DEPSTRUCT; /* y offset on page */
922
+ png_byte offset_unit_type PNG_DEPSTRUCT; /* offset units type */
923
+ #endif
924
+
925
+ #ifdef PNG_pHYs_SUPPORTED
926
+ /* The pHYs chunk gives the physical pixel density of the image for
927
+ * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_
928
+ * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero.
929
+ */
930
+ png_uint_32 x_pixels_per_unit PNG_DEPSTRUCT; /* horizontal pixel density */
931
+ png_uint_32 y_pixels_per_unit PNG_DEPSTRUCT; /* vertical pixel density */
932
+ png_byte phys_unit_type PNG_DEPSTRUCT; /* resolution type (see PNG_RESOLUTION_ below) */
933
+ #endif
934
+
935
+ #ifdef PNG_hIST_SUPPORTED
936
+ /* The hIST chunk contains the relative frequency or importance of the
937
+ * various palette entries, so that a viewer can intelligently select a
938
+ * reduced-color palette, if required. Data is an array of "num_palette"
939
+ * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST)
940
+ * is non-zero.
941
+ */
942
+ png_uint_16p hist PNG_DEPSTRUCT;
943
+ #endif
944
+
945
+ #ifdef PNG_cHRM_SUPPORTED
946
+ /* The cHRM chunk describes the CIE color characteristics of the monitor
947
+ * on which the PNG was created. This data allows the viewer to do gamut
948
+ * mapping of the input image to ensure that the viewer sees the same
949
+ * colors in the image as the creator. Values are in the range
950
+ * [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero.
951
+ */
952
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
953
+ float x_white PNG_DEPSTRUCT;
954
+ float y_white PNG_DEPSTRUCT;
955
+ float x_red PNG_DEPSTRUCT;
956
+ float y_red PNG_DEPSTRUCT;
957
+ float x_green PNG_DEPSTRUCT;
958
+ float y_green PNG_DEPSTRUCT;
959
+ float x_blue PNG_DEPSTRUCT;
960
+ float y_blue PNG_DEPSTRUCT;
961
+ #endif
962
+ #endif
963
+
964
+ #ifdef PNG_pCAL_SUPPORTED
965
+ /* The pCAL chunk describes a transformation between the stored pixel
966
+ * values and original physical data values used to create the image.
967
+ * The integer range [0, 2^bit_depth - 1] maps to the floating-point
968
+ * range given by [pcal_X0, pcal_X1], and are further transformed by a
969
+ * (possibly non-linear) transformation function given by "pcal_type"
970
+ * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_
971
+ * defines below, and the PNG-Group's PNG extensions document for a
972
+ * complete description of the transformations and how they should be
973
+ * implemented, and for a description of the ASCII parameter strings.
974
+ * Data values are valid if (valid & PNG_INFO_pCAL) non-zero.
975
+ */
976
+ png_charp pcal_purpose PNG_DEPSTRUCT; /* pCAL chunk description string */
977
+ png_int_32 pcal_X0 PNG_DEPSTRUCT; /* minimum value */
978
+ png_int_32 pcal_X1 PNG_DEPSTRUCT; /* maximum value */
979
+ png_charp pcal_units PNG_DEPSTRUCT; /* Latin-1 string giving physical units */
980
+ png_charpp pcal_params PNG_DEPSTRUCT; /* ASCII strings containing parameter values */
981
+ png_byte pcal_type PNG_DEPSTRUCT; /* equation type (see PNG_EQUATION_ below) */
982
+ png_byte pcal_nparams PNG_DEPSTRUCT; /* number of parameters given in pcal_params */
983
+ #endif
984
+
985
+ /* New members added in libpng-1.0.6 */
986
+ #ifdef PNG_FREE_ME_SUPPORTED
987
+ png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */
988
+ #endif
989
+
990
+ #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
991
+ defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
992
+ /* Storage for unknown chunks that the library doesn't recognize. */
993
+ png_unknown_chunkp unknown_chunks PNG_DEPSTRUCT;
994
+ png_size_t unknown_chunks_num PNG_DEPSTRUCT;
995
+ #endif
996
+
997
+ #ifdef PNG_iCCP_SUPPORTED
998
+ /* iCCP chunk data. */
999
+ png_charp iccp_name PNG_DEPSTRUCT; /* profile name */
1000
+ png_charp iccp_profile PNG_DEPSTRUCT; /* International Color Consortium profile data */
1001
+ /* Note to maintainer: should be png_bytep */
1002
+ png_uint_32 iccp_proflen PNG_DEPSTRUCT; /* ICC profile data length */
1003
+ png_byte iccp_compression PNG_DEPSTRUCT; /* Always zero */
1004
+ #endif
1005
+
1006
+ #ifdef PNG_sPLT_SUPPORTED
1007
+ /* Data on sPLT chunks (there may be more than one). */
1008
+ png_sPLT_tp splt_palettes PNG_DEPSTRUCT;
1009
+ png_uint_32 splt_palettes_num PNG_DEPSTRUCT;
1010
+ #endif
1011
+
1012
+ #ifdef PNG_sCAL_SUPPORTED
1013
+ /* The sCAL chunk describes the actual physical dimensions of the
1014
+ * subject matter of the graphic. The chunk contains a unit specification
1015
+ * a byte value, and two ASCII strings representing floating-point
1016
+ * values. The values are width and height corresponsing to one pixel
1017
+ * in the image. This external representation is converted to double
1018
+ * here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero.
1019
+ */
1020
+ png_byte scal_unit PNG_DEPSTRUCT; /* unit of physical scale */
1021
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
1022
+ double scal_pixel_width PNG_DEPSTRUCT; /* width of one pixel */
1023
+ double scal_pixel_height PNG_DEPSTRUCT; /* height of one pixel */
1024
+ #endif
1025
+ #ifdef PNG_FIXED_POINT_SUPPORTED
1026
+ png_charp scal_s_width PNG_DEPSTRUCT; /* string containing height */
1027
+ png_charp scal_s_height PNG_DEPSTRUCT; /* string containing width */
1028
+ #endif
1029
+ #endif
1030
+
1031
+ #ifdef PNG_INFO_IMAGE_SUPPORTED
1032
+ /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero */
1033
+ /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
1034
+ png_bytepp row_pointers PNG_DEPSTRUCT; /* the image bits */
1035
+ #endif
1036
+
1037
+ #if defined(PNG_FIXED_POINT_SUPPORTED) && defined(PNG_gAMA_SUPPORTED)
1038
+ png_fixed_point int_gamma PNG_DEPSTRUCT; /* gamma of image, if (valid & PNG_INFO_gAMA) */
1039
+ #endif
1040
+
1041
+ #if defined(PNG_cHRM_SUPPORTED) && defined(PNG_FIXED_POINT_SUPPORTED)
1042
+ png_fixed_point int_x_white PNG_DEPSTRUCT;
1043
+ png_fixed_point int_y_white PNG_DEPSTRUCT;
1044
+ png_fixed_point int_x_red PNG_DEPSTRUCT;
1045
+ png_fixed_point int_y_red PNG_DEPSTRUCT;
1046
+ png_fixed_point int_x_green PNG_DEPSTRUCT;
1047
+ png_fixed_point int_y_green PNG_DEPSTRUCT;
1048
+ png_fixed_point int_x_blue PNG_DEPSTRUCT;
1049
+ png_fixed_point int_y_blue PNG_DEPSTRUCT;
1050
+ #endif
1051
+
1052
+ } png_info;
1053
+
1054
+ typedef png_info FAR * png_infop;
1055
+ typedef png_info FAR * FAR * png_infopp;
1056
+
1057
+ /* Maximum positive integer used in PNG is (2^31)-1 */
1058
+ #define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL)
1059
+ #define PNG_UINT_32_MAX ((png_uint_32)(-1))
1060
+ #define PNG_SIZE_MAX ((png_size_t)(-1))
1061
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1062
+ /* PNG_MAX_UINT is deprecated; use PNG_UINT_31_MAX instead. */
1063
+ #define PNG_MAX_UINT PNG_UINT_31_MAX
1064
+ #endif
1065
+
1066
+ /* These describe the color_type field in png_info. */
1067
+ /* color type masks */
1068
+ #define PNG_COLOR_MASK_PALETTE 1
1069
+ #define PNG_COLOR_MASK_COLOR 2
1070
+ #define PNG_COLOR_MASK_ALPHA 4
1071
+
1072
+ /* color types. Note that not all combinations are legal */
1073
+ #define PNG_COLOR_TYPE_GRAY 0
1074
+ #define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE)
1075
+ #define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR)
1076
+ #define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA)
1077
+ #define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA)
1078
+ /* aliases */
1079
+ #define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA
1080
+ #define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA
1081
+
1082
+ /* This is for compression type. PNG 1.0-1.2 only define the single type. */
1083
+ #define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */
1084
+ #define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE
1085
+
1086
+ /* This is for filter type. PNG 1.0-1.2 only define the single type. */
1087
+ #define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */
1088
+ #define PNG_INTRAPIXEL_DIFFERENCING 64 /* Used only in MNG datastreams */
1089
+ #define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE
1090
+
1091
+ /* These are for the interlacing type. These values should NOT be changed. */
1092
+ #define PNG_INTERLACE_NONE 0 /* Non-interlaced image */
1093
+ #define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */
1094
+ #define PNG_INTERLACE_LAST 2 /* Not a valid value */
1095
+
1096
+ /* These are for the oFFs chunk. These values should NOT be changed. */
1097
+ #define PNG_OFFSET_PIXEL 0 /* Offset in pixels */
1098
+ #define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */
1099
+ #define PNG_OFFSET_LAST 2 /* Not a valid value */
1100
+
1101
+ /* These are for the pCAL chunk. These values should NOT be changed. */
1102
+ #define PNG_EQUATION_LINEAR 0 /* Linear transformation */
1103
+ #define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */
1104
+ #define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */
1105
+ #define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */
1106
+ #define PNG_EQUATION_LAST 4 /* Not a valid value */
1107
+
1108
+ /* These are for the sCAL chunk. These values should NOT be changed. */
1109
+ #define PNG_SCALE_UNKNOWN 0 /* unknown unit (image scale) */
1110
+ #define PNG_SCALE_METER 1 /* meters per pixel */
1111
+ #define PNG_SCALE_RADIAN 2 /* radians per pixel */
1112
+ #define PNG_SCALE_LAST 3 /* Not a valid value */
1113
+
1114
+ /* These are for the pHYs chunk. These values should NOT be changed. */
1115
+ #define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */
1116
+ #define PNG_RESOLUTION_METER 1 /* pixels/meter */
1117
+ #define PNG_RESOLUTION_LAST 2 /* Not a valid value */
1118
+
1119
+ /* These are for the sRGB chunk. These values should NOT be changed. */
1120
+ #define PNG_sRGB_INTENT_PERCEPTUAL 0
1121
+ #define PNG_sRGB_INTENT_RELATIVE 1
1122
+ #define PNG_sRGB_INTENT_SATURATION 2
1123
+ #define PNG_sRGB_INTENT_ABSOLUTE 3
1124
+ #define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */
1125
+
1126
+ /* This is for text chunks */
1127
+ #define PNG_KEYWORD_MAX_LENGTH 79
1128
+
1129
+ /* Maximum number of entries in PLTE/sPLT/tRNS arrays */
1130
+ #define PNG_MAX_PALETTE_LENGTH 256
1131
+
1132
+ /* These determine if an ancillary chunk's data has been successfully read
1133
+ * from the PNG header, or if the application has filled in the corresponding
1134
+ * data in the info_struct to be written into the output file. The values
1135
+ * of the PNG_INFO_<chunk> defines should NOT be changed.
1136
+ */
1137
+ #define PNG_INFO_gAMA 0x0001
1138
+ #define PNG_INFO_sBIT 0x0002
1139
+ #define PNG_INFO_cHRM 0x0004
1140
+ #define PNG_INFO_PLTE 0x0008
1141
+ #define PNG_INFO_tRNS 0x0010
1142
+ #define PNG_INFO_bKGD 0x0020
1143
+ #define PNG_INFO_hIST 0x0040
1144
+ #define PNG_INFO_pHYs 0x0080
1145
+ #define PNG_INFO_oFFs 0x0100
1146
+ #define PNG_INFO_tIME 0x0200
1147
+ #define PNG_INFO_pCAL 0x0400
1148
+ #define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */
1149
+ #define PNG_INFO_iCCP 0x1000 /* ESR, 1.0.6 */
1150
+ #define PNG_INFO_sPLT 0x2000 /* ESR, 1.0.6 */
1151
+ #define PNG_INFO_sCAL 0x4000 /* ESR, 1.0.6 */
1152
+ #define PNG_INFO_IDAT 0x8000L /* ESR, 1.0.6 */
1153
+
1154
+ /* This is used for the transformation routines, as some of them
1155
+ * change these values for the row. It also should enable using
1156
+ * the routines for other purposes.
1157
+ */
1158
+ typedef struct png_row_info_struct
1159
+ {
1160
+ png_uint_32 width; /* width of row */
1161
+ png_uint_32 rowbytes; /* number of bytes in row */
1162
+ png_byte color_type; /* color type of row */
1163
+ png_byte bit_depth; /* bit depth of row */
1164
+ png_byte channels; /* number of channels (1, 2, 3, or 4) */
1165
+ png_byte pixel_depth; /* bits per pixel (depth * channels) */
1166
+ } png_row_info;
1167
+
1168
+ typedef png_row_info FAR * png_row_infop;
1169
+ typedef png_row_info FAR * FAR * png_row_infopp;
1170
+
1171
+ /* These are the function types for the I/O functions and for the functions
1172
+ * that allow the user to override the default I/O functions with his or her
1173
+ * own. The png_error_ptr type should match that of user-supplied warning
1174
+ * and error functions, while the png_rw_ptr type should match that of the
1175
+ * user read/write data functions.
1176
+ */
1177
+ typedef struct png_struct_def png_struct;
1178
+ typedef png_struct FAR * png_structp;
1179
+
1180
+ typedef void (PNGAPI *png_error_ptr) PNGARG((png_structp, png_const_charp));
1181
+ typedef void (PNGAPI *png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t));
1182
+ typedef void (PNGAPI *png_flush_ptr) PNGARG((png_structp));
1183
+ typedef void (PNGAPI *png_read_status_ptr) PNGARG((png_structp, png_uint_32,
1184
+ int));
1185
+ typedef void (PNGAPI *png_write_status_ptr) PNGARG((png_structp, png_uint_32,
1186
+ int));
1187
+
1188
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
1189
+ typedef void (PNGAPI *png_progressive_info_ptr) PNGARG((png_structp, png_infop));
1190
+ typedef void (PNGAPI *png_progressive_end_ptr) PNGARG((png_structp, png_infop));
1191
+ typedef void (PNGAPI *png_progressive_row_ptr) PNGARG((png_structp, png_bytep,
1192
+ png_uint_32, int));
1193
+ #endif
1194
+
1195
+ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
1196
+ defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
1197
+ defined(PNG_LEGACY_SUPPORTED)
1198
+ typedef void (PNGAPI *png_user_transform_ptr) PNGARG((png_structp,
1199
+ png_row_infop, png_bytep));
1200
+ #endif
1201
+
1202
+ #ifdef PNG_USER_CHUNKS_SUPPORTED
1203
+ typedef int (PNGAPI *png_user_chunk_ptr) PNGARG((png_structp, png_unknown_chunkp));
1204
+ #endif
1205
+ #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
1206
+ typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
1207
+ #endif
1208
+
1209
+ /* Transform masks for the high-level interface */
1210
+ #define PNG_TRANSFORM_IDENTITY 0x0000 /* read and write */
1211
+ #define PNG_TRANSFORM_STRIP_16 0x0001 /* read only */
1212
+ #define PNG_TRANSFORM_STRIP_ALPHA 0x0002 /* read only */
1213
+ #define PNG_TRANSFORM_PACKING 0x0004 /* read and write */
1214
+ #define PNG_TRANSFORM_PACKSWAP 0x0008 /* read and write */
1215
+ #define PNG_TRANSFORM_EXPAND 0x0010 /* read only */
1216
+ #define PNG_TRANSFORM_INVERT_MONO 0x0020 /* read and write */
1217
+ #define PNG_TRANSFORM_SHIFT 0x0040 /* read and write */
1218
+ #define PNG_TRANSFORM_BGR 0x0080 /* read and write */
1219
+ #define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */
1220
+ #define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */
1221
+ #define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */
1222
+ #define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* write only, deprecated */
1223
+ /* Added to libpng-1.2.34 */
1224
+ #define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* write only */
1225
+ #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* write only */
1226
+ /* Added to libpng-1.2.41 */
1227
+ #define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 /* read only */
1228
+
1229
+ /* Flags for MNG supported features */
1230
+ #define PNG_FLAG_MNG_EMPTY_PLTE 0x01
1231
+ #define PNG_FLAG_MNG_FILTER_64 0x04
1232
+ #define PNG_ALL_MNG_FEATURES 0x05
1233
+
1234
+ typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t));
1235
+ typedef void (*png_free_ptr) PNGARG((png_structp, png_voidp));
1236
+
1237
+ /* The structure that holds the information to read and write PNG files.
1238
+ * The only people who need to care about what is inside of this are the
1239
+ * people who will be modifying the library for their own special needs.
1240
+ * It should NOT be accessed directly by an application, except to store
1241
+ * the jmp_buf.
1242
+ */
1243
+
1244
+ struct png_struct_def
1245
+ {
1246
+ #ifdef PNG_SETJMP_SUPPORTED
1247
+ jmp_buf jmpbuf; /* used in png_error */
1248
+ #endif
1249
+ png_error_ptr error_fn PNG_DEPSTRUCT; /* function for printing errors and aborting */
1250
+ png_error_ptr warning_fn PNG_DEPSTRUCT; /* function for printing warnings */
1251
+ png_voidp error_ptr PNG_DEPSTRUCT; /* user supplied struct for error functions */
1252
+ png_rw_ptr write_data_fn PNG_DEPSTRUCT; /* function for writing output data */
1253
+ png_rw_ptr read_data_fn PNG_DEPSTRUCT; /* function for reading input data */
1254
+ png_voidp io_ptr PNG_DEPSTRUCT; /* ptr to application struct for I/O functions */
1255
+
1256
+ #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
1257
+ png_user_transform_ptr read_user_transform_fn PNG_DEPSTRUCT; /* user read transform */
1258
+ #endif
1259
+
1260
+ #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
1261
+ png_user_transform_ptr write_user_transform_fn PNG_DEPSTRUCT; /* user write transform */
1262
+ #endif
1263
+
1264
+ /* These were added in libpng-1.0.2 */
1265
+ #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED
1266
+ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
1267
+ defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
1268
+ png_voidp user_transform_ptr PNG_DEPSTRUCT; /* user supplied struct for user transform */
1269
+ png_byte user_transform_depth PNG_DEPSTRUCT; /* bit depth of user transformed pixels */
1270
+ png_byte user_transform_channels PNG_DEPSTRUCT; /* channels in user transformed pixels */
1271
+ #endif
1272
+ #endif
1273
+
1274
+ png_uint_32 mode PNG_DEPSTRUCT; /* tells us where we are in the PNG file */
1275
+ png_uint_32 flags PNG_DEPSTRUCT; /* flags indicating various things to libpng */
1276
+ png_uint_32 transformations PNG_DEPSTRUCT; /* which transformations to perform */
1277
+
1278
+ z_stream zstream PNG_DEPSTRUCT; /* pointer to decompression structure (below) */
1279
+ png_bytep zbuf PNG_DEPSTRUCT; /* buffer for zlib */
1280
+ png_size_t zbuf_size PNG_DEPSTRUCT; /* size of zbuf */
1281
+ int zlib_level PNG_DEPSTRUCT; /* holds zlib compression level */
1282
+ int zlib_method PNG_DEPSTRUCT; /* holds zlib compression method */
1283
+ int zlib_window_bits PNG_DEPSTRUCT; /* holds zlib compression window bits */
1284
+ int zlib_mem_level PNG_DEPSTRUCT; /* holds zlib compression memory level */
1285
+ int zlib_strategy PNG_DEPSTRUCT; /* holds zlib compression strategy */
1286
+
1287
+ png_uint_32 width PNG_DEPSTRUCT; /* width of image in pixels */
1288
+ png_uint_32 height PNG_DEPSTRUCT; /* height of image in pixels */
1289
+ png_uint_32 num_rows PNG_DEPSTRUCT; /* number of rows in current pass */
1290
+ png_uint_32 usr_width PNG_DEPSTRUCT; /* width of row at start of write */
1291
+ png_uint_32 rowbytes PNG_DEPSTRUCT; /* size of row in bytes */
1292
+ #if 0 /* Replaced with the following in libpng-1.2.43 */
1293
+ png_size_t irowbytes PNG_DEPSTRUCT;
1294
+ #endif
1295
+ /* Added in libpng-1.2.43 */
1296
+ #ifdef PNG_USER_LIMITS_SUPPORTED
1297
+ /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown
1298
+ * chunks that can be stored (0 means unlimited).
1299
+ */
1300
+ png_uint_32 user_chunk_cache_max PNG_DEPSTRUCT;
1301
+ #endif
1302
+ png_uint_32 iwidth PNG_DEPSTRUCT; /* width of current interlaced row in pixels */
1303
+ png_uint_32 row_number PNG_DEPSTRUCT; /* current row in interlace pass */
1304
+ png_bytep prev_row PNG_DEPSTRUCT; /* buffer to save previous (unfiltered) row */
1305
+ png_bytep row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */
1306
+ #ifndef PNG_NO_WRITE_FILTER
1307
+ png_bytep sub_row PNG_DEPSTRUCT; /* buffer to save "sub" row when filtering */
1308
+ png_bytep up_row PNG_DEPSTRUCT; /* buffer to save "up" row when filtering */
1309
+ png_bytep avg_row PNG_DEPSTRUCT; /* buffer to save "avg" row when filtering */
1310
+ png_bytep paeth_row PNG_DEPSTRUCT; /* buffer to save "Paeth" row when filtering */
1311
+ #endif
1312
+ png_row_info row_info PNG_DEPSTRUCT; /* used for transformation routines */
1313
+
1314
+ png_uint_32 idat_size PNG_DEPSTRUCT; /* current IDAT size for read */
1315
+ png_uint_32 crc PNG_DEPSTRUCT; /* current chunk CRC value */
1316
+ png_colorp palette PNG_DEPSTRUCT; /* palette from the input file */
1317
+ png_uint_16 num_palette PNG_DEPSTRUCT; /* number of color entries in palette */
1318
+ png_uint_16 num_trans PNG_DEPSTRUCT; /* number of transparency values */
1319
+ png_byte chunk_name[5] PNG_DEPSTRUCT; /* null-terminated name of current chunk */
1320
+ png_byte compression PNG_DEPSTRUCT; /* file compression type (always 0) */
1321
+ png_byte filter PNG_DEPSTRUCT; /* file filter type (always 0) */
1322
+ png_byte interlaced PNG_DEPSTRUCT; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
1323
+ png_byte pass PNG_DEPSTRUCT; /* current interlace pass (0 - 6) */
1324
+ png_byte do_filter PNG_DEPSTRUCT; /* row filter flags (see PNG_FILTER_ below ) */
1325
+ png_byte color_type PNG_DEPSTRUCT; /* color type of file */
1326
+ png_byte bit_depth PNG_DEPSTRUCT; /* bit depth of file */
1327
+ png_byte usr_bit_depth PNG_DEPSTRUCT; /* bit depth of users row */
1328
+ png_byte pixel_depth PNG_DEPSTRUCT; /* number of bits per pixel */
1329
+ png_byte channels PNG_DEPSTRUCT; /* number of channels in file */
1330
+ png_byte usr_channels PNG_DEPSTRUCT; /* channels at start of write */
1331
+ png_byte sig_bytes PNG_DEPSTRUCT; /* magic bytes read/written from start of file */
1332
+
1333
+ #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
1334
+ #ifdef PNG_LEGACY_SUPPORTED
1335
+ png_byte filler PNG_DEPSTRUCT; /* filler byte for pixel expansion */
1336
+ #else
1337
+ png_uint_16 filler PNG_DEPSTRUCT; /* filler bytes for pixel expansion */
1338
+ #endif
1339
+ #endif
1340
+
1341
+ #ifdef PNG_bKGD_SUPPORTED
1342
+ png_byte background_gamma_type PNG_DEPSTRUCT;
1343
+ # ifdef PNG_FLOATING_POINT_SUPPORTED
1344
+ float background_gamma PNG_DEPSTRUCT;
1345
+ # endif
1346
+ png_color_16 background PNG_DEPSTRUCT; /* background color in screen gamma space */
1347
+ #ifdef PNG_READ_GAMMA_SUPPORTED
1348
+ png_color_16 background_1 PNG_DEPSTRUCT; /* background normalized to gamma 1.0 */
1349
+ #endif
1350
+ #endif /* PNG_bKGD_SUPPORTED */
1351
+
1352
+ #ifdef PNG_WRITE_FLUSH_SUPPORTED
1353
+ png_flush_ptr output_flush_fn PNG_DEPSTRUCT; /* Function for flushing output */
1354
+ png_uint_32 flush_dist PNG_DEPSTRUCT; /* how many rows apart to flush, 0 - no flush */
1355
+ png_uint_32 flush_rows PNG_DEPSTRUCT; /* number of rows written since last flush */
1356
+ #endif
1357
+
1358
+ #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1359
+ int gamma_shift PNG_DEPSTRUCT; /* number of "insignificant" bits 16-bit gamma */
1360
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
1361
+ float gamma PNG_DEPSTRUCT; /* file gamma value */
1362
+ float screen_gamma PNG_DEPSTRUCT; /* screen gamma value (display_exponent) */
1363
+ #endif
1364
+ #endif
1365
+
1366
+ #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1367
+ png_bytep gamma_table PNG_DEPSTRUCT; /* gamma table for 8-bit depth files */
1368
+ png_bytep gamma_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */
1369
+ png_bytep gamma_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */
1370
+ png_uint_16pp gamma_16_table PNG_DEPSTRUCT; /* gamma table for 16-bit depth files */
1371
+ png_uint_16pp gamma_16_from_1 PNG_DEPSTRUCT; /* converts from 1.0 to screen */
1372
+ png_uint_16pp gamma_16_to_1 PNG_DEPSTRUCT; /* converts from file to 1.0 */
1373
+ #endif
1374
+
1375
+ #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED)
1376
+ png_color_8 sig_bit PNG_DEPSTRUCT; /* significant bits in each available channel */
1377
+ #endif
1378
+
1379
+ #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
1380
+ png_color_8 shift PNG_DEPSTRUCT; /* shift for significant bit tranformation */
1381
+ #endif
1382
+
1383
+ #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \
1384
+ || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1385
+ png_bytep trans PNG_DEPSTRUCT; /* transparency values for paletted files */
1386
+ png_color_16 trans_values PNG_DEPSTRUCT; /* transparency values for non-paletted files */
1387
+ #endif
1388
+
1389
+ png_read_status_ptr read_row_fn PNG_DEPSTRUCT; /* called after each row is decoded */
1390
+ png_write_status_ptr write_row_fn PNG_DEPSTRUCT; /* called after each row is encoded */
1391
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
1392
+ png_progressive_info_ptr info_fn PNG_DEPSTRUCT; /* called after header data fully read */
1393
+ png_progressive_row_ptr row_fn PNG_DEPSTRUCT; /* called after each prog. row is decoded */
1394
+ png_progressive_end_ptr end_fn PNG_DEPSTRUCT; /* called after image is complete */
1395
+ png_bytep save_buffer_ptr PNG_DEPSTRUCT; /* current location in save_buffer */
1396
+ png_bytep save_buffer PNG_DEPSTRUCT; /* buffer for previously read data */
1397
+ png_bytep current_buffer_ptr PNG_DEPSTRUCT; /* current location in current_buffer */
1398
+ png_bytep current_buffer PNG_DEPSTRUCT; /* buffer for recently used data */
1399
+ png_uint_32 push_length PNG_DEPSTRUCT; /* size of current input chunk */
1400
+ png_uint_32 skip_length PNG_DEPSTRUCT; /* bytes to skip in input data */
1401
+ png_size_t save_buffer_size PNG_DEPSTRUCT; /* amount of data now in save_buffer */
1402
+ png_size_t save_buffer_max PNG_DEPSTRUCT; /* total size of save_buffer */
1403
+ png_size_t buffer_size PNG_DEPSTRUCT; /* total amount of available input data */
1404
+ png_size_t current_buffer_size PNG_DEPSTRUCT; /* amount of data now in current_buffer */
1405
+ int process_mode PNG_DEPSTRUCT; /* what push library is currently doing */
1406
+ int cur_palette PNG_DEPSTRUCT; /* current push library palette index */
1407
+
1408
+ # ifdef PNG_TEXT_SUPPORTED
1409
+ png_size_t current_text_size PNG_DEPSTRUCT; /* current size of text input data */
1410
+ png_size_t current_text_left PNG_DEPSTRUCT; /* how much text left to read in input */
1411
+ png_charp current_text PNG_DEPSTRUCT; /* current text chunk buffer */
1412
+ png_charp current_text_ptr PNG_DEPSTRUCT; /* current location in current_text */
1413
+ # endif /* PNG_TEXT_SUPPORTED */
1414
+ #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
1415
+
1416
+ #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
1417
+ /* for the Borland special 64K segment handler */
1418
+ png_bytepp offset_table_ptr PNG_DEPSTRUCT;
1419
+ png_bytep offset_table PNG_DEPSTRUCT;
1420
+ png_uint_16 offset_table_number PNG_DEPSTRUCT;
1421
+ png_uint_16 offset_table_count PNG_DEPSTRUCT;
1422
+ png_uint_16 offset_table_count_free PNG_DEPSTRUCT;
1423
+ #endif
1424
+
1425
+ #ifdef PNG_READ_DITHER_SUPPORTED
1426
+ png_bytep palette_lookup PNG_DEPSTRUCT; /* lookup table for dithering */
1427
+ png_bytep dither_index PNG_DEPSTRUCT; /* index translation for palette files */
1428
+ #endif
1429
+
1430
+ #if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_hIST_SUPPORTED)
1431
+ png_uint_16p hist PNG_DEPSTRUCT; /* histogram */
1432
+ #endif
1433
+
1434
+ #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED
1435
+ png_byte heuristic_method PNG_DEPSTRUCT; /* heuristic for row filter selection */
1436
+ png_byte num_prev_filters PNG_DEPSTRUCT; /* number of weights for previous rows */
1437
+ png_bytep prev_filters PNG_DEPSTRUCT; /* filter type(s) of previous row(s) */
1438
+ png_uint_16p filter_weights PNG_DEPSTRUCT; /* weight(s) for previous line(s) */
1439
+ png_uint_16p inv_filter_weights PNG_DEPSTRUCT; /* 1/weight(s) for previous line(s) */
1440
+ png_uint_16p filter_costs PNG_DEPSTRUCT; /* relative filter calculation cost */
1441
+ png_uint_16p inv_filter_costs PNG_DEPSTRUCT; /* 1/relative filter calculation cost */
1442
+ #endif
1443
+
1444
+ #ifdef PNG_TIME_RFC1123_SUPPORTED
1445
+ png_charp time_buffer PNG_DEPSTRUCT; /* String to hold RFC 1123 time text */
1446
+ #endif
1447
+
1448
+ /* New members added in libpng-1.0.6 */
1449
+
1450
+ #ifdef PNG_FREE_ME_SUPPORTED
1451
+ png_uint_32 free_me PNG_DEPSTRUCT; /* flags items libpng is responsible for freeing */
1452
+ #endif
1453
+
1454
+ #ifdef PNG_USER_CHUNKS_SUPPORTED
1455
+ png_voidp user_chunk_ptr PNG_DEPSTRUCT;
1456
+ png_user_chunk_ptr read_user_chunk_fn PNG_DEPSTRUCT; /* user read chunk handler */
1457
+ #endif
1458
+
1459
+ #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
1460
+ int num_chunk_list PNG_DEPSTRUCT;
1461
+ png_bytep chunk_list PNG_DEPSTRUCT;
1462
+ #endif
1463
+
1464
+ /* New members added in libpng-1.0.3 */
1465
+ #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1466
+ png_byte rgb_to_gray_status PNG_DEPSTRUCT;
1467
+ /* These were changed from png_byte in libpng-1.0.6 */
1468
+ png_uint_16 rgb_to_gray_red_coeff PNG_DEPSTRUCT;
1469
+ png_uint_16 rgb_to_gray_green_coeff PNG_DEPSTRUCT;
1470
+ png_uint_16 rgb_to_gray_blue_coeff PNG_DEPSTRUCT;
1471
+ #endif
1472
+
1473
+ /* New member added in libpng-1.0.4 (renamed in 1.0.9) */
1474
+ #if defined(PNG_MNG_FEATURES_SUPPORTED) || \
1475
+ defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
1476
+ defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
1477
+ /* Changed from png_byte to png_uint_32 at version 1.2.0 */
1478
+ #ifdef PNG_1_0_X
1479
+ png_byte mng_features_permitted PNG_DEPSTRUCT;
1480
+ #else
1481
+ png_uint_32 mng_features_permitted PNG_DEPSTRUCT;
1482
+ #endif /* PNG_1_0_X */
1483
+ #endif
1484
+
1485
+ /* New member added in libpng-1.0.7 */
1486
+ #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED)
1487
+ png_fixed_point int_gamma PNG_DEPSTRUCT;
1488
+ #endif
1489
+
1490
+ /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */
1491
+ #ifdef PNG_MNG_FEATURES_SUPPORTED
1492
+ png_byte filter_type PNG_DEPSTRUCT;
1493
+ #endif
1494
+
1495
+ #ifdef PNG_1_0_X
1496
+ /* New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 */
1497
+ png_uint_32 row_buf_size PNG_DEPSTRUCT;
1498
+ #endif
1499
+
1500
+ /* New members added in libpng-1.2.0 */
1501
+ #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
1502
+ # ifndef PNG_1_0_X
1503
+ # ifdef PNG_MMX_CODE_SUPPORTED
1504
+ png_byte mmx_bitdepth_threshold PNG_DEPSTRUCT;
1505
+ png_uint_32 mmx_rowbytes_threshold PNG_DEPSTRUCT;
1506
+ # endif
1507
+ png_uint_32 asm_flags PNG_DEPSTRUCT;
1508
+ # endif
1509
+ #endif
1510
+
1511
+ /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
1512
+ #ifdef PNG_USER_MEM_SUPPORTED
1513
+ png_voidp mem_ptr PNG_DEPSTRUCT; /* user supplied struct for mem functions */
1514
+ png_malloc_ptr malloc_fn PNG_DEPSTRUCT; /* function for allocating memory */
1515
+ png_free_ptr free_fn PNG_DEPSTRUCT; /* function for freeing memory */
1516
+ #endif
1517
+
1518
+ /* New member added in libpng-1.0.13 and 1.2.0 */
1519
+ png_bytep big_row_buf PNG_DEPSTRUCT; /* buffer to save current (unfiltered) row */
1520
+
1521
+ #ifdef PNG_READ_DITHER_SUPPORTED
1522
+ /* The following three members were added at version 1.0.14 and 1.2.4 */
1523
+ png_bytep dither_sort PNG_DEPSTRUCT; /* working sort array */
1524
+ png_bytep index_to_palette PNG_DEPSTRUCT; /* where the original index currently is */
1525
+ /* in the palette */
1526
+ png_bytep palette_to_index PNG_DEPSTRUCT; /* which original index points to this */
1527
+ /* palette color */
1528
+ #endif
1529
+
1530
+ /* New members added in libpng-1.0.16 and 1.2.6 */
1531
+ png_byte compression_type PNG_DEPSTRUCT;
1532
+
1533
+ #ifdef PNG_USER_LIMITS_SUPPORTED
1534
+ png_uint_32 user_width_max PNG_DEPSTRUCT;
1535
+ png_uint_32 user_height_max PNG_DEPSTRUCT;
1536
+ #endif
1537
+
1538
+ /* New member added in libpng-1.0.25 and 1.2.17 */
1539
+ #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
1540
+ /* Storage for unknown chunk that the library doesn't recognize. */
1541
+ png_unknown_chunk unknown_chunk PNG_DEPSTRUCT;
1542
+ #endif
1543
+
1544
+ /* New members added in libpng-1.2.26 */
1545
+ png_uint_32 old_big_row_buf_size PNG_DEPSTRUCT;
1546
+ png_uint_32 old_prev_row_size PNG_DEPSTRUCT;
1547
+
1548
+ /* New member added in libpng-1.2.30 */
1549
+ png_charp chunkdata PNG_DEPSTRUCT; /* buffer for reading chunk data */
1550
+
1551
+
1552
+ };
1553
+
1554
+
1555
+ /* This triggers a compiler error in png.c, if png.c and png.h
1556
+ * do not agree upon the version number.
1557
+ */
1558
+ typedef png_structp version_1_2_46;
1559
+
1560
+ typedef png_struct FAR * FAR * png_structpp;
1561
+
1562
+ /* Here are the function definitions most commonly used. This is not
1563
+ * the place to find out how to use libpng. See libpng.txt for the
1564
+ * full explanation, see example.c for the summary. This just provides
1565
+ * a simple one line description of the use of each function.
1566
+ */
1567
+
1568
+ /* Returns the version number of the library */
1569
+ extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void));
1570
+
1571
+ /* Tell lib we have already handled the first <num_bytes> magic bytes.
1572
+ * Handling more than 8 bytes from the beginning of the file is an error.
1573
+ */
1574
+ extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr,
1575
+ int num_bytes));
1576
+
1577
+ /* Check sig[start] through sig[start + num_to_check - 1] to see if it's a
1578
+ * PNG file. Returns zero if the supplied bytes match the 8-byte PNG
1579
+ * signature, and non-zero otherwise. Having num_to_check == 0 or
1580
+ * start > 7 will always fail (ie return non-zero).
1581
+ */
1582
+ extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start,
1583
+ png_size_t num_to_check));
1584
+
1585
+ /* Simple signature checking function. This is the same as calling
1586
+ * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n).
1587
+ */
1588
+ extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)) PNG_DEPRECATED;
1589
+
1590
+ /* Allocate and initialize png_ptr struct for reading, and any other memory. */
1591
+ extern PNG_EXPORT(png_structp,png_create_read_struct)
1592
+ PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1593
+ png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED;
1594
+
1595
+ /* Allocate and initialize png_ptr struct for writing, and any other memory */
1596
+ extern PNG_EXPORT(png_structp,png_create_write_struct)
1597
+ PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1598
+ png_error_ptr error_fn, png_error_ptr warn_fn)) PNG_ALLOCATED;
1599
+
1600
+ #ifdef PNG_WRITE_SUPPORTED
1601
+ extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size)
1602
+ PNGARG((png_structp png_ptr));
1603
+ #endif
1604
+
1605
+ #ifdef PNG_WRITE_SUPPORTED
1606
+ extern PNG_EXPORT(void,png_set_compression_buffer_size)
1607
+ PNGARG((png_structp png_ptr, png_uint_32 size));
1608
+ #endif
1609
+
1610
+ /* Reset the compression stream */
1611
+ extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr));
1612
+
1613
+ /* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */
1614
+ #ifdef PNG_USER_MEM_SUPPORTED
1615
+ extern PNG_EXPORT(png_structp,png_create_read_struct_2)
1616
+ PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1617
+ png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
1618
+ png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED;
1619
+ extern PNG_EXPORT(png_structp,png_create_write_struct_2)
1620
+ PNGARG((png_const_charp user_png_ver, png_voidp error_ptr,
1621
+ png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
1622
+ png_malloc_ptr malloc_fn, png_free_ptr free_fn)) PNG_ALLOCATED;
1623
+ #endif
1624
+
1625
+ /* Write a PNG chunk - size, type, (optional) data, CRC. */
1626
+ extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr,
1627
+ png_bytep chunk_name, png_bytep data, png_size_t length));
1628
+
1629
+ /* Write the start of a PNG chunk - length and chunk name. */
1630
+ extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr,
1631
+ png_bytep chunk_name, png_uint_32 length));
1632
+
1633
+ /* Write the data of a PNG chunk started with png_write_chunk_start(). */
1634
+ extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr,
1635
+ png_bytep data, png_size_t length));
1636
+
1637
+ /* Finish a chunk started with png_write_chunk_start() (includes CRC). */
1638
+ extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr));
1639
+
1640
+ /* Allocate and initialize the info structure */
1641
+ extern PNG_EXPORT(png_infop,png_create_info_struct)
1642
+ PNGARG((png_structp png_ptr)) PNG_ALLOCATED;
1643
+
1644
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1645
+ /* Initialize the info structure (old interface - DEPRECATED) */
1646
+ extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr))
1647
+ PNG_DEPRECATED;
1648
+ #undef png_info_init
1649
+ #define png_info_init(info_ptr) png_info_init_3(&info_ptr,\
1650
+ png_sizeof(png_info));
1651
+ #endif
1652
+
1653
+ extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr,
1654
+ png_size_t png_info_struct_size));
1655
+
1656
+ /* Writes all the PNG information before the image. */
1657
+ extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr,
1658
+ png_infop info_ptr));
1659
+ extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
1660
+ png_infop info_ptr));
1661
+
1662
+ #ifdef PNG_SEQUENTIAL_READ_SUPPORTED
1663
+ /* Read the information before the actual image data. */
1664
+ extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
1665
+ png_infop info_ptr));
1666
+ #endif
1667
+
1668
+ #ifdef PNG_TIME_RFC1123_SUPPORTED
1669
+ extern PNG_EXPORT(png_charp,png_convert_to_rfc1123)
1670
+ PNGARG((png_structp png_ptr, png_timep ptime));
1671
+ #endif
1672
+
1673
+ #ifdef PNG_CONVERT_tIME_SUPPORTED
1674
+ /* Convert from a struct tm to png_time */
1675
+ extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
1676
+ struct tm FAR * ttime));
1677
+
1678
+ /* Convert from time_t to png_time. Uses gmtime() */
1679
+ extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
1680
+ time_t ttime));
1681
+ #endif /* PNG_CONVERT_tIME_SUPPORTED */
1682
+
1683
+ #ifdef PNG_READ_EXPAND_SUPPORTED
1684
+ /* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */
1685
+ extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr));
1686
+ #ifndef PNG_1_0_X
1687
+ extern PNG_EXPORT(void,png_set_expand_gray_1_2_4_to_8) PNGARG((png_structp
1688
+ png_ptr));
1689
+ #endif
1690
+ extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr));
1691
+ extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr));
1692
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1693
+ /* Deprecated */
1694
+ extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp
1695
+ png_ptr)) PNG_DEPRECATED;
1696
+ #endif
1697
+ #endif
1698
+
1699
+ #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
1700
+ /* Use blue, green, red order for pixels. */
1701
+ extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr));
1702
+ #endif
1703
+
1704
+ #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
1705
+ /* Expand the grayscale to 24-bit RGB if necessary. */
1706
+ extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr));
1707
+ #endif
1708
+
1709
+ #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
1710
+ /* Reduce RGB to grayscale. */
1711
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
1712
+ extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr,
1713
+ int error_action, double red, double green ));
1714
+ #endif
1715
+ extern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr,
1716
+ int error_action, png_fixed_point red, png_fixed_point green ));
1717
+ extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp
1718
+ png_ptr));
1719
+ #endif
1720
+
1721
+ extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth,
1722
+ png_colorp palette));
1723
+
1724
+ #ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
1725
+ extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr));
1726
+ #endif
1727
+
1728
+ #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \
1729
+ defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
1730
+ extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr));
1731
+ #endif
1732
+
1733
+ #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \
1734
+ defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
1735
+ extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr));
1736
+ #endif
1737
+
1738
+ #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
1739
+ /* Add a filler byte to 8-bit Gray or 24-bit RGB images. */
1740
+ extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr,
1741
+ png_uint_32 filler, int flags));
1742
+ /* The values of the PNG_FILLER_ defines should NOT be changed */
1743
+ #define PNG_FILLER_BEFORE 0
1744
+ #define PNG_FILLER_AFTER 1
1745
+ /* Add an alpha byte to 8-bit Gray or 24-bit RGB images. */
1746
+ #ifndef PNG_1_0_X
1747
+ extern PNG_EXPORT(void,png_set_add_alpha) PNGARG((png_structp png_ptr,
1748
+ png_uint_32 filler, int flags));
1749
+ #endif
1750
+ #endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */
1751
+
1752
+ #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
1753
+ /* Swap bytes in 16-bit depth files. */
1754
+ extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr));
1755
+ #endif
1756
+
1757
+ #if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)
1758
+ /* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */
1759
+ extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr));
1760
+ #endif
1761
+
1762
+ #if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
1763
+ /* Swap packing order of pixels in bytes. */
1764
+ extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr));
1765
+ #endif
1766
+
1767
+ #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)
1768
+ /* Converts files to legal bit depths. */
1769
+ extern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr,
1770
+ png_color_8p true_bits));
1771
+ #endif
1772
+
1773
+ #if defined(PNG_READ_INTERLACING_SUPPORTED) || \
1774
+ defined(PNG_WRITE_INTERLACING_SUPPORTED)
1775
+ /* Have the code handle the interlacing. Returns the number of passes. */
1776
+ extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr));
1777
+ #endif
1778
+
1779
+ #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
1780
+ /* Invert monochrome files */
1781
+ extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr));
1782
+ #endif
1783
+
1784
+ #ifdef PNG_READ_BACKGROUND_SUPPORTED
1785
+ /* Handle alpha and tRNS by replacing with a background color. */
1786
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
1787
+ extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
1788
+ png_color_16p background_color, int background_gamma_code,
1789
+ int need_expand, double background_gamma));
1790
+ #endif
1791
+ #define PNG_BACKGROUND_GAMMA_UNKNOWN 0
1792
+ #define PNG_BACKGROUND_GAMMA_SCREEN 1
1793
+ #define PNG_BACKGROUND_GAMMA_FILE 2
1794
+ #define PNG_BACKGROUND_GAMMA_UNIQUE 3
1795
+ #endif
1796
+
1797
+ #ifdef PNG_READ_16_TO_8_SUPPORTED
1798
+ /* Strip the second byte of information from a 16-bit depth file. */
1799
+ extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
1800
+ #endif
1801
+
1802
+ #ifdef PNG_READ_DITHER_SUPPORTED
1803
+ /* Turn on dithering, and reduce the palette to the number of colors available. */
1804
+ extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr,
1805
+ png_colorp palette, int num_palette, int maximum_colors,
1806
+ png_uint_16p histogram, int full_dither));
1807
+ #endif
1808
+
1809
+ #ifdef PNG_READ_GAMMA_SUPPORTED
1810
+ /* Handle gamma correction. Screen_gamma=(display_exponent) */
1811
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
1812
+ extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr,
1813
+ double screen_gamma, double default_file_gamma));
1814
+ #endif
1815
+ #endif
1816
+
1817
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
1818
+ #if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \
1819
+ defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)
1820
+ /* Permit or disallow empty PLTE (0: not permitted, 1: permitted) */
1821
+ /* Deprecated and will be removed. Use png_permit_mng_features() instead. */
1822
+ extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr,
1823
+ int empty_plte_permitted)) PNG_DEPRECATED;
1824
+ #endif
1825
+ #endif
1826
+
1827
+ #ifdef PNG_WRITE_FLUSH_SUPPORTED
1828
+ /* Set how many lines between output flushes - 0 for no flushing */
1829
+ extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
1830
+ /* Flush the current PNG output buffer */
1831
+ extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
1832
+ #endif
1833
+
1834
+ /* Optional update palette with requested transformations */
1835
+ extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
1836
+
1837
+ /* Optional call to update the users info structure */
1838
+ extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
1839
+ png_infop info_ptr));
1840
+
1841
+ #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1842
+ /* Read one or more rows of image data. */
1843
+ extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
1844
+ png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
1845
+ #endif
1846
+
1847
+ #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1848
+ /* Read a row of data. */
1849
+ extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
1850
+ png_bytep row,
1851
+ png_bytep display_row));
1852
+ #endif
1853
+
1854
+ #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1855
+ /* Read the whole image into memory at once. */
1856
+ extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
1857
+ png_bytepp image));
1858
+ #endif
1859
+
1860
+ /* Write a row of image data */
1861
+ extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
1862
+ png_bytep row));
1863
+
1864
+ /* Write a few rows of image data */
1865
+ extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
1866
+ png_bytepp row, png_uint_32 num_rows));
1867
+
1868
+ /* Write the image data */
1869
+ extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
1870
+ png_bytepp image));
1871
+
1872
+ /* Writes the end of the PNG file. */
1873
+ extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
1874
+ png_infop info_ptr));
1875
+
1876
+ #ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
1877
+ /* Read the end of the PNG file. */
1878
+ extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
1879
+ png_infop info_ptr));
1880
+ #endif
1881
+
1882
+ /* Free any memory associated with the png_info_struct */
1883
+ extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
1884
+ png_infopp info_ptr_ptr));
1885
+
1886
+ /* Free any memory associated with the png_struct and the png_info_structs */
1887
+ extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
1888
+ png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
1889
+
1890
+ /* Free all memory used by the read (old method - NOT DLL EXPORTED) */
1891
+ /* Debian note: exporting as it is required by legacy applications */
1892
+ extern PNG_EXPORT(void,png_read_destroy) PNGARG((png_structp png_ptr, png_infop info_ptr,
1893
+ png_infop end_info_ptr));
1894
+
1895
+ /* Free any memory associated with the png_struct and the png_info_structs */
1896
+ extern PNG_EXPORT(void,png_destroy_write_struct)
1897
+ PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
1898
+
1899
+ /* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
1900
+ /* Debian note: exporting as it is required by legacy applications */
1901
+ extern PNG_EXPORT(void,png_write_destroy) PNGARG((png_structp png_ptr));
1902
+
1903
+ /* Set the libpng method of handling chunk CRC errors */
1904
+ extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
1905
+ int crit_action, int ancil_action));
1906
+
1907
+ /* Values for png_set_crc_action() to say how to handle CRC errors in
1908
+ * ancillary and critical chunks, and whether to use the data contained
1909
+ * therein. Note that it is impossible to "discard" data in a critical
1910
+ * chunk. For versions prior to 0.90, the action was always error/quit,
1911
+ * whereas in version 0.90 and later, the action for CRC errors in ancillary
1912
+ * chunks is warn/discard. These values should NOT be changed.
1913
+ *
1914
+ * value action:critical action:ancillary
1915
+ */
1916
+ #define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */
1917
+ #define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */
1918
+ #define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */
1919
+ #define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */
1920
+ #define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */
1921
+ #define PNG_CRC_NO_CHANGE 5 /* use current value use current value */
1922
+
1923
+ /* These functions give the user control over the scan-line filtering in
1924
+ * libpng and the compression methods used by zlib. These functions are
1925
+ * mainly useful for testing, as the defaults should work with most users.
1926
+ * Those users who are tight on memory or want faster performance at the
1927
+ * expense of compression can modify them. See the compression library
1928
+ * header file (zlib.h) for an explination of the compression functions.
1929
+ */
1930
+
1931
+ /* Set the filtering method(s) used by libpng. Currently, the only valid
1932
+ * value for "method" is 0.
1933
+ */
1934
+ extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
1935
+ int filters));
1936
+
1937
+ /* Flags for png_set_filter() to say which filters to use. The flags
1938
+ * are chosen so that they don't conflict with real filter types
1939
+ * below, in case they are supplied instead of the #defined constants.
1940
+ * These values should NOT be changed.
1941
+ */
1942
+ #define PNG_NO_FILTERS 0x00
1943
+ #define PNG_FILTER_NONE 0x08
1944
+ #define PNG_FILTER_SUB 0x10
1945
+ #define PNG_FILTER_UP 0x20
1946
+ #define PNG_FILTER_AVG 0x40
1947
+ #define PNG_FILTER_PAETH 0x80
1948
+ #define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \
1949
+ PNG_FILTER_AVG | PNG_FILTER_PAETH)
1950
+
1951
+ /* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now.
1952
+ * These defines should NOT be changed.
1953
+ */
1954
+ #define PNG_FILTER_VALUE_NONE 0
1955
+ #define PNG_FILTER_VALUE_SUB 1
1956
+ #define PNG_FILTER_VALUE_UP 2
1957
+ #define PNG_FILTER_VALUE_AVG 3
1958
+ #define PNG_FILTER_VALUE_PAETH 4
1959
+ #define PNG_FILTER_VALUE_LAST 5
1960
+
1961
+ #if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* EXPERIMENTAL */
1962
+ /* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_
1963
+ * defines, either the default (minimum-sum-of-absolute-differences), or
1964
+ * the experimental method (weighted-minimum-sum-of-absolute-differences).
1965
+ *
1966
+ * Weights are factors >= 1.0, indicating how important it is to keep the
1967
+ * filter type consistent between rows. Larger numbers mean the current
1968
+ * filter is that many times as likely to be the same as the "num_weights"
1969
+ * previous filters. This is cumulative for each previous row with a weight.
1970
+ * There needs to be "num_weights" values in "filter_weights", or it can be
1971
+ * NULL if the weights aren't being specified. Weights have no influence on
1972
+ * the selection of the first row filter. Well chosen weights can (in theory)
1973
+ * improve the compression for a given image.
1974
+ *
1975
+ * Costs are factors >= 1.0 indicating the relative decoding costs of a
1976
+ * filter type. Higher costs indicate more decoding expense, and are
1977
+ * therefore less likely to be selected over a filter with lower computational
1978
+ * costs. There needs to be a value in "filter_costs" for each valid filter
1979
+ * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't
1980
+ * setting the costs. Costs try to improve the speed of decompression without
1981
+ * unduly increasing the compressed image size.
1982
+ *
1983
+ * A negative weight or cost indicates the default value is to be used, and
1984
+ * values in the range [0.0, 1.0) indicate the value is to remain unchanged.
1985
+ * The default values for both weights and costs are currently 1.0, but may
1986
+ * change if good general weighting/cost heuristics can be found. If both
1987
+ * the weights and costs are set to 1.0, this degenerates the WEIGHTED method
1988
+ * to the UNWEIGHTED method, but with added encoding time/computation.
1989
+ */
1990
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
1991
+ extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr,
1992
+ int heuristic_method, int num_weights, png_doublep filter_weights,
1993
+ png_doublep filter_costs));
1994
+ #endif
1995
+ #endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */
1996
+
1997
+ /* Heuristic used for row filter selection. These defines should NOT be
1998
+ * changed.
1999
+ */
2000
+ #define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */
2001
+ #define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */
2002
+ #define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */
2003
+ #define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */
2004
+
2005
+ /* Set the library compression level. Currently, valid values range from
2006
+ * 0 - 9, corresponding directly to the zlib compression levels 0 - 9
2007
+ * (0 - no compression, 9 - "maximal" compression). Note that tests have
2008
+ * shown that zlib compression levels 3-6 usually perform as well as level 9
2009
+ * for PNG images, and do considerably fewer caclulations. In the future,
2010
+ * these values may not correspond directly to the zlib compression levels.
2011
+ */
2012
+ extern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr,
2013
+ int level));
2014
+
2015
+ extern PNG_EXPORT(void,png_set_compression_mem_level)
2016
+ PNGARG((png_structp png_ptr, int mem_level));
2017
+
2018
+ extern PNG_EXPORT(void,png_set_compression_strategy)
2019
+ PNGARG((png_structp png_ptr, int strategy));
2020
+
2021
+ extern PNG_EXPORT(void,png_set_compression_window_bits)
2022
+ PNGARG((png_structp png_ptr, int window_bits));
2023
+
2024
+ extern PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr,
2025
+ int method));
2026
+
2027
+ /* These next functions are called for input/output, memory, and error
2028
+ * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c,
2029
+ * and call standard C I/O routines such as fread(), fwrite(), and
2030
+ * fprintf(). These functions can be made to use other I/O routines
2031
+ * at run time for those applications that need to handle I/O in a
2032
+ * different manner by calling png_set_???_fn(). See libpng.txt for
2033
+ * more information.
2034
+ */
2035
+
2036
+ #ifdef PNG_STDIO_SUPPORTED
2037
+ /* Initialize the input/output for the PNG file to the default functions. */
2038
+ extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, png_FILE_p fp));
2039
+ #endif
2040
+
2041
+ /* Replace the (error and abort), and warning functions with user
2042
+ * supplied functions. If no messages are to be printed you must still
2043
+ * write and use replacement functions. The replacement error_fn should
2044
+ * still do a longjmp to the last setjmp location if you are using this
2045
+ * method of error handling. If error_fn or warning_fn is NULL, the
2046
+ * default function will be used.
2047
+ */
2048
+
2049
+ extern PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr,
2050
+ png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn));
2051
+
2052
+ /* Return the user pointer associated with the error functions */
2053
+ extern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr));
2054
+
2055
+ /* Replace the default data output functions with a user supplied one(s).
2056
+ * If buffered output is not used, then output_flush_fn can be set to NULL.
2057
+ * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time
2058
+ * output_flush_fn will be ignored (and thus can be NULL).
2059
+ * It is probably a mistake to use NULL for output_flush_fn if
2060
+ * write_data_fn is not also NULL unless you have built libpng with
2061
+ * PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's
2062
+ * default flush function, which uses the standard *FILE structure, will
2063
+ * be used.
2064
+ */
2065
+ extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr,
2066
+ png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
2067
+
2068
+ /* Replace the default data input function with a user supplied one. */
2069
+ extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr,
2070
+ png_voidp io_ptr, png_rw_ptr read_data_fn));
2071
+
2072
+ /* Return the user pointer associated with the I/O functions */
2073
+ extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr));
2074
+
2075
+ extern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr,
2076
+ png_read_status_ptr read_row_fn));
2077
+
2078
+ extern PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr,
2079
+ png_write_status_ptr write_row_fn));
2080
+
2081
+ #ifdef PNG_USER_MEM_SUPPORTED
2082
+ /* Replace the default memory allocation functions with user supplied one(s). */
2083
+ extern PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr,
2084
+ png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn));
2085
+ /* Return the user pointer associated with the memory functions */
2086
+ extern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr));
2087
+ #endif
2088
+
2089
+ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
2090
+ defined(PNG_LEGACY_SUPPORTED)
2091
+ extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp
2092
+ png_ptr, png_user_transform_ptr read_user_transform_fn));
2093
+ #endif
2094
+
2095
+ #if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
2096
+ defined(PNG_LEGACY_SUPPORTED)
2097
+ extern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp
2098
+ png_ptr, png_user_transform_ptr write_user_transform_fn));
2099
+ #endif
2100
+
2101
+ #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \
2102
+ defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) || \
2103
+ defined(PNG_LEGACY_SUPPORTED)
2104
+ extern PNG_EXPORT(void,png_set_user_transform_info) PNGARG((png_structp
2105
+ png_ptr, png_voidp user_transform_ptr, int user_transform_depth,
2106
+ int user_transform_channels));
2107
+ /* Return the user pointer associated with the user transform functions */
2108
+ extern PNG_EXPORT(png_voidp,png_get_user_transform_ptr)
2109
+ PNGARG((png_structp png_ptr));
2110
+ #endif
2111
+
2112
+ #ifdef PNG_USER_CHUNKS_SUPPORTED
2113
+ extern PNG_EXPORT(void,png_set_read_user_chunk_fn) PNGARG((png_structp png_ptr,
2114
+ png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn));
2115
+ extern PNG_EXPORT(png_voidp,png_get_user_chunk_ptr) PNGARG((png_structp
2116
+ png_ptr));
2117
+ #endif
2118
+
2119
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
2120
+ /* Sets the function callbacks for the push reader, and a pointer to a
2121
+ * user-defined structure available to the callback functions.
2122
+ */
2123
+ extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr,
2124
+ png_voidp progressive_ptr,
2125
+ png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
2126
+ png_progressive_end_ptr end_fn));
2127
+
2128
+ /* Returns the user pointer associated with the push read functions */
2129
+ extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
2130
+ PNGARG((png_structp png_ptr));
2131
+
2132
+ /* Function to be called when data becomes available */
2133
+ extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
2134
+ png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
2135
+
2136
+ /* Function that combines rows. Not very much different than the
2137
+ * png_combine_row() call. Is this even used?????
2138
+ */
2139
+ extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr,
2140
+ png_bytep old_row, png_bytep new_row));
2141
+ #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
2142
+
2143
+ extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr,
2144
+ png_uint_32 size)) PNG_ALLOCATED;
2145
+
2146
+ #ifdef PNG_1_0_X
2147
+ # define png_malloc_warn png_malloc
2148
+ #else
2149
+ /* Added at libpng version 1.2.4 */
2150
+ extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
2151
+ png_uint_32 size)) PNG_ALLOCATED;
2152
+ #endif
2153
+
2154
+ /* Frees a pointer allocated by png_malloc() */
2155
+ extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
2156
+
2157
+ #ifdef PNG_1_0_X
2158
+ /* Function to allocate memory for zlib. */
2159
+ extern PNG_EXPORT(voidpf,png_zalloc) PNGARG((voidpf png_ptr, uInt items,
2160
+ uInt size));
2161
+
2162
+ /* Function to free memory for zlib */
2163
+ extern PNG_EXPORT(void,png_zfree) PNGARG((voidpf png_ptr, voidpf ptr));
2164
+ #endif
2165
+
2166
+ /* Free data that was allocated internally */
2167
+ extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
2168
+ png_infop info_ptr, png_uint_32 free_me, int num));
2169
+ #ifdef PNG_FREE_ME_SUPPORTED
2170
+ /* Reassign responsibility for freeing existing data, whether allocated
2171
+ * by libpng or by the application
2172
+ */
2173
+ extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
2174
+ png_infop info_ptr, int freer, png_uint_32 mask));
2175
+ #endif
2176
+ /* Assignments for png_data_freer */
2177
+ #define PNG_DESTROY_WILL_FREE_DATA 1
2178
+ #define PNG_SET_WILL_FREE_DATA 1
2179
+ #define PNG_USER_WILL_FREE_DATA 2
2180
+ /* Flags for png_ptr->free_me and info_ptr->free_me */
2181
+ #define PNG_FREE_HIST 0x0008
2182
+ #define PNG_FREE_ICCP 0x0010
2183
+ #define PNG_FREE_SPLT 0x0020
2184
+ #define PNG_FREE_ROWS 0x0040
2185
+ #define PNG_FREE_PCAL 0x0080
2186
+ #define PNG_FREE_SCAL 0x0100
2187
+ #define PNG_FREE_UNKN 0x0200
2188
+ #define PNG_FREE_LIST 0x0400
2189
+ #define PNG_FREE_PLTE 0x1000
2190
+ #define PNG_FREE_TRNS 0x2000
2191
+ #define PNG_FREE_TEXT 0x4000
2192
+ #define PNG_FREE_ALL 0x7fff
2193
+ #define PNG_FREE_MUL 0x4220 /* PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN */
2194
+
2195
+ #ifdef PNG_USER_MEM_SUPPORTED
2196
+ extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr,
2197
+ png_uint_32 size)) PNG_ALLOCATED;
2198
+ extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr,
2199
+ png_voidp ptr));
2200
+ #endif
2201
+
2202
+ extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr,
2203
+ png_voidp s1, png_voidp s2, png_uint_32 size)) PNG_DEPRECATED;
2204
+
2205
+ extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr,
2206
+ png_voidp s1, int value, png_uint_32 size)) PNG_DEPRECATED;
2207
+
2208
+ #if defined(USE_FAR_KEYWORD) /* memory model conversion function */
2209
+ extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr,
2210
+ int check));
2211
+ #endif /* USE_FAR_KEYWORD */
2212
+
2213
+ #ifndef PNG_NO_ERROR_TEXT
2214
+ /* Fatal error in PNG image of libpng - can't continue */
2215
+ extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr,
2216
+ png_const_charp error_message)) PNG_NORETURN;
2217
+
2218
+ /* The same, but the chunk name is prepended to the error string. */
2219
+ extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr,
2220
+ png_const_charp error_message)) PNG_NORETURN;
2221
+ #else
2222
+ /* Fatal error in PNG image of libpng - can't continue */
2223
+ extern PNG_EXPORT(void,png_err) PNGARG((png_structp png_ptr)) PNG_NORETURN;
2224
+ #endif
2225
+
2226
+ #ifndef PNG_NO_WARNINGS
2227
+ /* Non-fatal error in libpng. Can continue, but may have a problem. */
2228
+ extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr,
2229
+ png_const_charp warning_message));
2230
+
2231
+ #ifdef PNG_READ_SUPPORTED
2232
+ /* Non-fatal error in libpng, chunk name is prepended to message. */
2233
+ extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr,
2234
+ png_const_charp warning_message));
2235
+ #endif /* PNG_READ_SUPPORTED */
2236
+ #endif /* PNG_NO_WARNINGS */
2237
+
2238
+ /* The png_set_<chunk> functions are for storing values in the png_info_struct.
2239
+ * Similarly, the png_get_<chunk> calls are used to read values from the
2240
+ * png_info_struct, either storing the parameters in the passed variables, or
2241
+ * setting pointers into the png_info_struct where the data is stored. The
2242
+ * png_get_<chunk> functions return a non-zero value if the data was available
2243
+ * in info_ptr, or return zero and do not change any of the parameters if the
2244
+ * data was not available.
2245
+ *
2246
+ * These functions should be used instead of directly accessing png_info
2247
+ * to avoid problems with future changes in the size and internal layout of
2248
+ * png_info_struct.
2249
+ */
2250
+ /* Returns "flag" if chunk data is valid in info_ptr. */
2251
+ extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr,
2252
+ png_infop info_ptr, png_uint_32 flag));
2253
+
2254
+ /* Returns number of bytes needed to hold a transformed row. */
2255
+ extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr,
2256
+ png_infop info_ptr));
2257
+
2258
+ #ifdef PNG_INFO_IMAGE_SUPPORTED
2259
+ /* Returns row_pointers, which is an array of pointers to scanlines that was
2260
+ * returned from png_read_png().
2261
+ */
2262
+ extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
2263
+ png_infop info_ptr));
2264
+ /* Set row_pointers, which is an array of pointers to scanlines for use
2265
+ * by png_write_png().
2266
+ */
2267
+ extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
2268
+ png_infop info_ptr, png_bytepp row_pointers));
2269
+ #endif
2270
+
2271
+ /* Returns number of color channels in image. */
2272
+ extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr,
2273
+ png_infop info_ptr));
2274
+
2275
+ #ifdef PNG_EASY_ACCESS_SUPPORTED
2276
+ /* Returns image width in pixels. */
2277
+ extern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp
2278
+ png_ptr, png_infop info_ptr));
2279
+
2280
+ /* Returns image height in pixels. */
2281
+ extern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp
2282
+ png_ptr, png_infop info_ptr));
2283
+
2284
+ /* Returns image bit_depth. */
2285
+ extern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp
2286
+ png_ptr, png_infop info_ptr));
2287
+
2288
+ /* Returns image color_type. */
2289
+ extern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp
2290
+ png_ptr, png_infop info_ptr));
2291
+
2292
+ /* Returns image filter_type. */
2293
+ extern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp
2294
+ png_ptr, png_infop info_ptr));
2295
+
2296
+ /* Returns image interlace_type. */
2297
+ extern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp
2298
+ png_ptr, png_infop info_ptr));
2299
+
2300
+ /* Returns image compression_type. */
2301
+ extern PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp
2302
+ png_ptr, png_infop info_ptr));
2303
+
2304
+ /* Returns image resolution in pixels per meter, from pHYs chunk data. */
2305
+ extern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp
2306
+ png_ptr, png_infop info_ptr));
2307
+ extern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp
2308
+ png_ptr, png_infop info_ptr));
2309
+ extern PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp
2310
+ png_ptr, png_infop info_ptr));
2311
+
2312
+ /* Returns pixel aspect ratio, computed from pHYs chunk data. */
2313
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2314
+ extern PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp
2315
+ png_ptr, png_infop info_ptr));
2316
+ #endif
2317
+
2318
+ /* Returns image x, y offset in pixels or microns, from oFFs chunk data. */
2319
+ extern PNG_EXPORT(png_int_32, png_get_x_offset_pixels) PNGARG((png_structp
2320
+ png_ptr, png_infop info_ptr));
2321
+ extern PNG_EXPORT(png_int_32, png_get_y_offset_pixels) PNGARG((png_structp
2322
+ png_ptr, png_infop info_ptr));
2323
+ extern PNG_EXPORT(png_int_32, png_get_x_offset_microns) PNGARG((png_structp
2324
+ png_ptr, png_infop info_ptr));
2325
+ extern PNG_EXPORT(png_int_32, png_get_y_offset_microns) PNGARG((png_structp
2326
+ png_ptr, png_infop info_ptr));
2327
+
2328
+ #endif /* PNG_EASY_ACCESS_SUPPORTED */
2329
+
2330
+ /* Returns pointer to signature string read from PNG header */
2331
+ extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr,
2332
+ png_infop info_ptr));
2333
+
2334
+ #ifdef PNG_bKGD_SUPPORTED
2335
+ extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr,
2336
+ png_infop info_ptr, png_color_16p *background));
2337
+ #endif
2338
+
2339
+ #ifdef PNG_bKGD_SUPPORTED
2340
+ extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr,
2341
+ png_infop info_ptr, png_color_16p background));
2342
+ #endif
2343
+
2344
+ #ifdef PNG_cHRM_SUPPORTED
2345
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2346
+ extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr,
2347
+ png_infop info_ptr, double *white_x, double *white_y, double *red_x,
2348
+ double *red_y, double *green_x, double *green_y, double *blue_x,
2349
+ double *blue_y));
2350
+ #endif
2351
+ #ifdef PNG_FIXED_POINT_SUPPORTED
2352
+ extern PNG_EXPORT(png_uint_32,png_get_cHRM_fixed) PNGARG((png_structp png_ptr,
2353
+ png_infop info_ptr, png_fixed_point *int_white_x, png_fixed_point
2354
+ *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y,
2355
+ png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point
2356
+ *int_blue_x, png_fixed_point *int_blue_y));
2357
+ #endif
2358
+ #endif
2359
+
2360
+ #ifdef PNG_cHRM_SUPPORTED
2361
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2362
+ extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr,
2363
+ png_infop info_ptr, double white_x, double white_y, double red_x,
2364
+ double red_y, double green_x, double green_y, double blue_x, double blue_y));
2365
+ #endif
2366
+ #ifdef PNG_FIXED_POINT_SUPPORTED
2367
+ extern PNG_EXPORT(void,png_set_cHRM_fixed) PNGARG((png_structp png_ptr,
2368
+ png_infop info_ptr, png_fixed_point int_white_x, png_fixed_point int_white_y,
2369
+ png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
2370
+ int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
2371
+ png_fixed_point int_blue_y));
2372
+ #endif
2373
+ #endif
2374
+
2375
+ #ifdef PNG_gAMA_SUPPORTED
2376
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2377
+ extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr,
2378
+ png_infop info_ptr, double *file_gamma));
2379
+ #endif
2380
+ extern PNG_EXPORT(png_uint_32,png_get_gAMA_fixed) PNGARG((png_structp png_ptr,
2381
+ png_infop info_ptr, png_fixed_point *int_file_gamma));
2382
+ #endif
2383
+
2384
+ #ifdef PNG_gAMA_SUPPORTED
2385
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2386
+ extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr,
2387
+ png_infop info_ptr, double file_gamma));
2388
+ #endif
2389
+ extern PNG_EXPORT(void,png_set_gAMA_fixed) PNGARG((png_structp png_ptr,
2390
+ png_infop info_ptr, png_fixed_point int_file_gamma));
2391
+ #endif
2392
+
2393
+ #ifdef PNG_hIST_SUPPORTED
2394
+ extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr,
2395
+ png_infop info_ptr, png_uint_16p *hist));
2396
+ #endif
2397
+
2398
+ #ifdef PNG_hIST_SUPPORTED
2399
+ extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr,
2400
+ png_infop info_ptr, png_uint_16p hist));
2401
+ #endif
2402
+
2403
+ extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr,
2404
+ png_infop info_ptr, png_uint_32 *width, png_uint_32 *height,
2405
+ int *bit_depth, int *color_type, int *interlace_method,
2406
+ int *compression_method, int *filter_method));
2407
+
2408
+ extern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr,
2409
+ png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth,
2410
+ int color_type, int interlace_method, int compression_method,
2411
+ int filter_method));
2412
+
2413
+ #ifdef PNG_oFFs_SUPPORTED
2414
+ extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr,
2415
+ png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y,
2416
+ int *unit_type));
2417
+ #endif
2418
+
2419
+ #ifdef PNG_oFFs_SUPPORTED
2420
+ extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr,
2421
+ png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y,
2422
+ int unit_type));
2423
+ #endif
2424
+
2425
+ #ifdef PNG_pCAL_SUPPORTED
2426
+ extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr,
2427
+ png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1,
2428
+ int *type, int *nparams, png_charp *units, png_charpp *params));
2429
+ #endif
2430
+
2431
+ #ifdef PNG_pCAL_SUPPORTED
2432
+ extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr,
2433
+ png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1,
2434
+ int type, int nparams, png_charp units, png_charpp params));
2435
+ #endif
2436
+
2437
+ #ifdef PNG_pHYs_SUPPORTED
2438
+ extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr,
2439
+ png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
2440
+ #endif
2441
+
2442
+ #ifdef PNG_pHYs_SUPPORTED
2443
+ extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr,
2444
+ png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type));
2445
+ #endif
2446
+
2447
+ extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr,
2448
+ png_infop info_ptr, png_colorp *palette, int *num_palette));
2449
+
2450
+ extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr,
2451
+ png_infop info_ptr, png_colorp palette, int num_palette));
2452
+
2453
+ #ifdef PNG_sBIT_SUPPORTED
2454
+ extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr,
2455
+ png_infop info_ptr, png_color_8p *sig_bit));
2456
+ #endif
2457
+
2458
+ #ifdef PNG_sBIT_SUPPORTED
2459
+ extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr,
2460
+ png_infop info_ptr, png_color_8p sig_bit));
2461
+ #endif
2462
+
2463
+ #ifdef PNG_sRGB_SUPPORTED
2464
+ extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr,
2465
+ png_infop info_ptr, int *intent));
2466
+ #endif
2467
+
2468
+ #ifdef PNG_sRGB_SUPPORTED
2469
+ extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr,
2470
+ png_infop info_ptr, int intent));
2471
+ extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr,
2472
+ png_infop info_ptr, int intent));
2473
+ #endif
2474
+
2475
+ #ifdef PNG_iCCP_SUPPORTED
2476
+ extern PNG_EXPORT(png_uint_32,png_get_iCCP) PNGARG((png_structp png_ptr,
2477
+ png_infop info_ptr, png_charpp name, int *compression_type,
2478
+ png_charpp profile, png_uint_32 *proflen));
2479
+ /* Note to maintainer: profile should be png_bytepp */
2480
+ #endif
2481
+
2482
+ #ifdef PNG_iCCP_SUPPORTED
2483
+ extern PNG_EXPORT(void,png_set_iCCP) PNGARG((png_structp png_ptr,
2484
+ png_infop info_ptr, png_charp name, int compression_type,
2485
+ png_charp profile, png_uint_32 proflen));
2486
+ /* Note to maintainer: profile should be png_bytep */
2487
+ #endif
2488
+
2489
+ #ifdef PNG_sPLT_SUPPORTED
2490
+ extern PNG_EXPORT(png_uint_32,png_get_sPLT) PNGARG((png_structp png_ptr,
2491
+ png_infop info_ptr, png_sPLT_tpp entries));
2492
+ #endif
2493
+
2494
+ #ifdef PNG_sPLT_SUPPORTED
2495
+ extern PNG_EXPORT(void,png_set_sPLT) PNGARG((png_structp png_ptr,
2496
+ png_infop info_ptr, png_sPLT_tp entries, int nentries));
2497
+ #endif
2498
+
2499
+ #ifdef PNG_TEXT_SUPPORTED
2500
+ /* png_get_text also returns the number of text chunks in *num_text */
2501
+ extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr,
2502
+ png_infop info_ptr, png_textp *text_ptr, int *num_text));
2503
+ #endif
2504
+
2505
+ /*
2506
+ * Note while png_set_text() will accept a structure whose text,
2507
+ * language, and translated keywords are NULL pointers, the structure
2508
+ * returned by png_get_text will always contain regular
2509
+ * zero-terminated C strings. They might be empty strings but
2510
+ * they will never be NULL pointers.
2511
+ */
2512
+
2513
+ #ifdef PNG_TEXT_SUPPORTED
2514
+ extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr,
2515
+ png_infop info_ptr, png_textp text_ptr, int num_text));
2516
+ #endif
2517
+
2518
+ #ifdef PNG_tIME_SUPPORTED
2519
+ extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr,
2520
+ png_infop info_ptr, png_timep *mod_time));
2521
+ #endif
2522
+
2523
+ #ifdef PNG_tIME_SUPPORTED
2524
+ extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr,
2525
+ png_infop info_ptr, png_timep mod_time));
2526
+ #endif
2527
+
2528
+ #ifdef PNG_tRNS_SUPPORTED
2529
+ extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr,
2530
+ png_infop info_ptr, png_bytep *trans, int *num_trans,
2531
+ png_color_16p *trans_values));
2532
+ #endif
2533
+
2534
+ #ifdef PNG_tRNS_SUPPORTED
2535
+ extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr,
2536
+ png_infop info_ptr, png_bytep trans, int num_trans,
2537
+ png_color_16p trans_values));
2538
+ #endif
2539
+
2540
+ #ifdef PNG_tRNS_SUPPORTED
2541
+ #endif
2542
+
2543
+ #ifdef PNG_sCAL_SUPPORTED
2544
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2545
+ extern PNG_EXPORT(png_uint_32,png_get_sCAL) PNGARG((png_structp png_ptr,
2546
+ png_infop info_ptr, int *unit, double *width, double *height));
2547
+ #else
2548
+ #ifdef PNG_FIXED_POINT_SUPPORTED
2549
+ extern PNG_EXPORT(png_uint_32,png_get_sCAL_s) PNGARG((png_structp png_ptr,
2550
+ png_infop info_ptr, int *unit, png_charpp swidth, png_charpp sheight));
2551
+ #endif
2552
+ #endif
2553
+ #endif /* PNG_sCAL_SUPPORTED */
2554
+
2555
+ #ifdef PNG_sCAL_SUPPORTED
2556
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
2557
+ extern PNG_EXPORT(void,png_set_sCAL) PNGARG((png_structp png_ptr,
2558
+ png_infop info_ptr, int unit, double width, double height));
2559
+ #else
2560
+ #ifdef PNG_FIXED_POINT_SUPPORTED
2561
+ extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
2562
+ png_infop info_ptr, int unit, png_charp swidth, png_charp sheight));
2563
+ #endif
2564
+ #endif
2565
+ #endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
2566
+
2567
+ #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
2568
+ /* Provide a list of chunks and how they are to be handled, if the built-in
2569
+ handling or default unknown chunk handling is not desired. Any chunks not
2570
+ listed will be handled in the default manner. The IHDR and IEND chunks
2571
+ must not be listed.
2572
+ keep = 0: follow default behaviour
2573
+ = 1: do not keep
2574
+ = 2: keep only if safe-to-copy
2575
+ = 3: keep even if unsafe-to-copy
2576
+ */
2577
+ extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
2578
+ png_ptr, int keep, png_bytep chunk_list, int num_chunks));
2579
+ PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
2580
+ chunk_name));
2581
+ #endif
2582
+ #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED
2583
+ extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
2584
+ png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
2585
+ extern PNG_EXPORT(void, png_set_unknown_chunk_location)
2586
+ PNGARG((png_structp png_ptr, png_infop info_ptr, int chunk, int location));
2587
+ extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
2588
+ png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
2589
+ #endif
2590
+
2591
+ /* Png_free_data() will turn off the "valid" flag for anything it frees.
2592
+ * If you need to turn it off for a chunk that your application has freed,
2593
+ * you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK);
2594
+ */
2595
+ extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
2596
+ png_infop info_ptr, int mask));
2597
+
2598
+ #ifdef PNG_INFO_IMAGE_SUPPORTED
2599
+ /* The "params" pointer is currently not used and is for future expansion. */
2600
+ extern PNG_EXPORT(void, png_read_png) PNGARG((png_structp png_ptr,
2601
+ png_infop info_ptr,
2602
+ int transforms,
2603
+ png_voidp params));
2604
+ extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
2605
+ png_infop info_ptr,
2606
+ int transforms,
2607
+ png_voidp params));
2608
+ #endif
2609
+
2610
+ /* Define PNG_DEBUG at compile time for debugging information. Higher
2611
+ * numbers for PNG_DEBUG mean more debugging information. This has
2612
+ * only been added since version 0.95 so it is not implemented throughout
2613
+ * libpng yet, but more support will be added as needed.
2614
+ */
2615
+ #ifdef PNG_DEBUG
2616
+ #if (PNG_DEBUG > 0)
2617
+ #if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
2618
+ #include <crtdbg.h>
2619
+ #if (PNG_DEBUG > 1)
2620
+ #ifndef _DEBUG
2621
+ # define _DEBUG
2622
+ #endif
2623
+ #ifndef png_debug
2624
+ #define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)
2625
+ #endif
2626
+ #ifndef png_debug1
2627
+ #define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)
2628
+ #endif
2629
+ #ifndef png_debug2
2630
+ #define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
2631
+ #endif
2632
+ #endif
2633
+ #else /* PNG_DEBUG_FILE || !_MSC_VER */
2634
+ #ifndef PNG_DEBUG_FILE
2635
+ #define PNG_DEBUG_FILE stderr
2636
+ #endif /* PNG_DEBUG_FILE */
2637
+
2638
+ #if (PNG_DEBUG > 1)
2639
+ /* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO
2640
+ * compilers.
2641
+ */
2642
+ # ifdef __STDC__
2643
+ # ifndef png_debug
2644
+ # define png_debug(l,m) \
2645
+ { \
2646
+ int num_tabs=l; \
2647
+ fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
2648
+ (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
2649
+ }
2650
+ # endif
2651
+ # ifndef png_debug1
2652
+ # define png_debug1(l,m,p1) \
2653
+ { \
2654
+ int num_tabs=l; \
2655
+ fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
2656
+ (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \
2657
+ }
2658
+ # endif
2659
+ # ifndef png_debug2
2660
+ # define png_debug2(l,m,p1,p2) \
2661
+ { \
2662
+ int num_tabs=l; \
2663
+ fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
2664
+ (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \
2665
+ }
2666
+ # endif
2667
+ # else /* __STDC __ */
2668
+ # ifndef png_debug
2669
+ # define png_debug(l,m) \
2670
+ { \
2671
+ int num_tabs=l; \
2672
+ char format[256]; \
2673
+ snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
2674
+ (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
2675
+ m,PNG_STRING_NEWLINE); \
2676
+ fprintf(PNG_DEBUG_FILE,format); \
2677
+ }
2678
+ # endif
2679
+ # ifndef png_debug1
2680
+ # define png_debug1(l,m,p1) \
2681
+ { \
2682
+ int num_tabs=l; \
2683
+ char format[256]; \
2684
+ snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
2685
+ (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
2686
+ m,PNG_STRING_NEWLINE); \
2687
+ fprintf(PNG_DEBUG_FILE,format,p1); \
2688
+ }
2689
+ # endif
2690
+ # ifndef png_debug2
2691
+ # define png_debug2(l,m,p1,p2) \
2692
+ { \
2693
+ int num_tabs=l; \
2694
+ char format[256]; \
2695
+ snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
2696
+ (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
2697
+ m,PNG_STRING_NEWLINE); \
2698
+ fprintf(PNG_DEBUG_FILE,format,p1,p2); \
2699
+ }
2700
+ # endif
2701
+ # endif /* __STDC __ */
2702
+ #endif /* (PNG_DEBUG > 1) */
2703
+
2704
+ #endif /* _MSC_VER */
2705
+ #endif /* (PNG_DEBUG > 0) */
2706
+ #endif /* PNG_DEBUG */
2707
+ #ifndef png_debug
2708
+ #define png_debug(l, m)
2709
+ #endif
2710
+ #ifndef png_debug1
2711
+ #define png_debug1(l, m, p1)
2712
+ #endif
2713
+ #ifndef png_debug2
2714
+ #define png_debug2(l, m, p1, p2)
2715
+ #endif
2716
+
2717
+ extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr));
2718
+ extern PNG_EXPORT(png_charp,png_get_header_ver) PNGARG((png_structp png_ptr));
2719
+ extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr));
2720
+ extern PNG_EXPORT(png_charp,png_get_libpng_ver) PNGARG((png_structp png_ptr));
2721
+
2722
+ #ifdef PNG_MNG_FEATURES_SUPPORTED
2723
+ extern PNG_EXPORT(png_uint_32,png_permit_mng_features) PNGARG((png_structp
2724
+ png_ptr, png_uint_32 mng_features_permitted));
2725
+ #endif
2726
+
2727
+ /* For use in png_set_keep_unknown, added to version 1.2.6 */
2728
+ #define PNG_HANDLE_CHUNK_AS_DEFAULT 0
2729
+ #define PNG_HANDLE_CHUNK_NEVER 1
2730
+ #define PNG_HANDLE_CHUNK_IF_SAFE 2
2731
+ #define PNG_HANDLE_CHUNK_ALWAYS 3
2732
+
2733
+ /* Added to version 1.2.0 */
2734
+ #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
2735
+ #ifdef PNG_MMX_CODE_SUPPORTED
2736
+ #define PNG_ASM_FLAG_MMX_SUPPORT_COMPILED 0x01 /* not user-settable */
2737
+ #define PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU 0x02 /* not user-settable */
2738
+ #define PNG_ASM_FLAG_MMX_READ_COMBINE_ROW 0x04
2739
+ #define PNG_ASM_FLAG_MMX_READ_INTERLACE 0x08
2740
+ #define PNG_ASM_FLAG_MMX_READ_FILTER_SUB 0x10
2741
+ #define PNG_ASM_FLAG_MMX_READ_FILTER_UP 0x20
2742
+ #define PNG_ASM_FLAG_MMX_READ_FILTER_AVG 0x40
2743
+ #define PNG_ASM_FLAG_MMX_READ_FILTER_PAETH 0x80
2744
+ #define PNG_ASM_FLAGS_INITIALIZED 0x80000000 /* not user-settable */
2745
+
2746
+ #define PNG_MMX_READ_FLAGS ( PNG_ASM_FLAG_MMX_READ_COMBINE_ROW \
2747
+ | PNG_ASM_FLAG_MMX_READ_INTERLACE \
2748
+ | PNG_ASM_FLAG_MMX_READ_FILTER_SUB \
2749
+ | PNG_ASM_FLAG_MMX_READ_FILTER_UP \
2750
+ | PNG_ASM_FLAG_MMX_READ_FILTER_AVG \
2751
+ | PNG_ASM_FLAG_MMX_READ_FILTER_PAETH )
2752
+ #define PNG_MMX_WRITE_FLAGS ( 0 )
2753
+
2754
+ #define PNG_MMX_FLAGS ( PNG_ASM_FLAG_MMX_SUPPORT_COMPILED \
2755
+ | PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU \
2756
+ | PNG_MMX_READ_FLAGS \
2757
+ | PNG_MMX_WRITE_FLAGS )
2758
+
2759
+ #define PNG_SELECT_READ 1
2760
+ #define PNG_SELECT_WRITE 2
2761
+ #endif /* PNG_MMX_CODE_SUPPORTED */
2762
+
2763
+ #ifndef PNG_1_0_X
2764
+ /* pngget.c */
2765
+ extern PNG_EXPORT(png_uint_32,png_get_mmx_flagmask)
2766
+ PNGARG((int flag_select, int *compilerID));
2767
+
2768
+ /* pngget.c */
2769
+ extern PNG_EXPORT(png_uint_32,png_get_asm_flagmask)
2770
+ PNGARG((int flag_select));
2771
+
2772
+ /* pngget.c */
2773
+ extern PNG_EXPORT(png_uint_32,png_get_asm_flags)
2774
+ PNGARG((png_structp png_ptr));
2775
+
2776
+ /* pngget.c */
2777
+ extern PNG_EXPORT(png_byte,png_get_mmx_bitdepth_threshold)
2778
+ PNGARG((png_structp png_ptr));
2779
+
2780
+ /* pngget.c */
2781
+ extern PNG_EXPORT(png_uint_32,png_get_mmx_rowbytes_threshold)
2782
+ PNGARG((png_structp png_ptr));
2783
+
2784
+ /* pngset.c */
2785
+ extern PNG_EXPORT(void,png_set_asm_flags)
2786
+ PNGARG((png_structp png_ptr, png_uint_32 asm_flags));
2787
+
2788
+ /* pngset.c */
2789
+ extern PNG_EXPORT(void,png_set_mmx_thresholds)
2790
+ PNGARG((png_structp png_ptr, png_byte mmx_bitdepth_threshold,
2791
+ png_uint_32 mmx_rowbytes_threshold));
2792
+
2793
+ #endif /* PNG_1_0_X */
2794
+
2795
+ #ifndef PNG_1_0_X
2796
+ /* png.c, pnggccrd.c, or pngvcrd.c */
2797
+ extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
2798
+ #endif /* PNG_1_0_X */
2799
+ #endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
2800
+
2801
+ /* Strip the prepended error numbers ("#nnn ") from error and warning
2802
+ * messages before passing them to the error or warning handler.
2803
+ */
2804
+ #ifdef PNG_ERROR_NUMBERS_SUPPORTED
2805
+ extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
2806
+ png_ptr, png_uint_32 strip_mode));
2807
+ #endif
2808
+
2809
+ /* Added at libpng-1.2.6 */
2810
+ #ifdef PNG_SET_USER_LIMITS_SUPPORTED
2811
+ extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp
2812
+ png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max));
2813
+ extern PNG_EXPORT(png_uint_32,png_get_user_width_max) PNGARG((png_structp
2814
+ png_ptr));
2815
+ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
2816
+ png_ptr));
2817
+ #endif
2818
+ /* Maintainer: Put new public prototypes here ^, in libpng.3, and in
2819
+ * project defs
2820
+ */
2821
+
2822
+ #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
2823
+ /* With these routines we avoid an integer divide, which will be slower on
2824
+ * most machines. However, it does take more operations than the corresponding
2825
+ * divide method, so it may be slower on a few RISC systems. There are two
2826
+ * shifts (by 8 or 16 bits) and an addition, versus a single integer divide.
2827
+ *
2828
+ * Note that the rounding factors are NOT supposed to be the same! 128 and
2829
+ * 32768 are correct for the NODIV code; 127 and 32767 are correct for the
2830
+ * standard method.
2831
+ *
2832
+ * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ]
2833
+ */
2834
+
2835
+ /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */
2836
+
2837
+ # define png_composite(composite, fg, alpha, bg) \
2838
+ { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) * (png_uint_16)(alpha) \
2839
+ + (png_uint_16)(bg)*(png_uint_16)(255 - \
2840
+ (png_uint_16)(alpha)) + (png_uint_16)128); \
2841
+ (composite) = (png_byte)((temp + (temp >> 8)) >> 8); }
2842
+
2843
+ # define png_composite_16(composite, fg, alpha, bg) \
2844
+ { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) * (png_uint_32)(alpha) \
2845
+ + (png_uint_32)(bg)*(png_uint_32)(65535L - \
2846
+ (png_uint_32)(alpha)) + (png_uint_32)32768L); \
2847
+ (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
2848
+
2849
+ #else /* Standard method using integer division */
2850
+
2851
+ # define png_composite(composite, fg, alpha, bg) \
2852
+ (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \
2853
+ (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \
2854
+ (png_uint_16)127) / 255)
2855
+
2856
+ # define png_composite_16(composite, fg, alpha, bg) \
2857
+ (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \
2858
+ (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \
2859
+ (png_uint_32)32767) / (png_uint_32)65535L)
2860
+
2861
+ #endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */
2862
+
2863
+ /* Inline macros to do direct reads of bytes from the input buffer. These
2864
+ * require that you are using an architecture that uses PNG byte ordering
2865
+ * (MSB first) and supports unaligned data storage. I think that PowerPC
2866
+ * in big-endian mode and 680x0 are the only ones that will support this.
2867
+ * The x86 line of processors definitely do not. The png_get_int_32()
2868
+ * routine also assumes we are using two's complement format for negative
2869
+ * values, which is almost certainly true.
2870
+ */
2871
+ #ifdef PNG_READ_BIG_ENDIAN_SUPPORTED
2872
+ # define png_get_uint_32(buf) ( *((png_uint_32p) (buf)))
2873
+ # define png_get_uint_16(buf) ( *((png_uint_16p) (buf)))
2874
+ # define png_get_int_32(buf) ( *((png_int_32p) (buf)))
2875
+ #else
2876
+ extern PNG_EXPORT(png_uint_32,png_get_uint_32) PNGARG((png_bytep buf));
2877
+ extern PNG_EXPORT(png_uint_16,png_get_uint_16) PNGARG((png_bytep buf));
2878
+ extern PNG_EXPORT(png_int_32,png_get_int_32) PNGARG((png_bytep buf));
2879
+ #endif /* !PNG_READ_BIG_ENDIAN_SUPPORTED */
2880
+ extern PNG_EXPORT(png_uint_32,png_get_uint_31)
2881
+ PNGARG((png_structp png_ptr, png_bytep buf));
2882
+ /* No png_get_int_16 -- may be added if there's a real need for it. */
2883
+
2884
+ /* Place a 32-bit number into a buffer in PNG byte order (big-endian).
2885
+ */
2886
+ extern PNG_EXPORT(void,png_save_uint_32)
2887
+ PNGARG((png_bytep buf, png_uint_32 i));
2888
+ extern PNG_EXPORT(void,png_save_int_32)
2889
+ PNGARG((png_bytep buf, png_int_32 i));
2890
+
2891
+ /* Place a 16-bit number into a buffer in PNG byte order.
2892
+ * The parameter is declared unsigned int, not png_uint_16,
2893
+ * just to avoid potential problems on pre-ANSI C compilers.
2894
+ */
2895
+ extern PNG_EXPORT(void,png_save_uint_16)
2896
+ PNGARG((png_bytep buf, unsigned int i));
2897
+ /* No png_save_int_16 -- may be added if there's a real need for it. */
2898
+
2899
+ /* ************************************************************************* */
2900
+
2901
+ /* These next functions are used internally in the code. They generally
2902
+ * shouldn't be used unless you are writing code to add or replace some
2903
+ * functionality in libpng. More information about most functions can
2904
+ * be found in the files where the functions are located.
2905
+ */
2906
+
2907
+
2908
+ /* Various modes of operation, that are visible to applications because
2909
+ * they are used for unknown chunk location.
2910
+ */
2911
+ #define PNG_HAVE_IHDR 0x01
2912
+ #define PNG_HAVE_PLTE 0x02
2913
+ #define PNG_HAVE_IDAT 0x04
2914
+ #define PNG_AFTER_IDAT 0x08 /* Have complete zlib datastream */
2915
+ #define PNG_HAVE_IEND 0x10
2916
+
2917
+ #ifdef PNG_INTERNAL
2918
+
2919
+ /* More modes of operation. Note that after an init, mode is set to
2920
+ * zero automatically when the structure is created.
2921
+ */
2922
+ #define PNG_HAVE_gAMA 0x20
2923
+ #define PNG_HAVE_cHRM 0x40
2924
+ #define PNG_HAVE_sRGB 0x80
2925
+ #define PNG_HAVE_CHUNK_HEADER 0x100
2926
+ #define PNG_WROTE_tIME 0x200
2927
+ #define PNG_WROTE_INFO_BEFORE_PLTE 0x400
2928
+ #define PNG_BACKGROUND_IS_GRAY 0x800
2929
+ #define PNG_HAVE_PNG_SIGNATURE 0x1000
2930
+ #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
2931
+
2932
+ /* Flags for the transformations the PNG library does on the image data */
2933
+ #define PNG_BGR 0x0001
2934
+ #define PNG_INTERLACE 0x0002
2935
+ #define PNG_PACK 0x0004
2936
+ #define PNG_SHIFT 0x0008
2937
+ #define PNG_SWAP_BYTES 0x0010
2938
+ #define PNG_INVERT_MONO 0x0020
2939
+ #define PNG_DITHER 0x0040
2940
+ #define PNG_BACKGROUND 0x0080
2941
+ #define PNG_BACKGROUND_EXPAND 0x0100
2942
+ /* 0x0200 unused */
2943
+ #define PNG_16_TO_8 0x0400
2944
+ #define PNG_RGBA 0x0800
2945
+ #define PNG_EXPAND 0x1000
2946
+ #define PNG_GAMMA 0x2000
2947
+ #define PNG_GRAY_TO_RGB 0x4000
2948
+ #define PNG_FILLER 0x8000L
2949
+ #define PNG_PACKSWAP 0x10000L
2950
+ #define PNG_SWAP_ALPHA 0x20000L
2951
+ #define PNG_STRIP_ALPHA 0x40000L
2952
+ #define PNG_INVERT_ALPHA 0x80000L
2953
+ #define PNG_USER_TRANSFORM 0x100000L
2954
+ #define PNG_RGB_TO_GRAY_ERR 0x200000L
2955
+ #define PNG_RGB_TO_GRAY_WARN 0x400000L
2956
+ #define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */
2957
+ /* 0x800000L Unused */
2958
+ #define PNG_ADD_ALPHA 0x1000000L /* Added to libpng-1.2.7 */
2959
+ #define PNG_EXPAND_tRNS 0x2000000L /* Added to libpng-1.2.9 */
2960
+ #define PNG_PREMULTIPLY_ALPHA 0x4000000L /* Added to libpng-1.2.41 */
2961
+ /* by volker */
2962
+ /* 0x8000000L unused */
2963
+ /* 0x10000000L unused */
2964
+ /* 0x20000000L unused */
2965
+ /* 0x40000000L unused */
2966
+
2967
+ /* Flags for png_create_struct */
2968
+ #define PNG_STRUCT_PNG 0x0001
2969
+ #define PNG_STRUCT_INFO 0x0002
2970
+
2971
+ /* Scaling factor for filter heuristic weighting calculations */
2972
+ #define PNG_WEIGHT_SHIFT 8
2973
+ #define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT))
2974
+ #define PNG_COST_SHIFT 3
2975
+ #define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
2976
+
2977
+ /* Flags for the png_ptr->flags rather than declaring a byte for each one */
2978
+ #define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001
2979
+ #define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002
2980
+ #define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004
2981
+ #define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008
2982
+ #define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010
2983
+ #define PNG_FLAG_ZLIB_FINISHED 0x0020
2984
+ #define PNG_FLAG_ROW_INIT 0x0040
2985
+ #define PNG_FLAG_FILLER_AFTER 0x0080
2986
+ #define PNG_FLAG_CRC_ANCILLARY_USE 0x0100
2987
+ #define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200
2988
+ #define PNG_FLAG_CRC_CRITICAL_USE 0x0400
2989
+ #define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800
2990
+ #define PNG_FLAG_FREE_PLTE 0x1000
2991
+ #define PNG_FLAG_FREE_TRNS 0x2000
2992
+ #define PNG_FLAG_FREE_HIST 0x4000
2993
+ #define PNG_FLAG_KEEP_UNKNOWN_CHUNKS 0x8000L
2994
+ #define PNG_FLAG_KEEP_UNSAFE_CHUNKS 0x10000L
2995
+ #define PNG_FLAG_LIBRARY_MISMATCH 0x20000L
2996
+ #define PNG_FLAG_STRIP_ERROR_NUMBERS 0x40000L
2997
+ #define PNG_FLAG_STRIP_ERROR_TEXT 0x80000L
2998
+ #define PNG_FLAG_MALLOC_NULL_MEM_OK 0x100000L
2999
+ #define PNG_FLAG_ADD_ALPHA 0x200000L /* Added to libpng-1.2.8 */
3000
+ #define PNG_FLAG_STRIP_ALPHA 0x400000L /* Added to libpng-1.2.8 */
3001
+ /* 0x800000L unused */
3002
+ /* 0x1000000L unused */
3003
+ /* 0x2000000L unused */
3004
+ /* 0x4000000L unused */
3005
+ /* 0x8000000L unused */
3006
+ /* 0x10000000L unused */
3007
+ /* 0x20000000L unused */
3008
+ /* 0x40000000L unused */
3009
+
3010
+ #define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \
3011
+ PNG_FLAG_CRC_ANCILLARY_NOWARN)
3012
+
3013
+ #define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \
3014
+ PNG_FLAG_CRC_CRITICAL_IGNORE)
3015
+
3016
+ #define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \
3017
+ PNG_FLAG_CRC_CRITICAL_MASK)
3018
+
3019
+ /* Save typing and make code easier to understand */
3020
+
3021
+ #define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
3022
+ abs((int)((c1).green) - (int)((c2).green)) + \
3023
+ abs((int)((c1).blue) - (int)((c2).blue)))
3024
+
3025
+ /* Added to libpng-1.2.6 JB */
3026
+ #define PNG_ROWBYTES(pixel_bits, width) \
3027
+ ((pixel_bits) >= 8 ? \
3028
+ ((width) * (((png_uint_32)(pixel_bits)) >> 3)) : \
3029
+ (( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )
3030
+
3031
+ /* PNG_OUT_OF_RANGE returns true if value is outside the range
3032
+ * ideal-delta..ideal+delta. Each argument is evaluated twice.
3033
+ * "ideal" and "delta" should be constants, normally simple
3034
+ * integers, "value" a variable. Added to libpng-1.2.6 JB
3035
+ */
3036
+ #define PNG_OUT_OF_RANGE(value, ideal, delta) \
3037
+ ( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
3038
+
3039
+ /* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
3040
+ #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
3041
+ /* Place to hold the signature string for a PNG file. */
3042
+ #ifdef PNG_USE_GLOBAL_ARRAYS
3043
+ PNG_EXPORT_VAR (PNG_CONST png_byte FARDATA) png_sig[8];
3044
+ #else
3045
+ #endif
3046
+ #endif /* PNG_NO_EXTERN */
3047
+
3048
+ /* Constant strings for known chunk types. If you need to add a chunk,
3049
+ * define the name here, and add an invocation of the macro in png.c and
3050
+ * wherever it's needed.
3051
+ */
3052
+ #define PNG_IHDR png_byte png_IHDR[5] = { 73, 72, 68, 82, '\0'}
3053
+ #define PNG_IDAT png_byte png_IDAT[5] = { 73, 68, 65, 84, '\0'}
3054
+ #define PNG_IEND png_byte png_IEND[5] = { 73, 69, 78, 68, '\0'}
3055
+ #define PNG_PLTE png_byte png_PLTE[5] = { 80, 76, 84, 69, '\0'}
3056
+ #define PNG_bKGD png_byte png_bKGD[5] = { 98, 75, 71, 68, '\0'}
3057
+ #define PNG_cHRM png_byte png_cHRM[5] = { 99, 72, 82, 77, '\0'}
3058
+ #define PNG_gAMA png_byte png_gAMA[5] = {103, 65, 77, 65, '\0'}
3059
+ #define PNG_hIST png_byte png_hIST[5] = {104, 73, 83, 84, '\0'}
3060
+ #define PNG_iCCP png_byte png_iCCP[5] = {105, 67, 67, 80, '\0'}
3061
+ #define PNG_iTXt png_byte png_iTXt[5] = {105, 84, 88, 116, '\0'}
3062
+ #define PNG_oFFs png_byte png_oFFs[5] = {111, 70, 70, 115, '\0'}
3063
+ #define PNG_pCAL png_byte png_pCAL[5] = {112, 67, 65, 76, '\0'}
3064
+ #define PNG_sCAL png_byte png_sCAL[5] = {115, 67, 65, 76, '\0'}
3065
+ #define PNG_pHYs png_byte png_pHYs[5] = {112, 72, 89, 115, '\0'}
3066
+ #define PNG_sBIT png_byte png_sBIT[5] = {115, 66, 73, 84, '\0'}
3067
+ #define PNG_sPLT png_byte png_sPLT[5] = {115, 80, 76, 84, '\0'}
3068
+ #define PNG_sRGB png_byte png_sRGB[5] = {115, 82, 71, 66, '\0'}
3069
+ #define PNG_tEXt png_byte png_tEXt[5] = {116, 69, 88, 116, '\0'}
3070
+ #define PNG_tIME png_byte png_tIME[5] = {116, 73, 77, 69, '\0'}
3071
+ #define PNG_tRNS png_byte png_tRNS[5] = {116, 82, 78, 83, '\0'}
3072
+ #define PNG_zTXt png_byte png_zTXt[5] = {122, 84, 88, 116, '\0'}
3073
+
3074
+ #ifdef PNG_USE_GLOBAL_ARRAYS
3075
+ PNG_EXPORT_VAR (png_byte FARDATA) png_IHDR[5];
3076
+ PNG_EXPORT_VAR (png_byte FARDATA) png_IDAT[5];
3077
+ PNG_EXPORT_VAR (png_byte FARDATA) png_IEND[5];
3078
+ PNG_EXPORT_VAR (png_byte FARDATA) png_PLTE[5];
3079
+ PNG_EXPORT_VAR (png_byte FARDATA) png_bKGD[5];
3080
+ PNG_EXPORT_VAR (png_byte FARDATA) png_cHRM[5];
3081
+ PNG_EXPORT_VAR (png_byte FARDATA) png_gAMA[5];
3082
+ PNG_EXPORT_VAR (png_byte FARDATA) png_hIST[5];
3083
+ PNG_EXPORT_VAR (png_byte FARDATA) png_iCCP[5];
3084
+ PNG_EXPORT_VAR (png_byte FARDATA) png_iTXt[5];
3085
+ PNG_EXPORT_VAR (png_byte FARDATA) png_oFFs[5];
3086
+ PNG_EXPORT_VAR (png_byte FARDATA) png_pCAL[5];
3087
+ PNG_EXPORT_VAR (png_byte FARDATA) png_sCAL[5];
3088
+ PNG_EXPORT_VAR (png_byte FARDATA) png_pHYs[5];
3089
+ PNG_EXPORT_VAR (png_byte FARDATA) png_sBIT[5];
3090
+ PNG_EXPORT_VAR (png_byte FARDATA) png_sPLT[5];
3091
+ PNG_EXPORT_VAR (png_byte FARDATA) png_sRGB[5];
3092
+ PNG_EXPORT_VAR (png_byte FARDATA) png_tEXt[5];
3093
+ PNG_EXPORT_VAR (png_byte FARDATA) png_tIME[5];
3094
+ PNG_EXPORT_VAR (png_byte FARDATA) png_tRNS[5];
3095
+ PNG_EXPORT_VAR (png_byte FARDATA) png_zTXt[5];
3096
+ #endif /* PNG_USE_GLOBAL_ARRAYS */
3097
+
3098
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
3099
+ /* Initialize png_ptr struct for reading, and allocate any other memory.
3100
+ * (old interface - DEPRECATED - use png_create_read_struct instead).
3101
+ */
3102
+ extern PNG_EXPORT(void,png_read_init) PNGARG((png_structp png_ptr))
3103
+ PNG_DEPRECATED;
3104
+ #undef png_read_init
3105
+ #define png_read_init(png_ptr) png_read_init_3(&png_ptr, \
3106
+ PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));
3107
+ #endif
3108
+
3109
+ extern PNG_EXPORT(void,png_read_init_3) PNGARG((png_structpp ptr_ptr,
3110
+ png_const_charp user_png_ver, png_size_t png_struct_size));
3111
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
3112
+ extern PNG_EXPORT(void,png_read_init_2) PNGARG((png_structp png_ptr,
3113
+ png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
3114
+ png_info_size));
3115
+ #endif
3116
+
3117
+ #if defined(PNG_1_0_X) || defined (PNG_1_2_X)
3118
+ /* Initialize png_ptr struct for writing, and allocate any other memory.
3119
+ * (old interface - DEPRECATED - use png_create_write_struct instead).
3120
+ */
3121
+ extern PNG_EXPORT(void,png_write_init) PNGARG((png_structp png_ptr))
3122
+ PNG_DEPRECATED;
3123
+ #undef png_write_init
3124
+ #define png_write_init(png_ptr) png_write_init_3(&png_ptr, \
3125
+ PNG_LIBPNG_VER_STRING, png_sizeof(png_struct));
3126
+ #endif
3127
+
3128
+ extern PNG_EXPORT(void,png_write_init_3) PNGARG((png_structpp ptr_ptr,
3129
+ png_const_charp user_png_ver, png_size_t png_struct_size));
3130
+ extern PNG_EXPORT(void,png_write_init_2) PNGARG((png_structp png_ptr,
3131
+ png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t
3132
+ png_info_size));
3133
+
3134
+ /* Allocate memory for an internal libpng struct */
3135
+ PNG_EXTERN png_voidp png_create_struct PNGARG((int type)) PNG_PRIVATE;
3136
+
3137
+ /* Free memory from internal libpng struct */
3138
+ PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)) PNG_PRIVATE;
3139
+
3140
+ PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr
3141
+ malloc_fn, png_voidp mem_ptr)) PNG_PRIVATE;
3142
+ PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr,
3143
+ png_free_ptr free_fn, png_voidp mem_ptr)) PNG_PRIVATE;
3144
+
3145
+ /* Free any memory that info_ptr points to and reset struct. */
3146
+ PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr,
3147
+ png_infop info_ptr)) PNG_PRIVATE;
3148
+
3149
+ #ifndef PNG_1_0_X
3150
+ /* Function to allocate memory for zlib. */
3151
+ PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items,
3152
+ uInt size)) PNG_PRIVATE;
3153
+
3154
+ /* Function to free memory for zlib */
3155
+ PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)) PNG_PRIVATE;
3156
+
3157
+ #ifdef PNG_SIZE_T
3158
+ /* Function to convert a sizeof an item to png_sizeof item */
3159
+ PNG_EXTERN png_size_t PNGAPI png_convert_size PNGARG((size_t size))
3160
+ PNG_PRIVATE;
3161
+ #endif
3162
+
3163
+ /* Next four functions are used internally as callbacks. PNGAPI is required
3164
+ * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3.
3165
+ */
3166
+
3167
+ PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
3168
+ png_bytep data, png_size_t length)) PNG_PRIVATE;
3169
+
3170
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
3171
+ PNG_EXTERN void PNGAPI png_push_fill_buffer PNGARG((png_structp png_ptr,
3172
+ png_bytep buffer, png_size_t length)) PNG_PRIVATE;
3173
+ #endif
3174
+
3175
+ PNG_EXTERN void PNGAPI png_default_write_data PNGARG((png_structp png_ptr,
3176
+ png_bytep data, png_size_t length)) PNG_PRIVATE;
3177
+
3178
+ #ifdef PNG_WRITE_FLUSH_SUPPORTED
3179
+ #ifdef PNG_STDIO_SUPPORTED
3180
+ PNG_EXTERN void PNGAPI png_default_flush PNGARG((png_structp png_ptr))
3181
+ PNG_PRIVATE;
3182
+ #endif
3183
+ #endif
3184
+ #else /* PNG_1_0_X */
3185
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
3186
+ PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr,
3187
+ png_bytep buffer, png_size_t length)) PNG_PRIVATE;
3188
+ #endif
3189
+ #endif /* PNG_1_0_X */
3190
+
3191
+ /* Reset the CRC variable */
3192
+ PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3193
+
3194
+ /* Write the "data" buffer to whatever output you are using. */
3195
+ PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data,
3196
+ png_size_t length)) PNG_PRIVATE;
3197
+
3198
+ /* Read data from whatever input you are using into the "data" buffer */
3199
+ PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data,
3200
+ png_size_t length)) PNG_PRIVATE;
3201
+
3202
+ /* Read bytes into buf, and update png_ptr->crc */
3203
+ PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf,
3204
+ png_size_t length)) PNG_PRIVATE;
3205
+
3206
+ /* Decompress data in a chunk that uses compression */
3207
+ #if defined(PNG_zTXt_SUPPORTED) || defined(PNG_iTXt_SUPPORTED) || \
3208
+ defined(PNG_iCCP_SUPPORTED) || defined(PNG_sPLT_SUPPORTED)
3209
+ PNG_EXTERN void png_decompress_chunk PNGARG((png_structp png_ptr,
3210
+ int comp_type, png_size_t chunklength,
3211
+ png_size_t prefix_length, png_size_t *data_length)) PNG_PRIVATE;
3212
+ #endif
3213
+
3214
+ /* Read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */
3215
+ PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)
3216
+ PNG_PRIVATE);
3217
+
3218
+ /* Read the CRC from the file and compare it to the libpng calculated CRC */
3219
+ PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3220
+
3221
+ /* Calculate the CRC over a section of data. Note that we are only
3222
+ * passing a maximum of 64K on systems that have this as a memory limit,
3223
+ * since this is the maximum buffer size we can specify.
3224
+ */
3225
+ PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr,
3226
+ png_size_t length)) PNG_PRIVATE;
3227
+
3228
+ #ifdef PNG_WRITE_FLUSH_SUPPORTED
3229
+ PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3230
+ #endif
3231
+
3232
+ /* Simple function to write the signature */
3233
+ PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3234
+
3235
+ /* Write various chunks */
3236
+
3237
+ /* Write the IHDR chunk, and update the png_struct with the necessary
3238
+ * information.
3239
+ */
3240
+ PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width,
3241
+ png_uint_32 height,
3242
+ int bit_depth, int color_type, int compression_method, int filter_method,
3243
+ int interlace_method)) PNG_PRIVATE;
3244
+
3245
+ PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette,
3246
+ png_uint_32 num_pal)) PNG_PRIVATE;
3247
+
3248
+ PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data,
3249
+ png_size_t length)) PNG_PRIVATE;
3250
+
3251
+ PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3252
+
3253
+ #ifdef PNG_WRITE_gAMA_SUPPORTED
3254
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
3255
+ PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma))
3256
+ PNG_PRIVATE;
3257
+ #endif
3258
+ #ifdef PNG_FIXED_POINT_SUPPORTED
3259
+ PNG_EXTERN void png_write_gAMA_fixed PNGARG((png_structp png_ptr,
3260
+ png_fixed_point file_gamma)) PNG_PRIVATE;
3261
+ #endif
3262
+ #endif
3263
+
3264
+ #ifdef PNG_WRITE_sBIT_SUPPORTED
3265
+ PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit,
3266
+ int color_type)) PNG_PRIVATE;
3267
+ #endif
3268
+
3269
+ #ifdef PNG_WRITE_cHRM_SUPPORTED
3270
+ #ifdef PNG_FLOATING_POINT_SUPPORTED
3271
+ PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr,
3272
+ double white_x, double white_y,
3273
+ double red_x, double red_y, double green_x, double green_y,
3274
+ double blue_x, double blue_y)) PNG_PRIVATE;
3275
+ #endif
3276
+ #ifdef PNG_FIXED_POINT_SUPPORTED
3277
+ PNG_EXTERN void png_write_cHRM_fixed PNGARG((png_structp png_ptr,
3278
+ png_fixed_point int_white_x, png_fixed_point int_white_y,
3279
+ png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
3280
+ int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
3281
+ png_fixed_point int_blue_y)) PNG_PRIVATE;
3282
+ #endif
3283
+ #endif
3284
+
3285
+ #ifdef PNG_WRITE_sRGB_SUPPORTED
3286
+ PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr,
3287
+ int intent)) PNG_PRIVATE;
3288
+ #endif
3289
+
3290
+ #ifdef PNG_WRITE_iCCP_SUPPORTED
3291
+ PNG_EXTERN void png_write_iCCP PNGARG((png_structp png_ptr,
3292
+ png_charp name, int compression_type,
3293
+ png_charp profile, int proflen)) PNG_PRIVATE;
3294
+ /* Note to maintainer: profile should be png_bytep */
3295
+ #endif
3296
+
3297
+ #ifdef PNG_WRITE_sPLT_SUPPORTED
3298
+ PNG_EXTERN void png_write_sPLT PNGARG((png_structp png_ptr,
3299
+ png_sPLT_tp palette)) PNG_PRIVATE;
3300
+ #endif
3301
+
3302
+ #ifdef PNG_WRITE_tRNS_SUPPORTED
3303
+ PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans,
3304
+ png_color_16p values, int number, int color_type)) PNG_PRIVATE;
3305
+ #endif
3306
+
3307
+ #ifdef PNG_WRITE_bKGD_SUPPORTED
3308
+ PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr,
3309
+ png_color_16p values, int color_type)) PNG_PRIVATE;
3310
+ #endif
3311
+
3312
+ #ifdef PNG_WRITE_hIST_SUPPORTED
3313
+ PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist,
3314
+ int num_hist)) PNG_PRIVATE;
3315
+ #endif
3316
+
3317
+ #if defined(PNG_WRITE_TEXT_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) || \
3318
+ defined(PNG_WRITE_iCCP_SUPPORTED) || defined(PNG_WRITE_sPLT_SUPPORTED)
3319
+ PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr,
3320
+ png_charp key, png_charpp new_key)) PNG_PRIVATE;
3321
+ #endif
3322
+
3323
+ #ifdef PNG_WRITE_tEXt_SUPPORTED
3324
+ PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key,
3325
+ png_charp text, png_size_t text_len)) PNG_PRIVATE;
3326
+ #endif
3327
+
3328
+ #ifdef PNG_WRITE_zTXt_SUPPORTED
3329
+ PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key,
3330
+ png_charp text, png_size_t text_len, int compression)) PNG_PRIVATE;
3331
+ #endif
3332
+
3333
+ #ifdef PNG_WRITE_iTXt_SUPPORTED
3334
+ PNG_EXTERN void png_write_iTXt PNGARG((png_structp png_ptr,
3335
+ int compression, png_charp key, png_charp lang, png_charp lang_key,
3336
+ png_charp text)) PNG_PRIVATE;
3337
+ #endif
3338
+
3339
+ #ifdef PNG_TEXT_SUPPORTED /* Added at version 1.0.14 and 1.2.4 */
3340
+ PNG_EXTERN int png_set_text_2 PNGARG((png_structp png_ptr,
3341
+ png_infop info_ptr, png_textp text_ptr, int num_text)) PNG_PRIVATE;
3342
+ #endif
3343
+
3344
+ #ifdef PNG_WRITE_oFFs_SUPPORTED
3345
+ PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr,
3346
+ png_int_32 x_offset, png_int_32 y_offset, int unit_type)) PNG_PRIVATE;
3347
+ #endif
3348
+
3349
+ #ifdef PNG_WRITE_pCAL_SUPPORTED
3350
+ PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose,
3351
+ png_int_32 X0, png_int_32 X1, int type, int nparams,
3352
+ png_charp units, png_charpp params)) PNG_PRIVATE;
3353
+ #endif
3354
+
3355
+ #ifdef PNG_WRITE_pHYs_SUPPORTED
3356
+ PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr,
3357
+ png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit,
3358
+ int unit_type)) PNG_PRIVATE;
3359
+ #endif
3360
+
3361
+ #ifdef PNG_WRITE_tIME_SUPPORTED
3362
+ PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr,
3363
+ png_timep mod_time)) PNG_PRIVATE;
3364
+ #endif
3365
+
3366
+ #ifdef PNG_WRITE_sCAL_SUPPORTED
3367
+ #if defined(PNG_FLOATING_POINT_SUPPORTED) && !defined(PNG_NO_STDIO)
3368
+ PNG_EXTERN void png_write_sCAL PNGARG((png_structp png_ptr,
3369
+ int unit, double width, double height)) PNG_PRIVATE;
3370
+ #else
3371
+ #ifdef PNG_FIXED_POINT_SUPPORTED
3372
+ PNG_EXTERN void png_write_sCAL_s PNGARG((png_structp png_ptr,
3373
+ int unit, png_charp width, png_charp height)) PNG_PRIVATE;
3374
+ #endif
3375
+ #endif
3376
+ #endif
3377
+
3378
+ /* Called when finished processing a row of data */
3379
+ PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3380
+
3381
+ /* Internal use only. Called before first row of data */
3382
+ PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3383
+
3384
+ #ifdef PNG_READ_GAMMA_SUPPORTED
3385
+ PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3386
+ #endif
3387
+
3388
+ /* Combine a row of data, dealing with alpha, etc. if requested */
3389
+ PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
3390
+ int mask)) PNG_PRIVATE;
3391
+
3392
+ #ifdef PNG_READ_INTERLACING_SUPPORTED
3393
+ /* Expand an interlaced row */
3394
+ /* OLD pre-1.0.9 interface:
3395
+ PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
3396
+ png_bytep row, int pass, png_uint_32 transformations)) PNG_PRIVATE;
3397
+ */
3398
+ PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3399
+ #endif
3400
+
3401
+ /* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */
3402
+
3403
+ #ifdef PNG_WRITE_INTERLACING_SUPPORTED
3404
+ /* Grab pixels out of a row for an interlaced pass */
3405
+ PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
3406
+ png_bytep row, int pass)) PNG_PRIVATE;
3407
+ #endif
3408
+
3409
+ /* Unfilter a row */
3410
+ PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
3411
+ png_row_infop row_info, png_bytep row, png_bytep prev_row,
3412
+ int filter)) PNG_PRIVATE;
3413
+
3414
+ /* Choose the best filter to use and filter the row data */
3415
+ PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,
3416
+ png_row_infop row_info)) PNG_PRIVATE;
3417
+
3418
+ /* Write out the filtered row. */
3419
+ PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,
3420
+ png_bytep filtered_row)) PNG_PRIVATE;
3421
+ /* Finish a row while reading, dealing with interlacing passes, etc. */
3422
+ PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
3423
+
3424
+ /* Initialize the row buffers, etc. */
3425
+ PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3426
+ /* Optional call to update the users info structure */
3427
+ PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
3428
+ png_infop info_ptr)) PNG_PRIVATE;
3429
+
3430
+ /* These are the functions that do the transformations */
3431
+ #ifdef PNG_READ_FILLER_SUPPORTED
3432
+ PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
3433
+ png_bytep row, png_uint_32 filler, png_uint_32 flags)) PNG_PRIVATE;
3434
+ #endif
3435
+
3436
+ #ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
3437
+ PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info,
3438
+ png_bytep row)) PNG_PRIVATE;
3439
+ #endif
3440
+
3441
+ #ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
3442
+ PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info,
3443
+ png_bytep row)) PNG_PRIVATE;
3444
+ #endif
3445
+
3446
+ #ifdef PNG_READ_INVERT_ALPHA_SUPPORTED
3447
+ PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info,
3448
+ png_bytep row)) PNG_PRIVATE;
3449
+ #endif
3450
+
3451
+ #ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
3452
+ PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info,
3453
+ png_bytep row)) PNG_PRIVATE;
3454
+ #endif
3455
+
3456
+ #if defined(PNG_WRITE_FILLER_SUPPORTED) || \
3457
+ defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
3458
+ PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info,
3459
+ png_bytep row, png_uint_32 flags)) PNG_PRIVATE;
3460
+ #endif
3461
+
3462
+ #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
3463
+ PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info,
3464
+ png_bytep row)) PNG_PRIVATE;
3465
+ #endif
3466
+
3467
+ #if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
3468
+ PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info,
3469
+ png_bytep row)) PNG_PRIVATE;
3470
+ #endif
3471
+
3472
+ #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
3473
+ PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop
3474
+ row_info, png_bytep row)) PNG_PRIVATE;
3475
+ #endif
3476
+
3477
+ #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
3478
+ PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info,
3479
+ png_bytep row)) PNG_PRIVATE;
3480
+ #endif
3481
+
3482
+ #ifdef PNG_READ_PACK_SUPPORTED
3483
+ PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info,
3484
+ png_bytep row)) PNG_PRIVATE;
3485
+ #endif
3486
+
3487
+ #ifdef PNG_READ_SHIFT_SUPPORTED
3488
+ PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row,
3489
+ png_color_8p sig_bits)) PNG_PRIVATE;
3490
+ #endif
3491
+
3492
+ #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
3493
+ PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info,
3494
+ png_bytep row)) PNG_PRIVATE;
3495
+ #endif
3496
+
3497
+ #ifdef PNG_READ_16_TO_8_SUPPORTED
3498
+ PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info,
3499
+ png_bytep row)) PNG_PRIVATE;
3500
+ #endif
3501
+
3502
+ #ifdef PNG_READ_DITHER_SUPPORTED
3503
+ PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info,
3504
+ png_bytep row, png_bytep palette_lookup,
3505
+ png_bytep dither_lookup)) PNG_PRIVATE;
3506
+
3507
+ # ifdef PNG_CORRECT_PALETTE_SUPPORTED
3508
+ PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr,
3509
+ png_colorp palette, int num_palette)) PNG_PRIVATE;
3510
+ # endif
3511
+ #endif
3512
+
3513
+ #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
3514
+ PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info,
3515
+ png_bytep row)) PNG_PRIVATE;
3516
+ #endif
3517
+
3518
+ #ifdef PNG_WRITE_PACK_SUPPORTED
3519
+ PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info,
3520
+ png_bytep row, png_uint_32 bit_depth)) PNG_PRIVATE;
3521
+ #endif
3522
+
3523
+ #ifdef PNG_WRITE_SHIFT_SUPPORTED
3524
+ PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row,
3525
+ png_color_8p bit_depth)) PNG_PRIVATE;
3526
+ #endif
3527
+
3528
+ #ifdef PNG_READ_BACKGROUND_SUPPORTED
3529
+ #ifdef PNG_READ_GAMMA_SUPPORTED
3530
+ PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
3531
+ png_color_16p trans_values, png_color_16p background,
3532
+ png_color_16p background_1,
3533
+ png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1,
3534
+ png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1,
3535
+ png_uint_16pp gamma_16_to_1, int gamma_shift)) PNG_PRIVATE;
3536
+ #else
3537
+ PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row,
3538
+ png_color_16p trans_values, png_color_16p background)) PNG_PRIVATE;
3539
+ #endif
3540
+ #endif
3541
+
3542
+ #ifdef PNG_READ_GAMMA_SUPPORTED
3543
+ PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row,
3544
+ png_bytep gamma_table, png_uint_16pp gamma_16_table,
3545
+ int gamma_shift)) PNG_PRIVATE;
3546
+ #endif
3547
+
3548
+ #ifdef PNG_READ_EXPAND_SUPPORTED
3549
+ PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info,
3550
+ png_bytep row, png_colorp palette, png_bytep trans,
3551
+ int num_trans)) PNG_PRIVATE;
3552
+ PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
3553
+ png_bytep row, png_color_16p trans_value)) PNG_PRIVATE;
3554
+ #endif
3555
+
3556
+ /* The following decodes the appropriate chunks, and does error correction,
3557
+ * then calls the appropriate callback for the chunk if it is valid.
3558
+ */
3559
+
3560
+ /* Decode the IHDR chunk */
3561
+ PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
3562
+ png_uint_32 length)) PNG_PRIVATE;
3563
+ PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
3564
+ png_uint_32 length));
3565
+ PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr,
3566
+ png_uint_32 length));
3567
+
3568
+ #ifdef PNG_READ_bKGD_SUPPORTED
3569
+ PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr,
3570
+ png_uint_32 length)) PNG_PRIVATE;
3571
+ #endif
3572
+
3573
+ #ifdef PNG_READ_cHRM_SUPPORTED
3574
+ PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr,
3575
+ png_uint_32 length)) PNG_PRIVATE;
3576
+ #endif
3577
+
3578
+ #ifdef PNG_READ_gAMA_SUPPORTED
3579
+ PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr,
3580
+ png_uint_32 length)) PNG_PRIVATE;
3581
+ #endif
3582
+
3583
+ #ifdef PNG_READ_hIST_SUPPORTED
3584
+ PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr,
3585
+ png_uint_32 length)) PNG_PRIVATE;
3586
+ #endif
3587
+
3588
+ #ifdef PNG_READ_iCCP_SUPPORTED
3589
+ extern void png_handle_iCCP PNGARG((png_structp png_ptr, png_infop info_ptr,
3590
+ png_uint_32 length));
3591
+ #endif /* PNG_READ_iCCP_SUPPORTED */
3592
+
3593
+ #ifdef PNG_READ_iTXt_SUPPORTED
3594
+ PNG_EXTERN void png_handle_iTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
3595
+ png_uint_32 length)) PNG_PRIVATE;
3596
+ #endif
3597
+
3598
+ #ifdef PNG_READ_oFFs_SUPPORTED
3599
+ PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr,
3600
+ png_uint_32 length)) PNG_PRIVATE;
3601
+ #endif
3602
+
3603
+ #ifdef PNG_READ_pCAL_SUPPORTED
3604
+ PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
3605
+ png_uint_32 length)) PNG_PRIVATE;
3606
+ #endif
3607
+
3608
+ #ifdef PNG_READ_pHYs_SUPPORTED
3609
+ PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr,
3610
+ png_uint_32 length)) PNG_PRIVATE;
3611
+ #endif
3612
+
3613
+ #ifdef PNG_READ_sBIT_SUPPORTED
3614
+ PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr,
3615
+ png_uint_32 length)) PNG_PRIVATE;
3616
+ #endif
3617
+
3618
+ #ifdef PNG_READ_sCAL_SUPPORTED
3619
+ PNG_EXTERN void png_handle_sCAL PNGARG((png_structp png_ptr, png_infop info_ptr,
3620
+ png_uint_32 length)) PNG_PRIVATE;
3621
+ #endif
3622
+
3623
+ #ifdef PNG_READ_sPLT_SUPPORTED
3624
+ extern void png_handle_sPLT PNGARG((png_structp png_ptr, png_infop info_ptr,
3625
+ png_uint_32 length)) PNG_PRIVATE;
3626
+ #endif /* PNG_READ_sPLT_SUPPORTED */
3627
+
3628
+ #ifdef PNG_READ_sRGB_SUPPORTED
3629
+ PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr,
3630
+ png_uint_32 length)) PNG_PRIVATE;
3631
+ #endif
3632
+
3633
+ #ifdef PNG_READ_tEXt_SUPPORTED
3634
+ PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr,
3635
+ png_uint_32 length)) PNG_PRIVATE;
3636
+ #endif
3637
+
3638
+ #ifdef PNG_READ_tIME_SUPPORTED
3639
+ PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr,
3640
+ png_uint_32 length)) PNG_PRIVATE;
3641
+ #endif
3642
+
3643
+ #ifdef PNG_READ_tRNS_SUPPORTED
3644
+ PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr,
3645
+ png_uint_32 length)) PNG_PRIVATE;
3646
+ #endif
3647
+
3648
+ #ifdef PNG_READ_zTXt_SUPPORTED
3649
+ PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr,
3650
+ png_uint_32 length)) PNG_PRIVATE;
3651
+ #endif
3652
+
3653
+ PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
3654
+ png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3655
+
3656
+ PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
3657
+ png_bytep chunk_name)) PNG_PRIVATE;
3658
+
3659
+ /* Handle the transformations for reading and writing */
3660
+ PNG_EXTERN void png_do_read_transformations
3661
+ PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3662
+ PNG_EXTERN void png_do_write_transformations
3663
+ PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3664
+
3665
+ PNG_EXTERN void png_init_read_transformations
3666
+ PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3667
+
3668
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
3669
+ PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr,
3670
+ png_infop info_ptr)) PNG_PRIVATE;
3671
+ PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr,
3672
+ png_infop info_ptr)) PNG_PRIVATE;
3673
+ PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3674
+ PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr,
3675
+ png_uint_32 length)) PNG_PRIVATE;
3676
+ PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3677
+ PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3678
+ PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr,
3679
+ png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE;
3680
+ PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3681
+ PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr,
3682
+ png_bytep buffer, png_size_t buffer_length)) PNG_PRIVATE;
3683
+ PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3684
+ PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr,
3685
+ png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3686
+ PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr,
3687
+ png_infop info_ptr)) PNG_PRIVATE;
3688
+ PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr,
3689
+ png_infop info_ptr)) PNG_PRIVATE;
3690
+ PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr,
3691
+ png_bytep row)) PNG_PRIVATE;
3692
+ PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr,
3693
+ png_infop info_ptr)) PNG_PRIVATE;
3694
+ PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr,
3695
+ png_infop info_ptr)) PNG_PRIVATE;
3696
+ PNG_EXTERN void png_read_push_finish_row
3697
+ PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3698
+ #ifdef PNG_READ_tEXt_SUPPORTED
3699
+ PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr,
3700
+ png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3701
+ PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr,
3702
+ png_infop info_ptr)) PNG_PRIVATE;
3703
+ #endif
3704
+ #ifdef PNG_READ_zTXt_SUPPORTED
3705
+ PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr,
3706
+ png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3707
+ PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr,
3708
+ png_infop info_ptr)) PNG_PRIVATE;
3709
+ #endif
3710
+ #ifdef PNG_READ_iTXt_SUPPORTED
3711
+ PNG_EXTERN void png_push_handle_iTXt PNGARG((png_structp png_ptr,
3712
+ png_infop info_ptr, png_uint_32 length)) PNG_PRIVATE;
3713
+ PNG_EXTERN void png_push_read_iTXt PNGARG((png_structp png_ptr,
3714
+ png_infop info_ptr)) PNG_PRIVATE;
3715
+ #endif
3716
+
3717
+ #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
3718
+
3719
+ #ifdef PNG_MNG_FEATURES_SUPPORTED
3720
+ PNG_EXTERN void png_do_read_intrapixel PNGARG((png_row_infop row_info,
3721
+ png_bytep row)) PNG_PRIVATE;
3722
+ PNG_EXTERN void png_do_write_intrapixel PNGARG((png_row_infop row_info,
3723
+ png_bytep row)) PNG_PRIVATE;
3724
+ #endif
3725
+
3726
+ #ifdef PNG_ASSEMBLER_CODE_SUPPORTED
3727
+ #ifdef PNG_MMX_CODE_SUPPORTED
3728
+ /* png.c */ /* PRIVATE */
3729
+ PNG_EXTERN void png_init_mmx_flags PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3730
+ #endif
3731
+ #endif
3732
+
3733
+
3734
+ /* The following six functions will be exported in libpng-1.4.0. */
3735
+ #if defined(PNG_INCH_CONVERSIONS) && defined(PNG_FLOATING_POINT_SUPPORTED)
3736
+ PNG_EXTERN png_uint_32 png_get_pixels_per_inch PNGARG((png_structp png_ptr,
3737
+ png_infop info_ptr));
3738
+
3739
+ PNG_EXTERN png_uint_32 png_get_x_pixels_per_inch PNGARG((png_structp png_ptr,
3740
+ png_infop info_ptr));
3741
+
3742
+ PNG_EXTERN png_uint_32 png_get_y_pixels_per_inch PNGARG((png_structp png_ptr,
3743
+ png_infop info_ptr));
3744
+
3745
+ PNG_EXTERN float png_get_x_offset_inches PNGARG((png_structp png_ptr,
3746
+ png_infop info_ptr));
3747
+
3748
+ PNG_EXTERN float png_get_y_offset_inches PNGARG((png_structp png_ptr,
3749
+ png_infop info_ptr));
3750
+
3751
+ #ifdef PNG_pHYs_SUPPORTED
3752
+ PNG_EXTERN png_uint_32 png_get_pHYs_dpi PNGARG((png_structp png_ptr,
3753
+ png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
3754
+ #endif /* PNG_pHYs_SUPPORTED */
3755
+ #endif /* PNG_INCH_CONVERSIONS && PNG_FLOATING_POINT_SUPPORTED */
3756
+
3757
+ /* Read the chunk header (length + type name) */
3758
+ PNG_EXTERN png_uint_32 png_read_chunk_header
3759
+ PNGARG((png_structp png_ptr)) PNG_PRIVATE;
3760
+
3761
+ /* Added at libpng version 1.2.34 */
3762
+ #ifdef PNG_cHRM_SUPPORTED
3763
+ PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
3764
+ png_fixed_point int_white_x, png_fixed_point int_white_y,
3765
+ png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
3766
+ int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
3767
+ png_fixed_point int_blue_y)) PNG_PRIVATE;
3768
+ #endif
3769
+
3770
+ #ifdef PNG_cHRM_SUPPORTED
3771
+ #ifdef PNG_CHECK_cHRM_SUPPORTED
3772
+ /* Added at libpng version 1.2.34 */
3773
+ PNG_EXTERN void png_64bit_product PNGARG((long v1, long v2,
3774
+ unsigned long *hi_product, unsigned long *lo_product)) PNG_PRIVATE;
3775
+ #endif
3776
+ #endif
3777
+
3778
+ /* Added at libpng version 1.2.41 */
3779
+ PNG_EXTERN void png_check_IHDR PNGARG((png_structp png_ptr,
3780
+ png_uint_32 width, png_uint_32 height, int bit_depth,
3781
+ int color_type, int interlace_type, int compression_type,
3782
+ int filter_type)) PNG_PRIVATE;
3783
+
3784
+ /* Added at libpng version 1.2.41 */
3785
+ PNG_EXTERN png_voidp png_calloc PNGARG((png_structp png_ptr,
3786
+ png_uint_32 size));
3787
+
3788
+ /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
3789
+
3790
+ #endif /* PNG_INTERNAL */
3791
+
3792
+ #ifdef __cplusplus
3793
+ }
3794
+ #endif
3795
+
3796
+ #endif /* PNG_VERSION_INFO_ONLY */
3797
+ /* Do not put anything past this line */
3798
+ #endif /* PNG_H */