vitellus is a native-first rendering hardware interface written in Zig for building game engines and renderers on modern graphics APIs.
Shaders are parsed with SPIR-V and compiled with the splat project (spirv-cross packaged for zig).
requires zig 0.16.0
to use this with the zig build system, import as so:
zig fetch --save git+https://github.com/eggyengine/vitellusand then in build.zig:
const vit = b.dependency("vitellus", .{
.target = target,
.optimize = optimize,
});
exe.root_module.addImport("vitellus", vit.module("vitellus"));Backends can be selected from your dependency options:
const vit = b.dependency("vitellus", .{
.target = target,
.optimize = optimize,
// lazy dependency fetching
// .vulkan = true,
// .dx12 = true,
// .metal = true,
// .opengl = false,
// .noop = false,
});If you wish for only the shader compiler splat, take a look at the docs at splat/README.md.
and lastly in your library/executable:
const vit = @import("vitellus");take a look at the current status in src/backends/README.md