ruby-iup 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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