project-aster/aster/pipeline.cpp

28 lines
759 B
C++

// =============================================
// Aster: pipeline.cpp
// Copyright (c) 2020-2024 Anish Bhobe
// =============================================
#include "pipeline.h"
#include "device.h"
Pipeline::Pipeline(const Device *device, vk::PipelineLayout layout, vk::Pipeline pipeline,
eastl::vector<vk::DescriptorSetLayout> &&setLayouts)
: m_Device(device)
, m_Layout(layout)
, m_Pipeline(pipeline)
, m_SetLayouts(std::move(setLayouts))
{
}
Pipeline::~Pipeline()
{
for (const auto setLayout : m_SetLayouts)
{
m_Device->m_Device.destroy(setLayout, nullptr);
}
m_SetLayouts.clear();
m_Device->m_Device.destroy(m_Pipeline, nullptr);
m_Device->m_Device.destroy(m_Layout, nullptr);
}