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.

Reimplemented in MayaFlux::Nodes::GpuSync::SDFNode.

Definition at line 74 of file MeshWriterNode.cpp.

75{
76 if (m_vertices.empty()) {
77 resize_vertex_buffer(0, false);
78 return;
79 }
80
81 set_vertices<MeshVertex>(std::span { m_vertices.data(), m_vertices.size() });
82 set_indices(std::span { m_indices.data(), m_indices.size() });
83
84 auto layout = Kakshya::VertexLayout::for_meshes(sizeof(MeshVertex));
85 layout.vertex_count = static_cast<uint32_t>(m_vertices.size());
86 set_vertex_layout(layout);
87
89 "MeshWriterNode: uploaded {} vertices, {} indices ({} faces)",
90 m_vertices.size(), m_indices.size(), m_indices.size() / 3);
91}
#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.
Kakshya::MeshVertex MeshVertex
Definition VertexSpec.hpp:9
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().

Referenced by MayaFlux::Nodes::GpuSync::SDFNode::rebuild().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: