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

◆ update_chain_render_range()

void MayaFlux::Buffers::NetworkGeometryBuffer::update_chain_render_range ( size_t  index,
uint32_t  vertex_offset,
uint32_t  vertex_count,
const std::optional< Kakshya::VertexLayout > &  layout 
)

Update vertex range for a specific operator chain index.

Parameters
indexOperator chain index
vertex_offsetStarting vertex offset for this chain
vertex_countNumber of vertices for this chain
layoutOptional vertex layout for this chain (if different from primary)

This allows the processor to push per-chain vertex ranges to the RenderProcessor, enabling it to issue draw calls for specific subsets of the geometry.

Definition at line 224 of file NetworkGeometryBuffer.cpp.

229{
230 if (index == 0) {
232 m_render_processor->set_vertex_range(vertex_offset, vertex_count);
233 return;
234 }
235
236 const size_t ci = index - 1;
237 if (ci >= m_chain_render_processors.size())
238 return;
239
240 auto& entry = m_chain_render_processors[ci];
241 entry.vertex_offset = vertex_offset;
242 entry.vertex_count = vertex_count;
243 entry.render_processor->set_vertex_range(vertex_offset, vertex_count);
244
245 if (layout) {
246 auto self = std::dynamic_pointer_cast<VKBuffer>(shared_from_this());
247 entry.render_processor->set_buffer_vertex_layout(self, *layout);
248 }
249}
uint32_t index
Definition VKDevice.cpp:142
std::vector< ChainRenderEntry > m_chain_render_processors
std::shared_ptr< RenderProcessor > m_render_processor
Definition VKBuffer.hpp:620

References index, m_chain_render_processors, and MayaFlux::Buffers::VKBuffer::m_render_processor.