From 5a96ab3bf7c5b5f5714af4a770808c43fabfc6ed Mon Sep 17 00:00:00 2001 From: SirLynix Date: Wed, 3 Jan 2024 18:18:09 +0100 Subject: [PATCH] Graphics/PipelinePassList: Add AddPass overload taking a pass name --- include/Nazara/Graphics/PipelinePassList.hpp | 1 + src/Nazara/Graphics/PipelinePassList.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/Nazara/Graphics/PipelinePassList.hpp b/include/Nazara/Graphics/PipelinePassList.hpp index d3fe29a91..dd8603f7f 100644 --- a/include/Nazara/Graphics/PipelinePassList.hpp +++ b/include/Nazara/Graphics/PipelinePassList.hpp @@ -48,6 +48,7 @@ namespace Nz inline std::size_t AddAttachment(FramePassAttachment attachment); inline std::size_t AddAttachmentProxy(std::string name, std::size_t attachmentIndex); inline std::size_t AddPass(std::string name, std::size_t implIndex, ParameterList parameterList = {}); + std::size_t AddPass(std::string name, std::string_view impl, ParameterList parameterList = {}); std::vector> BuildPasses(FramePipelinePass::PassData& passData) const; diff --git a/src/Nazara/Graphics/PipelinePassList.cpp b/src/Nazara/Graphics/PipelinePassList.cpp index 37eeaad7f..0019ef593 100644 --- a/src/Nazara/Graphics/PipelinePassList.cpp +++ b/src/Nazara/Graphics/PipelinePassList.cpp @@ -16,6 +16,16 @@ namespace Nz return true; } + std::size_t PipelinePassList::AddPass(std::string name, std::string_view impl, ParameterList parameterList) + { + auto& passRegistry = Graphics::Instance()->GetFramePipelinePassRegistry(); + + std::size_t passIndex = passRegistry.GetPassIndex(impl); + NazaraAssertFmt(passIndex != passRegistry.InvalidIndex, "invalid pass name {0}", impl); + + return AddPass(std::move(name), passIndex, std::move(parameterList)); + } + std::vector> PipelinePassList::BuildPasses(FramePipelinePass::PassData& passData) const { auto& passRegistry = Graphics::Instance()->GetFramePipelinePassRegistry();