Loading materials and textures

This commit is contained in:
2025-11-22 00:41:56 +01:00
parent 63a8eee18c
commit bf0224ccd8
16 changed files with 563 additions and 626 deletions

View File

@@ -5,6 +5,8 @@ const glfw = @import("zglfw");
const math = @import("math.zig");
const Atoms = @import("assets/Atoms.zig");
const Textures = @import("assets/Textures.zig");
const Materials = @import("assets/Materials.zig");
const Swapchain = @import("engine/Swapchain.zig");
const Iterator3 = math.Iterator3;
@@ -16,7 +18,9 @@ const Vector3 = math.Vector3;
allocator: std.mem.Allocator,
swapchain: *Swapchain,
atoms: Atoms,
materials: Materials,
textures: Textures,
camera_position: Vector3 = .init(0, 0, 1.62),
camera_pitch: f32 = 0,
@@ -38,24 +42,30 @@ const max_directional_lights = 4;
const player_speed = 5.0;
pub fn init(allocator: std.mem.Allocator, swapchain: *Swapchain) !Game {
var materials = try Materials.init(allocator);
errdefer materials.deinit();
var atoms = Atoms.init(allocator);
errdefer atoms.deinit();
var it = materials.map.iterator();
while (it.next()) |entry| {
std.debug.print("Material: {s}\n", .{entry.key_ptr.*});
std.debug.print("Value: {}\n", .{entry.value_ptr.*});
}
var materials = try Materials.init(allocator, swapchain.engine);
errdefer materials.deinit(swapchain.engine);
var textures = try Textures.init(allocator, swapchain.engine);
errdefer textures.deinit(swapchain.engine);
_ = try materials.getOrLoadId(swapchain.engine, &textures, &atoms, try atoms.getOrPutAtom("Bricks.json"));
return .{
.allocator = allocator,
.swapchain = swapchain,
.atoms = atoms,
.materials = materials,
.textures = textures,
};
}
pub fn deinit(self: *Game) void {
self.materials.deinit();
self.textures.deinit(self.swapchain.engine);
self.materials.deinit(self.swapchain.engine);
self.atoms.deinit();
self.* = undefined;
}