From 1ffcc7fc1a2f4922a5ee0d9e7c98ad858046337f Mon Sep 17 00:00:00 2001 From: Thraix Date: Tue, 1 Oct 2024 19:53:19 +0200 Subject: [PATCH] Minor improvements to Pipeline and Uniformbuffer --- CopiumEngine/src/copium/buffer/UniformBuffer.cpp | 8 ++++++++ CopiumEngine/src/copium/buffer/UniformBuffer.h | 1 + CopiumEngine/src/copium/pipeline/Pipeline.cpp | 1 + CopiumEngine/src/copium/pipeline/ShaderBinding.cpp | 6 +++--- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CopiumEngine/src/copium/buffer/UniformBuffer.cpp b/CopiumEngine/src/copium/buffer/UniformBuffer.cpp index 13035c7..2c00b54 100644 --- a/CopiumEngine/src/copium/buffer/UniformBuffer.cpp +++ b/CopiumEngine/src/copium/buffer/UniformBuffer.cpp @@ -72,4 +72,12 @@ namespace Copium { Buffer::Update(buffer.data(), Vulkan::GetSwapChain().GetFlightIndex()); } + + void UniformBuffer::UpdateStatic() + { + for (int i = 0; i < SwapChain::MAX_FRAMES_IN_FLIGHT; i++) + { + Buffer::Update(buffer.data(), i); + } + } } \ No newline at end of file diff --git a/CopiumEngine/src/copium/buffer/UniformBuffer.h b/CopiumEngine/src/copium/buffer/UniformBuffer.h index 9453b31..887b3c0 100644 --- a/CopiumEngine/src/copium/buffer/UniformBuffer.h +++ b/CopiumEngine/src/copium/buffer/UniformBuffer.h @@ -30,5 +30,6 @@ namespace Copium void Set(const std::string& str, int data); void Update(); + void UpdateStatic(); }; } diff --git a/CopiumEngine/src/copium/pipeline/Pipeline.cpp b/CopiumEngine/src/copium/pipeline/Pipeline.cpp index a1b7f4e..619913f 100644 --- a/CopiumEngine/src/copium/pipeline/Pipeline.cpp +++ b/CopiumEngine/src/copium/pipeline/Pipeline.cpp @@ -42,6 +42,7 @@ namespace Copium else if (type == "Mesh") { creator.SetVertexDescriptor(Vertex::GetDescriptor()); + creator.SetBlending(metaFileClass.GetValue("alpha-blending", "false") == "true" ? true : false); } InitializeDescriptorSetLayout(creator); InitializePipeline(creator); diff --git a/CopiumEngine/src/copium/pipeline/ShaderBinding.cpp b/CopiumEngine/src/copium/pipeline/ShaderBinding.cpp index f4947a9..e27da34 100644 --- a/CopiumEngine/src/copium/pipeline/ShaderBinding.cpp +++ b/CopiumEngine/src/copium/pipeline/ShaderBinding.cpp @@ -21,7 +21,7 @@ namespace Copium return offset; offset += GetUniformTypeOffset(uniformElem.first); } - CP_ABORT("Uniform not found=%s", uniform); + CP_ABORT("Uniform not found=%s", uniform.c_str()); } uint32_t ShaderBinding::GetUniformSize(const std::string& uniform) const @@ -31,7 +31,7 @@ namespace Copium if (uniformElem.second == uniform) return GetUniformTypeSize(uniformElem.first); } - CP_ABORT("Uniform not found=%s", uniform); + CP_ABORT("Uniform not found=%s", uniform.c_str()); } UniformType ShaderBinding::GetUniformType(const std::string& uniform) const @@ -41,7 +41,7 @@ namespace Copium if (uniformElem.second == uniform) return uniformElem.first; } - CP_ABORT("Uniform not found=%s", uniform); + CP_ABORT("Uniform not found=%s", uniform.c_str()); } uint32_t ShaderBinding::GetUniformBufferSize() const