Initial commit
This commit is contained in:
commit
c2cf7c965a
|
@ -0,0 +1,2 @@
|
||||||
|
**/zig-out/
|
||||||
|
**/zig-cache/
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"editor.rulers": [100],
|
||||||
|
|
||||||
|
"files.exclude":{
|
||||||
|
"**/.git": true,
|
||||||
|
"**/.svn": true,
|
||||||
|
"**/.hg": true,
|
||||||
|
"**/CVS": true,
|
||||||
|
"**/.DS_Store": true,
|
||||||
|
"**/Thumbs.db": true,
|
||||||
|
"**/zig-cache": true,
|
||||||
|
"**/zig-out": true,
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Build Ona",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "zig build",
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn build(builder: *std.build.Builder) void {
|
||||||
|
const target = builder.standardTargetOptions(.{});
|
||||||
|
const mode = builder.standardReleaseOptions();
|
||||||
|
|
||||||
|
// Ona executable.
|
||||||
|
{
|
||||||
|
const ona_exe = builder.addExecutable("ona", "src/main.zig");
|
||||||
|
|
||||||
|
ona_exe.setTarget(target);
|
||||||
|
ona_exe.setBuildMode(mode);
|
||||||
|
ona_exe.install();
|
||||||
|
ona_exe.linkSystemLibrary("sdl2");
|
||||||
|
|
||||||
|
const run_cmd = ona_exe.run();
|
||||||
|
|
||||||
|
run_cmd.step.dependOn(builder.getInstallStep());
|
||||||
|
|
||||||
|
if (builder.args) |args| run_cmd.addArgs(args);
|
||||||
|
|
||||||
|
builder.step("run", "Run Ona application").dependOn(&run_cmd.step);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ona tests.
|
||||||
|
{
|
||||||
|
const ona_tests = builder.addTest("src/main.zig");
|
||||||
|
|
||||||
|
ona_tests.setTarget(target);
|
||||||
|
ona_tests.setBuildMode(mode);
|
||||||
|
builder.step("test", "Run Ona unit tests").dependOn(&ona_tests.step);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
const c = @cImport({
|
||||||
|
@cInclude("SDL2/SDL.h");
|
||||||
|
});
|
||||||
|
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() anyerror!void {
|
||||||
|
if (c.SDL_Init(c.SDL_INIT_EVERYTHING) != 0) {
|
||||||
|
c.SDL_LogCritical(c.SDL_LOG_CATEGORY_APPLICATION, "Failed to initialize SDL2");
|
||||||
|
|
||||||
|
return error.SystemFailure;
|
||||||
|
}
|
||||||
|
|
||||||
|
defer c.SDL_Quit();
|
||||||
|
|
||||||
|
const sdl_window = create_sdl_window: {
|
||||||
|
const pos = c.SDL_WINDOWPOS_UNDEFINED;
|
||||||
|
var flags = @as(u32, 0);
|
||||||
|
|
||||||
|
break: create_sdl_window c.SDL_CreateWindow("Ona", pos, pos, 640, 480, flags);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (sdl_window == null) {
|
||||||
|
c.SDL_LogCritical(c.SDL_LOG_CATEGORY_APPLICATION, "Failed to create window");
|
||||||
|
|
||||||
|
return error.SystemFailure;
|
||||||
|
}
|
||||||
|
|
||||||
|
defer c.SDL_DestroyWindow(sdl_window);
|
||||||
|
|
||||||
|
var is_running = true;
|
||||||
|
|
||||||
|
while (is_running) {
|
||||||
|
var sdl_event = std.mem.zeroes(c.SDL_Event);
|
||||||
|
|
||||||
|
while (c.SDL_PollEvent(&sdl_event) != 0) {
|
||||||
|
switch (sdl_event.type) {
|
||||||
|
c.SDL_QUIT => is_running = false,
|
||||||
|
|
||||||
|
else => {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue