mirror of
https://github.com/antopilo/Nuake.git
synced 2026-09-15 20:08:54 +03:00
Started pipeline renderpass inputs
This commit is contained in:
@@ -172,9 +172,25 @@ TextureAttachment& RenderPass::GetAttachment(const std::string& name)
|
||||
return Attachments[0];
|
||||
}
|
||||
|
||||
void RenderPass::AddInput(const TextureAttachment& name)
|
||||
std::vector<TextureAttachment&> RenderPass::GetAttachments()
|
||||
{
|
||||
Inputs.push_back(name);
|
||||
std::vector<TextureAttachment&> attachentRefs;
|
||||
attachentRefs.reserve(Attachments.size());
|
||||
for (auto& attachment : Attachments)
|
||||
{
|
||||
attachentRefs.push_back(attachment);
|
||||
}
|
||||
return attachentRefs;
|
||||
}
|
||||
|
||||
void RenderPass::AddInput(const std::string& name)
|
||||
{
|
||||
InputNames.push_back(name);
|
||||
}
|
||||
|
||||
void RenderPass::SetInput(const std::string& name, TextureAttachment& attachment)
|
||||
{
|
||||
Inputs[name] = attachment;
|
||||
}
|
||||
|
||||
void RenderPass::SetShaders(Ref<VulkanShader> vertShader, Ref<VulkanShader> fragShader)
|
||||
@@ -262,9 +278,21 @@ RenderPass& RenderPipeline::GetRenderPass(const std::string& name)
|
||||
|
||||
void RenderPipeline::Build()
|
||||
{
|
||||
std::map<std::string, TextureAttachment&> attachments;
|
||||
for (auto& pass : RenderPasses)
|
||||
{
|
||||
pass.Build();
|
||||
|
||||
|
||||
|
||||
for (auto& attachment : pass.GetAttachments())
|
||||
{
|
||||
attachments[attachment.Name] = attachment;
|
||||
}
|
||||
}
|
||||
|
||||
for (auto& pass : RenderPasses)
|
||||
{
|
||||
}
|
||||
|
||||
Built = true;
|
||||
|
||||
@@ -51,7 +51,8 @@ namespace Nuake
|
||||
|
||||
std::vector<TextureAttachment> Attachments;
|
||||
TextureAttachment DepthAttachment;
|
||||
std::vector<TextureAttachment> Inputs;
|
||||
std::vector<std::string> InputNames;
|
||||
std::map<std::string, TextureAttachment> Inputs;
|
||||
|
||||
std::any PushConstant;
|
||||
size_t PushConstantSize;
|
||||
@@ -78,8 +79,10 @@ namespace Nuake
|
||||
std::string GetName() const { return Name; }
|
||||
TextureAttachment& AddAttachment(const std::string& name, ImageFormat format, ImageUsage usage = ImageUsage::Default);
|
||||
TextureAttachment& GetAttachment(const std::string& name);
|
||||
std::vector<TextureAttachment&> GetAttachments();
|
||||
|
||||
void AddInput(const TextureAttachment& attachment);
|
||||
void AddInput(const std::string& name);
|
||||
void SetInput(const std::string& name, TextureAttachment& attachment);
|
||||
void SetShaders(Ref<VulkanShader> vertShader, Ref<VulkanShader> fragShader);
|
||||
|
||||
template<typename T>
|
||||
@@ -107,6 +110,7 @@ namespace Nuake
|
||||
|
||||
std::vector<RenderPass> RenderPasses;
|
||||
|
||||
|
||||
public:
|
||||
RenderPipeline();
|
||||
~RenderPipeline() = default;
|
||||
|
||||
@@ -73,10 +73,6 @@ void VkSceneRenderer::BeginScene(RenderContext inContext)
|
||||
GBufferPipeline.Execute(passCtx);
|
||||
}
|
||||
ModelPushConstant modelPushConstant{};
|
||||
void VkSceneRenderer::DrawScene()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void VkSceneRenderer::EndScene()
|
||||
{
|
||||
@@ -324,6 +320,11 @@ void VkSceneRenderer::CreatePipelines()
|
||||
|
||||
});
|
||||
|
||||
auto& shadingPass = GBufferPipeline.AddPass("Shading");
|
||||
|
||||
shadingPass.AddAttachment("Output", ImageFormat::RGBA16F);
|
||||
|
||||
|
||||
GBufferPipeline.Build();
|
||||
}
|
||||
|
||||
@@ -335,7 +336,6 @@ void VkSceneRenderer::SetGBufferSize(const Vector2& size)
|
||||
void VkSceneRenderer::UpdateCameraData(const CameraData& data)
|
||||
{
|
||||
CameraData adjustedData = data;
|
||||
adjustedData.View = Matrix4(1.0f); //data.View;
|
||||
adjustedData.View = data.View;
|
||||
adjustedData.Projection = data.Projection;
|
||||
|
||||
|
||||
@@ -101,7 +101,6 @@ namespace Nuake
|
||||
void UpdateCameraData(const CameraData& data);
|
||||
|
||||
void BeginScene(RenderContext inContext);
|
||||
void DrawScene();
|
||||
void EndScene();
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user