gnash-commit
[Top][All Lists]
Advanced

[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);
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]