16 std::shared_ptr<bool> context_alive;
18 bool contextAlive()
const noexcept
20 return context && context_alive && *context_alive;
25 int32_t node_id{score::gfx::invalid_node_index};
29 : texture_parameter{n}
31 , context_alive{ctx ? ctx->alive :
nullptr}
34 node_id = context->ui->register_node(std::unique_ptr<score::gfx::Node>{node});
37 void push_texture(port_index idx)
39 port_index source = idx;
40 port_index sink = port_index{this->node_id, 0};
41 context->setEdge(source, sink, Process::CableType::ImmediateGlutton);
47 context->ui->unregister_node(node_id);
55 : protocol_base{flags{}}
60 bool pull(ossia::net::parameter_base&)
override {
return false; }
61 bool push(
const ossia::net::parameter_base&,
const ossia::value& v)
override
65 bool push_raw(
const ossia::net::full_parameter_data&)
override {
return false; }
66 bool observe(ossia::net::parameter_base&,
bool)
override {
return false; }
67 bool update(ossia::net::node_base& node_base)
override {
return false; }
72 ossia::net::device_base& m_device;
74 std::unique_ptr<gfx_parameter_base> m_parameter;
81 , m_parameter{std::make_unique<gfx_parameter_base>(*
this, gfxmodel, proto.context)}
83 m_name = std::move(name);
89 ossia::net::device_base& get_device()
const override {
return m_device; }
90 ossia::net::node_base* get_parent()
const override {
return m_parent; }
91 ossia::net::node_base& set_name(std::string)
override {
return *
this; }
92 ossia::net::parameter_base* create_parameter(ossia::val_type)
override
94 return m_parameter.get();
96 bool remove_parameter()
override {
return false; }
98 std::unique_ptr<ossia::net::node_base> make_child(
const std::string& name)
override
102 void removing_child(ossia::net::node_base& node_base)
override { }