27 void updateInputTexture(
const Port& input, QRhiTexture* tex, QRhiTexture* depthTex =
nullptr)
override;
29 void addInputEdge(
RenderList& renderer,
Edge& edge, QRhiResourceUpdateBatch& res)
override;
32 void init(
RenderList& renderer, QRhiResourceUpdateBatch& res)
override;
33 void update(
RenderList& renderer, QRhiResourceUpdateBatch& res,
Edge* e)
override;
36 void initState(
RenderList& renderer, QRhiResourceUpdateBatch& res)
override;
37 void releaseState(
RenderList& renderer)
override;
39 RenderList& renderer,
Edge& edge, QRhiResourceUpdateBatch& res)
override;
41 bool hasOutputPassForEdge(
Edge& edge)
const override;
43 void runInitialPasses(
44 RenderList&, QRhiCommandBuffer& commands, QRhiResourceUpdateBatch*& res,
47 void runRenderPass(
RenderList&, QRhiCommandBuffer& commands,
Edge& edge)
override;
49 QRhiGraphicsPipeline::CompareOp depthCompare()
const noexcept override;
53 int blittedEdges()
const noexcept;
56 std::pair<Pass, Pass> createPass(
57 RenderList& renderer, ossia::small_vector<PassOutput, 1>& m_passSamplers,
58 PassOutput target,
const isf::pass& modelPass,
int passIndex);
60 std::pair<Pass, Pass> createFinalPass(
61 RenderList& renderer, ossia::small_vector<PassOutput, 1>& m_passSamplers,
65 QRhiResourceUpdateBatch& res);
68 isf::pipeline_state lastPassState()
const;
72 bool lastPassCarriesDepth()
const;
77 PassOutput initPassSampler(
79 QSize mainTexSize, QRhiResourceUpdateBatch& res);
81 void releaseDetachedPassOutputs()
noexcept;
85 ossia::small_vector<Pass, 1> passes;
86 ossia::small_vector<Pass, 1> altPasses;
87 ossia::small_vector<PassOutput, 1> samplers;
96 struct DetachedPassOutput
101 std::vector<DetachedPassOutput> m_detachedPassOutputs;
103 std::vector<Sampler> allSamplers(
104 ossia::small_vector<PassOutput, 1>&,
int readerPass,
105 int frameParity)
const noexcept;
107 ossia::small_vector<std::pair<Edge*, Passes>, 2> m_passes;
111 std::vector<Sampler> m_inputSamplers;
112 std::vector<int> m_storageImageSamplers;
113 std::vector<Sampler> m_audioSamplers;
115 std::vector<TextureRenderTarget> m_innerPassTargets;
117 const Mesh* m_mesh{};
120 QRhiBuffer* m_materialUBO{};
121 int m_materialSize{};
132 int m_firstStorageBinding{-1};
133 int m_firstSamplerBinding{3};
139 int64_t m_lastStorageSwapFrame{-1};
141 int64_t m_frameIndexFrame{-1};
145 QRhiSampler* m_depthCopySampler{};
148 bool m_warnedLastPassDepth{};
void updateInputSamplerFilter(std::span< Sampler > samplers, const score::gfx::Node &node, const Port &input, const RenderTargetSpecs &spec)
Give the sampler initInputSamplers() created for input, one of node's input ports,...
Definition score-plugin-gfx/Gfx/Graph/Utils.cpp:2213
Definition RenderedISFUtils.hpp:35
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:307