Game Template Library
| src | ||
| .gitignore | ||
| build.zig | ||
| build.zig.zon | ||
| README.md | ||
Includes
Arrays
-
SlotMap
-
KeyedSlotMap
-
FixedSlotMap
-
FixedArrayList
-
RingBuffer
-
Handle(T) Generational
Misc
- log
- ansi (colors etc)
- TypeID
Examples
KeyedSlotMap
// --- SHADER MAP ---
var shaders: KeyedSlotMap(ShaderID, GPUShader) = .init(alloc);
defer shaders.deinit();
// --- NEW SHADER ---
const shader_handle = try shaders.put(.pbr, .{ .raw = undefined });
defer shaders.remove(shader_handle);
TypeID
const Player = struct {};
std.debug.print("TypeID(Player): {}\n", .{TypeID(Player)});
Output: TypeID(Player): 2462284566368800629
Logs
log.warn("...", .{});
log.err("...", .{});
log.info("...", .{});
log.debug("...", .{});
log.trace("...", .{});
log.fatal("...", .{});
NicePrint
Styles
- default
- rounded
- pipe
- custom
Example
// --- PRINT ---
if (log.print(.debug, "DEVICE INFO", ansi.bold ++ ansi.red)) |a| {
defer a.end();
// --- VALUES ---
a.write("device -> {s}", .{"GTX"});
a.write("vendor -> {s}", .{"Nvidia"});
// --- SECTION ---
if (a.section(.err, "MEMORY", ansi.green)) |b| {
defer b.end();
b.write("VRAM -> {}GB", .{24});
}
}
Output
┏━ DEVICE INFO
┃ device -> GTX
┃ vendor -> Nvidia
┃ ┏━ MEMORY
┃ ┃ VRAM -> 24GB
┃ ┗━
┗━
TODO
[ ] Lear how to properly structure markdown 🥀️