Loading...
Searching...
No Matches
ISFNode.hpp
1#pragma once
2#include <Gfx/Graph/Mesh.hpp>
3#include <Gfx/Graph/Node.hpp>
4#include <Gfx/Graph/RenderList.hpp>
5
6#include <isf.hpp>
7
8#include <score_plugin_gfx_export.h>
9
10#include <list>
11namespace score::gfx
12{
13struct SinglePassISFNode;
14struct RenderedISFNode;
15struct isf_input_port_vis;
21class SCORE_PLUGIN_GFX_EXPORT ISFNode : public score::gfx::ProcessNode
22{
23public:
24 ISFNode(const isf::descriptor& desc, const QString& vert, const QString& frag);
25 ISFNode(const isf::descriptor& desc, const QString& comp);
26
27 virtual ~ISFNode();
28 QSize computeTextureSize(const isf::pass& pass, QSize origSize);
29
30 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
31
32 const isf::descriptor& descriptor() const noexcept { return m_descriptor; }
33 void process(Message&& msg) override;
34 friend SinglePassISFNode;
35 friend RenderedISFNode;
36 friend isf_input_port_vis;
37
38 isf::descriptor m_descriptor;
39
40 // Texture format: 1 row = 1 channel of N samples
41 std::list<AudioTexture> m_audio_textures;
42 std::unique_ptr<char[]> m_material_data;
43
44 QString m_vertexS;
45 QString m_fragmentS;
46 QString m_computeS;
47 std::vector<int*> m_event_ports;
48
49 int m_materialSize{};
50};
51}
Data model for Interactive Shader Format filters.
Definition ISFNode.hpp:22
Renderer for a given node.
Definition NodeRenderer.hpp:11
Common base class for nodes that map to score processes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:176
List of nodes to be rendered to an output.
Definition RenderList.hpp:19
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:12
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:49
Definition RenderedISFNode.hpp:9
Definition ISFNode.cpp:16