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

◆ resize_vertex_buffer()

void MayaFlux::Nodes::GpuSync::GeometryWriterNode::resize_vertex_buffer ( uint32_t  vertex_count,
bool  preserve_data = false 
)

Resize vertex buffer to hold specified number of vertices.

Parameters
vertex_countNumber of vertices
preserve_dataIf true, keep existing data; if false, clear buffer

Allocates/reallocates buffer to hold vertex_count vertices at current stride. If stride is 0, logs error and does nothing.

Definition at line 18 of file GeometryWriterNode.cpp.

19{
20 if (m_vertex_stride == 0) {
22 "Cannot resize vertex buffer: stride is 0. Call set_vertex_stride() first");
23 return;
24 }
25
26 size_t new_size_bytes = static_cast<size_t>(vertex_count) * m_vertex_stride;
27
28 if (!preserve_data) {
29 m_vertex_buffer.clear();
30 m_vertex_buffer.resize(new_size_bytes, 0.0F);
31 } else if (m_vertex_buffer.size() < new_size_bytes) {
32 m_vertex_buffer.resize(new_size_bytes, 0.0F);
33 } else if (m_vertex_buffer.size() > new_size_bytes) {
34 m_vertex_buffer.resize(new_size_bytes);
35 }
36
37 m_vertex_count = vertex_count;
40
42 "GeometryWriterNode: Resized vertex buffer to {} vertices ({} bytes total)",
43 vertex_count, new_size_bytes * sizeof(float));
44}
#define MF_ERROR(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
std::vector< uint8_t > m_vertex_buffer
Vertex data buffer (flat array of bytes)
bool m_vertex_data_dirty
Flag: vertex data or layout changed since last GPU upload.
size_t m_vertex_stride
Bytes per vertex (stride for vertex buffer binding)
bool m_needs_layout_update
Flag indicating if layout needs update.
uint32_t m_vertex_count
Number of vertices in buffer.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References m_needs_layout_update, m_vertex_buffer, m_vertex_count, m_vertex_data_dirty, m_vertex_stride, MF_DEBUG, MF_ERROR, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.

Referenced by clear_and_resize(), MayaFlux::Nodes::GpuSync::PointCollectionNode::compute_frame(), MayaFlux::Nodes::GpuSync::PointCollectionNode::PointCollectionNode(), MayaFlux::Nodes::GpuSync::PointCollectionNode::PointCollectionNode(), and MayaFlux::Nodes::GpuSync::PointNode::PointNode().

+ Here is the caller graph for this function: