Loading materials and textures
This commit is contained in:
26
src/Game.zig
26
src/Game.zig
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user