Generic renderer.
Used for the common case of a single pass node with a vertex & fragment shader, samplers, and a single render target.
|
|
| GenericNodeRenderer (const NodeModel &node) noexcept |
| |
|
score::gfx::Port * | imageOutlet () const noexcept |
| | The node's first Image outlet, or nullptr. Not always output[0].
|
| |
|
void | defaultMeshInit (RenderList &renderer, const Mesh &mesh, QRhiResourceUpdateBatch &res) |
| |
|
void | processUBOInit (RenderList &renderer) |
| |
|
void | defaultPassesInit (RenderList &renderer, const Mesh &mesh) |
| |
|
void | defaultPassesInit (RenderList &renderer, const Mesh &mesh, const QShader &v, const QShader &f, std::span< QRhiShaderResourceBinding > additionalBindings={}) |
| |
| void | init (RenderList &renderer, QRhiResourceUpdateBatch &res) override |
| |
| void | initState (RenderList &renderer, QRhiResourceUpdateBatch &res) override |
| |
| void | releaseState (RenderList &renderer) override |
| |
| void | addOutputPass (RenderList &renderer, Edge &edge, QRhiResourceUpdateBatch &res) override |
| | Create a pass for a new output edge (pipeline, SRB, processUBO).
|
| |
| void | removeOutputPass (RenderList &renderer, Edge &edge) override |
| |
| bool | hasOutputPassForEdge (Edge &edge) const override |
| | Check if this renderer already has an output pass for the given edge.
|
| |
|
void | defaultUBOUpdate (RenderList &renderer, QRhiResourceUpdateBatch &res) |
| |
|
void | defaultMeshUpdate (RenderList &renderer, QRhiResourceUpdateBatch &res) |
| |
| void | update (RenderList &renderer, QRhiResourceUpdateBatch &res, Edge *edge) override |
| |
|
void | defaultRelease (RenderList &) |
| |
| void | release (RenderList &) override |
| |
|
void | defaultRenderPass (RenderList &, const Mesh &mesh, QRhiCommandBuffer &commands, Edge &edge) |
| |
|
void | defaultRenderPass (RenderList &, const Mesh &mesh, QRhiCommandBuffer &commands, Edge &edge, PassMap &passes) |
| |
| void | runRenderPass (RenderList &, QRhiCommandBuffer &commands, Edge &edge) override |
| |
| void | updateInputTexture (const Port &input, QRhiTexture *tex, QRhiTexture *depthTex=nullptr) override |
| |
|
| NodeRenderer (const Node &node) |
| |
|
virtual TextureRenderTarget | renderTargetForInput (const Port &input) |
| |
|
virtual BufferView | bufferForInput (const Port &input) |
| |
|
virtual BufferView | bufferForOutput (const Port &output) |
| |
| virtual QRhiTexture * | textureForOutput (const Port &output) |
| |
| virtual void | updateInputSamplerFilter (const Port &input, const RenderTargetSpecs &spec) |
| |
| virtual void | inputAboutToFinish (RenderList &renderer, const Port &p, QRhiResourceUpdateBatch *&) |
| |
|
virtual void | runInitialPasses (RenderList &, QRhiCommandBuffer &commands, QRhiResourceUpdateBatch *&res, Edge &edge) |
| |
|
void | checkForChanges () |
| |
| void | syncRenderTargetIndex () |
| |
|
void | process (int32_t port, const ossia::geometry_spec &v) |
| |
|
void | process (int32_t port, const ossia::scene_spec &v) |
| |
|
virtual void | process (int32_t port, const ossia::transform3d &v) |
| |
| void | process (int32_t port, const ossia::geometry_spec &v, const void *source_key) |
| |
|
void | process (int32_t port, const ossia::scene_spec &v, const void *source_key) |
| |
| const ossia::geometry_spec * | findGeometryByPort (int32_t port) const |
| |
| template<typename F > |
| void | forEachSceneOnPort (int32_t port, F &&fn) const |
| |
| virtual void | addInputEdge (RenderList &renderer, Edge &edge, QRhiResourceUpdateBatch &res) |
| |
| virtual void | removeInputEdge (RenderList &renderer, Edge &edge) |
| | Notify the renderer that an input edge was disconnected.
|
| |
| virtual void | seedInitialOutputs (RenderList &renderer) |
| |
|
|
ossia::small_vector< Sampler, 8 > | m_samplers |
| |
|
QShader | m_vertexS |
| |
|
QShader | m_fragmentS |
| |
|
PassMap | m_p |
| |
|
ossia::small_vector< std::pair< QVector< quint32 >, QRhiGraphicsPipeline * >, 2 > | m_pipelineCache |
| |
|
MeshBuffers | m_meshbufs |
| |
|
QRhiBuffer * | m_processUBO {} |
| |
|
DefaultShaderMaterial | m_material |
| |
|
const score::gfx::Mesh * | m_mesh {} |
| |
|
const Node & | node |
| |
| ossia::geometry_spec | geometry |
| | The geometry to use.
|
| |
|
ossia::small_flat_map< PortSourceKey, ossia::geometry_spec, 4 > | m_portGeometries |
| |
| ossia::scene_spec | scene |
| | The scene to use (when receiving scene_spec data).
|
| |
|
ossia::small_flat_map< PortSourceKey, ossia::scene_spec, 4 > | m_portScenes |
| | Per-(port, source) scene storage. See m_portGeometries comment.
|
| |
|
ossia::small_vector< MergeCacheKey, 4 > | m_mergeCacheInputs |
| |
|
ossia::scene_spec | m_mergeCacheOutput |
| |
| ossia::small_flat_map< PortSourceKey, std::pair< ossia::geometry_spec, ossia::scene_spec >, 4 > | m_wrapCache |
| |
|
int32_t | nodeId {-1} |
| |
|
bool | materialChanged {false} |
| |
|
bool | geometryChanged {false} |
| |
|
bool | sceneChanged {false} |
| |
|
bool | renderTargetSpecsChanged {false} |
| |
| bool | m_initialized {false} |
| |