Cleanup Renderer

This commit is contained in:
Thraix
2023-03-08 23:03:30 +01:00
parent 796de92a56
commit 6e463b3560
12 changed files with 218 additions and 94 deletions
@@ -21,7 +21,7 @@ namespace Copium
void IndexBuffer::Draw(const CommandBuffer& commandBuffer, int indices)
{
CP_ASSERT(indices >= 0 && indices < indexCount, "Draw : amount of indices is out of range");
CP_ASSERT(indices > 0 && indices <= indexCount, "Draw : amount of indices is out of range");
vkCmdDrawIndexed(commandBuffer, indices, 1, 0, 0, 0);
}
}
@@ -0,0 +1,17 @@
#include "copium/buffer/RendererVertexBuffer.h"
#include "copium/core/SwapChain.h"
namespace Copium
{
RendererVertexBuffer::RendererVertexBuffer(Vulkan& vulkan, const VertexDescriptor& descriptor, int vertexCount)
: Buffer{vulkan, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, descriptor.GetVertexSize() * vertexCount, SwapChain::MAX_FRAMES_IN_FLIGHT}
{}
void RendererVertexBuffer::Bind(const CommandBuffer& commandBuffer)
{
VkDeviceSize offset = GetPosition(vulkan.GetSwapChain().GetFlightIndex());
vkCmdBindVertexBuffers(commandBuffer, 0, 1, &handle, &offset);
}
}
@@ -0,0 +1,18 @@
#pragma once
#include "copium/buffer/Buffer.h"
#include "copium/buffer/CommandBuffer.h"
#include "copium/core/Vulkan.h"
#include "copium/pipeline/VertexDescriptor.h"
namespace Copium
{
class RendererVertexBuffer : public Buffer
{
CP_DELETE_COPY_AND_MOVE_CTOR(RendererVertexBuffer);
public:
RendererVertexBuffer(Vulkan& vulkan, const VertexDescriptor& descriptor, int vertexCount);
void Bind(const CommandBuffer& commandBuffer);
};
}