Fixed some errors caused on cleanup
This commit is contained in:
@@ -102,15 +102,15 @@ namespace PB::Renderer
|
|||||||
|
|
||||||
struct RenderObject
|
struct RenderObject
|
||||||
{
|
{
|
||||||
VkBuffer VertexBuffer;
|
VkBuffer VertexBuffer{};
|
||||||
VkDeviceMemory VertexBufferMemory;
|
VkDeviceMemory VertexBufferMemory{};
|
||||||
|
|
||||||
VkBuffer IndexBuffer;
|
VkBuffer IndexBuffer{};
|
||||||
VkDeviceMemory IndexBufferMemory;
|
VkDeviceMemory IndexBufferMemory{};
|
||||||
|
|
||||||
Color DrawColor;
|
Color DrawColor;
|
||||||
|
|
||||||
uint32_t IndexCount;
|
uint32_t IndexCount{};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct QueueFamilyIndices
|
struct QueueFamilyIndices
|
||||||
|
|||||||
@@ -75,6 +75,15 @@ namespace PB::Renderer
|
|||||||
|
|
||||||
bool VulkanManager::Cleanup()
|
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)
|
if (s_Device != VK_NULL_HANDLE)
|
||||||
vkDeviceWaitIdle(s_Device);
|
vkDeviceWaitIdle(s_Device);
|
||||||
|
|
||||||
@@ -111,6 +120,16 @@ namespace PB::Renderer
|
|||||||
if (s_Surface != VK_NULL_HANDLE)
|
if (s_Surface != VK_NULL_HANDLE)
|
||||||
vkDestroySurfaceKHR(s_Instance, s_Surface, nullptr);
|
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)
|
if (s_Instance != VK_NULL_HANDLE)
|
||||||
vkDestroyInstance(s_Instance, nullptr);
|
vkDestroyInstance(s_Instance, nullptr);
|
||||||
|
|
||||||
@@ -128,7 +147,7 @@ namespace PB::Renderer
|
|||||||
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
|
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
|
||||||
appInfo.apiVersion = VK_API_VERSION_1_3;
|
appInfo.apiVersion = VK_API_VERSION_1_3;
|
||||||
|
|
||||||
VkInstanceCreateInfo createInfo;
|
VkInstanceCreateInfo createInfo{};
|
||||||
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||||
createInfo.pNext = nullptr;
|
createInfo.pNext = nullptr;
|
||||||
createInfo.pApplicationInfo = &appInfo;
|
createInfo.pApplicationInfo = &appInfo;
|
||||||
|
|||||||
Reference in New Issue
Block a user