townengine/include/twn_types.h

75 lines
1.2 KiB
C
Raw Permalink Normal View History

#ifndef TWN_TYPES_H
#define TWN_TYPES_H
#include <stdint.h>
/* plain data aggregates that are accepted between public procedure boundaries */
/* a point in some space (integer) */
typedef struct Vec2i {
int32_t x;
int32_t y;
} Vec2i;
/* a point in some space (floating point) */
typedef struct Vec2 {
float x;
float y;
} Vec2;
/* a point in some three dimension space (floating point) */
/* y goes up, x goes to the right */
typedef struct Vec3 {
float x;
float y;
float z;
} Vec3;
/* a point in some three dimension space (floating point) */
/* y goes up, x goes to the right */
typedef struct Vec4 {
float x;
float y;
float z;
float w;
} Vec4;
2024-10-07 14:53:09 +00:00
/* 32-bit color data */
typedef struct Color {
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 {
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 {
float x;
float y;
float w;
float h;
} Rect;
typedef struct Matrix4 {
Vec4 row[4];
} Matrix4;
#endif