MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ VertexFieldProcessor()

MayaFlux::Buffers::VertexFieldProcessor::VertexFieldProcessor ( std::shared_ptr< Nodes::Network::GpuFieldOperator field_operator)
explicit
Parameters
field_operatorOperator supplying the generated spec. Must already carry at least one binding and a layout with a position attribute, since the shader is compiled during construction. Throws std::invalid_argument when build_spec() yields nothing.

Definition at line 47 of file VertexFieldProcessor.cpp.

49 : ComputeProcessor(require_spec(field_operator))
50 , m_operator(std::move(field_operator))
51 , m_built_revision(m_operator->revision())
52 , m_needs_cluster_id(m_operator->needs_cluster_id())
53{
55
56 add_binding("vertices",
57 ShaderBinding(0, m_operator->get_vertex_binding(),
59
61 add_binding("cluster_id",
62 ShaderBinding(0, m_operator->get_vertex_binding() + 1,
64 }
65
66 m_params.stride_words = m_operator->get_layout().stride_bytes / 4;
67
69}
ComputeProcessor(const std::string &shader_path, uint32_t workgroup_x=256)
Construct processor with shader path.
void set_push_constant_data(const T &data)
Update push constant data (type-safe)
void add_binding(const std::string &descriptor_name, const ShaderBinding &binding)
Add descriptor binding configuration.
std::shared_ptr< Nodes::Network::GpuFieldOperator > m_operator
@ GRAPHICS_BACKEND
Standard graphics processing backend configuration.
@ STORAGE
Large arrays or buffers the shader may write (SSBO)

References MayaFlux::Buffers::ShaderProcessor::add_binding(), MayaFlux::Buffers::GRAPHICS_BACKEND, m_needs_cluster_id, m_operator, m_params, MayaFlux::Buffers::BufferProcessor::m_processing_token, MayaFlux::Buffers::ShaderProcessor::set_push_constant_data(), MayaFlux::Portal::Graphics::STORAGE, and MayaFlux::Buffers::VertexFieldProcessor::RangeParams::stride_words.

+ Here is the call graph for this function: