SwapChain::~SwapChain() { DestroySwapChainImages(); DestroySwapChain(); DestroyRenderPass(); DestroySurface(); }
bool SwapChain::RecreateSurface(void* native_handle) { // Destroy the old swap chain, images, and surface. DestroyRenderPass(); DestroySwapChainImages(); DestroySwapChain(); DestroySurface(); // Re-create the surface with the new native handle m_native_handle = native_handle; m_surface = CreateVulkanSurface(g_vulkan_context->GetVulkanInstance(), native_handle); if (m_surface == VK_NULL_HANDLE) return false; // Finally re-create the swap chain if (!CreateSwapChain() || !SetupSwapChainImages() || !CreateRenderPass()) return false; return true; }
void GrVkRenderPass::freeGPUData(const GrVkGpu* gpu) const { GR_VK_CALL(gpu->vkInterface(), DestroyRenderPass(gpu->device(), fRenderPass, nullptr)); }