X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fproducer%2Ftext%2Ftext_producer.cpp;h=bbb798d2e78154a03e666d97de339902ba8a02ed;hb=b0a6986ce56a18a56e67be266d6d253af7cdcbb5;hp=7777cd9b2c790dcea5aca416735c3fe8cb0e37b0;hpb=ad66cff9a6a3d35e4765c9ab4289ed0976d52c7b;p=casparcg diff --git a/core/producer/text/text_producer.cpp b/core/producer/text/text_producer.cpp index 7777cd9b2..bbb798d2e 100644 --- a/core/producer/text/text_producer.cpp +++ b/core/producer/text/text_producer.cpp @@ -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 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(tracking_.value().get())); - std::vector 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& text_producer::text() { return impl_->text(); } binding& text_producer::tracking() { return impl_->tracking(); } const binding& text_producer::current_bearing_y() const { return impl_->current_bearing_y(); }