math: use extern struct for guaranteed memory layout

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2023-09-08 14:53:18 -07:00
parent 0538698bda
commit 40a1ba0431
3 changed files with 3 additions and 3 deletions

View file

@ -10,7 +10,7 @@ pub fn Mat(
comptime n_rows: usize,
comptime Vector: type,
) type {
return struct {
return extern struct {
v: [cols]Vec,
/// The number of columns, e.g. Mat3x4.cols == 3

View file

@ -6,7 +6,7 @@ const math = mach.math;
const vec = @import("vec.zig");
pub fn Quat(comptime Scalar: type) type {
return struct {
return extern struct {
v: vec.Vec(4, Scalar),
/// The scalar type of this matrix, e.g. Mat3x3.T == f32

View file

@ -5,7 +5,7 @@ const testing = mach.testing;
const math = mach.math;
pub fn Vec(comptime n_value: usize, comptime Scalar: type) type {
return struct {
return extern struct {
v: Vector,
/// The vector dimension size, e.g. Vec3.n == 3