diff --git a/.gitmodules b/.gitmodules index 32be516..ec6a971 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "zig/3rd-party/raylib"] path = zig/3rd-party/raylib url = https://github.com/raysan5/raylib/ +[submodule "zig/3rd-party/raygui"] + path = zig/3rd-party/raygui + url = https://github.com/raysan5/raygui/ diff --git a/flake.nix b/flake.nix index 0fe3a10..e70959f 100644 --- a/flake.nix +++ b/flake.nix @@ -37,10 +37,15 @@ }; in mkShell { buildInputs = [ + sqlite + + # Dev tools just - flutter vscodeCustom + # Flutter + flutter + # Linux toolchain clang_15 cmake @@ -52,8 +57,9 @@ # Zig / webAssembly impl. zig + zls ]; - + # see: https://discourse.nixos.org/t/flutter-run-d-linux-build-process-failed/16552/2 shellHook = '' export LD_LIBRARY_PATH=${libepoxy}/lib diff --git a/zig/3rd-party/raygui b/zig/3rd-party/raygui new file mode 160000 index 0000000..85a5c10 --- /dev/null +++ b/zig/3rd-party/raygui @@ -0,0 +1 @@ +Subproject commit 85a5c104f509b183c8cc7db0d90c2ab7a2b198c8 diff --git a/zig/build.zig b/zig/build.zig index 047fe53..232cf3e 100644 --- a/zig/build.zig +++ b/zig/build.zig @@ -20,7 +20,9 @@ pub fn build(b: *std.Build) void { .target = target, .optimize = optimize, }); + exe.addIncludePath(.{ .path = "3rd-party/raygui/src" }); exe.linkLibrary(raylib_dep.artifact("raylib")); + exe.linkSystemLibrary("sqlite3"); // This declares intent for the executable to be installed into the // standard location when the user invokes the "install" step (the default diff --git a/zig/src/main.zig b/zig/src/main.zig index d9cff41..d7091b6 100644 --- a/zig/src/main.zig +++ b/zig/src/main.zig @@ -2,6 +2,13 @@ const std = @import("std"); const raylib = @cImport({ @cInclude("raylib.h"); }); +const raygui = @cImport({ + @cDefine("RAYGUI_IMPLEMENTATION", "1"); + @cInclude("raygui.h"); +}); +const sqlite = @cImport({ + @cInclude("sqlite3.h"); +}); pub fn main() !void { const screen_width = 800; @@ -14,6 +21,7 @@ pub fn main() !void { raylib.ClearBackground(raylib.RAYWHITE); raylib.DrawText("Congrats! You created your first window!", 190, 200, 20, raylib.LIGHTGRAY); + if (raygui.GuiButton(.{ .x = 0, .y = 0, .width = 100, .height = 100 }, "MyButton") == 1) {} } raylib.CloseWindow(); }