From ad066d60aa2ba7f39da9c9457e2fbc84df293059 Mon Sep 17 00:00:00 2001 From: Mark Oliver Mints <mmints@uni-koblenz.de> Date: Tue, 27 Jul 2021 11:02:50 +0200 Subject: [PATCH] [#71] Refactor: move get and destroy functions --- src/vkcv/PipelineManager.cpp | 114 +++++++++++++++++------------------ 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/src/vkcv/PipelineManager.cpp b/src/vkcv/PipelineManager.cpp index fd268acc..29c7cbde 100644 --- a/src/vkcv/PipelineManager.cpp +++ b/src/vkcv/PipelineManager.cpp @@ -17,6 +17,63 @@ namespace vkcv } } + vk::Pipeline PipelineManager::getVkPipeline(const PipelineHandle &handle) const + { + const uint64_t id = handle.getId(); + + if (id >= m_Pipelines.size()) { + return nullptr; + } + + auto& pipeline = m_Pipelines[id]; + + return pipeline.m_handle; + } + + vk::PipelineLayout PipelineManager::getVkPipelineLayout(const PipelineHandle &handle) const + { + const uint64_t id = handle.getId(); + + if (id >= m_Pipelines.size()) { + return nullptr; + } + + auto& pipeline = m_Pipelines[id]; + + return pipeline.m_layout; + } + + const PipelineConfig& PipelineManager::getPipelineConfig(const PipelineHandle &handle) const + { + const uint64_t id = handle.getId(); + + if (id >= m_Pipelines.size()) { + static PipelineConfig dummyConfig; + vkcv_log(LogLevel::ERROR, "Invalid handle"); + return dummyConfig; + } + + return m_Pipelines[id].m_config; + } + + void PipelineManager::destroyPipelineById(uint64_t id) { + if (id >= m_Pipelines.size()) { + return; + } + + auto& pipeline = m_Pipelines[id]; + + if (pipeline.m_handle) { + m_Device.destroy(pipeline.m_handle); + pipeline.m_handle = nullptr; + } + + if (pipeline.m_layout) { + m_Device.destroy(pipeline.m_layout); + pipeline.m_layout = nullptr; + } + } + // TODO: Move to Header // currently assuming default 32 bit formats, no lower precision or normalized variants supported vk::Format vertexFormatToVulkanFormat(const VertexAttachmentFormat format) { @@ -360,63 +417,6 @@ namespace vkcv return PipelineHandle(id, [&](uint64_t id) { destroyPipelineById(id); }); } - vk::Pipeline PipelineManager::getVkPipeline(const PipelineHandle &handle) const - { - const uint64_t id = handle.getId(); - - if (id >= m_Pipelines.size()) { - return nullptr; - } - - auto& pipeline = m_Pipelines[id]; - - return pipeline.m_handle; - } - - vk::PipelineLayout PipelineManager::getVkPipelineLayout(const PipelineHandle &handle) const - { - const uint64_t id = handle.getId(); - - if (id >= m_Pipelines.size()) { - return nullptr; - } - - auto& pipeline = m_Pipelines[id]; - - return pipeline.m_layout; - } - - void PipelineManager::destroyPipelineById(uint64_t id) { - if (id >= m_Pipelines.size()) { - return; - } - - auto& pipeline = m_Pipelines[id]; - - if (pipeline.m_handle) { - m_Device.destroy(pipeline.m_handle); - pipeline.m_handle = nullptr; - } - - if (pipeline.m_layout) { - m_Device.destroy(pipeline.m_layout); - pipeline.m_layout = nullptr; - } - } - - const PipelineConfig& PipelineManager::getPipelineConfig(const PipelineHandle &handle) const - { - const uint64_t id = handle.getId(); - - if (id >= m_Pipelines.size()) { - static PipelineConfig dummyConfig; - vkcv_log(LogLevel::ERROR, "Invalid handle"); - return dummyConfig; - } - - return m_Pipelines[id].m_config; - } - PipelineHandle PipelineManager::createComputePipeline( const ShaderProgram &shaderProgram, const std::vector<vk::DescriptorSetLayout> &descriptorSetLayouts) { -- GitLab