Graphics/SpriteChainRenderer: Reuse vertex buffers and memory

This commit is contained in:
Jérôme Leclercq
2021-09-05 16:04:10 +02:00
parent 938d965e06
commit 26e5a41dce
2 changed files with 35 additions and 10 deletions

View File

@@ -9,6 +9,7 @@
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Graphics/ElementRenderer.hpp>
#include <Nazara/Renderer/UploadPool.hpp>
#include <memory>
#include <unordered_map>
#include <vector>
@@ -33,9 +34,16 @@ namespace Nz
void Reset(ElementRendererData& rendererData, RenderFrame& currentFrame);
private:
struct VertexBufferPool
{
std::vector<std::shared_ptr<AbstractBuffer>> vertexBuffers;
};
std::shared_ptr<AbstractBuffer> m_indexBuffer;
std::shared_ptr<VertexBufferPool> m_vertexBufferPool;
std::size_t m_maxVertexBufferSize;
std::size_t m_maxVertexCount;
std::vector<std::pair<UploadPool::Allocation*, AbstractBuffer*>> m_pendingCopies;
RenderDevice& m_device;
};