58 std::shared_ptr<Nodes::Network::NodeNetwork>
network,
59 const std::string& binding_name =
"network_geometry",
60 float over_allocate_factor = 2.0F);
72 [[nodiscard]] std::shared_ptr<Nodes::Network::NodeNetwork>
get_network()
const
80 [[nodiscard]] std::shared_ptr<NetworkGeometryProcessor>
get_processor()
const
90 return m_binding_name;
96 [[nodiscard]] uint32_t get_vertex_count()
const;
106 if (m_network && m_network->is_enabled()) {
107 m_network->process_batch(num_samples);
115 void setup_rendering(
const RenderConfig& config);
124 void add_chain_operator_rendering(
const RenderConfig& config);
133 [[nodiscard]] std::shared_ptr<RenderProcessor> get_chain_render_processor(
size_t index)
const;
145 void update_chain_render_range(
147 uint32_t vertex_offset,
148 uint32_t vertex_count,
149 const std::optional<Kakshya::VertexLayout>& layout);
159 uint32_t vertex_offset {};
160 uint32_t vertex_count {};
167 static size_t calculate_buffer_size(
168 const std::shared_ptr<Nodes::Network::NodeNetwork>&
network,
169 float over_allocate_factor);
Core::GlobalNetworkConfig network
std::vector< ChainRenderEntry > m_chain_render_processors
const std::string & get_binding_name() const
Get the logical binding name.
std::shared_ptr< NetworkGeometryProcessor > m_processor
~NetworkGeometryBuffer() override=default
std::shared_ptr< Nodes::Network::NodeNetwork > m_network
std::shared_ptr< Nodes::Network::NodeNetwork > get_network() const
Get the network driving this buffer.
std::string m_binding_name
std::shared_ptr< NetworkGeometryProcessor > get_processor() const
Get the processor managing uploads.
void update_network(unsigned int num_samples=1)
Trigger network processing.
Specialized buffer for geometry from NodeNetwork instances.
Vulkan-backed buffer wrapper used in processing chains.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
std::shared_ptr< RenderProcessor > render_processor