Fixed some errors caused on cleanup

This commit is contained in:
Pasha Bibko
2025-11-22 15:48:15 +00:00
parent d34bb57402
commit 201f5896ce
2 changed files with 25 additions and 6 deletions

View File

@@ -102,15 +102,15 @@ namespace PB::Renderer
struct RenderObject
{
VkBuffer VertexBuffer;
VkDeviceMemory VertexBufferMemory;
VkBuffer VertexBuffer{};
VkDeviceMemory VertexBufferMemory{};
VkBuffer IndexBuffer;
VkDeviceMemory IndexBufferMemory;
VkBuffer IndexBuffer{};
VkDeviceMemory IndexBufferMemory{};
Color DrawColor;
uint32_t IndexCount;
uint32_t IndexCount{};
};
struct QueueFamilyIndices

View File

@@ -75,6 +75,15 @@ namespace PB::Renderer
bool VulkanManager::Cleanup()
{
for (const RenderObject& object : s_RenderObjects)
{
vkDestroyBuffer(s_Device, object.IndexBuffer, nullptr);
vkDestroyBuffer(s_Device, object.VertexBuffer, nullptr);
vkFreeMemory(s_Device, object.IndexBufferMemory, nullptr);
vkFreeMemory(s_Device, object.VertexBufferMemory, nullptr);
}
if (s_Device != VK_NULL_HANDLE)
vkDeviceWaitIdle(s_Device);
@@ -111,6 +120,16 @@ namespace PB::Renderer
if (s_Surface != VK_NULL_HANDLE)
vkDestroySurfaceKHR(s_Instance, s_Surface, nullptr);
#ifdef PB_DEBUG
if (gDebugMessenger != VK_NULL_HANDLE)
{
if (const auto func = reinterpret_cast<PFN_vkDestroyDebugUtilsMessengerEXT>(vkGetInstanceProcAddr(s_Instance, "vkDestroyDebugUtilsMessengerEXT")); func != nullptr)
func(s_Instance, gDebugMessenger, nullptr);
}
#endif // PB_DEBUG
if (s_Instance != VK_NULL_HANDLE)
vkDestroyInstance(s_Instance, nullptr);
@@ -128,7 +147,7 @@ namespace PB::Renderer
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
appInfo.apiVersion = VK_API_VERSION_1_3;
VkInstanceCreateInfo createInfo;
VkInstanceCreateInfo createInfo{};
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.pNext = nullptr;
createInfo.pApplicationInfo = &appInfo;