From 1bb6caa5c8cb97f23f84ac9f3d4aa6c38b6d901c Mon Sep 17 00:00:00 2001 From: ladevieq Date: Sun, 11 Sep 2022 23:43:54 +0200 Subject: Fix materials --- include/vk-renderer.hpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'include/vk-renderer.hpp') diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp index 614569a..6c6d2f0 100644 --- a/include/vk-renderer.hpp +++ b/include/vk-renderer.hpp @@ -124,20 +124,22 @@ class vkrenderer { class RingBuffer { public: - static const off_t invalid_alloc = -1; + static const size_t invalid_alloc = -1; RingBuffer(size_t size); - [[nodiscard]]off_t alloc(size_t alloc_size) const { - assert(alloc_size > 0); + [[nodiscard]]size_t alloc(size_t alloc_size) { + assert(alloc_size > 0 && alloc_size <= buffer_size); - if (ptr + alloc_size < buffer_size) { + if (ptr <= buffer_size - alloc_size) { + ptr += alloc_size; return ptr; } + return invalid_alloc; } - void write(void* data, off_t alloc_offset, size_t data_size) const { + void write(void* data, size_t alloc_offset, size_t data_size) const { auto api_buffer = vkrenderer::api.get_buffer(device_buffer); std::memcpy((uint8_t*)api_buffer.device_ptr + alloc_offset, data, data_size); @@ -150,7 +152,7 @@ class RingBuffer { handle device_buffer; size_t buffer_size; - off_t ptr = 0; + size_t ptr = 0; }; class Sampler { -- cgit v1.3