Implemented setResizeCallback and setViewport
This commit is contained in:
parent
95daf52b70
commit
ac2f09d9cf
@ -85,6 +85,15 @@ pub fn Window(comptime TUserData: type) type {
|
|||||||
pub fn setActiveCallback(self: Window(TUserData), callback: ActiveFunc) void {
|
pub fn setActiveCallback(self: Window(TUserData), callback: ActiveFunc) void {
|
||||||
c.mfb_set_active_callback(self.cwin, @ptrCast(c.mfb_active_func, callback));
|
c.mfb_set_active_callback(self.cwin, @ptrCast(c.mfb_active_func, callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub const ResizeFunc = fn (win: Window(TUserData), width: i32, height: i32) callconv(.C) void;
|
||||||
|
pub fn setResizeCallback(self: Window(TUserData), callback: ResizeFunc) void {
|
||||||
|
c.mfb_set_resize_callback(self.cwin, @ptrCast(c.mfb_resize_func, callback));
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn setViewport(self: Window(TUserData), offset_x: u32, offset_y: u32, width: u32, height: u32) bool {
|
||||||
|
return c.mfb_set_viewport(self.cwin, offset_x, offset_y, width, height);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
13
src/main.zig
13
src/main.zig
@ -106,6 +106,18 @@ fn handleActive(win: mfb.Window(State), isActive: bool) callconv(.C) void {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handleResize(win: mfb.Window(State), width: i32, height: i32) callconv(.C) void {
|
||||||
|
const did_set = win.setViewport(
|
||||||
|
@intCast(u32, width) / 4,
|
||||||
|
@intCast(u32, height) / 4,
|
||||||
|
@intCast(u32, width) / 2,
|
||||||
|
@intCast(u32, height) / 2,
|
||||||
|
);
|
||||||
|
if (!did_set) {
|
||||||
|
std.log.warn("did not set viewport!", .{});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn main() !void {
|
pub fn main() !void {
|
||||||
var gp_allocator = std.heap.GeneralPurposeAllocator(.{}){};
|
var gp_allocator = std.heap.GeneralPurposeAllocator(.{}){};
|
||||||
const alloc = gp_allocator.allocator();
|
const alloc = gp_allocator.allocator();
|
||||||
@ -118,6 +130,7 @@ pub fn main() !void {
|
|||||||
win.setUserData(&state);
|
win.setUserData(&state);
|
||||||
|
|
||||||
win.setActiveCallback(handleActive);
|
win.setActiveCallback(handleActive);
|
||||||
|
win.setResizeCallback(handleResize);
|
||||||
|
|
||||||
var buf = try Buffer.init(alloc, Width, Height);
|
var buf = try Buffer.init(alloc, Width, Height);
|
||||||
defer buf.deinit();
|
defer buf.deinit();
|
||||||
|
Loading…
Reference in New Issue
Block a user