feat: only redraw when neccessary
/ build-dist (push) Failing after 31s
Details
/ build-dist (push) Failing after 31s
Details
parent
17988b97f7
commit
9bfb9112f5
|
@ -16,8 +16,8 @@
|
|||
// internet connectivity.
|
||||
.dependencies = .{
|
||||
.seizer = .{
|
||||
.url = "https://github.com/leroycep/seizer/archive/e065ae24f5ae4be546c6f1eb170677b0ac835452.tar.gz",
|
||||
.hash = "12200e611cb9ea7aa15b43cc52a6ff31aa8dbcf33a360c858ea237a6df102ee8da6d",
|
||||
.url = "https://github.com/leroycep/seizer/archive/78cba44f8d07492cb84939ad836746f7d82ae5e2.tar.gz",
|
||||
.hash = "1220cbae20222089c1ec9b847ef3466f13a665707e8d0e8ea2b57ffda083fd9275b6",
|
||||
},
|
||||
},
|
||||
.paths = .{
|
||||
|
|
43
src/main.zig
43
src/main.zig
|
@ -24,6 +24,8 @@ var current_menu_fn: ?MenuFn = null;
|
|||
var win_count: ?u32 = null;
|
||||
var win_triggered: bool = false;
|
||||
var frame_count: u64 = 0;
|
||||
var draw_required: bool = true;
|
||||
var previous_framebuffer_size: [2]f32 = .{ 0, 0 };
|
||||
|
||||
pub fn init() !void {
|
||||
prng = std.rand.DefaultPrng.init(@bitCast(std.time.timestamp()));
|
||||
|
@ -179,6 +181,17 @@ fn render(window: seizer.Window) !void {
|
|||
|
||||
resetHistory();
|
||||
win_triggered = true;
|
||||
draw_required = true;
|
||||
}
|
||||
|
||||
const framebuffer_size = window.getFramebufferSize();
|
||||
|
||||
if (!std.mem.eql(f32, &framebuffer_size, &previous_framebuffer_size)) {
|
||||
draw_required = true;
|
||||
}
|
||||
|
||||
if (!draw_required) {
|
||||
return;
|
||||
}
|
||||
|
||||
gl.clearColor(0.2, 0.4, 0.2, 1.0);
|
||||
|
@ -186,7 +199,7 @@ fn render(window: seizer.Window) !void {
|
|||
|
||||
canvas.begin(.{
|
||||
.window_size = window.getSize(),
|
||||
.framebuffer_size = window.getFramebufferSize(),
|
||||
.framebuffer_size = framebuffer_size,
|
||||
});
|
||||
|
||||
const scale: u32 = if (canvas.window_size[1] <= 400) 1 else 2;
|
||||
|
@ -400,6 +413,8 @@ fn render(window: seizer.Window) !void {
|
|||
|
||||
canvas.end();
|
||||
|
||||
try window.swapBuffers();
|
||||
|
||||
frame_count +%= 1;
|
||||
}
|
||||
|
||||
|
@ -414,26 +429,9 @@ pub fn haveWon() bool {
|
|||
return true;
|
||||
}
|
||||
|
||||
pub fn makeStandardDeck(allocator: std.mem.Allocator) ![]Card {
|
||||
var deck = try allocator.alloc(Card, 52);
|
||||
errdefer allocator.free(deck);
|
||||
|
||||
var next_index: usize = 0;
|
||||
for (0..4) |suit| {
|
||||
for (1..14) |rank| {
|
||||
deck[next_index] = Card{
|
||||
.suit = @enumFromInt(suit),
|
||||
.rank = @intCast(rank),
|
||||
};
|
||||
next_index += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return deck;
|
||||
}
|
||||
|
||||
pub fn deselect(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (current_menu_fn) |menu_fn| {
|
||||
try menu_fn(.deselect);
|
||||
}
|
||||
|
@ -444,6 +442,7 @@ pub fn deselect(pressed: bool) !void {
|
|||
|
||||
pub fn doSelectOrPlace(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (current_menu_fn) |menu_fn| {
|
||||
try menu_fn(.select);
|
||||
return;
|
||||
|
@ -590,6 +589,7 @@ pub fn doSelectOrPlace(pressed: bool) !void {
|
|||
|
||||
pub fn moveLeft(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (current_menu_fn) |menu_fn| {
|
||||
_ = menu_fn;
|
||||
return;
|
||||
|
@ -620,6 +620,7 @@ pub fn moveLeft(pressed: bool) !void {
|
|||
|
||||
pub fn moveRight(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (current_menu_fn) |menu_fn| {
|
||||
_ = menu_fn;
|
||||
return;
|
||||
|
@ -650,6 +651,7 @@ pub fn moveRight(pressed: bool) !void {
|
|||
|
||||
pub fn moveUp(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
|
||||
if (current_menu_fn) |menu_fn| {
|
||||
return try menu_fn(.up);
|
||||
|
@ -687,6 +689,7 @@ pub fn moveUp(pressed: bool) !void {
|
|||
|
||||
pub fn moveDown(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (current_menu_fn) |menu_fn| {
|
||||
return try menu_fn(.down);
|
||||
}
|
||||
|
@ -722,6 +725,7 @@ pub fn moveDown(pressed: bool) !void {
|
|||
|
||||
pub fn undo(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (history.items.len > 1) {
|
||||
_ = history.pop();
|
||||
|
||||
|
@ -734,6 +738,7 @@ pub fn undo(pressed: bool) !void {
|
|||
|
||||
pub fn toggleMenu(pressed: bool) !void {
|
||||
if (!pressed) return;
|
||||
draw_required = true;
|
||||
if (current_menu_fn == null) {
|
||||
current_menu_fn = menuMain;
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue