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
24 virtual ~ISFNode();
25 QSize computeTextureSize(const isf::pass& pass, QSize origSize);
26
27 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
28
29 const isf::descriptor& descriptor() const noexcept { return m_descriptor; }
30
31 friend SinglePassISFNode;
32 friend RenderedISFNode;
33 friend isf_input_port_vis;
34
35 isf::descriptor m_descriptor;
36
37 // Texture format: 1 row = 1 channel of N samples
38 std::list<AudioTexture> m_audio_textures;
39 std::unique_ptr<char[]> m_material_data;
40
41 QString m_vertexS;
42 QString m_fragmentS;
43 int m_materialSize{};
44};
45}
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:258
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:110
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:49
Definition ISFNode.cpp:12