Cleanup GenericBuffer
This commit is contained in:
@@ -48,9 +48,9 @@ pub const Batch = struct {
|
||||
instance_count: u32,
|
||||
};
|
||||
|
||||
box_gpu_buffer: GenericBuffer(void, Draw.Box),
|
||||
text_gpu_buffer: GenericBuffer(void, Draw.Text),
|
||||
image_gpu_buffer: GenericBuffer(void, Draw.Image),
|
||||
box_gpu_buffer: GenericBuffer(Draw.Box),
|
||||
text_gpu_buffer: GenericBuffer(Draw.Text),
|
||||
image_gpu_buffer: GenericBuffer(Draw.Image),
|
||||
|
||||
box_cpu_buffer: std.ArrayList(Draw.Box),
|
||||
text_cpu_buffer: std.ArrayList(Draw.Text),
|
||||
@@ -91,26 +91,26 @@ pub fn init() !*Gui {
|
||||
|
||||
const gui = try allocator_persistent.create(Gui);
|
||||
|
||||
var box_gpu_buffer: GenericBuffer(void, Draw.Box) = try .init(.{
|
||||
var box_gpu_buffer: GenericBuffer(Draw.Box) = try .init(.{
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = max_box_draws,
|
||||
.capacity = max_box_draws,
|
||||
.name = "GUI box draws",
|
||||
});
|
||||
errdefer box_gpu_buffer.deinit();
|
||||
|
||||
var text_gpu_buffer: GenericBuffer(void, Draw.Text) = try .init(.{
|
||||
var text_gpu_buffer: GenericBuffer(Draw.Text) = try .init(.{
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = max_text_draws,
|
||||
.capacity = max_text_draws,
|
||||
.name = "GUI text draws",
|
||||
});
|
||||
errdefer text_gpu_buffer.deinit();
|
||||
|
||||
var image_gpu_buffer: GenericBuffer(void, Draw.Image) = try .init(.{
|
||||
var image_gpu_buffer: GenericBuffer(Draw.Image) = try .init(.{
|
||||
.usage = .storage,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = max_image_draws,
|
||||
.capacity = max_image_draws,
|
||||
.name = "GUI image draws",
|
||||
});
|
||||
errdefer image_gpu_buffer.deinit();
|
||||
@@ -123,13 +123,11 @@ pub fn init() !*Gui {
|
||||
var index_buffer = try shaders.IndexBuffer.init(.{
|
||||
.usage = .index,
|
||||
.target_queue = .graphics,
|
||||
.array_capacity = 6,
|
||||
.capacity = 6,
|
||||
.name = "QuadIB",
|
||||
});
|
||||
errdefer index_buffer.deinit();
|
||||
try index_buffer.write(.{
|
||||
.elements = &.{ 0, 1, 2, 2, 1, 3 },
|
||||
});
|
||||
try index_buffer.writeSlice(&.{ 0, 1, 2, 2, 1, 3 });
|
||||
|
||||
const sampler = try engine.createSampler(.{
|
||||
.mag_filter = .linear,
|
||||
@@ -842,9 +840,9 @@ fn extendOrAddBatch(self: *Gui, draw_type: std.meta.DeclEnum(Draw), instance: u3
|
||||
pub fn draw(self: *const Gui, command_buffer: CommandBuffer) !void {
|
||||
command_buffer.bindIndexBuffer(self.index_buffer.buffer, 0, .uint16);
|
||||
|
||||
try self.box_gpu_buffer.write(.{ .elements = self.box_cpu_buffer.items });
|
||||
try self.text_gpu_buffer.write(.{ .elements = self.text_cpu_buffer.items });
|
||||
try self.image_gpu_buffer.write(.{ .elements = self.image_cpu_buffer.items });
|
||||
try self.box_gpu_buffer.writeSlice(self.box_cpu_buffer.items);
|
||||
try self.text_gpu_buffer.writeSlice(self.text_cpu_buffer.items);
|
||||
try self.image_gpu_buffer.writeSlice(self.image_cpu_buffer.items);
|
||||
|
||||
for (self.batches.items) |batch| {
|
||||
switch (batch.draw_type) {
|
||||
|
||||
Reference in New Issue
Block a user