SDL3 wrapper for Zig 0.14.0 built on top of castholm/SDL's Zig build system implementation for SDL.
Check out the documentation for more info.
zig fetch --save git+https://github.com/mdmrk/zsdl.git
const zsdl = b.dependency("zsdl", .{
.target = target,
.optimize = optimize,
});
exe.root_module.addImport("zsdl", zsdl.module("zsdl"));
const std = @import("std");
const zsdl = @import("zsdl");
pub fn main() !void {
try zsdl.init(.{ .video = true });
defer zsdl.quit();
const window = try zsdl.video.Window.create(
"redbed",
1280,
720,
.{ .resizable = true },
);
defer window.destroy();
main_loop: while (true) {
while (zsdl.events.pollEvent()) |event| {
switch (event) {
.quit => {
break :main_loop;
},
.window => |w| {
switch (w.data) {
.resized => |size| {
std.debug.print(
"window resized: (w: {any}, h: {any})\n",
.{ size.width, size.height },
);
},
else => {},
}
},
else => {},
}
}
}
}
Category | Status |
---|---|
Init | π§ͺ |
Hints | β |
Error | π§ͺ |
Properties | β |
Log | β |
Video | π§ͺ |
Events | π§ͺ |
Keyboard | π§ͺ |
Mouse | π§ͺ |
Touch | β |
Gamepad | π§ͺ |
Joystick | π§ͺ |
Haptic | π§ͺ |
Audio | β |
Gpu | π§ͺ |
Clipboard | β |
Dialog | β |
Filesystem | β |
Iostream | β |
Atomic | β |
Time | β |
Timer | π§ͺ |
Render | π§ͺ |
Pixels | β |
Surface | π§ͺ |
Platform | β |
Misc | β |
Main | β |
Strings | β |
CPU | β |
Intrinsics | β |
Locale | β |
System | β |
Metal | β |
Vulkan | β |
Legend:
Refer to supported targets.