Graphics/Material: Add UpdateBuffers
This commit is contained in:
@@ -5,7 +5,9 @@
|
||||
#include <Nazara/Graphics/Material.hpp>
|
||||
#include <Nazara/Core/ErrorFlags.hpp>
|
||||
#include <Nazara/Graphics/BasicMaterial.hpp>
|
||||
#include <Nazara/Renderer/CommandBufferBuilder.hpp>
|
||||
#include <Nazara/Renderer/Renderer.hpp>
|
||||
#include <Nazara/Renderer/UploadPool.hpp>
|
||||
#include <Nazara/Utility/MaterialData.hpp>
|
||||
#include <Nazara/Graphics/Debug.hpp>
|
||||
|
||||
@@ -53,6 +55,22 @@ namespace Nz
|
||||
}
|
||||
}
|
||||
|
||||
void Material::UpdateBuffers(UploadPool& uploadPool, CommandBufferBuilder& builder)
|
||||
{
|
||||
for (auto& ubo : m_uniformBuffers)
|
||||
{
|
||||
if (ubo.dataInvalidated)
|
||||
{
|
||||
auto& allocation = uploadPool.Allocate(ubo.data.size());
|
||||
std::memcpy(allocation.mappedPtr, ubo.data.data(), ubo.data.size());
|
||||
|
||||
builder.CopyBuffer(allocation, ubo.buffer.get());
|
||||
|
||||
ubo.dataInvalidated = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Material::UpdateShaderBinding(ShaderBinding& shaderBinding) const
|
||||
{
|
||||
// TODO: Use StackVector
|
||||
|
||||
Reference in New Issue
Block a user