From 68df481b8a1a3834c311ec682124efedbe4d35c5 Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Thu, 7 Apr 2022 14:12:23 +0200 Subject: [PATCH] add small wrapper for raylib --- 3rdparty/raygui | 2 +- build.zig | 5 +++-- src/main.zig | 24 +++++++++--------------- src/raylib.c | 2 ++ src/raylib.zig | 4 ++++ 5 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 src/raylib.c create mode 100644 src/raylib.zig diff --git a/3rdparty/raygui b/3rdparty/raygui index fd0d50b..865bb29 160000 --- a/3rdparty/raygui +++ b/3rdparty/raygui @@ -1 +1 @@ -Subproject commit fd0d50bdb01e43f21b5ca33b9ef0f7f43f55e3f1 +Subproject commit 865bb293764073c01e74314ef647464f1f10fd96 diff --git a/build.zig b/build.zig index 6611e99..ee83c73 100644 --- a/build.zig +++ b/build.zig @@ -17,8 +17,9 @@ pub fn build(b: *std.build.Builder) void { const ray = raylib.addRaylib(b, exe.target); exe.linkLibrary(ray); - exe.addIncludeDir("./3rdparty/raylib/src"); - exe.addIncludeDir("./3rdparty/raygui/src"); + exe.addIncludeDir("3rdparty/raylib/src"); + exe.addIncludeDir("3rdparty/raygui/src"); + exe.addCSourceFile("src/raylib.c", &[_][]u8{}); exe.setBuildMode(mode); exe.install(); diff --git a/src/main.zig b/src/main.zig index 10f9d25..ae9d2d2 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,26 +1,20 @@ const std = @import("std"); -const ray = @cImport({ - @cInclude("raylib.h"); -}); -const raygui = @cImport({ - @cDefine("RAYGUI_IMPLEMENTATION", {}); - @cInclude("raygui.h"); -}); +const r = @import("raylib.zig"); pub fn main() anyerror!void { std.log.info("All your codebase are belong to us.", .{}); - ray.InitWindow(800, 450, "ray [core] example - basic window"); - defer ray.CloseWindow(); + r.InitWindow(800, 450, "ray [core] example - basic window"); + defer r.CloseWindow(); - while (!ray.WindowShouldClose()) { - ray.BeginDrawing(); - defer ray.EndDrawing(); + while (!r.WindowShouldClose()) { + r.BeginDrawing(); + defer r.EndDrawing(); - ray.ClearBackground(ray.RAYWHITE); - ray.DrawText("Congrats! You created your first window!", 190, 200, 20, ray.LIGHTGRAY); + r.ClearBackground(r.RAYWHITE); + r.DrawText("Congrats! You created your first window!", 190, 200, 20, r.LIGHTGRAY); - if (raygui.GuiButton(raygui.Rectangle{ .x = 190, .y = 250, .width = 150, .height = 30 }, "Button")) { + if (r.GuiButton(r.Rectangle{ .x = 190, .y = 250, .width = 150, .height = 30 }, "Button")) { std.log.info("Button pressed", .{}); } } diff --git a/src/raylib.c b/src/raylib.c new file mode 100644 index 0000000..bec96f3 --- /dev/null +++ b/src/raylib.c @@ -0,0 +1,2 @@ +#define RAYGUI_IMPLEMENTATION +#include diff --git a/src/raylib.zig b/src/raylib.zig new file mode 100644 index 0000000..c737a91 --- /dev/null +++ b/src/raylib.zig @@ -0,0 +1,4 @@ +pub usingnamespace @cImport({ + @cInclude("raylib.h"); + @cInclude("raygui.h"); +});