/src/GFX/ImageFilter.xs

http://github.com/PerlGameDev/SDL · Unknown · 485 lines · 432 code · 53 blank · 0 comment · 0 complexity · 134eca0a20c5fe983b4b22451038f101 MD5 · raw file

  1. #include "EXTERN.h"
  2. #include "perl.h"
  3. #include "XSUB.h"
  4. #include "ppport.h"
  5. #ifndef aTHX_
  6. #define aTHX_
  7. #endif
  8. #include <SDL.h>
  9. #ifdef HAVE_SDL_GFX_IMAGEFILTER
  10. #include <SDL_imageFilter.h>
  11. #endif
  12. MODULE = SDL::GFX::ImageFilter PACKAGE = SDL::GFX::ImageFilter PREFIX = gfx_image_
  13. =for documentation
  14. The Following are XS bindings to the SDL_gfx Library
  15. Described here:
  16. See: L<http:/*www.ferzkopp.net/joomla/content/view/19/14/> */
  17. =cut
  18. #ifdef HAVE_SDL_GFX_IMAGEFILTER
  19. int
  20. gfx_image_MMX_detect()
  21. CODE:
  22. RETVAL = SDL_imageFilterMMXdetect();
  23. OUTPUT:
  24. RETVAL
  25. void
  26. gfx_image_MMX_off()
  27. CODE:
  28. SDL_imageFilterMMXoff();
  29. void
  30. gfx_image_MMX_on()
  31. CODE:
  32. SDL_imageFilterMMXon();
  33. int
  34. gfx_image_add(Src1, Src2, Dest, length)
  35. unsigned char *Src1
  36. unsigned char *Src2
  37. unsigned char *Dest
  38. int length
  39. CODE:
  40. RETVAL = SDL_imageFilterAdd(Src1, Src2, Dest, length);
  41. OUTPUT:
  42. RETVAL
  43. int
  44. gfx_image_mean(Src1, Src2, Dest, length)
  45. unsigned char *Src1
  46. unsigned char *Src2
  47. unsigned char *Dest
  48. int length
  49. CODE:
  50. RETVAL = SDL_imageFilterMean(Src1, Src2, Dest, length);
  51. OUTPUT:
  52. RETVAL
  53. int
  54. gfx_image_sub(Src1, Src2, Dest, length)
  55. unsigned char *Src1
  56. unsigned char *Src2
  57. unsigned char *Dest
  58. int length
  59. CODE:
  60. RETVAL = SDL_imageFilterSub(Src1, Src2, Dest, length);
  61. OUTPUT:
  62. RETVAL
  63. int
  64. gfx_image_abs_diff(Src1, Src2, Dest, length)
  65. unsigned char *Src1
  66. unsigned char *Src2
  67. unsigned char *Dest
  68. int length
  69. CODE:
  70. RETVAL = SDL_imageFilterAbsDiff(Src1, Src2, Dest, length);
  71. OUTPUT:
  72. RETVAL
  73. int
  74. gfx_image_mult(Src1, Src2, Dest, length)
  75. unsigned char *Src1
  76. unsigned char *Src2
  77. unsigned char *Dest
  78. int length
  79. CODE:
  80. RETVAL = SDL_imageFilterMult(Src1, Src2, Dest, length);
  81. OUTPUT:
  82. RETVAL
  83. int
  84. gfx_image_mult_nor(Src1, Src2, Dest, length)
  85. unsigned char *Src1
  86. unsigned char *Src2
  87. unsigned char *Dest
  88. int length
  89. CODE:
  90. RETVAL = SDL_imageFilterMultNor(Src1, Src2, Dest, length);
  91. OUTPUT:
  92. RETVAL
  93. int
  94. gfx_image_mult_div_by_2(Src1, Src2, Dest, length)
  95. unsigned char *Src1
  96. unsigned char *Src2
  97. unsigned char *Dest
  98. int length
  99. CODE:
  100. RETVAL = SDL_imageFilterMultDivby2(Src1, Src2, Dest, length);
  101. OUTPUT:
  102. RETVAL
  103. int
  104. gfx_image_mult_div_by_4(Src1, Src2, Dest, length)
  105. unsigned char *Src1
  106. unsigned char *Src2
  107. unsigned char *Dest
  108. int length
  109. CODE:
  110. RETVAL = SDL_imageFilterMultDivby4(Src1, Src2, Dest, length);
  111. OUTPUT:
  112. RETVAL
  113. int
  114. gfx_image_bit_and(Src1, Src2, Dest, length)
  115. unsigned char *Src1
  116. unsigned char *Src2
  117. unsigned char *Dest
  118. int length
  119. CODE:
  120. RETVAL = SDL_imageFilterBitAnd(Src1, Src2, Dest, length);
  121. OUTPUT:
  122. RETVAL
  123. int
  124. gfx_image_bit_or(Src1, Src2, Dest, length)
  125. unsigned char *Src1
  126. unsigned char *Src2
  127. unsigned char *Dest
  128. int length
  129. CODE:
  130. RETVAL = SDL_imageFilterBitOr(Src1, Src2, Dest, length);
  131. OUTPUT:
  132. RETVAL
  133. int
  134. gfx_image_div(Src1, Src2, Dest, length)
  135. unsigned char *Src1
  136. unsigned char *Src2
  137. unsigned char *Dest
  138. int length
  139. CODE:
  140. RETVAL = SDL_imageFilterDiv(Src1, Src2, Dest, length);
  141. OUTPUT:
  142. RETVAL
  143. int
  144. gfx_image_bit_negation(Src1, Dest, length)
  145. unsigned char *Src1
  146. unsigned char *Dest
  147. int length
  148. CODE:
  149. RETVAL = SDL_imageFilterBitNegation(Src1, Dest, length);
  150. OUTPUT:
  151. RETVAL
  152. int
  153. gfx_image_add_byte(Src1, Dest, length, C)
  154. unsigned char *Src1
  155. unsigned char *Dest
  156. int length
  157. unsigned char C
  158. CODE:
  159. RETVAL = SDL_imageFilterAddByte(Src1, Dest, length, C);
  160. OUTPUT:
  161. RETVAL
  162. int
  163. gfx_image_add_uint(Src1, Dest, length, C)
  164. unsigned char *Src1
  165. unsigned char *Dest
  166. int length
  167. unsigned int C
  168. CODE:
  169. RETVAL = SDL_imageFilterAddUint(Src1, Dest, length, C);
  170. OUTPUT:
  171. RETVAL
  172. int
  173. gfx_image_add_byte_to_half(Src1, Dest, length, C)
  174. unsigned char *Src1
  175. unsigned char *Dest
  176. int length
  177. unsigned char C
  178. CODE:
  179. RETVAL = SDL_imageFilterAddByteToHalf(Src1, Dest, length, C);
  180. OUTPUT:
  181. RETVAL
  182. int
  183. gfx_image_sub_byte(Src1, Dest, length, C)
  184. unsigned char *Src1
  185. unsigned char *Dest
  186. int length
  187. unsigned char C
  188. CODE:
  189. RETVAL = SDL_imageFilterSubByte(Src1, Dest, length, C);
  190. OUTPUT:
  191. RETVAL
  192. int
  193. gfx_image_sub_uint(Src1, Dest, length, C)
  194. unsigned char *Src1
  195. unsigned char *Dest
  196. int length
  197. unsigned int C
  198. CODE:
  199. RETVAL = SDL_imageFilterSubUint(Src1, Dest, length, C);
  200. OUTPUT:
  201. RETVAL
  202. int
  203. gfx_image_shift_right(Src1, Dest, length, N)
  204. unsigned char *Src1
  205. unsigned char *Dest
  206. int length
  207. unsigned char N
  208. CODE:
  209. RETVAL = SDL_imageFilterShiftRight(Src1, Dest, length, N);
  210. OUTPUT:
  211. RETVAL
  212. int
  213. gfx_image_shift_right_uint(Src1, Dest, length, N)
  214. unsigned char *Src1
  215. unsigned char *Dest
  216. int length
  217. unsigned char N
  218. CODE:
  219. RETVAL = SDL_imageFilterShiftRightUint(Src1, Dest, length, N);
  220. OUTPUT:
  221. RETVAL
  222. int
  223. gfx_image_mult_by_byte(Src1, Dest, length, C)
  224. unsigned char *Src1
  225. unsigned char *Dest
  226. int length
  227. unsigned char C
  228. CODE:
  229. RETVAL = SDL_imageFilterMultByByte(Src1, Dest, length, C);
  230. OUTPUT:
  231. RETVAL
  232. int
  233. gfx_image_shift_right_and_mult_by_byte(Src1, Dest, length, N, C)
  234. unsigned char *Src1
  235. unsigned char *Dest
  236. int length
  237. unsigned char N
  238. unsigned char C
  239. CODE:
  240. RETVAL = SDL_imageFilterShiftRightAndMultByByte(Src1, Dest, length, N, C);
  241. OUTPUT:
  242. RETVAL
  243. int
  244. gfx_image_shift_left_byte(Src1, Dest, length, N)
  245. unsigned char *Src1
  246. unsigned char *Dest
  247. int length
  248. unsigned char N
  249. CODE:
  250. RETVAL = SDL_imageFilterShiftLeftByte(Src1, Dest, length, N);
  251. OUTPUT:
  252. RETVAL
  253. int
  254. gfx_image_shift_left_uint(Src1, Dest, length, N)
  255. unsigned char *Src1
  256. unsigned char *Dest
  257. int length
  258. unsigned char N
  259. CODE:
  260. RETVAL = SDL_imageFilterShiftLeftUint(Src1, Dest, length, N);
  261. OUTPUT:
  262. RETVAL
  263. int
  264. gfx_image_shift_left(Src1, Dest, length, N)
  265. unsigned char *Src1
  266. unsigned char *Dest
  267. int length
  268. unsigned char N
  269. CODE:
  270. RETVAL = SDL_imageFilterShiftLeft(Src1, Dest, length, N);
  271. OUTPUT:
  272. RETVAL
  273. int
  274. gfx_image_binarize_using_threshold(Src1, Dest, length, T)
  275. unsigned char *Src1
  276. unsigned char *Dest
  277. int length
  278. unsigned char T
  279. CODE:
  280. RETVAL = SDL_imageFilterBinarizeUsingThreshold(Src1, Dest, length, T);
  281. OUTPUT:
  282. RETVAL
  283. int
  284. gfx_image_clip_to_range(Src1, Dest, length, Tmin, Tmax)
  285. unsigned char *Src1
  286. unsigned char *Dest
  287. int length
  288. unsigned char Tmin
  289. unsigned char Tmax
  290. CODE:
  291. RETVAL = SDL_imageFilterClipToRange(Src1, Dest, length, Tmin, Tmax);
  292. OUTPUT:
  293. RETVAL
  294. int
  295. gfx_image_normalize_linear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax)
  296. unsigned char *Src1
  297. unsigned char *Dest
  298. int length
  299. int Cmin
  300. int Cmax
  301. int Nmin
  302. int Nmax
  303. CODE:
  304. RETVAL = SDL_imageFilterNormalizeLinear(Src1, Dest, length, Cmin, Cmax, Nmin, Nmax);
  305. OUTPUT:
  306. RETVAL
  307. int
  308. gfx_image_convolve_kernel_3x3_divide(Src, Dest, rows, columns, Kernel, Divisor)
  309. unsigned char *Src
  310. unsigned char *Dest
  311. int rows
  312. int columns
  313. Sint16 *Kernel
  314. unsigned char Divisor
  315. CODE:
  316. RETVAL = SDL_imageFilterConvolveKernel3x3Divide(Src, Dest, rows, columns, Kernel, Divisor);
  317. OUTPUT:
  318. RETVAL
  319. int
  320. gfx_image_convolve_kernel_5x5_divide(Src, Dest, rows, columns, Kernel, Divisor)
  321. unsigned char *Src
  322. unsigned char *Dest
  323. int rows
  324. int columns
  325. Sint16 *Kernel
  326. unsigned char Divisor
  327. CODE:
  328. RETVAL = SDL_imageFilterConvolveKernel5x5Divide(Src, Dest, rows, columns, Kernel, Divisor);
  329. OUTPUT:
  330. RETVAL
  331. int
  332. gfx_image_convolve_kernel_7x7_divide(Src, Dest, rows, columns, Kernel, Divisor)
  333. unsigned char *Src
  334. unsigned char *Dest
  335. int rows
  336. int columns
  337. Sint16 *Kernel
  338. unsigned char Divisor
  339. CODE:
  340. RETVAL = SDL_imageFilterConvolveKernel7x7Divide(Src, Dest, rows, columns, Kernel, Divisor);
  341. OUTPUT:
  342. RETVAL
  343. int
  344. gfx_image_convolve_kernel_9x9_divide(Src, Dest, rows, columns, Kernel, Divisor)
  345. unsigned char *Src
  346. unsigned char *Dest
  347. int rows
  348. int columns
  349. Sint16 *Kernel
  350. unsigned char Divisor
  351. CODE:
  352. RETVAL = SDL_imageFilterConvolveKernel9x9Divide(Src, Dest, rows, columns, Kernel, Divisor);
  353. OUTPUT:
  354. RETVAL
  355. int
  356. gfx_image_convolve_kernel_3x3_shift_right(Src, Dest, rows, columns, Kernel, NRightShift)
  357. unsigned char *Src
  358. unsigned char *Dest
  359. int rows
  360. int columns
  361. Sint16 *Kernel
  362. unsigned char NRightShift
  363. CODE:
  364. RETVAL = SDL_imageFilterConvolveKernel3x3ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift);
  365. OUTPUT:
  366. RETVAL
  367. int
  368. gfx_image_convolve_kernel_5x5_shift_right(Src, Dest, rows, columns, Kernel, NRightShift)
  369. unsigned char *Src
  370. unsigned char *Dest
  371. int rows
  372. int columns
  373. Sint16 *Kernel
  374. unsigned char NRightShift
  375. CODE:
  376. RETVAL = SDL_imageFilterConvolveKernel5x5ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift);
  377. OUTPUT:
  378. RETVAL
  379. int
  380. gfx_image_convolve_kernel_7x7_shift_right(Src, Dest, rows, columns, Kernel, NRightShift)
  381. unsigned char *Src
  382. unsigned char *Dest
  383. int rows
  384. int columns
  385. Sint16 *Kernel
  386. unsigned char NRightShift
  387. CODE:
  388. RETVAL = SDL_imageFilterConvolveKernel7x7ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift);
  389. OUTPUT:
  390. RETVAL
  391. int
  392. gfx_image_convolve_kernel_9x9_shift_right(Src, Dest, rows, columns, Kernel, NRightShift)
  393. unsigned char *Src
  394. unsigned char *Dest
  395. int rows
  396. int columns
  397. Sint16 *Kernel
  398. unsigned char NRightShift
  399. CODE:
  400. RETVAL = SDL_imageFilterConvolveKernel9x9ShiftRight(Src, Dest, rows, columns, Kernel, NRightShift);
  401. OUTPUT:
  402. RETVAL
  403. int
  404. gfx_image_sobel_x(Src, Dest, rows, columns)
  405. unsigned char *Src
  406. unsigned char *Dest
  407. int rows
  408. int columns
  409. CODE:
  410. RETVAL = SDL_imageFilterSobelX(Src, Dest, rows, columns);
  411. OUTPUT:
  412. RETVAL
  413. int
  414. gfx_image_sobel_x_shift_right(Src, Dest, rows, columns, NRightShift)
  415. unsigned char *Src
  416. unsigned char *Dest
  417. int rows
  418. int columns
  419. unsigned char NRightShift
  420. CODE:
  421. RETVAL = SDL_imageFilterSobelXShiftRight(Src, Dest, rows, columns, NRightShift);
  422. OUTPUT:
  423. RETVAL
  424. void
  425. gfx_image_align_stack()
  426. CODE:
  427. SDL_imageFilterAlignStack();
  428. void
  429. gfx_image_restore_stack()
  430. CODE:
  431. SDL_imageFilterRestoreStack();
  432. #endif