18 std::shared_ptr<bool> context_alive;
20 bool contextAlive()
const noexcept
22 return context && context_alive && *context_alive;
27 int32_t node_id{score::gfx::invalid_node_index};
31 : texture_parameter{n}
33 , context_alive{ctx ? ctx->alive :
nullptr}
36 node_id = context->ui->register_node(std::unique_ptr<score::gfx::Node>{node});
39 void push_texture(port_index idx)
41 port_index source = idx;
42 port_index sink = port_index{this->node_id, 0};
43 context->setEdge(source, sink, Process::CableType::ImmediateGlutton);
49 context->ui->unregister_node(node_id);
57 : protocol_base{flags{}}
62 bool pull(ossia::net::parameter_base&)
override {
return false; }
63 bool push(
const ossia::net::parameter_base&,
const ossia::value& v)
override
67 bool push_raw(
const ossia::net::full_parameter_data&)
override {
return false; }
68 bool observe(ossia::net::parameter_base&,
bool)
override {
return false; }
69 bool update(ossia::net::node_base& node_base)
override {
return false; }
74 ossia::net::device_base& m_device;
76 std::unique_ptr<gfx_parameter_base> m_parameter;
83 , m_parameter{std::make_unique<gfx_parameter_base>(*
this, gfxmodel, proto.context)}
85 m_name = std::move(name);
91 ossia::net::device_base& get_device()
const override {
return m_device; }
92 ossia::net::node_base* get_parent()
const override {
return m_parent; }
93 ossia::net::node_base& set_name(std::string)
override {
return *
this; }
94 ossia::net::parameter_base* create_parameter(ossia::val_type)
override
96 return m_parameter.get();
98 bool remove_parameter()
override {
return false; }
100 std::unique_ptr<ossia::net::node_base> make_child(
const std::string& name)
override
104 void removing_child(ossia::net::node_base& node_base)
override { }