Calculate initial buffer size with optional over-allocation.
165{
166 if (!node) {
167 return 0;
168 }
169
170 size_t base_size = node->get_vertex_buffer_size_bytes();
171
172 if (base_size == 0) {
174 "GeometryWriterNode has zero-size vertex buffer. "
175 "Did you forget to call set_vertex_stride() or resize_vertex_buffer()?");
176 return 4096;
177 }
178
179 auto allocated_size = static_cast<size_t>(
180 static_cast<float>(base_size) * over_allocate_factor);
181
182 if (over_allocate_factor > 1.0F) {
184 "Over-allocated geometry buffer: {} → {} bytes ({}x)",
185 base_size, allocated_size, over_allocate_factor);
186 }
187
188 return allocated_size;
189}
#define MF_WARN(comp, ctx,...)
#define MF_DEBUG(comp, ctx,...)
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Buffers
Buffers, Managers, processors and processing chains.