[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp |
Date: |
Fri, 06 Apr 2007 16:23:43 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/04/06 16:23:43
Modified files:
. : ChangeLog
server : sprite_instance.cpp
Log message:
* server/sprite_instance.cpp (ScriptObjectFinder):
use character depth to tell wheter objects have to
be considered "script" objects or not. Fixes the
all.swf regression and doesn't change our testsuite
results.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2800&r2=1.2801
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.226&r2=1.227
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2800
retrieving revision 1.2801
diff -u -b -r1.2800 -r1.2801
--- ChangeLog 6 Apr 2007 15:53:24 -0000 1.2800
+++ ChangeLog 6 Apr 2007 16:23:43 -0000 1.2801
@@ -1,5 +1,10 @@
2007-04-06 Sandro Santilli <address@hidden>
+ * server/sprite_instance.cpp (ScriptObjectFinder):
+ use character depth to tell wheter objects have to
+ be considered "script" objects or not. Fixes the
+ all.swf regression and doesn't change our testsuite
+ results.
* testsuite/actionscript.all/MovieClip.as: test both
ActionRemoveClip and MovieClip.removeMovieClip; also
tests that there's no such think as a _global.removeMovieClip.
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.226
retrieving revision 1.227
diff -u -b -r1.226 -r1.227
--- server/sprite_instance.cpp 6 Apr 2007 15:36:05 -0000 1.226
+++ server/sprite_instance.cpp 6 Apr 2007 16:23:43 -0000 1.227
@@ -1488,7 +1488,7 @@
/// A DisplayList visitor used to extract script characters
//
/// Script characters are characters created or transformed
-/// by ActionScript
+/// by ActionScript.
///
class ScriptObjectsFinder {
std::vector<character*>& _dynamicChars;
@@ -1506,7 +1506,9 @@
// TODO: Are script-transformed object to be kept ?
// Need a testcase for this
//if ( ! ch->get_accept_anim_moves() )
- if ( ch->isDynamic() )
+ //if ( ch->isDynamic() )
+ int depth = ch->get_depth();
+ if ( depth < -16384 || depth >= 0 )
{
_dynamicChars.push_back(ch);
}
@@ -1518,29 +1520,6 @@
}
};
-/// A DisplayList visitor used to extract static characters
-//
-/// Static characters are characters instantiaced trough display-list SWF tags
-///
-class StaticObjectsFinder {
- std::vector<character*>& _chars;
-public:
- StaticObjectsFinder(std::vector<character*>& chars)
- :
- _chars(chars)
- {}
-
- bool operator() (character* ch)
- {
- //if ( ch->get_accept_anim_moves() )
- if ( ! ch->isDynamic() )
- {
- _chars.push_back(ch);
- }
- return true; // keep scanning
- }
-};
-
/// A DisplayList visitor used to extract all characters
//
/// Script characters are characters created or transformed
@@ -2273,17 +2252,17 @@
void
sprite_instance::resetDisplayList()
{
- // Resort frame0 DisplayList as depth of
- // characters in it might have been
- // externally changed.
- _frame0_chars.sort();
-
// Add script objects in current DisplayList
std::vector<character*> charsToAdd;
std::vector<character*> charsToKeep;
ScriptObjectsFinder scriptObjFinder(charsToAdd, charsToKeep);
m_display_list.visitForward(scriptObjFinder);
+ // Resort frame0 DisplayList as depth of
+ // characters in it might have been
+ // externally changed.
+ _frame0_chars.sort();
+
// Remove characters which have been removed
_frame0_chars.clear_except(charsToKeep);