#ifndef TWN_TYPES_H #define TWN_TYPES_H #include /* plain data aggregates that are accepted between public procedure boundaries */ /* 32-bit color data */ typedef struct Color { _Alignas(4) uint8_t r; uint8_t g; uint8_t b; uint8_t a; } Color; /* a rectangle with the origin at the upper left (integer) */ typedef struct Recti { _Alignas(16) int32_t x; int32_t y; int32_t w; int32_t h; } Recti; /* a rectangle with the origin at the upper left (floating point) */ typedef struct Rect { _Alignas(16) float x; float y; float w; float h; } Rect; typedef struct Matrix4 { Vec4 row[4]; } Matrix4; #endif