1 /*
2     Ming, an SWF output library
3     Copyright (C) 2001  Opaque Industries - http://www.opaque.net/
4 
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Lesser General Public
7     License as published by the Free Software Foundation; either
8     version 2.1 of the License, or (at your option) any later version.
9 
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13     Lesser General Public License for more details.
14 
15     You should have received a copy of the GNU Lesser General Public
16     License along with this library; if not, write to the Free Software
17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 */
19 
20 /* displaylist.h
21  *
22  * $Id$
23  *
24  * Notice: This header file contains declarations of functions and types that
25  * are just used internally. All library functions and types that are supposed
26  * to be publicly accessable are defined in ./src/ming.h.
27  */
28 
29 #ifndef SWF_DISPLAYLIST_H_INCLUDED
30 #define SWF_DISPLAYLIST_H_INCLUDED
31 
32 #include "ming.h"
33 #include "blocklist.h"
34 #include "blocks/placeobject.h"
35 
36 
37 typedef struct SWFDisplayList_s *SWFDisplayList;
38 
39 struct SWFDisplayItem_s
40 {
41 	SWFDisplayItem next;
42 
43 	int flags;
44 	int depth;
45 	SWFPlaceObject2Block block;
46 
47 	SWFCharacter character;
48 	SWFPosition position;
49 	SWFMatrix matrix;
50 	struct SWFDisplayList_s *list;
51 };
52 
53 
54 /* display item */
55 
56 SWFCharacter SWFDisplayItem_getCharacter(SWFDisplayItem item);
57 
58 void SWFDisplayItem_endMask(SWFDisplayItem item);
59 
60 /*
61  * Methods for reading position data
62  *  - added by David McNab <david@rebirthing.co.nz>
63  */
64 
65 float SWFDisplayItem_get_x(SWFDisplayItem item);
66 float SWFDisplayItem_get_y(SWFDisplayItem item);
67 float SWFDisplayItem_get_xScale(SWFDisplayItem item);
68 float SWFDisplayItem_get_yScale(SWFDisplayItem item);
69 float SWFDisplayItem_get_xSkew(SWFDisplayItem item);
70 float SWFDisplayItem_get_ySkew(SWFDisplayItem item);
71 float SWFDisplayItem_get_rot(SWFDisplayItem item);
72 
73 
74 /* display list */
75 
76 void destroySWFDisplayList(SWFDisplayList displayList);
77 
78 SWFDisplayList newSWFDisplayList();
79 
80 SWFDisplayList newSWFSpriteDisplayList();
81 
82 void SWFDisplayList_nextFrame(SWFDisplayList list);
83 
84 SWFDisplayItem SWFDisplayList_add(SWFDisplayList list, SWFCharacter shape);
85 
86 void SWFDisplayList_writeBlocks(SWFDisplayList list, SWFBlockList blocklist);
87 
88 void SWFDisplayList_setSoundStream(SWFDisplayList list, SWFSoundStream stream);
89 
90 void SWFDisplayList_rewindSoundStream(SWFDisplayList list);
91 
92 #endif /* SWF_DISPLAYLIST_H_INCLUDED */
93