Properly clean up resources
This commit is contained in:
parent
cdf95d4aff
commit
fef5254904
3 changed files with 20 additions and 1 deletions
|
@ -173,8 +173,12 @@ int main(int, char*[]) {
|
||||||
renderer->render(world, target);
|
renderer->render(world, target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete light;
|
||||||
|
|
||||||
renderer->destroyMeshBuffers(mesh);
|
renderer->destroyMeshBuffers(mesh);
|
||||||
|
|
||||||
|
delete mesh;
|
||||||
|
|
||||||
renderer->destroyRenderTarget(target);
|
renderer->destroyRenderTarget(target);
|
||||||
|
|
||||||
vkDestroySurfaceKHR(renderer->getInstance(), surface, nullptr);
|
vkDestroySurfaceKHR(renderer->getInstance(), surface, nullptr);
|
||||||
|
|
|
@ -384,10 +384,20 @@ void Renderer::destroyRenderTarget(RenderTarget* target) {
|
||||||
vkDestroyImageView(device_, target->swapchainImageViews[i], nullptr);
|
vkDestroyImageView(device_, target->swapchainImageViews[i], nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete[] target->offscreenFramebuffers;
|
||||||
|
delete[] target->offscreenDepthImageViews;
|
||||||
|
delete[] target->offscreenDepthMemory;
|
||||||
|
delete[] target->offscreenDepthImages;
|
||||||
|
delete[] target->offscreenColorImageViews;
|
||||||
|
delete[] target->offscreenColorMemory;
|
||||||
|
delete[] target->offscreenColorImages;
|
||||||
|
|
||||||
delete[] target->swapchainFramebuffers;
|
delete[] target->swapchainFramebuffers;
|
||||||
delete[] target->swapchainImageViews;
|
delete[] target->swapchainImageViews;
|
||||||
delete[] target->swapchainImages;
|
delete[] target->swapchainImages;
|
||||||
|
|
||||||
|
delete[] target->postSets;
|
||||||
|
|
||||||
vkDestroySwapchainKHR(device_, target->swapchain, nullptr);
|
vkDestroySwapchainKHR(device_, target->swapchain, nullptr);
|
||||||
|
|
||||||
delete target;
|
delete target;
|
||||||
|
|
|
@ -19,8 +19,13 @@ WorldPass::WorldPass(Renderer& renderer) : renderer_(renderer) {
|
||||||
WorldPass::~WorldPass() {
|
WorldPass::~WorldPass() {
|
||||||
vkDestroyRenderPass(renderer_.getDevice(), renderPass_, nullptr);
|
vkDestroyRenderPass(renderer_.getDevice(), renderPass_, nullptr);
|
||||||
|
|
||||||
|
vkDestroyDescriptorSetLayout(renderer_.getDevice(), setLayout_, nullptr);
|
||||||
|
|
||||||
vkDestroyPipeline(renderer_.getDevice(), pipeline_, nullptr);
|
vkDestroyPipeline(renderer_.getDevice(), pipeline_, nullptr);
|
||||||
vkDestroyPipelineLayout(renderer_.getDevice(), pipelineLayout_, nullptr);
|
vkDestroyPipelineLayout(renderer_.getDevice(), pipelineLayout_, nullptr);
|
||||||
|
|
||||||
|
vkFreeMemory(renderer_.getDevice(), lightMemory_, nullptr);
|
||||||
|
vkDestroyBuffer(renderer_.getDevice(), lightBuffer_, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldPass::render(VkCommandBuffer commandBuffer, World& world, RenderTarget* target) {
|
void WorldPass::render(VkCommandBuffer commandBuffer, World& world, RenderTarget* target) {
|
||||||
|
|
Reference in a new issue