Use castle's stbi instead of zstbi
This commit is contained in:
19
src/Game.zig
19
src/Game.zig
@@ -4,6 +4,7 @@ const std = @import("std");
|
||||
const c = @import("const.zig");
|
||||
const glfw = @import("zglfw");
|
||||
const math = @import("math.zig");
|
||||
const media = @import("media");
|
||||
const shaders = @import("shaders.zig");
|
||||
const vk = @import("vulkan");
|
||||
const vm = @import("vecmath");
|
||||
@@ -43,6 +44,7 @@ directional_lights: shaders.DirectionalLightBuffer,
|
||||
sampler: vk.Sampler,
|
||||
deferred_command_buffers: std.ArrayList(CommandBuffer),
|
||||
|
||||
stbi: media.stbi,
|
||||
blocks: Blocks,
|
||||
materials: Materials,
|
||||
textures: Textures,
|
||||
@@ -59,6 +61,9 @@ const chunk_descriptor_pool = 1024;
|
||||
const camera_near_plane = 0.1;
|
||||
|
||||
pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain) !Game {
|
||||
var stbi = media.stbi.init(allocator);
|
||||
errdefer stbi.deinit();
|
||||
|
||||
var materials = try Materials.init(engine, allocator);
|
||||
errdefer materials.deinit(engine, allocator);
|
||||
|
||||
@@ -72,7 +77,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
// will crash the game with segfault reading address 0x140 (presumably
|
||||
// within librenderdoc.so).
|
||||
|
||||
blocks.loadAll(engine, &materials, &textures, allocator);
|
||||
blocks.loadAll(engine, &materials, &textures, &stbi, allocator);
|
||||
|
||||
const sampler = try engine.createSampler(.{
|
||||
.mag_filter = .linear,
|
||||
@@ -433,10 +438,10 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
});
|
||||
engine.setObjectName(global_descriptor_set, "DS Global", .{});
|
||||
|
||||
const block_grass = try blocks.getOrLoad(engine, &materials, &textures, "Grass.json", allocator);
|
||||
const block_dirt = try blocks.getOrLoad(engine, &materials, &textures, "Dirt.json", allocator);
|
||||
const block_stone = try blocks.getOrLoad(engine, &materials, &textures, "Stone.json", allocator);
|
||||
const block_bedrock = try blocks.getOrLoad(engine, &materials, &textures, "Bedrock.json", allocator);
|
||||
const block_grass = try blocks.getOrLoad(engine, &materials, &textures, &stbi, "Grass.json", allocator);
|
||||
const block_dirt = try blocks.getOrLoad(engine, &materials, &textures, &stbi, "Dirt.json", allocator);
|
||||
const block_stone = try blocks.getOrLoad(engine, &materials, &textures, &stbi, "Stone.json", allocator);
|
||||
const block_bedrock = try blocks.getOrLoad(engine, &materials, &textures, &stbi, "Bedrock.json", allocator);
|
||||
|
||||
// VOLATILE Load all assets before this point
|
||||
|
||||
@@ -627,7 +632,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
.elements = directional_lights_data,
|
||||
});
|
||||
|
||||
var skybox = try Skybox.load("skybox.hdr", engine, 512, global_uniforms.buffer, swapchain.render_pass, allocator);
|
||||
var skybox = try Skybox.load("skybox.hdr", engine, &stbi, 512, global_uniforms.buffer, swapchain.render_pass, allocator);
|
||||
errdefer skybox.deinit(engine);
|
||||
|
||||
return .{
|
||||
@@ -652,6 +657,7 @@ pub fn init(allocator: std.mem.Allocator, engine: *Engine, swapchain: *Swapchain
|
||||
.sampler = sampler,
|
||||
.deferred_command_buffers = try .initCapacity(allocator, 4),
|
||||
|
||||
.stbi = stbi,
|
||||
.blocks = blocks,
|
||||
.materials = materials,
|
||||
.textures = textures,
|
||||
@@ -696,6 +702,7 @@ pub fn deinit(self: *Game) void {
|
||||
self.textures.deinit(self.engine, self.allocator);
|
||||
self.materials.deinit(self.engine, self.allocator);
|
||||
self.blocks.deinit(self.allocator);
|
||||
self.stbi.deinit();
|
||||
self.* = undefined;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user