MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ setup_rendering()

void MayaFlux::Buffers::TextureBuffer::setup_rendering ( const RenderConfig config)

Setup rendering with RenderProcessor.

Parameters
configRendering configuration

Definition at line 64 of file TextureBuffer.cpp.

65{
66 if (!m_render_processor) {
67 ShaderProcessorConfig shader_config { config.vertex_shader };
68 shader_config.bindings[config.default_texture_binding] = ShaderBinding(
69 0, 0, vk::DescriptorType::eCombinedImageSampler);
70
71 uint32_t binding_index = 1;
72 for (const auto& [name, _] : config.additional_textures) {
73 shader_config.bindings[name] = ShaderBinding(
74 0, binding_index++, vk::DescriptorType::eCombinedImageSampler);
75 }
76
77 m_render_processor = std::make_shared<RenderProcessor>(shader_config);
78 }
79
80 m_render_processor->set_fragment_shader(config.fragment_shader);
81 m_render_processor->set_target_window(config.target_window);
82 m_render_processor->set_primitive_topology(config.topology);
83
84 m_render_processor->bind_texture(config.default_texture_binding, get_texture());
85
86 for (const auto& [name, texture] : config.additional_textures) {
87 m_render_processor->bind_texture(name, texture);
88 }
89
90 get_processing_chain()->add_processor(m_render_processor, shared_from_this());
91}
std::shared_ptr< RenderProcessor > m_render_processor
std::shared_ptr< Core::VKImage > get_texture() const
Get GPU texture image Suitable for binding to shaders via RenderProcessor::bind_texture()
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
Definition VKBuffer.cpp:281

References MayaFlux::Buffers::TextureBuffer::RenderConfig::additional_textures, MayaFlux::Buffers::TextureBuffer::RenderConfig::default_texture_binding, MayaFlux::Buffers::TextureBuffer::RenderConfig::fragment_shader, MayaFlux::Buffers::VKBuffer::get_processing_chain(), get_texture(), m_render_processor, MayaFlux::Buffers::TextureBuffer::RenderConfig::target_window, MayaFlux::Buffers::TextureBuffer::RenderConfig::topology, and MayaFlux::Buffers::TextureBuffer::RenderConfig::vertex_shader.

+ Here is the call graph for this function: