50 std::string vertex_shader =
"point.vert.spv";
51 std::string fragment_shader =
"point.frag.spv";
68 std::shared_ptr<Nodes::GpuSync::GeometryWriterNode> node,
69 const std::string& binding_name =
"geometry",
70 float over_allocate_factor = 1.5f);
84 return m_geometry_node;
92 return m_bindings_processor;
100 return m_binding_name;
108 return m_geometry_node ? m_geometry_node->get_vertex_count() : 0;
119 if (m_geometry_node) {
120 m_geometry_node->compute_frame();
128 void setup_rendering(
const RenderConfig& config);
132 return m_render_processor;
145 static size_t calculate_buffer_size(
146 const std::shared_ptr<Nodes::GpuSync::GeometryWriterNode>& node,
147 float over_allocate_factor);
static MayaFlux::Nodes::ProcessingToken token
std::shared_ptr< RenderProcessor > get_render_processor() const
std::shared_ptr< Nodes::GpuSync::GeometryWriterNode > get_geometry_node() const
Get the geometry node driving this buffer.
const std::string & get_binding_name() const
Get the logical binding name.
std::shared_ptr< Nodes::GpuSync::GeometryWriterNode > m_geometry_node
std::string m_binding_name
std::shared_ptr< RenderProcessor > m_render_processor
~GeometryBuffer() override=default
void update_geometry()
Trigger vertex computation on the node.
std::shared_ptr< GeometryBindingsProcessor > m_bindings_processor
std::shared_ptr< GeometryBindingsProcessor > get_bindings_processor() const
Get the bindings processor managing uploads.
uint32_t get_vertex_count() const
Get current vertex count from node.
Specialized buffer for generative geometry from GeometryWriterNode.
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