Bad resize logic

This commit is contained in:
2025-11-29 13:03:17 +01:00
parent 493937f870
commit 9d807f926b
2 changed files with 28 additions and 4 deletions

View File

@@ -855,6 +855,10 @@ pub fn onMouseUp(self: *Game, button: glfw.MouseButton, mods: glfw.Mods) void {
}
fn render(self: *Game) !void {
if (self.swapchain.swapchain == .null_handle) {
return;
}
const extent = self.swapchain.extent;
const command_buffer: CommandBuffer(.graphics, .transient) = try .init(self.engine);
@@ -928,5 +932,19 @@ fn render(self: *Game) !void {
},
});
_ = res;
if (res == .suboptimal) {
try self.recreateSwapchain();
}
}
fn recreateSwapchain(self: *Game) !void {
self.swapchain.recreate(self.engine) catch |err| switch (err) {
error.OutOfDateKHR => return self.recreateSwapchain(),
else => return err,
};
for (self.global_uniforms_transfer_semaphores, 0..) |*semaphore, i| {
self.engine.destroySemaphore(semaphore.*);
semaphore.* = try self.engine.createSemaphore();
self.engine.setObjectName(semaphore.*, "S Transfer[{d}]", .{i});
}
}