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

◆ compute_frame()

void MayaFlux::Nodes::GpuSync::PathGeneratorNode::compute_frame ( )
overridevirtual

Compute frame - generates interpolated vertices from control points.

Implements MayaFlux::Nodes::GpuSync::GpuSync.

Definition at line 525 of file PathGeneratorNode.cpp.

526{
527 if (m_geometry_dirty) {
529 m_attributes_dirty = false;
530 } else if (m_attributes_dirty) {
532 m_attributes_dirty = false;
533 m_path_dirty = true;
534 }
535
536 if (!m_path_dirty) {
537 return;
538 }
539
540 m_combined_cache.clear();
541 m_combined_cache.reserve(m_vertices.size() + m_completed_draws.size() + m_draw_vertices.size());
542 m_combined_cache.insert(m_combined_cache.end(), m_vertices.begin(), m_vertices.end());
545
546 if (m_combined_cache.empty()) {
548 } else {
549 set_vertices<LineVertex>(std::span { m_combined_cache.data(), m_combined_cache.size() });
550 }
551
552 if (auto layout = get_vertex_layout()) {
553 layout->vertex_count = static_cast<uint32_t>(m_combined_cache.size());
554 set_vertex_layout(*layout);
555 }
556
557 m_path_dirty = false;
558}
std::optional< Kakshya::VertexLayout > get_vertex_layout() const
Get cached vertex layout.
void set_vertex_layout(const Kakshya::VertexLayout &layout)
Set cached vertex layout.
void resize_vertex_buffer(uint32_t vertex_count, bool preserve_data=false)
Resize vertex buffer to hold specified number of vertices.
void refresh_attributes()
Rewrite colour and thickness over existing geometry, no curve evaluation.

References MayaFlux::Nodes::GpuSync::GeometryWriterNode::get_vertex_layout(), m_attributes_dirty, m_combined_cache, m_completed_draws, m_draw_vertices, m_geometry_dirty, m_path_dirty, m_vertices, refresh_attributes(), regenerate_geometry(), MayaFlux::Nodes::GpuSync::GeometryWriterNode::resize_vertex_buffer(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout().

+ Here is the call graph for this function: