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

◆ compute_frame()

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

Compute frame - generates vertex data from points and connections.

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

Definition at line 356 of file TopologyGeneratorNode.cpp.

357{
358 if (m_geometry_dirty) {
360 m_geometry_dirty = false;
361 m_attributes_dirty = false;
362 } else if (m_attributes_dirty) {
364 m_attributes_dirty = false;
365 m_vertex_data_dirty = true;
366 }
367
368 if (!m_vertex_data_dirty) {
369 return;
370 }
371
372#ifdef MAYAFLUX_PLATFORM_MACOS
373 m_expand_cache = expand_lines_to_triangles(m_vertices);
374 set_vertices<LineVertex>(std::span { m_expand_cache.data(), m_expand_cache.size() });
375
376 auto layout = get_vertex_layout();
377 layout->vertex_count = static_cast<uint32_t>(m_expand_cache.size());
378 set_vertex_layout(*layout);
379#else
380 set_vertices<LineVertex>(std::span { m_vertices.data(), m_vertices.size() });
381
382 auto layout = get_vertex_layout();
383 layout->vertex_count = static_cast<uint32_t>(m_vertices.size());
384 set_vertex_layout(*layout);
385#endif
386
387 m_vertex_data_dirty = false;
388}
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 refresh_attributes()
Rewrite colour and thickness over existing positions.

References build_vertex_buffer(), MayaFlux::Nodes::GpuSync::GeometryWriterNode::get_vertex_layout(), m_attributes_dirty, m_geometry_dirty, MayaFlux::Nodes::GpuSync::GeometryWriterNode::m_vertex_data_dirty, m_vertices, refresh_attributes(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout().

+ Here is the call graph for this function: