#include <boost/timer.hpp>\r
\r
#include <tbb/parallel_for_each.h>\r
+#include <tbb/concurrent_unordered_map.h>\r
\r
#include <boost/property_tree/ptree.hpp>\r
\r
struct stage::implementation : public std::enable_shared_from_this<implementation>\r
, boost::noncopyable\r
{ \r
- safe_ptr<diagnostics::graph> graph_;\r
- safe_ptr<stage::target_t> target_;\r
- video_format_desc format_desc_;\r
-\r
- boost::timer produce_timer_;\r
- boost::timer tick_timer_;\r
-\r
- std::map<int, layer> layers_; \r
- std::map<int, tweened_transform<core::frame_transform>> transforms_; \r
+ safe_ptr<diagnostics::graph> graph_;\r
+ safe_ptr<stage::target_t> target_;\r
+ video_format_desc format_desc_;\r
+ \r
+ boost::timer produce_timer_;\r
+ boost::timer tick_timer_;\r
+ \r
+ std::map<int, layer> layers_; \r
+ tbb::concurrent_unordered_map<int, tweened_transform<core::frame_transform>> transforms_; \r
\r
executor executor_;\r
public:\r
{\r
executor_.begin_invoke([=]\r
{\r
- transforms_.erase(index);\r
+ transforms_[index] = tweened_transform<core::frame_transform>();\r
}, high_priority);\r
}\r
\r