gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r10498: apply_matrix_to_path: don't


From: Sandro Santilli
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r10498: apply_matrix_to_path: don't allocate double as many paths for each shape
Date: Wed, 31 Dec 2008 17:57:29 +0100
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 10498
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Wed 2008-12-31 17:57:29 +0100
message:
  apply_matrix_to_path: don't allocate double as many paths for each shape
modified:
  backend/render_handler_agg.cpp
=== modified file 'backend/render_handler_agg.cpp'
--- a/backend/render_handler_agg.cpp    2008-12-17 07:54:39 +0000
+++ b/backend/render_handler_agg.cpp    2008-12-31 16:57:29 +0000
@@ -921,6 +921,7 @@
     std::vector< agg::path_storage > agg_paths_rounded;  
 
     apply_matrix_to_path(def->get_paths(), paths, mat);
+    //assert(def->get_paths().size() == paths.size());
 
     // Flash only aligns outlines. Probably this is done at rendering
     // level.
@@ -1020,14 +1021,14 @@
     mat.concatenate(stage_matrix);
     mat.concatenate(source_mat);
 
-    size_t pcnt = paths_in.size();
-    paths_out.resize(pcnt);
+    //size_t pcnt = paths_in.size();
+    paths_out = paths_in; // copy paths, then transform in place
     typedef std::vector<path> PathVect;
-    for (PathVect::const_iterator i=paths_in.begin(), e=paths_in.end(); i!=e; 
++i)
+    for (PathVect::iterator i=paths_out.begin(), e=paths_out.end(); i!=e; ++i)
     {
-        path  p = *i;
+        path  &p = *i;
         p.transform(mat);
-        paths_out.push_back( p );
+        //paths_out.push_back( p );
     }
 } // apply_matrix
 


reply via email to

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