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