Loading...
Searching...
No Matches
score::gfx::ScreenNode Struct Reference

This node is used for rendering to a score::gfx::Window. More...

Inheritance diagram for score::gfx::ScreenNode:
score::gfx::OutputNode score::gfx::Node

Detailed Description

This node is used for rendering to a score::gfx::Window.

Public Member Functions

 ScreenNode (Configuration conf, bool embedded=false, bool startFullScreen=false)
 
void startRendering () override
 
void render () override
 
void onRendererChange () override
 
bool canRender () const override
 
void stopRendering () override
 
void setRenderer (std::shared_ptr< RenderList > r) override
 
RenderList * renderer () const override
 
void setScreen (QScreen *)
 
void setPosition (QPoint pos)
 
void setSize (QSize sz)
 
void setRenderSize (QSize sz)
 
void setFullScreen (bool)
 
void setCursor (bool)
 
void setTitle (QString)
 
void setConfiguration (Configuration)
 
void setSwapchainFlag (Gfx::SwapchainFlag flag)
 
void setSwapchainFormat (Gfx::SwapchainFormat format)
 
void createOutput (score::gfx::OutputConfiguration) override
 
void destroyOutput () override
 
void updateGraphicsAPI (GraphicsApi) override
 
void setVSyncCallback (std::function< void()>) override
 Set a callback to drive rendering when there is a single output.
 
std::shared_ptr< RenderState > renderState () const override
 
score::gfx::OutputNodeRenderer * createRenderer (RenderList &r) const noexcept override
 Create a renderer in a given context for this node.
 
Configuration configuration () const noexcept override
 
bool deviceLost () const noexcept override
 True once the output's graphics device was reported lost.
 
const std::shared_ptr< Window > & window () const noexcept
 
void requestReadback () const noexcept
 
bool takeReadbackRequest () const noexcept
 
const std::shared_ptr< QRhiReadbackResult > & readback () const noexcept
 
- Public Member Functions inherited from score::gfx::OutputNode
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.
 
void handleDeviceLost (const char *output) noexcept
 Mark the device as lost; logs once per device.
 
const std::shared_ptr< PointerState > & pointerState () const noexcept
 The mouse and touch points over this output, decoded from the window's events into vertexshaderart's slots (PointerState). The window device publishes them as its touch/points address; nothing reads them here.
 
- 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.
 
bool hasExplicitRenderTargetSpecs (int32_t port) const noexcept
 Whether the user set a size or a format on a texture inlet.
 
QSize resolveRenderTargetSize (int32_t port, RenderList &renderer) const noexcept
 
RenderTargetSpecs resolveRenderTargetSpecs (int32_t port, RenderList &renderer) const noexcept
 
virtual void adjustRenderTargetSpecs (int32_t port, RenderTargetSpecs &spec) const noexcept
 
std::optional< RenderTargetSpecs > firstInputRenderTargetSpecs () const noexcept
 What the first texture input asks to be rendered into.
 
void process (int32_t port, const ossia::render_target_spec &v)
 

Public Attributes

std::function< void(QPointF)> onWindowMove
 
std::function< void(QPointF, QPointF)> onMouseMove
 
std::function< void(QTabletEvent *)> onTabletMove
 
std::function< void()> onPointersChanged
 The window's pointerState() changed (mouse or touch).
 
std::function< void(int, const QString &)> onKey
 
std::function< void(int, const QString &)> onKeyRelease
 
std::function< void(float)> onFps
 
- Public Attributes inherited from score::gfx::OutputNode
bool preview {}
 
bool previewHub {}
 
- 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.
 
std::vector< std::shared_ptr< PreviewTap > > previewTaps
 Previews of the outputs of this node, read back by a render list of the patch that renders it. See PreviewTap.
 
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 {}
 

Additional Inherited Members

- Protected Member Functions inherited from score::gfx::OutputNode
bool checkDeviceLost (const OffscreenFrame &frame, QRhi &rhi, const char *output) noexcept
 Calls handleDeviceLost when the frame or the QRhi report a lost device. Returns deviceLost().
 
bool checkDeviceLost (int frameOpResult, QRhi &rhi, const char *output) noexcept
 
void resetDeviceLost () noexcept
 
void releaseOwnedRenderList ()
 Invoke OutputConfiguration::onReleaseRenderList, if any.
 
- Protected Attributes inherited from score::gfx::OutputNode
std::function< void()> m_onReleaseRenderList
 
std::unique_ptr< GpuResourceRegistry > m_registry
 
std::shared_ptr< PointerState > m_pointerState {std::make_shared<PointerState>()}
 
bool m_deviceLost {}
 

Member Function Documentation

◆ canRender()

bool score::gfx::ScreenNode::canRender ( ) const
overridevirtual

◆ configuration()

OutputNode::Configuration score::gfx::ScreenNode::configuration ( ) const
overridevirtualnoexcept

◆ createOutput()

void score::gfx::ScreenNode::createOutput ( score::gfx::OutputConfiguration  conf)
overridevirtual

◆ createRenderer()

score::gfx::OutputNodeRenderer * score::gfx::ScreenNode::createRenderer ( RenderList &  r) const
overridevirtualnoexcept

Create a renderer in a given context for this node.

Implements score::gfx::OutputNode.

◆ destroyOutput()

void score::gfx::ScreenNode::destroyOutput ( )
overridevirtual

◆ deviceLost()

bool score::gfx::ScreenNode::deviceLost ( ) const
overridevirtualnoexcept

True once the output's graphics device was reported lost.

A lost device is not recreated: the output stops rendering and stays lost until its output is destroyed and created again.

Reimplemented from score::gfx::OutputNode.

◆ onRendererChange()

void score::gfx::ScreenNode::onRendererChange ( )
overridevirtual

◆ render()

void score::gfx::ScreenNode::render ( )
overridevirtual

◆ renderer()

RenderList * score::gfx::ScreenNode::renderer ( ) const
overridevirtual

◆ renderState()

std::shared_ptr< score::gfx::RenderState > score::gfx::ScreenNode::renderState ( ) const
overridevirtual

◆ setRenderer()

void score::gfx::ScreenNode::setRenderer ( std::shared_ptr< RenderList >  r)
overridevirtual

◆ setVSyncCallback()

void score::gfx::ScreenNode::setVSyncCallback ( std::function< void()>  )
overridevirtual

Set a callback to drive rendering when there is a single output.

If we render to a single window, we can use the GPU V-Sync mechanism. Otherwise the implementation will create timers to keep things in sync.

Reimplemented from score::gfx::OutputNode.

◆ startRendering()

void score::gfx::ScreenNode::startRendering ( )
overridevirtual

◆ stopRendering()

void score::gfx::ScreenNode::stopRendering ( )
overridevirtual

◆ updateGraphicsAPI()

void score::gfx::ScreenNode::updateGraphicsAPI ( GraphicsApi  api)
overridevirtual

Reimplemented from score::gfx::OutputNode.


The documentation for this struct was generated from the following files: