#pragma once #include #include #include class GPU_GarbageCollector { public: struct Garbage { VkBuffer buffer; VkDeviceMemory device_memory; }; private: VkDevice device_ = VK_NULL_HANDLE; std::list heap_; std::mutex m_heap_; public: GPU_GarbageCollector() = default; explicit GPU_GarbageCollector(VkDevice device); void AddGarbage(Garbage garbage); void FreeHeap(); };