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>
9 namespace score::gfx
10 {
11 struct SinglePassISFNode;
12 struct RenderedISFNode;
13 struct isf_input_port_vis;
20 {
21 public:
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