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: Sat, 10 Feb 2007 13:39:32 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/02/10 13:39:32

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp 

Log message:
                * server/sprite_instance.cpp: remove characters
                  not in current DisplayList from _frame0_chars when
                  looping back. See patch #5620.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2298&r2=1.2299
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.153&r2=1.154

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2298
retrieving revision 1.2299
diff -u -b -r1.2298 -r1.2299
--- ChangeLog   10 Feb 2007 13:00:41 -0000      1.2298
+++ ChangeLog   10 Feb 2007 13:39:32 -0000      1.2299
@@ -1,5 +1,8 @@
 2007-02-10 Sandro Santilli <address@hidden>
 
+       * server/sprite_instance.cpp: remove characters
+         not in current DisplayList from _frame0_chars when
+         looping back. See patch #5620.
        * testsuite/misc-ming.all/Makefile.am:
          fixed typo in loadMovieTestRunner dependency.
 

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -b -r1.153 -r1.154
--- server/sprite_instance.cpp  9 Feb 2007 00:19:07 -0000       1.153
+++ server/sprite_instance.cpp  10 Feb 2007 13:39:32 -0000      1.154
@@ -1362,21 +1362,28 @@
 /// by ActionScript
 ///
 class ScriptObjectsFinder {
-       std::vector<character*>& _chars;
+       std::vector<character*>& _dynamicChars;
+       std::vector<character*>& _staticChars;
 public:
-       ScriptObjectsFinder(std::vector<character*>& chars)
+       ScriptObjectsFinder(std::vector<character*>& dynamicChars,
+                       std::vector<character*>& staticChars)
                :
-               _chars(chars)
+               _dynamicChars(dynamicChars),
+               _staticChars(staticChars)
        {}
 
        bool operator() (character* ch) 
        {
                // TODO: Are script-transformed object to be kept ?
                //       Need a testcase for this
-               if ( ! ch->get_accept_anim_moves() )
-               //if ( ch->isDynamic() )
+               //if ( ! ch->get_accept_anim_moves() )
+               if ( ch->isDynamic() )
                {
-                       _chars.push_back(ch);
+                       _dynamicChars.push_back(ch);
+               }
+               else
+               {
+                       _staticChars.push_back(ch);
                }
                return true; // keep scanning
        }
@@ -2530,8 +2537,13 @@
 
                // Add script objects in current DisplayList
                std::vector<character*> charsToAdd; 
-               ScriptObjectsFinder scriptObjFinder(charsToAdd);
+               std::vector<character*> charsToKeep; 
+               ScriptObjectsFinder scriptObjFinder(charsToAdd, charsToKeep);
                m_display_list.visitForward(scriptObjFinder);
+
+               // Remove characters which have been removed
+               _frame0_chars.clear_except(charsToKeep);
+
                // NOTE: script objects are *not* allowed to replace depths
                //       of static objects (change second argument to switch)
                _frame0_chars.addAll(charsToAdd, false);




reply via email to

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