MayaFlux 0.4.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.empty()) {
84 return;
85 }
86
88 return;
89 }
90
91#ifdef MAYAFLUX_PLATFORM_MACOS
92 std::vector<LineVertex> expanded = expand_lines_to_triangles(m_segments);
93 set_vertices<LineVertex>(std::span { expanded.data(), expanded.size() });
94
95 auto layout = get_vertex_layout();
96 layout->vertex_count = static_cast<uint32_t>(expanded.size());
97 set_vertex_layout(*layout);
98#else
99 set_vertices<LineVertex>(std::span { m_segments.data(), m_segments.size() });
100
101 auto layout = get_vertex_layout();
102 layout->vertex_count = static_cast<uint32_t>(m_segments.size());
103 set_vertex_layout(*layout);
104#endif
105
106 m_vertex_data_dirty = false;
107}
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
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, MayaFlux::Nodes::GpuSync::GeometryWriterNode::m_vertex_data_dirty, MayaFlux::Nodes::GpuSync::GeometryWriterNode::resize_vertex_buffer(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout().

+ Here is the call graph for this function: