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 218 of file NetworkGeometryBuffer.cpp.

223{
224 if (index == 0) {
226 m_render_processor->set_vertex_range(vertex_offset, vertex_count);
227 return;
228 }
229
230 const size_t ci = index - 1;
231 if (ci >= m_chain_render_processors.size())
232 return;
233
234 auto& entry = m_chain_render_processors[ci];
235 entry.vertex_offset = vertex_offset;
236 entry.vertex_count = vertex_count;
237 entry.render_processor->set_vertex_range(vertex_offset, vertex_count);
238
239 if (layout) {
240 auto self = std::dynamic_pointer_cast<VKBuffer>(shared_from_this());
241 entry.render_processor->set_buffer_vertex_layout(self, *layout);
242 }
243}
std::vector< ChainRenderEntry > m_chain_render_processors
std::shared_ptr< RenderProcessor > m_render_processor
Definition VKBuffer.hpp:620

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