Skip to content
Merged
61 changes: 56 additions & 5 deletions libs/glad/include/glad/gl.h

Large diffs are not rendered by default.

39 changes: 38 additions & 1 deletion libs/glad/src/gl.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ int GLAD_GL_VERSION_4_3 = 0;
int GLAD_GL_VERSION_4_4 = 0;
int GLAD_GL_VERSION_4_5 = 0;
int GLAD_GL_VERSION_4_6 = 0;
int GLAD_GL_ARB_bindless_texture = 0;



Expand Down Expand Up @@ -344,6 +345,7 @@ PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL;
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL;
PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus = NULL;
PFNGLGETIMAGEHANDLEARBPROC glad_glGetImageHandleARB = NULL;
PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL;
PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL;
PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL;
Expand Down Expand Up @@ -420,13 +422,15 @@ PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL;
PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL;
PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
PFNGLGETTEXTUREHANDLEARBPROC glad_glGetTextureHandleARB = NULL;
PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL;
PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL;
PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL;
PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL;
PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL;
PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL;
PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL;
PFNGLGETTEXTURESAMPLERHANDLEARBPROC glad_glGetTextureSamplerHandleARB = NULL;
PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL;
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL;
PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL;
Expand All @@ -446,6 +450,7 @@ PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL;
PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL;
PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL;
PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL;
PFNGLGETVERTEXATTRIBLUI64VARBPROC glad_glGetVertexAttribLui64vARB = NULL;
PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL;
PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
Expand Down Expand Up @@ -495,6 +500,7 @@ PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL;
PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
PFNGLISIMAGEHANDLERESIDENTARBPROC glad_glIsImageHandleResidentARB = NULL;
PFNGLISLISTPROC glad_glIsList = NULL;
PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL;
Expand All @@ -504,6 +510,7 @@ PFNGLISSAMPLERPROC glad_glIsSampler = NULL;
PFNGLISSHADERPROC glad_glIsShader = NULL;
PFNGLISSYNCPROC glad_glIsSync = NULL;
PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
PFNGLISTEXTUREHANDLERESIDENTARBPROC glad_glIsTextureHandleResidentARB = NULL;
PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL;
PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL;
PFNGLLIGHTMODELFPROC glad_glLightModelf = NULL;
Expand All @@ -525,6 +532,10 @@ PFNGLLOADNAMEPROC glad_glLoadName = NULL;
PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd = NULL;
PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf = NULL;
PFNGLLOGICOPPROC glad_glLogicOp = NULL;
PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC glad_glMakeImageHandleNonResidentARB = NULL;
PFNGLMAKEIMAGEHANDLERESIDENTARBPROC glad_glMakeImageHandleResidentARB = NULL;
PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glad_glMakeTextureHandleNonResidentARB = NULL;
PFNGLMAKETEXTUREHANDLERESIDENTARBPROC glad_glMakeTextureHandleResidentARB = NULL;
PFNGLMAP1DPROC glad_glMap1d = NULL;
PFNGLMAP1FPROC glad_glMap1f = NULL;
PFNGLMAP2DPROC glad_glMap2d = NULL;
Expand Down Expand Up @@ -687,6 +698,8 @@ PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL;
PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL;
PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL;
PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL;
PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC glad_glProgramUniformHandleui64ARB = NULL;
PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC glad_glProgramUniformHandleui64vARB = NULL;
PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL;
PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL;
PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL;
Expand Down Expand Up @@ -927,6 +940,8 @@ PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL;
PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL;
PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL;
PFNGLUNIFORMHANDLEUI64ARBPROC glad_glUniformHandleui64ARB = NULL;
PFNGLUNIFORMHANDLEUI64VARBPROC glad_glUniformHandleui64vARB = NULL;
PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL;
PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL;
Expand Down Expand Up @@ -1047,6 +1062,8 @@ PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL;
PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL;
PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL;
PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL;
PFNGLVERTEXATTRIBL1UI64ARBPROC glad_glVertexAttribL1ui64ARB = NULL;
PFNGLVERTEXATTRIBL1UI64VARBPROC glad_glVertexAttribL1ui64vARB = NULL;
PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL;
PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL;
PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL;
Expand Down Expand Up @@ -2204,6 +2221,25 @@ static void glad_gl_load_GL_VERSION_4_6( GLADuserptrloadfunc load, void* userptr
glad_glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC) load(userptr, "glPolygonOffsetClamp");
glad_glSpecializeShader = (PFNGLSPECIALIZESHADERPROC) load(userptr, "glSpecializeShader");
}
static void glad_gl_load_GL_ARB_bindless_texture( GLADuserptrloadfunc load, void* userptr) {
if(!GLAD_GL_ARB_bindless_texture) return;
glad_glGetImageHandleARB = (PFNGLGETIMAGEHANDLEARBPROC) load(userptr, "glGetImageHandleARB");
glad_glGetTextureHandleARB = (PFNGLGETTEXTUREHANDLEARBPROC) load(userptr, "glGetTextureHandleARB");
glad_glGetTextureSamplerHandleARB = (PFNGLGETTEXTURESAMPLERHANDLEARBPROC) load(userptr, "glGetTextureSamplerHandleARB");
glad_glGetVertexAttribLui64vARB = (PFNGLGETVERTEXATTRIBLUI64VARBPROC) load(userptr, "glGetVertexAttribLui64vARB");
glad_glIsImageHandleResidentARB = (PFNGLISIMAGEHANDLERESIDENTARBPROC) load(userptr, "glIsImageHandleResidentARB");
glad_glIsTextureHandleResidentARB = (PFNGLISTEXTUREHANDLERESIDENTARBPROC) load(userptr, "glIsTextureHandleResidentARB");
glad_glMakeImageHandleNonResidentARB = (PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC) load(userptr, "glMakeImageHandleNonResidentARB");
glad_glMakeImageHandleResidentARB = (PFNGLMAKEIMAGEHANDLERESIDENTARBPROC) load(userptr, "glMakeImageHandleResidentARB");
glad_glMakeTextureHandleNonResidentARB = (PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC) load(userptr, "glMakeTextureHandleNonResidentARB");
glad_glMakeTextureHandleResidentARB = (PFNGLMAKETEXTUREHANDLERESIDENTARBPROC) load(userptr, "glMakeTextureHandleResidentARB");
glad_glProgramUniformHandleui64ARB = (PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC) load(userptr, "glProgramUniformHandleui64ARB");
glad_glProgramUniformHandleui64vARB = (PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC) load(userptr, "glProgramUniformHandleui64vARB");
glad_glUniformHandleui64ARB = (PFNGLUNIFORMHANDLEUI64ARBPROC) load(userptr, "glUniformHandleui64ARB");
glad_glUniformHandleui64vARB = (PFNGLUNIFORMHANDLEUI64VARBPROC) load(userptr, "glUniformHandleui64vARB");
glad_glVertexAttribL1ui64ARB = (PFNGLVERTEXATTRIBL1UI64ARBPROC) load(userptr, "glVertexAttribL1ui64ARB");
glad_glVertexAttribL1ui64vARB = (PFNGLVERTEXATTRIBL1UI64VARBPROC) load(userptr, "glVertexAttribL1ui64vARB");
}



