]> git.sesse.net Git - casparcg/blobdiff - core/producer/text/text_producer.cpp
Merged most recent OSC changes
[casparcg] / core / producer / text / text_producer.cpp
index 7777cd9b2c790dcea5aca416735c3fe8cb0e37b0..bbb798d2e78154a03e666d97de339902ba8a02ed 100644 (file)
@@ -113,8 +113,8 @@ namespace caspar { namespace core {
 
                void init()
                {
-                       fonts.swap(std::move(enumerate_fonts()));
-                       if(fonts.size() > 0)
+                       fonts = enumerate_fonts();
+                       if(!fonts.empty())
                                register_producer_factory(&create_text_producer);
                }
 
@@ -130,6 +130,7 @@ namespace caspar { namespace core {
 
 struct text_producer::impl
 {
+       monitor::subject monitor_subject_;
        spl::shared_ptr<core::frame_factory> frame_factory_;
        constraints constraints_;
        int x_, y_, parent_width_, parent_height_;
@@ -188,7 +189,7 @@ public:
 
                text::string_metrics metrics;
                font_.set_tracking(static_cast<int>(tracking_.value().get()));
-               std::vector<float> vertex_stream(std::move(font_.create_vertex_stream(text_.value().get(), x_, y_, parent_width_, parent_height_, &metrics)));
+               auto vertex_stream = font_.create_vertex_stream(text_.value().get(), x_, y_, parent_width_, parent_height_, &metrics);
                auto frame = frame_factory_->create_frame(vertex_stream.data(), pfd);
                memcpy(frame.image_data().data(), atlas_.data(), frame.image_data().size());
                frame.set_geometry(frame_geometry(frame_geometry::quad_list, std::move(vertex_stream)));
@@ -308,8 +309,7 @@ constraints& text_producer::pixel_constraints() { return impl_->pixel_constraint
 std::wstring text_producer::print() const { return impl_->print(); }
 std::wstring text_producer::name() const { return impl_->name(); }
 boost::property_tree::wptree text_producer::info() const { return impl_->info(); }
-void text_producer::subscribe(const monitor::observable::observer_ptr& o) {}
-void text_producer::unsubscribe(const monitor::observable::observer_ptr& o) {}
+monitor::subject& text_producer::monitor_output() { return impl_->monitor_subject_; }
 binding<std::wstring>& text_producer::text() { return impl_->text(); }
 binding<double>& text_producer::tracking() { return impl_->tracking(); }
 const binding<double>& text_producer::current_bearing_y() const { return impl_->current_bearing_y(); }