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

◆ compute_frame()

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

Compute GPU data for this frame.

Called once per VISUAL_RATE tick. Subclasses populate their respective buffers (pixel_buffer, vertex_buffer, readback_data).

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

Definition at line 57 of file MeshWriterNode.cpp.

58{
59 if (m_vertices.empty()) {
60 resize_vertex_buffer(0, false);
61 return;
62 }
63
64 set_vertices<MeshVertex>(std::span { m_vertices.data(), m_vertices.size() });
65 set_indices(std::span { m_indices.data(), m_indices.size() });
66
67 auto layout = Kakshya::VertexLayout::for_meshes(sizeof(MeshVertex));
68 layout.vertex_count = static_cast<uint32_t>(m_vertices.size());
69 set_vertex_layout(layout);
70
72 "MeshWriterNode: uploaded {} vertices, {} indices ({} faces)",
73 m_vertices.size(), m_indices.size(), m_indices.size() / 3);
74}
#define MF_TRACE(comp, ctx,...)
void set_vertex_layout(const Kakshya::VertexLayout &layout)
Set cached vertex layout.
void set_indices(std::span< const uint32_t > indices)
Set index buffer for indexed drawing.
void resize_vertex_buffer(uint32_t vertex_count, bool preserve_data=false)
Resize vertex buffer to hold specified number of vertices.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.
static VertexLayout for_meshes(uint32_t stride=60)
Factory: layout for MeshVertex (position, color, weight, uv, normal, tangent)

References MayaFlux::Kakshya::VertexLayout::for_meshes(), m_indices, m_vertices, MF_TRACE, MayaFlux::Journal::NodeProcessing, MayaFlux::Journal::Nodes, MayaFlux::Nodes::GpuSync::GeometryWriterNode::resize_vertex_buffer(), MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_indices(), and MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_layout().

+ Here is the call graph for this function: