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

◆ set_vertex_data()

void MayaFlux::Nodes::GpuSync::GeometryWriterNode::set_vertex_data ( const void *  data,
size_t  size_bytes 
)

Copy raw vertex data into buffer.

Parameters
dataPointer to vertex data
size_bytesNumber of bytes to copy

Direct memory copy into m_vertex_buffer. User is responsible for ensuring data format matches stride.

Definition at line 46 of file GeometryWriterNode.cpp.

47{
48 if (!data || size_bytes == 0) {
50 "Cannot set vertex data: null data or zero size");
51 return;
52 }
53
54 if (m_vertex_stride == 0) {
56 "Cannot set vertex data: stride is 0");
57 return;
58 }
59
60 auto expected_vertex_count = static_cast<uint32_t>(size_bytes / m_vertex_stride);
61
62 if (size_bytes % m_vertex_stride != 0) {
64 "Vertex data size {} is not multiple of stride {}",
65 size_bytes, m_vertex_stride);
66 }
67
68 size_t required_floats = size_bytes / sizeof(float);
69 if (m_vertex_buffer.size() < required_floats) {
70 m_vertex_buffer.resize(required_floats);
71 }
72
73 std::memcpy(m_vertex_buffer.data(), data, size_bytes);
74 m_vertex_count = expected_vertex_count;
77
79 "GeometryWriterNode: Set vertex data ({} vertices, {} bytes)",
80 m_vertex_count, size_bytes);
81}
#define MF_ERROR(comp, ctx,...)
#define MF_WARN(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, MF_WARN, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.