Expand Down Expand Up @@ -2299,7 +2335,7 @@ static int glad_gl_find_extensions_gl(void) {
char **exts_i = NULL;
if (!glad_gl_get_extensions(&exts, &exts_i)) return 0;

GLAD_UNUSED(glad_gl_has_extension);
GLAD_GL_ARB_bindless_texture = glad_gl_has_extension(exts, exts_i, "GL_ARB_bindless_texture");

glad_gl_free_extensions(exts_i);

Expand Down Expand Up @@ -2381,6 +2417,7 @@ int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) {
glad_gl_load_GL_VERSION_4_6(load, userptr);

if (!glad_gl_find_extensions_gl()) return 0;
glad_gl_load_GL_ARB_bindless_texture(load, userptr);



Expand Down
10 changes: 10 additions & 0 deletions src/foundations/app.zig
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ nav: ui.nav,
allocator: std.mem.Allocator,
app_config: *config,
textures_loader: *assets.loader.Loader(assets.Image),
obj_loader: *assets.loader.Loader(assets.Obj),

const App = @This();

Expand All @@ -28,9 +29,16 @@ pub fn init(allocator: std.mem.Allocator) *App {
);
errdefer textures_loader.deinit();

const obj_loader: *assets.loader.Loader(assets.Obj) = assets.loader.Loader(assets.Obj).init(
allocator,
"models",
);
errdefer obj_loader.deinit();

const scene_ctx: scenes.SceneContext = .{
.cfg = cfg,
.textures_loader = textures_loader,
.obj_loader = obj_loader,
};
const app_scenes = scenes.init(allocator, scene_ctx);
errdefer app_scenes.deinit();
Expand All @@ -42,12 +50,14 @@ pub fn init(allocator: std.mem.Allocator) *App {
.nav = ui.nav.init(app_scenes),
.app_config = cfg,
.textures_loader = textures_loader,
.obj_loader = obj_loader,
};
return app;
}

