void init()
{
- fonts.swap(std::move(enumerate_fonts()));
- if(fonts.size() > 0)
+ fonts = enumerate_fonts();
+ if(!fonts.empty())
register_producer_factory(&create_text_producer);
}
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_;
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)));
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(); }