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 <list>
9namespace score::gfx
10{
11struct SinglePassISFNode;
12struct RenderedISFNode;
13struct isf_input_port_vis;
20{
21public:
22 ISFNode(const isf::descriptor& desc, const QString& vert, const QString& frag);
23 ISFNode(const isf::descriptor& desc, const QString& comp);
24
25 virtual ~ISFNode();
26 QSize computeTextureSize(const isf::pass& pass, QSize origSize);
27
28 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
29
30 const isf::descriptor& descriptor() const noexcept { return m_descriptor; }
31
32 friend SinglePassISFNode;
33 friend RenderedISFNode;
34 friend isf_input_port_vis;
35
36 isf::descriptor m_descriptor;
37
38 // Texture format: 1 row = 1 channel of N samples
39 std::list<AudioTexture> m_audio_textures;
40 std::unique_ptr<char[]> m_material_data;
41
42 QString m_vertexS;
43 QString m_fragmentS;
44 QString m_computeS;
45
46 int m_materialSize{};
47};
48}
Data model for Interactive Shader Format filters.
Definition ISFNode.hpp:20
score::gfx::NodeRenderer * createRenderer(RenderList &r) const noexcept override
Create a renderer in a given context for this node.
Definition ISFNode.cpp:314
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:196
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 RenderedISFNode.hpp:9
Definition ISFNode.cpp:15