/* ************************************************************************** */ /* * For conditions of distribution and use, * */ /* * see copyright notice in libmng.h * */ /* ************************************************************************** */ /* * * */ /* * project : libmng * */ /* * file : libmng_object_prc.h copyright (c) 2000-2007 G.Juyn * */ /* * version : 1.0.10 * */ /* * * */ /* * purpose : Object processing routines (definition) * */ /* * * */ /* * author : G.Juyn * */ /* * * */ /* * comment : Definition of the internal object processing routines * */ /* * * */ /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */ /* * - changed strict-ANSI stuff * */ /* * * */ /* * 0.5.2 - 05/24/2000 - G.Juyn * */ /* * - added support for global color-chunks in animation * */ /* * - added support for global PLTE,tRNS,bKGD in animation * */ /* * - added SAVE & SEEK animation objects * */ /* * 0.5.2 - 05/29/2000 - G.Juyn * */ /* * - changed ani_object create routines not to return the * */ /* * created object (wasn't necessary) * */ /* * - added compression/filter/interlace fields to * */ /* * object-buffer for delta-image processing * */ /* * * */ /* * 0.5.3 - 06/22/2000 - G.Juyn * */ /* * - added support for PPLT chunk * */ /* * * */ /* * 0.9.2 - 08/05/2000 - G.Juyn * */ /* * - changed file-prefixes * */ /* * * */ /* * 0.9.3 - 08/26/2000 - G.Juyn * */ /* * - added MAGN chunk * */ /* * 0.9.3 - 10/17/2000 - G.Juyn * */ /* * - added routine to discard "invalid" objects * */ /* * * */ /* * 1.0.5 - 08/19/2002 - G.Juyn * */ /* * - B597134 - libmng pollutes the linker namespace * */ /* * 1.0.5 - 09/13/2002 - G.Juyn * */ /* * - fixed read/write of MAGN chunk * */ /* * 1.0.5 - 09/15/2002 - G.Juyn * */ /* * - added event handling for dynamic MNG * */ /* * 1.0.5 - 09/20/2002 - G.Juyn * */ /* * - added support for PAST * */ /* * 1.0.5 - 09/23/2002 - G.Juyn * */ /* * - added in-memory color-correction of abstract images * */ /* * 1.0.5 - 10/07/2002 - G.Juyn * */ /* * - fixed DISC support * */ /* * * */ /* * 1.0.6 - 07/07/2003 - G.R-P * */ /* * - added conditionals around Delta-PNG code * */ /* * - added SKIPCHUNK feature * */ /* * 1.0.6 - 07/29/2003 - G.R-P * */ /* * - added conditionals around PAST chunk support * */ /* * * */ /* * 1.0.7 - 03/24/2004 - G.R-P * */ /* * - added more SKIPCHUNK conditionals * */ /* * * */ /* * 1.0.9 - 12/05/2004 - G.Juyn * */ /* * - added conditional MNG_OPTIMIZE_OBJCLEANUP * */ /* * * */ /* * 1.0.10 - 04/08/2007 - G.Juyn * */ /* * - added support for mPNG proposal * */ /* * 1.0.10 - 04/12/2007 - G.Juyn * */ /* * - added support for ANG proposal * */ /* * * */ /* ************************************************************************** */ #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) #pragma option -A /* force ANSI-C */ #endif #ifndef _libmng_object_prc_h_ #define _libmng_object_prc_h_ /* ************************************************************************** */ #ifdef MNG_INCLUDE_DISPLAY_PROCS /* ************************************************************************** */ mng_retcode mng_drop_invalid_objects (mng_datap pData); /* ************************************************************************** */ mng_retcode mng_create_imagedataobject (mng_datap pData, mng_bool bConcrete, mng_bool bViewable, mng_uint32 iWidth, mng_uint32 iHeight, mng_uint8 iBitdepth, mng_uint8 iColortype, mng_uint8 iCompression, mng_uint8 iFilter, mng_uint8 iInterlace, mng_imagedatap *ppObject); mng_retcode mng_free_imagedataobject (mng_datap pData, mng_imagedatap pImagedata); mng_retcode mng_clone_imagedataobject (mng_datap pData, mng_bool bConcrete, mng_imagedatap pSource, mng_imagedatap *ppClone); /* ************************************************************************** */ mng_retcode mng_create_imageobject (mng_datap pData, mng_uint16 iId, mng_bool bConcrete, mng_bool bVisible, mng_bool bViewable, mng_uint32 iWidth, mng_uint32 iHeight, mng_uint8 iBitdepth, mng_uint8 iColortype, mng_uint8 iCompression, mng_uint8 iFilter, mng_uint8 iInterlace, mng_int32 iPosx, mng_int32 iPosy, mng_bool bClipped, mng_int32 iClipl, mng_int32 iClipr, mng_int32 iClipt, mng_int32 iClipb, mng_imagep *ppObject); mng_retcode mng_free_imageobject (mng_datap pData, mng_imagep pImage); mng_imagep mng_find_imageobject (mng_datap pData, mng_uint16 iId); mng_retcode mng_clone_imageobject (mng_datap pData, mng_uint16 iId, mng_bool bPartial, mng_bool bVisible, mng_bool bAbstract, mng_bool bHasloca, mng_uint8 iLocationtype, mng_int32 iLocationx, mng_int32 iLocationy, mng_imagep pSource, mng_imagep *ppClone); mng_retcode mng_renum_imageobject (mng_datap pData, mng_imagep pSource, mng_uint16 iId, mng_bool bVisible, mng_bool bAbstract, mng_bool bHasloca, mng_uint8 iLocationtype, mng_int32 iLocationx, mng_int32 iLocationy); mng_retcode mng_reset_object_details (mng_datap pData, mng_imagep pImage, mng_uint32 iWidth, mng_uint32 iHeight, mng_uint8 iBitdepth, mng_uint8 iColortype, mng_uint8 iCompression, mng_uint8 iFilter, mng_uint8 iInterlace, mng_bool bResetall); mng_retcode mng_promote_imageobject (mng_datap pData, mng_imagep pImage, mng_uint8 iBitdepth, mng_uint8 iColortype, mng_uint8 iFilltype); mng_retcode mng_magnify_imageobject (mng_datap pData, mng_imagep pImage); mng_retcode mng_colorcorrect_object (mng_datap pData, mng_imagep pImage); /* ************************************************************************** */ mng_retcode mng_create_ani_image (mng_datap pData); #ifndef MNG_OPTIMIZE_CHUNKREADER mng_retcode mng_create_ani_plte (mng_datap pData, mng_uint32 iEntrycount, mng_palette8ep paEntries); mng_retcode mng_create_ani_trns (mng_datap pData, mng_uint32 iRawlen, mng_uint8p pRawdata); mng_retcode mng_create_ani_gama (mng_datap pData, mng_bool bEmpty, mng_uint32 iGamma); mng_retcode mng_create_ani_chrm (mng_datap pData, mng_bool bEmpty, mng_uint32 iWhitepointx, mng_uint32 iWhitepointy, mng_uint32 iRedx, mng_uint32 iRedy, mng_uint32 iGreenx, mng_uint32 iGreeny, mng_uint32 iBluex, mng_uint32 iBluey); mng_retcode mng_create_ani_srgb (mng_datap pData, mng_bool bEmpty, mng_uint8 iRenderinginent); mng_retcode mng_create_ani_iccp (mng_datap pData, mng_bool bEmpty, mng_uint32 iProfilesize, mng_ptr pProfile); mng_retcode mng_create_ani_bkgd (mng_datap pData, mng_uint16 iRed, mng_uint16 iGreen, mng_uint16 iBlue); mng_retcode mng_create_ani_loop (mng_datap pData, mng_uint8 iLevel, mng_uint32 iRepeatcount, mng_uint8 iTermcond, mng_uint32 iItermin, mng_uint32 iItermax, mng_uint32 iCount, mng_uint32p pSignals); mng_retcode mng_create_ani_endl (mng_datap pData, mng_uint8 iLevel); mng_retcode mng_create_ani_defi (mng_datap pData); mng_retcode mng_create_ani_basi (mng_datap pData, mng_uint16 iRed, mng_uint16 iGreen, mng_uint16 iBlue, mng_bool bHasalpha, mng_uint16 iAlpha, mng_uint8 iViewable); mng_retcode mng_create_ani_clon (mng_datap pData, mng_uint16 iSourceid, mng_uint16 iCloneid, mng_uint8 iClonetype, mng_bool bHasdonotshow, mng_uint8 iDonotshow, mng_uint8 iConcrete, mng_bool bHasloca, mng_uint8 iLocatype, mng_int32 iLocax, mng_int32 iLocay); mng_retcode mng_create_ani_back (mng_datap pData, mng_uint16 iRed, mng_uint16 iGreen, mng_uint16 iBlue, mng_uint8 iMandatory, mng_uint16 iImageid, mng_uint8 iTile); mng_retcode mng_create_ani_fram (mng_datap pData, mng_uint8 iFramemode, mng_uint8 iChangedelay, mng_uint32 iDelay, mng_uint8 iChangetimeout, mng_uint32 iTimeout, mng_uint8 iChangeclipping, mng_uint8 iCliptype, mng_int32 iClipl, mng_int32 iClipr, mng_int32 iClipt, mng_int32 iClipb); mng_retcode mng_create_ani_move (mng_datap pData, mng_uint16 iFirstid, mng_uint16 iLastid, mng_uint8 iType, mng_int32 iLocax, mng_int32 iLocay); mng_retcode mng_create_ani_clip (mng_datap pData, mng_uint16 iFirstid, mng_uint16 iLastid, mng_uint8 iType, mng_int32 iClipl, mng_int32 iClipr, mng_int32 iClipt, mng_int32 iClipb); mng_retcode mng_create_ani_show (mng_datap pData, mng_uint16 iFirstid, mng_uint16 iLastid, mng_uint8 iMode); mng_retcode mng_create_ani_term (mng_datap pData, mng_uint8 iTermaction, mng_uint8 iIteraction, mng_uint32 iDelay, mng_uint32 iItermax); #ifndef MNG_SKIPCHUNK_SAVE mng_retcode mng_create_ani_save (mng_datap pData); #endif #ifndef MNG_SKIPCHUNK_SEEK mng_retcode mng_create_ani_seek (mng_datap pData, mng_uint32 iSegmentnamesize, mng_pchar zSegmentname); #endif #ifndef MNG_NO_DELTA_PNG mng_retcode mng_create_ani_dhdr (mng_datap pData, mng_uint16 iObjectid, mng_uint8 iImagetype, mng_uint8 iDeltatype, mng_uint32 iBlockwidth, mng_uint32 iBlockheight, mng_uint32 iBlockx, mng_uint32 iBlocky); mng_retcode mng_create_ani_prom (mng_datap pData, mng_uint8 iBitdepth, mng_uint8 iColortype, mng_uint8 iFilltype); mng_retcode mng_create_ani_ipng (mng_datap pData); mng_retcode mng_create_ani_ijng (mng_datap pData); mng_retcode mng_create_ani_pplt (mng_datap pData, mng_uint8 iType, mng_uint32 iCount, mng_palette8ep paIndexentries, mng_uint8p paAlphaentries, mng_uint8p paUsedentries); #endif #ifndef MNG_SKIPCHUNK_MAGN mng_retcode mng_create_ani_magn (mng_datap pData, mng_uint16 iFirstid, mng_uint16 iLastid, mng_uint8 iMethodX, mng_uint16 iMX, mng_uint16 iMY, mng_uint16 iML, mng_uint16 iMR, mng_uint16 iMT, mng_uint16 iMB, mng_uint8 iMethodY); #endif #ifndef MNG_SKIPCHUNK_PAST mng_retcode mng_create_ani_past (mng_datap pData, mng_uint16 iTargetid, mng_uint8 iTargettype, mng_int32 iTargetx, mng_int32 iTargety, mng_uint32 iCount, mng_ptr pSources); #endif #ifndef MNG_SKIPCHUNK_DISC mng_retcode mng_create_ani_disc (mng_datap pData, mng_uint32 iCount, mng_uint16p pIds); #endif #else /* MNG_OPTIMIZE_CHUNKREADER */ mng_retcode mng_create_ani_plte (mng_datap pData); mng_retcode mng_create_ani_trns (mng_datap pData); mng_retcode mng_create_ani_gama (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_chrm (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_srgb (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_iccp (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_bkgd (mng_datap pData); mng_retcode mng_create_ani_loop (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_endl (mng_datap pData, mng_uint8 iLevel); mng_retcode mng_create_ani_defi (mng_datap pData); mng_retcode mng_create_ani_basi (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_clon (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_back (mng_datap pData); mng_retcode mng_create_ani_fram (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_move (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_clip (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_show (mng_datap pData); mng_retcode mng_create_ani_term (mng_datap pData, mng_chunkp pChunk); #ifndef MNG_SKIPCHUNK_SAVE mng_retcode mng_create_ani_save (mng_datap pData); #endif #ifndef MNG_SKIPCHUNK_SEEK mng_retcode mng_create_ani_seek (mng_datap pData, mng_chunkp pChunk); #endif #ifndef MNG_NO_DELTA_PNG mng_retcode mng_create_ani_dhdr (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_prom (mng_datap pData, mng_chunkp pChunk); mng_retcode mng_create_ani_ipng (mng_datap pData); mng_retcode mng_create_ani_ijng (mng_datap pData); mng_retcode mng_create_ani_pplt (mng_datap pData, mng_uint8 iType, mng_uint32 iCount, mng_palette8ep paIndexentries, mng_uint8p paAlphaentries, mng_uint8p paUsedentries); #endif #ifndef MNG_SKIPCHUNK_MAGN mng_retcode mng_create_ani_magn (mng_datap pData, mng_chunkp pChunk); #endif #ifndef MNG_SKIPCHUNK_PAST mng_retcode mng_create_ani_past (mng_datap pData, mng_chunkp pChunk); #endif #ifndef MNG_SKIPCHUNK_DISC mng_retcode mng_create_ani_disc (mng_datap pData, mng_chunkp pChunk); #endif #endif /* MNG_OPTIMIZE_CHUNKREADER */ /* ************************************************************************** */ mng_retcode mng_free_ani_image (mng_datap pData, mng_objectp pObject); #ifndef MNG_OPTIMIZE_OBJCLEANUP mng_retcode mng_free_ani_plte (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_trns (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_gama (mng_datap pData, mng_objectp pObject); #ifndef MNG_SKIPCHUNK_cHRM mng_retcode mng_free_ani_chrm (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_sRGB mng_retcode mng_free_ani_srgb (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_bKGD mng_retcode mng_free_ani_bkgd (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_LOOP mng_retcode mng_free_ani_endl (mng_datap pData, mng_objectp pObject); #endif mng_retcode mng_free_ani_defi (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_basi (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_clon (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_back (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_fram (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_move (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_clip (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_show (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_term (mng_datap pData, mng_objectp pObject); #ifndef MNG_SKIPCHUNK_SAVE mng_retcode mng_free_ani_save (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_NO_DELTA_PNG mng_retcode mng_free_ani_dhdr (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_prom (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_ipng (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_ijng (mng_datap pData, mng_objectp pObject); mng_retcode mng_free_ani_pplt (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_MAGN mng_retcode mng_free_ani_magn (mng_datap pData, mng_objectp pObject); #endif #endif /* MNG_OPTIMIZE_OBJCLEANUP */ #ifndef MNG_SKIPCHUNK_iCCP mng_retcode mng_free_ani_iccp (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_LOOP mng_retcode mng_free_ani_loop (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_SAVE mng_retcode mng_free_ani_seek (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_PAST mng_retcode mng_free_ani_past (mng_datap pData, mng_objectp pObject); #endif mng_retcode mng_free_ani_disc (mng_datap pData, mng_objectp pObject); /* ************************************************************************** */ mng_retcode mng_process_ani_image (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_plte (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_trns (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_gama (mng_datap pData, mng_objectp pObject); #ifndef MNG_SKIPCHUNK_cHRM mng_retcode mng_process_ani_chrm (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_sRGB mng_retcode mng_process_ani_srgb (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_iCCP mng_retcode mng_process_ani_iccp (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_bKGD mng_retcode mng_process_ani_bkgd (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_LOOP mng_retcode mng_process_ani_loop (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_endl (mng_datap pData, mng_objectp pObject); #endif mng_retcode mng_process_ani_defi (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_basi (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_clon (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_back (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_fram (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_move (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_clip (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_show (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_term (mng_datap pData, mng_objectp pObject); #ifndef MNG_SKIPCHUNK_SAVE mng_retcode mng_process_ani_save (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_SKIPCHUNK_SEEK mng_retcode mng_process_ani_seek (mng_datap pData, mng_objectp pObject); #endif #ifndef MNG_NO_DELTA_PNG mng_retcode mng_process_ani_dhdr (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_prom (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_ipng (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_ijng (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ani_pplt (mng_datap pData, mng_objectp pObject); #endif mng_retcode mng_process_ani_magn (mng_datap pData, mng_objectp pObject); #ifndef MNG_SKIPCHUNK_PAST mng_retcode mng_process_ani_past (mng_datap pData, mng_objectp pObject); #endif mng_retcode mng_process_ani_disc (mng_datap pData, mng_objectp pObject); /* ************************************************************************** */ #ifdef MNG_SUPPORT_DYNAMICMNG #ifndef MNG_OPTIMIZE_CHUNKREADER mng_retcode mng_create_event (mng_datap pData, mng_uint8 iEventtype, mng_uint8 iMasktype, mng_int32 iLeft, mng_int32 iRight, mng_int32 iTop, mng_int32 iBottom, mng_uint16 iObjectid, mng_uint8 iIndex, mng_uint32 iSegmentnamesize, mng_pchar zSegmentname); #else mng_retcode mng_create_event (mng_datap pData, mng_ptr pEntry); #endif mng_retcode mng_free_event (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_event (mng_datap pData, mng_objectp pObject); #endif /* ************************************************************************** */ #ifdef MNG_INCLUDE_MPNG_PROPOSAL #ifndef MNG_OPTIMIZE_CHUNKREADER mng_retcode mng_create_mpng_obj (mng_datap pData, mng_uint32 iFramewidth, mng_uint32 iFrameheight, mng_uint16 iNumplays, mng_uint16 iTickspersec, mng_uint32 iFramessize, mng_ptr pFrames); #else mng_retcode mng_create_mpng_obj (mng_datap pData, mng_ptr pEntry); #endif mng_retcode mng_free_mpng_obj (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_mpng_obj (mng_datap pData, mng_objectp pObject); #endif /* ************************************************************************** */ #ifdef MNG_INCLUDE_ANG_PROPOSAL #ifndef MNG_OPTIMIZE_CHUNKREADER mng_retcode mng_create_ang_obj (mng_datap pData, mng_uint32 iNumframes, mng_uint32 iTickspersec, mng_uint32 iNumplays, mng_uint32 iTilewidth, mng_uint32 iTileheight, mng_uint8 iInterlace, mng_uint8 iStillused); #else mng_retcode mng_create_ang_obj (mng_datap pData, mng_ptr pEntry); #endif mng_retcode mng_free_ang_obj (mng_datap pData, mng_objectp pObject); mng_retcode mng_process_ang_obj (mng_datap pData, mng_objectp pObject); #endif /* ************************************************************************** */ #endif /* MNG_INCLUDE_DISPLAY_PROCS */ /* ************************************************************************** */ #endif /* _libmng_object_prc_h_ */ /* ************************************************************************** */ /* * end of file * */ /* ************************************************************************** */