19 size_t capacity_bytes,
22 Kakshya::DataModality::VERTEX_POSITIONS_3D)
23 , m_topology(topology)
35 auto proc = std::make_shared<Buffers::FormaProcessor>(
m_topology);
39 auto chain = std::make_shared<Buffers::BufferProcessingChain>();
40 chain->set_preferred_token(token);
49 m_processor->set_texture(std::move(img), std::move(binding));
61 const bool multi_tex = multi_count > 0;
75#ifndef MAYAFLUX_PLATFORM_MACOS
91 resolved.
vertex_shader = multi_tex ?
"triangle_multi.vert.spv" :
"triangle.vert.spv";
95 }
else if (single_tex) {
113 const uint32_t total = single_tex ? 1 + multi_count : multi_count;
115 0, 1, vk::DescriptorType::eCombinedImageSampler, total);
116 }
else if (single_tex) {
118 0, 1, vk::DescriptorType::eCombinedImageSampler);
128 [&](
const auto& p) { return p.first == config.default_texture_binding; });
154 "FormaBuffer::submit called before setup_processors, storing {} bytes for later submission", bytes.size());
165 "FormaBuffer::set_texture called before setup_processors, storing texture for later submission");
#define MF_RT_TRACE(comp, ctx,...)
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
void set_default_processor(const std::shared_ptr< BufferProcessor > &processor) override
Set the buffer's default processor.
void set_processing_chain(const std::shared_ptr< BufferProcessingChain > &chain, bool force=false) override
Replace the buffer's processing chain.
void apply_render_config(const RenderConfig &config, const ShaderConfig &shader_config)
Configure the internal m_render_processor from a RenderConfig.
std::shared_ptr< RenderProcessor > m_render_processor
void set_default_render_config(const RenderConfig &config)
Called by derived classes to set their context-specific defaults.
Vulkan-backed buffer wrapper used in processing chains.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
PrimitiveTopology
Vertex assembly primitive topology.
Describes how a VKBuffer binds to a shader descriptor.
std::vector< std::pair< std::string, std::shared_ptr< Core::VKImage > > > additional_textures
For child-specific fields.
PrimitiveTopology topology
std::string vertex_shader
std::string fragment_shader
std::string default_texture_binding
std::string geometry_shader
Unified rendering configuration for graphics buffers.