20 void updateInputTexture(
const Port& input, QRhiTexture* tex, QRhiTexture* depthTex =
nullptr)
override;
22 QRhiTexture* textureForOutput(
const Port& output)
override;
24 void init(
RenderList& renderer, QRhiResourceUpdateBatch& res)
override;
25 void update(
RenderList& renderer, QRhiResourceUpdateBatch& res,
Edge* edge)
override;
28 void initState(
RenderList& renderer, QRhiResourceUpdateBatch& res)
override;
30 void addOutputPass(
RenderList& renderer,
Edge& edge, QRhiResourceUpdateBatch& res)
override;
32 bool hasOutputPassForEdge(
Edge& edge)
const override;
33 void addInputEdge(
RenderList& renderer,
Edge& edge, QRhiResourceUpdateBatch& res)
override;
36 void runInitialPasses(
37 RenderList&, QRhiCommandBuffer& commands, QRhiResourceUpdateBatch*& res,
40 void runRenderPass(
RenderList&, QRhiCommandBuffer& commands,
Edge& edge)
override;
42 QRhiGraphicsPipeline::CompareOp depthCompare()
const noexcept override;
43 bool followsRenderSize()
const noexcept override;
48 QRhiResourceUpdateBatch& res);
49 void initMRTPass(
RenderList& renderer, QRhiResourceUpdateBatch& res);
52 QSize declaredOutputSize(
const RenderList& renderer)
const;
53 void initMRTBlitPasses(
RenderList& renderer, QRhiResourceUpdateBatch& res);
54 void initMRTBlitPass(
RenderList& renderer, QRhiResourceUpdateBatch& res,
Edge& edge);
56 std::vector<Sampler> allSamplers()
const noexcept;
58 ossia::small_vector<std::pair<Edge*, Pass>, 2> m_passes;
62 std::vector<Sampler> m_inputSamplers;
63 std::vector<int> m_storageImageSamplers;
64 std::vector<Sampler> m_audioSamplers;
65 ossia::small_flat_map<Edge*, QRhiSampler*, 4> m_blitSamplersByEdge;
68 QRhiSampler* m_depthCopySampler{};
73 QRhiBuffer* m_materialUBO{};
76 std::optional<AudioTextureUpload> m_audioTex;
83 QSize m_declaredOutputSize;
86 int64_t m_lastMRTRenderFrame{-1};
87 int64_t m_lastStorageSwapFrame{-1};
88 int64_t m_frameIndexFrame{-1};
95 int m_firstStorageBinding{-1};
96 int m_firstSamplerBinding{3};
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
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:307