renderer-mvp/asset-pipeline #53
|
@ -6,24 +6,6 @@ const slices = @import("./slices.zig");
|
|||
|
||||
const std = @import("std");
|
||||
|
||||
pub const Writable = struct {
|
||||
data: []Byte,
|
||||
|
||||
pub fn writer(self: *Writable) Writer {
|
||||
return Writer.bind(Writable, self, write);
|
||||
}
|
||||
|
||||
fn write(self: *Writable, buffer: []const u8) !usize {
|
||||
const range = @min(buffer.len, self.data.len);
|
||||
|
||||
@memcpy(self.data[0 .. range], buffer[0 .. range]);
|
||||
|
||||
self.data = self.data[range ..];
|
||||
|
||||
return buffer.len;
|
||||
}
|
||||
};
|
||||
|
||||
pub const Byte = u8;
|
||||
kayomn marked this conversation as resolved
|
||||
|
||||
pub const Error = error {
|
||||
|
|
|
@ -53,7 +53,7 @@ pub const Table = struct {
|
|||
errdefer resource_allocator.destroy(allocated_resource);
|
||||
|
||||
std.debug.assert(try self.table.emplace(value_id, .{
|
||||
.ptr = @ptrCast(allocated_resource),
|
||||
.ptr = allocated_resource,
|
||||
kayomn marked this conversation as resolved
Outdated
kayomn
commented
Bad idea to forcibly convert non-trivial downcasts like Bad idea to forcibly convert non-trivial downcasts like `**opaque` actually
|
||||
}));
|
||||
|
||||
allocated_resource.* = value;
|
||||
|
|
|
@ -19,14 +19,14 @@ pub const Assets = struct {
|
|||
|
||||
pub const Format = struct {
|
||||
extension: []const u8,
|
||||
file_desc: *const fn (*std.heap.ArenaAllocator, []const u8) Error!Desc,
|
||||
file_desc: *const fn (*std.heap.ArenaAllocator, coral.files.Storage, []const u8) Error!Desc,
|
||||
|
||||
pub const Error = std.mem.Allocator.Error || coral.files.Error || error {
|
||||
FormatUnsupported,
|
||||
};
|
||||
};
|
||||
|
||||
pub fn open_file(self: *Assets, path: []const u8) (std.mem.Allocator.Error || Format.Error)!Handle {
|
||||
pub fn open_file(self: *Assets, storage: coral.files.Storage, path: []const u8) (OpenError || Format.Error)!Handle {
|
||||
kayomn marked this conversation as resolved
Outdated
kayomn
commented
Wants to accept the desired storage source as an argument for loading resources from non-bundled locations like user storage or caller-defined storage implementations. Wants to accept the desired storage source as an argument for loading resources from non-bundled locations like user storage or caller-defined storage implementations.
|
||||
defer {
|
||||
const max_cache_size = 536870912;
|
||||
|
||||
|
@ -40,13 +40,13 @@ pub const Assets = struct {
|
|||
continue;
|
||||
}
|
||||
|
||||
return self.context.open(try format.file_desc(&self.staging_arena, path));
|
||||
return self.context.open(try format.file_desc(&self.staging_arena, storage, path));
|
||||
}
|
||||
|
||||
return .none;
|
||||
}
|
||||
|
||||
pub fn open_quad_mesh_2d(self: *Assets, extents: Point2D) std.mem.Allocator.Error!Handle {
|
||||
pub fn open_quad_mesh_2d(self: *Assets, extents: Point2D) OpenError!Handle {
|
||||
const width, const height = extents / @as(Point2D, @splat(2));
|
||||
|
||||
return self.context.open(.{
|
||||
|
@ -137,6 +137,10 @@ pub const Input = union (enum) {
|
|||
};
|
||||
};
|
||||
|
||||
pub const OpenError = std.mem.Allocator.Error || error {
|
||||
|
||||
};
|
||||
|
||||
pub const Point2D = @Vector(2, f32);
|
||||
|
||||
pub const Queue = struct {
|
||||
|
|
|
@ -80,7 +80,7 @@ pub const Context = struct {
|
|||
};
|
||||
}
|
||||
|
||||
pub fn open(self: *Context, desc: gfx.Desc) std.mem.Allocator.Error!gfx.Handle {
|
||||
pub fn open(self: *Context, desc: gfx.Desc) gfx.OpenError!gfx.Handle {
|
||||
const open_commands = self.loop.opens.pending();
|
||||
const index = self.loop.closed_indices.get() orelse open_commands.stack.len();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Unused addition.