Loading...
Searching...
No Matches
score::gfx::MultiWindowNode Struct Reference
Inheritance diagram for score::gfx::MultiWindowNode:
score::gfx::OutputNode score::gfx::Node

Classes

struct  EdgeBlendData
 
struct  WindowOutput
 

Public Member Functions

 MultiWindowNode (Configuration conf, const std::vector< Gfx::OutputMapping > &mappings)
 
void startRendering () override
 
void render () override
 
void onRendererChange () override
 
bool canRender () const override
 
void stopRendering () override
 
void setRenderer (std::shared_ptr< RenderList > r) override
 
RenderListrenderer () const override
 
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< RenderStaterenderState () const override
 
score::gfx::OutputNodeRenderercreateRenderer (RenderList &r) const noexcept override
 Create a renderer in a given context for this node.
 
Configuration configuration () const noexcept override
 
const std::vector< WindowOutput > & windowOutputs () const noexcept
 
const TextureRenderTargetoffscreenTarget () const noexcept
 
void setRenderSize (QSize sz)
 
void setSourceRect (int windowIndex, QRectF rect)
 
void setEdgeBlend (int windowIndex, int side, float width, float gamma)
 
void setCornerWarp (int windowIndex, const Gfx::CornerWarp &warp)
 
void setTransform (int windowIndex, int rotation, bool mirrorX, bool mirrorY)
 
void setSwapchainFlag (Gfx::SwapchainFlag flag)
 
void setSwapchainFormat (Gfx::SwapchainFormat format)
 
- Public Member Functions inherited from score::gfx::Node
 Node (const Node &)=delete
 
 Node (Node &&)=delete
 
Nodeoperator= (const Node &)=delete
 
Nodeoperator= (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
 
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)
 

Public Attributes

std::function< void(float)> onFps
 
std::function< void()> onWindowsCreated
 
- 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 {}
 
bool addedToGraph {}
 

Member Function Documentation

◆ canRender()

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

◆ configuration()

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

◆ createOutput()

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

◆ createRenderer()

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

Create a renderer in a given context for this node.

Implements score::gfx::OutputNode.

◆ destroyOutput()

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

◆ onRendererChange()

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

◆ render()

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

◆ renderer()

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

◆ renderState()

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

◆ setRenderer()

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

◆ setVSyncCallback()

void score::gfx::MultiWindowNode::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::MultiWindowNode::startRendering ( )
overridevirtual

◆ stopRendering()

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

◆ updateGraphicsAPI()

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

Reimplemented from score::gfx::OutputNode.


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