src/3rdparty/libmng/libmng_objects.h
changeset 0 1918ee327afb
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /* ************************************************************************** */
       
     2 /* *             For conditions of distribution and use,                    * */
       
     3 /* *                see copyright notice in libmng.h                        * */
       
     4 /* ************************************************************************** */
       
     5 /* *                                                                        * */
       
     6 /* * project   : libmng                                                     * */
       
     7 /* * file      : libmng_objects.h          copyright (c) 2000-2007 G.Juyn   * */
       
     8 /* * version   : 1.0.10                                                     * */
       
     9 /* *                                                                        * */
       
    10 /* * purpose   : Internal object structures (definition)                    * */
       
    11 /* *                                                                        * */
       
    12 /* * author    : G.Juyn                                                     * */
       
    13 /* *                                                                        * */
       
    14 /* * comment   : Definition of the internal object structures               * */
       
    15 /* *                                                                        * */
       
    16 /* * changes   : 0.5.1 - 05/08/2000 - G.Juyn                                * */
       
    17 /* *             - changed strict-ANSI stuff                                * */
       
    18 /* *                                                                        * */
       
    19 /* *             0.5.2 - 05/23/2000 - G.Juyn                                * */
       
    20 /* *             - changed inclusion to DISPLAY_PROCS                       * */
       
    21 /* *             0.5.2 - 05/24/2000 - G.Juyn                                * */
       
    22 /* *             - added global color-chunks for animations                 * */
       
    23 /* *             - added global PLTE,tRNS,bKGD chunks for animation         * */
       
    24 /* *             - added SAVE & SEEK animation objects                      * */
       
    25 /* *             0.5.2 - 05/29/2000 - G.Juyn                                * */
       
    26 /* *             - added framenr/layernr/playtime to object header          * */
       
    27 /* *             0.5.2 - 05/30/2000 - G.Juyn                                * */
       
    28 /* *             - added ani-objects for delta-image processing             * */
       
    29 /* *             - added compression/filter/interlace fields to             * */
       
    30 /* *               object-buffer for delta-image processing                 * */
       
    31 /* *                                                                        * */
       
    32 /* *             0.5.3 - 06/17/2000 - G.Juyn                                * */
       
    33 /* *             - changed definition of aTRNSentries                       * */
       
    34 /* *             0.5.3 - 06/22/2000 - G.Juyn                                * */
       
    35 /* *             - added definition for PPLT animation-processing           * */
       
    36 /* *                                                                        * */
       
    37 /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
       
    38 /* *             - changed file-prefixes                                    * */
       
    39 /* *                                                                        * */
       
    40 /* *             0.9.3 - 08/26/2000 - G.Juyn                                * */
       
    41 /* *             - added MAGN chunk                                         * */
       
    42 /* *             0.9.3 - 09/10/2000 - G.Juyn                                * */
       
    43 /* *             - fixed DEFI behavior                                      * */
       
    44 /* *             0.9.3 - 10/16/2000 - G.Juyn                                * */
       
    45 /* *             - added support for delta-JNG                              * */
       
    46 /* *             0.9.3 - 10/17/2000 - G.Juyn                                * */
       
    47 /* *             - added valid-flag to stored objects for read() / display()* */
       
    48 /* *             0.9.3 - 10/19/2000 - G.Juyn                                * */
       
    49 /* *             - added storage for pixel-/alpha-sampledepth for delta's   * */
       
    50 /* *                                                                        * */
       
    51 /* *             1.0.5 - 09/13/2002 - G.Juyn                                * */
       
    52 /* *             - fixed read/write of MAGN chunk                           * */
       
    53 /* *             1.0.5 - 09/15/2002 - G.Juyn                                * */
       
    54 /* *             - added event handling for dynamic MNG                     * */
       
    55 /* *             1.0.5 - 09/20/2002 - G.Juyn                                * */
       
    56 /* *             - added support for PAST                                   * */
       
    57 /* *             1.0.5 - 09/23/2002 - G.Juyn                                * */
       
    58 /* *             - added in-memory color-correction of abstract images      * */
       
    59 /* *             1.0.5 - 10/07/2002 - G.Juyn                                * */
       
    60 /* *             - fixed DISC support                                       * */
       
    61 /* *                                                                        * */
       
    62 /* *             1.0.6 - 10/07/2003 - G.R-P                                 * */
       
    63 /* *             - added SKIPCHUNK conditionals                             * */
       
    64 /* *                                                                        * */
       
    65 /* *             1.0.7 - 03/24/2004 - G.R-P                                 * */
       
    66 /* *             - added more SKIPCHUNK conditionals                        * */
       
    67 /* *                                                                        * */
       
    68 /* *             1.0.9 - 12/05/2004 - G.Juyn                                * */
       
    69 /* *             - added conditional MNG_OPTIMIZE_OBJCLEANUP                * */
       
    70 /* *                                                                        * */
       
    71 /* *             1.0.10 - 04/08/2007 - G.Juyn                               * */
       
    72 /* *             - added support for mPNG proposal                          * */
       
    73 /* *             1.0.10 - 04/12/2007 - G.Juyn                               * */
       
    74 /* *             - added support for ANG proposal                           * */
       
    75 /* *                                                                        * */
       
    76 /* ************************************************************************** */
       
    77 
       
    78 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
       
    79 #pragma option -A                      /* force ANSI-C */
       
    80 #endif
       
    81 
       
    82 #ifndef _libmng_objects_h_
       
    83 #define _libmng_objects_h_
       
    84 
       
    85 /* ************************************************************************** */
       
    86 
       
    87 #ifdef MNG_INCLUDE_DISPLAY_PROCS
       
    88 
       
    89 /* ************************************************************************** */
       
    90 
       
    91 typedef mng_retcode (*mng_cleanupobject) (mng_datap    pData,
       
    92                                           mng_objectp  pHeader);
       
    93 
       
    94 typedef mng_retcode (*mng_processobject) (mng_datap    pData,
       
    95                                           mng_objectp  pHeader);
       
    96 
       
    97 /* ************************************************************************** */
       
    98 
       
    99 typedef struct {
       
   100            mng_cleanupobject fCleanup;
       
   101            mng_processobject fProcess;
       
   102            mng_objectp       pNext;              /* for double-linked list */
       
   103            mng_objectp       pPrev;
       
   104            mng_uint32        iFramenr;
       
   105            mng_uint32        iLayernr;
       
   106            mng_uint32        iPlaytime;
       
   107 #ifdef MNG_OPTIMIZE_OBJCLEANUP
       
   108            mng_size_t        iObjsize;                    
       
   109 #endif
       
   110         } mng_object_header;
       
   111 typedef mng_object_header * mng_object_headerp;
       
   112 
       
   113 /* ************************************************************************** */
       
   114 
       
   115 typedef struct {                                 /* MNG specification "object-buffer" */
       
   116            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   117            mng_uint32        iRefcount;          /* reference counter */
       
   118            mng_bool          bFrozen;            /* frozen flag */
       
   119            mng_bool          bConcrete;          /* concrete flag */
       
   120            mng_bool          bViewable;          /* viewable flag */
       
   121            mng_uint32        iWidth;             /* image specifics */
       
   122            mng_uint32        iHeight;
       
   123            mng_uint8         iBitdepth;
       
   124            mng_uint8         iColortype;
       
   125            mng_uint8         iCompression;
       
   126            mng_uint8         iFilter;
       
   127            mng_uint8         iInterlace;
       
   128 
       
   129            mng_bool          bCorrected;         /* indicates if an abstract image
       
   130                                                     has already been color-corrected */
       
   131            
       
   132            mng_uint8         iAlphabitdepth;     /* used only for JNG images */
       
   133            mng_uint8         iJHDRcompression;
       
   134            mng_uint8         iJHDRinterlace;
       
   135 
       
   136            mng_uint8         iPixelsampledepth;  /* used with delta-images */
       
   137            mng_uint8         iAlphasampledepth;
       
   138 
       
   139            mng_bool          bHasPLTE;           /* PLTE chunk present */
       
   140            mng_bool          bHasTRNS;           /* tRNS chunk present */
       
   141            mng_bool          bHasGAMA;           /* gAMA chunk present */
       
   142            mng_bool          bHasCHRM;           /* cHRM chunk present */
       
   143            mng_bool          bHasSRGB;           /* sRGB chunk present */
       
   144            mng_bool          bHasICCP;           /* iCCP chunk present */
       
   145            mng_bool          bHasBKGD;           /* bKGD chunk present */
       
   146 
       
   147            mng_uint32        iPLTEcount;         /* PLTE fields */
       
   148            mng_rgbpaltab     aPLTEentries;
       
   149 
       
   150            mng_uint16        iTRNSgray;          /* tRNS fields */
       
   151            mng_uint16        iTRNSred;
       
   152            mng_uint16        iTRNSgreen;
       
   153            mng_uint16        iTRNSblue;
       
   154            mng_uint32        iTRNScount;
       
   155            mng_uint8arr      aTRNSentries;
       
   156 
       
   157            mng_uint32        iGamma;             /* gAMA fields */
       
   158 
       
   159            mng_uint32        iWhitepointx;       /* cHRM fields */
       
   160            mng_uint32        iWhitepointy;
       
   161            mng_uint32        iPrimaryredx;
       
   162            mng_uint32        iPrimaryredy;
       
   163            mng_uint32        iPrimarygreenx;
       
   164            mng_uint32        iPrimarygreeny;
       
   165            mng_uint32        iPrimarybluex;
       
   166            mng_uint32        iPrimarybluey;
       
   167 
       
   168            mng_uint8         iRenderingintent;   /* sRGB fields */
       
   169 
       
   170            mng_uint32        iProfilesize;       /* iCCP fields */
       
   171            mng_ptr           pProfile;
       
   172 
       
   173            mng_uint8         iBKGDindex;         /* bKGD fields */
       
   174            mng_uint16        iBKGDgray;
       
   175            mng_uint16        iBKGDred;
       
   176            mng_uint16        iBKGDgreen;
       
   177            mng_uint16        iBKGDblue;
       
   178 
       
   179            mng_uint32        iSamplesize;        /* size of a sample */
       
   180            mng_uint32        iRowsize;           /* size of a row of samples */
       
   181            mng_uint32        iImgdatasize;       /* size of the sample data buffer */
       
   182            mng_uint8p        pImgdata;           /* actual sample data buffer */
       
   183 
       
   184          } mng_imagedata;
       
   185 typedef mng_imagedata * mng_imagedatap;
       
   186 
       
   187 /* ************************************************************************** */
       
   188 
       
   189 typedef struct {                                 /* MNG specification "object" */
       
   190            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   191            mng_uint16        iId;                /* object-id */
       
   192            mng_bool          bFrozen;            /* frozen flag */
       
   193            mng_bool          bVisible;           /* potential visibility flag */
       
   194            mng_bool          bViewable;          /* viewable flag */
       
   195            mng_bool          bValid;             /* marks invalid when only reading */
       
   196            mng_int32         iPosx;              /* location fields */
       
   197            mng_int32         iPosy;
       
   198            mng_bool          bClipped;           /* clipping fields */
       
   199            mng_int32         iClipl;
       
   200            mng_int32         iClipr;
       
   201            mng_int32         iClipt;
       
   202            mng_int32         iClipb;
       
   203 #ifndef MNG_SKIPCHUNK_MAGN
       
   204            mng_uint8         iMAGN_MethodX;      /* magnification (MAGN) */
       
   205            mng_uint8         iMAGN_MethodY;
       
   206            mng_uint16        iMAGN_MX;
       
   207            mng_uint16        iMAGN_MY;
       
   208            mng_uint16        iMAGN_ML;
       
   209            mng_uint16        iMAGN_MR;
       
   210            mng_uint16        iMAGN_MT;
       
   211            mng_uint16        iMAGN_MB;
       
   212 #endif
       
   213 #ifndef MNG_SKIPCHUNK_PAST
       
   214            mng_int32         iPastx;             /* target x/y from previous PAST */
       
   215            mng_int32         iPasty;
       
   216 #endif
       
   217            mng_imagedatap    pImgbuf;            /* the image-data buffer */
       
   218         } mng_image;
       
   219 typedef mng_image * mng_imagep;
       
   220 
       
   221 /* ************************************************************************** */
       
   222 
       
   223                                                  /* "on-the-fly" image (= object 0) */       
       
   224 typedef mng_image mng_ani_image;                 /* let's (ab)use the general "object" */
       
   225 typedef mng_ani_image * mng_ani_imagep;          /* that's actualy crucial, so don't change it! */
       
   226 
       
   227 /* ************************************************************************** */
       
   228 
       
   229 typedef struct {                                 /* global PLTE object */
       
   230            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   231            mng_uint32        iEntrycount;
       
   232            mng_rgbpaltab     aEntries;
       
   233         } mng_ani_plte;
       
   234 typedef mng_ani_plte * mng_ani_pltep;
       
   235 
       
   236 /* ************************************************************************** */
       
   237 
       
   238 typedef struct {                                 /* global tRNS object */
       
   239            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   240            mng_uint32        iRawlen;
       
   241            mng_uint8arr      aRawdata;
       
   242         } mng_ani_trns;
       
   243 typedef mng_ani_trns * mng_ani_trnsp;
       
   244 
       
   245 /* ************************************************************************** */
       
   246 
       
   247 typedef struct {                                 /* global gAMA object */
       
   248            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   249            mng_bool          bEmpty;
       
   250            mng_uint32        iGamma;
       
   251         } mng_ani_gama;
       
   252 typedef mng_ani_gama * mng_ani_gamap;
       
   253 
       
   254 /* ************************************************************************** */
       
   255 
       
   256 #ifndef MNG_SKIPCHUNK_cHRM
       
   257 typedef struct {                                 /* global cHRM object */
       
   258            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   259            mng_bool          bEmpty;
       
   260            mng_uint32        iWhitepointx;
       
   261            mng_uint32        iWhitepointy;
       
   262            mng_uint32        iRedx;
       
   263            mng_uint32        iRedy;
       
   264            mng_uint32        iGreenx;
       
   265            mng_uint32        iGreeny;
       
   266            mng_uint32        iBluex;
       
   267            mng_uint32        iBluey;
       
   268         } mng_ani_chrm;
       
   269 typedef mng_ani_chrm * mng_ani_chrmp;
       
   270 #endif
       
   271 
       
   272 /* ************************************************************************** */
       
   273 
       
   274 typedef struct {                                 /* global sRGB object */
       
   275            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   276            mng_bool          bEmpty;
       
   277            mng_uint8         iRenderingintent;
       
   278         } mng_ani_srgb;
       
   279 typedef mng_ani_srgb * mng_ani_srgbp;
       
   280 
       
   281 /* ************************************************************************** */
       
   282 
       
   283 #ifndef MNG_SKIPCHUNK_iCCP
       
   284 typedef struct {                                 /* global iCCP object */
       
   285            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   286            mng_bool          bEmpty;
       
   287            mng_uint32        iProfilesize;
       
   288            mng_ptr           pProfile;
       
   289         } mng_ani_iccp;
       
   290 typedef mng_ani_iccp * mng_ani_iccpp;
       
   291 #endif
       
   292 
       
   293 /* ************************************************************************** */
       
   294 
       
   295 typedef struct {                                 /* global bKGD object */
       
   296            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   297            mng_uint16        iRed;
       
   298            mng_uint16        iGreen;
       
   299            mng_uint16        iBlue;
       
   300         } mng_ani_bkgd;
       
   301 typedef mng_ani_bkgd * mng_ani_bkgdp;
       
   302 
       
   303 /* ************************************************************************** */
       
   304 
       
   305 typedef struct {                                 /* LOOP object */
       
   306            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   307            mng_uint8         iLevel;
       
   308            mng_uint32        iRepeatcount;
       
   309            mng_uint8         iTermcond;
       
   310            mng_uint32        iItermin;
       
   311            mng_uint32        iItermax;
       
   312            mng_uint32        iCount;
       
   313            mng_uint32p       pSignals;
       
   314 
       
   315            mng_uint32        iRunningcount;      /* running counter */
       
   316         } mng_ani_loop;
       
   317 typedef mng_ani_loop * mng_ani_loopp;
       
   318 
       
   319 /* ************************************************************************** */
       
   320 
       
   321 typedef struct {                                 /* ENDL object */
       
   322            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   323            mng_uint8         iLevel;
       
   324 
       
   325            mng_ani_loopp     pLOOP;              /* matching LOOP */
       
   326         } mng_ani_endl;
       
   327 typedef mng_ani_endl * mng_ani_endlp;
       
   328 
       
   329 /* ************************************************************************** */
       
   330 
       
   331 typedef struct {                                 /* DEFI object */
       
   332            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   333            mng_uint16        iId;                
       
   334            mng_bool          bHasdonotshow;
       
   335            mng_uint8         iDonotshow;
       
   336            mng_bool          bHasconcrete;
       
   337            mng_uint8         iConcrete;
       
   338            mng_bool          bHasloca;           
       
   339            mng_int32         iLocax;
       
   340            mng_int32         iLocay;
       
   341            mng_bool          bHasclip;
       
   342            mng_int32         iClipl;
       
   343            mng_int32         iClipr;
       
   344            mng_int32         iClipt;
       
   345            mng_int32         iClipb;
       
   346         } mng_ani_defi;
       
   347 typedef mng_ani_defi * mng_ani_defip;
       
   348 
       
   349 /* ************************************************************************** */
       
   350 
       
   351 typedef struct {                                 /* BASI object */
       
   352            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   353            mng_uint16        iRed;               
       
   354            mng_uint16        iGreen;             
       
   355            mng_uint16        iBlue;              
       
   356            mng_bool          bHasalpha;             
       
   357            mng_uint16        iAlpha;
       
   358            mng_uint8         iViewable;
       
   359         } mng_ani_basi;
       
   360 typedef mng_ani_basi * mng_ani_basip;
       
   361 
       
   362 /* ************************************************************************** */
       
   363 
       
   364 typedef struct {                                 /* CLON object */
       
   365            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   366            mng_uint16        iCloneid;
       
   367            mng_uint16        iSourceid;
       
   368            mng_uint8         iClonetype;
       
   369            mng_bool          bHasdonotshow;
       
   370            mng_uint8         iDonotshow;
       
   371            mng_uint8         iConcrete;
       
   372            mng_bool          bHasloca;
       
   373            mng_uint8         iLocatype;
       
   374            mng_int32         iLocax;
       
   375            mng_int32         iLocay;
       
   376         } mng_ani_clon;
       
   377 typedef mng_ani_clon * mng_ani_clonp;
       
   378 
       
   379 /* ************************************************************************** */
       
   380 
       
   381 typedef struct {                                 /* BACK object */
       
   382            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   383            mng_uint16        iRed;
       
   384            mng_uint16        iGreen;
       
   385            mng_uint16        iBlue;
       
   386            mng_uint8         iMandatory;
       
   387            mng_uint16        iImageid;
       
   388            mng_uint8         iTile;
       
   389         } mng_ani_back;
       
   390 typedef mng_ani_back * mng_ani_backp;
       
   391 
       
   392 /* ************************************************************************** */
       
   393 
       
   394 typedef struct {                                 /* FRAM object */
       
   395            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   396            mng_uint8         iFramemode;
       
   397            mng_uint8         iChangedelay;
       
   398            mng_uint32        iDelay;
       
   399            mng_uint8         iChangetimeout;
       
   400            mng_uint32        iTimeout;
       
   401            mng_uint8         iChangeclipping;
       
   402            mng_uint8         iCliptype;
       
   403            mng_int32         iClipl;
       
   404            mng_int32         iClipr;
       
   405            mng_int32         iClipt;
       
   406            mng_int32         iClipb;
       
   407         } mng_ani_fram;
       
   408 typedef mng_ani_fram * mng_ani_framp;
       
   409 
       
   410 /* ************************************************************************** */
       
   411 
       
   412 typedef struct {                                 /* MOVE object */
       
   413            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   414            mng_uint16        iFirstid;           
       
   415            mng_uint16        iLastid;            
       
   416            mng_uint8         iType;              
       
   417            mng_int32         iLocax;             
       
   418            mng_int32         iLocay;
       
   419         } mng_ani_move;
       
   420 typedef mng_ani_move * mng_ani_movep;
       
   421 
       
   422 /* ************************************************************************** */
       
   423 
       
   424 typedef struct {                                 /* CLIP object */
       
   425            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   426            mng_uint16        iFirstid;           
       
   427            mng_uint16        iLastid;            
       
   428            mng_uint8         iType;              
       
   429            mng_int32         iClipl;             
       
   430            mng_int32         iClipr;             
       
   431            mng_int32         iClipt;             
       
   432            mng_int32         iClipb;
       
   433         } mng_ani_clip;
       
   434 typedef mng_ani_clip * mng_ani_clipp;
       
   435 
       
   436 /* ************************************************************************** */
       
   437 
       
   438 typedef struct {                                 /* SHOW object */
       
   439            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   440            mng_uint16        iFirstid;           
       
   441            mng_uint16        iLastid;            
       
   442            mng_uint8         iMode;
       
   443         } mng_ani_show;
       
   444 typedef mng_ani_show * mng_ani_showp;
       
   445 
       
   446 /* ************************************************************************** */
       
   447 
       
   448 typedef struct {                                 /* TERM object */
       
   449            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   450            mng_uint8         iTermaction;        
       
   451            mng_uint8         iIteraction;        
       
   452            mng_uint32        iDelay;             
       
   453            mng_uint32        iItermax;
       
   454         } mng_ani_term;
       
   455 typedef mng_ani_term * mng_ani_termp;
       
   456 
       
   457 /* ************************************************************************** */
       
   458 
       
   459 typedef struct {                                 /* SAVE object */
       
   460            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   461         } mng_ani_save;
       
   462 typedef mng_ani_save * mng_ani_savep;
       
   463 
       
   464 /* ************************************************************************** */
       
   465 
       
   466 typedef struct {                                 /* SEEK object */
       
   467            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   468            mng_uint32        iSegmentnamesize;
       
   469            mng_pchar         zSegmentname;
       
   470         } mng_ani_seek;
       
   471 typedef mng_ani_seek * mng_ani_seekp;
       
   472 
       
   473 /* ************************************************************************** */
       
   474 #ifndef MNG_NO_DELTA_PNG
       
   475 typedef struct {                                 /* DHDR object */
       
   476            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   477            mng_uint16        iObjectid;
       
   478            mng_uint8         iImagetype;
       
   479            mng_uint8         iDeltatype;
       
   480            mng_uint32        iBlockwidth;
       
   481            mng_uint32        iBlockheight;
       
   482            mng_uint32        iBlockx;
       
   483            mng_uint32        iBlocky;
       
   484         } mng_ani_dhdr;
       
   485 typedef mng_ani_dhdr * mng_ani_dhdrp;
       
   486 
       
   487 /* ************************************************************************** */
       
   488 
       
   489 typedef struct {                                 /* PROM object */
       
   490            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   491            mng_uint8         iBitdepth;
       
   492            mng_uint8         iColortype;
       
   493            mng_uint8         iFilltype;
       
   494         } mng_ani_prom;
       
   495 typedef mng_ani_prom * mng_ani_promp;
       
   496 
       
   497 /* ************************************************************************** */
       
   498 
       
   499 typedef struct {                                 /* IPNG object */
       
   500            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   501         } mng_ani_ipng;
       
   502 typedef mng_ani_ipng * mng_ani_ipngp;
       
   503 
       
   504 /* ************************************************************************** */
       
   505 
       
   506 typedef struct {                                 /* IJNG object */
       
   507            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   508         } mng_ani_ijng;
       
   509 typedef mng_ani_ijng * mng_ani_ijngp;
       
   510 
       
   511 /* ************************************************************************** */
       
   512 
       
   513 typedef struct {                                 /* PPLT object */
       
   514            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   515            mng_uint8         iType;
       
   516            mng_uint32        iCount;
       
   517            mng_rgbpaltab     aIndexentries;
       
   518            mng_uint8arr      aAlphaentries;
       
   519            mng_uint8arr      aUsedentries;
       
   520         } mng_ani_pplt;
       
   521 typedef mng_ani_pplt * mng_ani_ppltp;
       
   522 #endif
       
   523 
       
   524 /* ************************************************************************** */
       
   525 
       
   526 #ifndef MNG_SKIPCHUNK_MAGN
       
   527 typedef struct {                                 /* MAGN object */
       
   528            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   529            mng_uint16        iFirstid;
       
   530            mng_uint16        iLastid;
       
   531            mng_uint8         iMethodX;
       
   532            mng_uint16        iMX;
       
   533            mng_uint16        iMY;
       
   534            mng_uint16        iML;
       
   535            mng_uint16        iMR;
       
   536            mng_uint16        iMT;
       
   537            mng_uint16        iMB;
       
   538            mng_uint8         iMethodY;
       
   539         } mng_ani_magn;
       
   540 typedef mng_ani_magn * mng_ani_magnp;
       
   541 #endif
       
   542 
       
   543 /* ************************************************************************** */
       
   544 
       
   545 #ifndef MNG_SKIPCHUNK_PAST
       
   546 typedef struct {                                 /* PAST object */
       
   547            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   548            mng_uint16        iTargetid;
       
   549            mng_uint8         iTargettype;
       
   550            mng_int32         iTargetx;
       
   551            mng_int32         iTargety;
       
   552            mng_uint32        iCount;
       
   553            mng_ptr           pSources;
       
   554         } mng_ani_past;
       
   555 typedef mng_ani_past * mng_ani_pastp;
       
   556 #endif
       
   557 
       
   558 /* ************************************************************************** */
       
   559 
       
   560 #ifndef MNG_SKIPCHUNK_DISC
       
   561 typedef struct {                                 /* DISC object */
       
   562            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   563            mng_uint32        iCount;
       
   564            mng_uint16p       pIds;
       
   565         } mng_ani_disc;
       
   566 typedef mng_ani_disc * mng_ani_discp;
       
   567 #endif
       
   568 
       
   569 /* ************************************************************************** */
       
   570 
       
   571 #ifdef MNG_SUPPORT_DYNAMICMNG
       
   572 typedef struct {                                 /* event object */
       
   573            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   574            mng_uint8         iEventtype;
       
   575            mng_uint8         iMasktype;
       
   576            mng_int32         iLeft;
       
   577            mng_int32         iRight;
       
   578            mng_int32         iTop;
       
   579            mng_int32         iBottom;
       
   580            mng_uint16        iObjectid;
       
   581            mng_uint8         iIndex;
       
   582            mng_uint32        iSegmentnamesize;
       
   583            mng_pchar         zSegmentname;
       
   584 
       
   585            mng_ani_seekp     pSEEK;              /* SEEK ani object */
       
   586            mng_int32         iLastx;             /* last X/Y coordinates */
       
   587            mng_int32         iLasty;
       
   588         } mng_event;
       
   589 typedef mng_event * mng_eventp;
       
   590 #endif
       
   591 
       
   592 /* ************************************************************************** */
       
   593 
       
   594 #ifdef MNG_INCLUDE_MPNG_PROPOSAL
       
   595 typedef struct {                                 /* mPNG object */
       
   596            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   597            mng_uint32        iFramewidth;
       
   598            mng_uint32        iFrameheight;
       
   599            mng_uint32        iNumplays;
       
   600            mng_uint16        iTickspersec;
       
   601            mng_uint32        iFramessize;
       
   602            mng_ptr           pFrames;
       
   603         } mng_mpng_obj;
       
   604 typedef mng_mpng_obj * mng_mpng_objp;
       
   605 #endif
       
   606 
       
   607 /* ************************************************************************** */
       
   608 
       
   609 #ifdef MNG_INCLUDE_ANG_PROPOSAL
       
   610 typedef struct {                                 /* ANG object */
       
   611            mng_object_header sHeader;            /* default header (DO NOT REMOVE) */
       
   612            mng_uint32        iNumframes;
       
   613            mng_uint32        iTickspersec;
       
   614            mng_uint32        iNumplays;
       
   615            mng_uint32        iTilewidth;
       
   616            mng_uint32        iTileheight;
       
   617            mng_uint8         iInterlace;
       
   618            mng_uint8         iStillused;
       
   619            mng_uint32        iTilessize;
       
   620            mng_ptr           pTiles;
       
   621         } mng_ang_obj;
       
   622 typedef mng_ang_obj * mng_ang_objp;
       
   623 #endif
       
   624 
       
   625 /* ************************************************************************** */
       
   626 
       
   627 #endif /* MNG_INCLUDE_DISPLAY_PROCS */
       
   628 
       
   629 /* ************************************************************************** */
       
   630 
       
   631 #endif /* _libmng_objects_h_ */
       
   632 
       
   633 /* ************************************************************************** */
       
   634 /* * end of file                                                            * */
       
   635 /* ************************************************************************** */