|
|
|
|
/******************************************************************************
|
|
|
|
|
* File - common_defs.h
|
|
|
|
|
* Author - Joey Pollack
|
|
|
|
|
* Date - 2022/05/11 (y/m/d)
|
|
|
|
|
* Mod Date - 2022/05/11 (y/m/d)
|
|
|
|
|
* Description - Common definitions for the engine
|
|
|
|
|
******************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef LUNARIUM_COMMON_DEFS_H_
|
|
|
|
|
#define LUNARIUM_COMMON_DEFS_H_
|
|
|
|
|
|
|
|
|
|
// intrinsic type short-hands
|
|
|
|
|
// The idea for this was taken from the KOHI engine
|
|
|
|
|
// https://github.com/travisvroman/kohi
|
|
|
|
|
typedef unsigned char u8;
|
|
|
|
|
typedef unsigned short u16;
|
|
|
|
|
typedef unsigned int u32;
|
|
|
|
|
typedef unsigned long long u64;
|
|
|
|
|
|
|
|
|
|
typedef char i8;
|
|
|
|
|
typedef short i16;
|
|
|
|
|
typedef int i32;
|
|
|
|
|
typedef long long i64;
|
|
|
|
|
|
|
|
|
|
typedef float f32;
|
|
|
|
|
typedef double f64;
|
|
|
|
|
|
|
|
|
|
// verify the type sizes
|
|
|
|
|
static_assert(sizeof(u8) == 1, "Expected u8 to be 1 byte");
|
|
|
|
|
static_assert(sizeof(u16) == 2, "Expected u16 to be 2 bytes");
|
|
|
|
|
static_assert(sizeof(u32) == 4, "Expected u32 to be 4 bytes");
|
|
|
|
|
static_assert(sizeof(u64) == 8, "Expected u64 to be 8 bytes");
|
|
|
|
|
|
|
|
|
|
static_assert(sizeof(i8) == 1, "Expected i8 to be 1 byte");
|
|
|
|
|
static_assert(sizeof(i16) == 2, "Expected i16 to be 2 bytes");
|
|
|
|
|
static_assert(sizeof(i32) == 4, "Expected i32 to be 4 bytes");
|
|
|
|
|
static_assert(sizeof(i64) == 8, "Expected i64 to be 8 bytes");
|
|
|
|
|
|
|
|
|
|
static_assert(sizeof(f32) == 4, "Expected f32 to be 4 bytes");
|
|
|
|
|
static_assert(sizeof(f64) == 8, "Expected f64 to be 8 bytes");
|
|
|
|
|
|
|
|
|
|
typedef u64 LUUID;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Platform detection
|
|
|
|
|
#if defined(_WIN32) || defined(_WIN64)
|
|
|
|
|
#define LPLATFORM_WINDOWS
|
|
|
|
|
|
|
|
|
|
#elif defined(__linux__) || defined(__gnu_linux__)
|
|
|
|
|
#define LPLATFORM_LINUX
|
|
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
#error "Unsupported platform. Must build on windows or linux"
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#endif // LUNARIUM_COMMON_DEFS_H_
|