pub fn deinit(self: *App) void {
self.app_scenes.deinit();
self.obj_loader.deinit();
self.textures_loader.deinit();
rhi.deinit();
ui.deinit();
Expand Down
2 changes: 1 addition & 1 deletion src/foundations/assets/Image.zig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ stb_data: []u8,
const Image = @This();
const rgba_channels: u8 = 4;

pub fn init(self: *Image, data: []u8, file_name: []const u8) void {
pub fn init(self: *Image, _: std.mem.Allocator, data: []u8, file_name: []const u8) void {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarify the purpose of the unused std.mem.Allocator parameter.

The new std.mem.Allocator parameter is not used in the function. Is this an incomplete refactoring or a placeholder for future use?

Please provide more context on the purpose of this parameter and consider removing it if it's not needed.

var x: c_int = undefined;
var y: c_int = undefined;
var ch: c_int = undefined;
Expand Down
119 changes: 119 additions & 0 deletions src/foundations/assets/Obj.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
data: []u8 = undefined,
file_name: []const u8 = undefined,
vertices: [max_vertices][3]f32 = undefined,
texture_coordinates: [max_vertices][2]f32 = undefined,
normals: [max_vertices][3]f32 = undefined,
num_vertices: usize = 0,
indicies: [max_indicies][3][3]usize = undefined,
num_indicies: usize = 0,
num_texture_coords: usize = 0,
num_normals: usize = 0,

const max_vertices: usize = 50_000;
const max_indicies: usize = max_vertices * 2;

const Obj = @This();
const rgba_channels: u8 = 4;

pub fn init(self: *Obj, _: std.mem.Allocator, data: []u8, file_name: []const u8) void {
self.data = data;
self.file_name = file_name;
var lit = std.mem.tokenizeScalar(u8, data, '\n');
var t_index: usize = 0;
var v_index: usize = 0;
var n_index: usize = 0;
var i_index: usize = 0;
while (lit.next()) |line| {
switch (line[0]) {
'v' => {
switch (line[1]) {
't' => {
var tcit = std.mem.tokenizeScalar(u8, line[2..], ' ');
const s: f32 = std.fmt.parseFloat(f32, tcit.next() orelse "") catch @panic("invalid float");
const t: f32 = std.fmt.parseFloat(f32, tcit.next() orelse "") catch @panic("invalid float");
self.texture_coordinates[t_index] = .{ s, 1 - t };
t_index += 1;
},
'n' => {
var nit = std.mem.tokenizeScalar(u8, line[2..], ' ');
const x: f32 = std.fmt.parseFloat(f32, nit.next() orelse "") catch @panic("invalid float");
const y: f32 = std.fmt.parseFloat(f32, nit.next() orelse "") catch @panic("invalid float");
const z: f32 = std.fmt.parseFloat(f32, nit.next() orelse "") catch @panic("invalid float");
self.normals[n_index] = .{ x, y, z };
n_index += 1;
},
else => {
var vit = std.mem.tokenizeScalar(u8, line[1..], ' ');
const x: f32 = std.fmt.parseFloat(f32, vit.next() orelse "") catch @panic("invalid float");
const y: f32 = std.fmt.parseFloat(f32, vit.next() orelse "") catch @panic("invalid float");
const z: f32 = std.fmt.parseFloat(f32, vit.next() orelse "") catch @panic("invalid float");
self.vertices[v_index] = .{ x, y, z };
v_index += 1;
},
}
},
'f' => {
var i_it = std.mem.tokenizeScalar(u8, line[1..], ' ');
const v3: [3]usize = parseFace(i_it.next() orelse "") catch @panic("invalid index");
const v2: [3]usize = parseFace(i_it.next() orelse "") catch @panic("invalid index");
const v1: [3]usize = parseFace(i_it.next() orelse "") catch @panic("invalid index");
self.indicies[i_index] = .{ v1, v2, v3 };
i_index += 1;
},
else => {},
}
}
self.num_vertices = v_index;
self.num_indicies = i_index;
self.num_texture_coords = t_index;
self.num_normals = n_index;
}

pub fn toObject(self: *Obj, prog: u32, i_datas: []rhi.instanceData) object.object {
var attribute_data: [max_vertices]rhi.attributeData = undefined;
var indices: [max_indicies]u32 = undefined;

var current_index: usize = 0;
for (0..self.num_indicies) |i| {
const index_data = self.indicies[i];
for (0..3) |j| {
const p = self.vertices[index_data[j][0]];
attribute_data[current_index] = .{
.position = p,
.normals = self.normals[index_data[j][2]],
.texture_coords = self.texture_coordinates[index_data[j][1]],
};
indices[current_index] = @intCast(current_index);
current_index += 1;
}
}

const model: object.object = .{
.obj = object.Obj.init(
prog,
i_datas,
attribute_data[0..current_index],
indices[0..current_index],
),
};
return model;
}

fn parseFace(face: []const u8) ![3]usize {
var it = std.mem.tokenizeScalar(u8, face[0..], '/');
const v: usize = std.fmt.parseInt(u32, it.next() orelse "", 10) catch @panic("invalid index");
const t: usize = std.fmt.parseInt(u32, it.next() orelse "", 10) catch @panic("invalid index");
const n: usize = std.fmt.parseInt(u32, it.next() orelse "", 10) catch @panic("invalid index");
return .{ v - 1, t - 1, n - 1 };
}

pub fn deinit(self: *Obj, allocator: std.mem.Allocator) void {
allocator.free(self.data);
self.data = undefined;
allocator.destroy(self);
}

const std = @import("std");
const c = @import("../c.zig").c;
const rhi = @import("../rhi/rhi.zig");
const object = @import("../object/object.zig");
1 change: 1 addition & 0 deletions src/foundations/assets/assets.zig
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
pub const loader = @import("loader.zig");
pub const Image = @import("Image.zig");
pub const Obj = @import("Obj.zig");
4 changes: 2 additions & 2 deletions src/foundations/assets/loader.zig
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const app_name: []const u8 = "foundations_game_engine";
pub const max_file_size: usize = 4096 << 8;
pub const max_file_size: usize = 4096 << 9;

pub const LoaderError = error{
FileNotFound,
Expand Down Expand Up @@ -64,7 +64,7 @@ pub fn Loader(comptime T: type) type {
var t: *T = self.allocator.create(T) catch @panic("OOM");
errdefer self.allocator.destroy(t);

t.init(data, file_name);
t.init(self.allocator, data, file_name);
errdefer t.deinit();

self.cache.put(self.allocator, file_name, t) catch @panic("OOM");
Expand Down
6 changes: 6 additions & 0 deletions src/foundations/math/float.zig
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
pub const default_epsilon = 0.000001;

// It is not correct to compare to floats for equality directly, this compares them within a small range
pub fn equal(v: anytype, k: anytype, epsilon: anytype) bool {
if (@typeInfo(@TypeOf(v)) != .float and @typeInfo(@TypeOf(v)) != .comptime_float) @compileError("first input must be a float");
Expand All @@ -10,4 +12,8 @@ test equal {
try std.testing.expect(equal(1.001, 1.002, 0.01));
}

pub fn equal_e(v: anytype, k: anytype) bool {
return equal(v, k, default_epsilon);
}

const std = @import("std");
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,6 @@ fn data() struct { positions: [num_vertices][3]f32, indices: [num_indices]u32 }
}

const std = @import("std");
const c = @import("../../c.zig").c;
const rhi = @import("../../rhi/rhi.zig");
const math = @import("../../math/math.zig");
const c = @import("../c.zig").c;
const rhi = @import("../rhi/rhi.zig");
const math = @import("../math/math.zig");
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,6 @@ fn data() struct { attribute_data: [num_vertices]rhi.attributeData, indices: [nu
}

const std = @import("std");
const c = @import("../../c.zig").c;
const rhi = @import("../../rhi/rhi.zig");
const math = @import("../../math/math.zig");
const c = @import("../c.zig").c;
const rhi = @import("../rhi/rhi.zig");
const math = @import("../math/math.zig");
Original file line number Diff line number Diff line change
Expand Up @@ -138,4 +138,4 @@ pub fn init(
};
}

const rhi = @import("../../rhi/rhi.zig");
const rhi = @import("../rhi/rhi.zig");
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ fn addSurface(
}

const std = @import("std");
const c = @import("../../c.zig").c;
const rhi = @import("../../rhi/rhi.zig");
const math = @import("../../math/math.zig");
const color = @import("../../color/color.zig");
const c = @import("../c.zig").c;
const rhi = @import("../rhi/rhi.zig");
const math = @import("../math/math.zig");
const color = @import("../color/color.zig");
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@ pub fn updateInstanceAt(self: InstancedTriangle, index: usize, instance_data: rh
rhi.updateInstanceData(self.mesh.buffer, self.vertex_data_size, self.instance_data_stride, index, instance_data);
}

const c = @import("../../c.zig").c;
const rhi = @import("../../rhi/rhi.zig");
const math = @import("../../math/math.zig");
const c = @import("../c.zig").c;
const rhi = @import("../rhi/rhi.zig");
const math = @import("../math/math.zig");
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
mesh: rhi.Mesh = .{ .instance_type = .{ .norender = {} } },

const rhi = @import("../../rhi/rhi.zig");
const rhi = @import("../rhi/rhi.zig");
Loading