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

◆ setup_rendering()

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

Attach a RenderProcessor drawing the extracted surface.

Parameters
configRender target. Vertex and fragment shaders default to the untextured triangle pair; topology is forced to TRIANGLE_LIST.

Requires a SurfaceConfig at construction. Without one this buffer has no vertex storage and nothing to draw.

Definition at line 250 of file VolumeGridBuffer.cpp.

251{
252 if (!m_surface) {
254 "setup_rendering: no SurfaceConfig was supplied at construction");
255 return;
256 }
257
258 RenderConfig resolved = config;
260
261 if (resolved.vertex_shader.empty())
262 resolved.vertex_shader = "triangle.vert.spv";
263 if (resolved.fragment_shader.empty())
264 resolved.fragment_shader = "triangle.frag.spv";
265
266 apply_render_config(resolved, ShaderConfig { resolved.vertex_shader });
267
268 get_processing_chain()->add_final_processor(m_render_processor, shared_from_this());
269
270 m_render_processor->set_vertex_range(0, 0);
272}
#define MF_ERROR(comp, ctx,...)
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
Definition VKBuffer.cpp:263
Portal::Graphics::RenderConfig RenderConfig
Definition VKBuffer.hpp:78
void set_needs_depth_attachment(bool needs)
Mark this buffer as requiring depth testing when rendered.
Definition VKBuffer.hpp:567
void apply_render_config(const RenderConfig &config, const ShaderConfig &shader_config)
Configure the internal m_render_processor from a RenderConfig.
Definition VKBuffer.cpp:336
std::shared_ptr< RenderProcessor > m_render_processor
Definition VKBuffer.hpp:620
std::optional< SurfaceConfig > m_surface
@ 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::fragment_shader, MayaFlux::Buffers::VKBuffer::get_processing_chain(), MayaFlux::Journal::Init, MayaFlux::Buffers::VKBuffer::m_render_processor, m_surface, MF_ERROR, MayaFlux::Buffers::VKBuffer::set_needs_depth_attachment(), 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: