1 /* ************************************************************************** */ 2 /* * For conditions of distribution and use, * */ 3 /* * see copyright notice in libmng.h * */ 4 /* ************************************************************************** */ 5 /* * * */ 6 /* * project : libmng * */ 7 /* * file : libmng_display.h copyright (c) 2000-2007 G.Juyn * */ 8 /* * version : 1.0.10 * */ 9 /* * * */ 10 /* * purpose : Display management (definition) * */ 11 /* * * */ 12 /* * author : G.Juyn * */ 13 /* * * */ 14 /* * comment : Definition of the display managament routines * */ 15 /* * * */ 16 /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */ 17 /* * - changed strict-ANSI stuff * */ 18 /* * * */ 19 /* * 0.5.2 - 05/20/2000 - G.Juyn * */ 20 /* * - added JNG support stuff * */ 21 /* * * */ 22 /* * 0.5.3 - 06/16/2000 - G.Juyn * */ 23 /* * - changed progressive-display processing * */ 24 /* * 0.5.3 - 06/22/2000 - G.Juyn * */ 25 /* * - added support for delta-image processing * */ 26 /* * - added support for PPLT chunk processing * */ 27 /* * * */ 28 /* * 0.9.2 - 08/05/2000 - G.Juyn * */ 29 /* * - changed file-prefixes * */ 30 /* * 0.9.3 - 08/07/2000 - G.Juyn * */ 31 /* * - B111300 - fixup for improved portability * */ 32 /* * 0.9.3 - 08/26/2000 - G.Juyn * */ 33 /* * - added MAGN chunk * */ 34 /* * 0.9.3 - 10/16/2000 - G.Juyn * */ 35 /* * - added JDAA chunk * */ 36 /* * * */ 37 /* * 0.9.4 - 11/24/2000 - G.Juyn * */ 38 /* * - moved restore of object 0 to libmng_display * */ 39 /* * * */ 40 /* * 1.0.5 - 08/19/2002 - G.Juyn * */ 41 /* * - B597134 - libmng pollutes the linker namespace * */ 42 /* * 1.0.5 - 09/13/2002 - G.Juyn * */ 43 /* * - fixed read/write of MAGN chunk * */ 44 /* * 1.0.5 - 09/20/2002 - G.Juyn * */ 45 /* * - added support for PAST * */ 46 /* * 1.0.5 - 10/07/2002 - G.Juyn * */ 47 /* * - added proposed change in handling of TERM- & if-delay * */ 48 /* * 1.0.5 - 10/20/2002 - G.Juyn * */ 49 /* * - fixed display of visible target of PAST operation * */ 50 /* * * */ 51 /* * 1.0.7 - 03/24/2004 - G.R-P. * */ 52 /* * - added some SKIPCHUNK conditionals * */ 53 /* * * */ 54 /* * 1.0.9 - 12/11/2004 - G.Juyn * */ 55 /* * - added conditional MNG_OPTIMIZE_DISPLAYCALLS * */ 56 /* * * */ 57 /* * 1.0.10 - 04/08/2007 - G.Juyn * */ 58 /* * - added support for mPNG proposal * */ 59 /* * 1.0.10 - 04/12/2007 - G.Juyn * */ 60 /* * - added support for ANG proposal * */ 61 /* * * */ 62 /* ************************************************************************** */ 63 64 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) 65 #pragma option -A /* force ANSI-C */ 66 #endif 67 68 #ifndef _libmng_display_h_ 69 #define _libmng_display_h_ 70 71 /* ************************************************************************** */ 72 73 #ifdef MNG_INCLUDE_DISPLAY_PROCS 74 75 /* ************************************************************************** */ 76 77 mng_retcode mng_display_progressive_refresh (mng_datap pData, 78 mng_uint32 iInterval); 79 80 /* ************************************************************************** */ 81 82 mng_retcode mng_reset_objzero (mng_datap pData); 83 84 mng_retcode mng_display_image (mng_datap pData, 85 mng_imagep pImage, 86 mng_bool bLayeradvanced); 87 88 mng_retcode mng_execute_delta_image (mng_datap pData, 89 mng_imagep pTarget, 90 mng_imagep pDelta); 91 92 /* ************************************************************************** */ 93 94 mng_retcode mng_process_display (mng_datap pData); 95 96 /* ************************************************************************** */ 97 98 #ifdef MNG_OPTIMIZE_FOOTPRINT_INIT 99 png_imgtype mng_png_imgtype (mng_uint8 colortype, 100 mng_uint8 bitdepth); 101 #endif 102 103 /* ************************************************************************** */ 104 105 #ifndef MNG_OPTIMIZE_DISPLAYCALLS 106 107 mng_retcode mng_process_display_ihdr (mng_datap pData); 108 109 #ifdef MNG_INCLUDE_MPNG_PROPOSAL 110 mng_retcode mng_process_display_mpng (mng_datap pData); 111 #endif 112 113 #ifdef MNG_INCLUDE_ANG_PROPOSAL 114 mng_retcode mng_process_display_ang (mng_datap pData); 115 #endif 116 117 mng_retcode mng_process_display_idat (mng_datap pData, 118 mng_uint32 iRawlen, 119 mng_uint8p pRawdata); 120 121 mng_retcode mng_process_display_iend (mng_datap pData); 122 mng_retcode mng_process_display_mend (mng_datap pData); 123 mng_retcode mng_process_display_mend2 (mng_datap pData); 124 mng_retcode mng_process_display_defi (mng_datap pData); 125 126 #ifndef MNG_SKIPCHUNK_BASI 127 mng_retcode mng_process_display_basi (mng_datap pData, 128 mng_uint16 iRed, 129 mng_uint16 iGreen, 130 mng_uint16 iBlue, 131 mng_bool bHasalpha, 132 mng_uint16 iAlpha, 133 mng_uint8 iViewable); 134 #endif 135 136 #ifndef MNG_SKIPCHUNK_CLON 137 mng_retcode mng_process_display_clon (mng_datap pData, 138 mng_uint16 iSourceid, 139 mng_uint16 iCloneid, 140 mng_uint8 iClonetype, 141 mng_bool bHasdonotshow, 142 mng_uint8 iDonotshow, 143 mng_uint8 iConcrete, 144 mng_bool bHasloca, 145 mng_uint8 iLocationtype, 146 mng_int32 iLocationx, 147 mng_int32 iLocationy); 148 mng_retcode mng_process_display_clon2 (mng_datap pData); 149 #endif 150 151 #ifndef MNG_SKIPCHUNK_DISC 152 mng_retcode mng_process_display_disc (mng_datap pData, 153 mng_uint32 iCount, 154 mng_uint16p pIds); 155 #endif 156 157 #ifndef MNG_SKIPCHUNK_FRAM 158 mng_retcode mng_process_display_fram (mng_datap pData, 159 mng_uint8 iFramemode, 160 mng_uint8 iChangedelay, 161 mng_uint32 iDelay, 162 mng_uint8 iChangetimeout, 163 mng_uint32 iTimeout, 164 mng_uint8 iChangeclipping, 165 mng_uint8 iCliptype, 166 mng_int32 iClipl, 167 mng_int32 iClipr, 168 mng_int32 iClipt, 169 mng_int32 iClipb); 170 mng_retcode mng_process_display_fram2 (mng_datap pData); 171 #endif 172 173 #ifndef MNG_SKIPCHUNK_MOVE 174 mng_retcode mng_process_display_move (mng_datap pData, 175 mng_uint16 iFromid, 176 mng_uint16 iToid, 177 mng_uint8 iMovetype, 178 mng_int32 iMovex, 179 mng_int32 iMovey); 180 #endif 181 182 #ifndef MNG_SKIPCHUNK_CLIP 183 mng_retcode mng_process_display_clip (mng_datap pData, 184 mng_uint16 iFromid, 185 mng_uint16 iToid, 186 mng_uint8 iCliptype, 187 mng_int32 iClipl, 188 mng_int32 iClipr, 189 mng_int32 iClipt, 190 mng_int32 iClipb); 191 #endif 192 193 #ifndef MNG_SKIPCHUNK_SHOW 194 mng_retcode mng_process_display_show (mng_datap pData); 195 #endif 196 #ifndef MNG_SKIPCHUNK_SAVE 197 mng_retcode mng_process_display_save (mng_datap pData); 198 #endif 199 #ifndef MNG_SKIPCHUNK_SEEK 200 mng_retcode mng_process_display_seek (mng_datap pData); 201 #endif 202 #ifdef MNG_INCLUDE_JNG 203 mng_retcode mng_process_display_jhdr (mng_datap pData); 204 205 mng_retcode mng_process_display_jdaa (mng_datap pData, 206 mng_uint32 iRawlen, 207 mng_uint8p pRawdata); 208 209 mng_retcode mng_process_display_jdat (mng_datap pData, 210 mng_uint32 iRawlen, 211 mng_uint8p pRawdata); 212 213 #endif 214 #ifndef MNG_NO_DELTA_PNG 215 mng_retcode mng_process_display_dhdr (mng_datap pData, 216 mng_uint16 iObjectid, 217 mng_uint8 iImagetype, 218 mng_uint8 iDeltatype, 219 mng_uint32 iBlockwidth, 220 mng_uint32 iBlockheight, 221 mng_uint32 iBlockx, 222 mng_uint32 iBlocky); 223 224 mng_retcode mng_process_display_prom (mng_datap pData, 225 mng_uint8 iBitdepth, 226 mng_uint8 iColortype, 227 mng_uint8 iFilltype); 228 229 mng_retcode mng_process_display_ipng (mng_datap pData); 230 #ifdef MNG_INCLUDE_JNG 231 mng_retcode mng_process_display_ijng (mng_datap pData); 232 #endif 233 234 mng_retcode mng_process_display_pplt (mng_datap pData, 235 mng_uint8 iType, 236 mng_uint32 iCount, 237 mng_palette8ep paIndexentries, 238 mng_uint8p paAlphaentries, 239 mng_uint8p paUsedentries); 240 #endif 241 242 #ifndef MNG_SKIPCHUNK_MAGN 243 mng_retcode mng_process_display_magn (mng_datap pData, 244 mng_uint16 iFirstid, 245 mng_uint16 iLastid, 246 mng_uint8 iMethodX, 247 mng_uint16 iMX, 248 mng_uint16 iMY, 249 mng_uint16 iML, 250 mng_uint16 iMR, 251 mng_uint16 iMT, 252 mng_uint16 iMB, 253 mng_uint8 iMethodY); 254 mng_retcode mng_process_display_magn2 (mng_datap pData); 255 #endif 256 257 #ifndef MNG_SKIPCHUNK_PAST 258 mng_retcode mng_process_display_past (mng_datap pData, 259 mng_uint16 iTargetid, 260 mng_uint8 iTargettype, 261 mng_int32 iTargetx, 262 mng_int32 iTargety, 263 mng_uint32 iCount, 264 mng_ptr pSources); 265 mng_retcode mng_process_display_past2 (mng_datap pData); 266 #endif 267 268 #else /* MNG_OPTIMIZE_DISPLAYCALLS */ 269 270 mng_retcode mng_process_display_ihdr (mng_datap pData); 271 #ifdef MNG_INCLUDE_MPNG_PROPOSAL 272 mng_retcode mng_process_display_mpng (mng_datap pData); 273 #endif 274 mng_retcode mng_process_display_idat (mng_datap pData); 275 mng_retcode mng_process_display_iend (mng_datap pData); 276 mng_retcode mng_process_display_mend (mng_datap pData); 277 mng_retcode mng_process_display_mend2 (mng_datap pData); 278 mng_retcode mng_process_display_defi (mng_datap pData); 279 #ifndef MNG_SKIPCHUNK_BASI 280 mng_retcode mng_process_display_basi (mng_datap pData); 281 #endif 282 #ifndef MNG_SKIPCHUNK_CLON 283 mng_retcode mng_process_display_clon (mng_datap pData); 284 mng_retcode mng_process_display_clon2 (mng_datap pData); 285 #endif 286 #ifndef MNG_SKIPCHUNK_DISC 287 mng_retcode mng_process_display_disc (mng_datap pData); 288 #endif 289 #ifndef MNG_SKIPCHUNK_FRAM 290 mng_retcode mng_process_display_fram (mng_datap pData); 291 mng_retcode mng_process_display_fram2 (mng_datap pData); 292 #endif 293 #ifndef MNG_SKIPCHUNK_MOVE 294 mng_retcode mng_process_display_move (mng_datap pData); 295 #endif 296 #ifndef MNG_SKIPCHUNK_CLIP 297 mng_retcode mng_process_display_clip (mng_datap pData); 298 #endif 299 #ifndef MNG_SKIPCHUNK_SHOW 300 mng_retcode mng_process_display_show (mng_datap pData); 301 #endif 302 #ifndef MNG_SKIPCHUNK_SAVE 303 mng_retcode mng_process_display_save (mng_datap pData); 304 #endif 305 #ifndef MNG_SKIPCHUNK_SEEK 306 mng_retcode mng_process_display_seek (mng_datap pData); 307 #endif 308 #ifdef MNG_INCLUDE_JNG 309 mng_retcode mng_process_display_jhdr (mng_datap pData); 310 mng_retcode mng_process_display_jdaa (mng_datap pData); 311 mng_retcode mng_process_display_jdat (mng_datap pData); 312 #endif 313 #ifndef MNG_NO_DELTA_PNG 314 mng_retcode mng_process_display_dhdr (mng_datap pData); 315 mng_retcode mng_process_display_prom (mng_datap pData); 316 mng_retcode mng_process_display_ipng (mng_datap pData); 317 #ifdef MNG_INCLUDE_JNG 318 mng_retcode mng_process_display_ijng (mng_datap pData); 319 #endif 320 mng_retcode mng_process_display_pplt (mng_datap pData); 321 #endif 322 #ifndef MNG_SKIPCHUNK_MAGN 323 mng_retcode mng_process_display_magn (mng_datap pData); 324 mng_retcode mng_process_display_magn2 (mng_datap pData); 325 #endif 326 #ifndef MNG_SKIPCHUNK_PAST 327 mng_retcode mng_process_display_past (mng_datap pData); 328 mng_retcode mng_process_display_past2 (mng_datap pData); 329 #endif 330 331 #endif /* MNG_OPTIMIZE_DISPLAYCALLS */ 332 333 /* ************************************************************************** */ 334 335 #endif /* MNG_INCLUDE_DISPLAY_PROCS */ 336 337 /* ************************************************************************** */ 338 339 #endif /* _libmng_display_h_ */ 340 341 /* ************************************************************************** */ 342 /* * end of file * */ 343 /* ************************************************************************** */ 344