Fix water transparency on resize by rebuilding scene history resources

Water scene history textures and 1x pass resources were not recreated on
window resize/fullscreen, causing stale undersized textures that produced
directional transparency artifacts.
This commit is contained in:
Kelsi 2026-02-22 22:42:58 -08:00
parent 03a62526e1
commit 085fd09b9d

View file

@ -914,13 +914,13 @@ void Renderer::beginFrame() {
// Handle swapchain recreation if needed // Handle swapchain recreation if needed
if (vkCtx->isSwapchainDirty()) { if (vkCtx->isSwapchainDirty()) {
vkCtx->recreateSwapchain(window->getWidth(), window->getHeight()); vkCtx->recreateSwapchain(window->getWidth(), window->getHeight());
// Rebuild water 1x framebuffers (they reference swapchain image views) // Rebuild water resources that reference swapchain extent/views
if (waterRenderer && waterRenderer->hasWater1xPass() if (waterRenderer) {
&& vkCtx->getMsaaSamples() != VK_SAMPLE_COUNT_1_BIT) { waterRenderer->recreatePipelines();
VkImageView depthView = vkCtx->getDepthResolveImageView(); if (waterRenderer->hasWater1xPass()
if (depthView) { && vkCtx->getMsaaSamples() != VK_SAMPLE_COUNT_1_BIT) {
waterRenderer->createWater1xFramebuffers( waterRenderer->destroyWater1xResources();
vkCtx->getSwapchainImageViews(), depthView, vkCtx->getSwapchainExtent()); setupWater1xPass();
} }
} }
} }