townengine/include/twn_types.h

43 lines
671 B
C

#ifndef TWN_TYPES_H
#define TWN_TYPES_H
#include <stdint.h>
/* 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