1
/* ************************************************************************** */
2
/* * For conditions of distribution and use, * */
3
/* * see copyright notice in libmng.h * */
4
/* ************************************************************************** */
6
/* * project : libmng * */
7
/* * file : libmng_objects.h copyright (c) 2000-2004 G.Juyn * */
8
/* * version : 1.0.7 * */
10
/* * purpose : Internal object structures (definition) * */
12
/* * author : G.Juyn * */
14
/* * comment : Definition of the internal object structures * */
16
/* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */
17
/* * - changed strict-ANSI stuff * */
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 * */
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 * */
37
/* * 0.9.2 - 08/05/2000 - G.Juyn * */
38
/* * - changed file-prefixes * */
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 * */
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 * */
62
/* * 1.0.6 - 10/07/2003 - G.R-P * */
63
/* * - added SKIPCHUNK conditionals * */
65
/* * 1.0.7 - 03/24/2004 - G.R-P * */
66
/* * - added more SKIPCHUNK conditionals * */
68
/* ************************************************************************** */
70
#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
71
#pragma option -A /* force ANSI-C */
74
#ifndef _libmng_objects_h_
75
#define _libmng_objects_h_
77
/* ************************************************************************** */
79
#ifdef MNG_INCLUDE_DISPLAY_PROCS
81
/* ************************************************************************** */
83
typedef mng_retcode (*mng_cleanupobject) (mng_datap pData,
86
typedef mng_retcode (*mng_processobject) (mng_datap pData,
89
/* ************************************************************************** */
92
mng_cleanupobject fCleanup;
93
mng_processobject fProcess;
94
mng_objectp pNext; /* for double-linked list */
100
typedef mng_object_header * mng_object_headerp;
102
/* ************************************************************************** */
104
typedef struct { /* MNG specification "object-buffer" */
105
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
106
mng_uint32 iRefcount; /* reference counter */
107
mng_bool bFrozen; /* frozen flag */
108
mng_bool bConcrete; /* concrete flag */
109
mng_bool bViewable; /* viewable flag */
110
mng_uint32 iWidth; /* image specifics */
113
mng_uint8 iColortype;
114
mng_uint8 iCompression;
116
mng_uint8 iInterlace;
118
mng_bool bCorrected; /* indicates if an abstract image
119
has already been color-corrected */
121
mng_uint8 iAlphabitdepth; /* used only for JNG images */
122
mng_uint8 iJHDRcompression;
123
mng_uint8 iJHDRinterlace;
125
mng_uint8 iPixelsampledepth; /* used with delta-images */
126
mng_uint8 iAlphasampledepth;
128
mng_bool bHasPLTE; /* PLTE chunk present */
129
mng_bool bHasTRNS; /* tRNS chunk present */
130
mng_bool bHasGAMA; /* gAMA chunk present */
131
mng_bool bHasCHRM; /* cHRM chunk present */
132
mng_bool bHasSRGB; /* sRGB chunk present */
133
mng_bool bHasICCP; /* iCCP chunk present */
134
mng_bool bHasBKGD; /* bKGD chunk present */
136
mng_uint32 iPLTEcount; /* PLTE fields */
137
mng_rgbpaltab aPLTEentries;
139
mng_uint16 iTRNSgray; /* tRNS fields */
141
mng_uint16 iTRNSgreen;
142
mng_uint16 iTRNSblue;
143
mng_uint32 iTRNScount;
144
mng_uint8arr aTRNSentries;
146
mng_uint32 iGamma; /* gAMA fields */
148
mng_uint32 iWhitepointx; /* cHRM fields */
149
mng_uint32 iWhitepointy;
150
mng_uint32 iPrimaryredx;
151
mng_uint32 iPrimaryredy;
152
mng_uint32 iPrimarygreenx;
153
mng_uint32 iPrimarygreeny;
154
mng_uint32 iPrimarybluex;
155
mng_uint32 iPrimarybluey;
157
mng_uint8 iRenderingintent; /* sRGB fields */
159
mng_uint32 iProfilesize; /* iCCP fields */
162
mng_uint8 iBKGDindex; /* bKGD fields */
163
mng_uint16 iBKGDgray;
165
mng_uint16 iBKGDgreen;
166
mng_uint16 iBKGDblue;
168
mng_uint32 iSamplesize; /* size of a sample */
169
mng_uint32 iRowsize; /* size of a row of samples */
170
mng_uint32 iImgdatasize; /* size of the sample data buffer */
171
mng_uint8p pImgdata; /* actual sample data buffer */
174
typedef mng_imagedata * mng_imagedatap;
176
/* ************************************************************************** */
178
typedef struct { /* MNG specification "object" */
179
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
180
mng_uint16 iId; /* object-id */
181
mng_bool bFrozen; /* frozen flag */
182
mng_bool bVisible; /* potential visibility flag */
183
mng_bool bViewable; /* viewable flag */
184
mng_bool bValid; /* marks invalid when only reading */
185
mng_int32 iPosx; /* location fields */
187
mng_bool bClipped; /* clipping fields */
192
#ifndef MNG_SKIPCHUNK_MAGN
193
mng_uint8 iMAGN_MethodX; /* magnification (MAGN) */
194
mng_uint8 iMAGN_MethodY;
202
#ifndef MNG_SKIPCHUNK_PAST
203
mng_int32 iPastx; /* target x/y from previous PAST */
206
mng_imagedatap pImgbuf; /* the image-data buffer */
208
typedef mng_image * mng_imagep;
210
/* ************************************************************************** */
212
/* "on-the-fly" image (= object 0) */
213
typedef mng_image mng_ani_image; /* let's (ab)use the general "object" */
214
typedef mng_ani_image * mng_ani_imagep; /* that's actualy crucial, so don't change it! */
216
/* ************************************************************************** */
218
typedef struct { /* global PLTE object */
219
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
220
mng_uint32 iEntrycount;
221
mng_rgbpaltab aEntries;
223
typedef mng_ani_plte * mng_ani_pltep;
225
/* ************************************************************************** */
227
typedef struct { /* global tRNS object */
228
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
230
mng_uint8arr aRawdata;
232
typedef mng_ani_trns * mng_ani_trnsp;
234
/* ************************************************************************** */
236
typedef struct { /* global gAMA object */
237
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
241
typedef mng_ani_gama * mng_ani_gamap;
243
/* ************************************************************************** */
245
#ifndef MNG_SKIPCHUNK_cHRM
246
typedef struct { /* global cHRM object */
247
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
249
mng_uint32 iWhitepointx;
250
mng_uint32 iWhitepointy;
258
typedef mng_ani_chrm * mng_ani_chrmp;
261
/* ************************************************************************** */
263
typedef struct { /* global sRGB object */
264
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
266
mng_uint8 iRenderingintent;
268
typedef mng_ani_srgb * mng_ani_srgbp;
270
/* ************************************************************************** */
272
#ifndef MNG_SKIPCHUNK_iCCP
273
typedef struct { /* global iCCP object */
274
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
276
mng_uint32 iProfilesize;
279
typedef mng_ani_iccp * mng_ani_iccpp;
282
/* ************************************************************************** */
284
typedef struct { /* global bKGD object */
285
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
290
typedef mng_ani_bkgd * mng_ani_bkgdp;
292
/* ************************************************************************** */
294
typedef struct { /* LOOP object */
295
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
297
mng_uint32 iRepeatcount;
302
mng_uint32p pSignals;
304
mng_uint32 iRunningcount; /* running counter */
306
typedef mng_ani_loop * mng_ani_loopp;
308
/* ************************************************************************** */
310
typedef struct { /* ENDL object */
311
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
314
mng_ani_loopp pLOOP; /* matching LOOP */
316
typedef mng_ani_endl * mng_ani_endlp;
318
/* ************************************************************************** */
320
typedef struct { /* DEFI object */
321
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
323
mng_bool bHasdonotshow;
324
mng_uint8 iDonotshow;
325
mng_bool bHasconcrete;
336
typedef mng_ani_defi * mng_ani_defip;
338
/* ************************************************************************** */
340
typedef struct { /* BASI object */
341
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
349
typedef mng_ani_basi * mng_ani_basip;
351
/* ************************************************************************** */
353
typedef struct { /* CLON object */
354
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
356
mng_uint16 iSourceid;
357
mng_uint8 iClonetype;
358
mng_bool bHasdonotshow;
359
mng_uint8 iDonotshow;
366
typedef mng_ani_clon * mng_ani_clonp;
368
/* ************************************************************************** */
370
typedef struct { /* BACK object */
371
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
375
mng_uint8 iMandatory;
379
typedef mng_ani_back * mng_ani_backp;
381
/* ************************************************************************** */
383
typedef struct { /* FRAM object */
384
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
385
mng_uint8 iFramemode;
386
mng_uint8 iChangedelay;
388
mng_uint8 iChangetimeout;
390
mng_uint8 iChangeclipping;
397
typedef mng_ani_fram * mng_ani_framp;
399
/* ************************************************************************** */
401
typedef struct { /* MOVE object */
402
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
409
typedef mng_ani_move * mng_ani_movep;
411
/* ************************************************************************** */
413
typedef struct { /* CLIP object */
414
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
423
typedef mng_ani_clip * mng_ani_clipp;
425
/* ************************************************************************** */
427
typedef struct { /* SHOW object */
428
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
433
typedef mng_ani_show * mng_ani_showp;
435
/* ************************************************************************** */
437
typedef struct { /* TERM object */
438
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
439
mng_uint8 iTermaction;
440
mng_uint8 iIteraction;
444
typedef mng_ani_term * mng_ani_termp;
446
/* ************************************************************************** */
448
typedef struct { /* SAVE object */
449
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
451
typedef mng_ani_save * mng_ani_savep;
453
/* ************************************************************************** */
455
typedef struct { /* SEEK object */
456
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
457
mng_uint32 iSegmentnamesize;
458
mng_pchar zSegmentname;
460
typedef mng_ani_seek * mng_ani_seekp;
462
/* ************************************************************************** */
463
#ifndef MNG_NO_DELTA_PNG
464
typedef struct { /* DHDR object */
465
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
466
mng_uint16 iObjectid;
467
mng_uint8 iImagetype;
468
mng_uint8 iDeltatype;
469
mng_uint32 iBlockwidth;
470
mng_uint32 iBlockheight;
474
typedef mng_ani_dhdr * mng_ani_dhdrp;
476
/* ************************************************************************** */
478
typedef struct { /* PROM object */
479
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
481
mng_uint8 iColortype;
484
typedef mng_ani_prom * mng_ani_promp;
486
/* ************************************************************************** */
488
typedef struct { /* IPNG object */
489
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
491
typedef mng_ani_ipng * mng_ani_ipngp;
493
/* ************************************************************************** */
495
typedef struct { /* IJNG object */
496
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
498
typedef mng_ani_ijng * mng_ani_ijngp;
500
/* ************************************************************************** */
502
typedef struct { /* PPLT object */
503
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
506
mng_rgbpaltab aIndexentries;
507
mng_uint8arr aAlphaentries;
508
mng_uint8arr aUsedentries;
510
typedef mng_ani_pplt * mng_ani_ppltp;
513
/* ************************************************************************** */
515
#ifndef MNG_SKIPCHUNK_MAGN
516
typedef struct { /* MAGN object */
517
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
529
typedef mng_ani_magn * mng_ani_magnp;
532
/* ************************************************************************** */
534
#ifndef MNG_SKIPCHUNK_PAST
535
typedef struct { /* PAST object */
536
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
537
mng_uint16 iTargetid;
538
mng_uint8 iTargettype;
544
typedef mng_ani_past * mng_ani_pastp;
547
/* ************************************************************************** */
549
#ifndef MNG_SKIPCHUNK_DISC
550
typedef struct { /* DISC object */
551
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
555
typedef mng_ani_disc * mng_ani_discp;
558
/* ************************************************************************** */
560
#ifdef MNG_SUPPORT_DYNAMICMNG
561
typedef struct { /* event object */
562
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
563
mng_uint8 iEventtype;
569
mng_uint16 iObjectid;
571
mng_uint32 iSegmentnamesize;
572
mng_pchar zSegmentname;
574
mng_ani_seekp pSEEK; /* SEEK ani object */
575
mng_int32 iLastx; /* last X/Y coordinates */
578
typedef mng_event * mng_eventp;
581
/* ************************************************************************** */
583
#endif /* MNG_INCLUDE_DISPLAY_PROCS */
585
/* ************************************************************************** */
587
#endif /* _libmng_objects_h_ */
589
/* ************************************************************************** */
590
/* * end of file * */
591
/* ************************************************************************** */
1
/* ************************************************************************** */
2
/* * For conditions of distribution and use, * */
3
/* * see copyright notice in libmng.h * */
4
/* ************************************************************************** */
6
/* * project : libmng * */
7
/* * file : libmng_objects.h copyright (c) 2000-2004 G.Juyn * */
8
/* * version : 1.0.9 * */
10
/* * purpose : Internal object structures (definition) * */
12
/* * author : G.Juyn * */
14
/* * comment : Definition of the internal object structures * */
16
/* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */
17
/* * - changed strict-ANSI stuff * */
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 * */
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 * */
37
/* * 0.9.2 - 08/05/2000 - G.Juyn * */
38
/* * - changed file-prefixes * */
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 * */
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 * */
62
/* * 1.0.6 - 10/07/2003 - G.R-P * */
63
/* * - added SKIPCHUNK conditionals * */
65
/* * 1.0.7 - 03/24/2004 - G.R-P * */
66
/* * - added more SKIPCHUNK conditionals * */
68
/* * 1.0.9 - 12/05/2004 - G.Juyn * */
69
/* * - added conditional MNG_OPTIMIZE_OBJCLEANUP * */
71
/* ************************************************************************** */
73
#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
74
#pragma option -A /* force ANSI-C */
77
#ifndef _libmng_objects_h_
78
#define _libmng_objects_h_
80
/* ************************************************************************** */
82
#ifdef MNG_INCLUDE_DISPLAY_PROCS
84
/* ************************************************************************** */
86
typedef mng_retcode (*mng_cleanupobject) (mng_datap pData,
89
typedef mng_retcode (*mng_processobject) (mng_datap pData,
92
/* ************************************************************************** */
95
mng_cleanupobject fCleanup;
96
mng_processobject fProcess;
97
mng_objectp pNext; /* for double-linked list */
101
mng_uint32 iPlaytime;
102
#ifdef MNG_OPTIMIZE_OBJCLEANUP
106
typedef mng_object_header * mng_object_headerp;
108
/* ************************************************************************** */
110
typedef struct { /* MNG specification "object-buffer" */
111
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
112
mng_uint32 iRefcount; /* reference counter */
113
mng_bool bFrozen; /* frozen flag */
114
mng_bool bConcrete; /* concrete flag */
115
mng_bool bViewable; /* viewable flag */
116
mng_uint32 iWidth; /* image specifics */
119
mng_uint8 iColortype;
120
mng_uint8 iCompression;
122
mng_uint8 iInterlace;
124
mng_bool bCorrected; /* indicates if an abstract image
125
has already been color-corrected */
127
mng_uint8 iAlphabitdepth; /* used only for JNG images */
128
mng_uint8 iJHDRcompression;
129
mng_uint8 iJHDRinterlace;
131
mng_uint8 iPixelsampledepth; /* used with delta-images */
132
mng_uint8 iAlphasampledepth;
134
mng_bool bHasPLTE; /* PLTE chunk present */
135
mng_bool bHasTRNS; /* tRNS chunk present */
136
mng_bool bHasGAMA; /* gAMA chunk present */
137
mng_bool bHasCHRM; /* cHRM chunk present */
138
mng_bool bHasSRGB; /* sRGB chunk present */
139
mng_bool bHasICCP; /* iCCP chunk present */
140
mng_bool bHasBKGD; /* bKGD chunk present */
142
mng_uint32 iPLTEcount; /* PLTE fields */
143
mng_rgbpaltab aPLTEentries;
145
mng_uint16 iTRNSgray; /* tRNS fields */
147
mng_uint16 iTRNSgreen;
148
mng_uint16 iTRNSblue;
149
mng_uint32 iTRNScount;
150
mng_uint8arr aTRNSentries;
152
mng_uint32 iGamma; /* gAMA fields */
154
mng_uint32 iWhitepointx; /* cHRM fields */
155
mng_uint32 iWhitepointy;
156
mng_uint32 iPrimaryredx;
157
mng_uint32 iPrimaryredy;
158
mng_uint32 iPrimarygreenx;
159
mng_uint32 iPrimarygreeny;
160
mng_uint32 iPrimarybluex;
161
mng_uint32 iPrimarybluey;
163
mng_uint8 iRenderingintent; /* sRGB fields */
165
mng_uint32 iProfilesize; /* iCCP fields */
168
mng_uint8 iBKGDindex; /* bKGD fields */
169
mng_uint16 iBKGDgray;
171
mng_uint16 iBKGDgreen;
172
mng_uint16 iBKGDblue;
174
mng_uint32 iSamplesize; /* size of a sample */
175
mng_uint32 iRowsize; /* size of a row of samples */
176
mng_uint32 iImgdatasize; /* size of the sample data buffer */
177
mng_uint8p pImgdata; /* actual sample data buffer */
180
typedef mng_imagedata * mng_imagedatap;
182
/* ************************************************************************** */
184
typedef struct { /* MNG specification "object" */
185
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
186
mng_uint16 iId; /* object-id */
187
mng_bool bFrozen; /* frozen flag */
188
mng_bool bVisible; /* potential visibility flag */
189
mng_bool bViewable; /* viewable flag */
190
mng_bool bValid; /* marks invalid when only reading */
191
mng_int32 iPosx; /* location fields */
193
mng_bool bClipped; /* clipping fields */
198
#ifndef MNG_SKIPCHUNK_MAGN
199
mng_uint8 iMAGN_MethodX; /* magnification (MAGN) */
200
mng_uint8 iMAGN_MethodY;
208
#ifndef MNG_SKIPCHUNK_PAST
209
mng_int32 iPastx; /* target x/y from previous PAST */
212
mng_imagedatap pImgbuf; /* the image-data buffer */
214
typedef mng_image * mng_imagep;
216
/* ************************************************************************** */
218
/* "on-the-fly" image (= object 0) */
219
typedef mng_image mng_ani_image; /* let's (ab)use the general "object" */
220
typedef mng_ani_image * mng_ani_imagep; /* that's actualy crucial, so don't change it! */
222
/* ************************************************************************** */
224
typedef struct { /* global PLTE object */
225
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
226
mng_uint32 iEntrycount;
227
mng_rgbpaltab aEntries;
229
typedef mng_ani_plte * mng_ani_pltep;
231
/* ************************************************************************** */
233
typedef struct { /* global tRNS object */
234
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
236
mng_uint8arr aRawdata;
238
typedef mng_ani_trns * mng_ani_trnsp;
240
/* ************************************************************************** */
242
typedef struct { /* global gAMA object */
243
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
247
typedef mng_ani_gama * mng_ani_gamap;
249
/* ************************************************************************** */
251
#ifndef MNG_SKIPCHUNK_cHRM
252
typedef struct { /* global cHRM object */
253
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
255
mng_uint32 iWhitepointx;
256
mng_uint32 iWhitepointy;
264
typedef mng_ani_chrm * mng_ani_chrmp;
267
/* ************************************************************************** */
269
typedef struct { /* global sRGB object */
270
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
272
mng_uint8 iRenderingintent;
274
typedef mng_ani_srgb * mng_ani_srgbp;
276
/* ************************************************************************** */
278
#ifndef MNG_SKIPCHUNK_iCCP
279
typedef struct { /* global iCCP object */
280
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
282
mng_uint32 iProfilesize;
285
typedef mng_ani_iccp * mng_ani_iccpp;
288
/* ************************************************************************** */
290
typedef struct { /* global bKGD object */
291
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
296
typedef mng_ani_bkgd * mng_ani_bkgdp;
298
/* ************************************************************************** */
300
typedef struct { /* LOOP object */
301
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
303
mng_uint32 iRepeatcount;
308
mng_uint32p pSignals;
310
mng_uint32 iRunningcount; /* running counter */
312
typedef mng_ani_loop * mng_ani_loopp;
314
/* ************************************************************************** */
316
typedef struct { /* ENDL object */
317
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
320
mng_ani_loopp pLOOP; /* matching LOOP */
322
typedef mng_ani_endl * mng_ani_endlp;
324
/* ************************************************************************** */
326
typedef struct { /* DEFI object */
327
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
329
mng_bool bHasdonotshow;
330
mng_uint8 iDonotshow;
331
mng_bool bHasconcrete;
342
typedef mng_ani_defi * mng_ani_defip;
344
/* ************************************************************************** */
346
typedef struct { /* BASI object */
347
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
355
typedef mng_ani_basi * mng_ani_basip;
357
/* ************************************************************************** */
359
typedef struct { /* CLON object */
360
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
362
mng_uint16 iSourceid;
363
mng_uint8 iClonetype;
364
mng_bool bHasdonotshow;
365
mng_uint8 iDonotshow;
372
typedef mng_ani_clon * mng_ani_clonp;
374
/* ************************************************************************** */
376
typedef struct { /* BACK object */
377
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
381
mng_uint8 iMandatory;
385
typedef mng_ani_back * mng_ani_backp;
387
/* ************************************************************************** */
389
typedef struct { /* FRAM object */
390
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
391
mng_uint8 iFramemode;
392
mng_uint8 iChangedelay;
394
mng_uint8 iChangetimeout;
396
mng_uint8 iChangeclipping;
403
typedef mng_ani_fram * mng_ani_framp;
405
/* ************************************************************************** */
407
typedef struct { /* MOVE object */
408
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
415
typedef mng_ani_move * mng_ani_movep;
417
/* ************************************************************************** */
419
typedef struct { /* CLIP object */
420
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
429
typedef mng_ani_clip * mng_ani_clipp;
431
/* ************************************************************************** */
433
typedef struct { /* SHOW object */
434
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
439
typedef mng_ani_show * mng_ani_showp;
441
/* ************************************************************************** */
443
typedef struct { /* TERM object */
444
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
445
mng_uint8 iTermaction;
446
mng_uint8 iIteraction;
450
typedef mng_ani_term * mng_ani_termp;
452
/* ************************************************************************** */
454
typedef struct { /* SAVE object */
455
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
457
typedef mng_ani_save * mng_ani_savep;
459
/* ************************************************************************** */
461
typedef struct { /* SEEK object */
462
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
463
mng_uint32 iSegmentnamesize;
464
mng_pchar zSegmentname;
466
typedef mng_ani_seek * mng_ani_seekp;
468
/* ************************************************************************** */
469
#ifndef MNG_NO_DELTA_PNG
470
typedef struct { /* DHDR object */
471
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
472
mng_uint16 iObjectid;
473
mng_uint8 iImagetype;
474
mng_uint8 iDeltatype;
475
mng_uint32 iBlockwidth;
476
mng_uint32 iBlockheight;
480
typedef mng_ani_dhdr * mng_ani_dhdrp;
482
/* ************************************************************************** */
484
typedef struct { /* PROM object */
485
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
487
mng_uint8 iColortype;
490
typedef mng_ani_prom * mng_ani_promp;
492
/* ************************************************************************** */
494
typedef struct { /* IPNG object */
495
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
497
typedef mng_ani_ipng * mng_ani_ipngp;
499
/* ************************************************************************** */
501
typedef struct { /* IJNG object */
502
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
504
typedef mng_ani_ijng * mng_ani_ijngp;
506
/* ************************************************************************** */
508
typedef struct { /* PPLT object */
509
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
512
mng_rgbpaltab aIndexentries;
513
mng_uint8arr aAlphaentries;
514
mng_uint8arr aUsedentries;
516
typedef mng_ani_pplt * mng_ani_ppltp;
519
/* ************************************************************************** */
521
#ifndef MNG_SKIPCHUNK_MAGN
522
typedef struct { /* MAGN object */
523
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
535
typedef mng_ani_magn * mng_ani_magnp;
538
/* ************************************************************************** */
540
#ifndef MNG_SKIPCHUNK_PAST
541
typedef struct { /* PAST object */
542
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
543
mng_uint16 iTargetid;
544
mng_uint8 iTargettype;
550
typedef mng_ani_past * mng_ani_pastp;
553
/* ************************************************************************** */
555
#ifndef MNG_SKIPCHUNK_DISC
556
typedef struct { /* DISC object */
557
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
561
typedef mng_ani_disc * mng_ani_discp;
564
/* ************************************************************************** */
566
#ifdef MNG_SUPPORT_DYNAMICMNG
567
typedef struct { /* event object */
568
mng_object_header sHeader; /* default header (DO NOT REMOVE) */
569
mng_uint8 iEventtype;
575
mng_uint16 iObjectid;
577
mng_uint32 iSegmentnamesize;
578
mng_pchar zSegmentname;
580
mng_ani_seekp pSEEK; /* SEEK ani object */
581
mng_int32 iLastx; /* last X/Y coordinates */
584
typedef mng_event * mng_eventp;
587
/* ************************************************************************** */
589
#endif /* MNG_INCLUDE_DISPLAY_PROCS */
591
/* ************************************************************************** */
593
#endif /* _libmng_objects_h_ */
595
/* ************************************************************************** */
596
/* * end of file * */
597
/* ************************************************************************** */