Cleanup GenericBuffer
This commit is contained in:
@@ -16,8 +16,6 @@ const Game = @import("Game.zig");
|
||||
const GenericBuffer = @import("engine/GenericBuffer.zig").GenericBuffer;
|
||||
const Materials = @import("engine/Materials.zig");
|
||||
|
||||
const ObjectUniformsBuffer = GenericBuffer(void, shaders.ObjectUniforms);
|
||||
|
||||
const chunk_size = c.vx_per_ck;
|
||||
|
||||
const initial_capacity = 256;
|
||||
@@ -28,7 +26,7 @@ var next_chunk_id: std.atomic.Value(u64) = .init(0);
|
||||
blocks: [chunk_size][chunk_size][chunk_size]Blocks.Id,
|
||||
origin: vm.Vector3,
|
||||
descriptor_set: vk.DescriptorSet,
|
||||
object_buffer: ObjectUniformsBuffer,
|
||||
object_buffer: shaders.ObjectUniformsBuffer,
|
||||
object_count: u32,
|
||||
|
||||
/// For debug purposes, a unique "name" per chunk instance.
|
||||
@@ -51,10 +49,10 @@ pub fn init(init_info: InitInfo) !Chunk {
|
||||
});
|
||||
errdefer engine.freeDescriptorSet(init_info.descriptor_pool, descriptor_set);
|
||||
|
||||
var object_buffer: ObjectUniformsBuffer = try .init(.{
|
||||
var object_buffer: shaders.ObjectUniformsBuffer = try .init(.{
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = initial_capacity,
|
||||
.capacity = initial_capacity,
|
||||
});
|
||||
errdefer object_buffer.deinit();
|
||||
|
||||
@@ -136,12 +134,12 @@ pub fn refresh(self: *Chunk, blocks: *const Blocks, neighbors: Neighbors) !void
|
||||
}
|
||||
|
||||
const object_count: u32 = @intCast(uniforms.items.len);
|
||||
if (self.object_buffer.array_capacity < object_count) {
|
||||
if (self.object_buffer.capacity < object_count) {
|
||||
const desired_capacity = std.math.ceilPowerOfTwoAssert(u32, object_count);
|
||||
const new_object_buffer: ObjectUniformsBuffer = try .init(.{
|
||||
const new_object_buffer: shaders.ObjectUniformsBuffer = try .init(.{
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = desired_capacity,
|
||||
.capacity = desired_capacity,
|
||||
});
|
||||
|
||||
try engine.updateDescriptorSets(.{
|
||||
@@ -170,7 +168,7 @@ pub fn refresh(self: *Chunk, blocks: *const Blocks, neighbors: Neighbors) !void
|
||||
engine.setObjectName(new_object_buffer.device_memory, "DM Chunk[{d}]", .{self.chunk_id});
|
||||
}
|
||||
|
||||
try self.object_buffer.write(.{ .elements = uniforms.items });
|
||||
try self.object_buffer.writeSlice(uniforms.items);
|
||||
self.object_count = object_count;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user