Fixed some errors caused on cleanup
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user