#pragma once #include #include #include #include #include namespace iris { struct BufferDesc { uint64_t size; std::optional alignment; VkBufferUsageFlags buffer_usage; VmaMemoryUsage memory_usage; }; struct Buffer_tt { VkBuffer handle; BufferDesc desc; // Used during release VkDevice device; VmaAllocator allocator; VmaAllocation allocation; void release(); // Used during map/unmap std::optional mapped_data; void *map(); void unmap(); ~Buffer_tt() { release(); } }; typedef std::shared_ptr Buffer_s; } // namespace iris