PageRenderTime 49ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/src/FreeImage/Source/LibMNG/libmng_pixels.h

https://bitbucket.org/cabalistic/ogredeps/
C++ Header | 1147 lines | 881 code | 62 blank | 204 comment | 1 complexity | 2cc989fb67b6b5cc96c1f1af4fe40e89 MD5 | raw file
Possible License(s): LGPL-3.0, BSD-3-Clause, CPL-1.0, Unlicense, GPL-2.0, GPL-3.0, LGPL-2.0, MPL-2.0-no-copyleft-exception, BSD-2-Clause, LGPL-2.1
  1. /* ************************************************************************** */
  2. /* * For conditions of distribution and use, * */
  3. /* * see copyright notice in libmng.h * */
  4. /* ************************************************************************** */
  5. /* * * */
  6. /* * project : libmng * */
  7. /* * file : libmng_pixels.h copyright (c) 2000-2006 G.Juyn * */
  8. /* * version : 1.0.10 * */
  9. /* * * */
  10. /* * purpose : Pixel-row management routines (definition) * */
  11. /* * * */
  12. /* * author : G.Juyn * */
  13. /* * * */
  14. /* * comment : Definition of the pixel-row management routines * */
  15. /* * * */
  16. /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */
  17. /* * - changed strict-ANSI stuff * */
  18. /* * * */
  19. /* * 0.5.2 - 05/22/2000 - G.Juyn * */
  20. /* * - added some JNG definitions * */
  21. /* * - added delta-image row-processing routines * */
  22. /* * 0.5.2 - 06/05/2000 - G.Juyn * */
  23. /* * - added support for RGB8_A8 canvasstyle * */
  24. /* * * */
  25. /* * 0.5.3 - 06/16/2000 - G.Juyn * */
  26. /* * - changed progressive-display processing * */
  27. /* * * */
  28. /* * 0.9.2 - 08/05/2000 - G.Juyn * */
  29. /* * - changed file-prefixes * */
  30. /* * * */
  31. /* * 0.9.3 - 08/26/2000 - G.Juyn * */
  32. /* * - added MAGN support * */
  33. /* * 0.9.3 - 09/07/2000 - G.Juyn * */
  34. /* * - added support for new filter_types * */
  35. /* * 0.9.3 - 10/16/2000 - G.Juyn * */
  36. /* * - added optional support for bKGD for PNG images * */
  37. /* * - added support for JDAA * */
  38. /* * 0.9.3 - 10/19/2000 - G.Juyn * */
  39. /* * - implemented delayed delta-processing * */
  40. /* * * */
  41. /* * 0.9.4 - 1/18/2001 - G.Juyn * */
  42. /* * - added "new" MAGN methods 3, 4 & 5 * */
  43. /* * * */
  44. /* * 1.0.1 - 04/21/2001 - G.Juyn (code by G.Kelly) * */
  45. /* * - added BGRA8 canvas with premultiplied alpha * */
  46. /* * * */
  47. /* * 1.0.5 - 08/15/2002 - G.Juyn * */
  48. /* * - completed PROM support * */
  49. /* * - completed delta-image support * */
  50. /* * 1.0.5 - 08/16/2002 - G.Juyn * */
  51. /* * - completed MAGN support (16-bit functions) * */
  52. /* * 1.0.5 - 08/19/2002 - G.Juyn * */
  53. /* * - B597134 - libmng pollutes the linker namespace * */
  54. /* * 1.0.5 - 09/22/2002 - G.Juyn * */
  55. /* * - added bgrx8 canvas (filler byte) * */
  56. /* * 1.0.5 - 09/23/2002 - G.Juyn * */
  57. /* * - added compose over/under routines for PAST processing * */
  58. /* * - added flip & tile routines for PAST processing * */
  59. /* * * */
  60. /* * 1.0.6 - 03/09/2003 - G.Juyn * */
  61. /* * - hiding 12-bit JPEG stuff * */
  62. /* * 1.0.6 - 05/11/2003 - G. Juyn * */
  63. /* * - added conditionals around canvas update routines * */
  64. /* * 1.0.6 - 06/09/2003 - G. R-P * */
  65. /* * - added conditionals around 8-bit magn routines * */
  66. /* * 1.0.6 - 07/07/2003 - G. R-P * */
  67. /* * - removed conditionals around 8-bit magn routines * */
  68. /* * - added conditionals around 16-bit and delta-PNG * */
  69. /* * supporting code * */
  70. /* * 1.0.6 - 07/29/2003 - G.R-P * */
  71. /* * - added SKIPCHUNK conditionals around PAST chunk support * */
  72. /* * 1.0.6 - 08/18/2003 - G.R-P * */
  73. /* * - added conditionals around 1, 2, and 4-bit prototypes * */
  74. /* * * */
  75. /* * 1.0.7 - 11/27/2003 - R.A * */
  76. /* * - added CANVAS_RGB565 and CANVAS_BGR565 * */
  77. /* * 1.0.7 - 12/06/2003 - R.A * */
  78. /* * - added CANVAS_RGBA565 and CANVAS_BGRA565 * */
  79. /* * 1.0.7 - 01/25/2004 - J.S * */
  80. /* * - added premultiplied alpha canvas' for RGBA, ARGB, ABGR * */
  81. /* * * */
  82. /* * 1.0.9 - 10/10/2004 - G.R-P. * */
  83. /* * - added MNG_NO_1_2_4BIT_SUPPORT * */
  84. /* * 1.0.9 - 10/14/2004 - G.Juyn * */
  85. /* * - added bgr565_a8 canvas-style (thanks to J. Elvander) * */
  86. /* * * */
  87. /* * 1.0.10 - 03/07/2006 - (thanks to W. Manthey) * */
  88. /* * - added CANVAS_RGB555 and CANVAS_BGR555 * */
  89. /* * * */
  90. /* ************************************************************************** */
  91. #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  92. #pragma option -A /* force ANSI-C */
  93. #endif
  94. #ifndef _libmng_pixels_h_
  95. #define _libmng_pixels_h_
  96. /* ************************************************************************** */
  97. /* * * */
  98. /* * Progressive display check - checks to see if progressive display is * */
  99. /* * in order & indicates so * */
  100. /* * * */
  101. /* * The routine is called after a call to one of the display_xxx routines * */
  102. /* * if appropriate * */
  103. /* * * */
  104. /* * The refresh is warrented in the read_chunk routine (mng_read.c) * */
  105. /* * and only during read&display processing, since there's not much point * */
  106. /* * doing it from memory! * */
  107. /* * * */
  108. /* ************************************************************************** */
  109. mng_retcode mng_display_progressive_check (mng_datap pData);
  110. /* ************************************************************************** */
  111. /* * * */
  112. /* * Display routines - convert rowdata (which is already color-corrected) * */
  113. /* * to the output canvas, respecting any transparency information * */
  114. /* * * */
  115. /* ************************************************************************** */
  116. #ifndef MNG_SKIPCANVAS_RGB8
  117. mng_retcode mng_display_rgb8 (mng_datap pData);
  118. #endif
  119. #ifndef MNG_SKIPCANVAS_RGBA8
  120. mng_retcode mng_display_rgba8 (mng_datap pData);
  121. #endif
  122. #ifndef MNG_SKIPCANVAS_RGBA8_PM
  123. mng_retcode mng_display_rgba8_pm (mng_datap pData);
  124. #endif
  125. #ifndef MNG_SKIPCANVAS_ARGB8
  126. mng_retcode mng_display_argb8 (mng_datap pData);
  127. #endif
  128. #ifndef MNG_SKIPCANVAS_ARGB8_PM
  129. mng_retcode mng_display_argb8_pm (mng_datap pData);
  130. #endif
  131. #ifndef MNG_SKIPCANVAS_RGB8_A8
  132. mng_retcode mng_display_rgb8_a8 (mng_datap pData);
  133. #endif
  134. #ifndef MNG_SKIPCANVAS_BGR8
  135. mng_retcode mng_display_bgr8 (mng_datap pData);
  136. #endif
  137. #ifndef MNG_SKIPCANVAS_BGRX8
  138. mng_retcode mng_display_bgrx8 (mng_datap pData);
  139. #endif
  140. #ifndef MNG_SKIPCANVAS_BGRA8
  141. mng_retcode mng_display_bgra8 (mng_datap pData);
  142. #endif
  143. #ifndef MNG_SKIPCANVAS_BGRA8_PM
  144. mng_retcode mng_display_bgra8_pm (mng_datap pData);
  145. #endif
  146. #ifndef MNG_SKIPCANVAS_ABGR8
  147. mng_retcode mng_display_abgr8 (mng_datap pData);
  148. #endif
  149. #ifndef MNG_SKIPCANVAS_ABGR8_PM
  150. mng_retcode mng_display_abgr8_pm (mng_datap pData);
  151. #endif
  152. #ifndef MNG_SKIPCANVAS_RGB565
  153. mng_retcode mng_display_rgb565 (mng_datap pData);
  154. #endif
  155. #ifndef MNG_SKIPCANVAS_RGBA565
  156. mng_retcode mng_display_rgba565 (mng_datap pData);
  157. #endif
  158. #ifndef MNG_SKIPCANVAS_BGR565
  159. mng_retcode mng_display_bgr565 (mng_datap pData);
  160. #endif
  161. #ifndef MNG_SKIPCANVAS_BGRA565
  162. mng_retcode mng_display_bgra565 (mng_datap pData);
  163. #endif
  164. #ifndef MNG_SKIPCANVAS_BGR565_A8
  165. mng_retcode mng_display_bgr565_a8 (mng_datap pData);
  166. #endif
  167. #ifndef MNG_SKIPCANVAS_RGB555
  168. mng_retcode mng_display_rgb555 (mng_datap pData);
  169. #endif
  170. #ifndef MNG_SKIPCANVAS_BGR555
  171. mng_retcode mng_display_bgr555 (mng_datap pData);
  172. #endif
  173. /* ************************************************************************** */
  174. /* * * */
  175. /* * Background restore routines - restore the background with info from * */
  176. /* * the BACK and/or bKGD chunk and/or the app's background canvas * */
  177. /* * * */
  178. /* ************************************************************************** */
  179. mng_retcode mng_restore_bkgd_backimage (mng_datap pData);
  180. mng_retcode mng_restore_bkgd_backcolor (mng_datap pData);
  181. mng_retcode mng_restore_bkgd_bkgd (mng_datap pData);
  182. mng_retcode mng_restore_bkgd_bgcolor (mng_datap pData);
  183. #ifndef MNG_SKIPCANVAS_RGB8
  184. mng_retcode mng_restore_bkgd_rgb8 (mng_datap pData);
  185. #endif
  186. #ifndef MNG_SKIPCANVAS_BGR8
  187. mng_retcode mng_restore_bkgd_bgr8 (mng_datap pData);
  188. #endif
  189. #ifndef MNG_SKIPCANVAS_BGRX8
  190. mng_retcode mng_restore_bkgd_bgrx8 (mng_datap pData);
  191. #endif
  192. #ifndef MNG_SKIPCANVAS_RGB565
  193. mng_retcode mng_restore_bkgd_rgb565 (mng_datap pData);
  194. #endif
  195. #ifndef MNG_SKIPCANVAS_BGR565
  196. mng_retcode mng_restore_bkgd_bgr565 (mng_datap pData);
  197. #endif
  198. /* ************************************************************************** */
  199. /* * * */
  200. /* * Row retrieval routines - retrieve processed & uncompressed row-data * */
  201. /* * from the current "object" * */
  202. /* * * */
  203. /* ************************************************************************** */
  204. mng_retcode mng_retrieve_g8 (mng_datap pData);
  205. mng_retcode mng_retrieve_rgb8 (mng_datap pData);
  206. mng_retcode mng_retrieve_idx8 (mng_datap pData);
  207. mng_retcode mng_retrieve_ga8 (mng_datap pData);
  208. mng_retcode mng_retrieve_rgba8 (mng_datap pData);
  209. #ifndef MNG_NO_16BIT_SUPPORT
  210. mng_retcode mng_retrieve_g16 (mng_datap pData);
  211. mng_retcode mng_retrieve_ga16 (mng_datap pData);
  212. mng_retcode mng_retrieve_rgb16 (mng_datap pData);
  213. mng_retcode mng_retrieve_rgba16 (mng_datap pData);
  214. #endif
  215. /* ************************************************************************** */
  216. /* * * */
  217. /* * Row storage routines - store processed & uncompressed row-data * */
  218. /* * into the current "object" * */
  219. /* * * */
  220. /* ************************************************************************** */
  221. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  222. mng_retcode mng_store_g1 (mng_datap pData);
  223. mng_retcode mng_store_g2 (mng_datap pData);
  224. mng_retcode mng_store_g4 (mng_datap pData);
  225. mng_retcode mng_store_idx1 (mng_datap pData);
  226. mng_retcode mng_store_idx2 (mng_datap pData);
  227. mng_retcode mng_store_idx4 (mng_datap pData);
  228. #endif
  229. mng_retcode mng_store_idx8 (mng_datap pData);
  230. mng_retcode mng_store_rgb8 (mng_datap pData);
  231. mng_retcode mng_store_g8 (mng_datap pData);
  232. mng_retcode mng_store_ga8 (mng_datap pData);
  233. mng_retcode mng_store_rgba8 (mng_datap pData);
  234. #ifndef MNG_NO_16BIT_SUPPORT
  235. mng_retcode mng_store_g16 (mng_datap pData);
  236. mng_retcode mng_store_ga16 (mng_datap pData);
  237. mng_retcode mng_store_rgb16 (mng_datap pData);
  238. mng_retcode mng_store_rgba16 (mng_datap pData);
  239. #endif
  240. /* ************************************************************************** */
  241. /* * * */
  242. /* * Row storage routines (JPEG) - store processed & uncompressed row-data * */
  243. /* * into the current "object" * */
  244. /* * * */
  245. /* ************************************************************************** */
  246. #ifdef MNG_INCLUDE_JNG
  247. mng_retcode mng_store_jpeg_g8 (mng_datap pData);
  248. mng_retcode mng_store_jpeg_rgb8 (mng_datap pData);
  249. mng_retcode mng_store_jpeg_ga8 (mng_datap pData);
  250. mng_retcode mng_store_jpeg_rgba8 (mng_datap pData);
  251. #ifdef MNG_SUPPORT_JPEG12
  252. mng_retcode mng_store_jpeg_g12 (mng_datap pData);
  253. mng_retcode mng_store_jpeg_rgb12 (mng_datap pData);
  254. mng_retcode mng_store_jpeg_ga12 (mng_datap pData);
  255. mng_retcode mng_store_jpeg_rgba12 (mng_datap pData);
  256. #endif
  257. mng_retcode mng_store_jpeg_g8_alpha (mng_datap pData);
  258. mng_retcode mng_store_jpeg_rgb8_alpha (mng_datap pData);
  259. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  260. mng_retcode mng_store_jpeg_g8_a1 (mng_datap pData);
  261. mng_retcode mng_store_jpeg_g8_a2 (mng_datap pData);
  262. mng_retcode mng_store_jpeg_g8_a4 (mng_datap pData);
  263. #endif
  264. mng_retcode mng_store_jpeg_g8_a8 (mng_datap pData);
  265. #ifndef MNG_NO_16BIT_SUPPORT
  266. mng_retcode mng_store_jpeg_g8_a16 (mng_datap pData);
  267. #endif
  268. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  269. mng_retcode mng_store_jpeg_rgb8_a1 (mng_datap pData);
  270. mng_retcode mng_store_jpeg_rgb8_a2 (mng_datap pData);
  271. mng_retcode mng_store_jpeg_rgb8_a4 (mng_datap pData);
  272. #endif
  273. mng_retcode mng_store_jpeg_rgb8_a8 (mng_datap pData);
  274. #ifndef MNG_NO_16BIT_SUPPORT
  275. mng_retcode mng_store_jpeg_rgb8_a16 (mng_datap pData);
  276. #endif
  277. #ifdef MNG_SUPPORT_JPEG12
  278. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  279. mng_retcode mng_store_jpeg_g12_a1 (mng_datap pData);
  280. mng_retcode mng_store_jpeg_g12_a2 (mng_datap pData);
  281. mng_retcode mng_store_jpeg_g12_a4 (mng_datap pData);
  282. #endif
  283. mng_retcode mng_store_jpeg_g12_a8 (mng_datap pData);
  284. #ifndef MNG_NO_16BIT_SUPPORT
  285. mng_retcode mng_store_jpeg_g12_a16 (mng_datap pData);
  286. #endif
  287. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  288. mng_retcode mng_store_jpeg_rgb12_a1 (mng_datap pData);
  289. mng_retcode mng_store_jpeg_rgb12_a2 (mng_datap pData);
  290. mng_retcode mng_store_jpeg_rgb12_a4 (mng_datap pData);
  291. #endif
  292. mng_retcode mng_store_jpeg_rgb12_a8 (mng_datap pData);
  293. #ifndef MNG_NO_16BIT_SUPPORT
  294. mng_retcode mng_store_jpeg_rgb12_a16 (mng_datap pData);
  295. #endif
  296. #endif
  297. #endif
  298. /* ************************************************************************** */
  299. /* * * */
  300. /* * Delta-image row routines - apply the processed & uncompressed row-data * */
  301. /* * onto the target "object" * */
  302. /* * * */
  303. /* ************************************************************************** */
  304. #ifndef MNG_NO_DELTA_PNG
  305. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  306. mng_retcode mng_delta_g1 (mng_datap pData);
  307. mng_retcode mng_delta_g2 (mng_datap pData);
  308. mng_retcode mng_delta_g4 (mng_datap pData);
  309. #endif
  310. mng_retcode mng_delta_g8 (mng_datap pData);
  311. mng_retcode mng_delta_g16 (mng_datap pData);
  312. mng_retcode mng_delta_rgb8 (mng_datap pData);
  313. #ifndef MNG_NO_16BIT_SUPPORT
  314. mng_retcode mng_delta_rgb16 (mng_datap pData);
  315. #endif
  316. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  317. mng_retcode mng_delta_idx1 (mng_datap pData);
  318. mng_retcode mng_delta_idx2 (mng_datap pData);
  319. mng_retcode mng_delta_idx4 (mng_datap pData);
  320. #endif
  321. mng_retcode mng_delta_idx8 (mng_datap pData);
  322. mng_retcode mng_delta_ga8 (mng_datap pData);
  323. mng_retcode mng_delta_rgba8 (mng_datap pData);
  324. #ifndef MNG_NO_16BIT_SUPPORT
  325. mng_retcode mng_delta_ga16 (mng_datap pData);
  326. mng_retcode mng_delta_rgba16 (mng_datap pData);
  327. #endif
  328. /* ************************************************************************** */
  329. /* * * */
  330. /* * Delta-image row routines - apply the source row onto the target * */
  331. /* * * */
  332. /* ************************************************************************** */
  333. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  334. mng_retcode mng_delta_g1_g1 (mng_datap pData);
  335. mng_retcode mng_delta_g2_g2 (mng_datap pData);
  336. mng_retcode mng_delta_g4_g4 (mng_datap pData);
  337. #endif
  338. mng_retcode mng_delta_g8_g8 (mng_datap pData);
  339. #ifndef MNG_NO_16BIT_SUPPORT
  340. mng_retcode mng_delta_g16_g16 (mng_datap pData);
  341. #endif
  342. mng_retcode mng_delta_ga8_ga8 (mng_datap pData);
  343. mng_retcode mng_delta_ga8_g8 (mng_datap pData);
  344. mng_retcode mng_delta_ga8_a8 (mng_datap pData);
  345. mng_retcode mng_delta_rgba8_rgb8 (mng_datap pData);
  346. mng_retcode mng_delta_rgba8_a8 (mng_datap pData);
  347. #ifndef MNG_NO_16BIT_SUPPORT
  348. mng_retcode mng_delta_ga16_ga16 (mng_datap pData);
  349. mng_retcode mng_delta_ga16_g16 (mng_datap pData);
  350. mng_retcode mng_delta_ga16_a16 (mng_datap pData);
  351. mng_retcode mng_delta_rgba16_a16 (mng_datap pData);
  352. mng_retcode mng_delta_rgba16_rgb16 (mng_datap pData);
  353. #endif
  354. #endif /* MNG_NO_DELTA_PNG */
  355. mng_retcode mng_delta_rgb8_rgb8 (mng_datap pData); /* Used for PAST */
  356. mng_retcode mng_delta_rgba8_rgba8 (mng_datap pData);
  357. #ifndef MNG_NO_16BIT_SUPPORT
  358. mng_retcode mng_delta_rgb16_rgb16 (mng_datap pData);
  359. mng_retcode mng_delta_rgba16_rgba16 (mng_datap pData);
  360. #endif
  361. #ifndef MNG_NO_DELTA_PNG
  362. /* ************************************************************************** */
  363. /* * * */
  364. /* * Delta-image row routines - scale the delta to bitdepth of target * */
  365. /* * * */
  366. /* ************************************************************************** */
  367. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  368. mng_retcode mng_scale_g1_g2 (mng_datap pData);
  369. mng_retcode mng_scale_g1_g4 (mng_datap pData);
  370. mng_retcode mng_scale_g1_g8 (mng_datap pData);
  371. mng_retcode mng_scale_g2_g4 (mng_datap pData);
  372. mng_retcode mng_scale_g2_g8 (mng_datap pData);
  373. mng_retcode mng_scale_g4_g8 (mng_datap pData);
  374. #endif
  375. #ifndef MNG_NO_16BIT_SUPPORT
  376. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  377. mng_retcode mng_scale_g1_g16 (mng_datap pData);
  378. mng_retcode mng_scale_g2_g16 (mng_datap pData);
  379. mng_retcode mng_scale_g4_g16 (mng_datap pData);
  380. #endif
  381. mng_retcode mng_scale_g8_g16 (mng_datap pData);
  382. mng_retcode mng_scale_ga8_ga16 (mng_datap pData);
  383. mng_retcode mng_scale_rgb8_rgb16 (mng_datap pData);
  384. mng_retcode mng_scale_rgba8_rgba16 (mng_datap pData);
  385. #endif
  386. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  387. mng_retcode mng_scale_g2_g1 (mng_datap pData);
  388. mng_retcode mng_scale_g4_g1 (mng_datap pData);
  389. mng_retcode mng_scale_g8_g1 (mng_datap pData);
  390. mng_retcode mng_scale_g4_g2 (mng_datap pData);
  391. mng_retcode mng_scale_g8_g2 (mng_datap pData);
  392. mng_retcode mng_scale_g8_g4 (mng_datap pData);
  393. #endif
  394. #ifndef MNG_NO_16BIT_SUPPORT
  395. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  396. mng_retcode mng_scale_g16_g1 (mng_datap pData);
  397. mng_retcode mng_scale_g16_g2 (mng_datap pData);
  398. mng_retcode mng_scale_g16_g4 (mng_datap pData);
  399. #endif
  400. mng_retcode mng_scale_g16_g8 (mng_datap pData);
  401. mng_retcode mng_scale_ga16_ga8 (mng_datap pData);
  402. mng_retcode mng_scale_rgb16_rgb8 (mng_datap pData);
  403. mng_retcode mng_scale_rgba16_rgba8 (mng_datap pData);
  404. #endif
  405. #endif /* MNG_NO_DELTA_PNG */
  406. /* ************************************************************************** */
  407. /* * * */
  408. /* * Delta-image bit routines - promote bit_depth * */
  409. /* * * */
  410. /* ************************************************************************** */
  411. mng_uint8 mng_promote_replicate_1_2 (mng_uint8 iB);
  412. mng_uint8 mng_promote_replicate_1_4 (mng_uint8 iB);
  413. mng_uint8 mng_promote_replicate_1_8 (mng_uint8 iB);
  414. mng_uint8 mng_promote_replicate_2_4 (mng_uint8 iB);
  415. mng_uint8 mng_promote_replicate_2_8 (mng_uint8 iB);
  416. mng_uint8 mng_promote_replicate_4_8 (mng_uint8 iB);
  417. #ifndef MNG_NO_16BIT_SUPPORT
  418. mng_uint16 mng_promote_replicate_1_16 (mng_uint8 iB);
  419. mng_uint16 mng_promote_replicate_2_16 (mng_uint8 iB);
  420. mng_uint16 mng_promote_replicate_4_16 (mng_uint8 iB);
  421. mng_uint16 mng_promote_replicate_8_16 (mng_uint8 iB);
  422. #endif
  423. /* ************************************************************************** */
  424. #ifndef MNG_NO_DELTA_PNG
  425. mng_uint8 mng_promote_zerofill_1_2 (mng_uint8 iB);
  426. mng_uint8 mng_promote_zerofill_1_4 (mng_uint8 iB);
  427. mng_uint8 mng_promote_zerofill_1_8 (mng_uint8 iB);
  428. mng_uint8 mng_promote_zerofill_2_4 (mng_uint8 iB);
  429. mng_uint8 mng_promote_zerofill_2_8 (mng_uint8 iB);
  430. mng_uint8 mng_promote_zerofill_4_8 (mng_uint8 iB);
  431. #ifndef MNG_NO_16BIT_SUPPORT
  432. mng_uint16 mng_promote_zerofill_1_16 (mng_uint8 iB);
  433. mng_uint16 mng_promote_zerofill_2_16 (mng_uint8 iB);
  434. mng_uint16 mng_promote_zerofill_4_16 (mng_uint8 iB);
  435. mng_uint16 mng_promote_zerofill_8_16 (mng_uint8 iB);
  436. #endif
  437. #endif /* MNG_NO_DELTA_PNG */
  438. /* ************************************************************************** */
  439. /* * * */
  440. /* * Delta-image row routines - promote color_type * */
  441. /* * * */
  442. /* ************************************************************************** */
  443. mng_retcode mng_promote_g8_g8 (mng_datap pData);
  444. #ifndef MNG_NO_16BIT_SUPPORT
  445. mng_retcode mng_promote_g8_g16 (mng_datap pData);
  446. mng_retcode mng_promote_g16_g16 (mng_datap pData);
  447. #endif
  448. mng_retcode mng_promote_g8_ga8 (mng_datap pData);
  449. #ifndef MNG_NO_16BIT_SUPPORT
  450. mng_retcode mng_promote_g8_ga16 (mng_datap pData);
  451. mng_retcode mng_promote_g16_ga16 (mng_datap pData);
  452. #endif
  453. mng_retcode mng_promote_g8_rgb8 (mng_datap pData);
  454. #ifndef MNG_NO_16BIT_SUPPORT
  455. mng_retcode mng_promote_g8_rgb16 (mng_datap pData);
  456. mng_retcode mng_promote_g16_rgb16 (mng_datap pData);
  457. #endif
  458. mng_retcode mng_promote_g8_rgba8 (mng_datap pData);
  459. #ifndef MNG_NO_16BIT_SUPPORT
  460. mng_retcode mng_promote_g8_rgba16 (mng_datap pData);
  461. mng_retcode mng_promote_g16_rgba16 (mng_datap pData);
  462. mng_retcode mng_promote_ga8_ga16 (mng_datap pData);
  463. #endif
  464. mng_retcode mng_promote_ga8_rgba8 (mng_datap pData);
  465. #ifndef MNG_NO_16BIT_SUPPORT
  466. mng_retcode mng_promote_ga8_rgba16 (mng_datap pData);
  467. mng_retcode mng_promote_ga16_rgba16 (mng_datap pData);
  468. #endif
  469. #ifndef MNG_NO_16BIT_SUPPORT
  470. mng_retcode mng_promote_rgb8_rgb16 (mng_datap pData);
  471. #endif
  472. mng_retcode mng_promote_rgb8_rgba8 (mng_datap pData);
  473. #ifndef MNG_NO_16BIT_SUPPORT
  474. mng_retcode mng_promote_rgb8_rgba16 (mng_datap pData);
  475. mng_retcode mng_promote_rgb16_rgba16 (mng_datap pData);
  476. #endif
  477. mng_retcode mng_promote_idx8_rgb8 (mng_datap pData);
  478. #ifndef MNG_NO_16BIT_SUPPORT
  479. mng_retcode mng_promote_idx8_rgb16 (mng_datap pData);
  480. #endif
  481. mng_retcode mng_promote_idx8_rgba8 (mng_datap pData);
  482. #ifndef MNG_NO_16BIT_SUPPORT
  483. mng_retcode mng_promote_idx8_rgba16 (mng_datap pData);
  484. mng_retcode mng_promote_rgba8_rgba16 (mng_datap pData);
  485. #endif
  486. /* ************************************************************************** */
  487. /* * * */
  488. /* * Row processing routines - convert uncompressed data from zlib to * */
  489. /* * managable row-data which serves as input to the color-management * */
  490. /* * routines * */
  491. /* * * */
  492. /* ************************************************************************** */
  493. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  494. mng_retcode mng_process_g1 (mng_datap pData);
  495. mng_retcode mng_process_g2 (mng_datap pData);
  496. mng_retcode mng_process_g4 (mng_datap pData);
  497. #endif
  498. mng_retcode mng_process_g8 (mng_datap pData);
  499. mng_retcode mng_process_rgb8 (mng_datap pData);
  500. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  501. mng_retcode mng_process_idx1 (mng_datap pData);
  502. mng_retcode mng_process_idx2 (mng_datap pData);
  503. mng_retcode mng_process_idx4 (mng_datap pData);
  504. #endif
  505. mng_retcode mng_process_idx8 (mng_datap pData);
  506. mng_retcode mng_process_ga8 (mng_datap pData);
  507. mng_retcode mng_process_rgba8 (mng_datap pData);
  508. #ifndef MNG_NO_16BIT_SUPPORT
  509. mng_retcode mng_process_g16 (mng_datap pData);
  510. mng_retcode mng_process_ga16 (mng_datap pData);
  511. mng_retcode mng_process_rgb16 (mng_datap pData);
  512. mng_retcode mng_process_rgba16 (mng_datap pData);
  513. #endif
  514. /* ************************************************************************** */
  515. /* * * */
  516. /* * Row processing initialization routines - set up the variables needed * */
  517. /* * to process uncompressed row-data * */
  518. /* * * */
  519. /* ************************************************************************** */
  520. #ifndef MNG_OPTIMIZE_FOOTPRINT_INIT
  521. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  522. mng_retcode mng_init_g1_i (mng_datap pData);
  523. mng_retcode mng_init_g2_i (mng_datap pData);
  524. mng_retcode mng_init_g4_i (mng_datap pData);
  525. #endif
  526. mng_retcode mng_init_g8_i (mng_datap pData);
  527. mng_retcode mng_init_rgb8_i (mng_datap pData);
  528. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  529. mng_retcode mng_init_idx1_i (mng_datap pData);
  530. mng_retcode mng_init_idx2_i (mng_datap pData);
  531. mng_retcode mng_init_idx4_i (mng_datap pData);
  532. #endif
  533. mng_retcode mng_init_idx8_i (mng_datap pData);
  534. mng_retcode mng_init_ga8_i (mng_datap pData);
  535. mng_retcode mng_init_rgba8_i (mng_datap pData);
  536. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  537. mng_retcode mng_init_g1_ni (mng_datap pData);
  538. mng_retcode mng_init_g2_ni (mng_datap pData);
  539. mng_retcode mng_init_g4_ni (mng_datap pData);
  540. #endif
  541. mng_retcode mng_init_g8_ni (mng_datap pData);
  542. mng_retcode mng_init_rgb8_ni (mng_datap pData);
  543. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  544. mng_retcode mng_init_idx1_ni (mng_datap pData);
  545. mng_retcode mng_init_idx2_ni (mng_datap pData);
  546. mng_retcode mng_init_idx4_ni (mng_datap pData);
  547. #endif
  548. mng_retcode mng_init_idx8_ni (mng_datap pData);
  549. mng_retcode mng_init_ga8_ni (mng_datap pData);
  550. mng_retcode mng_init_rgba8_ni (mng_datap pData);
  551. #ifndef MNG_NO_16BIT_SUPPORT
  552. mng_retcode mng_init_g16_i (mng_datap pData);
  553. mng_retcode mng_init_rgb16_i (mng_datap pData);
  554. mng_retcode mng_init_ga16_i (mng_datap pData);
  555. mng_retcode mng_init_rgba16_i (mng_datap pData);
  556. mng_retcode mng_init_g16_ni (mng_datap pData);
  557. mng_retcode mng_init_rgb16_ni (mng_datap pData);
  558. mng_retcode mng_init_ga16_ni (mng_datap pData);
  559. mng_retcode mng_init_rgba16_ni (mng_datap pData);
  560. #endif
  561. #endif
  562. /* ************************************************************************** */
  563. /* * * */
  564. /* * Row processing initialization routines (JPEG) - set up the variables * */
  565. /* * needed to process uncompressed row-data * */
  566. /* * * */
  567. /* ************************************************************************** */
  568. #ifndef MNG_OPTIMIZE_FOOTPRINT_INIT
  569. #ifdef MNG_INCLUDE_JNG
  570. #ifndef MNG_NO_1_2_4BIT_SUPPORT
  571. mng_retcode mng_init_jpeg_a1_ni (mng_datap pData);
  572. mng_retcode mng_init_jpeg_a2_ni (mng_datap pData);
  573. mng_retcode mng_init_jpeg_a4_ni (mng_datap pData);
  574. #endif
  575. mng_retcode mng_init_jpeg_a8_ni (mng_datap pData);
  576. #ifndef MNG_NO_16BIT_SUPPORT
  577. mng_retcode mng_init_jpeg_a16_ni (mng_datap pData);
  578. #endif
  579. #endif
  580. #endif
  581. /* ************************************************************************** */
  582. /* * * */
  583. /* * General row processing routines * */
  584. /* * * */
  585. /* ************************************************************************** */
  586. mng_retcode mng_init_rowproc (mng_datap pData);
  587. mng_retcode mng_next_row (mng_datap pData);
  588. #ifdef MNG_INCLUDE_JNG
  589. mng_retcode mng_next_jpeg_alpharow (mng_datap pData);
  590. mng_retcode mng_next_jpeg_row (mng_datap pData);
  591. #endif
  592. mng_retcode mng_cleanup_rowproc (mng_datap pData);
  593. /* ************************************************************************** */
  594. /* * * */
  595. /* * Magnification row routines - apply magnification transforms * */
  596. /* * * */
  597. /* ************************************************************************** */
  598. #ifndef MNG_OPTIMIZE_FOOTPRINT_MAGN
  599. mng_retcode mng_magnify_g8_x1 (mng_datap pData,
  600. mng_uint16 iMX,
  601. mng_uint16 iML,
  602. mng_uint16 iMR,
  603. mng_uint32 iWidth,
  604. mng_uint8p pSrcline,
  605. mng_uint8p pDstline);
  606. mng_retcode mng_magnify_g8_x2 (mng_datap pData,
  607. mng_uint16 iMX,
  608. mng_uint16 iML,
  609. mng_uint16 iMR,
  610. mng_uint32 iWidth,
  611. mng_uint8p pSrcline,
  612. mng_uint8p pDstline);
  613. mng_retcode mng_magnify_g8_x3 (mng_datap pData,
  614. mng_uint16 iMX,
  615. mng_uint16 iML,
  616. mng_uint16 iMR,
  617. mng_uint32 iWidth,
  618. mng_uint8p pSrcline,
  619. mng_uint8p pDstline);
  620. mng_retcode mng_magnify_rgb8_x1 (mng_datap pData,
  621. mng_uint16 iMX,
  622. mng_uint16 iML,
  623. mng_uint16 iMR,
  624. mng_uint32 iWidth,
  625. mng_uint8p pSrcline,
  626. mng_uint8p pDstline);
  627. mng_retcode mng_magnify_rgb8_x2 (mng_datap pData,
  628. mng_uint16 iMX,
  629. mng_uint16 iML,
  630. mng_uint16 iMR,
  631. mng_uint32 iWidth,
  632. mng_uint8p pSrcline,
  633. mng_uint8p pDstline);
  634. mng_retcode mng_magnify_rgb8_x3 (mng_datap pData,
  635. mng_uint16 iMX,
  636. mng_uint16 iML,
  637. mng_uint16 iMR,
  638. mng_uint32 iWidth,
  639. mng_uint8p pSrcline,
  640. mng_uint8p pDstline);
  641. mng_retcode mng_magnify_ga8_x1 (mng_datap pData,
  642. mng_uint16 iMX,
  643. mng_uint16 iML,
  644. mng_uint16 iMR,
  645. mng_uint32 iWidth,
  646. mng_uint8p pSrcline,
  647. mng_uint8p pDstline);
  648. mng_retcode mng_magnify_ga8_x2 (mng_datap pData,
  649. mng_uint16 iMX,
  650. mng_uint16 iML,
  651. mng_uint16 iMR,
  652. mng_uint32 iWidth,
  653. mng_uint8p pSrcline,
  654. mng_uint8p pDstline);
  655. mng_retcode mng_magnify_ga8_x3 (mng_datap pData,
  656. mng_uint16 iMX,
  657. mng_uint16 iML,
  658. mng_uint16 iMR,
  659. mng_uint32 iWidth,
  660. mng_uint8p pSrcline,
  661. mng_uint8p pDstline);
  662. mng_retcode mng_magnify_ga8_x4 (mng_datap pData,
  663. mng_uint16 iMX,
  664. mng_uint16 iML,
  665. mng_uint16 iMR,
  666. mng_uint32 iWidth,
  667. mng_uint8p pSrcline,
  668. mng_uint8p pDstline);
  669. mng_retcode mng_magnify_ga8_x5 (mng_datap pData,
  670. mng_uint16 iMX,
  671. mng_uint16 iML,
  672. mng_uint16 iMR,
  673. mng_uint32 iWidth,
  674. mng_uint8p pSrcline,
  675. mng_uint8p pDstline);
  676. #endif
  677. mng_retcode mng_magnify_rgba8_x1 (mng_datap pData,
  678. mng_uint16 iMX,
  679. mng_uint16 iML,
  680. mng_uint16 iMR,
  681. mng_uint32 iWidth,
  682. mng_uint8p pSrcline,
  683. mng_uint8p pDstline);
  684. mng_retcode mng_magnify_rgba8_x2 (mng_datap pData,
  685. mng_uint16 iMX,
  686. mng_uint16 iML,
  687. mng_uint16 iMR,
  688. mng_uint32 iWidth,
  689. mng_uint8p pSrcline,
  690. mng_uint8p pDstline);
  691. mng_retcode mng_magnify_rgba8_x3 (mng_datap pData,
  692. mng_uint16 iMX,
  693. mng_uint16 iML,
  694. mng_uint16 iMR,
  695. mng_uint32 iWidth,
  696. mng_uint8p pSrcline,
  697. mng_uint8p pDstline);
  698. mng_retcode mng_magnify_rgba8_x4 (mng_datap pData,
  699. mng_uint16 iMX,
  700. mng_uint16 iML,
  701. mng_uint16 iMR,
  702. mng_uint32 iWidth,
  703. mng_uint8p pSrcline,
  704. mng_uint8p pDstline);
  705. mng_retcode mng_magnify_rgba8_x5 (mng_datap pData,
  706. mng_uint16 iMX,
  707. mng_uint16 iML,
  708. mng_uint16 iMR,
  709. mng_uint32 iWidth,
  710. mng_uint8p pSrcline,
  711. mng_uint8p pDstline);
  712. #ifndef MNG_OPTIMIZE_FOOTPRINT_MAGN
  713. mng_retcode mng_magnify_g8_y1 (mng_datap pData,
  714. mng_int32 iS,
  715. mng_int32 iM,
  716. mng_uint32 iWidth,
  717. mng_uint8p pSrcline1,
  718. mng_uint8p pSrcline2,
  719. mng_uint8p pDstline);
  720. mng_retcode mng_magnify_g8_y2 (mng_datap pData,
  721. mng_int32 iS,
  722. mng_int32 iM,
  723. mng_uint32 iWidth,
  724. mng_uint8p pSrcline1,
  725. mng_uint8p pSrcline2,
  726. mng_uint8p pDstline);
  727. mng_retcode mng_magnify_g8_y3 (mng_datap pData,
  728. mng_int32 iS,
  729. mng_int32 iM,
  730. mng_uint32 iWidth,
  731. mng_uint8p pSrcline1,
  732. mng_uint8p pSrcline2,
  733. mng_uint8p pDstline);
  734. mng_retcode mng_magnify_rgb8_y1 (mng_datap pData,
  735. mng_int32 iS,
  736. mng_int32 iM,
  737. mng_uint32 iWidth,
  738. mng_uint8p pSrcline1,
  739. mng_uint8p pSrcline2,
  740. mng_uint8p pDstline);
  741. mng_retcode mng_magnify_rgb8_y2 (mng_datap pData,
  742. mng_int32 iS,
  743. mng_int32 iM,
  744. mng_uint32 iWidth,
  745. mng_uint8p pSrcline1,
  746. mng_uint8p pSrcline2,
  747. mng_uint8p pDstline);
  748. mng_retcode mng_magnify_rgb8_y3 (mng_datap pData,
  749. mng_int32 iS,
  750. mng_int32 iM,
  751. mng_uint32 iWidth,
  752. mng_uint8p pSrcline1,
  753. mng_uint8p pSrcline2,
  754. mng_uint8p pDstline);
  755. mng_retcode mng_magnify_ga8_y1 (mng_datap pData,
  756. mng_int32 iS,
  757. mng_int32 iM,
  758. mng_uint32 iWidth,
  759. mng_uint8p pSrcline1,
  760. mng_uint8p pSrcline2,
  761. mng_uint8p pDstline);
  762. mng_retcode mng_magnify_ga8_y2 (mng_datap pData,
  763. mng_int32 iS,
  764. mng_int32 iM,
  765. mng_uint32 iWidth,
  766. mng_uint8p pSrcline1,
  767. mng_uint8p pSrcline2,
  768. mng_uint8p pDstline);
  769. mng_retcode mng_magnify_ga8_y3 (mng_datap pData,
  770. mng_int32 iS,
  771. mng_int32 iM,
  772. mng_uint32 iWidth,
  773. mng_uint8p pSrcline1,
  774. mng_uint8p pSrcline2,
  775. mng_uint8p pDstline);
  776. mng_retcode mng_magnify_ga8_y4 (mng_datap pData,
  777. mng_int32 iS,
  778. mng_int32 iM,
  779. mng_uint32 iWidth,
  780. mng_uint8p pSrcline1,
  781. mng_uint8p pSrcline2,
  782. mng_uint8p pDstline);
  783. mng_retcode mng_magnify_ga8_y5 (mng_datap pData,
  784. mng_int32 iS,
  785. mng_int32 iM,
  786. mng_uint32 iWidth,
  787. mng_uint8p pSrcline1,
  788. mng_uint8p pSrcline2,
  789. mng_uint8p pDstline);
  790. #endif
  791. mng_retcode mng_magnify_rgba8_y1 (mng_datap pData,
  792. mng_int32 iS,
  793. mng_int32 iM,
  794. mng_uint32 iWidth,
  795. mng_uint8p pSrcline1,
  796. mng_uint8p pSrcline2,
  797. mng_uint8p pDstline);
  798. mng_retcode mng_magnify_rgba8_y2 (mng_datap pData,
  799. mng_int32 iS,
  800. mng_int32 iM,
  801. mng_uint32 iWidth,
  802. mng_uint8p pSrcline1,
  803. mng_uint8p pSrcline2,
  804. mng_uint8p pDstline);
  805. mng_retcode mng_magnify_rgba8_y3 (mng_datap pData,
  806. mng_int32 iS,
  807. mng_int32 iM,
  808. mng_uint32 iWidth,
  809. mng_uint8p pSrcline1,
  810. mng_uint8p pSrcline2,
  811. mng_uint8p pDstline);
  812. mng_retcode mng_magnify_rgba8_y4 (mng_datap pData,
  813. mng_int32 iS,
  814. mng_int32 iM,
  815. mng_uint32 iWidth,
  816. mng_uint8p pSrcline1,
  817. mng_uint8p pSrcline2,
  818. mng_uint8p pDstline);
  819. mng_retcode mng_magnify_rgba8_y5 (mng_datap pData,
  820. mng_int32 iS,
  821. mng_int32 iM,
  822. mng_uint32 iWidth,
  823. mng_uint8p pSrcline1,
  824. mng_uint8p pSrcline2,
  825. mng_uint8p pDstline);
  826. /* ************************************************************************** */
  827. #ifndef MNG_NO_16BIT_SUPPORT
  828. #ifndef MNG_OPTIMIZE_FOOTPRINT_MAGN
  829. mng_retcode mng_magnify_g16_x1 (mng_datap pData,
  830. mng_uint16 iMX,
  831. mng_uint16 iML,
  832. mng_uint16 iMR,
  833. mng_uint32 iWidth,
  834. mng_uint8p pSrcline,
  835. mng_uint8p pDstline);
  836. mng_retcode mng_magnify_g16_x2 (mng_datap pData,
  837. mng_uint16 iMX,
  838. mng_uint16 iML,
  839. mng_uint16 iMR,
  840. mng_uint32 iWidth,
  841. mng_uint8p pSrcline,
  842. mng_uint8p pDstline);
  843. mng_retcode mng_magnify_g16_x3 (mng_datap pData,
  844. mng_uint16 iMX,
  845. mng_uint16 iML,
  846. mng_uint16 iMR,
  847. mng_uint32 iWidth,
  848. mng_uint8p pSrcline,
  849. mng_uint8p pDstline);
  850. mng_retcode mng_magnify_rgb16_x1 (mng_datap pData,
  851. mng_uint16 iMX,
  852. mng_uint16 iML,
  853. mng_uint16 iMR,
  854. mng_uint32 iWidth,
  855. mng_uint8p pSrcline,
  856. mng_uint8p pDstline);
  857. mng_retcode mng_magnify_rgb16_x2 (mng_datap pData,
  858. mng_uint16 iMX,
  859. mng_uint16 iML,
  860. mng_uint16 iMR,
  861. mng_uint32 iWidth,
  862. mng_uint8p pSrcline,
  863. mng_uint8p pDstline);
  864. mng_retcode mng_magnify_rgb16_x3 (mng_datap pData,
  865. mng_uint16 iMX,
  866. mng_uint16 iML,
  867. mng_uint16 iMR,
  868. mng_uint32 iWidth,
  869. mng_uint8p pSrcline,
  870. mng_uint8p pDstline);
  871. mng_retcode mng_magnify_ga16_x1 (mng_datap pData,
  872. mng_uint16 iMX,
  873. mng_uint16 iML,
  874. mng_uint16 iMR,
  875. mng_uint32 iWidth,
  876. mng_uint8p pSrcline,
  877. mng_uint8p pDstline);
  878. mng_retcode mng_magnify_ga16_x2 (mng_datap pData,
  879. mng_uint16 iMX,
  880. mng_uint16 iML,
  881. mng_uint16 iMR,
  882. mng_uint32 iWidth,
  883. mng_uint8p pSrcline,
  884. mng_uint8p pDstline);
  885. mng_retcode mng_magnify_ga16_x3 (mng_datap pData,
  886. mng_uint16 iMX,
  887. mng_uint16 iML,
  888. mng_uint16 iMR,
  889. mng_uint32 iWidth,
  890. mng_uint8p pSrcline,
  891. mng_uint8p pDstline);
  892. mng_retcode mng_magnify_ga16_x4 (mng_datap pData,
  893. mng_uint16 iMX,
  894. mng_uint16 iML,
  895. mng_uint16 iMR,
  896. mng_uint32 iWidth,
  897. mng_uint8p pSrcline,
  898. mng_uint8p pDstline);
  899. mng_retcode mng_magnify_ga16_x5 (mng_datap pData,
  900. mng_uint16 iMX,
  901. mng_uint16 iML,
  902. mng_uint16 iMR,
  903. mng_uint32 iWidth,
  904. mng_uint8p pSrcline,
  905. mng_uint8p pDstline);
  906. mng_retcode mng_magnify_rgba16_x1 (mng_datap pData,
  907. mng_uint16 iMX,
  908. mng_uint16 iML,
  909. mng_uint16 iMR,
  910. mng_uint32 iWidth,
  911. mng_uint8p pSrcline,
  912. mng_uint8p pDstline);
  913. mng_retcode mng_magnify_rgba16_x2 (mng_datap pData,
  914. mng_uint16 iMX,
  915. mng_uint16 iML,
  916. mng_uint16 iMR,
  917. mng_uint32 iWidth,
  918. mng_uint8p pSrcline,
  919. mng_uint8p pDstline);
  920. mng_retcode mng_magnify_rgba16_x3 (mng_datap pData,
  921. mng_uint16 iMX,
  922. mng_uint16 iML,
  923. mng_uint16 iMR,
  924. mng_uint32 iWidth,
  925. mng_uint8p pSrcline,
  926. mng_uint8p pDstline);
  927. mng_retcode mng_magnify_rgba16_x4 (mng_datap pData,
  928. mng_uint16 iMX,
  929. mng_uint16 iML,
  930. mng_uint16 iMR,
  931. mng_uint32 iWidth,
  932. mng_uint8p pSrcline,
  933. mng_uint8p pDstline);
  934. mng_retcode mng_magnify_rgba16_x5 (mng_datap pData,
  935. mng_uint16 iMX,
  936. mng_uint16 iML,
  937. mng_uint16 iMR,
  938. mng_uint32 iWidth,
  939. mng_uint8p pSrcline,
  940. mng_uint8p pDstline);
  941. mng_retcode mng_magnify_g16_y1 (mng_datap pData,
  942. mng_int32 iS,
  943. mng_int32 iM,
  944. mng_uint32 iWidth,
  945. mng_uint8p pSrcline1,
  946. mng_uint8p pSrcline2,
  947. mng_uint8p pDstline);
  948. mng_retcode mng_magnify_g16_y2 (mng_datap pData,
  949. mng_int32 iS,
  950. mng_int32 iM,
  951. mng_uint32 iWidth,
  952. mng_uint8p pSrcline1,
  953. mng_uint8p pSrcline2,
  954. mng_uint8p pDstline);
  955. mng_retcode mng_magnify_g16_y3 (mng_datap pData,
  956. mng_int32 iS,
  957. mng_int32 iM,
  958. mng_uint32 iWidth,
  959. mng_uint8p pSrcline1,
  960. mng_uint8p pSrcline2,
  961. mng_uint8p pDstline);
  962. mng_retcode mng_magnify_rgb16_y1 (mng_datap pData,
  963. mng_int32 iS,
  964. mng_int32 iM,
  965. mng_uint32 iWidth,
  966. mng_uint8p pSrcline1,
  967. mng_uint8p pSrcline2,
  968. mng_uint8p pDstline);
  969. mng_retcode mng_magnify_rgb16_y2 (mng_datap pData,
  970. mng_int32 iS,
  971. mng_int32 iM,
  972. mng_uint32 iWidth,
  973. mng_uint8p pSrcline1,
  974. mng_uint8p pSrcline2,
  975. mng_uint8p pDstline);
  976. mng_retcode mng_magnify_rgb16_y3 (mng_datap pData,
  977. mng_int32 iS,
  978. mng_int32 iM,
  979. mng_uint32 iWidth,
  980. mng_uint8p pSrcline1,
  981. mng_uint8p pSrcline2,
  982. mng_uint8p pDstline);
  983. mng_retcode mng_magnify_ga16_y1 (mng_datap pData,
  984. mng_int32 iS,
  985. mng_int32 iM,
  986. mng_uint32 iWidth,
  987. mng_uint8p pSrcline1,
  988. mng_uint8p pSrcline2,
  989. mng_uint8p pDstline);
  990. mng_retcode mng_magnify_ga16_y2 (mng_datap pData,
  991. mng_int32 iS,
  992. mng_int32 iM,
  993. mng_uint32 iWidth,
  994. mng_uint8p pSrcline1,
  995. mng_uint8p pSrcline2,
  996. mng_uint8p pDstline);
  997. mng_retcode mng_magnify_ga16_y3 (mng_datap pData,
  998. mng_int32 iS,
  999. mng_int32 iM,
  1000. mng_uint32 iWidth,
  1001. mng_uint8p pSrcline1,
  1002. mng_uint8p pSrcline2,
  1003. mng_uint8p pDstline);
  1004. mng_retcode mng_magnify_ga16_y4 (mng_datap pData,
  1005. mng_int32 iS,
  1006. mng_int32 iM,
  1007. mng_uint32 iWidth,
  1008. mng_uint8p pSrcline1,
  1009. mng_uint8p pSrcline2,
  1010. mng_uint8p pDstline);
  1011. mng_retcode mng_magnify_ga16_y5 (mng_datap pData,
  1012. mng_int32 iS,
  1013. mng_int32 iM,
  1014. mng_uint32 iWidth,
  1015. mng_uint8p pSrcline1,
  1016. mng_uint8p pSrcline2,
  1017. mng_uint8p pDstline);
  1018. mng_retcode mng_magnify_rgba16_y1 (mng_datap pData,
  1019. mng_int32 iS,
  1020. mng_int32 iM,
  1021. mng_uint32 iWidth,
  1022. mng_uint8p pSrcline1,
  1023. mng_uint8p pSrcline2,
  1024. mng_uint8p pDstline);
  1025. mng_retcode mng_magnify_rgba16_y2 (mng_datap pData,
  1026. mng_int32 iS,
  1027. mng_int32 iM,
  1028. mng_uint32 iWidth,
  1029. mng_uint8p pSrcline1,
  1030. mng_uint8p pSrcline2,
  1031. mng_uint8p pDstline);
  1032. mng_retcode mng_magnify_rgba16_y3 (mng_datap pData,
  1033. mng_int32 iS,
  1034. mng_int32 iM,
  1035. mng_uint32 iWidth,
  1036. mng_uint8p pSrcline1,
  1037. mng_uint8p pSrcline2,
  1038. mng_uint8p pDstline);
  1039. mng_retcode mng_magnify_rgba16_y4 (mng_datap pData,
  1040. mng_int32 iS,
  1041. mng_int32 iM,
  1042. mng_uint32 iWidth,
  1043. mng_uint8p pSrcline1,
  1044. mng_uint8p pSrcline2,
  1045. mng_uint8p pDstline);
  1046. mng_retcode mng_magnify_rgba16_y5 (mng_datap pData,
  1047. mng_int32 iS,
  1048. mng_int32 iM,
  1049. mng_uint32 iWidth,
  1050. mng_uint8p pSrcline1,
  1051. mng_uint8p pSrcline2,
  1052. mng_uint8p pDstline);
  1053. #endif
  1054. #endif
  1055. /* ************************************************************************** */
  1056. /* * * */
  1057. /* * PAST composition routines - compose over/under with a target object * */
  1058. /* * * */
  1059. /* ************************************************************************** */
  1060. mng_retcode mng_composeover_rgba8 (mng_datap pData);
  1061. #ifndef MNG_SKIPCHUNK_PAST
  1062. mng_retcode mng_composeunder_rgba8 (mng_datap pData);
  1063. #ifndef MNG_NO_16BIT_SUPPORT
  1064. mng_retcode mng_composeover_rgba16 (mng_datap pData);
  1065. mng_retcode mng_composeunder_rgba16 (mng_datap pData);
  1066. #endif
  1067. #endif
  1068. /* ************************************************************************** */
  1069. /* * * */
  1070. /* * PAST flip & tile routines - flip or tile a row of pixels * */
  1071. /* * * */
  1072. /* ************************************************************************** */
  1073. #ifndef MNG_SKIPCHUNK_PAST
  1074. mng_retcode mng_flip_rgba8 (mng_datap pData);
  1075. mng_retcode mng_tile_rgba8 (mng_datap pData);
  1076. #ifndef MNG_NO_16BIT_SUPPORT
  1077. mng_retcode mng_flip_rgba16 (mng_datap pData);
  1078. mng_retcode mng_tile_rgba16 (mng_datap pData);
  1079. #endif
  1080. #endif
  1081. /* ************************************************************************** */
  1082. #endif /* _libmng_pixels_h_ */
  1083. /* ************************************************************************** */
  1084. /* * end of file * */
  1085. /* ************************************************************************** */