]> git.sesse.net Git - casparcg/commitdiff
stage: Apply transform on "dest" instead of "source".
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 20 Feb 2012 14:13:41 +0000 (14:13 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 20 Feb 2012 14:13:41 +0000 (14:13 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@2474 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/producer/stage.cpp

index 65ae5e30f161159522f56a5436eb57f8582c753c..a2d5523e31d1452c901ce37a2e71aa11879e2c15 100644 (file)
@@ -63,6 +63,16 @@ public:
                , time_(0)\r
                , tweener_(get_tweener(tween)){}\r
        \r
+       const T& source() const\r
+       {\r
+               return source_;\r
+       }\r
+       \r
+       const T& dest() const\r
+       {\r
+               return dest_;\r
+       }\r
+\r
        T fetch()\r
        {\r
                return time_ == duration_ ? dest_ : tween(static_cast<double>(time_), source_, dest_, static_cast<double>(duration_), tweener_);\r
@@ -183,8 +193,9 @@ public:
                {\r
                        BOOST_FOREACH(auto& transform, transforms)\r
                        {\r
-                               auto src = transforms_[std::get<0>(transform)].fetch();\r
-                               auto dst = std::get<1>(transform)(src);\r
+                               auto& tween = transforms_[std::get<0>(transform)];\r
+                               auto src = tween.fetch();\r
+                               auto dst = std::get<1>(transform)(tween.dest());\r
                                transforms_[std::get<0>(transform)] = tweened_transform<frame_transform>(src, dst, std::get<2>(transform), std::get<3>(transform));\r
                        }\r
                }, high_priority);\r