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

◆ setup_rendering()

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

Create the RenderProcessor and attach it to the processing chain.

Parameters
configAt minimum, supply target_window. Shader paths default to triangle.vert.spv / triangle.frag.spv (or mesh_textured.frag.spv when a texture has been set).

Definition at line 125 of file ComputeMeshBuffer.cpp.

126{
127 const bool textured = m_diffuse_texture != nullptr
128 || !config.default_texture_binding.empty();
129
130 RenderConfig resolved = config;
132
133 if (resolved.vertex_shader.empty())
134 resolved.vertex_shader = "triangle.vert.spv";
135
136 if (resolved.fragment_shader.empty()) {
137 resolved.fragment_shader = textured
138 ? "mesh_textured.frag.spv"
139 : "triangle.frag.spv";
140 }
141
142 ShaderConfig sc { resolved.vertex_shader };
143
144 if (textured) {
145 const std::string slot = resolved.default_texture_binding.empty()
147 : resolved.default_texture_binding;
148 sc.bindings[slot] = ShaderBinding(0, 1, vk::DescriptorType::eCombinedImageSampler);
149 }
150
151 apply_render_config(resolved, sc);
152
155
156 get_processing_chain()->add_final_processor(
157 m_render_processor, shared_from_this());
158
160 "ComputeMeshBuffer: rendering configured ({}textured)",
161 textured ? "" : "un");
162}
#define MF_INFO(comp, ctx,...)
std::shared_ptr< Core::VKImage > m_diffuse_texture
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
Definition VKBuffer.cpp:286
Portal::Graphics::RenderConfig RenderConfig
Definition VKBuffer.hpp:69
void apply_render_config(const RenderConfig &config, const ShaderConfig &shader_config)
Configure the internal m_render_processor from a RenderConfig.
Definition VKBuffer.cpp:359
std::shared_ptr< RenderProcessor > m_render_processor
Definition VKBuffer.hpp:618
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Buffers::VKBuffer::apply_render_config(), MayaFlux::Journal::Buffers, MayaFlux::Portal::Graphics::RenderConfig::default_texture_binding, MayaFlux::Portal::Graphics::RenderConfig::fragment_shader, MayaFlux::Buffers::VKBuffer::get_processing_chain(), MayaFlux::Journal::Init, m_diffuse_binding, m_diffuse_texture, MayaFlux::Buffers::VKBuffer::m_render_processor, MF_INFO, MayaFlux::Portal::Graphics::RenderConfig::topology, MayaFlux::Portal::Graphics::TRIANGLE_LIST, and MayaFlux::Portal::Graphics::RenderConfig::vertex_shader.

+ Here is the call graph for this function: