[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ./ChangeLog server/movie_def_impl.cpp ser...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ./ChangeLog server/movie_def_impl.cpp ser... |
Date: |
Tue, 09 May 2006 16:07:52 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Branch:
Changes by: Sandro Santilli <address@hidden> 06/05/09 16:07:52
Modified files:
. : ChangeLog
server : movie_def_impl.cpp sprite_definition.cpp
sprite_definition.h
server/swf : tag_loaders.cpp tag_loaders.h
Log message:
modified sprite_definition constructor to automatically read the SWF
stream.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.282&tr2=1.283&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/movie_def_impl.cpp.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/sprite_definition.cpp.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/sprite_definition.h.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/swf/tag_loaders.cpp.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/swf/tag_loaders.h.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.282 gnash/ChangeLog:1.283
--- gnash/ChangeLog:1.282 Tue May 9 15:34:15 2006
+++ gnash/ChangeLog Tue May 9 16:07:52 2006
@@ -1,5 +1,8 @@
2006-05-09 Sandro Santilli <address@hidden>
+ * server/sprite_definition.h, server/sprite_definition.cpp,
+ server/impl.cpp: modified sprite_definition constructor to
+ automatically read the SWF stream.
* server/swf: new swf directory for SWF parsing related classes.
* server/swf/TagLoadersTable.{h,cpp}: new class modeling a
table of tag loaders.
Index: gnash/server/movie_def_impl.cpp
diff -u gnash/server/movie_def_impl.cpp:1.5 gnash/server/movie_def_impl.cpp:1.6
--- gnash/server/movie_def_impl.cpp:1.5 Tue May 9 15:34:16 2006
+++ gnash/server/movie_def_impl.cpp Tue May 9 16:07:52 2006
@@ -56,6 +56,7 @@
#include "bitmap_character_def.h"
#include "smart_ptr.h"
#include "swf/TagLoadersTable.h"
+#include "execute_tag.h"
using namespace std;
Index: gnash/server/sprite_definition.cpp
diff -u gnash/server/sprite_definition.cpp:1.4
gnash/server/sprite_definition.cpp:1.5
--- gnash/server/sprite_definition.cpp:1.4 Tue May 9 15:34:16 2006
+++ gnash/server/sprite_definition.cpp Tue May 9 16:07:52 2006
@@ -79,10 +79,12 @@
}
}
+/*private*/
+// only called from constructors
void
sprite_definition::read(stream* in)
{
- int tag_end = in->get_tag_end_position();
+ int tag_end = in->get_tag_end_position();
m_frame_count = in->read_u16();
@@ -152,7 +154,7 @@
m_named_frames[n] = m_loading_frame;
}
-sprite_definition::sprite_definition(movie_definition* m)
+sprite_definition::sprite_definition(movie_definition* m, stream* in)
:
_tag_loaders(s_tag_loaders), // FIXME: use a class-static
TagLoadersTable for sprite_definition
m_movie_def(m),
@@ -160,6 +162,7 @@
m_loading_frame(0)
{
assert(m_movie_def);
+ read(in);
}
Index: gnash/server/sprite_definition.h
diff -u gnash/server/sprite_definition.h:1.5
gnash/server/sprite_definition.h:1.6
--- gnash/server/sprite_definition.h:1.5 Tue May 9 15:34:16 2006
+++ gnash/server/sprite_definition.h Tue May 9 16:07:52 2006
@@ -61,25 +61,28 @@
public:
- sprite_definition(movie_definition* m);
-
- /// Destructor, releases playlist data
- ~sprite_definition();
-
/// \brief
/// Read the sprite info from input stream.
//
- /// Consists of a series of tags.
+ /// A sprite definition consists of a series control tags.
///
- // @@ Could be another constructor
- void read(stream* in);
+ /// @param m
+ sprite_definition(movie_definition* m, stream* in);
+
+ /// Destructor, releases playlist data
+ ~sprite_definition();
private:
- /// Tags loader table
+ void read(stream* in);
+
+ /// Tags loader table.
+ //
+ /// TODO: make it a static member, specific to sprite_definition
SWF::TagLoadersTable& _tag_loaders;
/// Top-level movie (the one with a character_def)
+ /// (or is it just the parent?)
movie_definition* m_movie_def;
/// movie control events for each frame.
Index: gnash/server/swf/tag_loaders.cpp
diff -u gnash/server/swf/tag_loaders.cpp:1.1
gnash/server/swf/tag_loaders.cpp:1.2
--- gnash/server/swf/tag_loaders.cpp:1.1 Tue May 9 15:34:16 2006
+++ gnash/server/swf/tag_loaders.cpp Tue May 9 16:07:52 2006
@@ -1098,25 +1098,28 @@
m->add_execute_tag(ch);
}
-
-
-
-
-
-
-void sprite_loader(stream* in, tag_type tag, movie_definition* m)
- // Create and initialize a sprite, and add it to the movie.
+// Create and initialize a sprite, and add it to the movie.
+void
+sprite_loader(stream* in, tag_type tag, movie_definition* m)
{
- assert(tag == SWF::DEFINESPRITE); // 39 - DefineSprite
+ assert(tag == SWF::DEFINESPRITE); // 39 - DefineSprite
- int character_id = in->read_u16();
+ int character_id = in->read_u16();
+
+ IF_VERBOSE_PARSE(log_msg(" sprite\n char id = %d\n", character_id));
- IF_VERBOSE_PARSE(log_msg(" sprite\n char id = %d\n", character_id));
+ /// A DEFINESPRITE tag as part of a DEFINESPRITE
+ /// would be a malformed SWF
+ if ( ! dynamic_cast<movie_def_impl>(m) )
+ {
+ log_error("Malformed SWF (nested DEFINESPRITE tags)");
+ }
- sprite_definition* ch = new sprite_definition(m); // @@ combine
sprite_definition with movie_def_impl
- ch->read(in);
+ // will automatically read the sprite
+ sprite_definition* ch = new sprite_definition(m, in);
+ //ch->read(in);
- m->add_character(character_id, ch);
+ m->add_character(character_id, ch);
}
Index: gnash/server/swf/tag_loaders.h
diff -u gnash/server/swf/tag_loaders.h:1.1 gnash/server/swf/tag_loaders.h:1.2
--- gnash/server/swf/tag_loaders.h:1.1 Tue May 9 15:34:16 2006
+++ gnash/server/swf/tag_loaders.h Tue May 9 16:07:52 2006
@@ -101,6 +101,10 @@
void define_bits_lossless_2_loader(stream*, tag_type, movie_definition*);
+/// Create and initialize a sprite, and add it to the movie.
+//
+/// Handles a SWF::DEFINESPRITE tag
+///
void sprite_loader(stream*, tag_type, movie_definition*);
void end_loader(stream*, tag_type, movie_definition*);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ./ChangeLog server/movie_def_impl.cpp ser...,
Sandro Santilli <=