- Zig api.
- Compile as standard zig library.
-
shadercas build artifact. - Shader compile from runtime via
shadercas child process. - Shader compile in
build.zigand embed as zig module. - Binding for DebugDraw API
-
imguirender backend. Use build optionimgui_includeto enable. ex. for zgui:.imgui_include = zgui.path("libs").getPath(b), - Zig based allocator.
Important
Warning
shadercneed some time to compile.
Folders libs, shaders is copy&paste from bgfx for more sell-contained
experience and is licensed by LICENSEE
Zig binding is licensed by WTFPL
Minimal is 0.15.1. But you know try your version and believe.
Copy zbgfx to a subdirectory of your project and then add the following to your build.zig.zon .dependencies:
.zbgfx = .{ .path = "path/to/zbgfx" },or use zig fetch --save ... way.
Then in your build.zig add:
const zbgfx = @import("zbgfx");
pub fn build(b: *std.Build) void {
const exe = b.addExecutable(.{ ... });
const zbgfx_dep = b.dependency("zbgfx", .{});
exe.root_module.addImport("zbgfx", zbgfx_dep.module("zbgfx"));
exe.linkLibrary(zbgfx.artifact("bgfx"));
_ = try zbgfx.build_step.installShaderc(b, zbgfx_dep);
}See examples for binding usage and bgfx for bgfx stuff.
| Build option | Default | Description |
|---|---|---|
imgui_include |
null |
Path to ImGui includes (need for imgui bgfx backend) |
multithread |
true |
Compile with BGFX_CONFIG_MULTITHREADED |
with_shaderc |
true |
Compile with shaderc |
Run this for build all examples:
cd examples
zig buildMinimal setup with GLFW for window and input.
examples/zig-out/bin/minimal-glfw| Key | Description |
|---|---|
v |
Vsync on/off |
d |
Debug on/off |
Basic usage of shaders compiled in build and embed to zig module.
examples/zig-out/bin/shader-embed| Key | Description |
|---|---|
v |
Vsync on/off |
d |
Debug on/off |
Basic usage of shader compile in runtime.
Try edit shaders in zig-out/bin/shaders and hit r to recompile.
examples/zig-out/bin/shader-runtime| Key | Description |
|---|---|
v |
Vsync on/off |
d |
Debug on/off |
r |
Recompile shaders form file |
Minimal setup for zgui/ImGui.
examples/zig-out/bin/zgui| Key | Description |
|---|---|
v |
Vsync on/off |
d |
Debug on/off |
DebugDraw api usage example.
examples/zig-out/bin/debugdraw| Key | Description |
|---|---|
v |
Vsync on/off |
d |
Debug on/off |