52 std::string vertex_shader =
"point.vert.spv";
53 std::string fragment_shader =
"point.frag.spv";
68 std::shared_ptr<Nodes::NodeNetwork> network,
69 const std::string& binding_name =
"network_geometry",
70 float over_allocate_factor = 2.0F);
82 [[nodiscard]] std::shared_ptr<Nodes::NodeNetwork>
get_network()
const
90 [[nodiscard]] std::shared_ptr<NetworkGeometryProcessor>
get_processor()
const
100 return m_binding_name;
106 [[nodiscard]] uint32_t get_vertex_count()
const;
116 if (m_network && m_network->is_enabled()) {
117 m_network->process_batch(num_samples);
125 void setup_rendering(
const RenderConfig& config);
129 return m_render_processor;
142 static size_t calculate_buffer_size(
143 const std::shared_ptr<Nodes::NodeNetwork>& network,
144 float over_allocate_factor);
static MayaFlux::Nodes::ProcessingToken token
std::shared_ptr< Nodes::NodeNetwork > m_network
const std::string & get_binding_name() const
Get the logical binding name.
std::shared_ptr< NetworkGeometryProcessor > m_processor
~NetworkGeometryBuffer() override=default
std::string m_binding_name
std::shared_ptr< RenderProcessor > get_render_processor() const
std::shared_ptr< RenderProcessor > m_render_processor
std::shared_ptr< Nodes::NodeNetwork > get_network() const
Get the network driving this buffer.
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.
PolygonMode
Rasterization polygon mode.
CullMode
Face culling mode.
PrimitiveTopology
Vertex assembly primitive topology.
std::shared_ptr< Core::Window > target_window