1 /* ************************************************************************** */ 2 /* * For conditions of distribution and use, * */ 3 /* * see copyright notice in libmng.h * */ 4 /* ************************************************************************** */ 5 /* * * */ 6 /* * project : libmng * */ 7 /* * file : libmng_object_prc.h copyright (c) 2000 G.Juyn * */ 8 /* * version : 1.0.0 * */ 9 /* * * */ 10 /* * purpose : Object processing routines (definition) * */ 11 /* * * */ 12 /* * author : G.Juyn * */ 13 /* * web : http://www.3-t.com * */ 14 /* * email : mailto:info@3-t.com * */ 15 /* * * */ 16 /* * comment : Definition of the internal object processing routines * */ 17 /* * * */ 18 /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */ 19 /* * - changed strict-ANSI stuff * */ 20 /* * * */ 21 /* * 0.5.2 - 05/24/2000 - G.Juyn * */ 22 /* * - added support for global color-chunks in animation * */ 23 /* * - added support for global PLTE,tRNS,bKGD in animation * */ 24 /* * - added SAVE & SEEK animation objects * */ 25 /* * 0.5.2 - 05/29/2000 - G.Juyn * */ 26 /* * - changed ani_object create routines not to return the * */ 27 /* * created object (wasn't necessary) * */ 28 /* * - added compression/filter/interlace fields to * */ 29 /* * object-buffer for delta-image processing * */ 30 /* * * */ 31 /* * 0.5.3 - 06/22/2000 - G.Juyn * */ 32 /* * - added support for PPLT chunk * */ 33 /* * * */ 34 /* * 0.9.2 - 08/05/2000 - G.Juyn * */ 35 /* * - changed file-prefixes * */ 36 /* * * */ 37 /* * 0.9.3 - 08/26/2000 - G.Juyn * */ 38 /* * - added MAGN chunk * */ 39 /* * 0.9.3 - 10/17/2000 - G.Juyn * */ 40 /* * - added routine to discard "invalid" objects * */ 41 /* * * */ 42 /* ************************************************************************** */ 43 44 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) 45 #pragma option -A /* force ANSI-C */ 46 #endif 47 48 #ifndef _libmng_object_prc_h_ 49 #define _libmng_object_prc_h_ 50 51 /* ************************************************************************** */ 52 53 mng_retcode drop_invalid_objects (mng_datap pData); 54 55 /* ************************************************************************** */ 56 57 mng_retcode create_imagedataobject (mng_datap pData, 58 mng_bool bConcrete, 59 mng_bool bViewable, 60 mng_uint32 iWidth, 61 mng_uint32 iHeight, 62 mng_uint8 iBitdepth, 63 mng_uint8 iColortype, 64 mng_uint8 iCompression, 65 mng_uint8 iFilter, 66 mng_uint8 iInterlace, 67 mng_imagedatap *ppObject); 68 69 mng_retcode free_imagedataobject (mng_datap pData, 70 mng_imagedatap pImagedata); 71 72 mng_retcode clone_imagedataobject (mng_datap pData, 73 mng_bool bConcrete, 74 mng_imagedatap pSource, 75 mng_imagedatap *ppClone); 76 77 /* ************************************************************************** */ 78 79 mng_retcode create_imageobject (mng_datap pData, 80 mng_uint16 iId, 81 mng_bool bConcrete, 82 mng_bool bVisible, 83 mng_bool bViewable, 84 mng_uint32 iWidth, 85 mng_uint32 iHeight, 86 mng_uint8 iBitdepth, 87 mng_uint8 iColortype, 88 mng_uint8 iCompression, 89 mng_uint8 iFilter, 90 mng_uint8 iInterlace, 91 mng_int32 iPosx, 92 mng_int32 iPosy, 93 mng_bool bClipped, 94 mng_int32 iClipl, 95 mng_int32 iClipr, 96 mng_int32 iClipt, 97 mng_int32 iClipb, 98 mng_imagep *ppObject); 99 100 mng_retcode free_imageobject (mng_datap pData, 101 mng_imagep pImage); 102 103 mng_imagep find_imageobject (mng_datap pData, 104 mng_uint16 iId); 105 106 mng_retcode clone_imageobject (mng_datap pData, 107 mng_uint16 iId, 108 mng_bool bPartial, 109 mng_bool bVisible, 110 mng_bool bAbstract, 111 mng_bool bHasloca, 112 mng_uint8 iLocationtype, 113 mng_int32 iLocationx, 114 mng_int32 iLocationy, 115 mng_imagep pSource, 116 mng_imagep *ppClone); 117 118 mng_retcode renum_imageobject (mng_datap pData, 119 mng_imagep pSource, 120 mng_uint16 iId, 121 mng_bool bVisible, 122 mng_bool bAbstract, 123 mng_bool bHasloca, 124 mng_uint8 iLocationtype, 125 mng_int32 iLocationx, 126 mng_int32 iLocationy); 127 128 mng_retcode reset_object_details (mng_datap pData, 129 mng_imagep pImage, 130 mng_uint32 iWidth, 131 mng_uint32 iHeight, 132 mng_uint8 iBitdepth, 133 mng_uint8 iColortype, 134 mng_uint8 iCompression, 135 mng_uint8 iFilter, 136 mng_uint8 iInterlace, 137 mng_bool bResetall); 138 139 mng_retcode promote_imageobject (mng_datap pData, 140 mng_imagep pImage, 141 mng_uint8 iBitdepth, 142 mng_uint8 iColortype, 143 mng_uint8 iFilltype); 144 145 mng_retcode magnify_imageobject (mng_datap pData, 146 mng_imagep pImage); 147 148 /* ************************************************************************** */ 149 150 mng_retcode create_ani_image (mng_datap pData); 151 152 mng_retcode create_ani_plte (mng_datap pData, 153 mng_uint32 iEntrycount, 154 mng_palette8ep paEntries); 155 156 mng_retcode create_ani_trns (mng_datap pData, 157 mng_uint32 iRawlen, 158 mng_uint8p pRawdata); 159 160 mng_retcode create_ani_gama (mng_datap pData, 161 mng_bool bEmpty, 162 mng_uint32 iGamma); 163 164 mng_retcode create_ani_chrm (mng_datap pData, 165 mng_bool bEmpty, 166 mng_uint32 iWhitepointx, 167 mng_uint32 iWhitepointy, 168 mng_uint32 iRedx, 169 mng_uint32 iRedy, 170 mng_uint32 iGreenx, 171 mng_uint32 iGreeny, 172 mng_uint32 iBluex, 173 mng_uint32 iBluey); 174 175 mng_retcode create_ani_srgb (mng_datap pData, 176 mng_bool bEmpty, 177 mng_uint8 iRenderinginent); 178 179 mng_retcode create_ani_iccp (mng_datap pData, 180 mng_bool bEmpty, 181 mng_uint32 iProfilesize, 182 mng_ptr pProfile); 183 184 mng_retcode create_ani_bkgd (mng_datap pData, 185 mng_uint16 iRed, 186 mng_uint16 iGreen, 187 mng_uint16 iBlue); 188 189 mng_retcode create_ani_loop (mng_datap pData, 190 mng_uint8 iLevel, 191 mng_uint32 iRepeatcount, 192 mng_uint8 iTermcond, 193 mng_uint32 iItermin, 194 mng_uint32 iItermax, 195 mng_uint32 iCount, 196 mng_uint32p pSignals); 197 198 mng_retcode create_ani_endl (mng_datap pData, 199 mng_uint8 iLevel); 200 201 mng_retcode create_ani_defi (mng_datap pData); 202 203 mng_retcode create_ani_basi (mng_datap pData, 204 mng_uint16 iRed, 205 mng_uint16 iGreen, 206 mng_uint16 iBlue, 207 mng_bool bHasalpha, 208 mng_uint16 iAlpha, 209 mng_uint8 iViewable); 210 211 mng_retcode create_ani_clon (mng_datap pData, 212 mng_uint16 iCloneid, 213 mng_uint16 iSourceid, 214 mng_uint8 iClonetype, 215 mng_bool bHasdonotshow, 216 mng_uint8 iDonotshow, 217 mng_uint8 iConcrete, 218 mng_bool bHasloca, 219 mng_uint8 iLocatype, 220 mng_int32 iLocax, 221 mng_int32 iLocay); 222 223 mng_retcode create_ani_back (mng_datap pData, 224 mng_uint16 iRed, 225 mng_uint16 iGreen, 226 mng_uint16 iBlue, 227 mng_uint8 iMandatory, 228 mng_uint16 iImageid, 229 mng_uint8 iTile); 230 231 mng_retcode create_ani_fram (mng_datap pData, 232 mng_uint8 iFramemode, 233 mng_uint8 iChangedelay, 234 mng_uint32 iDelay, 235 mng_uint8 iChangetimeout, 236 mng_uint32 iTimeout, 237 mng_uint8 iChangeclipping, 238 mng_uint8 iCliptype, 239 mng_int32 iClipl, 240 mng_int32 iClipr, 241 mng_int32 iClipt, 242 mng_int32 iClipb); 243 244 mng_retcode create_ani_move (mng_datap pData, 245 mng_uint16 iFirstid, 246 mng_uint16 iLastid, 247 mng_uint8 iType, 248 mng_int32 iLocax, 249 mng_int32 iLocay); 250 251 mng_retcode create_ani_clip (mng_datap pData, 252 mng_uint16 iFirstid, 253 mng_uint16 iLastid, 254 mng_uint8 iType, 255 mng_int32 iClipl, 256 mng_int32 iClipr, 257 mng_int32 iClipt, 258 mng_int32 iClipb); 259 260 mng_retcode create_ani_show (mng_datap pData, 261 mng_uint16 iFirstid, 262 mng_uint16 iLastid, 263 mng_uint8 iMode); 264 265 mng_retcode create_ani_term (mng_datap pData, 266 mng_uint8 iTermaction, 267 mng_uint8 iIteraction, 268 mng_uint32 iDelay, 269 mng_uint32 iItermax); 270 271 mng_retcode create_ani_save (mng_datap pData); 272 mng_retcode create_ani_seek (mng_datap pData); 273 274 mng_retcode create_ani_dhdr (mng_datap pData, 275 mng_uint16 iObjectid, 276 mng_uint8 iImagetype, 277 mng_uint8 iDeltatype, 278 mng_uint32 iBlockwidth, 279 mng_uint32 iBlockheight, 280 mng_uint32 iBlockx, 281 mng_uint32 iBlocky); 282 283 mng_retcode create_ani_prom (mng_datap pData, 284 mng_uint8 iBitdepth, 285 mng_uint8 iColortype, 286 mng_uint8 iFilltype); 287 288 mng_retcode create_ani_ipng (mng_datap pData); 289 mng_retcode create_ani_ijng (mng_datap pData); 290 291 mng_retcode create_ani_pplt (mng_datap pData, 292 mng_uint8 iType, 293 mng_uint32 iCount, 294 mng_palette8ep paIndexentries, 295 mng_uint8p paAlphaentries, 296 mng_uint8p paUsedentries); 297 298 mng_retcode create_ani_magn (mng_datap pData, 299 mng_uint16 iFirstid, 300 mng_uint16 iLastid, 301 mng_uint16 iMethodX, 302 mng_uint16 iMX, 303 mng_uint16 iMY, 304 mng_uint16 iML, 305 mng_uint16 iMR, 306 mng_uint16 iMT, 307 mng_uint16 iMB, 308 mng_uint16 iMethodY); 309 310 /* ************************************************************************** */ 311 312 mng_retcode free_ani_image (mng_datap pData, 313 mng_objectp pObject); 314 315 mng_retcode free_ani_plte (mng_datap pData, 316 mng_objectp pObject); 317 mng_retcode free_ani_trns (mng_datap pData, 318 mng_objectp pObject); 319 mng_retcode free_ani_gama (mng_datap pData, 320 mng_objectp pObject); 321 mng_retcode free_ani_chrm (mng_datap pData, 322 mng_objectp pObject); 323 mng_retcode free_ani_srgb (mng_datap pData, 324 mng_objectp pObject); 325 mng_retcode free_ani_iccp (mng_datap pData, 326 mng_objectp pObject); 327 mng_retcode free_ani_bkgd (mng_datap pData, 328 mng_objectp pObject); 329 mng_retcode free_ani_loop (mng_datap pData, 330 mng_objectp pObject); 331 mng_retcode free_ani_endl (mng_datap pData, 332 mng_objectp pObject); 333 mng_retcode free_ani_defi (mng_datap pData, 334 mng_objectp pObject); 335 mng_retcode free_ani_basi (mng_datap pData, 336 mng_objectp pObject); 337 mng_retcode free_ani_clon (mng_datap pData, 338 mng_objectp pObject); 339 mng_retcode free_ani_back (mng_datap pData, 340 mng_objectp pObject); 341 mng_retcode free_ani_fram (mng_datap pData, 342 mng_objectp pObject); 343 mng_retcode free_ani_move (mng_datap pData, 344 mng_objectp pObject); 345 mng_retcode free_ani_clip (mng_datap pData, 346 mng_objectp pObject); 347 mng_retcode free_ani_show (mng_datap pData, 348 mng_objectp pObject); 349 mng_retcode free_ani_term (mng_datap pData, 350 mng_objectp pObject); 351 mng_retcode free_ani_save (mng_datap pData, 352 mng_objectp pObject); 353 mng_retcode free_ani_seek (mng_datap pData, 354 mng_objectp pObject); 355 mng_retcode free_ani_dhdr (mng_datap pData, 356 mng_objectp pObject); 357 mng_retcode free_ani_prom (mng_datap pData, 358 mng_objectp pObject); 359 mng_retcode free_ani_ipng (mng_datap pData, 360 mng_objectp pObject); 361 mng_retcode free_ani_ijng (mng_datap pData, 362 mng_objectp pObject); 363 mng_retcode free_ani_pplt (mng_datap pData, 364 mng_objectp pObject); 365 mng_retcode free_ani_magn (mng_datap pData, 366 mng_objectp pObject); 367 368 /* ************************************************************************** */ 369 370 mng_retcode process_ani_image (mng_datap pData, 371 mng_objectp pObject); 372 373 mng_retcode process_ani_plte (mng_datap pData, 374 mng_objectp pObject); 375 mng_retcode process_ani_trns (mng_datap pData, 376 mng_objectp pObject); 377 mng_retcode process_ani_gama (mng_datap pData, 378 mng_objectp pObject); 379 mng_retcode process_ani_chrm (mng_datap pData, 380 mng_objectp pObject); 381 mng_retcode process_ani_srgb (mng_datap pData, 382 mng_objectp pObject); 383 mng_retcode process_ani_iccp (mng_datap pData, 384 mng_objectp pObject); 385 mng_retcode process_ani_bkgd (mng_datap pData, 386 mng_objectp pObject); 387 mng_retcode process_ani_loop (mng_datap pData, 388 mng_objectp pObject); 389 mng_retcode process_ani_endl (mng_datap pData, 390 mng_objectp pObject); 391 mng_retcode process_ani_defi (mng_datap pData, 392 mng_objectp pObject); 393 mng_retcode process_ani_basi (mng_datap pData, 394 mng_objectp pObject); 395 mng_retcode process_ani_clon (mng_datap pData, 396 mng_objectp pObject); 397 mng_retcode process_ani_back (mng_datap pData, 398 mng_objectp pObject); 399 mng_retcode process_ani_fram (mng_datap pData, 400 mng_objectp pObject); 401 mng_retcode process_ani_move (mng_datap pData, 402 mng_objectp pObject); 403 mng_retcode process_ani_clip (mng_datap pData, 404 mng_objectp pObject); 405 mng_retcode process_ani_show (mng_datap pData, 406 mng_objectp pObject); 407 mng_retcode process_ani_term (mng_datap pData, 408 mng_objectp pObject); 409 mng_retcode process_ani_save (mng_datap pData, 410 mng_objectp pObject); 411 mng_retcode process_ani_seek (mng_datap pData, 412 mng_objectp pObject); 413 mng_retcode process_ani_dhdr (mng_datap pData, 414 mng_objectp pObject); 415 mng_retcode process_ani_prom (mng_datap pData, 416 mng_objectp pObject); 417 mng_retcode process_ani_ipng (mng_datap pData, 418 mng_objectp pObject); 419 mng_retcode process_ani_ijng (mng_datap pData, 420 mng_objectp pObject); 421 mng_retcode process_ani_pplt (mng_datap pData, 422 mng_objectp pObject); 423 mng_retcode process_ani_magn (mng_datap pData, 424 mng_objectp pObject); 425 426 /* ************************************************************************** */ 427 428 #endif /* _libmng_object_prc_h_ */ 429 430 /* ************************************************************************** */ 431 /* * end of file * */ 432 /* ************************************************************************** */ 433