Public Member Functions | |
| DirectVideoOutputNode (std::unique_ptr< DirectVideoOutputBackend > backend) | |
| void | setRenderer (std::shared_ptr< RenderList > r) override |
| RenderList * | renderer () const override |
| OutputNodeRenderer * | createRenderer (RenderList &r) const noexcept override |
| Create a renderer in a given context for this node. | |
| void | startRendering () override |
| void | render () override |
| void | stopRendering () override |
| bool | canRender () const override |
| void | onRendererChange () override |
| void | createOutput (OutputConfiguration conf) override |
| void | destroyOutput () override |
| std::shared_ptr< RenderState > | renderState () const override |
| Configuration | configuration () const noexcept override |
| const char * | activeStrategyName () const noexcept |
| Name of the engaged GPU-direct strategy, or "cpu-staging". | |
| bool | outputStrategyPinUnmet () const noexcept |
| bool | outputStrategyPinUnavailable () const noexcept |
| std::function< bool()> | genlockTickSource () const |
| std::uint64_t | pacingGoodXfers () const noexcept |
| Pacing diagnostics (0 if the pump isn't running). Useful for harnesses. | |
| std::uint64_t | pacingDrops () const noexcept |
| std::uint64_t | pacingUnderruns () const noexcept |
Public Member Functions inherited from score::gfx::OutputNode | |
| virtual void | setVSyncCallback (std::function< void()>) |
| Set a callback to drive rendering when there is a single output. | |
| virtual void | updateGraphicsAPI (GraphicsApi) |
| virtual TextureRenderTarget | currentRenderTarget () const noexcept |
| The output's current backing render target + render-pass descriptor, as the upstream nodes should render into it NOW. | |
| GpuResourceRegistry & | acquireRegistry () |
| Persistent GPU resource registry for this output. | |
| GpuResourceRegistry * | registry () const noexcept |
| Non-owning accessor. Returns null if no registry has been acquired yet (e.g. queried before the first RenderList::init). | |
| void | releaseRegistry () |
| Tear down the registry's QRhi resources directly. Idempotent. | |
Public Member Functions inherited from score::gfx::Node | |
| Node (const Node &)=delete | |
| Node (Node &&)=delete | |
| Node & | operator= (const Node &)=delete |
| Node & | operator= (Node &&)=delete |
| virtual void | renderedNodesChanged () |
| Whenever render nodes are added / removed. | |
| virtual void | process (Message &&msg) |
| Process a message from the execution engine. | |
| virtual void | update () |
| void | materialChange () noexcept |
| Used to notify a material change from the model to the renderers. | |
| bool | hasMaterialChanged (int64_t &renderer) const noexcept |
| void | renderTargetChange () noexcept |
| Used to notify a render target (texture inlet) change from the model to the renderers. | |
| bool | hasRenderTargetChanged (int64_t &renderer) const noexcept |
| bool | hasExplicitRenderTargetSize (int32_t port) const noexcept |
| Whether a given port has a user-specified render target size. | |
| QSize | resolveRenderTargetSize (int32_t port, RenderList &renderer) const noexcept |
| RenderTargetSpecs | resolveRenderTargetSpecs (int32_t port, RenderList &renderer) const noexcept |
| void | process (int32_t port, const ossia::render_target_spec &v) |
Protected Attributes | |
| std::unique_ptr< DirectVideoOutputBackend > | m_backend |
| std::shared_ptr< RenderState > | m_renderState |
| std::weak_ptr< RenderList > | m_renderer |
| QRhi * | m_rhi {} |
| QRhiTexture * | m_texture {} |
| QRhiTextureRenderTarget * | m_renderTarget {} |
| std::unique_ptr< interop::CpuStagedVideoOutput > | m_hostStaged |
| std::unique_ptr< interop::VideoOutputStrategy > | m_rdma |
| std::unique_ptr< interop::PacedFramePump > | m_pump |
| interop::GpuCapabilities | m_caps {} |
| std::atomic< bool > | m_running {false} |
| GraphicsApi | m_graphicsApi {} |
Protected Attributes inherited from score::gfx::OutputNode | |
| std::function< void()> | m_onReleaseRenderList |
| std::unique_ptr< GpuResourceRegistry > | m_registry |
Additional Inherited Members | |
Public Attributes inherited from score::gfx::Node | |
| std::vector< Port * > | input |
| Input ports of that node. | |
| ossia::small_pod_vector< Port *, 1 > | output |
| Output ports of that node. | |
| ossia::flat_map< RenderList *, score::gfx::NodeRenderer * > | renderedNodes |
| Map associating each RenderList to a Renderer for this model. | |
| ossia::flat_map< int32_t, ossia::render_target_spec > | renderTargetSpecs |
| Render target info. | |
| std::atomic_int64_t | materialChanged {0} |
| std::atomic_int64_t | renderTargetSpecChanged {-1} |
| int32_t | nodeId = score::gfx::invalid_node_index |
| bool | requiresDepth {} |
Protected Member Functions inherited from score::gfx::OutputNode | |
| void | releaseOwnedRenderList () |
| Invoke OutputConfiguration::onReleaseRenderList, if any. | |
Member Function Documentation
◆ canRender()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ configuration()
|
overridevirtualnoexcept |
Implements score::gfx::OutputNode.
◆ createOutput()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ createRenderer()
|
overridevirtualnoexcept |
Create a renderer in a given context for this node.
Implements score::gfx::OutputNode.
◆ destroyOutput()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ genlockTickSource()
| std::function< bool()> score::gfx::DirectVideoOutputNode::genlockTickSource | ( | ) | const |
External-genlock tick source from the backend, or empty if the device exposes none (opt-in). Valid only after createOutput() has opened the device. Feed to an ExternalGenlockClock to phase-lock render to the card.
◆ onRendererChange()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ outputStrategyPinUnavailable()
|
noexcept |
True when SCORE_GFX_DIRECT_READBACK pinned an output rung that cannot exist for this backend/format, or when a GPU-direct strategy bypassed the host-staged ladder entirely.
◆ outputStrategyPinUnmet()
|
noexcept |
True when SCORE_GFX_DIRECT_READBACK pinned an output rung that should have engaged but did not; rows measured in this state describe another rung than the one requested.
◆ render()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ renderer()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ renderState()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ setRenderer()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ startRendering()
|
overridevirtual |
Implements score::gfx::OutputNode.
◆ stopRendering()
|
overridevirtual |
Implements score::gfx::OutputNode.
Member Data Documentation
◆ m_caps
|
protected |
GPU interop probe, borrowed by CpuStagedVideoOutput's DVP HostPinnedRing; must outlive m_hostStaged, hence a node member.
The documentation for this class was generated from the following files:
- DirectVideoOutputNode.hpp
- DirectVideoOutputNode.cpp
Public Member Functions inherited from