typedef int8_t i8; typedef int16_t i16; typedef int32_t i32; typedef int64_t i64; typedef uint8_t u8; typedef uint16_t u16; typedef uint32_t u32; typedef uint64_t u64; typedef float f32; typedef double f64; typedef struct { f32 x; f32 y; } v2; typedef struct { f32 x; f32 y; f32 z; } v3; typedef struct { f32 x; f32 y; f32 z; f32 w; } v4; // column-major typedef struct { v4 c0; v4 c1; v4 c2; v4 c3; } mat4; typedef struct { v2 start; v2 end; } rect_t; typedef struct { void *memory; u64 capacity; u64 used; } arena_t;