Macro

X_COMMON_VERSION_MAJOR

#define X_COMMON_VERSION_MAJOR 1
Macro

X_COMMON_VERSION_MINOR

#define X_COMMON_VERSION_MINOR 0
Macro

X_COMMON_VERSION_PATCH

#define X_COMMON_VERSION_PATCH 0
Macro

X_COMPILER_NAME

#define X_COMPILER_NAME "GCC"
Macro

X_COMPILER_VERSION

#define X_COMPILER_VERSION __VERSION__
Macro

X_COMPILER_NAME

#define X_COMPILER_NAME "Microsoft Visual C/C++ Compiler"
Macro

X_COMPILER_VERSION

#define X_COMPILER_VERSION _MSC_FULL_VER
Macro

X_COMPILER_NAME

#define X_COMPILER_NAME "Clang"
Macro

X_COMPILER_VERSION

#define X_COMPILER_VERSION __clang_version__
Macro

X_COMPILER_NAME

#define X_COMPILER_NAME "Unknown"
Macro

X_COMPILER_VERSION

#define X_COMPILER_VERSION "Unknown"
Macro

X_INLINE

#define X_INLINE __inline
Macro

X_FORCEINLINE

#define X_FORCEINLINE __forceinline
Macro

X_NOINLINE

#define X_NOINLINE __declspec(noinline)
Macro

X_NORETURN

#define X_NORETURN __declspec(noreturn)
Macro

X_ALIGN

#define X_ALIGN(n) __declspec(align(n))
Macro

X_INLINE

#define X_INLINE inline
Macro

X_FORCEINLINE

#define X_FORCEINLINE inline __attribute__((always_inline))
Macro

X_NOINLINE

#define X_NOINLINE __attribute__((noinline))
Macro

X_NORETURN

#define X_NORETURN __attribute__((noreturn))
Macro

X_ALIGN

#define X_ALIGN(n) __attribute__((aligned(n)))
Macro

X_ALIGN

#define X_ALIGN(n)
Macro

X_LIKELY

#define X_LIKELY(x) __builtin_expect(!!(x), 1)
Macro

X_UNLIKELY

#define X_UNLIKELY(x) __builtin_expect(!!(x), 0)
Macro

X_LIKELY

#define X_LIKELY(x) (x)
Macro

X_UNLIKELY

#define X_UNLIKELY(x) (x)
Macro

X_ARCH_X64

#define X_ARCH_X64 1
Macro

X_ARCH_X86

#define X_ARCH_X86 1
Macro

X_ARCH_ARM64

#define X_ARCH_ARM64 1
Macro

X_ARCH_ARM32

#define X_ARCH_ARM32 1
Macro

X_ARCH_UNKNOWN

#define X_ARCH_UNKNOWN 1
Macro

X_OS_WINDOWS

#define X_OS_WINDOWS 1
Macro

X_PLAT_EXPORT

#define X_PLAT_EXPORT __declspec(dllexport)
Macro

X_PLAT_IMPORT

#define X_PLAT_IMPORT __declspec(dllimport)
Macro

PLAT_EXPORT

#define PLAT_EXPORT __attribute__((visibility("default")))
Macro

X_STATIC_ASSERT

#define X_STATIC_ASSERT(cond, msg) typedef char static_assert_##msg[(cond)?1:-1]
Macro

X_ASSERT

#define X_ASSERT(expr) \
do{\
if(!(expr)){\
fprintf(stderr, "Assertion failed: %s, file %s, line %d\n", #expr, __FILE__, __LINE__);\
abort();\
}\
}while(0)
Macro

X_ASSERT

#define X_ASSERT(expr) ((void)0)
Macro

X_BIG_ENDIAN

#define X_BIG_ENDIAN 1
Macro

X_LITTLE_ENDIAN

#define X_LITTLE_ENDIAN 1
Macro

X_PATH_SEPARATOR

#define X_PATH_SEPARATOR '\\'
Macro

X_PATH_SEPARATOR_ALTERNATIVE

#define X_PATH_SEPARATOR_ALTERNATIVE '/'
Macro

X_PATH_SEPARATOR

#define X_PATH_SEPARATOR '/'
Macro

X_PATH_SEPARATOR_ALTERNATIVE

#define X_PATH_SEPARATOR_ALTERNATIVE '\\'
Macro

X_BIT_SET

#define X_BIT_SET(var, bit) ((var)|=(1U<<(bit)))
Macro

X_BIT_CLEAR

#define X_BIT_CLEAR(var, bit) ((var) &=~(1U<<(bit)))
Macro

X_BIT_TOGGLE

#define X_BIT_TOGGLE(var, bit) ((var)^=(1U<<(bit)))
Macro

X_BIT_CHECK

#define X_BIT_CHECK(var, bit) (((var) &(1U<<(bit)))!=0)
Macro

X_UNUSED

#define X_UNUSED(x) (void)(x)
Macro

X_VALUE_PTR

#define X_VALUE_PTR(type, val) ((const void *) &(type){(val)})
Macro

X_VALUE_TYPE_PTR

#define X_VALUE_TYPE_PTR(type, val) ((const type *) &(type){(val)})
Struct

XPtr

typedef struct XPtr_t XPtr;
Struct

XPtr_t

struct XPtr_t{
  int error;
  void *ptr;
};
Macro

X_PTR_OK

#define X_PTR_OK(p) ((XPtr){.error=0, .ptr=(p)})
Macro

X_PTR_ERR

#define X_PTR_ERR(e) ((XPtr){.error=(e), .ptr=0})
Macro

X_PTR_IS_ERR

#define X_PTR_IS_ERR(r) ((r).error!=0)
Macro

X_PTR_IS_OK

#define X_PTR_IS_OK(r) ((r).error==0)
Macro

X_PTR_GET_PTR

#define X_PTR_GET_PTR(r) ((r).is_error?NULL:(r).ptr)
Macro

X_PTR_GET_ERR

#define X_PTR_GET_ERR(r) ((r).error)
Macro

X_PTR_CAST

#define X_PTR_CAST(r, T) ((r).is_error?NULL:(T)(r).ptr)
Macro

_CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_NO_WARNINGS 1
Typedef

i8

typedef int8_t i8;
Typedef

u8

typedef uint8_t u8;
Typedef

byte

typedef uint8_t byte;
Typedef

i16

typedef int16_t i16;
Typedef

u16

typedef uint16_t u16;
Typedef

i32

typedef int32_t i32;
Typedef

u32

typedef uint32_t u32;
Typedef

i64

typedef int64_t i64;
Typedef

u64

typedef uint64_t u64;
Struct

XSize

typedef struct XSize_t{
  i32 w, h;
}XSize;
Struct

XPoint

typedef struct XPoint_t{
  i32 x, y;
}XPoint;
Macro

X_ARRAY_COUNT

#define X_ARRAY_COUNT(a) (sizeof(a)/sizeof((a)[0]))