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

◆ GeometryBuffer()

MayaFlux::Buffers::GeometryBuffer::GeometryBuffer ( std::shared_ptr< Nodes::GpuSync::GeometryWriterNode node,
const std::string &  binding_name = "geometry",
float  over_allocate_factor = 1.5f 
)
explicit

Create geometry buffer from generative node.

Parameters
nodeGeometryWriterNode that generates vertices each frame
binding_nameLogical name for this geometry binding (default: "geometry")
over_allocate_factorBuffer size multiplier for dynamic growth (default: 1.5x)

Buffer size is initially set to node->get_vertex_buffer_size_bytes(). If over_allocate_factor > 1.0, buffer will be larger to accommodate growth without reallocation.

Definition at line 10 of file GeometryBuffer.cpp.

14 : VKBuffer(
15 calculate_buffer_size(node, over_allocate_factor),
18 , m_geometry_node(std::move(node))
19 , m_binding_name(binding_name)
20{
21 if (!m_geometry_node) {
22 error<std::invalid_argument>(
25 std::source_location::current(),
26 "Cannot create GeometryBuffer with null GeometryWriterNode");
27 }
28
30 "Created GeometryBuffer '{}' for {} vertices ({} bytes, stride: {})",
32 m_geometry_node->get_vertex_count(),
34 m_geometry_node->get_vertex_stride());
35}
#define MF_INFO(comp, ctx,...)
std::shared_ptr< Nodes::GpuSync::GeometryWriterNode > m_geometry_node
static size_t calculate_buffer_size(const std::shared_ptr< Nodes::GpuSync::GeometryWriterNode > &node, float over_allocate_factor)
Calculate initial buffer size with optional over-allocation.
vk::DeviceSize get_size_bytes() const
Definition VKBuffer.hpp:235
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::Buffers, MayaFlux::Buffers::VKBuffer::get_size_bytes(), MayaFlux::Journal::Init, m_binding_name, m_geometry_node, and MF_INFO.

+ Here is the call graph for this function: