2#include <Process/Dataflow/Port.hpp>
4#include <Dataflow/PortItem.hpp>
5#include <Gfx/CommandFactory.hpp>
7#include <score/command/PropertyCommand.hpp>
9#include <ossia/dataflow/texture_port.hpp>
11#include <score_plugin_gfx_export.h>
18UUID_METADATA(,
Process::Port, Gfx::TextureInlet,
"5ac86198-2d03-4830-9e41-a6d529922d29")
20 ,
Process::Port,
Gfx::TextureOutlet, "f1c71046-b754-49a5-8e66-d01374773dfc")
26 W_OBJECT(TextureInlet)
28 SCORE_SERIALIZE_FRIENDS
30 MODEL_METADATA_IMPL_HPP(TextureInlet)
31 TextureInlet() =
delete;
32 ~TextureInlet()
override;
33 TextureInlet(
const TextureInlet&) =
delete;
41 VIRTUAL_CONSTEXPR Process::PortType type() const noexcept
override
43 return Process::PortType::Texture;
46 std::optional<QSize> renderSize() const noexcept;
47 void renderSizeChanged(
std::optional<QSize> sz) W_SIGNAL(renderSizeChanged, sz);
48 void setRenderSize(
std::optional<QSize> sz);
49 void unsetRenderSize();
53 renderSize W_READ renderSize W_WRITE setRenderSize W_NOTIFY renderSizeChanged)
55 INLINE_PROPERTY_VALUE(
56 ossia::texture_format, textureFormat, = ossia::texture_format::RGBA8,
57 textureFormat, setTextureFormat, textureFormatChanged)
58 INLINE_PROPERTY_VALUE(
59 ossia::texture_filter, textureFilter, = ossia::texture_filter::LINEAR,
60 textureFilter, setTextureFilter, textureFilterChanged)
61 INLINE_PROPERTY_VALUE(
62 ossia::texture_address_mode, textureAddressMode,
63 = ossia::texture_address_mode::CLAMP_TO_EDGE, textureAddressMode,
64 setTextureAddressMode, textureAddressModeChanged)
66 void setupExecution(ossia::inlet&, QObject* exec_context) const noexcept override;
69 std::optional<QSize> m_renderSize;
72class SCORE_PLUGIN_GFX_EXPORT TextureOutlet : public
Process::Outlet
74 W_OBJECT(TextureOutlet)
76 SCORE_SERIALIZE_FRIENDS
78 MODEL_METADATA_IMPL_HPP(TextureOutlet)
79 TextureOutlet() =
delete;
80 ~TextureOutlet()
override;
81 TextureOutlet(
const TextureOutlet&) =
delete;
89 VIRTUAL_CONSTEXPR Process::PortType type() const noexcept
override
91 return Process::PortType::Texture;
99 using Model_T = TextureInlet;
105 Model_T* load(
const VisitorVariant& vis, QObject* parent)
override
107 return score::deserialize_dyn(vis, [&](
auto&& deserializer) {
108 return new Model_T{deserializer, parent};
112 void setupInletInspector(
119 using Model_T = TextureOutlet;
125 Model_T* load(
const VisitorVariant& vis, QObject* parent)
override
127 return score::deserialize_dyn(vis, [&](
auto&& deserializer) {
128 return new Model_T{deserializer, parent};
132 void setupOutletInspector(
146 ,
Process::Port,
Gfx::GeometryOutlet, "848061c5-e8a0-4a13-9985-e8df30ce6d4f")
154 SCORE_SERIALIZE_FRIENDS
167 VIRTUAL_CONSTEXPR Process::PortType type()
const noexcept override
169 return Process::PortType::Geometry;
177 SCORE_SERIALIZE_FRIENDS
190 VIRTUAL_CONSTEXPR Process::PortType type()
const noexcept override
192 return Process::PortType::Geometry;
206 return score::deserialize_dyn(vis, [&](
auto&& deserializer) {
207 return new Model_T{deserializer, parent};
222 return score::deserialize_dyn(vis, [&](
auto&& deserializer) {
223 return new Model_T{deserializer, parent};
229W_REGISTER_ARGTYPE(std::optional<QSize>);
230W_REGISTER_ARGTYPE(ossia::texture_format);
231W_REGISTER_ARGTYPE(ossia::texture_filter);
232W_REGISTER_ARGTYPE(ossia::texture_address_mode);
235 Gfx, ChangeTextureInletRenderSize, TextureInlet::p_renderSize,
236 "Change render target size")
237SCORE_COMMAND_DECL_T(
Gfx::ChangeTextureInletRenderSize)
240 Gfx, ChangeTextureInletFormat, TextureInlet::p_textureFormat,
241 "Change render target format")
242SCORE_COMMAND_DECL_T(
Gfx::ChangeTextureInletFormat)
245 Gfx, ChangeTextureInletFilter, TextureInlet::p_textureFilter,
246 "Change render target filter")
247SCORE_COMMAND_DECL_T(
Gfx::ChangeTextureInletFilter)
250 Gfx, ChangeTextureInletAddressMode, TextureInlet::p_textureAddressMode,
251 "Change render target address mode")
252SCORE_COMMAND_DECL_T(
Gfx::ChangeTextureInletAddressMode)
Definition DataStreamVisitor.hpp:202
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:37
Definition TexturePort.hpp:151
Definition TexturePort.hpp:174
Definition lib/score/widgets/Layout.hpp:29
Definition JSONVisitor.hpp:423
Definition UuidKey.hpp:343
The id_base_t class.
Definition Identifier.hpp:57
Binds the rendering pipeline to ossia processes.
Definition CameraDevice.cpp:28
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1324
Definition TexturePort.hpp:197
Definition TexturePort.hpp:213
The VisitorVariant struct.
Definition VisitorInterface.hpp:26
Definition DocumentContext.hpp:18