Data model for Interactive Shader Format filters.
See https://isf.video
|
|
| ISFNode (const isf::descriptor &desc, const QString &vert, const QString &frag) |
| |
|
| ISFNode (const isf::descriptor &desc, const QString &comp) |
| |
|
QSize | computeTextureSize (const isf::pass &pass, QSize origSize, std::span< const Sampler > inputSamplers={}) |
| |
| score::gfx::NodeRenderer * | createRenderer (RenderList &r) const noexcept override |
| | Create a renderer in a given context for this node.
|
| |
|
const isf::descriptor & | descriptor () const noexcept |
| |
|
int | cameraInput () const noexcept |
| |
| void | process (Message &&msg) override |
| | Process a message from the execution engine.
|
| |
| void | process (int32_t port, const ossia::value &v) override |
| |
| void | process (Message &&msg) override |
| | Process a message from the execution engine.
|
| |
| virtual void | process (Timings tk) |
| |
| virtual void | process (int32_t port, const ossia::value &v) |
| |
| virtual void | process (int32_t port, const ossia::audio_vector &v) |
| |
| virtual void | process (int32_t port, const ossia::transform3d &v) |
| |
|
void | process (int32_t port, ossia::monostate) const noexcept |
| |
| virtual void | process (int32_t port, const FunctionMessage &) |
| |
| virtual void | process (int32_t port, const ossia::buffer_spec &) |
| |
| void | process (Message &&msg) override |
| | Process a message from the execution engine.
|
| |
|
void | process (int32_t port, ossia::monostate) const noexcept |
| |
| bool | resetEventPortsAfterFrame () noexcept |
| |
|
| Node () |
| |
|
| Node (const Node &)=delete |
| |
|
| Node (Node &&)=delete |
| |
| virtual void | process (Message &&msg) |
| | Process a message from the execution engine.
|
| |
|
void | process (int32_t port, const ossia::render_target_spec &v) |
| |
|
| 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 | 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 |
| |
| 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) |
| |
|
|
friend | SinglePassISFNode |
| |
|
friend | RenderedISFNode |
| |
|
friend | isf_input_port_vis |
| |
|
isf::descriptor | m_descriptor |
| |
|
std::list< AudioTexture > | m_audio_textures |
| |
|
std::unique_ptr< char[]> | m_material_data |
| |
|
QString | m_vertexS |
| |
|
QString | m_fragmentS |
| |
|
QString | m_computeS |
| |
|
int | m_cameraInput {-1} |
| |
|
int | m_materialSize {} |
| |
|
int | m_materialUBOSize {} |
| |
| ProcessUBO | standardUBO {} |
| | Every node matching with a score process will have such an UBO.
|
| |
|
std::vector< int * > | m_event_ports |
| | Values of the EVENT inputs: 1 for the frame they fire in, else 0.
|
| |
|
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 {} |
| |
| void score::gfx::ProcessNode::process |
( |
int32_t |
port, |
|
|
const ossia::value & |
v |
|
) |
| |
|
virtual |
Take what the list supplies and leave the rest of the uniform alone.
ossia::convert<vec4f>(list) starts from a zeroed vector and fills the components the list has, so three floats arriving at a four-component uniform wrote a zero into the fourth. On a colour that is alpha, and the shape went black: an OSC address carrying rgb, or anything else that sends a colour without its alpha. A cable did not show it because it carries all four.
Leaving the missing components untouched is also the right answer for a non-colour uniform: a partial update should not silently zero what it did not mention.
Reimplemented from score::gfx::ProcessNode.