MayaFlux 1.0.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 103 of file MeshWriterNode.cpp.

104{
105 if (!m_mesh_dirty) {
106 return;
107 }
108
109 if (m_vertices.empty()) {
110 resize_vertex_buffer(0, false);
111 set_indices(std::span<const uint32_t> {});
112 } else {
113 set_vertices<MeshVertex>(std::span { m_vertices.data(), m_vertices.size() });
114 set_indices(std::span { m_indices.data(), m_indices.size() });
115 }
116
117 auto layout = Kakshya::VertexLayout::for_meshes(sizeof(MeshVertex));
118 layout.vertex_count = static_cast<uint32_t>(m_vertices.size());
119 set_vertex_layout(layout);
120
121 m_mesh_dirty = false;
122
124 "MeshWriterNode: uploaded {} vertices, {} indices ({} faces)",
125 m_vertices.size(), m_indices.size(), m_indices.size() / 3);
126}
#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
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_mesh_dirty, 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: