summaryrefslogtreecommitdiff
path: root/src/window.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-10-09 07:50:24 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-10-09 07:50:24 -0400
commitdcd05e45538a04b7b0d9ae0ff8cc01272a48fd33 (patch)
treeb56b885e3473008e40af197770a5b7e1b67d90aa /src/window.cpp
parent791c153aabd579f518a9b00613459cba13734797 (diff)
more memory works
Diffstat (limited to 'src/window.cpp')
-rw-r--r--src/window.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 0bd1140..0a43072 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -361,7 +361,7 @@ void InitVulkan() {
auto it = requiredExtensions.begin();
while (it != requiredExtensions.end()) {
if (strcmp(*it.base(), property.extensionName)) {
- requiredExtensions.erase(it);
+ it = requiredExtensions.erase(it);
} else {
it++;
}
@@ -655,6 +655,15 @@ void CreateSwapchain() {
};
vkImageViewCreateInfo.subresourceRange = vkImageSubresourceRange;
+ assert(swapchainImages == nullptr || swapchainImages == CAFE_BABE(VkImage));
+ assert(swapchainImageViews == nullptr || swapchainImageViews == CAFE_BABE(VkImageView));
+ assert(renderImages == nullptr || renderImages == CAFE_BABE(VkImage));
+ assert(renderImageViews == nullptr || renderImageViews == CAFE_BABE(VkImageView));
+ assert(colorImages == nullptr || colorImages == CAFE_BABE(VkImage));
+ assert(colorImageViews == nullptr || colorImageViews == CAFE_BABE(VkImageView));
+ assert(depthImages == nullptr || depthImages == CAFE_BABE(VkImage));
+ assert(depthImageViews == nullptr || depthImageViews == CAFE_BABE(VkImageView));
+
vkGetSwapchainImagesKHR(vkDevice, vkSwapchainKHR, &swapchainLength, nullptr);
swapchainImages = Pke_New<VkImage>(swapchainLength);
vkGetSwapchainImagesKHR(vkDevice, vkSwapchainKHR, &swapchainLength, swapchainImages);
@@ -1438,12 +1447,14 @@ void DestroySwapchain() {
vkDestroyFramebuffer(vkDevice, renderImageFramebuffers[i], vkAllocator);
}
Pke_Delete<VkFramebuffer>(renderImageFramebuffers, swapchainLength);
+ renderImageFramebuffers = CAFE_BABE(VkFramebuffer);
}
if (swapchainFramebuffers != nullptr && swapchainFramebuffers != CAFE_BABE(VkFramebuffer)) {
for (long i = 0; i < swapchainLength; ++i) {
vkDestroyFramebuffer(vkDevice, swapchainFramebuffers[i], vkAllocator);
}
Pke_Delete<VkFramebuffer>(swapchainFramebuffers, swapchainLength);
+ swapchainFramebuffers = CAFE_BABE(VkFramebuffer);
}
if (renderImageViews!= nullptr && renderImageViews != CAFE_BABE(VkImageView)) {
for (long i = 0; i < swapchainLength; ++i) {
@@ -1457,11 +1468,17 @@ void DestroySwapchain() {
vkDestroyImage(vkDevice, renderImages[i], vkAllocator);
}
Pke_Delete<VkImageView>(depthImageViews, swapchainLength);
+ depthImageViews = CAFE_BABE(VkImageView);
Pke_Delete<VkImage>(depthImages, swapchainLength);
+ depthImages = CAFE_BABE(VkImage);
Pke_Delete<VkImageView>(colorImageViews, swapchainLength);
+ colorImageViews = CAFE_BABE(VkImageView);
Pke_Delete<VkImage>(colorImages, swapchainLength);
+ colorImages = CAFE_BABE(VkImage);
Pke_Delete<VkImageView>(renderImageViews, swapchainLength);
+ renderImageViews = CAFE_BABE(VkImageView);
Pke_Delete<VkImage>(renderImages, swapchainLength);
+ renderImages = CAFE_BABE(VkImage);
vkFreeMemory(vkDevice, depthImagesMemory, vkAllocator);
vkFreeMemory(vkDevice, colorImagesMemory, vkAllocator);
vkFreeMemory(vkDevice, renderImagesMemory, vkAllocator);
@@ -1471,15 +1488,11 @@ void DestroySwapchain() {
vkDestroyImageView(vkDevice, swapchainImageViews[i], vkAllocator);
}
Pke_Delete<VkImageView>(swapchainImageViews, swapchainLength);
+ swapchainImageViews = CAFE_BABE(VkImageView);
Pke_Delete<VkImage>(swapchainImages, swapchainLength);
+ swapchainImages = CAFE_BABE(VkImage);
}
vkDestroySwapchainKHR(vkDevice, vkSwapchainKHR, vkAllocator);
- swapchainImages = CAFE_BABE(VkImage);
- swapchainImageViews = CAFE_BABE(VkImageView);
- swapchainFramebuffers = CAFE_BABE(VkFramebuffer);
- renderImages = CAFE_BABE(VkImage);
- renderImageViews = CAFE_BABE(VkImageView);
- renderImageFramebuffers = CAFE_BABE(VkFramebuffer);
}
void RecreateSwapchain() {