20 void init(
RenderList& renderer, QRhiResourceUpdateBatch& res)
override;
21 void update(
RenderList& renderer, QRhiResourceUpdateBatch& res,
Edge* edge)
override;
22 bool updateMaterials(
RenderList& renderer, QRhiResourceUpdateBatch& res,
Edge* edge);
25 void runInitialPasses(
26 RenderList&, QRhiCommandBuffer& commands, QRhiResourceUpdateBatch*& res,
29 void runRenderPass(
RenderList&, QRhiCommandBuffer& commands,
Edge& edge)
override;
31 void process(int32_t port,
const ossia::transform3d& v)
override;
34 ossia::small_flat_map<const Port*, TextureRenderTarget, 2> m_rts;
38 std::vector<Sampler> allSamplers()
const noexcept;
40 ossia::small_vector<std::pair<Edge*, Pass>, 2> m_passes;
44 std::vector<Sampler> m_inputSamplers;
45 std::vector<Sampler> m_audioSamplers;
47 int64_t meshChangedIndex{-1};
51 QRhiBuffer* m_materialUBO{};
54 QRhiBuffer* m_modelUBO{};
56 std::optional<AudioTextureUpload> m_audioTex;
60 static constexpr int size_of_pipeline_material = 32;
61 char m_prevPipelineChangingMaterial[size_of_pipeline_material]{0};
62 struct PipelineChangingMaterial
66 QRhiGraphicsPipeline::BlendFactor src_color;
67 QRhiGraphicsPipeline::BlendFactor dst_color;
68 QRhiGraphicsPipeline::BlendOp op_color;
69 QRhiGraphicsPipeline::BlendFactor src_alpha;
70 QRhiGraphicsPipeline::BlendFactor dst_alpha;
71 QRhiGraphicsPipeline::BlendOp op_alpha;
73 static_assert(
sizeof(PipelineChangingMaterial) == size_of_pipeline_material);
75 ossia::transform3d m_modelTransform;
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:119