diff --git a/include/Nazara/Graphics/FramePipelinePass.hpp b/include/Nazara/Graphics/FramePipelinePass.hpp index f52ff5ff7..7433218c9 100644 --- a/include/Nazara/Graphics/FramePipelinePass.hpp +++ b/include/Nazara/Graphics/FramePipelinePass.hpp @@ -14,6 +14,7 @@ #include #include #include +#include namespace Nz { @@ -74,13 +75,10 @@ namespace Nz struct PassInputOuputs { - // TODO: Add Nz::View / Nz::Span - const std::size_t* inputAttachments; - const std::size_t* outputAttachments; + std::span inputAttachments; + std::span outputAttachments; std::size_t depthStencilInput = InvalidAttachmentIndex; std::size_t depthStencilOutput = InvalidAttachmentIndex; - std::size_t inputCount = 0; - std::size_t outputCount = 0; }; struct VisibleRenderable diff --git a/src/Nazara/Graphics/DebugDrawPipelinePass.cpp b/src/Nazara/Graphics/DebugDrawPipelinePass.cpp index 692b0d72c..aed70b194 100644 --- a/src/Nazara/Graphics/DebugDrawPipelinePass.cpp +++ b/src/Nazara/Graphics/DebugDrawPipelinePass.cpp @@ -21,10 +21,10 @@ namespace Nz FramePass& DebugDrawPipelinePass::RegisterToFrameGraph(FrameGraph& frameGraph, const PassInputOuputs& inputOuputs) { - if (inputOuputs.inputCount != 1) + if (inputOuputs.inputAttachments.size() != 1) throw std::runtime_error("one input expected"); - if (inputOuputs.outputCount != 1) + if (inputOuputs.outputAttachments.size() != 1) throw std::runtime_error("one output expected"); FramePass& debugDrawPass = frameGraph.AddPass("Debug draw pass"); diff --git a/src/Nazara/Graphics/DepthPipelinePass.cpp b/src/Nazara/Graphics/DepthPipelinePass.cpp index 6e4a8d092..a4e0baf87 100644 --- a/src/Nazara/Graphics/DepthPipelinePass.cpp +++ b/src/Nazara/Graphics/DepthPipelinePass.cpp @@ -119,10 +119,10 @@ namespace Nz FramePass& DepthPipelinePass::RegisterToFrameGraph(FrameGraph& frameGraph, const PassInputOuputs& inputOuputs) { - if (inputOuputs.inputCount > 0) + if (inputOuputs.inputAttachments.size() > 0) throw std::runtime_error("no input expected"); - if (inputOuputs.outputCount > 0) + if (inputOuputs.outputAttachments.size() > 0) throw std::runtime_error("no output expected"); if (inputOuputs.depthStencilInput != InvalidAttachmentIndex) diff --git a/src/Nazara/Graphics/ForwardPipelinePass.cpp b/src/Nazara/Graphics/ForwardPipelinePass.cpp index 42357bcc0..1a364f6e8 100644 --- a/src/Nazara/Graphics/ForwardPipelinePass.cpp +++ b/src/Nazara/Graphics/ForwardPipelinePass.cpp @@ -146,10 +146,10 @@ namespace Nz FramePass& ForwardPipelinePass::RegisterToFrameGraph(FrameGraph& frameGraph, const PassInputOuputs& inputOuputs) { - if (inputOuputs.inputCount > 0) + if (inputOuputs.inputAttachments.size() > 0) throw std::runtime_error("no input expected"); - if (inputOuputs.outputCount != 1) + if (inputOuputs.outputAttachments.size() != 1) throw std::runtime_error("one output expected"); if (inputOuputs.depthStencilOutput == InvalidAttachmentIndex) diff --git a/src/Nazara/Graphics/PipelinePassList.cpp b/src/Nazara/Graphics/PipelinePassList.cpp index 834ccc570..5453b92e5 100644 --- a/src/Nazara/Graphics/PipelinePassList.cpp +++ b/src/Nazara/Graphics/PipelinePassList.cpp @@ -83,10 +83,8 @@ namespace Nz FramePipelinePass::PassInputOuputs passInputOuputs; passInputOuputs.depthStencilInput = GetAttachmentIndex(passData.depthStencilInput); passInputOuputs.depthStencilOutput = GetAttachmentIndex(passData.depthStencilOutput); - passInputOuputs.inputAttachments = inputs.data(); - passInputOuputs.inputCount = passData.inputs.size(); - passInputOuputs.outputAttachments = outputs.data(); - passInputOuputs.outputCount = passData.outputs.size(); + passInputOuputs.inputAttachments = inputs; + passInputOuputs.outputAttachments = outputs; FramePass& framePass = passes[passIndex]->RegisterToFrameGraph(frameGraph, passInputOuputs); if (passCallback) diff --git a/src/Nazara/Graphics/PostProcessPipelinePass.cpp b/src/Nazara/Graphics/PostProcessPipelinePass.cpp index 88fa1246c..af02d10cd 100644 --- a/src/Nazara/Graphics/PostProcessPipelinePass.cpp +++ b/src/Nazara/Graphics/PostProcessPipelinePass.cpp @@ -52,10 +52,10 @@ namespace Nz FramePass& PostProcessPipelinePass::RegisterToFrameGraph(FrameGraph& frameGraph, const PassInputOuputs& inputOuputs) { - if (inputOuputs.inputCount != 1) + if (inputOuputs.inputAttachments.size() != 1) throw std::runtime_error("one input expected"); - if (inputOuputs.outputCount != 1) + if (inputOuputs.outputAttachments.size() != 1) throw std::runtime_error("one output expected"); if (inputOuputs.depthStencilInput != InvalidAttachmentIndex)