Bad resize logic
This commit is contained in:
20
src/Game.zig
20
src/Game.zig
@@ -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});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user