2#include <Gfx/GfxDevice.hpp>
3#include <Gfx/GfxExecContext.hpp>
4#include <ossia/gfx/texture_parameter.hpp>
5#include <ossia/network/base/device.hpp>
6#include <ossia/network/base/protocol.hpp>
21 : protocol_base{flags{}}
25 bool pull(ossia::net::parameter_base&)
override {
return false; }
26 bool push(
const ossia::net::parameter_base&,
const ossia::value& v)
override
30 bool push_raw(
const ossia::net::full_parameter_data&)
override {
return false; }
31 bool observe(ossia::net::parameter_base&,
bool)
override {
return false; }
32 bool update(ossia::net::node_base& node_base)
override {
return false; }
34 void start_execution()
override { }
35 void stop_execution()
override { }
42 std::shared_ptr<bool> context_alive;
45 int32_t node_id{score::gfx::invalid_node_index};
50 : ossia::gfx::texture_parameter{n}
52 , context_alive{ctx ? ctx->alive :
nullptr}
55 node_id = context->ui->register_node(std::unique_ptr<score::gfx::Node>{gfx_n});
58 void pull_texture(ossia::gfx::port_index idx)
override
61 port_index{this->node_id, 0}, idx, Process::CableType::ImmediateGlutton);
65 context->ui->send_message(std::move(m));
70 if(context_alive && *context_alive)
71 context->ui->unregister_node(node_id);
78 ossia::net::device_base& m_device;
79 node_base* m_parent{};
80 std::unique_ptr<simple_texture_input_parameter> m_parameter;
88 std::make_unique<simple_texture_input_parameter>(gfx_n, context, *
this)}
90 m_name = std::move(name);
95 return m_parameter.get();
99 ossia::net::device_base& get_device()
const override {
return m_device; }
100 ossia::net::node_base* get_parent()
const override {
return m_parent; }
101 ossia::net::node_base& set_name(std::string)
override {
return *
this; }
102 ossia::net::parameter_base* create_parameter(ossia::val_type)
override
104 return m_parameter.get();
106 bool remove_parameter()
override {
return false; }
108 std::unique_ptr<ossia::net::node_base> make_child(
const std::string& name)
override
112 void removing_child(ossia::net::node_base& node_base)
override { }
122 std::unique_ptr<ossia::net::protocol_base> proto, std::string name)
123 : ossia::net::device_base{std::move(proto)}
124 , root{gfx_n, context, *
this, name}
142 ossia::net::device_base& m_device;
143 ossia::net::node_base* m_parent{};
144 std::unique_ptr<simple_texture_input_parameter> m_parameter;
149 ossia::net::device_base& dev, ossia::net::node_base& parent, std::string name)
153 std::make_unique<simple_texture_input_parameter>(gfx_n, context, *
this)}
155 m_name = std::move(name);
160 return m_parameter.get();
164 ossia::net::device_base& get_device()
const override {
return m_device; }
165 ossia::net::node_base* get_parent()
const override {
return m_parent; }
166 ossia::net::node_base& set_name(std::string)
override {
return *
this; }
167 ossia::net::parameter_base* create_parameter(ossia::val_type)
override
169 return m_parameter.get();
171 bool remove_parameter()
override {
return false; }
172 std::unique_ptr<ossia::net::node_base> make_child(
const std::string&)
override
176 void removing_child(ossia::net::node_base&)
override { }
188 ossia::net::device_base& m_device;
194 m_name = std::move(name);
197 ossia::net::node_base*
200 return add_child(std::make_unique<texture_input_stream_node>(
201 gfx_n, context, m_device, *
this, std::move(name)));
204 ossia::net::parameter_base* get_parameter()
const override {
return nullptr; }
207 ossia::net::device_base& get_device()
const override {
return m_device; }
208 ossia::net::node_base* get_parent()
const override {
return nullptr; }
209 ossia::net::node_base& set_name(std::string)
override {
return *
this; }
210 ossia::net::parameter_base* create_parameter(ossia::val_type)
override
214 bool remove_parameter()
override {
return false; }
215 std::unique_ptr<ossia::net::node_base> make_child(
const std::string&)
override
219 void removing_child(ossia::net::node_base&)
override { }
228 std::unique_ptr<ossia::net::protocol_base> proto, std::string name)
229 : ossia::net::device_base{std::move(proto)}
230 , root{*
this, std::move(name)}
234 ossia::net::node_base*
237 return root.add_stream(gfx_n, context, std::move(name));
245 :
public ossia::net::protocol_base
248 std::shared_ptr<::Video::ExternalInput> camera;
254 bool pull(ossia::net::parameter_base&)
override;
255 bool push(
const ossia::net::parameter_base&,
const ossia::value& v)
override;
256 bool push_raw(
const ossia::net::full_parameter_data&)
override;
257 bool observe(ossia::net::parameter_base&,
bool)
override;
258 bool update(ossia::net::node_base& node_base)
override;
260 void start_execution()
override;
261 void stop_execution()
override;
263 score::gfx::CameraNode* camera_node{};
267 :
public ossia::gfx::texture_parameter
271 std::shared_ptr<bool> context_alive;
274 std::shared_ptr<::Video::ExternalInput> camera;
276 score::gfx::CameraNode* node{};
280 void pull_texture(ossia::gfx::port_index idx)
override;
288 ossia::net::device_base& m_device;
289 node_base* m_parent{};
290 std::unique_ptr<video_texture_input_parameter> m_parameter;
299 ossia::net::device_base& get_device()
const override;
300 ossia::net::node_base* get_parent()
const override;
301 ossia::net::node_base& set_name(std::string)
override;
302 ossia::net::parameter_base* create_parameter(ossia::val_type)
override;
303 bool remove_parameter()
override;
305 std::unique_ptr<ossia::net::node_base> make_child(
const std::string& name)
override;
306 void removing_child(ossia::net::node_base& node_base)
override;
315 std::unique_ptr<ossia::net::protocol_base> proto, std::string name)
316 : ossia::net::device_base{std::move(proto)}
Definition GfxExecContext.hpp:18
Definition GfxInputDevice.hpp:223
Root of a device exposing several texture streams.
Definition GfxInputDevice.hpp:187
Definition GfxInputDevice.hpp:116
Definition GfxInputDevice.hpp:77
Definition GfxInputDevice.hpp:39
Definition GfxInputDevice.hpp:18
One stream of a device that exposes several.
Definition GfxInputDevice.hpp:141
Definition GfxInputDevice.hpp:310
Definition GfxInputDevice.hpp:287
Definition GfxInputDevice.hpp:268
Definition GfxInputDevice.hpp:246
Root data model for visual nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:74
Binds the rendering pipeline to ossia processes.
Definition AssetTable.cpp:7
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:11
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:49