MayaFlux 1.0.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 115 of file ComputeMeshBuffer.cpp.

116{
117 const bool textured = m_diffuse_texture != nullptr
118 || !config.default_texture_binding.empty();
119
120 RenderConfig resolved = config;
122
123 if (resolved.vertex_shader.empty())
124 resolved.vertex_shader = "triangle.vert.spv";
125
126 if (resolved.fragment_shader.empty()) {
127 resolved.fragment_shader = textured
128 ? "mesh_textured.frag.spv"
129 : "triangle.frag.spv";
130 }
131
132 ShaderConfig sc { resolved.vertex_shader };
133
134 if (textured) {
135 const std::string slot = resolved.default_texture_binding.empty()
137 : resolved.default_texture_binding;
138 sc.bindings[slot] = ShaderBinding(0, 1, vk::DescriptorType::eCombinedImageSampler);
139 }
140
141 apply_render_config(resolved, sc);
142
145
146 get_processing_chain()->add_final_processor(
147 m_render_processor, shared_from_this());
148
150 "ComputeMeshBuffer: rendering configured ({}textured)",
151 textured ? "" : "un");
152}
#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:271
Portal::Graphics::RenderConfig RenderConfig
Definition VKBuffer.hpp:78
void apply_render_config(const RenderConfig &config, const ShaderConfig &shader_config)
Configure the internal m_render_processor from a RenderConfig.
Definition VKBuffer.cpp:344
std::shared_ptr< RenderProcessor > m_render_processor
Definition VKBuffer.hpp:654
@ 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: