2#include <Gfx/Graph/Node.hpp> 
   20  virtual QRhiBuffer* bufferForInput(
const Port& input);
 
   21  virtual QRhiBuffer* bufferForOutput(
const Port& output);
 
   26  inputAboutToFinish(
RenderList& renderer, 
const Port& p, QRhiResourceUpdateBatch*&);
 
   28  virtual void init(
RenderList& renderer, QRhiResourceUpdateBatch& res) = 0;
 
   29  virtual void update(
RenderList& renderer, QRhiResourceUpdateBatch& res, 
Edge* edge)
 
   32  virtual void runInitialPasses(
 
   33      RenderList&, QRhiCommandBuffer& commands, QRhiResourceUpdateBatch*& res,
 
   36  virtual void runRenderPass(
RenderList&, QRhiCommandBuffer& commands, 
Edge& edge);
 
   40  void checkForChanges()
 
   42    materialChanged = node.hasMaterialChanged(materialChangedIndex);
 
   43    geometryChanged = node.hasGeometryChanged(geometryChangedIndex);
 
   44    renderTargetSpecsChanged
 
   45        = node.hasRenderTargetChanged(renderTargetSpecsChangedIndex);
 
   51  bool materialChanged{
false};
 
   52  bool geometryChanged{
false};
 
   53  bool renderTargetSpecsChanged{
false};
 
   56  int64_t materialChangedIndex{-1};
 
   57  int64_t geometryChangedIndex{-1};
 
   58  int64_t renderTargetSpecsChangedIndex{-1};
 
 
   61using PassMap = ossia::small_vector<std::pair<Edge*, Pipeline>, 2>;
 
   62SCORE_PLUGIN_GFX_EXPORT
 
   63void defaultPassesInit(
 
   64    PassMap& passes, 
const std::vector<Edge*>& edges, 
RenderList& renderer,
 
   65    const Mesh& mesh, 
const QShader& v, 
const QShader& f, QRhiBuffer* processUBO,
 
   66    QRhiBuffer* matUBO, std::span<const Sampler> samplers,
 
   67    std::span<QRhiShaderResourceBinding> additionalBindings = {});
 
   69SCORE_PLUGIN_GFX_EXPORT
 
   70void defaultRenderPass(
 
   71    RenderList& renderer, 
const Mesh& mesh, 
const MeshBuffers& bufs,
 
   72    QRhiCommandBuffer& cb, Edge& edge, PassMap& passes);
 
   74SCORE_PLUGIN_GFX_EXPORT
 
   76    RenderList& renderer, 
const MeshBuffers& bufs, QRhiCommandBuffer& cb, Edge& edge,
 
   96  ossia::small_vector<Sampler, 8> m_samplers;
 
  106  QRhiBuffer* m_processUBO{};
 
  114  defaultMeshInit(
RenderList& renderer, 
const Mesh& mesh, QRhiResourceUpdateBatch& res);
 
  117  void defaultPassesInit(
 
  118      RenderList& renderer, 
const Mesh& mesh, 
const QShader& v, 
const QShader& f,
 
  119      std::span<QRhiShaderResourceBinding> additionalBindings = {});
 
  121  void init(
RenderList& renderer, QRhiResourceUpdateBatch& res) 
override;
 
  123  void defaultUBOUpdate(
RenderList& renderer, QRhiResourceUpdateBatch& res);
 
  124  void defaultMeshUpdate(
RenderList& renderer, QRhiResourceUpdateBatch& res);
 
  125  void update(
RenderList& renderer, QRhiResourceUpdateBatch& res, 
Edge* edge) 
override;
 
  130  void defaultRenderPass(
 
  133  void defaultRenderPass(
 
  137  void runRenderPass(
RenderList&, QRhiCommandBuffer& commands, 
Edge& edge) 
override;
 
 
Generic renderer.
Definition NodeRenderer.hpp:86
Root data model for visual nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:75
Common base class for most single-pass, simple nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:231
Renderer for a given node.
Definition NodeRenderer.hpp:11
List of nodes to be rendered to an output.
Definition RenderList.hpp:19
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:12
Utility to represent a shader material following score conventions.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:259
Connection between two score::gfx::Port.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:70
Data model for meshes.
Definition Mesh.hpp:23
Port of a score::gfx::Node.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:52
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:115