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.
|
// internet connectivity.
|
||||||
.dependencies = .{
|
.dependencies = .{
|
||||||
.seizer = .{
|
.seizer = .{
|
||||||
.url = "https://github.com/leroycep/seizer/archive/e065ae24f5ae4be546c6f1eb170677b0ac835452.tar.gz",
|
.url = "https://github.com/leroycep/seizer/archive/78cba44f8d07492cb84939ad836746f7d82ae5e2.tar.gz",
|
||||||
.hash = "12200e611cb9ea7aa15b43cc52a6ff31aa8dbcf33a360c858ea237a6df102ee8da6d",
|
.hash = "1220cbae20222089c1ec9b847ef3466f13a665707e8d0e8ea2b57ffda083fd9275b6",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
.paths = .{
|
.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_count: ?u32 = null;
|
||||||
var win_triggered: bool = false;
|
var win_triggered: bool = false;
|
||||||
var frame_count: u64 = 0;
|
var frame_count: u64 = 0;
|
||||||
|
var draw_required: bool = true;
|
||||||
|
var previous_framebuffer_size: [2]f32 = .{ 0, 0 };
|
||||||
|
|
||||||
pub fn init() !void {
|
pub fn init() !void {
|
||||||
prng = std.rand.DefaultPrng.init(@bitCast(std.time.timestamp()));
|
prng = std.rand.DefaultPrng.init(@bitCast(std.time.timestamp()));
|
||||||
|
@ -179,6 +181,17 @@ fn render(window: seizer.Window) !void {
|
||||||
|
|
||||||
resetHistory();
|
resetHistory();
|
||||||
win_triggered = true;
|
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);
|
gl.clearColor(0.2, 0.4, 0.2, 1.0);
|
||||||
|
@ -186,7 +199,7 @@ fn render(window: seizer.Window) !void {
|
||||||
|
|
||||||
canvas.begin(.{
|
canvas.begin(.{
|
||||||
.window_size = window.getSize(),
|
.window_size = window.getSize(),
|
||||||
.framebuffer_size = window.getFramebufferSize(),
|
.framebuffer_size = framebuffer_size,
|
||||||
});
|
});
|
||||||
|
|
||||||
const scale: u32 = if (canvas.window_size[1] <= 400) 1 else 2;
|
const scale: u32 = if (canvas.window_size[1] <= 400) 1 else 2;
|
||||||
|
@ -400,6 +413,8 @@ fn render(window: seizer.Window) !void {
|
||||||
|
|
||||||
canvas.end();
|
canvas.end();
|
||||||
|
|
||||||
|
try window.swapBuffers();
|
||||||
|
|
||||||
frame_count +%= 1;
|
frame_count +%= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,26 +429,9 @@ pub fn haveWon() bool {
|
||||||
return true;
|
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 {
|
pub fn deselect(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (current_menu_fn) |menu_fn| {
|
if (current_menu_fn) |menu_fn| {
|
||||||
try menu_fn(.deselect);
|
try menu_fn(.deselect);
|
||||||
}
|
}
|
||||||
|
@ -444,6 +442,7 @@ pub fn deselect(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn doSelectOrPlace(pressed: bool) !void {
|
pub fn doSelectOrPlace(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (current_menu_fn) |menu_fn| {
|
if (current_menu_fn) |menu_fn| {
|
||||||
try menu_fn(.select);
|
try menu_fn(.select);
|
||||||
return;
|
return;
|
||||||
|
@ -590,6 +589,7 @@ pub fn doSelectOrPlace(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn moveLeft(pressed: bool) !void {
|
pub fn moveLeft(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (current_menu_fn) |menu_fn| {
|
if (current_menu_fn) |menu_fn| {
|
||||||
_ = menu_fn;
|
_ = menu_fn;
|
||||||
return;
|
return;
|
||||||
|
@ -620,6 +620,7 @@ pub fn moveLeft(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn moveRight(pressed: bool) !void {
|
pub fn moveRight(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (current_menu_fn) |menu_fn| {
|
if (current_menu_fn) |menu_fn| {
|
||||||
_ = menu_fn;
|
_ = menu_fn;
|
||||||
return;
|
return;
|
||||||
|
@ -650,6 +651,7 @@ pub fn moveRight(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn moveUp(pressed: bool) !void {
|
pub fn moveUp(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
|
|
||||||
if (current_menu_fn) |menu_fn| {
|
if (current_menu_fn) |menu_fn| {
|
||||||
return try menu_fn(.up);
|
return try menu_fn(.up);
|
||||||
|
@ -687,6 +689,7 @@ pub fn moveUp(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn moveDown(pressed: bool) !void {
|
pub fn moveDown(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (current_menu_fn) |menu_fn| {
|
if (current_menu_fn) |menu_fn| {
|
||||||
return try menu_fn(.down);
|
return try menu_fn(.down);
|
||||||
}
|
}
|
||||||
|
@ -722,6 +725,7 @@ pub fn moveDown(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn undo(pressed: bool) !void {
|
pub fn undo(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (history.items.len > 1) {
|
if (history.items.len > 1) {
|
||||||
_ = history.pop();
|
_ = history.pop();
|
||||||
|
|
||||||
|
@ -734,6 +738,7 @@ pub fn undo(pressed: bool) !void {
|
||||||
|
|
||||||
pub fn toggleMenu(pressed: bool) !void {
|
pub fn toggleMenu(pressed: bool) !void {
|
||||||
if (!pressed) return;
|
if (!pressed) return;
|
||||||
|
draw_required = true;
|
||||||
if (current_menu_fn == null) {
|
if (current_menu_fn == null) {
|
||||||
current_menu_fn = menuMain;
|
current_menu_fn = menuMain;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue