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

◆ compute_frame()

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

Pack accumulated segments into the GPU vertex buffer.

Bypasses all PathGeneratorNode interpolation. Copies m_segments directly via set_vertices<LineVertex>.

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

Definition at line 80 of file LineSegmentsNode.cpp.

81{
82 if (!m_segments_dirty) {
83 return;
84 }
85
86 if (m_segments.empty()) {
88 } else {
89 set_vertices<LineVertex>(std::span { m_segments.data(), m_segments.size() });
90 }
91
92 if (auto layout = get_vertex_layout()) {
93 layout->vertex_count = static_cast<uint32_t>(m_segments.size());
94 set_vertex_layout(*layout);
95 }
96
97 m_segments_dirty = false;
98}
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.

References MayaFlux::Nodes::GpuSync::GeometryWriterNode::get_vertex_layout(), m_segments, m_segments_dirty, MayaFlux::Nodes::GpuSync::GeometryWriterNode::resize_vertex_buffer(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout().

+ Here is the call graph for this function: