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

◆ destroy_pipeline()

void MayaFlux::Portal::Graphics::RenderFlow::destroy_pipeline ( RenderPipelineID  pipeline_id)

Destroy a graphics pipeline.

Parameters
pipeline_idPipeline ID to destroy

Definition at line 432 of file RenderFlow.cpp.

433{
434 auto it = m_pipelines.find(pipeline_id);
435 if (it == m_pipelines.end()) {
436 return;
437 }
438
439 auto device = m_shader_foundry->get_device();
440
441 if (it->second.pipeline) {
442 it->second.pipeline->cleanup(device);
443 }
444
445 if (it->second.layout) {
446 device.destroyPipelineLayout(it->second.layout);
447 }
448
449 for (auto layout : it->second.layouts) {
450 if (layout) {
451 device.destroyDescriptorSetLayout(layout);
452 }
453 }
454
455 m_pipelines.erase(it);
456
458 "Destroyed graphics pipeline (ID: {})", pipeline_id);
459}
#define MF_DEBUG(comp, ctx,...)
std::unordered_map< RenderPipelineID, PipelineState > m_pipelines
@ Rendering
GPU rendering operations (graphics pipeline, frame rendering)
@ Portal
High-level user-facing API layer.

References MayaFlux::Portal::Graphics::ShaderFoundry::get_device(), m_pipelines, m_shader_foundry, MF_DEBUG, MayaFlux::Journal::Portal, and MayaFlux::Journal::Rendering.

+ Here is the call graph for this function: