diff --git a/src/raylib.h b/src/raylib.h index ac5bc414e..2a7e358b1 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -163,11 +163,6 @@ // this defines are useful for internal check and avoid type (re)definitions #define RL_COLOR_TYPE #define RL_RECTANGLE_TYPE -#define RL_VECTOR2_TYPE -#define RL_VECTOR3_TYPE -#define RL_VECTOR4_TYPE -#define RL_QUATERNION_TYPE -#define RL_MATRIX_TYPE // Some Basic Colors // NOTE: Custom raylib color palette for amazing visuals on WHITE background @@ -210,37 +205,52 @@ #define RL_BOOL_TYPE #endif -// Vector2, 2 components -typedef struct Vector2 { - float x; // Vector x component - float y; // Vector y component -} Vector2; +#if !defined(RL_VECTOR2_TYPE) +// Vector2 type + typedef struct Vector2 { + float x; + float y; + } Vector2; +#define RL_VECTOR2_TYPE +#endif -// Vector3, 3 components -typedef struct Vector3 { - float x; // Vector x component - float y; // Vector y component - float z; // Vector z component -} Vector3; +#if !defined(RL_VECTOR3_TYPE) + // Vector3 type + typedef struct Vector3 { + float x; + float y; + float z; + } Vector3; +#define RL_VECTOR3_TYPE +#endif -// Vector4, 4 components -typedef struct Vector4 { - float x; // Vector x component - float y; // Vector y component - float z; // Vector z component - float w; // Vector w component -} Vector4; +#if !defined(RL_VECTOR4_TYPE) + // Vector4 type + typedef struct Vector4 { + float x; + float y; + float z; + float w; + } Vector4; +#define RL_VECTOR4_TYPE +#endif -// Quaternion, 4 components (Vector4 alias) -typedef Vector4 Quaternion; +#if !defined(RL_QUATERNION_TYPE) + // Quaternion type + typedef Vector4 Quaternion; +#define RL_QUATERNION_TYPE +#endif -// Matrix, 4x4 components, column major, OpenGL style, right-handed -typedef struct Matrix { - float m0, m4, m8, m12; // Matrix first row (4 components) - float m1, m5, m9, m13; // Matrix second row (4 components) - float m2, m6, m10, m14; // Matrix third row (4 components) - float m3, m7, m11, m15; // Matrix fourth row (4 components) -} Matrix; +#if !defined(RL_MATRIX_TYPE) + // Matrix type (OpenGL style 4x4 - right handed, column major) + typedef struct Matrix { + float m0, m4, m8, m12; // Matrix first row (4 components) + float m1, m5, m9, m13; // Matrix second row (4 components) + float m2, m6, m10, m14; // Matrix third row (4 components) + float m3, m7, m11, m15; // Matrix fourth row (4 components) + } Matrix; +#define RL_MATRIX_TYPE +#endif // Color, 4 components, R8G8B8A8 (32bit) typedef struct Color {