- 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.16.0. But you know try your version and believe.
- bgfx_shader_analyzer - LSP for bgfx shaders.
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:
constzbgfx=@import("zbgfx");
pubfnbuild(b: *std.Build) void {
constexe=b.addExecutable(.{ ... });
constzbgfx_dep=b.dependency("zbgfx", .{});
exe.root_module.addImport("zbgfx", zbgfx_dep.module("zbgfx"));
exe.linkLibrary(zbgfx.artifact("bgfx"));
_=tryzbgfx.build_step.installShaderc(b, zbgfx_dep);
}See examples for binding usage and bgfx for bgfx stuff.
| Build option | Default | Description |
|---|---|---|
shared | false | Build as shared library. |
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 |