#include using namespace metal; template inline auto operator*(matrix lhs, packed_vec rhs) { return lhs * vec(rhs); } template inline auto operator*(packed_vec lhs, matrix rhs) { return vec(lhs) * rhs; } struct Light { /* 0x0000 */ packed_float3 position; /* 0x000c */ int8_t tint_pad[4]; /* 0x0010 */ packed_float3 colour; /* 0x001c */ int8_t tint_pad_1[4]; }; struct Lights { /* 0x0000 */ Light light[1]; };