Allow mfb_open_ex options

This commit is contained in:
Brandon Dyck 2021-11-25 12:32:42 -07:00
parent 5346d16aba
commit 05047c49d8
2 changed files with 14 additions and 4 deletions

View File

@ -20,8 +20,18 @@ pub const Window = struct{
pub const State = enum {ok, exit};
pub fn open(title: [*:0]const u8, width: u32, height: u32) !Window {
const cwin: ?*minifb_c.mfb_window = minifb_c.mfb_open(@as([*c]const u8, title), width, height);
pub const OpenFlags = packed struct {
resizable: bool = false,
fullscreen: bool = false,
fullscreenDesktop: bool = false,
borderless: bool = false,
alwaysOnTop: bool = false,
};
pub fn open(title: [*:0]const u8, width: u32, height: u32, flags: OpenFlags) !Window {
const intFlags: u32 = @bitCast(u5, flags);
const cTitle = @as([*c]const u8, title);
const cwin: ?*minifb_c.mfb_window = minifb_c.mfb_open_ex(cTitle, width, height, intFlags);
if (cwin) |value| {
return Window {.cwin=value};
} else {

View File

@ -41,6 +41,7 @@ const State = struct {
buf.drawRectangle(.{.x=0,.y=0}, .{.x=Width, .y=Height}, grey(@floatToInt(u8, bgValue)));
buf.drawRectangle(.{.x=Width/3, .y=Height/3}, .{.x=2*Width/3, .y=2*Height/3}, mfb.rgb(255,0,0));
buf.drawRectangle(.{.x=0,.y=0}, .{.x=10,.y=10}, mfb.rgb(0,0,255));
}
};
@ -96,8 +97,7 @@ pub fn main() !void {
var gp_allocator = std.heap.GeneralPurposeAllocator(.{}){};
const alloc = &gp_allocator.allocator;
std.log.info("All your codebase are belong to us.", .{});
var win = mfb.Window.open("Hello minifb-zig", Width, Height) catch unreachable;
var win = mfb.Window.open("Hello minifb-zig", Width, Height, .{.resizable=true}) catch unreachable;
mfb.setTargetFPS(7);
var state = try State.init(3);