ruby-iup 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (478) hide show
  1. data/CHANGES +3 -0
  2. data/MANIFEST +8 -0
  3. data/MIT-LICENSE +18 -0
  4. data/README +12 -0
  5. data/Rakefile +68 -80
  6. data/doc/build_install.txt +9 -12
  7. data/examples/ctrl/cbox.rb +14 -15
  8. data/examples/ctrl/checkboard.rb +1 -1
  9. data/examples/ctrl/example1.rb +53 -53
  10. data/examples/ctrl/example2.rb +39 -39
  11. data/examples/ctrl/iupcolorbar.rb +95 -95
  12. data/examples/ctrl/iupcolorbrowser.rb +45 -45
  13. data/examples/ctrl/iupdial.rb +117 -117
  14. data/examples/ctrl/iupgetcolor.rb +7 -7
  15. data/examples/ctrl/iupgetparam.rb +62 -62
  16. data/examples/ctrl/iupglcanvas.rb +172 -172
  17. data/examples/ctrl/iupmask.rb +1 -3
  18. data/examples/ctrl/iupmatrix.rb +39 -39
  19. data/examples/ctrl/iupplot2.rb +2 -1
  20. data/examples/ctrl/iuptabs.rb +22 -22
  21. data/examples/ctrl/iuptree.rb +190 -190
  22. data/examples/ctrl/iupval.rb +71 -71
  23. data/examples/ctrl/numbering.rb +46 -46
  24. data/examples/ctrl/sample.rb +166 -166
  25. data/examples/dlg/iupfiledlg.rb +19 -19
  26. data/examples/dlg/iupgetfile.rb +19 -19
  27. data/examples/dlg/iuplistdialog.rb +26 -26
  28. data/examples/dlg/iupmessage.rb +5 -5
  29. data/examples/dlg/iupscanf.rb +17 -17
  30. data/examples/elem/iupdialog2.rb +25 -25
  31. data/examples/elem/iupfill.rb +51 -51
  32. data/examples/elem/iupframe.rb +25 -25
  33. data/examples/elem/iuphbox.rb +68 -68
  34. data/examples/elem/iupimage.rb +113 -113
  35. data/examples/elem/iupitem.rb +60 -60
  36. data/examples/elem/iuplabel.rb +57 -57
  37. data/examples/elem/iuplist.rb +41 -41
  38. data/examples/elem/iuplist2.rb +125 -125
  39. data/examples/elem/iupmenu.rb +32 -32
  40. data/examples/elem/iupmultiline.rb +24 -24
  41. data/examples/elem/iupmultiline2.rb +156 -156
  42. data/examples/elem/iupradio.rb +32 -32
  43. data/examples/elem/iupseparator.rb +81 -81
  44. data/examples/elem/iupsubmenu.rb +85 -85
  45. data/examples/elem/iuptext.rb +61 -61
  46. data/examples/elem/iuptimer.rb +36 -36
  47. data/examples/elem/iuptoggle.rb +110 -110
  48. data/examples/elem/iupvbox.rb +87 -87
  49. data/examples/elem/iupzbox.rb +60 -60
  50. data/examples/elem/mdisample.rb +377 -376
  51. data/examples/elem/scrollbar.rb +66 -66
  52. data/examples/elem/tray.rb +90 -90
  53. data/examples/func/iupgetattribute.rb +32 -32
  54. data/examples/func/iupidle.rb +48 -48
  55. data/ext/extconf.rb +62 -27
  56. data/ext/iup-linux/include/cd.h +9 -5
  57. data/ext/iup-linux/include/cd_private.h +13 -6
  58. data/ext/iup-linux/include/cdsvg.h +22 -0
  59. data/ext/iup-linux/include/im.h +287 -282
  60. data/ext/iup-linux/include/im_attrib.h +120 -116
  61. data/ext/iup-linux/include/im_attrib_flat.h +39 -39
  62. data/ext/iup-linux/include/im_binfile.h +224 -214
  63. data/ext/iup-linux/include/im_capture.h +365 -365
  64. data/ext/iup-linux/include/im_color.h +465 -465
  65. data/ext/iup-linux/include/im_colorhsi.h +56 -61
  66. data/ext/iup-linux/include/im_complex.h +180 -160
  67. data/ext/iup-linux/include/im_convert.h +142 -127
  68. data/ext/iup-linux/include/im_counter.h +69 -69
  69. data/ext/iup-linux/include/im_dib.h +195 -195
  70. data/ext/iup-linux/include/im_file.h +115 -111
  71. data/ext/iup-linux/include/im_format.h +97 -79
  72. data/ext/iup-linux/include/im_format_all.h +575 -576
  73. data/ext/iup-linux/include/im_format_avi.h +88 -87
  74. data/ext/iup-linux/include/im_format_ecw.h +93 -93
  75. data/ext/iup-linux/include/im_format_jp2.h +79 -78
  76. data/ext/iup-linux/include/im_format_raw.h +74 -64
  77. data/ext/iup-linux/include/im_format_wmv.h +101 -100
  78. data/ext/iup-linux/include/im_image.h +425 -403
  79. data/ext/iup-linux/include/im_kernel.h +315 -315
  80. data/ext/iup-linux/include/im_lib.h +191 -191
  81. data/ext/iup-linux/include/im_math.h +368 -368
  82. data/ext/iup-linux/include/im_math_op.h +214 -219
  83. data/ext/iup-linux/include/im_palette.h +172 -172
  84. data/ext/iup-linux/include/im_plus.h +73 -73
  85. data/ext/iup-linux/include/im_process.h +36 -35
  86. data/ext/iup-linux/include/im_process_ana.h +222 -221
  87. data/ext/iup-linux/include/im_process_glo.h +170 -170
  88. data/ext/iup-linux/include/im_process_loc.h +608 -577
  89. data/ext/iup-linux/include/im_process_pon.h +734 -712
  90. data/ext/iup-linux/include/im_raw.h +34 -34
  91. data/ext/iup-linux/include/im_util.h +277 -277
  92. data/ext/iup-linux/include/imlua.h +75 -83
  93. data/ext/iup-linux/include/iup.h +86 -40
  94. data/ext/iup-linux/include/iupcb.h +1 -25
  95. data/ext/iup-linux/include/iupcbox.h +1 -0
  96. data/ext/iup-linux/include/iupcbs.h +1 -1
  97. data/ext/iup-linux/include/iupcells.h +1 -130
  98. data/ext/iup-linux/include/iupcolorbar.h +1 -126
  99. data/ext/iup-linux/include/iupcontrols.h +26 -16
  100. data/ext/iup-linux/include/iupdef.h +205 -0
  101. data/ext/iup-linux/include/iupdial.h +1 -63
  102. data/ext/iup-linux/include/iupgauge.h +1 -57
  103. data/ext/iup-linux/include/iupgc.h +1 -0
  104. data/ext/iup-linux/include/iupgetparam.h +1 -27
  105. data/ext/iup-linux/include/iupgl.h +2 -7
  106. data/ext/iup-linux/include/iupim.h +7 -1
  107. data/ext/iup-linux/include/iupkey.h +4 -4
  108. data/ext/iup-linux/include/iupmask.h +2 -1
  109. data/ext/iup-linux/include/iupmatrix.h +1 -63
  110. data/ext/iup-linux/include/iupsbox.h +1 -0
  111. data/ext/iup-linux/include/iupspin.h +1 -21
  112. data/ext/iup-linux/include/iuptabs.h +1 -75
  113. data/ext/iup-linux/include/iuptree.h +1 -93
  114. data/ext/iup-linux/include/iupval.h +1 -46
  115. data/ext/iup-linux/include/old_im.h +59 -59
  116. data/ext/iup-linux/include/wd.h +5 -0
  117. data/ext/iup-linux/libcd.a +0 -0
  118. data/ext/iup-linux/libcdcontextplus.a +0 -0
  119. data/ext/iup-linux/libcdgdk.a +0 -0
  120. data/ext/iup-linux/libcdpdf.a +0 -0
  121. data/ext/iup-linux/libfreetype.a +0 -0
  122. data/ext/iup-linux/libim.a +0 -0
  123. data/ext/iup-linux/libim_fftw.a +0 -0
  124. data/ext/iup-linux/libim_jp2.a +0 -0
  125. data/ext/iup-linux/libim_process.a +0 -0
  126. data/ext/iup-linux/libiup.a +0 -0
  127. data/ext/iup-linux/libiup_pplot.a +0 -0
  128. data/ext/iup-linux/libiupcd.a +0 -0
  129. data/ext/iup-linux/libiupcontrols.a +0 -0
  130. data/ext/iup-linux/libiupgl.a +0 -0
  131. data/ext/iup-linux/libiupim.a +0 -0
  132. data/ext/iup-linux/libiupimglib.a +0 -0
  133. data/ext/iup-linux/libiupmot.a +0 -0
  134. data/ext/iup-linux/libpdflib.a +0 -0
  135. data/ext/{iup-win32 → iup-mingw32}/include/cd.h +9 -5
  136. data/ext/{iup-win32 → iup-mingw32}/include/cd_canvas.hpp +0 -0
  137. data/ext/{iup-win32 → iup-mingw32}/include/cd_old.h +0 -0
  138. data/ext/{iup-win32 → iup-mingw32}/include/cd_private.h +13 -6
  139. data/ext/{iup-win32 → iup-mingw32}/include/cdcgm.h +0 -0
  140. data/ext/{iup-win32 → iup-mingw32}/include/cdclipbd.h +0 -0
  141. data/ext/{iup-win32 → iup-mingw32}/include/cddbuf.h +0 -0
  142. data/ext/{iup-win32 → iup-mingw32}/include/cddebug.h +0 -0
  143. data/ext/{iup-win32 → iup-mingw32}/include/cddgn.h +0 -0
  144. data/ext/{iup-win32 → iup-mingw32}/include/cddxf.h +0 -0
  145. data/ext/{iup-win32 → iup-mingw32}/include/cdemf.h +0 -0
  146. data/ext/{iup-win32 → iup-mingw32}/include/cdgdiplus.h +0 -0
  147. data/ext/{iup-win32 → iup-mingw32}/include/cdimage.h +0 -0
  148. data/ext/{iup-win32 → iup-mingw32}/include/cdirgb.h +0 -0
  149. data/ext/{iup-win32 → iup-mingw32}/include/cdiup.h +0 -0
  150. data/ext/{iup-win32 → iup-mingw32}/include/cdlua.h +0 -0
  151. data/ext/{iup-win32 → iup-mingw32}/include/cdlua3_private.h +0 -0
  152. data/ext/{iup-win32 → iup-mingw32}/include/cdlua5_private.h +0 -0
  153. data/ext/{iup-win32 → iup-mingw32}/include/cdluaim.h +0 -0
  154. data/ext/{iup-win32 → iup-mingw32}/include/cdluaiup.h +0 -0
  155. data/ext/{iup-win32 → iup-mingw32}/include/cdluapdf.h +0 -0
  156. data/ext/{iup-win32 → iup-mingw32}/include/cdmf.h +0 -0
  157. data/ext/{iup-win32 → iup-mingw32}/include/cdmf_private.h +0 -0
  158. data/ext/{iup-win32 → iup-mingw32}/include/cdnative.h +0 -0
  159. data/ext/{iup-win32 → iup-mingw32}/include/cdpdf.h +0 -0
  160. data/ext/{iup-win32 → iup-mingw32}/include/cdpicture.h +0 -0
  161. data/ext/{iup-win32 → iup-mingw32}/include/cdprint.h +0 -0
  162. data/ext/{iup-win32 → iup-mingw32}/include/cdps.h +0 -0
  163. data/ext/iup-mingw32/include/cdsvg.h +22 -0
  164. data/ext/{iup-win32 → iup-mingw32}/include/cdwmf.h +0 -0
  165. data/ext/iup-mingw32/include/im.h +287 -0
  166. data/ext/iup-mingw32/include/im_attrib.h +120 -0
  167. data/ext/iup-mingw32/include/im_attrib_flat.h +39 -0
  168. data/ext/iup-mingw32/include/im_binfile.h +224 -0
  169. data/ext/iup-mingw32/include/im_capture.h +365 -0
  170. data/ext/iup-mingw32/include/im_color.h +465 -0
  171. data/ext/iup-mingw32/include/im_colorhsi.h +56 -0
  172. data/ext/iup-mingw32/include/im_complex.h +180 -0
  173. data/ext/iup-mingw32/include/im_convert.h +142 -0
  174. data/ext/iup-mingw32/include/im_counter.h +69 -0
  175. data/ext/iup-mingw32/include/im_dib.h +195 -0
  176. data/ext/iup-mingw32/include/im_file.h +115 -0
  177. data/ext/iup-mingw32/include/im_format.h +97 -0
  178. data/ext/iup-mingw32/include/im_format_all.h +575 -0
  179. data/ext/iup-mingw32/include/im_format_avi.h +88 -0
  180. data/ext/iup-mingw32/include/im_format_ecw.h +93 -0
  181. data/ext/iup-mingw32/include/im_format_jp2.h +79 -0
  182. data/ext/iup-mingw32/include/im_format_raw.h +74 -0
  183. data/ext/iup-mingw32/include/im_format_wmv.h +101 -0
  184. data/ext/iup-mingw32/include/im_image.h +425 -0
  185. data/ext/iup-mingw32/include/im_kernel.h +315 -0
  186. data/ext/iup-mingw32/include/im_lib.h +191 -0
  187. data/ext/iup-mingw32/include/im_math.h +368 -0
  188. data/ext/iup-mingw32/include/im_math_op.h +214 -0
  189. data/ext/iup-mingw32/include/im_palette.h +172 -0
  190. data/ext/iup-mingw32/include/im_plus.h +73 -0
  191. data/ext/iup-mingw32/include/im_process.h +36 -0
  192. data/ext/iup-mingw32/include/im_process_ana.h +222 -0
  193. data/ext/iup-mingw32/include/im_process_glo.h +170 -0
  194. data/ext/iup-mingw32/include/im_process_loc.h +608 -0
  195. data/ext/iup-mingw32/include/im_process_pon.h +734 -0
  196. data/ext/iup-mingw32/include/im_raw.h +34 -0
  197. data/ext/iup-mingw32/include/im_util.h +277 -0
  198. data/ext/iup-mingw32/include/imlua.h +75 -0
  199. data/ext/{iup-win32 → iup-mingw32}/include/iup.h +86 -40
  200. data/ext/{iup-win32 → iup-mingw32}/include/iup_pplot.h +0 -0
  201. data/ext/iup-mingw32/include/iupcb.h +1 -0
  202. data/ext/iup-mingw32/include/iupcbox.h +1 -0
  203. data/ext/{iup-win32 → iup-mingw32}/include/iupcbs.h +1 -1
  204. data/ext/iup-mingw32/include/iupcells.h +1 -0
  205. data/ext/iup-mingw32/include/iupcolorbar.h +1 -0
  206. data/ext/iup-mingw32/include/iupcontrols.h +46 -0
  207. data/ext/{iup-win32 → iup-mingw32}/include/iupdef.h +205 -0
  208. data/ext/iup-mingw32/include/iupdial.h +1 -0
  209. data/ext/iup-mingw32/include/iupgauge.h +1 -0
  210. data/ext/iup-mingw32/include/iupgc.h +1 -0
  211. data/ext/iup-mingw32/include/iupgetparam.h +1 -0
  212. data/ext/{iup-win32 → iup-mingw32}/include/iupgl.h +2 -7
  213. data/ext/{iup-win32 → iup-mingw32}/include/iupim.h +7 -1
  214. data/ext/{iup-win32 → iup-mingw32}/include/iupkey.h +4 -4
  215. data/ext/{iup-win32 → iup-mingw32}/include/iuplua.h +0 -0
  216. data/ext/{iup-win32 → iup-mingw32}/include/iuplua_pplot.h +0 -0
  217. data/ext/{iup-win32 → iup-mingw32}/include/iupluacontrols.h +0 -0
  218. data/ext/{iup-win32 → iup-mingw32}/include/iupluagl.h +0 -0
  219. data/ext/{iup-win32 → iup-mingw32}/include/iupluaim.h +0 -0
  220. data/ext/{iup-win32 → iup-mingw32}/include/iupluaole.h +0 -0
  221. data/ext/{iup-win32 → iup-mingw32}/include/iupmask.h +2 -1
  222. data/ext/iup-mingw32/include/iupmatrix.h +1 -0
  223. data/ext/{iup-win32 → iup-mingw32}/include/iupole.h +0 -0
  224. data/ext/iup-mingw32/include/iupsbox.h +1 -0
  225. data/ext/iup-mingw32/include/iupspin.h +1 -0
  226. data/ext/iup-mingw32/include/iuptabs.h +1 -0
  227. data/ext/iup-mingw32/include/iuptree.h +1 -0
  228. data/ext/iup-mingw32/include/iupval.h +1 -0
  229. data/ext/iup-mingw32/include/old_im.h +59 -0
  230. data/ext/{iup-win32 → iup-mingw32}/include/wd.h +5 -0
  231. data/ext/{iup-win32 → iup-mingw32}/include/wd_old.h +0 -0
  232. data/ext/iup-mingw32/libcd.a +0 -0
  233. data/ext/iup-mingw32/libcdpdf.a +0 -0
  234. data/ext/iup-mingw32/libfreetype6.a +0 -0
  235. data/ext/iup-mingw32/libim.a +0 -0
  236. data/ext/iup-mingw32/libim_avi.a +0 -0
  237. data/ext/iup-mingw32/libim_fftw.a +0 -0
  238. data/ext/iup-mingw32/libim_jp2.a +0 -0
  239. data/ext/iup-mingw32/libim_process.a +0 -0
  240. data/ext/iup-mingw32/libiup.a +0 -0
  241. data/ext/iup-mingw32/libiup_pplot.a +0 -0
  242. data/ext/iup-mingw32/libiupcd.a +0 -0
  243. data/ext/iup-mingw32/libiupcontrols.a +0 -0
  244. data/ext/iup-mingw32/libiupgl.a +0 -0
  245. data/ext/iup-mingw32/libiupim.a +0 -0
  246. data/ext/iup-mingw32/libiupimglib.a +0 -0
  247. data/ext/iup-mingw32/libiupole.a +0 -0
  248. data/ext/iup-mingw32/libpdflib.a +0 -0
  249. data/ext/iup-mswin32/cd.lib +0 -0
  250. data/ext/iup-mswin32/cdcontextplus.lib +0 -0
  251. data/ext/iup-mswin32/cdgdk.lib +0 -0
  252. data/ext/iup-mswin32/cdpdf.lib +0 -0
  253. data/ext/iup-mswin32/freetype6.lib +0 -0
  254. data/ext/iup-mswin32/im.lib +0 -0
  255. data/ext/iup-mswin32/im_avi.lib +0 -0
  256. data/ext/iup-mswin32/im_capture.lib +0 -0
  257. data/ext/iup-mswin32/im_fftw.lib +0 -0
  258. data/ext/iup-mswin32/im_jp2.lib +0 -0
  259. data/ext/iup-mswin32/im_process.lib +0 -0
  260. data/ext/iup-mswin32/im_wmv.lib +0 -0
  261. data/ext/iup-mswin32/include/cd.h +498 -0
  262. data/ext/iup-mswin32/include/cd_canvas.hpp +358 -0
  263. data/ext/iup-mswin32/include/cd_old.h +158 -0
  264. data/ext/iup-mswin32/include/cd_private.h +369 -0
  265. data/ext/iup-mswin32/include/cdcgm.h +34 -0
  266. data/ext/iup-mswin32/include/cdclipbd.h +22 -0
  267. data/ext/iup-mswin32/include/cddbuf.h +23 -0
  268. data/ext/iup-mswin32/include/cddebug.h +24 -0
  269. data/ext/iup-mswin32/include/cddgn.h +23 -0
  270. data/ext/iup-mswin32/include/cddxf.h +22 -0
  271. data/ext/iup-mswin32/include/cdemf.h +22 -0
  272. data/ext/iup-mswin32/include/cdgdiplus.h +29 -0
  273. data/ext/iup-mswin32/include/cdimage.h +23 -0
  274. data/ext/iup-mswin32/include/cdirgb.h +30 -0
  275. data/ext/iup-mswin32/include/cdiup.h +22 -0
  276. data/ext/iup-mswin32/include/cdlua.h +39 -0
  277. data/ext/iup-mswin32/include/cdlua3_private.h +120 -0
  278. data/ext/iup-mswin32/include/cdlua5_private.h +141 -0
  279. data/ext/iup-mswin32/include/cdluaim.h +24 -0
  280. data/ext/iup-mswin32/include/cdluaiup.h +27 -0
  281. data/ext/iup-mswin32/include/cdluapdf.h +27 -0
  282. data/ext/iup-mswin32/include/cdmf.h +24 -0
  283. data/ext/iup-mswin32/include/cdmf_private.h +32 -0
  284. data/ext/iup-mswin32/include/cdnative.h +26 -0
  285. data/ext/iup-mswin32/include/cdpdf.h +38 -0
  286. data/ext/iup-mswin32/include/cdpicture.h +22 -0
  287. data/ext/iup-mswin32/include/cdprint.h +23 -0
  288. data/ext/iup-mswin32/include/cdps.h +37 -0
  289. data/ext/iup-mswin32/include/cdsvg.h +22 -0
  290. data/ext/iup-mswin32/include/cdwmf.h +22 -0
  291. data/ext/iup-mswin32/include/im.h +287 -0
  292. data/ext/iup-mswin32/include/im_attrib.h +120 -0
  293. data/ext/iup-mswin32/include/im_attrib_flat.h +39 -0
  294. data/ext/iup-mswin32/include/im_binfile.h +224 -0
  295. data/ext/iup-mswin32/include/im_capture.h +365 -0
  296. data/ext/iup-mswin32/include/im_color.h +465 -0
  297. data/ext/iup-mswin32/include/im_colorhsi.h +56 -0
  298. data/ext/iup-mswin32/include/im_complex.h +180 -0
  299. data/ext/iup-mswin32/include/im_convert.h +142 -0
  300. data/ext/iup-mswin32/include/im_counter.h +69 -0
  301. data/ext/iup-mswin32/include/im_dib.h +195 -0
  302. data/ext/iup-mswin32/include/im_file.h +115 -0
  303. data/ext/iup-mswin32/include/im_format.h +97 -0
  304. data/ext/iup-mswin32/include/im_format_all.h +575 -0
  305. data/ext/iup-mswin32/include/im_format_avi.h +88 -0
  306. data/ext/iup-mswin32/include/im_format_ecw.h +93 -0
  307. data/ext/iup-mswin32/include/im_format_jp2.h +79 -0
  308. data/ext/iup-mswin32/include/im_format_raw.h +74 -0
  309. data/ext/iup-mswin32/include/im_format_wmv.h +101 -0
  310. data/ext/iup-mswin32/include/im_image.h +425 -0
  311. data/ext/iup-mswin32/include/im_kernel.h +315 -0
  312. data/ext/iup-mswin32/include/im_lib.h +191 -0
  313. data/ext/iup-mswin32/include/im_math.h +368 -0
  314. data/ext/iup-mswin32/include/im_math_op.h +214 -0
  315. data/ext/iup-mswin32/include/im_palette.h +172 -0
  316. data/ext/iup-mswin32/include/im_plus.h +73 -0
  317. data/ext/iup-mswin32/include/im_process.h +36 -0
  318. data/ext/iup-mswin32/include/im_process_ana.h +222 -0
  319. data/ext/iup-mswin32/include/im_process_glo.h +170 -0
  320. data/ext/iup-mswin32/include/im_process_loc.h +608 -0
  321. data/ext/iup-mswin32/include/im_process_pon.h +734 -0
  322. data/ext/iup-mswin32/include/im_raw.h +34 -0
  323. data/ext/iup-mswin32/include/im_util.h +277 -0
  324. data/ext/iup-mswin32/include/imlua.h +75 -0
  325. data/ext/iup-mswin32/include/iup.h +364 -0
  326. data/ext/iup-mswin32/include/iup_pplot.h +40 -0
  327. data/ext/iup-mswin32/include/iupcb.h +1 -0
  328. data/ext/iup-mswin32/include/iupcbox.h +1 -0
  329. data/ext/iup-mswin32/include/iupcbs.h +43 -0
  330. data/ext/iup-mswin32/include/iupcells.h +1 -0
  331. data/ext/iup-mswin32/include/iupcolorbar.h +1 -0
  332. data/ext/iup-mswin32/include/iupcontrols.h +46 -0
  333. data/ext/iup-mswin32/include/iupdef.h +725 -0
  334. data/ext/iup-mswin32/include/iupdial.h +1 -0
  335. data/ext/iup-mswin32/include/iupgauge.h +1 -0
  336. data/ext/iup-mswin32/include/iupgc.h +1 -0
  337. data/ext/iup-mswin32/include/iupgetparam.h +1 -0
  338. data/ext/iup-mswin32/include/iupgl.h +96 -0
  339. data/ext/iup-mswin32/include/iupim.h +27 -0
  340. data/ext/iup-mswin32/include/iupkey.h +457 -0
  341. data/ext/iup-mswin32/include/iuplua.h +41 -0
  342. data/ext/iup-mswin32/include/iuplua_pplot.h +26 -0
  343. data/ext/iup-mswin32/include/iupluacontrols.h +27 -0
  344. data/ext/iup-mswin32/include/iupluagl.h +26 -0
  345. data/ext/iup-mswin32/include/iupluaim.h +26 -0
  346. data/ext/iup-mswin32/include/iupluaole.h +26 -0
  347. data/ext/iup-mswin32/include/iupmask.h +41 -0
  348. data/ext/iup-mswin32/include/iupmatrix.h +1 -0
  349. data/ext/iup-mswin32/include/iupole.h +24 -0
  350. data/ext/iup-mswin32/include/iupsbox.h +1 -0
  351. data/ext/iup-mswin32/include/iupspin.h +1 -0
  352. data/ext/iup-mswin32/include/iuptabs.h +1 -0
  353. data/ext/iup-mswin32/include/iuptree.h +1 -0
  354. data/ext/iup-mswin32/include/iupval.h +1 -0
  355. data/ext/iup-mswin32/include/old_im.h +59 -0
  356. data/ext/iup-mswin32/include/wd.h +83 -0
  357. data/ext/iup-mswin32/include/wd_old.h +85 -0
  358. data/ext/iup-mswin32/iup.lib +0 -0
  359. data/ext/iup-mswin32/iup_pplot.lib +0 -0
  360. data/ext/iup-mswin32/iupcd.lib +0 -0
  361. data/ext/iup-mswin32/iupcontrols.lib +0 -0
  362. data/ext/iup-mswin32/iupgl.lib +0 -0
  363. data/ext/iup-mswin32/iupgtk.lib +0 -0
  364. data/ext/iup-mswin32/iupim.lib +0 -0
  365. data/ext/{iup-win32/iupimglib.dll → iup-mswin32/iupimglib.lib} +0 -0
  366. data/ext/iup-mswin32/iupole.lib +0 -0
  367. data/ext/iup-mswin32/pdflib.lib +0 -0
  368. data/ext/iup.c +6 -37
  369. data/ext/{rb_cd.h → rb_cd.c} +300 -302
  370. data/ext/rb_iup.c +2485 -0
  371. data/ext/rb_iup.h +400 -2475
  372. data/ext/{rb_iup_pplot.h → rb_iup_pplot.c} +21 -22
  373. data/ext/{rb_iupcb.h → rb_iupcb.c} +2 -3
  374. data/ext/{rb_iupcells.h → rb_iupcells.c} +5 -5
  375. data/ext/{rb_iupcolorbar.h → rb_iupcolorbar.c} +2 -3
  376. data/ext/{rb_iupcontrols.h → rb_iupcontrols.c} +1 -1
  377. data/ext/{rb_iupdial.h → rb_iupdial.c} +3 -4
  378. data/ext/{rb_iupgauge.h → rb_iupgauge.c} +2 -3
  379. data/ext/{rb_iupgc.h → rb_iupgc.c} +1 -1
  380. data/ext/{rb_iupgetparam.h → rb_iupgetparam.c} +12 -10
  381. data/ext/{rb_iupgl.h → rb_iupgl.c} +10 -10
  382. data/ext/{rb_iupim.h → rb_iupim.c} +6 -6
  383. data/ext/{rb_iupmatrix.h → rb_iupmatrix.c} +15 -16
  384. data/ext/{rb_iupole.h → rb_iupole.c} +4 -4
  385. data/ext/{rb_iupsbox.h → rb_iupsbox.c} +3 -3
  386. data/ext/{rb_iupspin.h → rb_iupspin.c} +4 -5
  387. data/ext/{rb_iuptabs.h → rb_iuptabs.c} +5 -6
  388. data/ext/{rb_iuptree.h → rb_iuptree.c} +20 -21
  389. data/ext/{rb_iupval.h → rb_iupval.c} +3 -4
  390. data/ruby-iup.gemspec +26 -0
  391. data/test/test_ruby_iup.rb +25 -0
  392. metadata +395 -270
  393. data/ext/iup-linux/include/lauxlib.h +0 -174
  394. data/ext/iup-linux/include/lua.h +0 -388
  395. data/ext/iup-linux/include/lua.hpp +0 -9
  396. data/ext/iup-linux/include/luaconf.h +0 -763
  397. data/ext/iup-linux/include/lualib.h +0 -53
  398. data/ext/iup-linux/libcd.so +0 -0
  399. data/ext/iup-linux/libcdcontextplus.so +0 -0
  400. data/ext/iup-linux/libcdpdf.so +0 -0
  401. data/ext/iup-linux/libfreetype.so +0 -0
  402. data/ext/iup-linux/libim.so +0 -0
  403. data/ext/iup-linux/libim_fftw.so +0 -0
  404. data/ext/iup-linux/libim_jp2.so +0 -0
  405. data/ext/iup-linux/libim_process.so +0 -0
  406. data/ext/iup-linux/libiup.so +0 -0
  407. data/ext/iup-linux/libiup_pplot.so +0 -0
  408. data/ext/iup-linux/libiupcd.so +0 -0
  409. data/ext/iup-linux/libiupcontrols.so +0 -0
  410. data/ext/iup-linux/libiupgl.so +0 -0
  411. data/ext/iup-linux/libiupim.so +0 -0
  412. data/ext/iup-linux/libiupimglib.so +0 -0
  413. data/ext/iup-linux/libiupmot.so +0 -0
  414. data/ext/iup-linux/libpdflib.so +0 -0
  415. data/ext/iup-win32/cd.dll +0 -0
  416. data/ext/iup-win32/cd.lib +0 -0
  417. data/ext/iup-win32/cdcontextplus.dll +0 -0
  418. data/ext/iup-win32/cdcontextplus.lib +0 -0
  419. data/ext/iup-win32/cdpdf.dll +0 -0
  420. data/ext/iup-win32/cdpdf.lib +0 -0
  421. data/ext/iup-win32/freetype6.dll +0 -0
  422. data/ext/iup-win32/freetype6.lib +0 -0
  423. data/ext/iup-win32/im.dll +0 -0
  424. data/ext/iup-win32/im.lib +0 -0
  425. data/ext/iup-win32/im_avi.dll +0 -0
  426. data/ext/iup-win32/im_avi.lib +0 -0
  427. data/ext/iup-win32/im_capture.dll +0 -0
  428. data/ext/iup-win32/im_capture.lib +0 -0
  429. data/ext/iup-win32/im_ecw.dll +0 -0
  430. data/ext/iup-win32/im_fftw.dll +0 -0
  431. data/ext/iup-win32/im_fftw.lib +0 -0
  432. data/ext/iup-win32/im_jp2.dll +0 -0
  433. data/ext/iup-win32/im_jp2.lib +0 -0
  434. data/ext/iup-win32/im_process.dll +0 -0
  435. data/ext/iup-win32/im_process.lib +0 -0
  436. data/ext/iup-win32/im_wmv.dll +0 -0
  437. data/ext/iup-win32/im_wmv.lib +0 -0
  438. data/ext/iup-win32/imlua_capture51.dll +0 -0
  439. data/ext/iup-win32/imlua_capture51.lib +0 -0
  440. data/ext/iup-win32/imlua_wmv51.dll +0 -0
  441. data/ext/iup-win32/imlua_wmv51.lib +0 -0
  442. data/ext/iup-win32/include/iupcb.h +0 -25
  443. data/ext/iup-win32/include/iupcells.h +0 -130
  444. data/ext/iup-win32/include/iupcolorbar.h +0 -126
  445. data/ext/iup-win32/include/iupcontrols.h +0 -36
  446. data/ext/iup-win32/include/iupdial.h +0 -63
  447. data/ext/iup-win32/include/iupgauge.h +0 -57
  448. data/ext/iup-win32/include/iupgetparam.h +0 -27
  449. data/ext/iup-win32/include/iupmatrix.h +0 -63
  450. data/ext/iup-win32/include/iupspin.h +0 -21
  451. data/ext/iup-win32/include/iuptabs.h +0 -75
  452. data/ext/iup-win32/include/iuptree.h +0 -93
  453. data/ext/iup-win32/include/iupval.h +0 -46
  454. data/ext/iup-win32/iup.dll +0 -0
  455. data/ext/iup-win32/iup.lib +0 -0
  456. data/ext/iup-win32/iup_pplot.dll +0 -0
  457. data/ext/iup-win32/iup_pplot.lib +0 -0
  458. data/ext/iup-win32/iupcd.dll +0 -0
  459. data/ext/iup-win32/iupcd.lib +0 -0
  460. data/ext/iup-win32/iupcontrols.dll +0 -0
  461. data/ext/iup-win32/iupcontrols.lib +0 -0
  462. data/ext/iup-win32/iupgl.dll +0 -0
  463. data/ext/iup-win32/iupgl.lib +0 -0
  464. data/ext/iup-win32/iupgtk.dll +0 -0
  465. data/ext/iup-win32/iupgtk.lib +0 -0
  466. data/ext/iup-win32/iupim.dll +0 -0
  467. data/ext/iup-win32/iupim.lib +0 -0
  468. data/ext/iup-win32/iupimglib.lib +0 -0
  469. data/ext/iup-win32/iupole.dll +0 -0
  470. data/ext/iup-win32/iupole.lib +0 -0
  471. data/ext/iup-win32/iupstub.lib +0 -0
  472. data/ext/iup-win32/pdflib.dll +0 -0
  473. data/ext/iup-win32/pdflib.lib +0 -0
  474. data/ext/mkrf_conf.rb +0 -72
  475. data/ext/rb_iupcompat.h +0 -237
  476. data/ext/rb_iupdef.h +0 -3
  477. data/ext/rb_iupmask.h +0 -189
  478. data/lib/README +0 -1
@@ -1,64 +1,74 @@
1
- /** \file
2
- * \brief Initialize the RAW Format Driver
3
- * Header for internal use only.
4
- *
5
- * See Copyright Notice in im_lib.h
6
- */
7
-
8
- #ifndef __IM_FORMAT_RAW_H
9
- #define __IM_FORMAT_RAW_H
10
-
11
- #if defined(__cplusplus)
12
- extern "C" {
13
- #endif
14
-
15
- /** \defgroup raw RAW - RAW File
16
- *
17
- * \par
18
- * The file must be open/created with the functions \ref imFileOpenRaw and \ref imFileNewRaw.
19
- *
20
- * \section Description
21
- *
22
- * \par
23
- * Internal Implementation.
24
- * \par
25
- * Supports RAW binary images. You must know image parameters a priori. \n
26
- * You must set the IM_INT attributes "Width", "Height", "ColorMode", "DataType" before the imFileReadImageInfo/imFileWriteImageInfo functions.
27
- * \par
28
- * The data must be in binary form, but can start in an arbitrary offset from the begining of the file, use attribute "StartOffset".
29
- * The default is at 0 offset.
30
- * \par
31
- * Integer sign and double precision can be converted using attribute "SwitchType". \n
32
- * The conversions will be BYTE<->CHAR, USHORT<->SHORT, INT<->UINT, FLOAT<->DOUBLE.
33
- * \par
34
- * Byte Order can be Little Endian (Intel=1) or Big Endian (Motorola=0), use the attribute "ByteOrder", the default is the current CPU.
35
- * \par
36
- * The lines can be aligned to a BYTE (1), WORD (2) or DWORD (4) boundaries, ue attribute "Padding" with the respective value.
37
- * \par
38
- * See \ref im_raw.h
39
- *
40
- * \section Features
41
- *
42
- \verbatim
43
- Data Types: <all>
44
- Color Spaces: all, except MAP.
45
- Compressions:
46
- NONE - no compression
47
- Can have more than one image, depends on "StartOffset" attribute.
48
- Can have an alpha channel.
49
- Components can be packed or not.
50
- Lines arranged from top down to bottom or bottom up to top.
51
-
52
- Attributes:
53
- Width, Height, ColorMode, DataType IM_INT (1)
54
- StartOffset, SwitchType, ByteOrder, Padding IM_INT (1)
55
- \endverbatim
56
- * \ingroup format */
57
- imFormat* imFormatInitRAW(void);
58
-
59
-
60
- #if defined(__cplusplus)
61
- }
62
- #endif
63
-
64
- #endif
1
+ /** \file
2
+ * \brief Initialize the RAW Format Driver
3
+ * Header for internal use only.
4
+ *
5
+ * See Copyright Notice in im_lib.h
6
+ */
7
+
8
+ #ifndef __IM_FORMAT_RAW_H
9
+ #define __IM_FORMAT_RAW_H
10
+
11
+ #if defined(__cplusplus)
12
+ extern "C" {
13
+ #endif
14
+
15
+ /** \defgroup raw RAW - RAW File
16
+ *
17
+ * \par
18
+ * The file must be open/created with the functions \ref imFileOpenRaw and \ref imFileNewRaw.
19
+ *
20
+ * \section Description
21
+ *
22
+ * \par
23
+ * Internal Implementation.
24
+ * \par
25
+ * Supports RAW binary images. This is an unstructured and uncompressed binary data.
26
+ * It is NOT a Camera RAW file generated in many professional digital cameras. \n
27
+ * You must know image parameters a priori and must set the IM_INT attributes "Width", "Height", "ColorMode", "DataType"
28
+ * before the imFileReadImageInfo/imFileWriteImageInfo functions.
29
+ * \par
30
+ * The data must be in binary form, but can start in an arbitrary offset from the begining of the file, use attribute "StartOffset".
31
+ * The default is at 0 offset.
32
+ * \par
33
+ * Integer sign and double precision can be converted using attribute "SwitchType". \n
34
+ * The conversions will be BYTE<->CHAR, USHORT<->SHORT, INT<->UINT, FLOAT<->DOUBLE.
35
+ * \par
36
+ * Byte Order can be Little Endian (Intel=1) or Big Endian (Motorola=0), use the attribute "ByteOrder", the default is the current CPU.
37
+ * \par
38
+ * The lines can be aligned to a BYTE (1), WORD (2) or DWORD (4) boundaries, ue attribute "Padding" with the respective value.
39
+ * \par
40
+ * If the compression is ASCII the data is stored in textual format, instead of binary.
41
+ * In this case SwitchType and ByteOrder are ignored, and Padding should be 0.
42
+ * \par
43
+ * See \ref im_raw.h
44
+ *
45
+ * \section Features
46
+ *
47
+ \verbatim
48
+ Data Types: <all>
49
+ Color Spaces: all, except MAP.
50
+ Compressions:
51
+ NONE - no compression [default]
52
+ ASCII (textual data)
53
+ Can have more than one image, depends on "StartOffset" attribute.
54
+ Can have an alpha channel.
55
+ Components can be packed or not.
56
+ Lines arranged from top down to bottom or bottom up to top.
57
+
58
+ Attributes:
59
+ Width, Height, ColorMode, DataType IM_INT (1)
60
+ ImageCount[1], StartOffset[0], SwitchType[FALSE], ByteOrder[IM_LITTLEENDIAN], Padding[0] IM_INT (1)
61
+
62
+ Comments:
63
+ In fact ASCII is an expansion, not a compression, because the file will be larger than binary data.
64
+ \endverbatim
65
+ * \ingroup format */
66
+ imFormat* imFormatInitRAW(void);
67
+
68
+ void imFormatFinishRAW(void);
69
+
70
+ #if defined(__cplusplus)
71
+ }
72
+ #endif
73
+
74
+ #endif
@@ -1,100 +1,101 @@
1
- /** \file
2
- * \brief Register the WMF Format
3
- *
4
- * See Copyright Notice in im_lib.h
5
- */
6
-
7
- #ifndef __IM_FORMAT_WMV_H
8
- #define __IM_FORMAT_WMV_H
9
-
10
- #if defined(__cplusplus)
11
- extern "C" {
12
- #endif
13
-
14
- /** \defgroup wmv WMV - Windows Media Video Format
15
- * \section Description
16
- *
17
- * \par
18
- * Advanced Systems Format (ASF) \n
19
- * Windows Copyright Microsoft Corporation.
20
- * \par
21
- * Access to the WMV format uses Windows Media SDK. Available in Windows Only. \n
22
- * You must link the application with "im_wmv.lib"
23
- * and you must call the function \ref imFormatRegisterWMV once
24
- * to register the format into the IM core library. \n
25
- * Depends also on the WMF SDK (wmvcore.lib).
26
- * When using the "im_wmv.dll" this extra library is not necessary.
27
- * \par
28
- * The application users should have the WMV codec 9 installed:
29
- * http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx
30
- * \par
31
- * You must agree with the WMF SDK EULA to use the SDK. \n
32
- * http://wmlicense.smdisp.net/v9sdk/
33
- * \par
34
- * For more information: \n
35
- * http://www.microsoft.com/windows/windowsmedia/9series/sdk.aspx \n
36
- * http://msdn.microsoft.com/library/en-us/wmform/htm/introducingwindowsmediaformat.asp
37
- * \par
38
- * See \ref im_format_wmv.h
39
- *
40
- * \section Features
41
- *
42
- \verbatim
43
- Data Types: Byte
44
- Color Spaces: RGB and MAP (Gray and Binary saved as MAP)
45
- Compressions (installed in Windows XP by default):
46
- NONE - no compression
47
- MPEG-4v3 - Windows Media MPEG-4 Video V3
48
- MPEG-4v1 - ISO MPEG-4 Video V1
49
- WMV7 - Windows Media Video V7
50
- WMV7Screen - Windows Media Screen V7
51
- WMV8 - Windows Media Video V8
52
- WMV9Screen - Windows Media Video 9 Screen
53
- WMV9 - Windows Media Video 9 [default]
54
- Unknown - Others
55
- Can have more than one image.
56
- Can have an alpha channel (only for RGB) ?
57
- Internally the components are always packed.
58
- Lines arranged from top down to bottom or bottom up to top.
59
- Handle(0) return NULL. imBinFile is not supported.
60
- Handle(1) returns IWMSyncReader* when reading, IWMWriter* when writing.
61
-
62
- Attributes:
63
- FPS IM_FLOAT (1) (should set when writing, default 15)
64
- WMFQuality IM_INT (1) [0-100, default 50] (write only)
65
- MaxKeyFrameTime IM_INT (1) (write only) [maximum key frame interval in miliseconds, default 5 seconds]
66
- DataRate IM_INT (1) (write only) [kilobits/second, default 2400]
67
- VBR IM_INT (1) [0, 1] (write only) [0 - Constant Bit Rate (default), 1 - Variable Bit Rate (Quality-Based)]
68
- (and several others from the file-level attributes) For ex:
69
- Title, Author, Copyright, Description (string)
70
- Duration IM_INT [100-nanosecond units]
71
- Seekable, HasAudio, HasVideo, Is_Protected, Is_Trusted, IsVBR IM_INT (1) [0, 1]
72
- NumberOfFrames IM_INT (1)
73
-
74
- Comments:
75
- IMPORTANT - The "image_count" and the "FPS" attribute may not be available from the file,
76
- we try to estimate from the duration and from the average time between frames, or using the default value.
77
- We do not handle DRM protected files (Digital Rights Management).
78
- Reads only the first video stream. Other streams are ignored.
79
- All the images have the same size, you must call imFileReadImageInfo/imFileWriteImageInfo
80
- at least once.
81
- For optimal random reading, the file should be indexed previously.
82
- If not indexed by frame, random positioning may not be precise.
83
- Sequencial reading will always be precise.
84
- When writing we use a custom profile and time indexing only.
85
- We do not support multipass encoding.
86
- Since the driver uses COM, CoInitialize(NULL) and CoUninitialize() are called every Open/Close.
87
- \endverbatim
88
- * \ingroup format */
89
-
90
- /** Register the WMF Format. \n
91
- * In Lua, when using require"imlua_wmv" this function will be automatically called.
92
- * \ingroup wmv */
93
- void imFormatRegisterWMV(void);
94
-
95
-
96
- #if defined(__cplusplus)
97
- }
98
- #endif
99
-
100
- #endif
1
+ /** \file
2
+ * \brief Register the WMF Format
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_FORMAT_WMV_H
8
+ #define __IM_FORMAT_WMV_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+ /** \defgroup wmv WMV - Windows Media Video Format
15
+ * \section Description
16
+ *
17
+ * \par
18
+ * Advanced Systems Format (ASF) \n
19
+ * Windows Copyright Microsoft Corporation.
20
+ * \par
21
+ * Access to the WMV format uses Windows Media SDK. Available in Windows Only. \n
22
+ * You must link the application with "im_wmv.lib"
23
+ * and you must call the function \ref imFormatRegisterWMV once
24
+ * to register the format into the IM core library.
25
+ * In Lua call require"imlua_wmv". \n
26
+ * Depends also on the WMF SDK (wmvcore.lib).
27
+ * When using the "im_wmv.dll" this extra library is not necessary.
28
+ * \par
29
+ * The application users should have the WMV codec 9 installed:
30
+ * http://www.microsoft.com/windows/windowsmedia/format/codecdownload.aspx
31
+ * \par
32
+ * You must agree with the WMF SDK EULA to use the SDK. \n
33
+ * http://wmlicense.smdisp.net/v9sdk/
34
+ * \par
35
+ * For more information: \n
36
+ * http://www.microsoft.com/windows/windowsmedia/9series/sdk.aspx \n
37
+ * http://msdn.microsoft.com/library/en-us/wmform/htm/introducingwindowsmediaformat.asp
38
+ * \par
39
+ * See \ref im_format_wmv.h
40
+ *
41
+ * \section Features
42
+ *
43
+ \verbatim
44
+ Data Types: Byte
45
+ Color Spaces: RGB and MAP (Gray and Binary saved as MAP)
46
+ Compressions (installed in Windows XP by default):
47
+ NONE - no compression
48
+ MPEG-4v3 - Windows Media MPEG-4 Video V3
49
+ MPEG-4v1 - ISO MPEG-4 Video V1
50
+ WMV7 - Windows Media Video V7
51
+ WMV7Screen - Windows Media Screen V7
52
+ WMV8 - Windows Media Video V8
53
+ WMV9Screen - Windows Media Video 9 Screen
54
+ WMV9 - Windows Media Video 9 [default]
55
+ Unknown - Others
56
+ Can have more than one image.
57
+ Can have an alpha channel (only for RGB) ?
58
+ Internally the components are always packed.
59
+ Lines arranged from top down to bottom or bottom up to top.
60
+ Handle(0) return NULL. imBinFile is not supported.
61
+ Handle(1) returns IWMSyncReader* when reading, IWMWriter* when writing.
62
+
63
+ Attributes:
64
+ FPS IM_FLOAT (1) (should set when writing, default 15)
65
+ WMFQuality IM_INT (1) [0-100, default 50] (write only)
66
+ MaxKeyFrameTime IM_INT (1) (write only) [maximum key frame interval in miliseconds, default 5 seconds]
67
+ DataRate IM_INT (1) (write only) [kilobits/second, default 2400]
68
+ VBR IM_INT (1) [0, 1] (write only) [0 - Constant Bit Rate (default), 1 - Variable Bit Rate (Quality-Based)]
69
+ (and several others from the file-level attributes) For ex:
70
+ Title, Author, Copyright, Description (string)
71
+ Duration IM_INT [100-nanosecond units]
72
+ Seekable, HasAudio, HasVideo, Is_Protected, Is_Trusted, IsVBR IM_INT (1) [0, 1]
73
+ NumberOfFrames IM_INT (1)
74
+
75
+ Comments:
76
+ IMPORTANT - The "image_count" and the "FPS" attribute may not be available from the file,
77
+ we try to estimate from the duration and from the average time between frames, or using the default value.
78
+ We do not handle DRM protected files (Digital Rights Management).
79
+ Reads only the first video stream. Other streams are ignored.
80
+ All the images have the same size, you must call imFileReadImageInfo/imFileWriteImageInfo
81
+ at least once.
82
+ For optimal random reading, the file should be indexed previously.
83
+ If not indexed by frame, random positioning may not be precise.
84
+ Sequencial reading will always be precise.
85
+ When writing we use a custom profile and time indexing only.
86
+ We do not support multipass encoding.
87
+ Since the driver uses COM, CoInitialize(NULL) and CoUninitialize() are called every Open/Close.
88
+ \endverbatim
89
+ * \ingroup format */
90
+
91
+ /** Register the WMF Format. \n
92
+ * In Lua, when using require"imlua_wmv" this function will be automatically called.
93
+ * \ingroup wmv */
94
+ void imFormatRegisterWMV(void);
95
+
96
+
97
+ #if defined(__cplusplus)
98
+ }
99
+ #endif
100
+
101
+ #endif
@@ -1,403 +1,425 @@
1
- /** \file
2
- * \brief Image Manipulation
3
- *
4
- * See Copyright Notice in im_lib.h
5
- */
6
-
7
- #ifndef __IM_IMAGE_H
8
- #define __IM_IMAGE_H
9
-
10
- #if defined(__cplusplus)
11
- extern "C" {
12
- #endif
13
-
14
-
15
- /** \defgroup imgclass imImage
16
- *
17
- * \par
18
- * Base definitions and functions for image representation. \n
19
- * Only the image processing operations depends on these definitions,
20
- * Image Storage and Image Capture are completely independent.
21
- * \par
22
- * You can also initialize a structure with your own memory buffer, see \ref imImageInit.
23
- * To release the structure without releasing the buffer,
24
- * set "data[0]" to NULL before calling imImageDestroy.
25
- * \par
26
- * See \ref im_image.h
27
- * \ingroup imagerep */
28
-
29
-
30
-
31
- /** \brief imImage Structure Definition.
32
- *
33
- * \par
34
- * An image representation than supports all the color spaces,
35
- * but planes are always unpacked and the orientation is always bottom up.
36
- * \ingroup imgclass */
37
- typedef struct _imImage
38
- {
39
- /* main parameters */
40
- int width; /**< Number of columns. image:Width() -> width: number [in Lua 5]. */
41
- int height; /**< Number of lines. image:Height() -> height: number [in Lua 5]. */
42
- int color_space; /**< Color space descriptor. See also \ref imColorSpace. image:ColorSpace() -> color_space: number [in Lua 5]. */
43
- int data_type; /**< Data type descriptor. See also \ref imDataType. image:DataType() -> data_type: number [in Lua 5]. */
44
- int has_alpha; /**< Indicates that there is an extra channel with alpha. image:HasAlpha() -> has_alpha: number [in Lua 5]. \n
45
- It will not affect the secondary parameters, i.e. the number of planes will be in fact depth+1. \n
46
- It is always 0 unless imImageAddAlpha is called, this is done in image load functions. */
47
-
48
- /* secondary parameters */
49
- int depth; /**< Number of planes (ColorSpaceDepth) */
50
- int line_size; /**< Number of bytes per line in one plane (width * DataTypeSize) */
51
- int plane_size; /**< Number of bytes per plane. (line_size * height) */
52
- int size; /**< Number of bytes occupied by the image (plane_size * depth) */
53
- int count; /**< Number of pixels (width * height) */
54
-
55
- /* image data */
56
- void** data; /**< Image data organized as a 2D matrix with several planes. \n
57
- But plane 0 is also a pointer to the full data. \n
58
- The remaining planes are: data[i] = data[0] + i*plane_size \n
59
- In Lua, data indexing is possible using: image[plane][row][column] */
60
-
61
- /* image attributes */
62
- long *palette; /**< Color palette. image:GetPalette() -> palette: imPalette [in Lua 5]. \n
63
- Used when depth=1. Otherwise is NULL. */
64
- int palette_count; /**< The palette is always 256 colors allocated, but can have less colors used. */
65
-
66
- void* attrib_table; /**< in fact is an imAttribTable, but we hide this here */
67
- } imImage;
68
-
69
-
70
- /** Creates a new image.
71
- * See also \ref imDataType and \ref imColorSpace. \n
72
- * In Lua the IM image metatable name is "imImage".
73
- * When converted to a string will return "imImage(%p) [width=%d,height=%d,color_space=%s,data_type=%s,depth=%d]" where %p is replaced by the userdata address,
74
- * and other values are replaced by the respective attributes.
75
- * If the image is already destroyed by im.ImageDestroy, then it will return also the suffix "-destroyed".
76
- *
77
- * \verbatim im.ImageCreate(width: number, height: number, color_space: number, data_type: number) -> image: imImage [in Lua 5] \endverbatim
78
- * \ingroup imgclass */
79
- imImage* imImageCreate(int width, int height, int color_space, int data_type);
80
-
81
- /** Initializes the image structure but does not allocates image data.
82
- * See also \ref imDataType and \ref imColorSpace.
83
- * \ingroup imgclass */
84
- imImage* imImageInit(int width, int height, int color_space, int data_type, void* data_buffer, long* palette, int palette_count);
85
-
86
- /** Creates a new image based on an existing one. \n
87
- * If the addicional parameters are -1, the given image parameters are used. \n
88
- * The image atributes always are copied.
89
- * See also \ref imDataType and \ref imColorSpace.
90
- *
91
- * \verbatim im.ImageCreateBased(image: imImage, [width: number], [height: number], [color_space: number], [data_type: number]) -> image: imImage [in Lua 5] \endverbatim
92
- * The addicional parameters in Lua can be nil,
93
- * and they can also be functions with the based image as a parameter to return the respective value.
94
- * \ingroup imgclass */
95
- imImage* imImageCreateBased(const imImage* image, int width, int height, int color_space, int data_type);
96
-
97
- /** Destroys the image and frees the memory used.
98
- * image data is destroyed only if its data[0] is not NULL. \n
99
- * In Lua if this function is not called, the image is destroyed by the garbage collector.
100
- *
101
- * \verbatim im.ImageDestroy(image: imImage) [in Lua 5] \endverbatim
102
- * \verbatim image:Destroy() [in Lua 5] \endverbatim
103
- * \ingroup imgclass */
104
- void imImageDestroy(imImage* image);
105
-
106
- /** Adds an alpha channel plane.
107
- *
108
- * \verbatim image:AddAlpha() [in Lua 5] \endverbatim
109
- * \ingroup imgclass */
110
- void imImageAddAlpha(imImage* image);
111
-
112
- /** Changes the buffer size. Reallocate internal buffers if the new size is larger than the original.
113
- *
114
- * \verbatim image:Reshape(width: number, height: number) [in Lua 5] \endverbatim
115
- * \ingroup imgclass */
116
- void imImageReshape(imImage* image, int width, int height);
117
-
118
- /** Copy image data and attributes from one image to another. \n
119
- * Images must have the same size and type.
120
- *
121
- * \verbatim image:Copy(dst_image: imImage) [in Lua 5] \endverbatim
122
- * \ingroup imgclass */
123
- void imImageCopy(const imImage* src_image, imImage* dst_image);
124
-
125
- /** Copy image data only fom one image to another. \n
126
- * Images must have the same size and type.
127
- *
128
- * \verbatim image:CopyData(dst_image: imImage) [in Lua 5] \endverbatim
129
- * \ingroup imgclass */
130
- void imImageCopyData(const imImage* src_image, imImage* dst_image);
131
-
132
- /** Creates a copy of the image.
133
- *
134
- * \verbatim image:Duplicate() -> new_image: imImage [in Lua 5] \endverbatim
135
- * \ingroup imgclass */
136
- imImage* imImageDuplicate(const imImage* image);
137
-
138
- /** Creates a clone of the image. i.e. same attributes but ignore contents.
139
- *
140
- * \verbatim image:Clone() -> new_image: imImage [in Lua 5] \endverbatim
141
- * \ingroup imgclass */
142
- imImage* imImageClone(const imImage* image);
143
-
144
- /** Changes an extended attribute. \n
145
- * The data will be internally duplicated. \n
146
- * If data is NULL the attribute is removed. \n
147
- * If count is -1 and data_type is IM_BYTE then data is zero terminated.
148
- * See also \ref imDataType.
149
- *
150
- * \verbatim image:SetAttribute(attrib: string, data_type: number, data: table of numbers or string) [in Lua 5] \endverbatim
151
- * If data_type is IM_BYTE, as_string can be used as data.
152
- * \ingroup imgclass */
153
- void imImageSetAttribute(imImage* image, const char* attrib, int data_type, int count, const void* data);
154
-
155
- /** Returns an extended attribute. \n
156
- * Returns NULL if not found.
157
- * See also \ref imDataType.
158
- *
159
- * \verbatim image:GetAttribute(attrib: string, [as_string: boolean]) -> data: table of numbers or string, data_type: number [in Lua 5] \endverbatim
160
- * If data_type is IM_BYTE, as_string can be used to return a string instead of a table.
161
- * \ingroup imgclass */
162
- const void* imImageGetAttribute(const imImage* image, const char* attrib, int *data_type, int *count);
163
-
164
- /** Returns a list of the attribute names. \n
165
- * "attrib" must contain room enough for "attrib_count" names. Use "attrib=NULL" to return only the count.
166
- *
167
- * \verbatim image:GetAttributeList() -> data: table of strings [in Lua 5] \endverbatim
168
- * \ingroup imgclass */
169
- void imImageGetAttributeList(const imImage* image, char** attrib, int *attrib_count);
170
-
171
- /** Sets all image data to zero.
172
- *
173
- * \verbatim image:Clear() [in Lua 5] \endverbatim
174
- * \ingroup imgclass */
175
- void imImageClear(imImage* image);
176
-
177
- /** Indicates that the image can be viewed in common graphic devices.
178
- * Data type must be IM_BYTE. Color mode can be IM_RGB, IM_MAP, IM_GRAY or IM_BINARY.
179
- *
180
- * \verbatim image:IsBitmap() -> is_bitmap: boolean [in Lua 5] \endverbatim
181
- * \ingroup imgclass */
182
- int imImageIsBitmap(const imImage* image);
183
-
184
- /** Changes the image palette.
185
- * This will destroy the existing palette and replace it with the given palette buffer.
186
- *
187
- * \verbatim image:SetPalette(palette: imPalette) [in Lua 5] \endverbatim
188
- * \ingroup imgclass */
189
- void imImageSetPalette(imImage* image, long* palette, int palette_count);
190
-
191
- /** Copies the image attributes from src to dst.
192
- *
193
- * \verbatim image:CopyAttributes(dst_image: imImage) [in Lua 5] \endverbatim
194
- * \ingroup imgclass */
195
- void imImageCopyAttributes(const imImage* src_image, imImage* dst_image);
196
-
197
- /** Returns 1 if the images match width and height. Returns 0 otherwise.
198
- *
199
- * \verbatim image:MatchSize(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
200
- * \ingroup imgclass */
201
- int imImageMatchSize(const imImage* image1, const imImage* image2);
202
-
203
- /** Returns 1 if the images match color mode and data type. Returns 0 otherwise.
204
- *
205
- * \verbatim image:MatchColor(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
206
- * \ingroup imgclass */
207
- int imImageMatchColor(const imImage* image1, const imImage* image2);
208
-
209
- /** Returns 1 if the images match width, height and data type. Returns 0 otherwise.
210
- *
211
- * \verbatim image:MatchDataType(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
212
- * \ingroup imgclass */
213
- int imImageMatchDataType(const imImage* image1, const imImage* image2);
214
-
215
- /** Returns 1 if the images match width, height and color space. Returns 0 otherwise.
216
- *
217
- * \verbatim image:MatchColorSpace(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
218
- * \ingroup imgclass */
219
- int imImageMatchColorSpace(const imImage* image1, const imImage* image2);
220
-
221
- /** Returns 1 if the images match in width, height, data type and color space. Returns 0 otherwise.
222
- *
223
- * \verbatim image:Match(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
224
- * \ingroup imgclass */
225
- int imImageMatch(const imImage* image1, const imImage* image2);
226
-
227
- /** Changes the image space from gray to binary by just changing color_space and the palette.
228
- *
229
- * \verbatim image:SetBinary() [in Lua 5] \endverbatim
230
- * \ingroup imgclass */
231
- void imImageSetBinary(imImage* image);
232
-
233
- /** Changes a gray data into a binary data, done in-place.
234
- *
235
- * \verbatim image:MakeBinary() [in Lua 5] \endverbatim
236
- * \ingroup imgclass */
237
- void imImageMakeBinary(imImage *image);
238
-
239
-
240
-
241
- /** \defgroup imgfile imImage Storage
242
- *
243
- * \par
244
- * Functions to simplify the process of reading and writting imImage structures.
245
- * Will also load and save the alpha planes when possible.
246
- * \par
247
- * See \ref im_image.h
248
- * \ingroup file */
249
-
250
-
251
- /** Loads an image from an already open file. Returns NULL if failed. \n
252
- * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
253
- * index specifies the image number between 0 and image_count-1. \n
254
- * The returned image will be of the same color_space and data_type of the image in the file. \n
255
- * Attributes from the file will be stored at the image.
256
- * See also \ref imErrorCodes.
257
- *
258
- * \verbatim ifile:LoadImage([index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
259
- * Default index is 0.
260
- * \ingroup imgfile */
261
- imImage* imFileLoadImage(imFile* ifile, int index, int *error);
262
-
263
- /** Loads an image from an already open file. Returns NULL if failed. \n
264
- * This function assumes that the image in the file has the same parameters as the given image. \n
265
- * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
266
- * index specifies the image number between 0 and image_count-1. \n
267
- * The returned image will be of the same color_space and data_type of the image in the file. \n
268
- * Attributes from the file will be stored at the image.
269
- * See also \ref imErrorCodes.
270
- *
271
- * \verbatim ifile:LoadImageFrame(index: number, image: imImage) -> error: number [in Lua 5] \endverbatim
272
- * Default index is 0.
273
- * \ingroup imgfile */
274
- void imFileLoadImageFrame(imFile* ifile, int index, imImage* image, int *error);
275
-
276
- /** Loads an image from an already open file, but forces the image to be a bitmap.\n
277
- * The returned imagem will be always a Bitmap image, with color_space RGB, MAP, GRAY or BINARY, and data_type IM_BYTE. \n
278
- * index specifies the image number between 0 and image_count-1. \n
279
- * Returns NULL if failed.
280
- * Attributes from the file will be stored at the image.
281
- * See also \ref imErrorCodes.
282
- *
283
- * \verbatim ifile:LoadBitmap([index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
284
- * Default index is 0.
285
- * \ingroup imgfile */
286
- imImage* imFileLoadBitmap(imFile* ifile, int index, int *error);
287
-
288
- /** Loads an image region from an already open file. Returns NULL if failed. \n
289
- * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
290
- * index specifies the image number between 0 and image_count-1. \n
291
- * The returned image will be of the same color_space and data_type of the image in the file,
292
- * or will be a Bitmap image. \n
293
- * Attributes from the file will be stored at the image.
294
- * See also \ref imErrorCodes. \n
295
- * For now works only for ECW file format.
296
- *
297
- * \verbatim ifile:LoadRegion(index, bitmap, xmin, xmax, ymin, ymax, width, height: number) -> image: imImage, error: number [in Lua 5] \endverbatim
298
- * Default index is 0.
299
- * \ingroup imgfile */
300
- imImage* imFileLoadImageRegion(imFile* ifile, int index, int bitmap, int *error,
301
- int xmin, int xmax, int ymin, int ymax, int width, int height);
302
-
303
- /** Loads an image from an already open file, but forces the image to be a bitmap.\n
304
- * This function assumes that the image in the file has the same parameters as the given image. \n
305
- * The imagem must be a Bitmap image, with color_space RGB, MAP, GRAY or BINARY, and data_type IM_BYTE. \n
306
- * index specifies the image number between 0 and image_count-1. \n
307
- * Returns NULL if failed.
308
- * Attributes from the file will be stored at the image.
309
- * See also \ref imErrorCodes.
310
- *
311
- * \verbatim ifile:LoadBitmapFrame(index: number, image: imImage) -> error: number [in Lua 5] \endverbatim
312
- * Default index is 0.
313
- * \ingroup imgfile */
314
- void imFileLoadBitmapFrame(imFile* ifile, int index, imImage* image, int *error);
315
-
316
- /** Saves the image to an already open file. \n
317
- * This will call \ref imFileWriteImageInfo and \ref imFileWriteImageData. \n
318
- * Attributes from the image will be stored at the file.
319
- * Returns error code.
320
- *
321
- * \verbatim ifile:SaveImage(image: imImage) -> error: number [in Lua 5] \endverbatim
322
- * \ingroup imgfile */
323
- int imFileSaveImage(imFile* ifile, const imImage* image);
324
-
325
- /** Loads an image from file. Open, loads and closes the file. \n
326
- * index specifies the image number between 0 and image_count-1. \n
327
- * Returns NULL if failed.
328
- * Attributes from the file will be stored at the image.
329
- * See also \ref imErrorCodes.
330
- *
331
- * \verbatim im.FileImageLoad(file_name: string, [index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
332
- * Default index is 0.
333
- * \ingroup imgfile */
334
- imImage* imFileImageLoad(const char* file_name, int index, int *error);
335
-
336
- /** Loads an image from file, but forces the image to be a bitmap. Open, loads and closes the file. \n
337
- * index specifies the image number between 0 and image_count-1. \n
338
- * Returns NULL if failed.
339
- * Attributes from the file will be stored at the image.
340
- * See also \ref imErrorCodes.
341
- *
342
- * \verbatim im.FileImageLoadBitmap(file_name: string, [index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
343
- * Default index is 0.
344
- * \ingroup imgfile */
345
- imImage* imFileImageLoadBitmap(const char* file_name, int index, int *error);
346
-
347
- /** Loads an image region from file. Open, loads and closes the file. \n
348
- * index specifies the image number between 0 and image_count-1. \n
349
- * Returns NULL if failed.
350
- * Attributes from the file will be stored at the image.
351
- * See also \ref imErrorCodes. \n
352
- * For now works only for ECW file format.
353
- *
354
- * \verbatim im.FileImageLoadRegion(file_name: string, index, bitmap, xmin, xmax, ymin, ymax, width, height: number, ) -> image: imImage, error: number [in Lua 5] \endverbatim
355
- * Default index is 0.
356
- * \ingroup imgfile */
357
- imImage* imFileImageLoadRegion(const char* file_name, int index, int bitmap, int *error,
358
- int xmin, int xmax, int ymin, int ymax, int width, int height);
359
-
360
- /** Saves the image to file. Open, saves and closes the file. \n
361
- * Returns error code. \n
362
- * Attributes from the image will be stored at the file.
363
- *
364
- * \verbatim im.FileImageSave(file_name: string, format: string, image: imImage) -> error: number [in Lua 5] \endverbatim
365
- * \verbatim image:Save(file_name: string, format: string) -> error: number [in Lua 5] \endverbatim
366
- * \ingroup imgfile */
367
- int imFileImageSave(const char* file_name, const char* format, const imImage* image);
368
-
369
-
370
-
371
- /** Utility macro to draw the image in a CD library canvas.
372
- * Works only for data_type IM_BYTE, and color spaces: IM_RGB, IM_MAP, IMGRAY and IM_BINARY.
373
- * \ingroup imgclass */
374
- #define imcdCanvasPutImage(_canvas, _image, _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax) \
375
- { \
376
- if (_image->color_space == IM_RGB) \
377
- { \
378
- if (_image->has_alpha) \
379
- cdCanvasPutImageRectRGBA(_canvas, _image->width, _image->height, \
380
- (unsigned char*)_image->data[0], \
381
- (unsigned char*)_image->data[1], \
382
- (unsigned char*)_image->data[2], \
383
- (unsigned char*)_image->data[3], \
384
- _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
385
- else \
386
- cdCanvasPutImageRectRGB(_canvas, _image->width, _image->height, \
387
- (unsigned char*)_image->data[0], \
388
- (unsigned char*)_image->data[1], \
389
- (unsigned char*)_image->data[2], \
390
- _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
391
- } \
392
- else \
393
- cdCanvasPutImageRectMap(_canvas, _image->width, _image->height, \
394
- (unsigned char*)_image->data[0], _image->palette, \
395
- _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
396
- }
397
-
398
-
399
- #if defined(__cplusplus)
400
- }
401
- #endif
402
-
403
- #endif
1
+ /** \file
2
+ * \brief Image Manipulation
3
+ *
4
+ * See Copyright Notice in im_lib.h
5
+ */
6
+
7
+ #ifndef __IM_IMAGE_H
8
+ #define __IM_IMAGE_H
9
+
10
+ #if defined(__cplusplus)
11
+ extern "C" {
12
+ #endif
13
+
14
+
15
+ /** \defgroup imgclass imImage
16
+ *
17
+ * \par
18
+ * Base definitions and functions for image representation. \n
19
+ * Only the image processing operations depends on these definitions,
20
+ * Image Storage and Image Capture are completely independent.
21
+ * \par
22
+ * You can also initialize a structure with your own memory buffer, see \ref imImageInit.
23
+ * To release the structure without releasing the buffer,
24
+ * set "data[0]" to NULL before calling imImageDestroy.
25
+ * \par
26
+ * See \ref im_image.h
27
+ * \ingroup imagerep */
28
+
29
+
30
+
31
+ /** \brief imImage Structure Definition.
32
+ *
33
+ * \par
34
+ * An image representation than supports all the color spaces,
35
+ * but planes are always unpacked and the orientation is always bottom up.
36
+ * \ingroup imgclass */
37
+ typedef struct _imImage
38
+ {
39
+ /* main parameters */
40
+ int width; /**< Number of columns. image:Width() -> width: number [in Lua 5]. */
41
+ int height; /**< Number of lines. image:Height() -> height: number [in Lua 5]. */
42
+ int color_space; /**< Color space descriptor. See also \ref imColorSpace. image:ColorSpace() -> color_space: number [in Lua 5]. */
43
+ int data_type; /**< Data type descriptor. See also \ref imDataType. image:DataType() -> data_type: number [in Lua 5]. */
44
+ int has_alpha; /**< Indicates that there is an extra channel with alpha. image:HasAlpha() -> has_alpha: number [in Lua 5]. \n
45
+ It will not affect the secondary parameters, i.e. the number of planes will be in fact depth+1. \n
46
+ It is always 0 unless imImageAddAlpha is called, this is done in image load functions. */
47
+
48
+ /* secondary parameters */
49
+ int depth; /**< Number of planes (ColorSpaceDepth) */
50
+ int line_size; /**< Number of bytes per line in one plane (width * DataTypeSize) */
51
+ int plane_size; /**< Number of bytes per plane. (line_size * height) */
52
+ int size; /**< Number of bytes occupied by the image (plane_size * depth) */
53
+ int count; /**< Number of pixels (width * height) */
54
+
55
+ /* image data */
56
+ void** data; /**< Image data organized as a 2D matrix with several planes. \n
57
+ But plane 0 is also a pointer to the full data. \n
58
+ The remaining planes are: data[i] = data[0] + i*plane_size \n
59
+ In Lua, data indexing is possible using: image[plane][row][column] */
60
+
61
+ /* image attributes */
62
+ long *palette; /**< Color palette. image:GetPalette() -> palette: imPalette [in Lua 5]. \n
63
+ Used when depth=1. Otherwise is NULL. */
64
+ int palette_count; /**< The palette is always 256 colors allocated, but can have less colors used. */
65
+
66
+ void* attrib_table; /**< in fact is an imAttribTable, but we hide this here */
67
+ } imImage;
68
+
69
+
70
+ /** Creates a new image.
71
+ * See also \ref imDataType and \ref imColorSpace. Image data is cleared as \ref imImageClear. \n
72
+ * In Lua the IM image metatable name is "imImage".
73
+ * When converted to a string will return "imImage(%p) [width=%d,height=%d,color_space=%s,data_type=%s,depth=%d]" where %p is replaced by the userdata address,
74
+ * and other values are replaced by the respective attributes.
75
+ * If the image is already destroyed by im.ImageDestroy, then it will return also the suffix "-destroyed".
76
+ *
77
+ * \verbatim im.ImageCreate(width: number, height: number, color_space: number, data_type: number) -> image: imImage [in Lua 5] \endverbatim
78
+ * \ingroup imgclass */
79
+ imImage* imImageCreate(int width, int height, int color_space, int data_type);
80
+
81
+ /** Initializes the image structure but does not allocates image data.
82
+ * See also \ref imDataType and \ref imColorSpace.
83
+ * \ingroup imgclass */
84
+ imImage* imImageInit(int width, int height, int color_space, int data_type, void* data_buffer, long* palette, int palette_count);
85
+
86
+ /** Creates a new image based on an existing one. \n
87
+ * If the addicional parameters are -1, the given image parameters are used. \n
88
+ * The image atributes always are copied. HasAlpha is copied.
89
+ * See also \ref imDataType and \ref imColorSpace.
90
+ *
91
+ * \verbatim im.ImageCreateBased(image: imImage, [width: number], [height: number], [color_space: number], [data_type: number]) -> image: imImage [in Lua 5] \endverbatim
92
+ * The addicional parameters in Lua can be nil,
93
+ * and they can also be functions with the based image as a parameter to return the respective value.
94
+ * \ingroup imgclass */
95
+ imImage* imImageCreateBased(const imImage* image, int width, int height, int color_space, int data_type);
96
+
97
+ /** Destroys the image and frees the memory used.
98
+ * image data is destroyed only if its data[0] is not NULL. \n
99
+ * In Lua if this function is not called, the image is destroyed by the garbage collector.
100
+ *
101
+ * \verbatim im.ImageDestroy(image: imImage) [in Lua 5] \endverbatim
102
+ * \verbatim image:Destroy() [in Lua 5] \endverbatim
103
+ * \ingroup imgclass */
104
+ void imImageDestroy(imImage* image);
105
+
106
+ /** Adds an alpha channel plane and sets its value to 0 (transparent).
107
+ *
108
+ * \verbatim image:AddAlpha() [in Lua 5] \endverbatim
109
+ * \ingroup imgclass */
110
+ void imImageAddAlpha(imImage* image);
111
+
112
+ /** Sets the alpha channel plane to a constant.
113
+ *
114
+ * \verbatim image:SetAlpha() [in Lua 5] \endverbatim
115
+ * \ingroup imgclass */
116
+ void imImageSetAlpha(imImage* image, float alpha);
117
+
118
+ /** Changes the buffer size. Reallocate internal buffers if the new size is larger than the original.
119
+ *
120
+ * \verbatim image:Reshape(width: number, height: number) [in Lua 5] \endverbatim
121
+ * \ingroup imgclass */
122
+ void imImageReshape(imImage* image, int width, int height);
123
+
124
+ /** Copy image data and attributes from one image to another. \n
125
+ * Images must have the same size and type.
126
+ *
127
+ * \verbatim image:Copy(dst_image: imImage) [in Lua 5] \endverbatim
128
+ * \ingroup imgclass */
129
+ void imImageCopy(const imImage* src_image, imImage* dst_image);
130
+
131
+ /** Copy image data only fom one image to another. \n
132
+ * Images must have the same size and type.
133
+ *
134
+ * \verbatim image:CopyData(dst_image: imImage) [in Lua 5] \endverbatim
135
+ * \ingroup imgclass */
136
+ void imImageCopyData(const imImage* src_image, imImage* dst_image);
137
+
138
+ /** Copies the image attributes from src to dst.
139
+ * Includes the pallete when a MAP or GRAY image.
140
+ *
141
+ * \verbatim image:CopyAttributes(dst_image: imImage) [in Lua 5] \endverbatim
142
+ * \ingroup imgclass */
143
+ void imImageCopyAttributes(const imImage* src_image, imImage* dst_image);
144
+
145
+ /** Copy one image plane fom one image to another. \n
146
+ * Images must have the same size and type.
147
+ *
148
+ * \verbatim image:CopyPlane(src_plane: number, dst_image: imImage, dst_plane: number) [in Lua 5] \endverbatim
149
+ * \ingroup imgclass */
150
+ void imImageCopyPlane(const imImage* src_image, int src_plane, imImage* dst_image, int dst_plane);
151
+
152
+ /** Creates a copy of the image.
153
+ *
154
+ * \verbatim image:Duplicate() -> new_image: imImage [in Lua 5] \endverbatim
155
+ * \ingroup imgclass */
156
+ imImage* imImageDuplicate(const imImage* image);
157
+
158
+ /** Creates a clone of the image. i.e. same attributes but ignore contents.
159
+ *
160
+ * \verbatim image:Clone() -> new_image: imImage [in Lua 5] \endverbatim
161
+ * \ingroup imgclass */
162
+ imImage* imImageClone(const imImage* image);
163
+
164
+ /** Changes an extended attribute. \n
165
+ * The data will be internally duplicated. \n
166
+ * If data is NULL and count==0 the attribute is removed. \n
167
+ * If count is -1 and data_type is IM_BYTE then data is zero terminated.
168
+ * See also \ref imDataType.
169
+ *
170
+ * \verbatim image:SetAttribute(attrib: string, data_type: number, data: table of numbers or string) [in Lua 5] \endverbatim
171
+ * If data_type is IM_BYTE, as_string can be used as data.
172
+ * \ingroup imgclass */
173
+ void imImageSetAttribute(const imImage* image, const char* attrib, int data_type, int count, const void* data);
174
+
175
+ /** Returns an extended attribute. \n
176
+ * Returns NULL if not found.
177
+ * See also \ref imDataType.
178
+ *
179
+ * \verbatim image:GetAttribute(attrib: string, [as_string: boolean]) -> data: table of numbers or string, data_type: number [in Lua 5] \endverbatim
180
+ * If data_type is IM_BYTE, as_string can be used to return a string instead of a table.
181
+ * \ingroup imgclass */
182
+ const void* imImageGetAttribute(const imImage* image, const char* attrib, int *data_type, int *count);
183
+
184
+ /** Returns a list of the attribute names. \n
185
+ * "attrib" must contain room enough for "attrib_count" names. Use "attrib=NULL" to return only the count.
186
+ *
187
+ * \verbatim image:GetAttributeList() -> data: table of strings [in Lua 5] \endverbatim
188
+ * \ingroup imgclass */
189
+ void imImageGetAttributeList(const imImage* image, char** attrib, int *attrib_count);
190
+
191
+ /** Sets all image data to zero. But if color space is YCBCR, LAB or LUV, and data type is BYTE or USHORT, then
192
+ * data is initialized with 128 or 32768 accordingly. Alpha is initialized as transparent (0).
193
+ *
194
+ * \verbatim image:Clear() [in Lua 5] \endverbatim
195
+ * \ingroup imgclass */
196
+ void imImageClear(imImage* image);
197
+
198
+ /** Indicates that the image can be viewed in common graphic devices.
199
+ * Data type must be IM_BYTE. Color mode can be IM_RGB, IM_MAP, IM_GRAY or IM_BINARY.
200
+ *
201
+ * \verbatim image:IsBitmap() -> is_bitmap: boolean [in Lua 5] \endverbatim
202
+ * \ingroup imgclass */
203
+ int imImageIsBitmap(const imImage* image);
204
+
205
+ /** Changes the image palette.
206
+ * This will destroy the existing palette and replace it with the given palette pointer.
207
+ * Only the pointer is stored, so the palette should be a new palette and it can not be a static array.
208
+ *
209
+ * \verbatim image:SetPalette(palette: imPalette) [in Lua 5] \endverbatim
210
+ * \ingroup imgclass */
211
+ void imImageSetPalette(imImage* image, long* palette, int palette_count);
212
+
213
+ /** Returns 1 if the images match width and height. Returns 0 otherwise.
214
+ *
215
+ * \verbatim image:MatchSize(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
216
+ * \ingroup imgclass */
217
+ int imImageMatchSize(const imImage* image1, const imImage* image2);
218
+
219
+ /** Returns 1 if the images match color mode and data type. Returns 0 otherwise.
220
+ *
221
+ * \verbatim image:MatchColor(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
222
+ * \ingroup imgclass */
223
+ int imImageMatchColor(const imImage* image1, const imImage* image2);
224
+
225
+ /** Returns 1 if the images match width, height and data type. Returns 0 otherwise.
226
+ *
227
+ * \verbatim image:MatchDataType(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
228
+ * \ingroup imgclass */
229
+ int imImageMatchDataType(const imImage* image1, const imImage* image2);
230
+
231
+ /** Returns 1 if the images match width, height and color space. Returns 0 otherwise.
232
+ *
233
+ * \verbatim image:MatchColorSpace(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
234
+ * \ingroup imgclass */
235
+ int imImageMatchColorSpace(const imImage* image1, const imImage* image2);
236
+
237
+ /** Returns 1 if the images match in width, height, data type and color space. Returns 0 otherwise.
238
+ *
239
+ * \verbatim image:Match(image2: imImage) -> match: boolean [in Lua 5] \endverbatim
240
+ * \ingroup imgclass */
241
+ int imImageMatch(const imImage* image1, const imImage* image2);
242
+
243
+ /** Changes the image color space from gray to binary by just changing color_space and the palette.
244
+ *
245
+ * \verbatim image:SetBinary() [in Lua 5] \endverbatim
246
+ * \ingroup imgclass */
247
+ void imImageSetBinary(imImage* image);
248
+
249
+ /** Changes a gray BYTE data (0,255) into a binary data (0,1), done in-place. Color space is not changed.
250
+ *
251
+ * \verbatim image:MakeBinary() [in Lua 5] \endverbatim
252
+ * \ingroup imgclass */
253
+ void imImageMakeBinary(imImage *image);
254
+
255
+ /** Changes a binary data (0,1) into a gray BYTE data (0,255), done in-place. Color space is not changed.
256
+ *
257
+ * \verbatim image:MakeGray() [in Lua 5] \endverbatim
258
+ * \ingroup imgclass */
259
+ void imImageMakeGray(imImage *image);
260
+
261
+
262
+
263
+ /** \defgroup imgfile imImage Storage
264
+ *
265
+ * \par
266
+ * Functions to simplify the process of reading and writting imImage structures.
267
+ * Will also load and save the alpha planes when possible.
268
+ * \par
269
+ * See \ref im_image.h
270
+ * \ingroup file */
271
+
272
+
273
+ /** Loads an image from an already open file. Returns NULL if failed. \n
274
+ * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
275
+ * index specifies the image number between 0 and image_count-1. \n
276
+ * The returned image will be of the same color_space and data_type of the image in the file. \n
277
+ * Attributes from the file will be stored at the image.
278
+ * See also \ref imErrorCodes.
279
+ *
280
+ * \verbatim ifile:LoadImage([index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
281
+ * Default index is 0.
282
+ * \ingroup imgfile */
283
+ imImage* imFileLoadImage(imFile* ifile, int index, int *error);
284
+
285
+ /** Loads an image from an already open file. Returns NULL if failed. \n
286
+ * This function assumes that the image in the file has the same parameters as the given image. \n
287
+ * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
288
+ * index specifies the image number between 0 and image_count-1. \n
289
+ * The returned image will be of the same color_space and data_type of the image in the file. \n
290
+ * Attributes from the file will be stored at the image.
291
+ * See also \ref imErrorCodes.
292
+ *
293
+ * \verbatim ifile:LoadImageFrame(index: number, image: imImage) -> error: number [in Lua 5] \endverbatim
294
+ * Default index is 0.
295
+ * \ingroup imgfile */
296
+ void imFileLoadImageFrame(imFile* ifile, int index, imImage* image, int *error);
297
+
298
+ /** Loads an image from an already open file, but forces the image to be a bitmap.\n
299
+ * The returned imagem will be always a Bitmap image, with color_space RGB, MAP, GRAY or BINARY, and data_type IM_BYTE. \n
300
+ * index specifies the image number between 0 and image_count-1. \n
301
+ * Returns NULL if failed.
302
+ * Attributes from the file will be stored at the image.
303
+ * See also \ref imErrorCodes.
304
+ *
305
+ * \verbatim ifile:LoadBitmap([index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
306
+ * Default index is 0.
307
+ * \ingroup imgfile */
308
+ imImage* imFileLoadBitmap(imFile* ifile, int index, int *error);
309
+
310
+ /** Loads an image region from an already open file. Returns NULL if failed. \n
311
+ * This will call \ref imFileReadImageInfo and \ref imFileReadImageData. \n
312
+ * index specifies the image number between 0 and image_count-1. \n
313
+ * The returned image will be of the same color_space and data_type of the image in the file,
314
+ * or will be a Bitmap image. \n
315
+ * Attributes from the file will be stored at the image.
316
+ * See also \ref imErrorCodes. \n
317
+ * For now, it works only for the ECW file format.
318
+ *
319
+ * \verbatim ifile:LoadRegion(index, bitmap, xmin, xmax, ymin, ymax, width, height: number) -> image: imImage, error: number [in Lua 5] \endverbatim
320
+ * Default index is 0.
321
+ * \ingroup imgfile */
322
+ imImage* imFileLoadImageRegion(imFile* ifile, int index, int bitmap, int *error,
323
+ int xmin, int xmax, int ymin, int ymax, int width, int height);
324
+
325
+ /** Loads an image from an already open file, but forces the image to be a bitmap.\n
326
+ * This function assumes that the image in the file has the same parameters as the given image. \n
327
+ * The imagem must be a Bitmap image, with color_space RGB, MAP, GRAY or BINARY, and data_type IM_BYTE. \n
328
+ * index specifies the image number between 0 and image_count-1. \n
329
+ * Returns NULL if failed.
330
+ * Attributes from the file will be stored at the image.
331
+ * See also \ref imErrorCodes.
332
+ *
333
+ * \verbatim ifile:LoadBitmapFrame(index: number, image: imImage) -> error: number [in Lua 5] \endverbatim
334
+ * Default index is 0.
335
+ * \ingroup imgfile */
336
+ void imFileLoadBitmapFrame(imFile* ifile, int index, imImage* image, int *error);
337
+
338
+ /** Saves the image to an already open file. \n
339
+ * This will call \ref imFileWriteImageInfo and \ref imFileWriteImageData. \n
340
+ * Attributes from the image will be stored at the file.
341
+ * Returns error code.
342
+ *
343
+ * \verbatim ifile:SaveImage(image: imImage) -> error: number [in Lua 5] \endverbatim
344
+ * \ingroup imgfile */
345
+ int imFileSaveImage(imFile* ifile, const imImage* image);
346
+
347
+ /** Loads an image from file. Open, loads and closes the file. \n
348
+ * index specifies the image number between 0 and image_count-1. \n
349
+ * Returns NULL if failed.
350
+ * Attributes from the file will be stored at the image.
351
+ * See also \ref imErrorCodes.
352
+ *
353
+ * \verbatim im.FileImageLoad(file_name: string, [index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
354
+ * Default index is 0.
355
+ * \ingroup imgfile */
356
+ imImage* imFileImageLoad(const char* file_name, int index, int *error);
357
+
358
+ /** Loads an image from file, but forces the image to be a bitmap. Open, loads and closes the file. \n
359
+ * index specifies the image number between 0 and image_count-1. \n
360
+ * Returns NULL if failed.
361
+ * Attributes from the file will be stored at the image.
362
+ * See also \ref imErrorCodes.
363
+ *
364
+ * \verbatim im.FileImageLoadBitmap(file_name: string, [index: number]) -> image: imImage, error: number [in Lua 5] \endverbatim
365
+ * Default index is 0.
366
+ * \ingroup imgfile */
367
+ imImage* imFileImageLoadBitmap(const char* file_name, int index, int *error);
368
+
369
+ /** Loads an image region from file. Open, loads and closes the file. \n
370
+ * index specifies the image number between 0 and image_count-1. \n
371
+ * Returns NULL if failed.
372
+ * Attributes from the file will be stored at the image.
373
+ * See also \ref imErrorCodes. \n
374
+ * For now, it works only for the ECW file format.
375
+ *
376
+ * \verbatim im.FileImageLoadRegion(file_name: string, index, bitmap, xmin, xmax, ymin, ymax, width, height: number, ) -> image: imImage, error: number [in Lua 5] \endverbatim
377
+ * Default index is 0.
378
+ * \ingroup imgfile */
379
+ imImage* imFileImageLoadRegion(const char* file_name, int index, int bitmap, int *error,
380
+ int xmin, int xmax, int ymin, int ymax, int width, int height);
381
+
382
+ /** Saves the image to file. Open, saves and closes the file. \n
383
+ * Returns error code. \n
384
+ * Attributes from the image will be stored at the file.
385
+ *
386
+ * \verbatim im.FileImageSave(file_name: string, format: string, image: imImage) -> error: number [in Lua 5] \endverbatim
387
+ * \verbatim image:Save(file_name: string, format: string) -> error: number [in Lua 5] \endverbatim
388
+ * \ingroup imgfile */
389
+ int imFileImageSave(const char* file_name, const char* format, const imImage* image);
390
+
391
+
392
+
393
+ /** Utility macro to draw the image in a CD library canvas.
394
+ * Works only for data_type IM_BYTE, and color spaces: IM_RGB, IM_MAP, IMGRAY and IM_BINARY.
395
+ * \ingroup imgclass */
396
+ #define imcdCanvasPutImage(_canvas, _image, _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax) \
397
+ { \
398
+ if (_image->color_space == IM_RGB) \
399
+ { \
400
+ if (_image->has_alpha) \
401
+ cdCanvasPutImageRectRGBA(_canvas, _image->width, _image->height, \
402
+ (unsigned char*)_image->data[0], \
403
+ (unsigned char*)_image->data[1], \
404
+ (unsigned char*)_image->data[2], \
405
+ (unsigned char*)_image->data[3], \
406
+ _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
407
+ else \
408
+ cdCanvasPutImageRectRGB(_canvas, _image->width, _image->height, \
409
+ (unsigned char*)_image->data[0], \
410
+ (unsigned char*)_image->data[1], \
411
+ (unsigned char*)_image->data[2], \
412
+ _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
413
+ } \
414
+ else \
415
+ cdCanvasPutImageRectMap(_canvas, _image->width, _image->height, \
416
+ (unsigned char*)_image->data[0], _image->palette, \
417
+ _x, _y, _w, _h, _xmin, _xmax, _ymin, _ymax); \
418
+ }
419
+
420
+
421
+ #if defined(__cplusplus)
422
+ }
423
+ #endif
424
+
425
+ #endif